Showing preview only (5,844K chars total). Download the full file or copy to clipboard to get everything.
Repository: fastly/cli
Branch: main
Commit: 8ec2b5696be6
Files: 1492
Total size: 5.3 MB
Directory structure:
gitextract_2_s0yx1h/
├── .fastly/
│ ├── config.toml
│ └── help/
│ ├── README.md
│ ├── cli-auth.mdx
│ └── ecp-feature.mdx
├── .github/
│ ├── CODEOWNERS
│ ├── ISSUE_TEMPLATE/
│ │ ├── bug_report.md
│ │ ├── config.yml
│ │ └── feature_request.md
│ ├── PULL_REQUEST_TEMPLATE.md
│ ├── dependabot.yml
│ └── workflows/
│ ├── dependabot_changelog_update.yml
│ ├── merge_to_main.yml
│ ├── pr_test.yml
│ ├── publish_release.yml
│ └── tag_to_draft_release.yml
├── .gitignore
├── .golangci.yml
├── .goreleaser.yml
├── .tmpl/
│ ├── create.go
│ ├── delete.go
│ ├── describe.go
│ ├── doc.go
│ ├── doc_parent.go
│ ├── list.go
│ ├── root.go
│ ├── root_parent.go
│ ├── test.go
│ └── update.go
├── CHANGELOG.md
├── CONTRIBUTING.md
├── DEVELOPMENT.md
├── DOCUMENTATION.md
├── Dockerfile-node
├── Dockerfile-rust
├── ISSUES.md
├── LICENSE
├── Makefile
├── README.md
├── RELEASE.md
├── SECURITY.md
├── TESTING.md
├── cmd/
│ └── fastly/
│ └── main.go
├── deb-copyright
├── go.mod
├── go.sum
├── npm/
│ └── @fastly/
│ └── cli/
│ ├── .gitignore
│ ├── fastly.js
│ ├── index.d.ts
│ ├── index.js
│ ├── package-helpers.js
│ ├── package.json
│ └── update.js
├── pkg/
│ ├── api/
│ │ ├── doc.go
│ │ ├── interface.go
│ │ └── undocumented/
│ │ └── undocumented.go
│ ├── app/
│ │ ├── disable_token_flag_test.go
│ │ ├── doc.go
│ │ ├── expiry_warning_test.go
│ │ ├── metadata.json
│ │ ├── run.go
│ │ ├── run_test.go
│ │ ├── usage.go
│ │ └── usage_auth_help_test.go
│ ├── argparser/
│ │ ├── cmd.go
│ │ ├── cmd_test.go
│ │ ├── common.go
│ │ ├── doc.go
│ │ ├── fixtures/
│ │ │ └── content_test.txt
│ │ ├── flags.go
│ │ └── flags_test.go
│ ├── auth/
│ │ ├── auth.go
│ │ └── doc.go
│ ├── check/
│ │ └── check.go
│ ├── commands/
│ │ ├── alias/
│ │ │ ├── acl/
│ │ │ │ ├── create.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── describe.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── list.go
│ │ │ │ ├── root.go
│ │ │ │ └── update.go
│ │ │ ├── aclentry/
│ │ │ │ ├── create.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── describe.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── list.go
│ │ │ │ ├── root.go
│ │ │ │ └── update.go
│ │ │ ├── alerts/
│ │ │ │ ├── create.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── describe.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── history.go
│ │ │ │ ├── list.go
│ │ │ │ ├── root.go
│ │ │ │ └── update.go
│ │ │ ├── backend/
│ │ │ │ ├── create.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── describe.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── list.go
│ │ │ │ ├── root.go
│ │ │ │ └── update.go
│ │ │ ├── dictionary/
│ │ │ │ ├── create.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── describe.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── list.go
│ │ │ │ ├── root.go
│ │ │ │ └── update.go
│ │ │ ├── dictionaryentry/
│ │ │ │ ├── create.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── describe.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── list.go
│ │ │ │ ├── root.go
│ │ │ │ └── update.go
│ │ │ ├── doc.go
│ │ │ ├── healthcheck/
│ │ │ │ ├── create.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── describe.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── list.go
│ │ │ │ ├── root.go
│ │ │ │ └── update.go
│ │ │ ├── imageoptimizerdefaults/
│ │ │ │ ├── doc.go
│ │ │ │ ├── get.go
│ │ │ │ ├── root.go
│ │ │ │ └── update.go
│ │ │ ├── logging/
│ │ │ │ ├── azureblob/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── bigquery/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── cloudfiles/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── datadog/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── digitalocean/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── elasticsearch/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── ftp/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── gcs/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── googlepubsub/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── grafanacloudlogs/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── heroku/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── honeycomb/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── https/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── kafka/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── kinesis/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── loggly/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── logshuttle/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── newrelic/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── newrelicotlp/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── openstack/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── papertrail/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── root.go
│ │ │ │ ├── s3/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── scalyr/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── sftp/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── splunk/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── sumologic/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ └── syslog/
│ │ │ │ ├── create.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── describe.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── list.go
│ │ │ │ ├── root.go
│ │ │ │ └── update.go
│ │ │ ├── purge/
│ │ │ │ ├── doc.go
│ │ │ │ └── purge.go
│ │ │ ├── ratelimit/
│ │ │ │ ├── create.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── describe.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── list.go
│ │ │ │ ├── root.go
│ │ │ │ └── update.go
│ │ │ ├── resourcelink/
│ │ │ │ ├── create.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── describe.go
│ │ │ │ ├── list.go
│ │ │ │ ├── root.go
│ │ │ │ └── update.go
│ │ │ ├── serviceauth/
│ │ │ │ ├── create.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── describe.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── list.go
│ │ │ │ ├── root.go
│ │ │ │ └── update.go
│ │ │ ├── serviceversion/
│ │ │ │ ├── activate.go
│ │ │ │ ├── clone.go
│ │ │ │ ├── deactivate.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── list.go
│ │ │ │ ├── lock.go
│ │ │ │ ├── root.go
│ │ │ │ ├── stage.go
│ │ │ │ ├── unstage.go
│ │ │ │ └── update.go
│ │ │ └── vcl/
│ │ │ ├── condition/
│ │ │ │ ├── create.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── describe.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── list.go
│ │ │ │ ├── root.go
│ │ │ │ └── update.go
│ │ │ ├── custom/
│ │ │ │ ├── create.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── describe.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── list.go
│ │ │ │ ├── root.go
│ │ │ │ └── update.go
│ │ │ ├── describe.go
│ │ │ ├── doc.go
│ │ │ ├── root.go
│ │ │ └── snippet/
│ │ │ ├── create.go
│ │ │ ├── delete.go
│ │ │ ├── describe.go
│ │ │ ├── doc.go
│ │ │ ├── list.go
│ │ │ ├── root.go
│ │ │ └── update.go
│ │ ├── apisecurity/
│ │ │ ├── discoveredoperations/
│ │ │ │ ├── discoveredoperations_test.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── list.go
│ │ │ │ ├── root.go
│ │ │ │ └── update.go
│ │ │ ├── doc.go
│ │ │ ├── operations/
│ │ │ │ ├── addtags.go
│ │ │ │ ├── create.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── describe.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── list.go
│ │ │ │ ├── operations_test.go
│ │ │ │ ├── root.go
│ │ │ │ └── update.go
│ │ │ ├── root.go
│ │ │ └── tags/
│ │ │ ├── create.go
│ │ │ ├── delete.go
│ │ │ ├── doc.go
│ │ │ ├── get.go
│ │ │ ├── list.go
│ │ │ ├── root.go
│ │ │ ├── tags_test.go
│ │ │ └── update.go
│ │ ├── auth/
│ │ │ ├── add.go
│ │ │ ├── delete.go
│ │ │ ├── expiry.go
│ │ │ ├── expiry_test.go
│ │ │ ├── list.go
│ │ │ ├── login.go
│ │ │ ├── metadata.go
│ │ │ ├── metadata_test.go
│ │ │ ├── revoke.go
│ │ │ ├── revoke_test.go
│ │ │ ├── root.go
│ │ │ ├── show.go
│ │ │ ├── sso.go
│ │ │ ├── sso_test.go
│ │ │ ├── token.go
│ │ │ ├── token_test.go
│ │ │ ├── token_tty_unix_test.go
│ │ │ └── use.go
│ │ ├── authtoken/
│ │ │ ├── authtoken_test.go
│ │ │ ├── create.go
│ │ │ ├── delete.go
│ │ │ ├── describe.go
│ │ │ ├── doc.go
│ │ │ ├── list.go
│ │ │ ├── root.go
│ │ │ └── testdata/
│ │ │ └── tokens
│ │ ├── commands.go
│ │ ├── commands_test.go
│ │ ├── compute/
│ │ │ ├── build.go
│ │ │ ├── build_test.go
│ │ │ ├── compute_mocks_test.go
│ │ │ ├── compute_test.go
│ │ │ ├── computeacl/
│ │ │ │ ├── computeacl_test.go
│ │ │ │ ├── create.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── describe.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── listacls.go
│ │ │ │ ├── listentries.go
│ │ │ │ ├── lookup.go
│ │ │ │ ├── root.go
│ │ │ │ ├── testdata/
│ │ │ │ │ └── entries.json
│ │ │ │ └── update.go
│ │ │ ├── deploy.go
│ │ │ ├── deploy_test.go
│ │ │ ├── dir.go
│ │ │ ├── doc.go
│ │ │ ├── hashfiles.go
│ │ │ ├── init.go
│ │ │ ├── init_test.go
│ │ │ ├── language.go
│ │ │ ├── language_assemblyscript.go
│ │ │ ├── language_cpp.go
│ │ │ ├── language_go.go
│ │ │ ├── language_javascript.go
│ │ │ ├── language_javascript_test.go
│ │ │ ├── language_other.go
│ │ │ ├── language_rust.go
│ │ │ ├── language_toolchain.go
│ │ │ ├── metadata.go
│ │ │ ├── metadata_test.go
│ │ │ ├── pack.go
│ │ │ ├── pack_test.go
│ │ │ ├── publish.go
│ │ │ ├── pushpin.conf.template
│ │ │ ├── root.go
│ │ │ ├── secrets.go
│ │ │ ├── serve.go
│ │ │ ├── serve_test.go
│ │ │ ├── serve_unix.go
│ │ │ ├── serve_windows.go
│ │ │ ├── setup/
│ │ │ │ ├── backend.go
│ │ │ │ ├── config_store.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── domain.go
│ │ │ │ ├── interface.go
│ │ │ │ ├── kv_store.go
│ │ │ │ ├── kv_store_test.go
│ │ │ │ ├── loggers.go
│ │ │ │ └── secret_store.go
│ │ │ ├── testdata/
│ │ │ │ ├── build/
│ │ │ │ │ ├── cpp/
│ │ │ │ │ │ └── main.cpp
│ │ │ │ │ ├── go/
│ │ │ │ │ │ ├── go.mod
│ │ │ │ │ │ └── main.go
│ │ │ │ │ ├── javascript/
│ │ │ │ │ │ ├── package.json
│ │ │ │ │ │ └── src/
│ │ │ │ │ │ └── index.js
│ │ │ │ │ └── rust/
│ │ │ │ │ ├── Cargo.lock
│ │ │ │ │ ├── Cargo.toml
│ │ │ │ │ ├── fastly.toml
│ │ │ │ │ └── src/
│ │ │ │ │ └── main.rs
│ │ │ │ ├── init/
│ │ │ │ │ ├── fastly-invalid-missing-version.toml
│ │ │ │ │ ├── fastly-invalid-section-version.toml
│ │ │ │ │ ├── fastly-invalid-unrecognised.toml
│ │ │ │ │ ├── fastly-invalid-version-exceeded.toml
│ │ │ │ │ ├── fastly-missing-spec-url.toml
│ │ │ │ │ ├── fastly-valid-integer.toml
│ │ │ │ │ ├── fastly-valid-semver.toml
│ │ │ │ │ └── fastly-viceroy-update.toml
│ │ │ │ ├── kv_store_example.json
│ │ │ │ ├── main.wasm
│ │ │ │ ├── metadata/
│ │ │ │ │ └── config.toml
│ │ │ │ └── pack/
│ │ │ │ └── main.wasm
│ │ │ ├── update.go
│ │ │ ├── update_test.go
│ │ │ ├── validate.go
│ │ │ └── validate_test.go
│ │ ├── config/
│ │ │ ├── config_test.go
│ │ │ ├── doc.go
│ │ │ ├── root.go
│ │ │ └── testdata/
│ │ │ └── config.toml
│ │ ├── configstore/
│ │ │ ├── configstore_test.go
│ │ │ ├── create.go
│ │ │ ├── delete.go
│ │ │ ├── describe.go
│ │ │ ├── doc.go
│ │ │ ├── helper_test.go
│ │ │ ├── list.go
│ │ │ ├── list_services.go
│ │ │ ├── root.go
│ │ │ └── update.go
│ │ ├── configstoreentry/
│ │ │ ├── configstoreentry_test.go
│ │ │ ├── create.go
│ │ │ ├── delete.go
│ │ │ ├── describe.go
│ │ │ ├── doc.go
│ │ │ ├── errors.go
│ │ │ ├── list.go
│ │ │ ├── root.go
│ │ │ └── update.go
│ │ ├── dashboard/
│ │ │ ├── create.go
│ │ │ ├── dashboard_test.go
│ │ │ ├── delete.go
│ │ │ ├── describe.go
│ │ │ ├── doc.go
│ │ │ ├── item/
│ │ │ │ ├── common.go
│ │ │ │ ├── create.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── describe.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── item_test.go
│ │ │ │ ├── root.go
│ │ │ │ └── update.go
│ │ │ ├── list.go
│ │ │ ├── printer/
│ │ │ │ └── print.go
│ │ │ ├── root.go
│ │ │ └── update.go
│ │ ├── doc.go
│ │ ├── domain/
│ │ │ ├── common.go
│ │ │ ├── create.go
│ │ │ ├── delete.go
│ │ │ ├── describe.go
│ │ │ ├── doc.go
│ │ │ ├── domain_test.go
│ │ │ ├── list.go
│ │ │ ├── root.go
│ │ │ └── update.go
│ │ ├── install/
│ │ │ ├── doc.go
│ │ │ └── root.go
│ │ ├── ip/
│ │ │ ├── doc.go
│ │ │ ├── ip_test.go
│ │ │ └── root.go
│ │ ├── kvstore/
│ │ │ ├── create.go
│ │ │ ├── delete.go
│ │ │ ├── describe.go
│ │ │ ├── doc.go
│ │ │ ├── kvstore_test.go
│ │ │ ├── list.go
│ │ │ └── root.go
│ │ ├── kvstoreentry/
│ │ │ ├── create.go
│ │ │ ├── delete.go
│ │ │ ├── describe.go
│ │ │ ├── doc.go
│ │ │ ├── get.go
│ │ │ ├── hidden.go
│ │ │ ├── kvstoreentry_test.go
│ │ │ ├── list.go
│ │ │ ├── root.go
│ │ │ └── testdata/
│ │ │ ├── data.json
│ │ │ └── example/
│ │ │ ├── .hiddenfile
│ │ │ └── foo.txt
│ │ ├── logtail/
│ │ │ ├── doc.go
│ │ │ ├── root.go
│ │ │ ├── tail_test.go
│ │ │ └── testdata/
│ │ │ └── response.json
│ │ ├── ngwaf/
│ │ │ ├── countrylist/
│ │ │ │ ├── countrylist_test.go
│ │ │ │ ├── create.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── get.go
│ │ │ │ ├── list.go
│ │ │ │ ├── root.go
│ │ │ │ └── update.go
│ │ │ ├── customsignal/
│ │ │ │ ├── create.go
│ │ │ │ ├── customsignal_test.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── get.go
│ │ │ │ ├── list.go
│ │ │ │ ├── root.go
│ │ │ │ └── update.go
│ │ │ ├── doc.go
│ │ │ ├── iplist/
│ │ │ │ ├── create.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── get.go
│ │ │ │ ├── iplist_test.go
│ │ │ │ ├── list.go
│ │ │ │ ├── root.go
│ │ │ │ └── update.go
│ │ │ ├── ngwaflist/
│ │ │ │ ├── api.go
│ │ │ │ └── doc.go
│ │ │ ├── root.go
│ │ │ ├── rule/
│ │ │ │ ├── create.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── get.go
│ │ │ │ ├── list.go
│ │ │ │ ├── root.go
│ │ │ │ ├── rule_test.go
│ │ │ │ ├── testdata/
│ │ │ │ │ ├── test_complex_rule.json
│ │ │ │ │ └── test_rule.json
│ │ │ │ └── update.go
│ │ │ ├── signallist/
│ │ │ │ ├── create.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── get.go
│ │ │ │ ├── list.go
│ │ │ │ ├── root.go
│ │ │ │ ├── signallist_test.go
│ │ │ │ └── update.go
│ │ │ ├── stringlist/
│ │ │ │ ├── create.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── get.go
│ │ │ │ ├── list.go
│ │ │ │ ├── root.go
│ │ │ │ ├── stringlist_test.go
│ │ │ │ └── update.go
│ │ │ ├── wildcardlist/
│ │ │ │ ├── create.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── get.go
│ │ │ │ ├── list.go
│ │ │ │ ├── root.go
│ │ │ │ ├── update.go
│ │ │ │ └── wildcardlist_test.go
│ │ │ └── workspace/
│ │ │ ├── alert/
│ │ │ │ ├── datadog/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── datadog_test.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── get.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── jira/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── get.go
│ │ │ │ │ ├── jira_test.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── mailinglist/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── get.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── mailinglist_test.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── microsoftteams/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── get.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── microsoftteams_test.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── opsgenie/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── get.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── opsgenie_test.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── pagerduty/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── get.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── pagerduty_test.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── root.go
│ │ │ │ ├── slack/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── get.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ ├── slack_test.go
│ │ │ │ │ └── update.go
│ │ │ │ └── webhook/
│ │ │ │ ├── create.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── get-signing-key.go
│ │ │ │ ├── get.go
│ │ │ │ ├── list.go
│ │ │ │ ├── root.go
│ │ │ │ ├── rotate-signing-key.go
│ │ │ │ ├── update.go
│ │ │ │ └── webhook_test.go
│ │ │ ├── countrylist/
│ │ │ │ ├── countrylist_test.go
│ │ │ │ ├── create.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── get.go
│ │ │ │ ├── list.go
│ │ │ │ ├── root.go
│ │ │ │ └── update.go
│ │ │ ├── create.go
│ │ │ ├── customsignal/
│ │ │ │ ├── create.go
│ │ │ │ ├── customsignal_test.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── get.go
│ │ │ │ ├── list.go
│ │ │ │ ├── root.go
│ │ │ │ └── update.go
│ │ │ ├── delete.go
│ │ │ ├── doc.go
│ │ │ ├── get.go
│ │ │ ├── iplist/
│ │ │ │ ├── create.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── get.go
│ │ │ │ ├── iplist_test.go
│ │ │ │ ├── list.go
│ │ │ │ ├── root.go
│ │ │ │ └── update.go
│ │ │ ├── list.go
│ │ │ ├── redaction/
│ │ │ │ ├── create.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── list.go
│ │ │ │ ├── redaction_test.go
│ │ │ │ ├── retrieve.go
│ │ │ │ ├── root.go
│ │ │ │ └── update.go
│ │ │ ├── root.go
│ │ │ ├── rule/
│ │ │ │ ├── create.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── get.go
│ │ │ │ ├── list.go
│ │ │ │ ├── root.go
│ │ │ │ ├── rule_test.go
│ │ │ │ ├── testdata/
│ │ │ │ │ ├── test_complex_rule.json
│ │ │ │ │ └── test_rule.json
│ │ │ │ └── update.go
│ │ │ ├── signallist/
│ │ │ │ ├── create.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── get.go
│ │ │ │ ├── list.go
│ │ │ │ ├── root.go
│ │ │ │ ├── signallist_test.go
│ │ │ │ └── update.go
│ │ │ ├── stringlist/
│ │ │ │ ├── create.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── get.go
│ │ │ │ ├── list.go
│ │ │ │ ├── root.go
│ │ │ │ ├── stringlist_test.go
│ │ │ │ └── update.go
│ │ │ ├── threshold/
│ │ │ │ ├── create.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── get.go
│ │ │ │ ├── list.go
│ │ │ │ ├── root.go
│ │ │ │ ├── threshold_test.go
│ │ │ │ └── update.go
│ │ │ ├── update.go
│ │ │ ├── virtualpatch/
│ │ │ │ ├── list.go
│ │ │ │ ├── retrieve.go
│ │ │ │ ├── root.go
│ │ │ │ ├── update.go
│ │ │ │ └── virtualpatch_test.go
│ │ │ ├── wildcardlist/
│ │ │ │ ├── create.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── get.go
│ │ │ │ ├── list.go
│ │ │ │ ├── root.go
│ │ │ │ ├── update.go
│ │ │ │ └── wildcardlist_test.go
│ │ │ └── workspace_test.go
│ │ ├── objectstorage/
│ │ │ ├── accesskeys/
│ │ │ │ ├── accesskeys_test.go
│ │ │ │ ├── create.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── get.go
│ │ │ │ ├── list.go
│ │ │ │ └── root.go
│ │ │ ├── doc.go
│ │ │ └── root.go
│ │ ├── pop/
│ │ │ ├── doc.go
│ │ │ ├── pop_test.go
│ │ │ └── root.go
│ │ ├── products/
│ │ │ ├── doc.go
│ │ │ ├── products_test.go
│ │ │ └── root.go
│ │ ├── profile/
│ │ │ ├── create.go
│ │ │ ├── delete.go
│ │ │ ├── doc.go
│ │ │ ├── list.go
│ │ │ ├── profile_test.go
│ │ │ ├── root.go
│ │ │ ├── switch.go
│ │ │ ├── testdata/
│ │ │ │ └── config.toml
│ │ │ ├── token.go
│ │ │ └── update.go
│ │ ├── secretstore/
│ │ │ ├── create.go
│ │ │ ├── delete.go
│ │ │ ├── describe.go
│ │ │ ├── doc.go
│ │ │ ├── flags.go
│ │ │ ├── helper_test.go
│ │ │ ├── list.go
│ │ │ ├── root.go
│ │ │ └── secretstore_test.go
│ │ ├── secretstoreentry/
│ │ │ ├── create.go
│ │ │ ├── delete.go
│ │ │ ├── describe.go
│ │ │ ├── doc.go
│ │ │ ├── flags.go
│ │ │ ├── helper_test.go
│ │ │ ├── list.go
│ │ │ ├── root.go
│ │ │ └── secretstoreentry_test.go
│ │ ├── service/
│ │ │ ├── acl/
│ │ │ │ ├── acl_test.go
│ │ │ │ ├── create.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── describe.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── list.go
│ │ │ │ ├── root.go
│ │ │ │ └── update.go
│ │ │ ├── aclentry/
│ │ │ │ ├── aclentry_test.go
│ │ │ │ ├── create.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── describe.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── list.go
│ │ │ │ ├── root.go
│ │ │ │ ├── testdata/
│ │ │ │ │ └── batch.json
│ │ │ │ └── update.go
│ │ │ ├── alert/
│ │ │ │ ├── alert_test.go
│ │ │ │ ├── common.go
│ │ │ │ ├── create.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── describe.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── list.go
│ │ │ │ ├── list_history.go
│ │ │ │ ├── root.go
│ │ │ │ └── update.go
│ │ │ ├── auth/
│ │ │ │ ├── create.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── describe.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── list.go
│ │ │ │ ├── root.go
│ │ │ │ ├── service_test.go
│ │ │ │ ├── testdata/
│ │ │ │ │ ├── fastly-no-serviceid.toml
│ │ │ │ │ └── fastly-valid.toml
│ │ │ │ └── update.go
│ │ │ ├── backend/
│ │ │ │ ├── backend_test.go
│ │ │ │ ├── create.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── describe.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── list.go
│ │ │ │ ├── root.go
│ │ │ │ └── update.go
│ │ │ ├── create.go
│ │ │ ├── delete.go
│ │ │ ├── describe.go
│ │ │ ├── dictionary/
│ │ │ │ ├── create.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── describe.go
│ │ │ │ ├── dictionary_test.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── list.go
│ │ │ │ ├── root.go
│ │ │ │ └── update.go
│ │ │ ├── dictionaryentry/
│ │ │ │ ├── create.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── describe.go
│ │ │ │ ├── dictionaryitem_test.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── list.go
│ │ │ │ ├── root.go
│ │ │ │ └── update.go
│ │ │ ├── doc.go
│ │ │ ├── domain/
│ │ │ │ ├── create.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── describe.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── domain_test.go
│ │ │ │ ├── list.go
│ │ │ │ ├── root.go
│ │ │ │ ├── update.go
│ │ │ │ └── validate.go
│ │ │ ├── healthcheck/
│ │ │ │ ├── create.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── describe.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── healthcheck_test.go
│ │ │ │ ├── list.go
│ │ │ │ ├── root.go
│ │ │ │ └── update.go
│ │ │ ├── imageoptimizerdefaults/
│ │ │ │ ├── doc.go
│ │ │ │ ├── get.go
│ │ │ │ ├── imageoptimizer_test.go
│ │ │ │ ├── root.go
│ │ │ │ └── update.go
│ │ │ ├── list.go
│ │ │ ├── logging/
│ │ │ │ ├── azureblob/
│ │ │ │ │ ├── azureblob_integration_test.go
│ │ │ │ │ ├── azureblob_test.go
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── bigquery/
│ │ │ │ │ ├── bigquery_integration_test.go
│ │ │ │ │ ├── bigquery_test.go
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── cloudfiles/
│ │ │ │ │ ├── cloudfiles_integration_test.go
│ │ │ │ │ ├── cloudfiles_test.go
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── datadog/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── datadog_integration_test.go
│ │ │ │ │ ├── datadog_test.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── debug/
│ │ │ │ │ ├── debug_test.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ └── root.go
│ │ │ │ ├── digitalocean/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── digitalocean_integration_test.go
│ │ │ │ │ ├── digitalocean_test.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── elasticsearch/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── elasticsearch_integration_test.go
│ │ │ │ │ ├── elasticsearch_test.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── ftp/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── ftp_integration_test.go
│ │ │ │ │ ├── ftp_test.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── gcs/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── gcs_integration_test.go
│ │ │ │ │ ├── gcs_test.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── googlepubsub/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── googlepubsub_integration_test.go
│ │ │ │ │ ├── googlepubsub_test.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── grafanacloudlogs/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── grafanacloud_logs_integration_test.go
│ │ │ │ │ ├── grafanacloudlogs_test.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── heroku/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── heroku_integration_test.go
│ │ │ │ │ ├── heroku_test.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── honeycomb/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── honeycomb_integration_test.go
│ │ │ │ │ ├── honeycomb_test.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── https/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── https_integration_test.go
│ │ │ │ │ ├── https_test.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── kafka/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── kafka_integration_test.go
│ │ │ │ │ ├── kafka_test.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── kinesis/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── kinesis_integration_test.go
│ │ │ │ │ ├── kinesis_test.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── logflags/
│ │ │ │ │ ├── doc.go
│ │ │ │ │ └── flags.go
│ │ │ │ ├── loggly/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── loggly_integration_test.go
│ │ │ │ │ ├── loggly_test.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── logshuttle/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── logshuttle_integration_test.go
│ │ │ │ │ ├── logshuttle_test.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── newrelic/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── newrelic_test.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── newrelicotlp/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── newrelicotlp_test.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── openstack/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── openstack_integration_test.go
│ │ │ │ │ ├── openstack_test.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── papertrail/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── papertrail_integration_test.go
│ │ │ │ │ ├── papertrail_test.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── root.go
│ │ │ │ ├── s3/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ ├── s3_integration_test.go
│ │ │ │ │ ├── s3_test.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── scalyr/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ ├── scalyr_integration_test.go
│ │ │ │ │ ├── scalyr_test.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── sftp/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ ├── sftp_integration_test.go
│ │ │ │ │ ├── sftp_test.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── splunk/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ ├── splunk_integration_test.go
│ │ │ │ │ ├── splunk_test.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── sumologic/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ ├── sumologic_integration_test.go
│ │ │ │ │ ├── sumologic_test.go
│ │ │ │ │ └── update.go
│ │ │ │ └── syslog/
│ │ │ │ ├── create.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── describe.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── list.go
│ │ │ │ ├── root.go
│ │ │ │ ├── syslog_integration_test.go
│ │ │ │ ├── syslog_test.go
│ │ │ │ └── update.go
│ │ │ ├── purge/
│ │ │ │ ├── doc.go
│ │ │ │ ├── purge.go
│ │ │ │ ├── purge_test.go
│ │ │ │ └── testdata/
│ │ │ │ └── keys
│ │ │ ├── ratelimit/
│ │ │ │ ├── create.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── describe.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── list.go
│ │ │ │ ├── ratelimit_test.go
│ │ │ │ ├── root.go
│ │ │ │ └── update.go
│ │ │ ├── resourcelink/
│ │ │ │ ├── create.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── describe.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── list.go
│ │ │ │ ├── resourcelink_test.go
│ │ │ │ ├── root.go
│ │ │ │ └── update.go
│ │ │ ├── root.go
│ │ │ ├── search.go
│ │ │ ├── service_test.go
│ │ │ ├── testdata/
│ │ │ │ ├── fastly-no-serviceid.toml
│ │ │ │ └── fastly-valid.toml
│ │ │ ├── update.go
│ │ │ ├── vcl/
│ │ │ │ ├── condition/
│ │ │ │ │ ├── condition_test.go
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── custom/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── custom_test.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ ├── testdata/
│ │ │ │ │ │ └── example.vcl
│ │ │ │ │ └── update.go
│ │ │ │ ├── describe.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── root.go
│ │ │ │ ├── snippet/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ ├── snippet_test.go
│ │ │ │ │ ├── testdata/
│ │ │ │ │ │ └── snippet.vcl
│ │ │ │ │ └── update.go
│ │ │ │ └── vcl_test.go
│ │ │ └── version/
│ │ │ ├── activate.go
│ │ │ ├── clone.go
│ │ │ ├── deactivate.go
│ │ │ ├── doc.go
│ │ │ ├── list.go
│ │ │ ├── lock.go
│ │ │ ├── root.go
│ │ │ ├── serviceversion_test.go
│ │ │ ├── stage.go
│ │ │ ├── unstage.go
│ │ │ ├── update.go
│ │ │ └── validate.go
│ │ ├── shellcomplete/
│ │ │ ├── doc.go
│ │ │ └── root.go
│ │ ├── sso/
│ │ │ ├── doc.go
│ │ │ ├── root.go
│ │ │ └── sso_test.go
│ │ ├── stats/
│ │ │ ├── aggregate.go
│ │ │ ├── aggregate_test.go
│ │ │ ├── doc.go
│ │ │ ├── domain_inspector.go
│ │ │ ├── domain_inspector_test.go
│ │ │ ├── historical.go
│ │ │ ├── historical_test.go
│ │ │ ├── obj.go
│ │ │ ├── origin_inspector.go
│ │ │ ├── origin_inspector_test.go
│ │ │ ├── realtime.go
│ │ │ ├── realtime_test.go
│ │ │ ├── regions.go
│ │ │ ├── regions_test.go
│ │ │ ├── root.go
│ │ │ ├── template.go
│ │ │ ├── usage.go
│ │ │ └── usage_test.go
│ │ ├── tls/
│ │ │ ├── config/
│ │ │ │ ├── config_test.go
│ │ │ │ ├── describe.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── list.go
│ │ │ │ ├── root.go
│ │ │ │ └── update.go
│ │ │ ├── custom/
│ │ │ │ ├── activation/
│ │ │ │ │ ├── activation_test.go
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── certificate/
│ │ │ │ │ ├── certificate_test.go
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ ├── testdata/
│ │ │ │ │ │ └── certificate.crt
│ │ │ │ │ └── update.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── domain/
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── domain_test.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ └── root.go
│ │ │ │ ├── privatekey/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── privatekey_test.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── testdata/
│ │ │ │ │ └── testkey.pem
│ │ │ │ └── root.go
│ │ │ ├── platform/
│ │ │ │ ├── create.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── describe.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── list.go
│ │ │ │ ├── platform_test.go
│ │ │ │ ├── root.go
│ │ │ │ └── update.go
│ │ │ └── subscription/
│ │ │ ├── create.go
│ │ │ ├── delete.go
│ │ │ ├── describe.go
│ │ │ ├── doc.go
│ │ │ ├── list.go
│ │ │ ├── root.go
│ │ │ ├── subscription_test.go
│ │ │ └── update.go
│ │ ├── tools/
│ │ │ ├── doc.go
│ │ │ ├── domain/
│ │ │ │ ├── doc.go
│ │ │ │ ├── root.go
│ │ │ │ ├── status.go
│ │ │ │ ├── status_test.go
│ │ │ │ ├── suggest.go
│ │ │ │ └── suggest_test.go
│ │ │ └── root.go
│ │ ├── update/
│ │ │ ├── check.go
│ │ │ ├── check_test.go
│ │ │ ├── doc.go
│ │ │ └── root.go
│ │ ├── user/
│ │ │ ├── create.go
│ │ │ ├── delete.go
│ │ │ ├── describe.go
│ │ │ ├── doc.go
│ │ │ ├── list.go
│ │ │ ├── root.go
│ │ │ ├── update.go
│ │ │ └── user_test.go
│ │ ├── version/
│ │ │ ├── doc.go
│ │ │ ├── root.go
│ │ │ └── version_test.go
│ │ └── whoami/
│ │ ├── doc.go
│ │ ├── root.go
│ │ └── whoami_test.go
│ ├── config/
│ │ ├── auth.go
│ │ ├── config.go
│ │ ├── config_test.go
│ │ ├── doc.go
│ │ ├── migrate_auth.go
│ │ ├── migrate_auth_test.go
│ │ └── testdata/
│ │ ├── config-current.toml
│ │ ├── config-incompatible-config-version.toml
│ │ ├── config-invalid.toml
│ │ ├── config-legacy.toml
│ │ ├── config-outdated-cli-version.toml
│ │ ├── config.toml
│ │ └── static/
│ │ ├── config-invalid.toml
│ │ └── config.toml
│ ├── debug/
│ │ ├── debug.go
│ │ └── doc.go
│ ├── env/
│ │ ├── doc.go
│ │ ├── env.go
│ │ └── env_test.go
│ ├── errors/
│ │ ├── deduce.go
│ │ ├── deduce_test.go
│ │ ├── doc.go
│ │ ├── errors.go
│ │ ├── exit_error.go
│ │ ├── log.go
│ │ ├── log_test.go
│ │ ├── process.go
│ │ ├── remediation_error.go
│ │ ├── remediation_test.go
│ │ └── testdata/
│ │ ├── errors-expected-rotation.log
│ │ └── errors-expected.log
│ ├── exec/
│ │ ├── doc.go
│ │ └── exec.go
│ ├── file/
│ │ ├── archive.go
│ │ └── doc.go
│ ├── filesystem/
│ │ ├── directory.go
│ │ ├── doc.go
│ │ └── home.go
│ ├── fmt/
│ │ ├── doc.go
│ │ └── fmt.go
│ ├── github/
│ │ ├── doc.go
│ │ ├── github.go
│ │ └── github_test.go
│ ├── global/
│ │ ├── doc.go
│ │ ├── global.go
│ │ └── global_test.go
│ ├── internal/
│ │ └── beacon/
│ │ ├── beacon.go
│ │ ├── beacon_test.go
│ │ └── doc.go
│ ├── lookup/
│ │ ├── doc.go
│ │ └── lookup.go
│ ├── manifest/
│ │ ├── data.go
│ │ ├── doc.go
│ │ ├── file.go
│ │ ├── flags.go
│ │ ├── local_server.go
│ │ ├── local_server_test.go
│ │ ├── manifest.go
│ │ ├── manifest_test.go
│ │ ├── setup.go
│ │ ├── testdata/
│ │ │ ├── fastly-invalid-missing-version.toml
│ │ │ ├── fastly-invalid-unrecognised.toml
│ │ │ ├── fastly-invalid-version-exceeded.toml
│ │ │ ├── fastly-missing-spec-url.toml
│ │ │ ├── fastly-valid-integer.toml
│ │ │ ├── fastly-valid-semver.toml
│ │ │ ├── fastly-viceroy-update.toml
│ │ │ └── fastly-warning-dictionaries.toml
│ │ └── version.go
│ ├── mock/
│ │ ├── api.go
│ │ ├── client.go
│ │ ├── config_file.go
│ │ ├── doc.go
│ │ └── versioner.go
│ ├── revision/
│ │ ├── revision.go
│ │ └── revision_test.go
│ ├── runtime/
│ │ ├── doc.go
│ │ └── runtime.go
│ ├── sync/
│ │ ├── doc.go
│ │ └── sync.go
│ ├── testutil/
│ │ ├── api.go
│ │ ├── args.go
│ │ ├── assert.go
│ │ ├── client.go
│ │ ├── doc.go
│ │ ├── env.go
│ │ ├── file.go
│ │ ├── json.go
│ │ ├── log.go
│ │ ├── must.go
│ │ ├── paginator.go
│ │ ├── scenarios.go
│ │ ├── string.go
│ │ └── time.go
│ ├── text/
│ │ ├── accesskey.go
│ │ ├── alerts.go
│ │ ├── backend.go
│ │ ├── color.go
│ │ ├── computeacl.go
│ │ ├── configstore.go
│ │ ├── customsignal.go
│ │ ├── dictionary.go
│ │ ├── dictionaryitem.go
│ │ ├── dictionaryitem_test.go
│ │ ├── doc.go
│ │ ├── healthcheck.go
│ │ ├── kvstore.go
│ │ ├── lines.go
│ │ ├── lines_test.go
│ │ ├── list.go
│ │ ├── redaction.go
│ │ ├── resource.go
│ │ ├── rule.go
│ │ ├── sanitize.go
│ │ ├── sanitize_test.go
│ │ ├── secretstore.go
│ │ ├── service.go
│ │ ├── service_test.go
│ │ ├── spinner.go
│ │ ├── stats.go
│ │ ├── table.go
│ │ ├── tag.go
│ │ ├── text.go
│ │ ├── text_test.go
│ │ ├── threshold.go
│ │ ├── virtualpatch.go
│ │ └── workspace.go
│ ├── threadsafe/
│ │ ├── doc.go
│ │ └── threadsafe.go
│ ├── time/
│ │ ├── doc.go
│ │ └── time.go
│ ├── undo/
│ │ ├── doc.go
│ │ └── undo.go
│ └── useragent/
│ ├── doc.go
│ └── useragent.go
├── scripts/
│ ├── config.sh
│ ├── documentation.sh
│ ├── go-test-cache/
│ │ ├── go.mod
│ │ └── main.go
│ ├── scaffold-category.sh
│ ├── scaffold-update-interfaces.sh
│ ├── scaffold.sh
│ └── tags.sh
└── tools/
├── go.mod
└── go.sum
================================================
FILE CONTENTS
================================================
================================================
FILE: .fastly/config.toml
================================================
config_version = 6
[fastly]
account_endpoint = "https://accounts.fastly.com"
api_endpoint = "https://api.fastly.com"
[wasm-metadata]
build_info = "enable"
machine_info = "disable" # users have to opt-in for this (everything else they'll have to opt-out)
package_info = "enable"
script_info = "enable"
[language]
[language.go]
tinygo_constraint = ">= 0.28.1-0" # NOTE -0 indicates to the CLI's semver package that we accept pre-releases (TinyGo users commonly use pre-releases).
tinygo_constraint_fallback = ">= 0.26.0-0" # The Fastly Go SDK 0.2.0 requires `tinygo_constraint` but the 0.1.x SDK requires this constraint.
toolchain_constraint = ">= 1.21" # Go toolchain constraint for use with WASI support.
toolchain_constraint_tinygo = ">= 1.18" # Go toolchain constraint for use with TinyGo.
[language.rust]
# * Rust 1.91.0 has a bug where it produces broken wasm packages which crash
# when handling requests; the bug is fixed in Rust 1.91.1.
# * Rust 1.93.0 has a bug on wasm32-wasip2 where it leaks file descriptors in
# `std::fs::File`; the bug is fixed in Rust 1.93.1.
toolchain_constraint = ">= 1.78 != 1.91.0 != 1.93.0"
wasm_wasi_target = "wasm32-wasip1"
[language.cpp]
toolchain_constraint = ">= 14.0.0"
wasm_wasi_target = "wasm32-wasip1"
[wasm-tools]
ttl = "24h"
[viceroy]
ttl = "24h"
================================================
FILE: .fastly/help/README.md
================================================
# Developer Hub Help Pages
This directory contains troubleshooting pages for common issues in this project, which are ingested by the [Developer Hub](https://fastly.com/documentation/developers) and served on the `fastly.help` domain.
To update or create a help page, add or edit the Markdown files in this directory. Changes will be deployed on Developer Hub within 24 hours.
## Example Page
```md
---
id: ecp-feature
title: Compute is not enabled on your account
template: help
---
Our edge compute platform is in limited availability and not yet available to all customers. Contact [Fastly Support](https://support.fastly.com/) or your account manager to have the feature enabled on your account.
```
================================================
FILE: .fastly/help/cli-auth.mdx
================================================
---
id: cli-auth
title: Authenticate with the Fastly CLI
template: help
---
## Quick start
Pick whichever method suits your workflow:
```
fastly auth login # paste an API token interactively
fastly auth login --sso --token <name> # authenticate via browser-based SSO
```
Both store a default token so subsequent commands authenticate automatically.
## Token sources and precedence
The CLI resolves a token in this order (first match wins):
1. `--token` flag (a raw token string, or the name of a stored auth token). Not available when `FASTLY_DISABLE_AUTH_COMMAND` is set.
2. `FASTLY_API_TOKEN` environment variable
3. `profile` field in your project's `fastly.toml`
4. Default auth token from the CLI config file
## Stored tokens
You can store multiple named tokens and switch between them:
```
fastly auth add staging --api-token $STAGING_TOKEN
fastly auth list
fastly auth use staging
fastly auth show staging
fastly auth delete staging
```
## Non-interactive usage
In CI/CD or scripts where interactive prompts are not available, supply a token via the flag or environment variable:
```
fastly service list --token $MY_TOKEN
FASTLY_API_TOKEN=... fastly service list
```
## Managed environments
If `FASTLY_DISABLE_AUTH_COMMAND` is set, both the `fastly auth` command tree and the `--token` global flag are disabled. Authentication is expected to be handled externally via `FASTLY_API_TOKEN` or pre-configured stored tokens. Background SSO refresh flows are unaffected.
## Generating a token
Create an API token at: https://manage.fastly.com/account/personal/tokens
================================================
FILE: .fastly/help/ecp-feature.mdx
================================================
---
id: ecp-feature
title: Compute is not enabled on your account
template: help
---
Our edge compute platform is in limited availability and not yet available to all customers. Contact [Fastly Support](https://support.fastly.com/hc/en-us) or your account manager to have the feature enabled on your account.
================================================
FILE: .github/CODEOWNERS
================================================
* @fastly/developer-tools
================================================
FILE: .github/ISSUE_TEMPLATE/bug_report.md
================================================
---
name: Bug report
about: Tell us about a bug to help us improve
title: ''
labels: bug
assignees: ''
---
<!--
**Note**: Please keep in mind that if your issue requires troubleshooting that will require any details that you aren't comfortable disclosing in this public forum (such as service IDs), you will need to open a Fastly support ticket instead: https://support.fastly.com.
Bug reports opened here:
- Do not have an SLA
- Should not be a duplicate of an existing support ticket that you have already created, or vice versa
- May take longer to solve compared to our dedicated support team
More details on submitting issues can be found here: https://github.com/fastly/cli/blob/main/ISSUES.md
-->
**Version**
Please paste the output of `fastly version` here.
**What happened**
Please describe the command you ran, what you expected to happen, and what happened instead.
================================================
FILE: .github/ISSUE_TEMPLATE/config.yml
================================================
# Disable blank issues for non-maintainers.
blank_issues_enabled: false
================================================
FILE: .github/ISSUE_TEMPLATE/feature_request.md
================================================
---
name: Feature request
about: Suggest an idea for this project
title: "[FEATURE REQUEST] ..."
labels: feature request
assignees: ''
---
<!--
**Note**: Please keep in mind that if your feature request discusses any details that you aren't comfortable disclosing in this public forum (such as service IDs), you will need to open a Fastly support ticket instead: https://support.fastly.com.
Feature requests opened here:
- Do not have an SLA nor are guaranteed to be implemented
- Should not be a duplicate of an existing support ticket that you have already created, or vice versa
More details on submitting issues can be found here: https://github.com/fastly/cli/blob/main/ISSUES.md
-->
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
Add any other context or screenshots about the feature request here.
================================================
FILE: .github/PULL_REQUEST_TEMPLATE.md
================================================
### Change summary
<!--
Briefly describe the changes introduced in this pull request. Include context or
reasoning behind the changes, even if they seem minor. If relevant, link to any
related discussions (e.g. Slack threads, tickets, documents).
-->
All Submissions:
* [ ] Have you followed the guidelines in our Contributing document?
* [ ] Have you checked to ensure there aren't other open [Pull Requests](https://github.com/fastly/cli/pulls) for the same update/change?
<!-- You can erase any parts of this template not applicable to your Pull Request. -->
### New Feature Submissions:
* [ ] Does your submission pass tests?
### Changes to Core Features:
* [ ] Have you written new tests for your core changes, as applicable?
* [ ] Have you successfully run tests with your changes locally?
### User Impact
<!-- What is the user impact of this change? -->
### Are there any considerations that need to be addressed for release?
<!-- Any breaking changes, etc -->
================================================
FILE: .github/dependabot.yml
================================================
version: 2
updates:
- package-ecosystem: "gomod"
directory: "/"
schedule:
interval: "weekly"
allow:
- dependency-type: "all"
groups:
go-dependencies:
patterns:
- "*"
- package-ecosystem: "gomod"
directory: "/tools"
schedule:
interval: "weekly"
allow:
- dependency-type: "all"
labels:
- "tools"
groups:
go-dependencies:
patterns:
- "*"
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
labels:
- "github_actions"
groups:
gha-dependencies:
patterns:
- "*"
================================================
FILE: .github/workflows/dependabot_changelog_update.yml
================================================
name: Generate changelog entry for Dependabot
on:
pull_request:
types:
- opened
- synchronize
- reopened
permissions:
contents: read
pull-requests: write
jobs:
dependabot-changelog-update:
if: github.actor == 'dependabot[bot]'
runs-on: ubuntu-latest
steps:
- name: Check labels
id: check-labels
uses: actions/github-script@v9
with:
script: |
const labels = context.payload.pull_request.labels.map(l => l.name);
const skip = labels.includes('tools') || labels.includes('github_actions');
if (skip) {
await github.rest.issues.addLabels({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.payload.pull_request.number,
labels: ['Skip-Changelog']
});
}
return !skip;
result-encoding: string
- name: Generate a GitHub token
if: steps.check-labels.outputs.result == 'true'
id: github-token
uses: actions/create-github-app-token@v3
with:
app-id: ${{ vars.GH_APP_ID }}
private-key: ${{ secrets.GH_APP_PRIVATE_KEY }}
owner: ${{ github.repository_owner }}
repositories: "cli"
- name: Checkout code
if: steps.check-labels.outputs.result == 'true'
uses: actions/checkout@v6
with:
token: ${{ steps.github-token.outputs.token }}
repository: ${{ github.event.pull_request.head.repo.full_name }}
ref: ${{ github.event.pull_request.head.ref }}
- name: Generate changelog entry
if: steps.check-labels.outputs.result == 'true'
uses: dangoslen/dependabot-changelog-helper@v4
with:
activationLabels: dependencies
changelogPath: './CHANGELOG.md'
entryPrefix: 'build(deps): '
- name: Commit changelog entry
if: steps.check-labels.outputs.result == 'true'
uses: stefanzweifel/git-auto-commit-action@v7
with:
commit_message: "docs(CHANGELOG.md): add dependency bump from dependabot"
================================================
FILE: .github/workflows/merge_to_main.yml
================================================
name: Build CLI Binaries
on:
pull_request:
branches:
- "main"
types:
[closed]
permissions:
contents: read
jobs:
build:
if: ${{ github.event.pull_request.merged }}
strategy:
matrix:
platform: [ubuntu-latest, macos-latest]
runs-on: ${{ matrix.platform }}
steps:
- name: "Checkout code"
uses: actions/checkout@v6
- name: "Install Node"
uses: actions/setup-node@v6
with:
node-version: 18
- name: "Install Rust"
uses: dtolnay/rust-toolchain@stable # to install tq via `make config`
- name: Install Go
uses: actions/setup-go@v6
with:
go-version: 1.25.x
- name: "Install dependencies"
run: make mod-download
shell: bash
- name: "Create Build"
run: make build
shell: bash
- name: "Upload Build"
uses: actions/upload-artifact@v7
with:
name: fastly-cli-build-${{ matrix.platform }}-${{ github.sha }}
path: fastly
================================================
FILE: .github/workflows/pr_test.yml
================================================
name: Test
on:
pull_request:
types:
- opened
- synchronize
- reopened
- labeled
- unlabeled
branches:
- main
permissions:
contents: read
# Stop any in-flight CI jobs when a new commit is pushed.
concurrency:
group: ${{ github.ref_name }}
cancel-in-progress: true
env:
GO_VERSION: 1.25.x
GOLANGCI_LINT_VERSION: v2.4
WASI_SDK_VERSION: 25
WASI_SDK_FULL_VERSION: "25.0"
jobs:
changelog:
if: github.actor != 'dependabot[bot]'
runs-on: ubuntu-latest
steps:
- uses: dangoslen/changelog-enforcer@v3
config:
runs-on: ubuntu-latest
steps:
- name: "Checkout code"
uses: actions/checkout@v6
- name: "Install Rust"
uses: dtolnay/rust-toolchain@stable
- name: "Generate static app config"
run: make config
- name: "Config Artifact"
uses: actions/upload-artifact@v7
with:
name: config-artifact-${{ github.sha }}
path: pkg/config/config.toml
lint:
needs: [config]
runs-on: ubuntu-latest
steps:
- name: "Checkout code"
uses: actions/checkout@v6
- name: "Install Rust"
uses: dtolnay/rust-toolchain@stable
- name: Install Go
uses: actions/setup-go@v6
with:
go-version: ${{ env.GO_VERSION }}
- name: "Install dependencies"
run: make mod-download
shell: bash
- name: "Config Artifact"
uses: actions/download-artifact@v8
with:
name: config-artifact-${{ github.sha }}
- name: "Move Config"
run: mv config.toml pkg/config/config.toml
- name: golangci-lint
uses: golangci/golangci-lint-action@v9
with:
version: ${{ env.GOLANGCI_LINT_VERSION }}
only-new-issues: true
test:
needs: [config]
strategy:
matrix:
tinygo-version: [0.31.2]
go-version: [1.25.x]
node-version: [18]
platform: [ubuntu-latest]
runs-on: ${{ matrix.platform }}
steps:
- name: "Checkout code"
uses: actions/checkout@v6
- name: "Install Go"
uses: actions/setup-go@v6
with:
go-version: ${{ matrix.go-version }}
# IMPORTANT: Disable caching to prevent cache restore errors later.
cache: false
- uses: acifani/setup-tinygo@v3
with:
tinygo-version: ${{ matrix.tinygo-version }}
- name: "Install Rust"
uses: dtolnay/rust-toolchain@stable
- name: "Add wasm32-wasip1 Rust target"
run: rustup target add wasm32-wasip1 --toolchain stable
- name: "Validate Rust toolchain"
run: rustup show && rustup target list --installed --toolchain stable
shell: bash
- name: "Install Node"
uses: actions/setup-node@v6
with:
node-version: ${{ matrix.node-version }}
- name: "Install WASI SDK"
run: |
wget -q https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-${{ env.WASI_SDK_VERSION }}/wasi-sdk-${{ env.WASI_SDK_FULL_VERSION }}-x86_64-linux.tar.gz
tar xzf wasi-sdk-${{ env.WASI_SDK_FULL_VERSION }}-x86_64-linux.tar.gz
echo "$(pwd)/wasi-sdk-${{ env.WASI_SDK_FULL_VERSION }}-x86_64-linux/bin" >> $GITHUB_PATH
shell: bash
- name: "Config Artifact"
uses: actions/download-artifact@v8
with:
name: config-artifact-${{ github.sha }}
- name: "Move Config"
run: mv config.toml pkg/config/config.toml
- name: "Modify git cloned repo files 'modified' times"
run: go run ./scripts/go-test-cache/main.go
# NOTE: Windows should fail quietly running pre-requisite target of `test`.
#
# On Windows, executing `make config` directly works fine.
# But when `config` is a pre-requisite to running `test`, it fails.
# But only when run via GitHub Actions.
# The ../../scripts/config.sh isn't run because you can't nest PowerShell instances.
# Each GitHub Action 'run' step is a PowerShell instance.
# And each instance is run as: powershell.exe -command ". '...'"
- name: "Test suite"
run: make test
shell: bash
env:
# NOTE: The following lets us focus the test run while debugging.
# TEST_ARGS: "-run TestBuild ./pkg/commands/compute/..."
TEST_COMPUTE_INIT: true
TEST_COMPUTE_BUILD: true
TEST_COMPUTE_DEPLOY: true
test-release:
if: contains(github.head_ref, 'release')
needs: [config]
strategy:
matrix:
tinygo-version: [0.31.2]
go-version: [1.25.x]
node-version: [18]
platform: [macos-latest, windows-latest]
runs-on: ${{ matrix.platform }}
steps:
- name: "Checkout code"
uses: actions/checkout@v6
- name: "Install Go"
uses: actions/setup-go@v6
with:
go-version: ${{ matrix.go-version }}
# IMPORTANT: Disable caching to prevent cache restore errors later.
cache: false
- uses: acifani/setup-tinygo@v3
with:
tinygo-version: ${{ matrix.tinygo-version }}
- name: "Install Rust"
uses: dtolnay/rust-toolchain@stable
- name: "Add wasm32-wasip1 Rust target"
run: rustup target add wasm32-wasip1 --toolchain stable
- name: "Validate Rust toolchain"
run: rustup show && rustup target list --installed --toolchain stable
shell: bash
- name: "Install Node"
uses: actions/setup-node@v6
with:
node-version: ${{ matrix.node-version }}
- name: "Install WASI SDK (Ubuntu)"
if: matrix.platform == 'ubuntu-latest'
run: |
wget -q https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-${{ env.WASI_SDK_VERSION }}/wasi-sdk-${{ env.WASI_SDK_FULL_VERSION }}-x86_64-linux.tar.gz
tar xzf wasi-sdk-${{ env.WASI_SDK_FULL_VERSION }}-x86_64-linux.tar.gz
echo "$(pwd)/wasi-sdk-${{ env.WASI_SDK_FULL_VERSION }}-x86_64-linux/bin" >> $GITHUB_PATH
shell: bash
- name: "Install WASI SDK (macOS)"
if: matrix.platform == 'macos-latest'
run: |
wget -q https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-${{ env.WASI_SDK_VERSION }}/wasi-sdk-${{ env.WASI_SDK_FULL_VERSION }}-arm64-macos.tar.gz
tar xzf wasi-sdk-${{ env.WASI_SDK_FULL_VERSION }}-arm64-macos.tar.gz
echo "$(pwd)/wasi-sdk-${{ env.WASI_SDK_FULL_VERSION }}-arm64-macos/bin" >> $GITHUB_PATH
shell: bash
- name: "Install WASI SDK (Windows)"
if: matrix.platform == 'windows-latest'
run: |
Invoke-WebRequest -Uri "https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-${{ env.WASI_SDK_VERSION }}/wasi-sdk-${{ env.WASI_SDK_FULL_VERSION }}-x86_64-windows.tar.gz" -OutFile "wasi-sdk.tar.gz"
tar -xzf wasi-sdk.tar.gz
echo "$PWD/wasi-sdk-${{ env.WASI_SDK_FULL_VERSION }}-x86_64-windows/bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
shell: pwsh
- name: "Config Artifact"
uses: actions/download-artifact@v8
with:
name: config-artifact-${{ github.sha }}
- name: "Move Config"
run: mv config.toml pkg/config/config.toml
- name: "Modify git cloned repo files 'modified' times"
run: go run ./scripts/go-test-cache/main.go
# NOTE: Windows should fail quietly running pre-requisite target of `test`.
#
# On Windows, executing `make config` directly works fine.
# But when `config` is a pre-requisite to running `test`, it fails.
# But only when run via GitHub Actions.
# The ../../scripts/config.sh isn't run because you can't nest PowerShell instances.
# Each GitHub Action 'run' step is a PowerShell instance.
# And each instance is run as: powershell.exe -command ". '...'"
- name: "Test suite"
run: make test
shell: bash
env:
# NOTE: The following lets us focus the test run while debugging.
# TEST_ARGS: "-run TestBuild ./pkg/commands/compute/..."
TEST_COMPUTE_INIT: true
TEST_COMPUTE_BUILD: true
TEST_COMPUTE_DEPLOY: true
docker-builds:
runs-on: ubuntu-latest
steps:
- name: "Checkout code"
uses: actions/checkout@v6
- name: Build docker images
run: |
for dockerFile in Dockerfile*; do docker build -f $dockerFile . ; done
tools-build:
name: "goreleaser tools build"
if: contains(github.event.pull_request.labels.*.name, 'tools')
needs: [config]
runs-on: ubuntu-latest
steps:
- name: "Checkout code"
uses: actions/checkout@v6
- name: "Install Go"
uses: actions/setup-go@v6
with:
go-version-file: tools/go.mod
- name: "Config Artifact"
uses: actions/download-artifact@v8
with:
name: config-artifact-${{ github.sha }}
- name: "Move Config"
run: mv config.toml pkg/config/config.toml
- name: "Test goreleaser tools build"
run: go tool -modfile=tools/go.mod goreleaser build --single-target --snapshot --skip=post-hooks --skip=validate
golangci-latest:
name: lint-latest (informational)
needs: [config]
runs-on: ubuntu-latest
continue-on-error: true
steps:
- name: Checkout code
uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Download config artifact
uses: actions/download-artifact@v8
with:
name: config-artifact-${{ github.sha }}
path: pkg/config
- name: Verify embedded config exists
run: |
test -f pkg/config/config.toml || { echo "missing pkg/config/config.toml"; ls -la pkg/config; exit 1; }
- name: Setup Go
uses: actions/setup-go@v6
with:
go-version: ${{ env.GO_VERSION }}
- name: Run golangci-lint@latest
id: lint
uses: golangci/golangci-lint-action@v9
with:
version: latest
only-new-issues: true
continue-on-error: true
- name: Report lint summary
run: |
if [ "${{ steps.lint.outcome }}" == "success" ]; then
echo "✅ golangci-lint@latest passed." >> $GITHUB_STEP_SUMMARY
else
echo "⚠️ golangci-lint@latest failed (informational only)." >> $GITHUB_STEP_SUMMARY
fi
================================================
FILE: .github/workflows/publish_release.yml
================================================
name: NPM Release
on:
workflow_dispatch:
release:
types:
- published
permissions:
id-token: write
contents: read
packages: write
jobs:
npm_release:
runs-on: ubuntu-latest
steps:
- name: "Checkout code"
uses: actions/checkout@v6
- name: "Fetch unshallow repo"
run: git fetch --prune --unshallow
- name: Set up Node.js
uses: actions/setup-node@v6
with:
node-version: 'lts/*'
registry-url: 'https://registry.npmjs.org'
- name: Set up auth for GitHub packages
run: |
npm config set "//npm.pkg.github.com/:_authToken" "\${NODE_AUTH_TOKEN}"
- name: Update npm packages to latest version
working-directory: ./npm/@fastly/cli
run: npm install && npm version "${{ github.ref_name }}" --allow-same-version
- name: Publish packages to npmjs.org
working-directory: ./npm/@fastly
run: |
for dir in *; do
(
echo $dir
cd $dir
npm publish --access=public
)
done
- name: Publish packages to GitHub packages
working-directory: ./npm/@fastly
env:
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
npm config set "@fastly:registry" "https://npm.pkg.github.com/"
for dir in *; do
(
echo $dir
cd $dir
npm publish --access=public
)
done
================================================
FILE: .github/workflows/tag_to_draft_release.yml
================================================
name: Draft Release from Tag
on:
workflow_dispatch:
push:
tags:
- 'v*'
permissions:
contents: read
jobs:
goreleaser:
runs-on: ubuntu-latest
steps:
- name: "Checkout code"
uses: actions/checkout@v6
- name: "Fetch unshallow repo"
run: git fetch --prune --unshallow
- name: "Install Go"
uses: actions/setup-go@v6
with:
go-version: '1.26.x'
- name: "Install Rust"
uses: dtolnay/rust-toolchain@stable
- name: "Generate static app config"
run: make config
# Passing the raw SSH private key causes an error:
# Load key "/tmp/id_*": invalid format
#
# Testing locally we discovered that storing in a file and passing the file path works.
#
# NOTE:
# The file aur_key must be added to .gitignore otherwise a 'dirty state' error is triggered in goreleaser.
# https://github.com/goreleaser/goreleaser/blob/9505cf7054b05a6e9a4a36f806d525bc33660e9e/www/docs/errors/dirty.md
#
# You must also reduce the permissions from a default of 0644 to 600 to avoid a 'bad permissions' error.
- name: "Store AUR_KEY in local file"
run: echo '${{ secrets.AUR_KEY }}' > '${{ github.workspace }}/aur_key' && chmod 600 '${{ github.workspace }}/aur_key'
- name: "Run GoReleaser"
uses: goreleaser/goreleaser-action@v7
with:
# goreleaser version (NOT goreleaser-action version)
# update inline with the Makefile
version: '~> v2'
args: release --clean
env:
AUR_KEY: '${{ github.workspace }}/aur_key'
GITHUB_TOKEN: ${{ secrets.RELEASE_GITHUB_TOKEN }}
================================================
FILE: .gitignore
================================================
# Fastly binary
**/fastly
# But allow fastly main package
!cmd/fastly
RELEASE_CHANGELOG.md
# Fastly package format files
**/fastly.toml
!pkg/commands/compute/testdata/build/rust/fastly.toml
**/Cargo.toml
!pkg/commands/compute/testdata/build/rust/Cargo.toml
**/Cargo.lock
!pkg/commands/compute/testdata/build/rust/Cargo.lock
**/*.tar.gz
!pkg/github/testdata/*.tar.gz
!pkg/commands/compute/testdata/deploy/pkg/package.tar.gz
**/bin
**/src
!pkg/commands/compute/testdata/build/rust/src
!pkg/commands/compute/testdata/build/javascript/src
**/target
rust-toolchain
.cargo
**/node_modules
pkg/commands/compute/package-lock.json
# Binaries for programs and plugins
*.exe
*.exe~*
*.dll
*.so
*.dylib
# Test binary, build with `go test -c`
*.test
# Output of the go coverage tool, specifically when used with LiteIDE
*.out
# Ignore IDEs
.idea
# Ignore Vim
# https://github.com/github/gitignore/blob/41ec05833ae00be887bab36fceaee63611e86189/Global/Vim.gitignore
[._]*.s[a-v][a-z]
[._]*.sw[a-p]
[._]s[a-rt-v][a-z]
[._]ss[a-gi-z]
[._]sw[a-p]
# Ignore OS files
.DS_Store
# Ignore binaries
dist/
build/
!pkg/commands/compute/testdata/build/
# Ignore application configuration
vendor/
# Ignore generated file for AUR_KEY which is passed to goreleaser as an environment variable.
aur_key
# Ignore static config that is embedded into the CLI
# All Makefile targets use the 'config' as a prerequisite (which generates the config)
pkg/config/config.toml
# Ignore commitlint tool
commitlint.config.js
callvis.svg
# Ignore generated npm packages
npm/@fastly/cli-*/
================================================
FILE: .golangci.yml
================================================
version: "2"
run:
allow-parallel-runners: true
modules-download-mode: readonly
linters:
enable:
- durationcheck
- errcheck
- exhaustive
- forcetypeassert
- gocritic
- godot
- gosec
- govet
- ineffassign
- makezero
- misspell
- nilerr
- predeclared
- revive
- staticcheck
- unconvert
- unparam
- unused
settings:
govet:
enable:
- nilness
staticcheck:
checks:
- all
- '-QF1008'
exclusions:
generated: lax
presets:
- comments
- common-false-positives
- legacy
- std-error-handling
paths:
- third_party$
- builtin$
- examples$
formatters:
enable:
- gofumpt
- goimports
settings:
goimports:
local-prefixes:
- github.com/fastly
exclusions:
generated: lax
paths:
- third_party$
- builtin$
- examples$
================================================
FILE: .goreleaser.yml
================================================
# https://goreleaser.com/customization/project/
project_name: fastly
version: 2
# https://goreleaser.com/customization/release/
release:
draft: true
prerelease: auto
extra_files:
- glob: "dist/usage.json"
# https://goreleaser.com/customization/hooks/
before:
hooks:
- go mod tidy
- go mod download
# https://goreleaser.com/customization/builds/
builds:
- <<: &build_defaults
main: ./cmd/fastly
ldflags:
- -s -w -X "github.com/fastly/cli/pkg/revision.AppVersion=v{{ .Version }}"
- -X "github.com/fastly/cli/pkg/revision.GitCommit={{ .ShortCommit }}"
- -X "github.com/fastly/cli/pkg/revision.Environment=release"
env:
- CGO_ENABLED=0
id: macos
goos: [darwin]
goarch: [amd64, arm64]
- <<: *build_defaults
env:
- CGO_ENABLED=0
id: linux
goos: [linux]
goarch: ["386", amd64, arm64]
- <<: *build_defaults
env:
- CGO_ENABLED=0
id: windows
goos: [windows]
goarch: ["386", amd64, arm64]
- <<: *build_defaults
env:
- CGO_ENABLED=0
id: generate-usage
goos: [linux]
goarch: [amd64]
binary: 'fastly-usage' # we rename the binary to prevent an error caused by the earlier 'linux/amd64' step
# which already creates a 'fastly' binary in '/usr/local/bin'.
hooks:
post:
- cmd: "scripts/documentation.sh {{ .Path }}"
# https://goreleaser.com/customization/archive/
archives:
- id: nix
ids: [macos, linux]
<<: &archive_defaults
name_template: "{{ .ProjectName }}_v{{ .Version }}_{{ .Os }}-{{ .Arch }}{{ if .Arm }}v{{ .Arm }}{{ end }}"
files:
- none*
wrap_in_directory: false
formats: [tar.gz]
- id: windows-tar
ids: [windows]
<<: *archive_defaults
wrap_in_directory: false
formats: [tar.gz]
- id: windows-zip
ids: [windows]
<<: *archive_defaults
wrap_in_directory: false
formats: [zip]
# https://goreleaser.com/customization/aur/
aurs:
- homepage: "https://github.com/fastly/cli"
description: "A CLI for interacting with the Fastly platform"
maintainers:
- 'oss@fastly.com'
license: "Apache license 2.0"
skip_upload: auto
provides:
- fastly
conflicts:
- fastly
# The SSH private key that should be used to commit to the Git repository.
# This can either be a path or the key contents.
#
# WARNING: do not expose your private key in the config file!
private_key: '{{ .Env.AUR_KEY }}'
# The AUR Git URL for this package.
# Defaults to empty.
git_url: 'ssh://aur@aur.archlinux.org/fastly-bin.git'
# List of packages that are not needed for the software to function,
# but provide additional features.
#
# Must be in the format `package: short description of the extra functionality`.
#
# Defaults to empty.
optdepends:
- 'viceroy: for running service locally'
# The value to be passed to `GIT_SSH_COMMAND`.
#
#
# Defaults to `ssh -i {{ .KeyPath }} -o StrictHostKeyChecking=accept-new -F /dev/null`.
git_ssh_command: 'ssh -i {{ .KeyPath }} -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -F /dev/null'
# https://goreleaser.com/customization/homebrew/
brews:
- name: fastly
ids: [nix]
repository:
owner: fastly
name: homebrew-tap
skip_upload: auto
description: A CLI for interacting with the Fastly platform
homepage: https://github.com/fastly/cli
directory: Formula
custom_block: |
head do
url "https://github.com/fastly/cli.git"
depends_on "go"
end
install: |-
system "make" if build.head?
bin.install "fastly"
(bash_completion/"fastly.sh").write `#{bin}/fastly --completion-script-bash`
(zsh_completion/"_fastly").write `#{bin}/fastly --completion-script-zsh`
test: |-
help_text = shell_output("#{bin}/fastly --help")
assert_includes help_text, "Usage:"
# https://goreleaser.com/customization/nfpm/
nfpms:
- license: Apache 2.0
maintainer: Fastly
homepage: https://github.com/fastly/cli
bindir: /usr/local/bin
description: CLI tool for interacting with the Fastly API.
formats:
- deb
- rpm
contents:
- src: deb-copyright
dst: /usr/share/doc/fastly/copyright
packager: deb
# https://goreleaser.com/customization/checksum/
checksum:
name_template: "{{ .ProjectName }}_v{{ .Version }}_SHA256SUMS"
# https://goreleaser.com/customization/snapshots/
snapshot:
version_template: "{{ .Tag }}-next"
# https://goreleaser.com/customization/changelog/
changelog:
disable: true
# https://goreleaser.com/customization/docker/
# dockers:
# - <<: &build_opts
# use: buildx
# goos: linux
# goarch: amd64
# image_templates:
# - "ghcr.io/fastly/cli:{{ .Version }}"
# build_flag_templates:
# - "--platform=linux/amd64"
# - --label=title={{ .ProjectName }}
# - --label=description={{ .ProjectName }}
# - --label=url=https://github.com/fastly/cli
# - --label=source=https://github.com/fastly/cli
# - --label=version={{ .Version }}
# - --label=created={{ time "2006-01-02T15:04:05Z07:00" }}
# - --label=revision={{ .FullCommit }}
# - --label=licenses=Apache-2.0
# dockerfile: Dockerfile-node
# - <<: *build_opts
# dockerfile: Dockerfile-rust
================================================
FILE: .tmpl/create.go
================================================
package ${CLI_PACKAGE}
import (
"io"
"github.com/fastly/cli/pkg/argparser"
"github.com/fastly/cli/pkg/manifest"
"github.com/fastly/cli/pkg/config"
"github.com/fastly/cli/pkg/errors"
"github.com/fastly/cli/pkg/text"
"github.com/fastly/go-fastly/v4/fastly"
)
// NewCreateCommand returns a usable command registered under the parent.
func NewCreateCommand(parent argparser.Registerer, globals *config.Data, data manifest.Data) *CreateCommand {
var c CreateCommand
c.CmdClause = parent.Command("create", "<...>").Alias("add")
c.Globals = globals
c.manifest = data
// Required flags
// c.CmdClause.Flag("<...>", "<...>").Required().StringVar(&c.<...>)
c.RegisterFlag(argparser.StringFlagOpts{
Name: argparser.FlagVersionName,
Description: argparser.FlagVersionDesc,
Dst: &c.serviceVersion.Value,
Required: true,
})
// Optional flags
// c.CmdClause.Flag("<...>", "<...>").Action(c.<...>.Set).StringVar(&c.<...>.Value)
c.RegisterAutoCloneFlag(argparser.AutoCloneFlagOpts{
Action: c.autoClone.Set,
Dst: &c.autoClone.Value,
})
c.RegisterFlag(argparser.StringFlagOpts{
Name: argparser.FlagServiceIDName,
Description: argparser.FlagServiceIDDesc,
Dst: &c.manifest.Flag.ServiceID,
Short: 's',
})
c.RegisterFlag(argparser.StringFlagOpts{
Action: c.serviceName.Set,
Name: argparser.FlagServiceName,
Description: argparser.FlagServiceNameDesc,
Dst: &c.serviceName.Value,
})
return &c
}
// CreateCommand calls the Fastly API to create an appropriate resource.
type CreateCommand struct {
argparser.Base
autoClone argparser.OptionalAutoClone
manifest manifest.Data
serviceName argparser.OptionalServiceNameID
serviceVersion argparser.OptionalServiceVersion
}
// Exec invokes the application logic for the command.
func (c *CreateCommand) Exec(in io.Reader, out io.Writer) error {
serviceID, serviceVersion, err := argparser.ServiceDetails(argparser.ServiceDetailsOpts{
Active: optional.Of(false),
Locked: optional.Of(false),
AutoCloneFlag: c.autoClone,
Client: c.Globals.Client,
Manifest: c.manifest,
Out: out,
ServiceNameFlag: c.serviceName,
ServiceVersionFlag: c.serviceVersion,
VerboseMode: c.Globals.Flag.Verbose,
})
if err != nil {
c.Globals.ErrLog.AddWithContext(err, map[string]interface{}{
"Service ID": serviceID,
"Service Version": errors.ServiceVersion(serviceVersion),
})
return err
}
input := c.constructInput(serviceID, serviceVersion.Number)
r, err := c.Globals.Client.Create${CLI_API}(input)
if err != nil {
c.Globals.ErrLog.AddWithContext(err, map[string]interface{}{
"Service ID": serviceID,
"Service Version": serviceVersion.Number,
})
return err
}
text.Success(out, "Created <...> '%s' (service: %s, version: %d)", r.<...>, r.ServiceID, r.ServiceVersion)
return nil
}
// constructInput transforms values parsed from CLI flags into an object to be used by the API client library.
func (c *CreateCommand) constructInput(serviceID string, serviceVersion int) *fastly.Create${CLI_API}Input {
var input fastly.Create${CLI_API}Input
input.ServiceID = serviceID
input.ServiceVersion = serviceVersion
// if c.<...>.WasSet {
// input.<...> = c.<...>.Value
// }
return &input
}
================================================
FILE: .tmpl/delete.go
================================================
package ${CLI_PACKAGE}
import (
"io"
"github.com/fastly/cli/pkg/argparser"
"github.com/fastly/cli/pkg/manifest"
"github.com/fastly/cli/pkg/config"
"github.com/fastly/cli/pkg/errors"
"github.com/fastly/cli/pkg/text"
"github.com/fastly/go-fastly/v4/fastly"
)
// NewDeleteCommand returns a usable command registered under the parent.
func NewDeleteCommand(parent argparser.Registerer, globals *config.Data, data manifest.Data) *DeleteCommand {
var c DeleteCommand
c.CmdClause = parent.Command("delete", "<...>").Alias("remove")
c.Globals = globals
c.manifest = data
// Required flags
// c.CmdClause.Flag("<...>", "<...>").Required().StringVar(&c.<...>)
c.RegisterFlag(argparser.StringFlagOpts{
Name: argparser.FlagVersionName,
Description: argparser.FlagVersionDesc,
Dst: &c.serviceVersion.Value,
Required: true,
})
// Optional flags
// c.CmdClause.Flag("<...>", "<...>").Action(c.<...>.Set).StringVar(&c.<...>.Value)
c.RegisterAutoCloneFlag(argparser.AutoCloneFlagOpts{
Action: c.autoClone.Set,
Dst: &c.autoClone.Value,
})
c.RegisterFlag(argparser.StringFlagOpts{
Name: argparser.FlagServiceIDName,
Description: argparser.FlagServiceIDDesc,
Dst: &c.manifest.Flag.ServiceID,
Short: 's',
})
c.RegisterFlag(argparser.StringFlagOpts{
Action: c.serviceName.Set,
Name: argparser.FlagServiceName,
Description: argparser.FlagServiceNameDesc,
Dst: &c.serviceName.Value,
})
return &c
}
// DeleteCommand calls the Fastly API to delete an appropriate resource.
type DeleteCommand struct {
argparser.Base
autoClone argparser.OptionalAutoClone
manifest manifest.Data
serviceName argparser.OptionalServiceNameID
serviceVersion argparser.OptionalServiceVersion
}
// Exec invokes the application logic for the command.
func (c *DeleteCommand) Exec(in io.Reader, out io.Writer) error {
serviceID, serviceVersion, err := argparser.ServiceDetails(argparser.ServiceDetailsOpts{
Active: optional.Of(false),
Locked: optional.Of(false),
AutoCloneFlag: c.autoClone,
Client: c.Globals.Client,
Manifest: c.manifest,
Out: out,
ServiceNameFlag: c.serviceName,
ServiceVersionFlag: c.serviceVersion,
VerboseMode: c.Globals.Flag.Verbose,
})
if err != nil {
c.Globals.ErrLog.AddWithContext(err, map[string]interface{}{
"Service ID": serviceID,
"Service Version": errors.ServiceVersion(serviceVersion),
})
return err
}
input := c.constructInput(serviceID, serviceVersion.Number)
err := c.Globals.Client.Delete${CLI_API}(input)
if err != nil {
c.Globals.ErrLog.AddWithContext(err, map[string]interface{}{
"Service ID": serviceID,
"Service Version": serviceVersion.Number,
})
return err
}
text.Success(out, "Deleted <...> '%s' (service: %s, version: %d)", c.<...>, serviceID, serviceVersion.Number)
return nil
}
// constructInput transforms values parsed from CLI flags into an object to be used by the API client library.
func (c *DeleteCommand) constructInput(serviceID string, serviceVersion int) *fastly.Delete${CLI_API}Input {
var input fastly.Delete${CLI_API}Input
input.ACLID = c.aclID
input.ID = c.id
input.ServiceID = serviceID
return &input
}
================================================
FILE: .tmpl/describe.go
================================================
package ${CLI_PACKAGE}
import (
"fmt"
"io"
"github.com/fastly/cli/pkg/argparser"
"github.com/fastly/cli/pkg/manifest"
"github.com/fastly/cli/pkg/config"
"github.com/fastly/cli/pkg/errors"
"github.com/fastly/go-fastly/v4/fastly"
)
// NewDescribeCommand returns a usable command registered under the parent.
func NewDescribeCommand(parent argparser.Registerer, globals *config.Data, data manifest.Data) *DescribeCommand {
var c DescribeCommand
c.CmdClause = parent.Command("describe", "<...>").Alias("get")
c.Globals = globals
c.manifest = data
// Required flags
// c.CmdClause.Flag("<...>", "<...>").Required().StringVar(&c.<...>)
c.RegisterFlag(argparser.StringFlagOpts{
Name: argparser.FlagVersionName,
Description: argparser.FlagVersionDesc,
Dst: &c.serviceVersion.Value,
Required: true,
})
// Optional flags
// c.CmdClause.Flag("<...>", "<...>").Action(c.<...>.Set).StringVar(&c.<...>.Value)
c.RegisterFlag(argparser.StringFlagOpts{
Name: argparser.FlagServiceIDName,
Description: argparser.FlagServiceIDDesc,
Dst: &c.manifest.Flag.ServiceID,
Short: 's',
})
c.RegisterFlag(argparser.StringFlagOpts{
Action: c.serviceName.Set,
Name: argparser.FlagServiceName,
Description: argparser.FlagServiceNameDesc,
Dst: &c.serviceName.Value,
})
return &c
}
// DescribeCommand calls the Fastly API to describe an appropriate resource.
type DescribeCommand struct {
argparser.Base
manifest manifest.Data
serviceName argparser.OptionalServiceNameID
serviceVersion argparser.OptionalServiceVersion
}
// Exec invokes the application logic for the command.
func (c *DescribeCommand) Exec(in io.Reader, out io.Writer) error {
serviceID, serviceVersion, err := argparser.ServiceDetails(argparser.ServiceDetailsOpts{
Client: c.Globals.Client,
Manifest: c.manifest,
Out: out,
ServiceNameFlag: c.serviceName,
ServiceVersionFlag: c.serviceVersion,
VerboseMode: c.Globals.Flag.Verbose,
})
if err != nil {
c.Globals.ErrLog.AddWithContext(err, map[string]interface{}{
"Service ID": serviceID,
"Service Version": errors.ServiceVersion(serviceVersion),
})
return err
}
input := c.constructInput(serviceID, serviceVersion.Number)
r, err := c.Globals.Client.Get${CLI_API}(input)
if err != nil {
c.Globals.ErrLog.AddWithContext(err, map[string]interface{}{
"Service ID": serviceID,
"Service Version": serviceVersion.Number,
})
return err
}
c.print(out, r)
return nil
}
// constructInput transforms values parsed from CLI flags into an object to be used by the API client library.
func (c *DescribeCommand) constructInput(serviceID string, serviceVersion int) *fastly.Get${CLI_API}Input {
var input fastly.Get${CLI_API}Input
input.ACLID = c.aclID
input.ID = c.id
input.ServiceID = serviceID
return &input
}
// print displays the information returned from the API.
func (c *DescribeCommand) print(out io.Writer, r *fastly.${CLI_API}) {
fmt.Fprintf(out, "\nService ID: %s\n", r.ServiceID)
fmt.Fprintf(out, "Service Version: %d\n\n", r.ServiceVersion)
fmt.Fprintf(out, "<...>: %s\n\n", r.<...>)
if r.CreatedAt != nil {
fmt.Fprintf(out, "Created at: %s\n", r.CreatedAt)
}
if r.UpdatedAt != nil {
fmt.Fprintf(out, "Updated at: %s\n", r.UpdatedAt)
}
if r.DeletedAt != nil {
fmt.Fprintf(out, "Deleted at: %s\n", r.DeletedAt)
}
}
================================================
FILE: .tmpl/doc.go
================================================
// Package ${CLI_PACKAGE} contains commands to <...>.
package ${CLI_PACKAGE}
================================================
FILE: .tmpl/doc_parent.go
================================================
// Package ${CLI_CATEGORY} contains commands for <...>.
package ${CLI_CATEGORY}
================================================
FILE: .tmpl/list.go
================================================
package ${CLI_PACKAGE}
import (
"fmt"
"io"
"github.com/fastly/cli/pkg/argparser"
"github.com/fastly/cli/pkg/manifest"
"github.com/fastly/cli/pkg/config"
"github.com/fastly/cli/pkg/errors"
"github.com/fastly/cli/pkg/text"
"github.com/fastly/go-fastly/v4/fastly"
)
// NewListCommand returns a usable command registered under the parent.
func NewListCommand(parent argparser.Registerer, globals *config.Data, data manifest.Data) *ListCommand {
var c ListCommand
c.CmdClause = parent.Command("list", "<...>")
c.Globals = globals
c.manifest = data
// Required flags
// c.CmdClause.Flag("<...>", "<...>").Required().StringVar(&c.<...>)
c.RegisterFlag(argparser.StringFlagOpts{
Name: argparser.FlagVersionName,
Description: argparser.FlagVersionDesc,
Dst: &c.serviceVersion.Value,
Required: true,
})
// Optional Flags
// c.CmdClause.Flag("<...>", "<...>").Action(c.<...>.Set).StringVar(&c.<...>.Value)
c.RegisterFlag(argparser.StringFlagOpts{
Name: argparser.FlagServiceIDName,
Description: argparser.FlagServiceIDDesc,
Dst: &c.manifest.Flag.ServiceID,
Short: 's',
})
c.RegisterFlag(argparser.StringFlagOpts{
Action: c.serviceName.Set,
Name: argparser.FlagServiceName,
Description: argparser.FlagServiceNameDesc,
Dst: &c.serviceName.Value,
})
return &c
}
// ListCommand calls the Fastly API to list appropriate resources.
type ListCommand struct {
argparser.Base
manifest manifest.Data
serviceName argparser.OptionalServiceNameID
serviceVersion argparser.OptionalServiceVersion
}
// Exec invokes the application logic for the command.
func (c *ListCommand) Exec(in io.Reader, out io.Writer) error {
serviceID, serviceVersion, err := argparser.ServiceDetails(argparser.ServiceDetailsOpts{
Client: c.Globals.Client,
Manifest: c.manifest,
Out: out,
ServiceNameFlag: c.serviceName,
ServiceVersionFlag: c.serviceVersion,
VerboseMode: c.Globals.Flag.Verbose,
})
if err != nil {
c.Globals.ErrLog.AddWithContext(err, map[string]interface{}{
"Service ID": serviceID,
"Service Version": errors.ServiceVersion(serviceVersion),
})
return err
}
input := c.constructInput(serviceID, serviceVersion.Number)
rs, err := c.Globals.Client.List${CLI_API}s(input)
if err != nil {
c.Globals.ErrLog.AddWithContext(err, map[string]interface{}{
"Service ID": serviceID,
"Service Version": serviceVersion.Number,
})
return err
}
if c.Globals.Verbose() {
c.printVerbose(out, serviceID, rs)
} else {
c.printSummary(out, rs)
}
return nil
}
// constructInput transforms values parsed from CLI flags into an object to be used by the API client library.
func (c *ListCommand) constructInput(serviceID string) *fastly.List${CLI_API}sInput {
var input fastly.List${CLI_API}sInput
input.ServiceID = serviceID
input.ServiceVersion = serviceVersion
return &input
}
// printVerbose displays the information returned from the API in a verbose
// format.
func (c *ListCommand) printVerbose(out io.Writer, serviceID string, serviceVersion int, rs []*fastly.${CLI_API}) {
fmt.Fprintf(out, "\nService ID: %s\n", serviceID)
fmt.Fprintf(out, "Service Version: %d\n", serviceVersion)
for _, r := range rs {
fmt.Fprintf(out, "\n<...>: %s\n\n", r.<...>)
if r.CreatedAt != nil {
fmt.Fprintf(out, "Created at: %s\n", r.CreatedAt)
}
if r.UpdatedAt != nil {
fmt.Fprintf(out, "Updated at: %s\n", r.UpdatedAt)
}
if r.DeletedAt != nil {
fmt.Fprintf(out, "Deleted at: %s\n", r.DeletedAt)
}
}
}
// printSummary displays the information returned from the API in a summarised
// format.
func (c *ListCommand) printSummary(out io.Writer, rs []*fastly.${CLI_API}) {
t := text.NewTable(out)
t.AddHeader("SERVICE ID", "<...>")
for _, r := range rs {
t.AddLine(r.ServiceID, r.<...>)
}
t.Print()
}
================================================
FILE: .tmpl/root.go
================================================
package ${CLI_PACKAGE}
import (
"io"
"github.com/fastly/cli/pkg/argparser"
"github.com/fastly/cli/pkg/config"
)
// RootCommand is the parent command for all subcommands in this package.
// It should be installed under the primary root command.
type RootCommand struct {
argparser.Base
// no flags
}
// NewRootCommand returns a new command registered in the parent.
func NewRootCommand(parent argparser.Registerer, globals *config.Data) *RootCommand {
var c RootCommand
c.Globals = globals
c.CmdClause = parent.Command("${CLI_COMMAND}", "<...>")
return &c
}
// Exec implements the command interface.
func (c *RootCommand) Exec(in io.Reader, out io.Writer) error {
panic("unreachable")
}
================================================
FILE: .tmpl/root_parent.go
================================================
package ${CLI_CATEGORY}
import (
"io"
"github.com/fastly/cli/pkg/argparser"
"github.com/fastly/cli/pkg/config"
)
// RootCommand is the parent command for all subcommands in this package.
// It should be installed under the primary root command.
type RootCommand struct {
argparser.Base
// no flags
}
// NewRootCommand returns a new command registered in the parent.
func NewRootCommand(parent argparser.Registerer, globals *config.Data) *RootCommand {
var c RootCommand
c.Globals = globals
c.CmdClause = parent.Command("${CLI_CATEGORY_COMMAND}", "<...>")
return &c
}
// Exec implements the command interface.
func (c *RootCommand) Exec(in io.Reader, out io.Writer) error {
panic("unreachable")
}
================================================
FILE: .tmpl/test.go
================================================
package ${CLI_PACKAGE}_test
import (
"testing"
"github.com/fastly/go-fastly/v10/fastly"
"github.com/fastly/cli/pkg/mock"
"github.com/fastly/cli/pkg/testutil"
)
const (
baseCommand = "${CLI_COMMAND}"
)
func TestCreate(t *testing.T) {
scenarios := []testutil.CLIScenario{
{
Name: "validate missing --version flag",
WantError: "error parsing arguments: required flag --version not provided",
},
{
Name: "validate missing --service-id flag",
Args: "--version 3",
WantError: "error reading service: no service ID found",
},
{
Name: "validate missing --autoclone flag with 'active' service",
API: mock.API{
ListVersionsFn: testutil.ListVersions,
},
Args: "--service-id 123 --version 1",
WantError: "service version 1 is active",
},
{
Name: "validate missing --autoclone flag with 'locked' service",
API: mock.API{
ListVersionsFn: testutil.ListVersions,
},
Args: "--service-id 123 --version 2",
WantError: "service version 2 is locked",
},
{
Name: "validate Create${CLI_API} API error",
API: mock.API{
ListVersionsFn: testutil.ListVersions,
Create${CLI_API}Fn: func(i *fastly.Create${CLI_API}Input) (*fastly.${CLI_API}, error) {
return nil, testutil.Err
},
},
Args: "--service-id 123 --version 3",
WantError: testutil.Err.Error(),
},
{
Name: "validate Create${CLI_API} API success",
API: mock.API{
ListVersionsFn: testutil.ListVersions,
Create${CLI_API}Fn: func(i *fastly.Create${CLI_API}Input) (*fastly.${CLI_API}, error) {
return &fastly.${CLI_API}{
ServiceID: i.ServiceID,
}, nil
},
},
Args: "--service-id 123 --version 3",
WantOutput: "Created <...> '456' (service: 123)",
},
{
Name: "validate --autoclone results in cloned service version",
API: mock.API{
ListVersionsFn: testutil.ListVersions,
CloneVersionFn: testutil.CloneVersionResult(4),
Create${CLI_API}Fn: func(i *fastly.Create${CLI_API}Input) (*fastly.${CLI_API}, error) {
return &fastly.VCL{
ServiceID: i.ServiceID,
ServiceVersion: i.ServiceVersion,
}, nil
},
},
Args: "--autoclone --service-id 123 --version 1",
WantOutput: "Created <...> 'foo' (service: 123, version: 4)",
},
}
testutil.RunCLIScenarios(t, []string{baseCommand, "create"}, scenarios)
}
func TestDelete(t *testing.T) {
scenarios := []testutil.CLIScenario{
{
Name: "validate missing --version flag",
WantError: "error parsing arguments: required flag --version not provided",
},
{
Name: "validate missing --service-id flag",
Args: "--version 1",
WantError: "error reading service: no service ID found",
},
{
Name: "validate missing --autoclone flag with 'active' service",
API: mock.API{
ListVersionsFn: testutil.ListVersions,
},
Args: "--service-id 123 --version 1",
WantError: "service version 1 is active",
},
{
Name: "validate missing --autoclone flag with 'locked' service",
API: mock.API{
ListVersionsFn: testutil.ListVersions,
},
Args: "--service-id 123 --version 2",
WantError: "service version 2 is locked",
},
{
Name: "validate Delete${CLI_API} API error",
API: mock.API{
ListVersionsFn: testutil.ListVersions,
Delete${CLI_API}Fn: func(i *fastly.Delete${CLI_API}Input) error {
return testutil.Err
},
},
Args: "--service-id 123 --version 3",
WantError: testutil.Err.Error(),
},
{
Name: "validate Delete${CLI_API} API success",
API: mock.API{
ListVersionsFn: testutil.ListVersions,
Delete${CLI_API}Fn: func(i *fastly.Delete${CLI_API}Input) error {
return nil
},
},
Args: "--service-id 123 --version 3",
WantOutput: "Deleted <...> '456' (service: 123)",
},
{
Name: "validate --autoclone results in cloned service version",
API: mock.API{
ListVersionsFn: testutil.ListVersions,
CloneVersionFn: testutil.CloneVersionResult(4),
Delete${CLI_API}Fn: func(i *fastly.Delete${CLI_API}Input) error {
return nil
},
},
Args: "--autoclone --service-id 123 --version 1",
WantOutput: "Deleted <...> 'foo' (service: 123, version: 4)",
},
}
testutil.RunCLIScenarios(t, []string{baseCommand, "delete"}, scenarios)
}
func TestDescribe(t *testing.T) {
scenarios := []testutil.CLIScenario{
{
Name: "validate missing --version flag",
WantError: "error parsing arguments: required flag --version not provided",
},
{
Name: "validate missing --service-id flag",
Args: "--version 3",
WantError: "error reading service: no service ID found",
},
{
Name: "validate Get${CLI_API} API error",
API: mock.API{
ListVersionsFn: testutil.ListVersions,
Get${CLI_API}Fn: func(i *fastly.Get${CLI_API}Input) (*fastly.${CLI_API}, error) {
return nil, testutil.Err
},
},
Args: "--service-id 123 --version 3",
WantError: testutil.Err.Error(),
},
{
Name: "validate Get${CLI_API} API success",
API: mock.API{
ListVersionsFn: testutil.ListVersions,
Get${CLI_API}Fn: get${CLI_API},
},
Args: "--service-id 123 --version 3",
WantOutput: "<...>",
},
}
testutil.RunCLIScenarios(t, []string{baseCommand, "describe"}, scenarios)
}
func TestList(t *testing.T) {
scenarios := []testutil.CLIScenario{
{
Name: "validate missing --version flag",
WantError: "error parsing arguments: required flag --version not provided",
},
{
Name: "validate missing --service-id flag",
Args: "--version 3",
WantError: "error reading service: no service ID found",
},
{
Name: "validate List${CLI_API}s API error",
API: mock.API{
ListVersionsFn: testutil.ListVersions,
List${CLI_API}sFn: func(i *fastly.List${CLI_API}sInput) ([]*fastly.${CLI_API}, error) {
return nil, testutil.Err
},
},
Args: "--service-id 123 --version 3",
WantError: testutil.Err.Error(),
},
{
Name: "validate List${CLI_API}s API success",
API: mock.API{
ListVersionsFn: testutil.ListVersions,
List${CLI_API}sFn: list${CLI_API}s,
},
Args: "--service-id 123 --version 3",
WantOutput: "<...>",
},
{
Name: "validate --verbose flag",
API: mock.API{
ListVersionsFn: testutil.ListVersions,
List${CLI_API}sFn: list${CLI_API}s,
},
Args: "--service-id 123 --version 3 --verbose",
WantOutput: "<...>",
},
}
testutil.RunCLIScenarios(t, []string{baseCommand, "list"}, scenarios)
}
func TestUpdate(t *testing.T) {
scenarios := []testutil.CLIScenario{
{
Name: "validate missing --name flag",
Args: "--version 3",
WantError: "error parsing arguments: required flag --name not provided",
},
{
Name: "validate missing --version flag",
Args: "--name foobar",
WantError: "error parsing arguments: required flag --version not provided",
},
{
Name: "validate missing --service-id flag",
Args: "--name foobar --version 3",
WantError: "error reading service: no service ID found",
},
{
Name: "validate missing --autoclone flag with 'active' service",
API: mock.API{
ListVersionsFn: testutil.ListVersions,
},
Args: "--name foobar --service-id 123 --version 1",
WantError: "service version 1 is active",
},
{
Name: "validate missing --autoclone flag with 'locked' service",
API: mock.API{
ListVersionsFn: testutil.ListVersions,
},
Args: "--name foobar --service-id 123 --version 2",
WantError: "service version 2 is locked",
},
{
Name: "validate Update${CLI_API} API error",
API: mock.API{
ListVersionsFn: testutil.ListVersions,
Update${CLI_API}Fn: func(i *fastly.Update${CLI_API}Input) (*fastly.${CLI_API}, error) {
return nil, testutil.Err
},
},
Args: "--name foobar --service-id 123 --version 3",
WantError: testutil.Err.Error(),
},
{
Name: "validate Update${CLI_API} API success with --new-name",
API: mock.API{
ListVersionsFn: testutil.ListVersions,
Update${CLI_API}Fn: func(i *fastly.Update${CLI_API}Input) (*fastly.${CLI_API}, error) {
return &fastly.${CLI_API}{
Name: *i.NewName,
ServiceID: i.ServiceID,
ServiceVersion: i.ServiceVersion,
}, nil
},
},
Args: "--name foobar --new-name beepboop --service-id 123 --version 3",
WantOutput: "Updated <...> 'beepboop' (previously: 'foobar', service: 123, version: 3)",
},
}
testutil.RunCLIScenarios(t, []string{baseCommand, "update"}, scenarios)
}
func get${CLI_API}(i *fastly.Get${CLI_API}Input) (*fastly.${CLI_API}, error) {
t := testutil.Date
return &fastly.${CLI_API}{
ServiceID: i.ServiceID,
CreatedAt: &t,
DeletedAt: &t,
UpdatedAt: &t,
}, nil
}
func list${CLI_API}s(i *fastly.List${CLI_API}sInput) ([]*fastly.${CLI_API}, error) {
t := testutil.Date
vs := []*fastly.${CLI_API}{
{
ServiceID: i.ServiceID,
CreatedAt: &t,
DeletedAt: &t,
UpdatedAt: &t,
},
{
ServiceID: i.ServiceID,
CreatedAt: &t,
DeletedAt: &t,
UpdatedAt: &t,
},
}
return vs, nil
}
================================================
FILE: .tmpl/update.go
================================================
package ${CLI_PACKAGE}
import (
"encoding/json"
"fmt"
"io"
"github.com/fastly/cli/pkg/argparser"
"github.com/fastly/cli/pkg/manifest"
"github.com/fastly/cli/pkg/config"
"github.com/fastly/cli/pkg/errors"
"github.com/fastly/cli/pkg/text"
"github.com/fastly/go-fastly/v4/fastly"
)
// NewUpdateCommand returns a usable command registered under the parent.
func NewUpdateCommand(parent argparser.Registerer, globals *config.Data, data manifest.Data) *UpdateCommand {
var c UpdateCommand
c.CmdClause = parent.Command("update", "<...>")
c.Globals = globals
c.manifest = data
// Required flags
// c.CmdClause.Flag("name", "<...>").Required().StringVar(&c.name)
c.RegisterFlag(argparser.StringFlagOpts{
Name: argparser.FlagVersionName,
Description: argparser.FlagVersionDesc,
Dst: &c.serviceVersion.Value,
Required: true,
})
// Optional flags
c.RegisterAutoCloneFlag(argparser.AutoCloneFlagOpts{
Action: c.autoClone.Set,
Dst: &c.autoClone.Value,
})
c.CmdClause.Flag("new-name", "<...>").Action(c.newName.Set).StringVar(&c.newName.Value)
c.RegisterFlag(argparser.StringFlagOpts{
Name: argparser.FlagServiceIDName,
Description: argparser.FlagServiceIDDesc,
Dst: &c.manifest.Flag.ServiceID,
Short: 's',
})
c.RegisterFlag(argparser.StringFlagOpts{
Action: c.serviceName.Set,
Name: argparser.FlagServiceName,
Description: argparser.FlagServiceNameDesc,
Dst: &c.serviceName.Value,
})
return &c
}
// UpdateCommand calls the Fastly API to update an appropriate resource.
type UpdateCommand struct {
argparser.Base
autoClone argparser.OptionalAutoClone
manifest manifest.Data
name string
newName argparser.OptionalString
serviceName argparser.OptionalServiceNameID
serviceVersion argparser.OptionalServiceVersion
}
// Exec invokes the application logic for the command.
func (c *UpdateCommand) Exec(in io.Reader, out io.Writer) error {
serviceID, serviceVersion, err := argparser.ServiceDetails(argparser.ServiceDetailsOpts{
Active: optional.Of(false),
Locked: optional.Of(false),
AutoCloneFlag: c.autoClone,
Client: c.Globals.Client,
Manifest: c.manifest,
Out: out,
ServiceNameFlag: c.serviceName,
ServiceVersionFlag: c.serviceVersion,
VerboseMode: c.Globals.Flag.Verbose,
})
if err != nil {
c.Globals.ErrLog.AddWithContext(err, map[string]interface{}{
"Service ID": serviceID,
"Service Version": errors.ServiceVersion(serviceVersion),
})
return err
}
input, err := c.constructInput(serviceID, serviceVersion.Number)
if err != nil {
return err
}
r, err := c.Globals.Client.Update${CLI_API}(input)
if err != nil {
c.Globals.ErrLog.AddWithContext(err, map[string]interface{}{
"Service ID": serviceID,
"Service Version": serviceVersion.Number,
})
return err
}
if input.NewName != nil && *input.NewName != "" {
text.Success(out, "Updated <...> '%s' (previously: '%s', service: %s, version: %d)", r.Name, input.Name, r.ServiceID, r.ServiceVersion)
} else {
text.Success(out, "Updated <...> '%s' (service: %s, version: %d)", r.Name, r.ServiceID, r.ServiceVersion)
}
return nil
}
// constructInput transforms values parsed from CLI flags into an object to be used by the API client library.
func (c *UpdateCommand) constructInput(serviceID string, serviceVersion int) (*fastly.Update${CLI_API}Input, error) {
var input fastly.Update${CLI_API}Input
input.Name = c.name
input.ServiceID = serviceID
input.ServiceVersion = serviceVersion
if !c.newName.WasSet && !c.content.WasSet {
return nil, fmt.Errorf("error parsing arguments: must provide either --new-name or --content to update the <...>")
}
if c.newName.WasSet {
input.NewName = fastly.String(c.newName.Value)
}
return &input, nil
}
================================================
FILE: CHANGELOG.md
================================================
# CHANGELOG
## [Unreleased]
### Breaking:
### Bug Fixes:
### Enhancements:
### Dependencies:
- build(deps): `github.com/bodgit/sevenzip` from 1.6.1 to 1.6.2 ([#1795](https://github.com/fastly/cli/pull/1795))
- build(deps): `github.com/minio/minlz` from 1.0.1 to 1.1.1 ([#1795](https://github.com/fastly/cli/pull/1795))
- build(deps): `github.com/nwaples/rardecode/v2` from 2.2.0 to 2.2.2 ([#1795](https://github.com/fastly/cli/pull/1795))
- build(deps): `go4.org` from 0.0.0-20230225012048-214862532bf5 to 0.0.0-20260112195520-a5071408f32f ([#1795](https://github.com/fastly/cli/pull/1795))
- build(deps): `golang.org/x/net` from 0.53.0 to 0.54.0 ([#1795](https://github.com/fastly/cli/pull/1795))
## [v15.1.0](https://github.com/fastly/cli/releases/tag/v15.1.0) (2026-05-13)
### Bug Fixes:
- fix(auth): honor deprecated `--profile`/`-o` when resolving the API token; an unknown profile name is now a hard error instead of a silent fallback to the default token ([#1792](https://github.com/fastly/cli/pull/1792))
- fix(text): send deprecation warnings to stderr instead of stdout ([#1782](https://github.com/fastly/cli/pull/1782))
### Enhancements:
- feat(compute): add file field support for setup.kv_stores bulk import ([#1784](https://github.com/fastly/cli/pull/1784))
- feat(compute): add support for cpp for compute ([#1773](https://github.com/fastly/cli/pull/1773))
### Dependencies:
- refactor(deps): migrate from `mholt/archiver/v3` to `mholt/archives` v0.1.5 ([#1787](https://github.com/fastly/cli/pull/1787))
- build(deps): `golang.org/x/sys` from 0.43.0 to 0.44.0 ([#1785](https://github.com/fastly/cli/pull/1785))
- build(deps): `golang.org/x/term` from 0.42.0 to 0.43.0 ([#1785](https://github.com/fastly/cli/pull/1785))
- build(deps): `golang.org/x/crypto` from 0.50.0 to 0.51.0 ([#1785](https://github.com/fastly/cli/pull/1785))
- build(deps): `golang.org/x/mod` from 0.35.0 to 0.36.0 ([#1785](https://github.com/fastly/cli/pull/1785))
- build(deps): `golang.org/x/text` from 0.36.0 to 0.37.0 ([#1785](https://github.com/fastly/cli/pull/1785))
## [v15.0.0](https://github.com/fastly/cli/releases/tag/v15.0.0) (2026-05-08)
### Breaking:
- breaking(ngwaf/workspace): change flag name to match API spec ([#1768](https://github.com/fastly/cli/pull/1768]))
### Bug Fixes:
- fix(compute/deploy): remove compute trial activation code because trials no longer exist ([#1730](https://github.com/fastly/cli/pull/1730))
- fix(auth): SSO token expiration status now reflects the actual API token lifetime (~12 hours) instead of the internal JWT refresh token (~30 minutes), preventing spurious warnings and premature re-authentication [#1728](https://github.com/fastly/cli/pull/1728)
- fix(argparser): skip ListVersions API call for numeric versions [#1774](https://github.com/fastly/cli/pull/1774)
### Enhancements:
- feat(service/backend): add support for the `max_use` and `max_lifetime` parameters ([#1779](https://github.com/fastly/cli/pull/1779))
### Dependencies:
- build(deps): `golang.org/x/term` from 0.41.0 to 0.42.0 ([#1726](https://github.com/fastly/cli/pull/1726))
- build(deps): `golang.org/x/crypto` from 0.49.0 to 0.50.0 ([#1726](https://github.com/fastly/cli/pull/1726))
- build(deps): `golang.org/x/mod` from 0.34.0 to 0.35.0 ([#1726](https://github.com/fastly/cli/pull/1726))
- build(deps): `golang.org/x/net` from 0.52.0 to 0.53.0 ([#1726](https://github.com/fastly/cli/pull/1726))
- build(deps): `golang.org/x/text` from 0.35.0 to 0.36.0 ([#1726](https://github.com/fastly/cli/pull/1726))
- build(deps): `acifani/setup-tinygo` from 2 to 3 ([#1729](https://github.com/fastly/cli/pull/1729))
- build(deps): `github.com/mattn/go-isatty` from 0.0.21 to 0.0.22 ([#1735](https://github.com/fastly/cli/pull/1735))
- build(deps): `github.com/hashicorp/cap` from 0.12.0 to 0.13.0 ([#1771](https://github.com/fastly/cli/pull/1771))
- build(deps): `github.com/Masterminds/semver/v3` from 3.4.0 to 3.5.0 ([#1775](https://github.com/fastly/cli/pull/1775))
- build(deps): `github.com/fsnotify/fsnotify` from 1.9.0 to 1.10.1 ([#1775](https://github.com/fastly/cli/pull/1775))
- build(deps): `github.com/klauspost/compress` from 1.18.5 to 1.18.6 ([#1775](https://github.com/fastly/cli/pull/1775))
- build(deps): `github.com/fastly/go-fastly/v15` from 14.2.0 to 15.0.1([#1778](https://github.com/fastly/terraform-provider-fastly/pull/1778))
## [v14.3.1](https://github.com/fastly/cli/releases/tag/v14.3.1) (2026-04-13)
### Bug Fixes:
- fix(publish_release): add back perms for publishing to npm [#1724](https://github.com/fastly/cli/pull/1724)
## [v14.3.0](https://github.com/fastly/cli/releases/tag/v14.3.0) (2026-04-10)
### Bug Fixes:
- fix(vcl/condition): `--comment` flag in `condition update` now correctly sets the comment instead of overwriting the statement [#1714](https://github.com/fastly/cli/pull/1714)
- fix(manifest): `env_file` parsing no longer rejects values containing `=` characters (e.g. `KEY=val=ue`) [#1715](https://github.com/fastly/cli/pull/1715)
### Enhancements:
- feat(auth): add `auth revoke` subcommand for revoking API tokens via `--current`, `--name`, `--token-value`, `--id`, or `--file` (bulk) [#1717](https://github.com/fastly/cli/pull/1717)
- feat(service/logging/debug): add support for logging endpoint error streaming via the `service logging debug` subcommand [#1721](https://github.com/fastly/cli/pull/1721)
- feat(stats): accept `--json` / `-j` as an alias for `--format=json` on all stats and help subcommands, matching the flag style used by the rest of the CLI [#1719](https://github.com/fastly/cli/pull/1719)
### Dependencies:
- build(deps): `github.com/andybalholm/brotli` from 1.2.0 to 1.2.1 ([#1716](https://github.com/fastly/cli/pull/1716))
- build(deps): `github.com/go-jose/go-jose/v3` from 3.0.4 to 3.0.5 ([#1716](https://github.com/fastly/cli/pull/1716))
- build(deps): `github.com/mattn/go-runewidth` from 0.0.21 to 0.0.22 ([#1716](https://github.com/fastly/cli/pull/1716))
- build(deps): `github.com/mattn/go-isatty` from 0.0.20 to 0.0.21 ([#1720](https://github.com/fastly/cli/pull/1720))
- build(deps): `golang.org/x/sys` from 0.42.0 to 0.43.0 ([#1720](https://github.com/fastly/cli/pull/1720))
- build(deps): `github.com/coreos/go-oidc/v3` from 3.17.0 to 3.18.0 ([#1720](https://github.com/fastly/cli/pull/1720))
- build(deps): `github.com/mattn/go-runewidth` from 0.0.22 to 0.0.23 ([#1720](https://github.com/fastly/cli/pull/1720))
- build(deps): `github.com/fastly/go-fastly/v14` from 13.1.2 to 14.2.0 ([#1722](https://github.com/fastly/cli/pull/1722))
## [v14.2.0](https://github.com/fastly/cli/releases/tag/v14.2.0) (2026-03-24)
### Bug Fixes:
- fix(auth): `fastly profile`, `fastly sso` and `fastly auth-token` commands now correctly respect the `--quiet` flag [#1710](https://github.com/fastly/cli/pull/1710)
### Enhancements:
- feat(vcl/snippet): add support for the '--content' flag, allowing for the raw output of VCL. [#1706](https://github.com/fastly/cli/pull/1706)
### Dependencies:
- build(deps): `github.com/fatih/color` from 1.18.0 to 1.19.0 ([#1707](https://github.com/fastly/cli/pull/1707))
- build(deps): `github.com/klauspost/compress` from 1.18.4 to 1.18.5 ([#1707](https://github.com/fastly/cli/pull/1707))
## [v14.1.1](https://github.com/fastly/cli/releases/tag/v14.1.1) (2026-03-18)
### Bug Fixes:
- fix(compute): `compute pack`, `compute validate`, and `install` no longer require authentication. [#1701](https://github.com/fastly/cli/pull/1701)
## [v14.1.0](https://github.com/fastly/cli/releases/tag/v14.1.0) (2026-03-17)
### Bug Fixes:
- fix(stats): `stats historical` now returns write errors instead of silently swallowing them [#1678](https://github.com/fastly/cli/pull/1678)
### Deprecations:
- deprecated(auth): `fastly profile`, `fastly sso`, and `fastly auth-token` command trees are deprecated and will be removed in a future release. Use `fastly auth` subcommands instead. [#1676](https://github.com/fastly/cli/pull/1676)
- deprecated(auth): `--profile` and `--enable-sso` global flags are deprecated. Use `--token <name>` to select a stored auth token by name, or `fastly auth login --sso --token <name>` for SSO. [#1676](https://github.com/fastly/cli/pull/1676)
### Enhancements:
- feat(auth): add `auth token` subcommand to output the active API token for use in shell substitutions (e.g. `$(fastly auth token)`).
- feat(auth): `auth login --sso` now requires `--token <name>` to explicitly name the stored token. This prevents accidentally overwriting tokens in multi-user SSO workflows. [#1676](https://github.com/fastly/cli/pull/1676)
- feat(auth): add `FASTLY_DISABLE_AUTH_COMMAND` env var to hide the `fastly auth` command tree from help, completions, and invocation. [#1676](https://github.com/fastly/cli/pull/1676)
- feat(auth): when `FASTLY_DISABLE_AUTH_COMMAND` is set, the `--token`/`-t` global flag is also disabled. Use `FASTLY_API_TOKEN` or stored config tokens instead. [#1676](https://github.com/fastly/cli/pull/1676)
- feat(stats): add `--field` flag to `stats historical` to filter to a single stats field. [#1678](https://github.com/fastly/cli/pull/1678)
- feat(stats): add `stats aggregate` subcommand for cross-service aggregated stats. [#1678](https://github.com/fastly/cli/pull/1678)
- feat(stats): add `stats usage` subcommand for bandwidth/request usage, with `--by-service` breakdown. [#1678](https://github.com/fastly/cli/pull/1678)
- feat(stats): add `stats domain-inspector` subcommand for domain-level metrics. [#1678](https://github.com/fastly/cli/pull/1678)
- feat(stats): add `stats origin-inspector` subcommand for origin-level metrics. [#1678](https://github.com/fastly/cli/pull/1678)
- feat(apisecurity/discoveredoperations): add support for 'list' and 'update' support for 'API discovery'. [#1689](https://github.com/fastly/cli/pull/1689)
- feat(apisecurity/operations): add CRUD support for 'API Inventory' operations. [#1689](https://github.com/fastly/cli/pull/1689)
- feat(apisecurity/tags): add API Security Operations tag support ([#1688](https://github.com/fastly/cli/pull/1688))
- feat(service/version): add support for service validation. [#1695](https://github.com/fastly/cli/pull/1695)
- feat(compute/build): Block version 1.93.0 of Rust to avoid a wasm32-wasip2 bug. ([#1653](https://github.com/fastly/cli/pull/1653))
- feat(service/vcl): escape control characters when displaying VCL content for cleaner terminal output ([#1637](https://github.com/fastly/cli/pull/1637))
### Dependencies:
- build(deps): `golang.org/x/net` from 0.50.0 to 0.51.0 ([#1674](https://github.com/fastly/cli/pull/1674))
- build(deps): `actions/upload-artifact` from 6 to 7 ([#1675](https://github.com/fastly/cli/pull/1675))
- build(deps): `actions/download-artifact` from 7 to 8 ([#1675](https://github.com/fastly/cli/pull/1675))
- build(deps): `golang.org/x/sys` from 0.41.0 to 0.42.0 ([#1679](https://github.com/fastly/cli/pull/1679))
- build(deps): `github.com/mattn/go-runewidth` from 0.0.20 to 0.0.21 ([#1679](https://github.com/fastly/cli/pull/1679))
- build(deps): `github.com/pierrec/lz4/v4` from 4.1.25 to 4.1.26 ([#1679](https://github.com/fastly/cli/pull/1679))
- build(deps): `golang.org/x/oauth2` from 0.35.0 to 0.36.0 ([#1679](https://github.com/fastly/cli/pull/1679))
- build(deps): `golang.org/x/sync` from 0.19.0 to 0.20.0 ([#1679](https://github.com/fastly/cli/pull/1679))
- build(deps): `github.com/fastly/go-fastly/v13` from 13.0.0 to 13.0.1 ([#1679](https://github.com/fastly/cli/pull/1679))
- build(deps): `golang.org/x/term` from 0.40.0 to 0.41.0 ([#1687](https://github.com/fastly/cli/pull/1687))
- build(deps): `golang.org/x/mod` from 0.33.0 to 0.34.0 ([#1687](https://github.com/fastly/cli/pull/1687))
- build(deps): `golang.org/x/text` from 0.34.0 to 0.35.0 ([#1687](https://github.com/fastly/cli/pull/1687))
- build(deps): `github.com/fastly/go-fastly/v13` from 13.0.1 to 13.1.0 ([#1687](https://github.com/fastly/cli/pull/1687))
- build(deps): `golang.org/x/crypto` from 0.48.0 to 0.49.0 ([#1693](https://github.com/fastly/cli/pull/1693))
- build(deps): `golang.org/x/net` from 0.51.0 to 0.52.0 ([#1693](https://github.com/fastly/cli/pull/1693))
- build(deps): `github.com/fastly/go-fastly/v13` from 13.1.0 to 13.1.1 ([#1693](https://github.com/fastly/cli/pull/1693))
- build(deps): `github.com/fastly/go-fastly/v13` from 13.1.1 to 13.1.2 ([#1696](https://github.com/fastly/cli/pull/1696))
- build(deps): `actions/create-github-app-token` from 2 to 3 ([#1692](https://github.com/fastly/cli/pull/1692))
## [v14.0.4](https://github.com/fastly/cli/releases/tag/v14.0.4) (2026-02-26)
### Documentation:
- fix(changelog): change code blocks to be all on one line [#1670](https://github.com/fastly/cli/pull/1670)
## [v14.0.3](https://github.com/fastly/cli/releases/tag/v14.0.3) (2026-02-25)
### Bug Fixes:
- fix(npm): add contents write perms [#1667](https://github.com/fastly/cli/pull/1667)
## [v14.0.2](https://github.com/fastly/cli/releases/tag/v14.0.2) (2026-02-25)
### Bug Fixes:
- fix(npm): add write perms [#1665](https://github.com/fastly/cli/pull/1665)
## [v14.0.1](https://github.com/fastly/cli/releases/tag/v14.0.1) (2026-02-25)
### Bug Fixes:
- fix(npm): Include repository info in package.json of subpackages required for trusted publishing [#1663](https://github.com/fastly/cli/pull/1663)
## [v14.0.0](https://github.com/fastly/cli/releases/tag/v14.0.0) (2026-02-25)
## BREAKING CHANGES
This release of the Fastly CLI includes a significant reorganization
of the commands which are used to manage the configuration of Fastly
services (both Delivery and Compute services). Specifically, each of
the command families listed below have been changed from
`fastly <family> create/delete/describe/list/update` to
`fastly service <family> create/delete/describe/list/update`. For nearly
all of these command families, the previous commands are still available
but are not listed in the `fastly help` output. In addition, invocations
of the previous commands will generate a deprecation message, which
includes the new command that should be used instead.
The `fastly domain` family of commands are the lone exception; those
commands exist in both the old and new forms, but the top-level
commands are used to manage 'versionless' domains (a new feature of
the Fastly platform, and those commands were previously named
`fastly domain-v1 create/delete/describe/list/update`), while
the service-level commands are used to manage 'classic' domains. As a
result, you will need to update any scripts or workflows which used the
`fastly domain create/delete/describe/list/update` commands to use the
`fastly service domain create/delete/describe/list/update` commands
instead.
The command families which have been reorganized and are available in
both the old and new forms are:
* acl
* aclentry
* alert
* backend
* dictionary
* dictionary-entry
* healthcheck
* imageoptimizerdefaults
* logging
* purge
* rate-limit
* resource-link
* service-auth
* service-version
* vcl
### Breaking:
- breaking(domain) - service-version oriented `domain` commands have been moved under the `service domain` command. Versionless `domain-v1` commands have been moved to the `domain` command ([#1615](https://github.com/fastly/cli/pull/1615))
### Deprecations:
- deprecated(auth): `fastly profile`, `fastly sso`, and `fastly auth-token` command trees are deprecated and will be removed in a future release. Use `fastly auth` subcommands instead.
- deprecated(auth): `--profile` and `--enable-sso` global flags are deprecated. Use `--token <name>` to select a stored auth token by name, or `fastly auth login --sso --token <name>` for SSO.
### Enhancements:
- feat(auth): `auth login --sso` now requires `--token <name>` to explicitly name the stored token. This prevents accidentally overwriting tokens in multi-user SSO workflows.
- feat(auth): add `FASTLY_DISABLE_AUTH_COMMAND` env var to hide the `fastly auth` command tree from help, completions, and invocation.
- feat(auth): when `FASTLY_DISABLE_AUTH_COMMAND` is set, the `--token`/`-t` global flag is also disabled. Use `FASTLY_API_TOKEN` or stored config tokens instead.
- feat(ngwaf/rules): Upgrade go-fastly to v13.0.0 and allow ngwaf rules to accept multival conditions ([#1655](https://github.com/fastly/cli/pull/1655))
- feat(rust): Allow testing with prerelease Rust versions ([#1604](https://github.com/fastly/cli/pull/1604))
- feat(compute/hashfiles): remove hashsum subcommand ([#1608](https://github.com/fastly/cli/pull/1608))
- feat(ngwaf/rules): add support for CRUD operations for NGWAF rules ([#1605](https://github.com/fastly/cli/pull/1605))
- feat(compute/deploy): added the `--no-default-domain` flag to allow for the skipping of automatic domain creation when deploying a Compute service([#1610](https://github.com/fastly/cli/pull/1610))
- refactor(argparser/flags.go): add flag conversion utilities for converting string flags to bools and checking ascending and descending flags ([#1611](https://github.com/fastly/cli/pull/1611))
- feat(service/purge): Add 'service purge' command as replacement for 'purge', with an unlisted and deprecated alias of 'purge'. ([#1612](https://github.com/fastly/cli/pull/1612))
- feat(service/version): Add 'service version ...' commands as replacements for 'service-version ...', with unlisted and deprecated aliases of 'service-version ...'. ([#1614](https://github.com/fastly/cli/pull/1614))
- feat(service/vcl): moved the `vcl` command under the `service` command, with an unlisted and deprecated alias of `vcl` ([#1616](https://github.com/fastly/cli/pull/1616))
- feat(service/healthcheck): moved the `healthcheck` command under the `service` command, with an unlisted and deprecated alias of `healthcheck` ([#1619](https://github.com/fastly/cli/pull/1619))
- feat(service/backend): moved the `backend` command under the `service` command, with an unlisted and deprecated alias of `backend` ([#1621](https://github.com/fastly/cli/pull/1621))
- feat(service/acl): moved the `acl` and `aclentry` commands under the `service` command, with unlisted and deprecated aliases of `acl` and `aclentry` ([#1621](https://github.com/fastly/cli/pull/1624))
- feat(version): If the latest version is at least one major version higher than the current version, provide links to the release notes for the major version(s) so the user can review them before upgrading. ([#1623](https://github.com/fastly/cli/pull/1623))
- feat(service/imageoptimizerdefaults): moved the `imageoptimizerdefaults` commands under the `service` command, with an unlisted and deprecated alias of `imageoptimizerdefaults` ([#1627](https://github.com/fastly/cli/pull/1627))
- feat(service/alert): moved the `alerts` command to the `service alert` command, with an unlisted and deprecated alias of `alerts` ([#1616](https://github.com/fastly/cli/pull/1626))
- feat(service/dictionary-entry): moved the `dictionary-entry` commands under the `service` command, with an unlisted and deprecated alias of `dictionary-entry` ([#1628](https://github.com/fastly/cli/pull/1628))
- feat(service/dictionary): moved the `dictionary` command under the `service` command, with an unlisted and deprecated alias of `dictionary` ([#1621](https://github.com/fastly/cli/pull/1630))
- feat(service/ratelimit): moved the `rate-limit` commands under the `service` command, with an unlisted and deprecated alias of `rate-limit` ([#1632](https://github.com/fastly/cli/pull/1632))
- feat(compute/build): Remove Rust version restriction, allowing 1.93.0 and later versions to be used. ([#1633](https://github.com/fastly/cli/pull/1633))
- feat(service/resourcelink): moved the `resource-link` commands under the `service` command, with an unlisted and deprecated alias of `resource-link` ([#1635](https://github.com/fastly/cli/pull/1635))
- feat(service/logging): moved the `logging` commands under the `service` command, with an unlisted and deprecated alias of `logging` ([#1642](https://github.com/fastly/cli/pull/1642))
- feat(service/auth): moved the `service-auth` commands under the `service` command and renamed to `auth`, with an unlisted and deprecated alias of `service-auth` ([#1643](https://github.com/fastly/cli/pull/1643))
- feat(compute/build): improved error messaging for JavaScript builds with pre-flight toolchain verification including Bun runtime support ([#1640](https://github.com/fastly/cli/pull/1640))
### Bug fixes:
- fix(docker): Use base image toolchain instead of reinstalling stable, which could pull in an unvalidated Rust version.
- fix(compute/serve): ensure hostname has a port number when building pushpin routes ([#1631](https://github.com/fastly/cli/pull/1631))
- fix(manifest): Correct setup.Defined to include checks for ObjectStores and SecretStores ([#1639](https://github.com/fastly/cli/pull/1639))
### Dependencies:
- build(deps): `golang` from 1.24 to 1.25 ([#1651](https://github.com/fastly/cli/pull/1651))
- build(deps): `actions/upload-artifact` from 5 to 6 ([#1603](https://github.com/fastly/cli/pull/1603))
- build(deps): `actions/download-artifact` from 6 to 7 ([#1603](https://github.com/fastly/cli/pull/1603))
- build(deps): `golang.org/x/term` from 0.37.0 to 0.38.0 ([#1602](https://github.com/fastly/cli/pull/1602))
- build(deps): `golang.org/x/crypto` from 0.45.0 to 0.46.0 ([#1602](https://github.com/fastly/cli/pull/1602))
- build(deps): `golang.org/x/mod` from 0.30.0 to 0.31.0 ([#1602](https://github.com/fastly/cli/pull/1602))
- build(deps): `golang.org/x/net` from 0.47.0 to 0.48.0 ([#1602](https://github.com/fastly/cli/pull/1602))
- build(deps): `golang.org/x/text` from 0.31.0 to 0.32.0 ([#1602](https://github.com/fastly/cli/pull/1602))
- build(deps): `github.com/pierrec/lz4/v4` from 4.1.22 to 4.1.23 ([#1606](https://github.com/fastly/cli/pull/1606))
- build(deps): `github.com/google/go-querystring` from 1.1.0 to 1.2.0 ([#1607](https://github.com/fastly/cli/pull/1607))
- build(deps): `golang.org/x/sys` from 0.39.0 to 0.40.0 ([#1613](https://github.com/fastly/cli/pull/1613))
- build(deps): `golang.org/x/term` from 0.38.0 to 0.39.0 ([#1613](https://github.com/fastly/cli/pull/1613))
- build(deps): `golang.org/x/crypto` from 0.46.0 to 0.47.0 ([#1613](https://github.com/fastly/cli/pull/1613))
- build(deps): `golang.org/x/mod` from 0.31.0 to 0.32.0 ([#1613](https://github.com/fastly/cli/pull/1613))
- build(deps): `golang.org/x/net` from 0.48.0 to 0.49.0 ([#1613](https://github.com/fastly/cli/pull/1613))
- build(deps): `golang.org/x/text` from 0.32.0 to 0.33.0 ([#1613](https://github.com/fastly/cli/pull/1613))
- build(deps): `github.com/fastly/go-fastly/v13` from 12.1.0 to 12.1.1 ([#1613](https://github.com/fastly/cli/pull/1613))
- build(deps): `github.com/clipperhouse/uax29/v2` from 2.3.0 to 2.3.1 ([#1625](https://github.com/fastly/cli/pull/1625))
- build(deps): `github.com/klauspost/compress` from 1.18.2 to 1.18.3 ([#1625](https://github.com/fastly/cli/pull/1625))
- build(deps): `github.com/pierrec/lz4/v4` from 4.1.23 to 4.1.25 ([#1625](https://github.com/fastly/cli/pull/1625))
- build(deps): `github.com/clipperhouse/uax29/v2` from 2.3.1 to 2.4.0 ([#1634](https://github.com/fastly/cli/pull/1634))
- build(deps): `github.com/clipperhouse/uax29/v2` from 2.4.0 to 2.5.0 ([#1647](https://github.com/fastly/cli/pull/1647))
- build(deps): `golang.org/x/sys` from 0.40.0 to 0.41.0 ([#1652](https://github.com/fastly/cli/pull/1652))
- build(deps): `golang.org/x/term` from 0.39.0 to 0.40.0 ([#1652](https://github.com/fastly/cli/pull/1652))
- build(deps): `golang.org/x/crypto` from 0.47.0 to 0.48.0 ([#1652](https://github.com/fastly/cli/pull/1652))
- build(deps): `golang.org/x/mod` from 0.32.0 to 0.33.0 ([#1652](https://github.com/fastly/cli/pull/1652))
- build(deps): `github.com/clipperhouse/uax29/v2` from 2.5.0 to 2.6.0 ([#1652](https://github.com/fastly/cli/pull/1652))
- build(deps): `github.com/klauspost/compress` from 1.18.3 to 1.18.4 ([#1652](https://github.com/fastly/cli/pull/1652))
- build(deps): `golang.org/x/net` from 0.49.0 to 0.50.0 ([#1652](https://github.com/fastly/cli/pull/1652))
- build(deps): `golang.org/x/oauth2` from 0.34.0 to 0.35.0 ([#1652](https://github.com/fastly/cli/pull/1652))
- build(deps): `golang.org/x/text` from 0.33.0 to 0.34.0 ([#1652](https://github.com/fastly/cli/pull/1652))
- build(deps): `github.com/clipperhouse/uax29/v2` from 2.6.0 to 2.7.0 ([#1657](https://github.com/fastly/cli/pull/1657))
- build(deps): `golang.org/x/text` from 0.33.0 to 0.34.0 ([#1652](https://github.com/fastly/cli/pull/1652))
- build(deps): `github.com/mattn/go-runewidth` from 0.0.19 to 0.0.20 ([#1659](https://github.com/fastly/cli/pull/1659))
- build(deps): `goreleaser/goreleaser-action` from 6 to 7 ([#1660](https://github.com/fastly/cli/pull/1660))
## [v13.3.0](https://github.com/fastly/cli/releases/tag/v13.3.0) (2025-12-11)
### Enhancements:
- feat(toml/rust): add support for Rust 1.9.2 ([#1599](https://github.com/fastly/cli/pull/1599))
## [v13.2.0](https://github.com/fastly/cli/releases/tag/v13.2.0) (2025-12-10)
### Enhancements:
- feat(commands/ngwaf/workspaces): add support for update operation for NGWAF workspaces ([#1578](https://github.com/fastly/cli/pull/1578))
- feat(commands/ngwaf/lists): add support for CRUD operations for NGWAF Lists at account and workspace levels ([#1582](https://github.com/fastly/cli/pull/1582))
- feat(commands/ngwaf/workspaces/alerts): add support for operations for NGWAF alerts ([#1589](https://github.com/fastly/cli/pull/1589))
- feat(commands/ngwaf/customsignals): add support for CRUD operations for NGWAF Custom Signals ([#1592](https://github.com/fastly/cli/pull/1592))
- feat(commands/ngwaf/threshold): add support for CRUD operations for NGWAF Thresholds ([#1595](https://github.com/fastly/cli/pull/1595))
### Bug fixes:
- fix(commands/ngwaf/virtualpatch): ensured a check was in place for the 'update' command that disallowed the --json and --verbose flag to be ran at the same time. ([#1596](https://github.com/fastly/cli/pull/1596))
- fix(commands/ngwaf/redaction): ensured a check was in place for the 'create' and 'update' commands that disallowed the --json and --verbose flag to be ran at the same time. ([#1596](https://github.com/fastly/cli/pull/1596))
### Dependencies:
- build(deps): `golang.org/x/crypto` from 0.43.0 to 0.45.0 ([#1584](https://github.com/fastly/cli/pull/1584))
- build(deps): `actions/checkout` from 5 to 6 ([#1587](https://github.com/fastly/cli/pull/1587))
- build(deps): `golang.org/x/mod` from 0.29.0 to 0.30.0 ([#1588](https://github.com/fastly/cli/pull/1588))
- build(deps): `github.com/coreos/go-oidc/v3` from 3.16.0 to 3.17.0 ([#1588](https://github.com/fastly/cli/pull/1588))
- build(deps): `github.com/klauspost/compress` from 1.18.1 to 1.18.2 ([#1593](https://github.com/fastly/cli/pull/1593))
- build(deps): `golang.org/x/sys` from 0.38.0 to 0.39.0 ([#1594](https://github.com/fastly/cli/pull/1594))
- build(deps): `github.com/hashicorp/cap` from 0.11.0 to 0.12.0 ([#1594](https://github.com/fastly/cli/pull/1594))
- build(deps): `golang.org/x/oauth2` from 0.33.0 to 0.34.0 ([#1594](https://github.com/fastly/cli/pull/1594))
- build(deps): `golang.org/x/sync` from 0.18.0 to 0.19.0 ([#1594](https://github.com/fastly/cli/pull/1594))
## [v13.1.0](https://github.com/fastly/cli/releases/tag/v13.1.0) (2025-11-12)
### Enhancements:
- feat(service-version): Add JSON support to service-version clone command ([#1550](https://github.com/fastly/cli/pull/1550))
- feat(compute/build): Allow usage of Rust 1.91.1 and later patch releases ([#1576](https://github.com/fastly/cli/pull/1576))
- feat(commands/ngwaf/workspaces): add support for CRUD operations for NGWAF workspaces ([#1570](https://github.com/fastly/cli/pull/1570))
- feat(commands/ngwaf/virtualpatch): add support for CRUD operations for NGWAF virtual patches ([#1579](https://github.com/fastly/cli/pull/1579))
- feat(commands/ngwaf/redaction): add support for CRUD operations for NGWAF redactions ([#1581](https://github.com/fastly/cli/pull/1581))
### Dependencies:
- build(deps): `golangci/golangci-lint-action` from 8 to 9 ([#1575](https://github.com/fastly/cli/pull/1575))
- build(deps): `golang.org/x/sys` from 0.37.0 to 0.38.0 ([#1574](https://github.com/fastly/cli/pull/1574))
- build(deps): `golang.org/x/oauth2` from 0.32.0 to 0.33.0 ([#1574](https://github.com/fastly/cli/pull/1574))
- build(deps): `golang.org/x/sync` from 0.17.0 to 0.18.0 ([#1574](https://github.com/fastly/cli/pull/1574))
## [v13.0.0](https://github.com/fastly/cli/releases/tag/v13.0.0) (2025-10-30)
### Breaking:
- breaking(tls-custom): correct 'tls-custom activation enable' command parameters to reflect expected input from API ([#1562](https://github.com/fastly/cli/pull/1562))
- breaking(compute/build): Block version 1.91.0 of Rust as it produces broken WASM packages. ([#1571](https://github.com/fastly/cli/pull/1571))
### Enhancements:
- feat(compute/serve): set sig_iss and sig_key to allow client code to test Grip-Sig signing ([#1569](https://github.com/fastly/cli/pull/1569))
- build(dockerfile-rust): add wasm tools to the rust docker container ([#1552](https://github.com/fastly/cli/pull/1552))
- feat(env): add detection for workspace ID ([#1560](https://github.com/fastly/cli/pull/1560))
### Bug fixes:
- fix(compute): clarify fastly.toml error message when file not found ([#1556](https://github.com/fastly/cli/pull/1556))
- fix(purge/key): ensures that single-key purges will work even if the key contains URL-unsafe characters ([#1566](https://github.com/fastly/cli/pull/1566))
### Dependencies:
- build(deps): `github.com/hashicorp/cap` from 0.10.0 to 0.11.0 ([#1546](https://github.com/fastly/cli/pull/1546))
- build(deps): `github.com/coreos/go-oidc/v3` from 3.15.0 to 3.16.0 ([#1546](https://github.com/fastly/cli/pull/1546))
- build(deps): `stefanzweifel/git-auto-commit-action` from 6 to 7 ([#1549](https://github.com/fastly/cli/pull/1549))
- build(deps): `golang.org/x/sys` from 0.36.0 to 0.37.0 ([#1548](https://github.com/fastly/cli/pull/1548))
- build(deps): `golang.org/x/term` from 0.35.0 to 0.36.0 ([#1548](https://github.com/fastly/cli/pull/1548))
- build(deps): `golang.org/x/crypto` from 0.42.0 to 0.43.0 ([#1548](https://github.com/fastly/cli/pull/1548))
- build(deps): `golang.org/x/mod` from 0.28.0 to 0.29.0 ([#1548](https://github.com/fastly/cli/pull/1548))
- build(deps): `golang.org/x/net` from 0.44.0 to 0.45.0 ([#1548](https://github.com/fastly/cli/pull/1548))
- build(deps): `golang.org/x/oauth2` from 0.31.0 to 0.32.0 ([#1548](https://github.com/fastly/cli/pull/1548))
- build(deps): `golang.org/x/text` from 0.29.0 to 0.30.0 ([#1548](https://github.com/fastly/cli/pull/1548))
- build(deps): `actions/setup-node` from 5 to 6 ([#1559](https://github.com/fastly/cli/pull/1559))
- build(deps): `actions/download-artifact` from 4 to 5 ([#1559](https://github.com/fastly/cli/pull/1559))
- build(deps): `github.com/klauspost/compress` from 1.18.0 to 1.18.1 ([#1558](https://github.com/fastly/cli/pull/1558))
- build(deps): `golang.org/x/net` from 0.45.0 to 0.46.0 ([#1558](https://github.com/fastly/cli/pull/1558))
- build(deps): `github.com/clipperhouse/uax29/v2` from 2.2.0 to 2.3.0 ([#1564](https://github.com/fastly/cli/pull/1564))
- build(deps): `actions/upload-artifact` from 4 to 5 ([#1565](https://github.com/fastly/cli/pull/1565))
- build(deps): `actions/download-artifact` from 5 to 6 ([#1565](https://github.com/fastly/cli/pull/1565))
## [v12.1.0](https://github.com/fastly/cli/releases/tag/v12.1.0) (2025-09-30)
### Breaking:
### Enhancements:
- feat(manifest): Enable loading Secret Store configuration through environment variables ([#1540](https://github.com/fastly/cli/pull/1540))
- feat(products): Add enable/disable support for API Discovery ([#1543](https://github.com/fastly/cli/pull/1543))
### Bug fixes:
### Dependencies:
- build(deps): `golang.org/x/net` from 0.43.0 to 0.44.0 ([#1538](https://github.com/fastly/cli/pull/1538))
- build(deps): `github.com/fastly/go-fastly/v11` from 11.3.1 to 12.0.0 ([#1541](https://github.com/fastly/cli/pull/1541))
- build(deps): `github.com/mattn/go-runewidth` from 0.0.16 to 0.0.19 ([#1542](https://github.com/fastly/cli/pull/1542))
- build(deps): `github.com/fastly/go-fastly/v11` from 11.3.1 to 12.0.0 ([#1541](https://github.com/fastly/cli/pull/1541))
## [v12.0.0](https://github.com/fastly/cli/releases/tag/v12.0.0) (2025-09-10)
### Breaking:
- breaking(kvstoreentry): The 'describe' command now returns only key attributes (ie: generation, metadata) instead of a given key's value ([#1529](https://github.com/fastly/cli/pull/1529))
### Enhancements:
- feat(logging): Add support for 'CompressionCodec' and 'GzipLevel' attribute to the HTTPS endpoint.
- feat(kvstoreentry): Add support for the 'prefix' parameter for List operations ([#1526](https://github.com/fastly/cli/pull/1526))
- feat(kvstoreentry): Add support for the add, append, prepend, metadata, if_generation_match, and background_fetch 'create' command operations ([#1529](https://github.com/fastly/cli/pull/1529))
- feat(kvstoreentry): Add support for the if_generation_match and metadata 'describe' command operations ([#1529](https://github.com/fastly/cli/pull/1529))
- feat(kvstoreentry): Add support for the if_generation_match and force 'delete' command operations ([#1529](https://github.com/fastly/cli/pull/1529))
- feat(kvstoreentry): Add the 'get' command operation which obtains the value of the item ([#1529](https://github.com/fastly/cli/pull/1529))
- feat(logging/https): Add support for 'Period' attribute. ([#1537](https://github.com/fastly/cli/pull/1537))
### Bug fixes:
- fix(manifest): Ensure pushpin section is persisted during manifest file update ([#1535](https://github.com/fastly/cli/pull/1535))
### Dependencies:
- build(deps): `github.com/ulikunitz/xz` from 0.5.12 to 0.5.13 ([#1524](https://github.com/fastly/cli/pull/1524))
- build(deps): `github.com/stretchr/testify` from 1.10.0 to 1.11.0 ([#1527](https://github.com/fastly/cli/pull/1527))
- build(deps): `github.com/ulikunitz/xz` from 0.5.13 to 0.5.14 ([#1528](https://github.com/fastly/cli/pull/1528))
- build(deps): `github.com/stretchr/testify` from 1.11.0 to 1.11.1 ([#1530](https://github.com/fastly/cli/pull/1530))
- build(deps): `github.com/ulikunitz/xz` from 0.5.14 to 0.5.15 ([#1530](https://github.com/fastly/cli/pull/1530))
- build(deps): `actions/setup-node` from 4 to 5 ([#1534](https://github.com/fastly/cli/pull/1534))
- build(deps): `actions/setup-go` from 5 to 6 ([#1534](https://github.com/fastly/cli/pull/1534))
- build(deps): `golang.org/x/sys` from 0.35.0 to 0.36.0 ([#1533](https://github.com/fastly/cli/pull/1533))
- build(deps): `golang.org/x/term` from 0.34.0 to 0.35.0 ([#1533](https://github.com/fastly/cli/pull/1533))
- build(deps): `github.com/fastly/go-fastly/v11` from 11.3.0 to 11.3.1 ([#1533](https://github.com/fastly/cli/pull/1533))
- build(deps): `golang.org/x/crypto` from 0.41.0 to 0.42.0 ([#1533](https://github.com/fastly/cli/pull/1533))
- build(deps): `golang.org/x/mod` from 0.27.0 to 0.28.0 ([#1533](https://github.com/fastly/cli/pull/1533))
- build(deps): `golang.org/x/oauth2` from 0.30.0 to 0.31.0 ([#1533](https://github.com/fastly/cli/pull/1533))
- build(deps): `golang.org/x/sync` from 0.16.0 to 0.17.0 ([#1533](https://github.com/fastly/cli/pull/1533))
- build(deps): `golang.org/x/text` from 0.28.0 to 0.29.0 ([#1533](https://github.com/fastly/cli/pull/1533))
## [v11.5.0](https://github.com/fastly/cli/releases/tag/v11.5.0) (2025-08-20)
### Enhancements:
- feat(vcl): Allow showing of generated VCL for a service version [#1498](https://github.com/fastly/cli/pull/1498)
- feat(compute/serve): Add experimental "enable Pushpin" mode ([#1509](https://github.com/fastly/cli/pull/1509), [#1520](https://github.com/fastly/cli/pull/1520))
- feat(object-storage): improve access-keys list output ([#1513](https://github.com/fastly/cli/pull/1513))
- refactor(domainv1,tools): use updated go-fastly domainmanagement imports and types ([#1517](https://github.com/fastly/cli/pull/1517))
- feat(imageoptimizerdefaults): Support for retrieving and updating Image Optimizer defaults for a given VCL service ([#1518](https://github.com/fastly/cli/pull/1518))
### Dependencies:
- build(deps): `github.com/fastly/go-fastly/v11` from 10 to 11 ([#1514](https://github.com/fastly/cli/pull/1514))
- build(deps): `golang.org/x/sys` from 0.33.0 to 0.34.0 ([#1508](https://github.com/fastly/cli/pull/1508))
- build(deps): `golang.org/x/term` from 0.32.0 to 0.33.0 ([#1508](https://github.com/fastly/cli/pull/1508))
- build(deps): `golang.org/x/crypto` from 0.39.0 to 0.40.0 ([#1508](https://github.com/fastly/cli/pull/1508))
- build(deps): `golang.org/x/mod` from 0.25.0 to 0.26.0 ([#1508](https://github.com/fastly/cli/pull/1508))
- build(deps): `golang.org/x/net` from 0.41.0 to 0.42.0 ([#1508](https://github.com/fastly/cli/pull/1508))
- build(deps): `golang.org/x/sync` from 0.15.0 to 0.16.0 ([#1508](https://github.com/fastly/cli/pull/1508))
- build(deps): `golang.org/x/text` from 0.26.0 to 0.27.0 ([#1508](https://github.com/fastly/cli/pull/1508))
- build(deps): `github.com/coreos/go-oidc/v3` from 3.14.1 to 3.15.0 ([#1510](https://github.com/fastly/cli/pull/1510))
- build(deps): `golang.org/x/sys` from 0.34.0 to 0.35.0 ([#1516](https://github.com/fastly/cli/pull/1516))
- build(deps): `golang.org/x/term` from 0.33.0 to 0.34.0 ([#1516](https://github.com/fastly/cli/pull/1516))
- build(deps): `github.com/hashicorp/cap` from 0.9.0 to 0.10.0 ([#1516](https://github.com/fastly/cli/pull/1516))
- build(deps): `golang.org/x/crypto` from 0.40.0 to 0.41.0 ([#1516](https://github.com/fastly/cli/pull/1516))
- build(deps): `golang.org/x/mod` from 0.26.0 to 0.27.0 ([#1516](https://github.com/fastly/cli/pull/1516))
- build(deps): `golang.org/x/net` from 0.42.0 to 0.43.0 ([#1516](https://github.com/fastly/cli/pull/1516))
- build(deps): `golang.org/x/text` from 0.27.0 to 0.28.0 ([#1516](https://github.com/fastly/cli/pull/1516))
- build(deps): `actions/checkout` from 4 to 5 ([#1515](https://github.com/fastly/cli/pull/1515))
- build(deps): `actions/download-artifact` from 4 to 5 ([#1515](https://github.com/fastly/cli/pull/1515))
## [v11.4.0](https://github.com/fastly/cli/releases/tag/v11.4.0) (2025-07-09)
### Enhancements:
- feat(env): Add environment variable for extending the UserAgent string. ([#1502](https://github.com/fastly/cli/pull/1502))
### Bug fixes:
- fix(sso): Ensure that OPTIONS requests sent by browsers do not break SSO authentication. ([#1496](https://github.com/fastly/cli/pull/1496))
### Dependencies:
- build(deps): `github.com/fastly/go-fastly/v10` from 10.3.0 to 10.4.0 ([#1499](https://github.com/fastly/cli/pull/1499))
- build(deps): `stefanzweifel/git-auto-commit-action` from 5 to 6 ([#1497](https://github.com/fastly/cli/pull/1497))
- build(deps): `github.com/fastly/go-fastly/v10` from 10.4.0 to 10.5.0 ([#1501](https://github.com/fastly/cli/pull/1501))
- build(deps): `github.com/andybalholm/brotli` from 1.1.1 to 1.2.0 ([#1501](https://github.com/fastly/cli/pull/1501))
- build(deps): `github.com/Masterminds/semver/v3` from 3.3.1 to 3.4.0 ([#1503](https://github.com/fastly/cli/pull/1503))
- build(deps): `github.com/fastly/go-fastly/v10` from 10.5.0 to 10.5.1 ([#1504](https://github.com/fastly/cli/pull/1504))
## [v11.3.0](https://github.com/fastly/cli/releases/tag/v11.3.0) (2025-06-11)
### Enhancements:
- feat(config-store): Allow for dynamic limits on Config Store entry lengths ([#1485](https://github.com/fastly/cli/pull/1485))
- feat(backend): Add support for 'prefer IPv6' attribute. ([#1487](https://github.com/fastly/cli/pull/1487))
- feat(tools/domain): add `suggest` and `status` domain tools endpoints ([#1482](https://github.com/fastly/cli/pull/1482))
- feat(logging): Add support for 'processing region' attribute. ([#1491](https://github.com/fastly/cli/pull/1491))
- feat(domains): add `description` to `domainv1` endpoints ([#1483](https://github.com/fastly/cli/pull/1483))
### Bug fixes:
- fix(sso): Don't display the token after authentication. ([#1490](https://github.com/fastly/cli/pull/1490))
- fix(service-version): Stop hiding the 'stage' and 'unstage' commands. ([#1492](https://github.com/fastly/cli/pull/1492))
### Dependencies:
- build(deps): `github.com/fastly/go-fastly/v10` from 10.0.1 to 10.1.0 ([#1476](https://github.com/fastly/cli/pull/1476))
- build(deps): `github.com/fastly/go-fastly/v10` from 10.0.0 to 10.0.1 ([#1467](https://github.com/fastly/cli/pull/1467))
- build(deps): `golang.org/x/net` from 0.37.0 to 0.39.0 ([#1467](https://github.com/fastly/cli/pull/1467))
- build(go.mod): upgrade to go 1.24.0 in order to take advantage of the new tooling mechanism ([#1469](https://github.com/fastly/cli/pull/1469))
- build(deps): `golang.org/x/image` from 0.15.0 to 0.18.0 ([#1470](https://github.com/fastly/cli/pull/1470))
- build(deps): `github.com/magiconair/properties` from 1.8.7 to 1.8.10 ([#1474](https://github.com/fastly/cli/pull/1474))
- build(deps): `golang.org/x/sys` from 0.32.0 to 0.33.0 ([#1472](https://github.com/fastly/cli/pull/1472))
- build(deps): `cel.dev/expr` from 0.22.1 to 0.23.1 ([#1472](https://github.com/fastly/cli/pull/1472))
- build(deps): `cloud.google.com/go` from 0.120.0 to 0.121.0 ([#1472](https://github.com/fastly/cli/pull/1472))
- build(deps): `cloud.google.com/go/ai` from 0.8.0 to 0.11.0 ([#1472](https://github.com/fastly/cli/pull/1472))
- build(deps): `cloud.google.com/go/auth` from 0.15.0 to 0.16.0 ([#1472](https://github.com/fastly/cli/pull/1472))
- build(deps): `cloud.google.com/go/iam` from 1.4.2 to 1.5.0 ([#1472](https://github.com/fastly/cli/pull/1472))
- build(deps): `cloud.google.com/go/kms` from 1.21.1 to 1.21.2 ([#1472](https://github.com/fastly/cli/pull/1472))
- build(deps): `cloud.google.com/go/longrunning` from 0.6.6 to 0.6.7 ([#1472](https://github.com/fastly/cli/pull/1472))
- build(deps): `cloud.google.com/go/monitoring` from 1.24.1 to 1.24.2 ([#1472](https://github.com/fastly/cli/pull/1472))
- build(deps): `cloud.google.com/go/storage` from 1.51.0 to 1.52.0 ([#1472](https://github.com/fastly/cli/pull/1472))
- build(deps): `github.com/42wim/httpsig` from 1.2.2 to 1.2.3 ([#1472](https://github.com/fastly/cli/pull/1472))
- build(deps): `github.com/Azure/azure-sdk-for-go/sdk/azcore` from 1.17.1 to 1.18.0 ([#1472](https://github.com/fastly/cli/pull/1472))
- build(deps): `github.com/Azure/azure-sdk-for-go/sdk/azidentity` from 1.8.2 to 1.9.0 ([#1472](https://github.com/fastly/cli/pull/1472))
- build(deps): `github.com/fastly/go-fastly/v10` from 10.1.0 to 10.2.0 ([#1481](https://github.com/fastly/cli/pull/1481))
- build(deps): `github.com/fastly/go-fastly/v10` from 10.2.0 to 10.3.0 ([#1488](https://github.com/fastly/cli/pull/1488))
- build(deps): `golang.org/x/mod` from 0.24.0 to 0.25.0 ([#1488](https://github.com/fastly/cli/pull/1488))
- build(deps): `golang.org/x/sync` from 0.14.0 to 0.15.0 ([#1488](https://github.com/fastly/cli/pull/1488))
- build(deps): `golang.org/x/text` from 0.25.0 to 0.26.0 ([#1488](https://github.com/fastly/cli/pull/1488))
- build(deps): `golang.org/x/crypto` from 0.38.0 to 0.39.0 ([#1489](https://github.com/fastly/cli/pull/1489))
- build(deps): `golang.org/x/net` from 0.40.0 to 0.41.0 ([#1489](https://github.com/fastly/cli/pull/1489))
## [v11.2.0](https://github.com/fastly/cli/releases/tag/v11.2.0) (2025-04-10)
### Enhancements:
- feat(config): Support file/format for kv_store and secret_store in fastly.toml
- feat(config): Support metadata for kv_store in fastly.toml
- feat(logging): add support for passing a filepath as an argument for format in logging commands
### Bug fixes:
- fix(language/rust): Check for wasm32-wasi output from build process and inform user how to reconfigure their project. [#1458](https://github.com/fastly/cli/pull/1458)
### Dependencies:
- dep(go.mod): upgrade go-fastly from v9 to v10 [#1448](https://github.com/fastly/cli/pull/1448)
- build(deps): `golang.org/x/oauth2` from 0.28.0 to 0.29.0 ([#1451](https://github.com/fastly/cli/pull/1451))
- build(deps): `golang.org/x/sys` from 0.31.0 to 0.32.0 ([#1454](https://github.com/fastly/cli/pull/1454))
- build(deps): `github.com/fsnotify/fsnotify` from 1.8.0 to 1.9.0 ([#1450](https://github.com/fastly/cli/pull/1450))
- build(deps): `golang.org/x/term` from 0.30.0 to 0.31.0 ([#1455](https://github.com/fastly/cli/pull/1455))
- build(deps): `golang.org/x/crypto` from 0.36.0 to 0.37.0 ([#1453](https://github.com/fastly/cli/pull/1453))
- build(deps): `github.com/coreos/go-oidc/v3` from 3.13.0 to 3.14.1 ([#1456](https://github.com/fastly/cli/pull/1456))
- build(deps): `actions/create-github-app-token` from 1 to 2 ([#1449](https://github.com/fastly/cli/pull/1449))
## [v11.1.0](https://github.com/fastly/cli/releases/tag/v11.1.0) (2025-03-27)
### Bug fixes:
- fix(logging): revert removal of placement param [#1444](https://github.com/fastly/cli/pull/1444)
## [v11.0.0](https://github.com/fastly/cli/releases/tag/v11.0.0) (2025-03-25)
### Breaking:
- breaking(logging): The 'placement' parameter to the logging commands
has been removed; it was only used in combination with the Fastly
WAF, which is no longer supported.
[#1419](https://github.com/fastly/cli/pull/1419)
- breaking(language.rust): Switch Rust builds to wasm32-wasip1 instead of wasm32-wasi [#1382](https://github.com/fastly/cli/pull/1382)
- breaking(language.assemblyscript): Remove support for AssemblyScript [#1001](https://github.com/fastly/cli/pull/1001)
- breaking(compute/pack): use package name from manifest [#1025](https://github.com/fastly/cli/pull/1025)
### Enhancements:
- fix(compute/init): Updates for renamed TypeScript default starter kit [#1405](https://github.com/fastly/cli/pull/1405)
- feat(objectstorage/accesskeys): add support for access keys [#1428](https://github.com/fastly/cli/pull/1428)
### Dependencies
- build(deps): upgrade Go from 1.22 to 1.23 ([#624](https://github.com/fastly/cli/pull/1414))
- build(deps): `github.com/rogpeppe/go-internal` from 1.13.1 to 1.14.1 ([#1416](https://github.com/fastly/cli/pull/1416))
- build(deps): `golang.org/x/crypto` from 0.33.0 to 0.35.0 ([#1417](https://github.com/fastly/cli/pull/1417))
- build(deps): `github.com/go-jose/go-jose/v4` from 4.0.4 to 4.0.5 ([#1412](https://github.com/fastly/cli/pull/1412))
- build(deps): `github.com/klauspost/compress` from 1.17.11 to 1.18.0 ([#1411](https://github.com/fastly/cli/pull/1411))
- build(deps): `github.com/google/go-cmp` from 0.6.0 to 0.7.0 ([#1409](https://github.com/fastly/cli/pull/1409))
- build(deps): `golang.org/x/oauth2` from 0.26.0 to 0.27.0 ([#1421](https://github.com/fastly/cli/pull/1421))
- build(deps): `github.com/hashicorp/cap` from 0.8.0 to 0.9.0 ([#1422](https://github.com/fastly/cli/pull/1422))
- build(deps): `github.com/fastly/go-fastly/v9` from 9.13.1 to 9.14.0 ([#1433](https://github.com/fastly/cli/pull/1433))
- build(deps): `golang.org/x/crypto` from 0.35.0 to 0.36.0 ([#1430](https://github.com/fastly/cli/pull/1430))
- build(deps): `golang.org/x/oauth2` from 0.27.0 to 0.28.0 ([#1432](https://github.com/fastly/cli/pull/1432))
- build(deps): `golang.org/x/net` from 0.35.0 to 0.37.0 ([#1439](https://github.com/fastly/cli/pull/1439))
- build(deps): `github.com/golang/snappy` from 0.0.4 to 1.0.0 ([#1438](https://github.com/fastly/cli/pull/1438))
- build(deps): `golang.org/x/mod` from 0.23.0 to 0.24.0 ([#1437](https://github.com/fastly/cli/pull/1437))
- build(deps): `github.com/coreos/go-oidc/v3` from 3.12.0 to 3.13.0 ([#1442](https://github.com/fastly/cli/pull/1442))
## [v10.19.0](https://github.com/fastly/cli/releases/tag/v10.19.0) (2025-02-18)
**Enhancements:**
- feat(computeacl): add support for compute platform ACLs [#1388](https://github.com/fastly/cli/pull/1388)
**Dependencies:**
- build(deps): bump golang.org/x/net from 0.34.0 to 0.35.0 [#1394](https://github.com/fastly/cli/pull/1394)
- build(deps): bump golang.org/x/crypto from 0.32.0 to 0.33.0 [#1391](https://github.com/fastly/cli/pull/1391)
- build(deps): bump golang.org/x/term from 0.28.0 to 0.29.0[#1393](https://github.com/fastly/cli/pull/1393)
- build(deps): bump golang.org/x/oauth2 from 0.25.0 to 0.26.0 [#1390](https://github.com/fastly/cli/pull/1390)
- build(deps): bump github.com/fastly/go-fastly/v9 from 9.13.0 to 9.13.1 [#1388](https://github.com/fastly/cli/pull/1388)
## [v10.18.0](https://github.com/fastly/cli/releases/tag/v10.18.0) (2025-01-29)
**Enhancements:**
- feat(domains): add support for v1 functionality [#1374](https://github.com/fastly/cli/pull/1374)
- feat(dashboard): add support for Observability custom dashboards [#1357](https://github.com/fastly/cli/pull/1357)
**Bug fixes:**
- fix(npm): fix build checks for JavaScript code [#1354](https://github.com/fastly/cli/pull/1354)
- fix(build): pin Rust to 1.83.0 [#1368](https://github.com/fastly/cli/pull/1368)
- fix(build): correct generation of static configuration file [#1378](https://github.com/fastly/cli/pull/1378)
- fix(kvstoreentry/create): rework --dir flag [#1371](https://github.com/fastly/cli/pull/1371)
**Dependencies:**
- build(deps): bump golang.org/x/crypto from 0.31.0 to 0.32.0 [#1366](https://github.com/fastly/cli/pull/1366)
- build(deps): bump golang.org/x/text from 0.20.0 to 0.21.0 [#1360](https://github.com/fastly/cli/pull/1360)
- build(deps): bump github.com/otiai10/copy from 1.14.0 to 1.14.1 [#1364](https://github.com/fastly/cli/pull/1364)
- build(deps): bump github.com/hashicorp/cap from 0.7.0 to 0.8.0 [#1365](https://github.com/fastly/cli/pull/1365)
- build(deps): bump golang.org/x/net from 0.27.0 to 0.33.0 [#1370](https://github.com/fastly/cli/pull/1370)
- build(deps): bump github.com/rogpeppe/go-internal from 1.11.0 to 1.13.1 [#1379](https://github.com/fastly/cli/pull/1379)
- build(deps): bump github.com/dustinkirkland/golang-petname from 20240428194347 to eebcea082ee0 [#1377](https://github.com/fastly/cli/pull/1377)
## [v10.17.1](https://github.com/fastly/cli/releases/tag/v10.17.1) (2024-12-04)
**Bug fixes:**
- fix(sso): Ensure that only one authentication cycle is started. [#1355](https://github.com/fastly/cli/pull/1355)
**Dependencies:**
- build(deps): bump github.com/Masterminds/semver/v3 from 3.3.0 to 3.3.1 [#1352](https://github.com/fastly/cli/pull/1352)
## [v10.17.0](https://github.com/fastly/cli/releases/tag/v10.17.0) (2024-11-20)
**Enhancements:**
- feat(compute/build): Support 'upper bound' constraints on Rust versions. [#1350](https://github.com/fastly/cli/pull/1350)
**Bug fixes:**
- fix(compute/init): Init no longer fails if directory of same name as starter kit exists in current directory [#1349](https://github.com/fastly/cli/pull/1349)
## [v10.16.0](https://github.com/fastly/cli/releases/tag/v10.16.0) (2024-11-12)
**Enhancements:**
- Publish to GitHub packages in addition to npmjs [#1330](https://github.com/fastly/cli/pull/1330)
- feat(logging): Add support for Grafana Cloud Logs. [#1333](https://github.com/fastly/cli/pull/1333)
- feat(profile/token): Allow user to specify how long token must be valid. [#1340](https://github.com/fastly/cli/pull/1340)
- feat(products): Add support for Log Explorer & Insights. [#1341](https://github.com/fastly/cli/pull/1341)
**Bug fixes:**
- breaking(products): Remove support for NGWAF product. [#1338](https://github.com/fastly/cli/pull/1338)
- fix(profile/token): 'profile token' command must check the validity of the stored token. [#1339](https://github.com/fastly/cli/pull/1339)
- fix(lint): Update staticcheck and fix identified problems. [#1346](https://github.com/fastly/cli/pull/1346)
**Dependencies:**
- build(deps): bump golang.org/x/term from 0.24.0 to 0.25.0 [#1324](https://github.com/fastly/cli/pull/1324)
- build(deps): bump golang.org/x/crypto from 0.27.0 to 0.28.0 [#1325](https://github.com/fastly/cli/pull/1325)
- build(deps): bump github.com/fatih/color from 1.17.0 to 1.18.0 [#1331](https://github.com/fastly/cli/pull/1331)
- build(deps): bump github.com/fsnotify/fsnotify from 1.7.0 to 1.8.0 [#1334](https://github.com/fastly/cli/pull/1334)
- build(deps): Update to go-fastly v9.12.0. [#1337](https://github.com/fastly/cli/pull/1337)
- build(deps): bump golang.org/x/term from 0.25.0 to 0.26.0 [#1342](https://github.com/fastly/cli/pull/1342)
- build(deps): bump golang.org/x/crypto from 0.28.0 to 0.29.0 [#1343](https://github.com/fastly/cli/pull/1343)
- build(deps): bump golang.org/x/text from 0.19.0 to 0.20.0 [#1344](https://github.com/fastly/cli/pull/1344)
- build(deps): bump golang.org/x/mod from 0.21.0 to 0.22.0 [#1345](https://github.com/fastly/cli/pull/1345)
## [v10.15.0](https://github.com/fastly/cli/releases/tag/v10.15.0) (2024-10-03)
**Enhancements:**
- feat(products): Add support for NGWAF product [#1322](https://github.com/fastly/cli/pull/1322)
**Dependencies:**
- build(deps): Upgrade to go-fastly 9.11.0. [#1322](https://github.com/fastly/cli/pull/1322)
## [v10.14.1](https://github.com/fastly/cli/releases/tag/v10.14.1) (2024-09-16)
**Bug fixes:**
- fix(tls/subscription): Recognise Certainly CA as an option when creating TLS subscriptions. [#1315](https://github.com/fastly/cli/pull/1315)
## [v10.14.0](https://github.com/fastly/cli/releases/tag/v10.14.0) (2024-09-10)
**Enhancements:**
- feat(npm): Add TypeScript types to @fastly/cli [#1296](https://github.com/fastly/cli/pull/1296)
- feat(products): Add support for Fastly Bot Management product. [#1300](https://github.com/fastly/cli/pull/1300)
**Bug fixes:**
- fix(compute/publish): Don't change directory twice during execution. [#1295](https://github.com/fastly/cli/pull/1295)
- feat(npm): Properly handle error from npm-invoked cli [#1302](https://github.com/fastly/cli/pull/1302)
**Dependencies:**
- build(deps): bump github.com/Masterminds/semver/v3 from 3.2.1 to 3.3.0 [#1306](https://github.com/fastly/cli/pull/1306)
- build(deps): bump golang.org/x/text from 0.17.0 to 0.18.0 [#1309](https://github.com/fastly/cli/pull/1309)
- build(deps): bump golang.org/x/term from 0.23.0 to 0.24.0 [#1310](https://github.com/fastly/cli/pull/1310)
- build(deps): bump golang.org/x/crypto from 0.26.0 to 0.27.0 [#1311](https://github.com/fastly/cli/pull/1311)
- build(deps): bump golang.org/x/mod from 0.20.0 to 0.21.0 [#1312](https://github.com/fastly/cli/pull/1312)
## [v10.13.3](https://github.com/fastly/cli/releases/tag/v10.13.3) (2024-08-15)
This release does not contain any code changes, but was made in order
to trigger the new 'NPM release' workflow after resolving some flaws
in that workflow.
## [v10.13.2](https://github.com/fastly/cli/releases/tag/v10.13.2) (2024-08-15)
This release does not contain any code changes, but was made in order
to trigger the new 'NPM release' workflow after resolving an
authentication flaw in that workflow.
## [v10.13.1](https://github.com/fastly/cli/releases/tag/v10.13.1) (2024-08-14)
This release does not contain any code changes, but was made in order
to trigger the new 'NPM release' workflow.
## [v10.13.0](https://github.com/fastly/cli/releases/tag/v10.13.0) (2024-08-14)
**Enhancements:**
- feat(tls): add optional `--key-path` parameter to `tls-custom private-key create` command [#1215](https://github.com/fastly/cli/pull/1215)
- feat: add debug-mode around all network requests [#1239](https://github.com/fastly/cli/pull/1239)
- logtail: add --timestamps flag [#1254](https://github.com/fastly/cli/pull/1254)
- Distribute binaries via npm module [#1269](https://github.com/fastly/cli/pull/1269)
- Enable quiet mode when `--json` flag is supplied [#1271](https://github.com/fastly/cli/pull/1271)
- Support configuring connection keepalive parameters [#1275](https://github.com/fastly/cli/pull/1275)
**Bug fixes:**
- fix(update): Ensure that the CLI binary will be executable after an update [#1244](https://github.com/fastly/cli/pull/1244)
- fix(service-version): Allow 'locked' services to be activated. [#1245](https://github.com/fastly/cli/pull/1245)
- fix(compute/serve): don't fail the serve workflow if github errors [#1246](https://github.com/fastly/cli/pull/1246)
- fix(all commands): --service-name flag should have priority. [#1264](https://github.com/fastly/cli/pull/1264)
- fix(products): Display product names in API style [#1270](https://github.com/fastly/cli/pull/1270)
**Dependencies:**
- build(deps): bump goreleaser/goreleaser-action from 5 to 6 [#1220](https://github.com/fastly/cli/pull/1220)
- build(deps): bump golang.org/x/text from 0.15.0 to 0.16.0 [#1222](https://github.com/fastly/cli/pull/1222)
- build(deps): bump golang.org/x/mod from 0.17.0 to 0.18.0 [#1223](https://github.com/fastly/cli/pull/1223)
- build(deps): bump golang.org/x/term from 0.20.0 to 0.21.0 [#1224](https://github.com/fastly/cli/pull/1224)
- build(deps): bump golang.org/x/crypto from 0.23.0 to 0.24.0 [#1225](https://github.com/fastly/cli/pull/1225)
- build(deps): bump github.com/fastly/go-fastly/v9 from 9.5.0 to 9.7.0 [#1235](https://github.com/fastly/cli/pull/1235)
- build(deps): bump golang.org/x/term from 0.21.0 to 0.22.0 [#1240](https://github.com/fastly/cli/pull/1240)
- build(deps): bump golang.org/x/crypto from 0.24.0 to 0.25.0 [#1241](https://github.com/fastly/cli/pull/1241)
- build(deps): bump golang.org/x/mod from 0.18.0 to 0.19.0 [#1242](https://github.com/fastly/cli/pull/1242)
- build(deps): 'tomlq' package now installs a 'tq' binary [#1243](https://github.com/fastly/cli/pull/1243)
- build(deps): bump github.com/hashicorp/cap from 0.6.0 to 0.7.0 [#1272](https://github.com/fastly/cli/pull/1272)
- build(deps): bump golang.org/x/mod from 0.19.0 to 0.20.0 [#1273](https://github.com/fastly/cli/pull/1273)
- build(deps): bump golang.org/x/text from 0.16.0 to 0.17.0 [#1281](https://github.com/fastly/cli/pull/1281)
- build(deps): bump golang.org/x/crypto from 0.25.0 to 0.26.0 [#1282](https://github.com/fastly/cli/pull/1282)
- build(deps): bump golang.org/x/term from 0.22.0 to 0.23.0 [#1283](https://github.com/fastly/cli/pull/1283)
## [v10.12.3](https://github.com/fastly/cli/releases/tag/v10.12.3) (2024-06-14)
**Bug fixes:**
- fix(sso): correct the behaviour for direct sso invocation [#1230](https://github.com/fastly/cli/pull/1230)
- fix(compute/deploy): dereference service number pointer [#1231](https://github.com/fastly/cli/pull/1231)
- fix(sso): update output to reflect default profile behaviour [#1232](https://github.com/fastly/cli/pull/1232)
## [v10.12.2](https://github.com/fastly/cli/releases/tag/v10.12.2) (2024-06-13)
**Bug fixes:**
- fix(sso): re-auth on profile switch + support MAUA [#1226](https://github.com/fastly/cli/pull/1226)
## [v10.12.1](https://github.com/fastly/cli/releases/tag/v10.12.1) (2024-06-10)
**Enhancements:**
- expose SSO commands and flags [#1218](https://github.com/fastly/cli/pull/1218)
## [v10.12.0](https://github.com/fastly/cli/releases/tag/v10.12.0) (2024-06-10)
**Enhancements:**
- feat(sso): support active session account switching [#1207](https://github.com/fastly/cli/pull/1207)
## [v10.11.0](https://github.com/fastly/cli/releases/tag/v10.11.0) (2024-06-06)
**Enhancements:**
- feat(app): improve error messaging when Fastly servers are unresponsive [#1212](https://github.com/fastly/cli/pull/1212)
- feat(compute): clone starter kit source with init --from=serviceID [#1213](https://github.com/fastly/cli/pull/1213)
- Adds --cert-path argument to `tls-custom certificate update` command to pass in a path to a certificate file [#1214](https://github.com/fastly/cli/pull/1214)
## [v10.10.0](https://github.com/fastly/cli/releases/tag/v10.10.0) (2024-05-20)
**Enhancements:**
- Adds --cert-path argument to `tls-custom certificate create` command to pass in a path to a certificate file [#1189](https://github.com/fastly/cli/pull/1189)
- feat(observability/alerts): Alerts support [#1192](https://github.com/fastly/cli/pull/1192)
- feat(compute/rust) Handle Cargo config filename for Rust >=1.78.0 [#1199](https://github.com/fastly/cli/pull/1199)
- add project-id to gcs logging setting [#1202](https://github.com/fastly/cli/pull/1202)
**Dependencies:**
- build(deps): bump github.com/fastly/go-fastly/v9 from 9.3.1 to 9.3.2 [#1204](https://github.com/fastly/cli/pull/1204)
- build(deps): bump github.com/fatih/color from 1.16.0 to 1.17.0 [#1205](https://github.com/fastly/cli/pull/1205)
## [v10.9.0](https://github.com/fastly/cli/releases/tag/v10.9.0) (2024-05-08)
**Enhancements:**
- chore: grammar and capitalization fixes for KV Store commands [#1178](https://github.com/fastly/cli/pull/1178)
- feat(kvstores): add support for specifying location when creating KV stores [#1182](https://github.com/fastly/cli/pull/1182)
- feat(compute/build): support wasm-tools installed into `$PATH` [#1183](https://github.com/fastly/cli/pull/1183)
- feat(compute/serve): support arbitrary arguments to Viceroy [#1186](https://github.com/fastly/cli/pull/1186)
- ci: update tinygo version used in tests [#1188](https://github.com/fastly/cli/pull/1188)
- feat(compute/init): allow `--from` to take a Service ID [#1187](https://github.com/fastly/cli/pull/1187)
**Bug fixes:**
- fix(kvstore): delete all keys [#1181](https://github.com/fastly/cli/pull/1181)
- fix(compute/rust) handling of 'cargo version' output [#1197](https://github.com/fastly/cli/pull/1197)
- fix(compute/serve): skip build if `--file` set [#1200](https://github.com/fastly/cli/pull/1200)
**Dependencies:**
- build(deps): bump github.com/fastly/go-fastly/v9 from 9.2.1 to 9.2.2 [#1180](https://github.com/fastly/cli/pull/1180)
- build(deps): bump golang.org/x/crypto from 0.22.0 to 0.23.0 [#1194](https://github.com/fastly/cli/pull/1194)
## [v10.8.10](https://github.com/fastly/cli/releases/tag/v10.8.10) (2024-04-10)
**Dependencies:**
- build(deps): bump golang.org/x/crypto from 0.21.0 to 0.22.0 [#1173](https://github.com/fastly/cli/pull/1173)
- build(deps): bump golang.org/x/mod from 0.16.0 to 0.17.0 [#1175](https://github.com/fastly/cli/pull/1175)
## [v10.8.9](https://github.com/fastly/cli/releases/tag/v10.8.9) (2024-03-27)
**Bug fixes:**
- fix(stats/historical): avoid runtime SIGSEGV [#1169](https://github.com/fastly/cli/pull/1169)
## [v10.8.8](https://github.com/fastly/cli/releases/tag/v10.8.8) (2024-03-15)
**Enhancements:**
- feat(logging/scalyr): add project-id [#1166](https://github.com/fastly/cli/pull/1166)
- Update all URLs for developer.fastly.com to their new forms [#1164](https://github.com/fastly/cli/pull/1164)
**Dependencies:**
- build(deps): bump google.golang.org/protobuf from 1.28.1 to 1.33.0 [#1158](https://github.com/fastly/cli/pull/1158)
## [v10.8.7](https://github.com/fastly/cli/releases/tag/v10.8.7) (2024-03-14)
**Bug fixes:**
- fix(text): deref pointers [#1161](https://github.com/fastly/cli/pull/1161)
- fix(compute/serve): let wasm-tools fail more gracefully [#1160](https://github.com/fastly/cli/pull/1160)
- fix(compute/serve): support Windows [#1159](https://github.com/fastly/cli/pull/1159)
**Enhancements:**
- refactor: avoid duplicate path strings [#1162](https://github.com/fastly/cli/pull/1162)
## [v10.8.6](https://github.com/fastly/cli/releases/tag/v10.8.6) (2024-03-12)
**Dependencies:**
- build(deps): bump golang.org/x/crypto from 0.20.0 to 0.21.0 [#1153](https://github.com/fastly/cli/pull/1153)
- build: bump go-fastly to v9.0.1 [#1155](https://github.com/fastly/cli/pull/1155)
- build(deps): bump actions/setup-go from 4 to 5 [#1106](https://github.com/fastly/cli/pull/1106)
- build(deps): bump github.com/go-jose/go-jose/v3 from 3.0.1 to 3.0.3 [#1149](https://github.com/fastly/cli/pull/1149)
- build(deps): bump actions/download-artifact and actions/upload-artifact from 3 to 4 [#1156](https://github.com/fastly/cli/pull/1156)
## [v10.8.5](https://github.com/fastly/cli/releases/tag/v10.8.5) (2024-03-11)
**Bug fixes:**
- fix(compute/serve): avoid wasm validation when --file is set [#1150](https://github.com/fastly/cli/pull/1150)
**Enhancements:**
- refactor(app): update list of commands that require a token [#1145](https://github.com/fastly/cli/pull/1145)
**Dependencies:**
- build(deps): bump golang.org/x/crypto from 0.19.0 to 0.20.0 [#1146](https://github.com/fastly/cli/pull/1146)
- build(deps): bump golang.org/x/mod from 0.15.0 to 0.16.0 [#1147](https://github.com/fastly/cli/pull/1147)
## [v10.8.4](https://github.com/fastly/cli/releases/tag/v10.8.4) (2024-03-01)
**Bug fixes:**
- fix(compute/build): avoid persisting old metadata [#1142](https://github.com/fastly/cli/pull/1142)
## [v10.8.3](https://github.com/fastly/cli/releases/tag/v10.8.3) (2024-02-21)
**Bug fixes:**
- fix(github): update wasm-tools path [#1136](https://github.com/fastly/cli/pull/1136)
- fix(compute/serve): avoid `text.Output` when dealing with large `bytes.Buffer` [#1138](https://github.com/fastly/cli/pull/1138)
**Enhancements:**
- resolve GitHub linter issues [#1137](https://github.com/fastly/cli/pull/1137)
**Dependencies:**
- build(deps): bump golang.org/x/mod from 0.14.0 to 0.15.0 [#1135](https://github.com/fastly/cli/pull/1135)
## [v10.8.2](https://github.com/fastly/cli/releases/tag/v10.8.2) (2024-02-15)
**Bug fixes:**
- fix: directory switching logic [#1132](https://github.com/fastly/cli/pull/1132)
## [v10.8.1](https://github.com/fastly/cli/releases/tag/v10.8.1) (2024-02-14)
**Bug fixes:**
- fix(compute/build): normalise and bucket heap allocations [#1130](https://github.com/fastly/cli/pull/1130)
**Enhancements:**
- refactor(all): support go-fastly v9 [#1124](https://github.com/fastly/cli/pull/1124)
**Dependencies:**
- build(deps): bump actions/cache from 3 to 4 [#1122](https://github.com/fastly/cli/pull/1122)
- build(deps): bump github.com/hashicorp/cap from 0.3.4 to 0.5.0 [#1128](https://github.com/fastly/cli/pull/1128)
- build(deps): bump golang.org/x/crypto from 0.18.0 to 0.19.0 [#1127](https://github.com/fastly/cli/pull/1127)
## [v10.8.0](https://github.com/fastly/cli/releases/tag/v10.8.0) (2024-01-17)
**Bug fixes:**
- doc(tls/custom): correct flag descriptions [#1116](https://github.com/fastly/cli/pull/1116)
- fix(profile/create): support sso [#1117](https://github.com/fastly/cli/pull/1117)
- fix: update list of commands that require auth server [#1120](https://github.com/fastly/cli/pull/1120)
**Enhancements:**
- feat: install CLI version command [#1104](https://github.com/fastly/cli/pull/1104)
- refactor(cmd): rename package to argparser [#1105](https://github.com/fastly/cli/pull/1105)
- refactor: rename test function names [#1107](https://github.com/fastly/cli/pull/1107)
**Dependencies:**
- build(deps): bump golang.org/x/crypto from 0.15.0 to 0.18.0 [#1119](https://github.com/fastly/cli/pull/1119)
## [v10.7.0](https://github.com/fastly/cli/releases/tag/v10.7.0) (2023-11-30)
The Fastly CLI internal configuration file has `config_version` bumped to version `6`. We've added a new `[wasm-metadata.script_info]` field so that users can omit script info (which comes from the fastly.toml) from the metadata annotated onto their compiled Wasm binaries.
When upgrading to this version of the CLI, and running a command for the first time, the config file should automatically update, but this can also be manually triggered by executing:
```shell
fastly config --reset
```
**Bug fixes:**
- fix: move auth setup so it doesn't run for non-token based commands [#1099](https://github.com/fastly/cli/pull/1099)
**Enhancements:**
- remove(profile/update): APIClientFactory [#1094](https://github.com/fastly/cli/pull/1094)
- feat: switch on metadata collection [#1097](https://github.com/fastly/cli/pull/1097)
## [v10.6.4](https://github.com/fastly/cli/releases/tag/v10.6.4) (2023-11-15)
**Bug fixes:**
- fix(errors): ensure help output is displayed [#1092](https://github.com/fastly/cli/pull/1092)
## [v10.6.3](https://github.com/fastly/cli/releases/tag/v10.6.3) (2023-11-15)
The Fastly CLI internal configuration file has `config_version` bumped to version `5`. We've added a new account endpoint field (used as an override for Single-Sign On testing).
When upgrading to this version of the CLI, and running a command for the first time, the config file should automatically update, but this can also be manually triggered by executing:
```shell
fastly config --reset
```
**Bug fixes:**
- fix(text): prompt colour [#1089](https://github.com/fastly/cli/pull/1089)
- fix(app): allow config override for account endpoint [#1090](https://github.com/fastly/cli/pull/1090)
**Enhancements:**
- feat: support SSO (Single Sign-On) [#1010](https://github.com/fastly/cli/pull/1010)
**Dependencies:**
- build(deps): bump golang.org/x/(crypto|term) [#1088](https://github.com/fastly/cli/pull/1088)
## [v10.6.2](https://github.com/fastly/cli/releases/tag/v10.6.2) (2023-11-09)
**Bug fixes:**
- fix(github): corrections for Windows users downloading wasm-tools [#1083](https://github.com/fastly/cli/pull/1083)
- fix(compute/build): don't block user if wasm-tool fails [#1084](https://github.com/fastly/cli/pull/1084)
**Enhancements:**
- refactor: apply linting fixes [#1080](https://github.com/fastly/cli/pull/1080)
- refactor(compute/serve): replace log.Fatal usage with channel [#1081](https://github.com/fastly/cli/pull/1081)
- refactor(logtail): replace log.Fatal usage with channel [#1081](https://github.com/fastly/cli/pull/1082)
**Dependencies:**
- build(deps): bump golang.org/x/mod from 0.13.0 to 0.14.0 [#1079](https://github.com/fastly/cli/pull/1079)
- build(deps): bump golang.org/x/text from 0.13.0 to 0.14.0 [#1078](https://github.com/fastly/cli/pull/1078)
- build(deps): bump github.com/fatih/color from 1.15.0 to 1.16.0 [#1077](https://github.com/fastly/cli/pull/1077)
## [v10.6.1](https://github.com/fastly/cli/releases/tag/v10.6.1) (2023-11-03)
**Bug fixes:**
- fix(manifest): only reset EnvVars if EnvFile set [#1073](https://github.com/fastly/cli/pull/1073)
- fix(github): check architecture when fetching wasm-tools [#1074](https://github.com/fastly/cli/pull/1074)
## [v10.6.0](https://github.com/fastly/cli/releases/tag/v10.6.0) (2023-11-03)
**Bug fixes:**
- fix(backend): support disabling `ssl-check-cert` [#1055](https://github.com/fastly/cli/pull/1055)
**Enhancements:**
- feat(compute): add metadata subcommand [#1013](https://github.com/fastly/cli/pull/1013)
- feat(telemetry): add wasm-tools wasm binary annotations [#1016](https://github.com/fastly/cli/pull/1016)
- feat: add `--consistency` flag to `kv-store-entry list` command [#1058](https://github.com/fastly/cli/pull/1058)
- feat: add `--debug-mode` [#1056](https://github.com/fastly/cli/pull/1056)
- ci: replace setup-tinygo fork with original [#1057](https://github.com/fastly/cli/pull/1057)
**Dependencies:**
- build(deps): bump github.com/docker/docker [#1060](https://github.com/fastly/cli/pull/1060)
- build(deps): bump google.golang.org/grpc from 1.56.2 to 1.56.3 [#1061](https://github.com/fastly/cli/pull/1061)
- build(deps): bump all go.mod dependencies [#1062](https://github.com/fastly/cli/pull/1062)
## [v10.5.1](https://github.com/fastly/cli/releases/tag/v10.5.1) (2023-10-25)
**Bug fixes:**
- fix(compute/deploy): ignore package comparison error [#1053](https://github.com/fastly/cli/pull/1053)
- remove: trufflehog [#1064](https://github.com/fastly/cli/pull/1064)
- fix(cmd/flags): handle zero length check separately [#1065](https://github.com/fastly/cli/pull/1065)
- fix(compute/deploy): only cleanup service if there is an ID [#1066](https://github.com/fastly/cli/pull/1066)
**Enhancements:**
- refactor(compute/deploy): add setup message for existing service users [#1052](https://github.com/fastly/cli/pull/1052)
- feat(manifest): support env_file [#1067](https://github.com/fastly/cli/pull/1067)
- fix(compute/build): improve redaction logic [#1068](https://github.com/fastly/cli/pull/1068)
- feat(compute/secrets): redact common org secrets [#1069](https://github.com/fastly/cli/pull/1069)
**Dependencies:**
- build(deps): bump github.com/fsnotify/fsnotify from 1.6.0 to 1.7.0 [#1050](https://github.com/fastly/cli/pull/1050)
- build(deps): bump actions/setup-node from 3 to 4 [#1051](https://github.com/fastly/cli/pull/1051)
## [v10.5.0](https://github.com/fastly/cli/releases/tag/v10.5.0) (2023-10-18)
The Fastly CLI internal configuration file has been updated to version `4`, with the only change being the addition of the Fastly [TinyGo Compute Starter Kit](https://github.com/fastly/compute-starter-kit-go-tinygo).
When upgrading to this version of the CLI, and running a command for the first time, the config file should automatically update, but this can also be manually triggered by executing:
```shell
fastly config --reset
```
The other change worth noting is to the parsing of the `fastly.toml` manifest file, which now supports a `file` field inside `[setup.kv_stores.<T>.items]` which can be used in place of the `value` field. Assigning a file path to the `file` field will use the content of the file as the value for the key. See: https://www.fastly.com/documentation/reference/compute/fastly-toml
**Bug fixes:**
- fix(compute/init): `post_init` to support `env_vars` [#1014](https://github.com/fastly/cli/pull/1014)
- fix(app): return error when input is `--` only [#1022](https://github.com/fastly/cli/pull/1022)
- fix(compute/deploy): check package before service clone [#1026](https://github.com/fastly/cli/pull/1026)
- fix: spinner wraps original error [#1029](https://github.com/fastly/cli/pull/1029)
- fix(compute/serve): ensure `--env` files are processed [#1039](https://github.com/fastly/cli/pull/1039)
**Enhancements:**
- add: vcl condition commands [#1008](https://github.com/fastly/cli/pull/1008)
- feat(compute/build): support `env_vars` for JavaScript/Rust [#1012](https://github.com/fastly/cli/pull/1012)
- feat(config): add tinygo starter kit [#1011](https://github.com/fastly/cli/pull/1011)
- feat(compute/serve): support guest profiler under Viceroy [#1019](https://github.com/fastly/cli/pull/1019)
- fix(packaging): Improve metadata in Linux packages [#1021](https://github.com/fastly/cli/pull/1021)
- feat(compute/build): support Cargo Workspaces [#1023](https://github.com/fastly/cli/pull/1023)
- feat(spinner): abstract common pattern [#1024](https://github.com/fastly/cli/pull/1024)
- fix(text): consistent formatting and output alignment [#1030](https://github.com/fastly/cli/pull/1030)
- feat(product_enablement): add `products` command [#1036](https://github.com/fastly/cli/pull/1036)
- fix(compute/serve): update Viceroy guest profile flag [#1033](https://github.com/fastly/cli/pull/1033)
- fix(compute/deploy): support file field for `kv_store` setup [#1040](https://github.com/fastly/cli/pull/1040)
- refactor(compute/deploy): simplify logic flows [#1032](https://github.com/fastly/cli/pull/1032)
- feat(compute/build): allow user to specify project directory to build [#1043](https://github.com/fastly/cli/pull/1043)
- feat(compute/deploy): avoid store conflicts [#1041](https://github.com/fastly/cli/pull/1041)
- feat: support `--env` flag [#1046](https://github.com/fastly/cli/pull/1046)
**Dependencies:**
- build(deps): bump goreleaser/goreleaser-action from 4 to 5 [#1015](https://github.com/fastly/cli/pull/1015)
- build(deps): bump golang.org/x/crypto from 0.12.0 to 0.13.0 [#1009](https://github.com/fastly/cli/pull/1009)
- build(deps): bump actions/checkout from 3 to 4 [#1006](https://github.com/fastly/cli/pull/1006)
- build(deps): bump github.com/fastly/go-fastly/v8 from 8.6.1 to 8.6.2 [#1028](https://github.com/fastly/cli/pull/1028)
- build(deps): bump github.com/otiai10/copy from 1.12.0 to 1.14.0 [#1027](https://github.com/fastly/cli/pull/1027)
- build(deps): bump golang.org/x/crypto from 0.13.0 to 0.14.0 [#1034](https://github.com/fastly/cli/pull/1034)
- build(deps): bump golang.org/x/net from 0.10.0 to 0.17.0 [#1042](https://github.com/fastly/cli/pull/1042)
- build(deps): bump github.com/google/go-cmp from 0.5.9 to 0.6.0 [#1045](https://github.com/fastly/cli/pull/1045)
**Documentation:**
- fix(DEVELOP.MD): clarify Go version requirement and document Rust requirement [#1017](https://github.com/fastly/cli/pull/1017)
- doc(compute/serve): update GetViceroy doc [#1038](https://github.com/fastly/cli/pull/1038)
- branding: Replace all Compute@Edge/C@E references with Compute [#1044](https://github.com/fastly/cli/pull/1044)
## [v10.4.0](https://github.com/fastly/cli/releases/tag/v10.4.0) (2023-08-31)
The Fastly CLI internal configuration file has been updated to version `3`, with the primary change being updates to the toolchain constraints within the `[language.go]` section ([diff](https://github.com/fastly/cli/pull/995/files#diff-8b30a64872c0f304cd83a24f92c57f62b12d6ba81c6a51428da7d1ed3ceb83fd)).
When upgrading to this version of the CLI, and running a command for the first time, the config file should automatically update, but this can also be manually triggered by executing:
```shell
fastly config --reset
```
The changes to the internal configuration correlate with another change in this release, which is adding support for standard Go alongside TinyGo.
If your fastly.toml has no custom `[scripts.build]` defined, then TinyGo will continue to be the default compiler used for building your Compute@Edge project. Otherwise, adding the following will enable you to use the Wasm support that Go 1.21+ provides:
```toml
[scripts]
env_vars = ["GOARCH=wasm", "GOOS=wasip1"]
build = "go build -o bin/main.wasm ."
```
**Deprecations:**
- remove(compute/init): assemblyscript [#1002](https://github.com/fastly/cli/pull/1002)
**Enhancements:**
- feat(compute/build): support native go [#995](https://github.com/fastly/cli/pull/995)
- Add support for interacting with the New Relic OTLP logging endpoint [#990](https://github.com/fastly/cli/pull/990)
**Dependencies:**
- build: bump go-fastly to v8.6.1 [#1000](https://github.com/fastly/cli/pull/1000)
- build(deps): bump golang.org/x/crypto from 0.11.0 to 0.12.0 [#994](https://github.com/fastly/cli/pull/994)
- build(deps): bump github.com/fastly/go-fastly/v8 from 8.5.7 to 8.5.9 [#996](https://github.com/fastly/cli/pull/996)
## [v10.3.0](https://github.com/fastly/cli/releases/tag/v10.3.0) (2023-08-16)
**Enhancements:**
- feat(compute/init): support post_init [#997](https://github.com/fastly/cli/pull/997)
**Bug fixes:**
- build(scripts): use /usr/bin/env bash to retrieve system bash path [#987](https://github.com/fastly/cli/pull/987)
- fix(kvstores/list): support pagination [#988](https://github.com/fastly/cli/pull/988)
- fix(secretstore): pagination + support for json [#991](https://github.com/fastly/cli/pull/991)
## [v10.2.4](https://github.com/fastly/cli/releases/tag/v10.2.4) (2023-07-28)
**Enhancements:**
- fix(kvstoreentry): improve error handling for batch processing [#980](https://github.com/fastly/cli/pull/980)
- feat(kvstore): support deleting all keys [#981](https://github.com/fastly/cli/pull/981)
- feat(configstoreentry): support deleting all keys [#983](https://github.com/fastly/cli/pull/983)
**Bug fixes:**
- fix(compute/deploy): support --service-name for publishing to a non-manifest specific service [#979](https://github.com/fastly/cli/pull/979)
- fix(compute/validate): remove broken decompression bomb check [#984](https://github.com/fastly/cli/pull/984)
## [v10.2.3](https://github.com/fastly/cli/releases/tag/v10.2.3) (2023-07-20)
**Enhancements:**
- refactor(compute): clean-up logic surrounding filesHash generation [#969](https://github.com/fastly/cli/pull/969)
- fix: increase text width [#970](https://github.com/fastly/cli/pull/970)
**Bug fixes:**
- Correctly check if the package is up to date [#967](https://github.com/fastly/cli/pull/967)
- fix(flags): ensure ListServices call is paginated [#976](https://github.com/fastly/cli/pull/976)
**Dependencies:**
- build(deps): bump github.com/fastly/go-fastly/v8 from 8.5.1 to 8.5.2 [#966](https://github.com/fastly/cli/pull/966)
- build(deps): bump github.com/fastly/go-fastly/v8 from 8.5.2 to 8.5.4 [#968](https://github.com/fastly/cli/pull/968)
- build(deps): bump golang.org/x/crypto from 0.10.0 to 0.11.0 [#972](https://github.com/fastly/cli/pull/972)
- build(deps): bump golang.org/x/term from 0.9.0 to 0.10.0 [#971](https://github.com/fastly/cli/pull/971)
## [v10.2.2](https://github.com/fastly/cli/releases/tag/v10.2.2) (2023-06-22)
**Enhancements:**
- refactor(ci): disable setup-go caching to avoid later cache restoration errors [#960](https://github.com/fastly/cli/pull/960)
**Bug fixes:**
- fix(update): use consistent pattern for replacing binary [#961](https://github.com/fastly/cli/pull/961)
- fix(kvstoreentry): avoid runtime panic for out of bound slice index [#964](https://github.com/fastly/cli/pull/964)
**Dependencies:**
- build(deps): bump golang.org/x/term from 0.8.0 to 0.9.0 [#959](https://github.com/fastly/cli/pull/959)
- build(deps): bump github.com/otiai10/copy from 1.11.0 to 1.12.0 [#958](https://github.com/fastly/cli/pull/958)
- build(deps): bump golang.org/x/crypto from 0.9.0 to 0.10.0 [#957](https://github.com/fastly/cli/pull/957)
## [v10.2.1](https://github.com/fastly/cli/releases/tag/v10.2.1) (2023-06-19)
**Enhancements:**
- feat(logging/s3): add --file-max-bytes flag [#952](https://github.com/fastly/cli/pull/952)
- ci: better caching support [#951](https://github.com/fastly/cli/pull/951)
- fix: remove sentry [#954](https://github.com/fastly/cli/pull/954)
- refactor: logic clean-up [#955](https://github.com/fastly/cli/pull/955)
**Bug fixes:**
- ci: fix cache restore bug [#953](https://github.com/fastly/cli/pull/953)
**Dependencies:**
- build(deps): bump github.com/fastly/go-fastly/v8 from 8.4.1 to 8.5.0 [#949](https://github.com/fastly/cli/pull/949)
## [v10.2.0](https://github.com/fastly/cli/releases/tag/v10.2.0) (2023-06-12)
**Enhancements:**
- feat: support viceroy pinning [#947](https://github.com/fastly/cli/pull/947)
- Enable environment variable hints for `--token` flag [#945](https://github.com/fastly/cli/pull/945)
- secret store: add `--recreate` and `--recreate-must` options [#930](https://github.com/fastly/cli/pull/930)
**Dependencies:**
- build(deps): bump github.com/fastly/go-fastly/v8 from 8.3.0 to 8.4.1 [#946](https://github.com/fastly/cli/pull/946)
## [v10.1.0](https://github.com/fastly/cli/releases/tag/v10.1.0) (2023-05-18)
Deprecation notice: `fastly compute hashsum` is being phased out in favour of `fastly compute hash-files`.
**Enhancements:**
- feat(compute/hashfiles): add hash-files subcommand [#943](https://github.com/fastly/cli/pull/943)
## [v10.0.1](https://github.com/fastly/cli/releases/tag/v10.0.1) (2023-05-17)
**Bug fixes:**
- fix(kvstoreentry): support JSON output for bulk processing [#940](https://github.com/fastly/cli/pull/940)
## [v10.0.0](https://github.com/fastly/cli/releases/tag/v10.0.0) (2023-05-16)
**Breaking:**
This release introduces a breaking interface change to the `kv-store-entry` command. The `--key-name` flag is renamed to `--key` to be consistent with the other 'stores' supported within the CLI.
**Bug fixes:**
- fastly backend create: override host cannot be an empty string [#936](https://github.com/fastly/cli/pull/936)
- fix(profile): support automation tokens [#938](https://github.com/fastly/cli/pull/938)
**Enhancements:**
- feat(kvstore): Bulk Import [#927](https://github.com/fastly/cli/pull/927)
- refactor: make config/kv/secret store output consistent [#937](https://github.com/fastly/cli/pull/937)
**Dependencies:**
- build(deps): bump github.com/fastly/go-fastly/v8 from 8.0.0 to 8.0.1 [#926](https://github.com/fastly/cli/pull/926)
- build(deps): bump golang.org/x/term from 0.7.0 to 0.8.0 [#928](https://github.com/fastly/cli/pull/928)
- build(deps): bump github.com/getsentry/sentry-go from 0.20.0 to 0.21.0 [#929](https://github.com/fastly/cli/pull/929)
- build(deps): bump golang.org/x/crypto from 0.8.0 to 0.9.0 [#934](https://github.com/fastly/cli/pull/934)
## [v9.0.3](https://github.com/fastly/cli/releases/tag/v9.0.3) (2023-04-26)
**Bug fixes:**
- Omit errors from Sentry reporting [#922](https://github.com/fastly/cli/pull/922)
**Enhancements:**
- fix(compute/serve): always set verbose mode for viceroy [#924](https://github.com/fastly/cli/pull/924)
**Dependencies:**
- build(deps): bump github.com/otiai10/copy from 1.10.0 to 1.11.0 [#923](https://github.com/fastly/cli/pull/923)
## [v9.0.2](https://github.com/fastly/cli/releases/tag/v9.0.2) (2023-04-19)
**Bug fixes:**
- fix(kvstore): alias `object-store` [#920](https://github.com/fastly/cli/pull/920)
## [v9.0.1](https://github.com/fastly/cli/releases/tag/v9.0.1) (2023-04-19)
**Bug fixes:**
- fix: reinstate support for `[setup.object_stores]` [#918](https://github.com/fastly/cli/pull/918)
## [v9.0.0](https://github.com/fastly/cli/releases/tag/v9.0.0) (2023-04-19)
There are a couple of important 'breaking' changes in this release.
The `object-store` command has been renamed to `kv-store` and the `fastly.toml` manifest (used by the Fastly CLI) has updated its data model (see https://www.fastly.com/documentation/reference/compute/fastly-toml) by renaming `[setup.dictionaries]` and `[local_server.dictionaries]` to their `config_stores` equivalent, which has resulted in a new `manifest_version` number due to the change to the consumer interface.
**Breaking:**
- breaking(objectstore): rename object-store command to kv-store [#904](https://github.com/fastly/cli/pull/904)
- breaking(manifest): support latest fastly.toml manifest data model [#907](https://github.com/fastly/cli/pull/907)
**Bug fixes:**
- fix(manifest): re-raise remediation error to avoid go-toml wrapping issue [#915](https://github.com/fastly/cli/pull/915)
- fix(compute/deploy): shorten message to avoid spinner bug [#916](https://github.com/fastly/cli/pull/916)
**Enhancements:**
- feat(compute/deploy): add Secret Store to manifest `[setup]` [#769](https://github.com/fastly/cli/pull/769)
- feat(config): add TypeScript Starter Kit [#908](https://github.com/fastly/cli/pull/908)
- fix(errors/log): support filtering errors to Sentry [#909](https://github.com/fastly/cli/pull/909)
- fix(manifest): improve output message for fastly.toml related errors [#910](https://github.com/fastly/cli/pull/910)
- feat(service): support `--json` for service search subcommand [#911](https://github.com/fastly/cli/pull/911)
- refactor: consistent `--json` implementation [#912](https://github.com/fastly/cli/pull/912)
**Dependencies:**
- build(deps): bump github.com/otiai10/copy from 1.9.0 to 1.10.0 [#900](https://github.com/fastly/cli/pull/900)
- build(deps): bump golang.org/x/crypto from 0.7.0 to 0.8.0 [#901](https://github.com/fastly/cli/pull/901)
- build(deps): bump golang.org/x/term from 0.6.0 to 0.7.0 [#902](https://github.com/fastly/cli/pull/902)
- build(deps): bump github.com/Masterminds/semver/v3 from 3.2.0 to 3.2.1 [#903](https://github.com/fastly/cli/pull/903)
## [v8.2.4](https://github.com/fastly/cli/releases/tag/v8.2.4) (2023-04-06)
**Enhancements:**
- feat(compute/serve): support forcing a viceroy check [#898](https://github.com/fastly/cli/pull/898)
## [v8.2.3](https://github.com/fastly/cli/releases/tag/v8.2.3) (2023-04-05)
[Full Changelog](https://github.com/fastly/cli/compare/v8.2.2...v8.2.3)
**Enhancements:**
- fix(profile): always prompt for token [#896](https://github.com/fastly/cli/pull/896)
**Dependencies:**
- build(deps): bump github.com/getsentry/sentry-go from 0.19.0 to 0.20.0 [#895](https://github.com/fastly/cli/pull/895)
- build(deps): bump actions/setup-go from 3 to 4 [#882](https://github.com/fastly/cli/pull/882)
- build(deps): bump github.com/fatih/color from 1.14.1 to 1.15.0 [#865](https://github.com/fastly/cli/pull/865)
## [v8.2.2](https://github.com/fastly/cli/releases/tag/v8.2.2) (2023-03-31)
[Full Changelog](https://github.com/fastly/cli/compare/v8.2.1...v8.2.2)
**Enhancements:**
- feat(ratelimit): add missing properties [#891](https://github.com/fastly/cli/pull/891)
- feat(ratelimiter): add uri-dict-name flag [#892](https://github.com/fastly/cli/pull/892)
## [v8.2.1](https://github.com/fastly/cli/releases/tag/v8.2.1) (2023-03-30)
[Full Changelog](https://github.com/fastly/cli/compare/v8.2.0...v8.2.1)
**Dependencies:**
- build(deps): bump tinygo baseline version [#888](https://github.com/fastly/cli/pull/888)
**Bug fixes:**
- fix(toolchain): bump go version to align with updated tinygo constraint [#889](https://github.com/fastly/cli/pull/889)
## [v8.2.0](https://github.com/fastly/cli/releases/tag/v8.2.0) (2023-03-28)
[Full Changelog](https://github.com/fastly/cli/compare/v8.1.2...v8.2.0)
**Enhancements:**
- feat(ratelimit): implement rate-limiter API [#886](https://github.com/fastly/cli/pull/886)
## [v8.1.2](https://github.com/fastly/cli/releases/tag/v8.1.2) (2023-03-21)
[Full Changelog](https://github.com/fastly/cli/compare/v8.1.1...v8.1.2)
**Bug fixes:**
- fix(service/create): input.Type assigned wrong value [#881](https://github.com/fastly/cli/pull/881)
## [v8.1.1](https://github.com/fastly/cli/releases/tag/v8.1.1) (2023-03-20)
[Full Changelog](https://github.com/fastly/cli/compare/v8.1.0...v8.1.1)
**Bug fixes:**
- Pass verbosity flag along to viceroy binary [#878](https://github.com/fastly/cli/pull/878)
- fix(compute/serve): always display local server address [#879](https://github.com/fastly/cli/pull/879)
## [v8.1.0](https://github.com/fastly/cli/releases/tag/v8.1.0) (2023-03-17)
[Full Changelog](https://github.com/fastly/cli/compare/v8.0.1...v8.1.0)
**Enhancements:**
- fix various lint and CI issues [#873](https://github.com/fastly/cli/pull/873)
- feat(config-store): Add Config Store commands [#829](https://github.com/fastly/cli/pull/829)
- fix(compute/deploy): service availability [#875](https://github.com/fastly/cli/pull/875)
- fix(compute/deploy): check status code range [#876](https://github.com/fastly/cli/pull/876)
## [v8.0.1](https://github.com/fastly/cli/releases/tag/v8.0.1) (2023-03-15)
[Full Changelog](https://github.com/fastly/cli/compare/v8.0.0...v8.0.1)
**Bug fixes:**
- fix(compute/serve): stop spinner before starting another instance [#867](https://github.com/fastly/cli/pull/867)
- fix(http/client): address confusion with timeout error [#869](https://github.com/fastly/cli/pull/869)
- fix(http/client): bump timeout to account for poor network conditions [#870](https://github.com/fastly/cli/pull/870)
**Enhancements:**
- refactor(compute/deploy): change default port from 80 to 443 [#866](https://github.com/fastly/cli/pull/866)
## [v8.0.0](https://github.com/fastly/cli/releases/tag/v8.0.0) (2023-03-08)
[Full Changelog](https://github.com/fastly/cli/compare/v7.0.1...v8.0.0)
**Breaking:**
This release contains a small breaking interface change that has required us to bump to a new major version.
When viewing a profile token using `fastly profile token` the `--name` flag is no longer supported. It has been moved to a positional argument to make it consistent with the other profile subcommands. The `profile token` command now respects the global `--profile` flag, which allows a user to switch profiles for the lifetime of a single command execution.
Examples:
- `fastly profile token --name=example` -> `fastly profile token example`
- `fastly profile token --profile=example`
* breaking(profiles): replace `--name` with positional arg + allow global override [#862](https://github.com/fastly/cli/pull/862)
**Bug fixes:**
- fix(build): show build output with `--verbose` flag [#853](https://github.com/fastly/cli/pull/853)
**Enhancements:**
- fix(profile/update): update active profile as default behaviour [#857](https://github.com/fastly/cli/pull/857)
- fix(compute/serve): allow overriding of viceroy binary [#859](https://github.com/fastly/cli/pull/859)
- feat(compute/deploy): check service availability [#860](https://github.com/fastly/cli/pull/860)
**Dependencies:**
- build(deps): bump github.com/getsentry/sentry-go from 0.18.0 to 0.19.0 [#856](https://github.com/fastly/cli/pull/856)
- build(deps): bump golang.org/x/crypto [#855](https://github.com/fastly/cli/pull/855)
## [v7.0.1](https://github.com/fastly/cli/releases/tag/v7.0.1) (2023-03-02)
[Full Changelog](https://github.com/fastly/cli/compare/v7.0.0...v7.0.1)
**Bug fixes:**
- fix(compute/build): move log calls before subprocess call [#847](https://github.com/fastly/cli/pull/847)
- fix(compute/serve): ensure spinner is closed for all logic branches [#849](https://github.com/fastly/cli/pull/849)
**Enhancements:**
- feat(dict/create): display dictionary ID on creation [#848](https://github.com/fastly/cli/pull/848)
- refactor: clean-up nil error checks [#851](https://github.com/fastly/cli/pull/851)
## [v7.0.0](https://github.com/fastly/cli/releases/tag/v7.0.0) (2023-02-23)
[Full Changelog](https://github.com/fastly/cli/compare/v6.0.6...v7.0.0)
**Breaking:**
There are a couple of small breaking changes to the CLI.
Prior versions of the CLI would consult the following files to ignore specific files while running `compute serve --watch`:
- `.ignore`
- `.gitignore`
- The user's global git ignore configuration
We are dropping support for these files and will instead consult `.fastlyignore`, which is already used by `compute build`.
We've removed support for the `logging logentries` subcommand as the third-party logging product has been deprecated.
- fix(compute/serve): replace separate ignore files with `.fastlyignore` [#834](https://github.com/fastly/cli/pull/834)
- breaking(logging): remove logentries [#835](https://github.com/fastly/cli/pull/835)
**Bug fixes:**
- fix(compute/build): ignore all files except manifest and wasm binary [#836](https://github.com/fastly/cli/pull/836)
- fix(compute/serve): output rendering [#839](https://github.com/fastly/cli/pull/839)
- Fix compute build rendered output [#842](https://github.com/fastly/cli/pull/842)
**Enhancements:**
- use secret store client keys when creating secret store entries [#805](https://github.com/fastly/cli/pull/805)
- fix(compute/serve): check for missing override_host [#832](https://github.com/fastly/cli/pull/832)
- feat(resource-link): Add Service Resource commands [#800](https://github.com/fastly/cli/pull/800)
- Replace custom spinner with less buggy third-party package [#838](https://github.com/fastly/cli/pull/838)
- refactor(spinner): hide `...` after spinner has stopped [#840](https://github.com/fastly/cli/pull/840)
- fix(compute/serve): make override_host a default behaviour [#843](https://github.com/fastly/cli/pull/843)
**Dependencies:**
- build(deps): bump golang.org/x/net from 0.2.0 to 0.7.0 [#830](https://github.com/fastly/cli/pull/830)
- build(deps): bump github.com/fastly/go-fastly/v7 from 7.2.0 to 7.3.0 [#831](https://github.com/fastly/cli/pull/831)
**Clean-ups:**
- refactor: linter issues resolved [#833](https://github.com/fastly/cli/pull/833)
## [v6.0.6](https://github.com/fastly/cli/releases/tag/v6.0.6) (2023-02-15)
[Full Changelog](https://github.com/fastly/cli/compare/v6.0.5...v6.0.6)
**Bug fixes:**
- build(goreleaser): build with explicit `CGO_ENABLED=0` [#826](https://github.com/fastly/cli/pull/826)
## [v6.0.5](https://github.com/fastly/cli/releases/tag/v6.0.5) (2023-02-15)
[Full Changelog](https://github.com/fastly/cli/compare/v6.0.4...v6.0.5)
**Enhancements:**
- fix(dns): migrate to go1.20 [#824](https://github.com/fastly/cli/pull/824)
## [v6.0.4](https://github.com/fastly/cli/releases/tag/v6.0.4) (2023-02-13)
[Full Changelog](https://github.com/fastly/cli/compare/v6.0.3...v6.0.4)
**Bug fixes:**
- fix(compute/build): only use default build script if none defined [#814](https://github.com/fastly/cli/pull/814)
- fix(compute/deploy): replace spinner implementation [#820](https://github.com/fastly/cli/pull/820)
**Enhancements:**
- fix(compute/build): ensure build output doesn't show unless --verbose is set [#815](https://github.com/fastly/cli/pull/815)
**Documentation:**
- docs: remove --skip-verification [#816](https://github.com/fastly/cli/pull/816)
**Dependencies:**
- build(deps): bump github.com/fastly/go-fastly/v7 from 7.1.0 to 7.2.0 [#819](https://github.com/fastly/cli/pull/819)
- build(deps): bump github.com/getsentry/sentry-go from 0.17.0 to 0.18.0 [#818](https://github.com/fastly/cli/pull/818)
- build(deps): bump golang.org/x/term from 0.4.0 to 0.5.0 [#817](https://github.com/fastly/cli/pull/817)
## [v6.0.3](https://github.com/fastly/cli/releases/tag/v6.0.3) (2023-02-09)
[Full Changelog](https://github.com/fastly/cli/compare/v6.0.2...v6.0.3)
**Bug fixes:**
- fix(compute/setup): fix duplicated domains [#808](https://github.com/fastly/cli/pull/808)
- fix(setup/domain): allow user to correct a domain already in use [#811](https://github.com/fastly/cli/pull/811)
**Enhancements:**
- build(goreleaser): replace deprecated flag [#807](https://github.com/fastly/cli/pull/807)
- refactor: add type annotations [#809](https://github.com/fastly/cli/pull/809)
- build(lint): implement semgrep for local validation [#810](https://github.com/fastly/cli/pull/810)
## [v6.0.2](https://github.com/fastly/cli/releases/tag/v6.0.2) (2023-02-08)
[Full Changelog](https://github.com/fastly/cli/compare/v6.0.1...v6.0.2)
**Bug fixes:**
- fix(compute/build): ensure we only parse stdout from cargo command [#804](https://github.com/fastly/cli/pull/804)
## [v6.0.1](https://github.com/fastly/cli/releases/tag/v6.0.1) (2023-02-08)
[Full Changelog](https://github.com/fastly/cli/compare/v6.0.0...v6.0.1)
**Enhancements:**
- refactor(compute): add command output when there is an error [#801](https://github.com/fastly/cli/pull/801)
## [v6.0.0](https://github.com/fastly/cli/releases/tag/v6.0.0) (2023-02-07)
[Full Changelog](https://github.com/fastly/cli/compare/v5.1.1...v6.0.0)
**Breaking:**
There are three breaking changes in this release.
The first comes from the removal of logic related to user environment
validation. This logic existed as an attempt to reduce the number of possible
errors when trying to compile a Compute project. The reality was that this
validation logic was tightly coupled to specific expectations of the CLI
(and of its starter kits) and consequently resulted in errors that were often
difficult to understand and debug, as well as restricting users from using their
own tools and scripts. By simplifying the logic flow we hope to reduce friction
for users who want to switch the tooling used, as well as reduce the general
confusion caused for users when there are environment validation errors, while
also reducing the maintenance overhead for contributors to the CLI code base.
This change has meant we no longer need to define a `--skip-validation` flag and
that resulted in a breaking interface change.
The second breaking change is to the `objectstore` command. This has now been
renamed to `object-store`. Additionally, there is no `keys`, `get` or `insert`
commands for manipulating the object-store entries. These operations have been
moved to a separate subcommand `object-store-entry` as this keeps the naming and
structural convention consistent with ACLs and Edge Dictionaries.
The third breaking change is to Edge Dictionaries, which sees the
`dictionary-item` subcommand renamed to `dictionary-entry`, again for
consistency with other similar subcommands.
- Remove user environment validation logic [#785](https://github.com/fastly/cli/pull/785)
- Rework objectstore subcommand [#792](https://github.com/fastly/cli/pull/792)
- Rename object store 'keys' to 'entry' for consistency [#795](https://github.com/fastly/cli/pull/795)
- refactor(dictionaryitem): rename from item to entry [#798](https://github.com/fastly/cli/pull/798)
**Bug fixes:**
- Fix description in the manifest [#788](https://github.com/fastly/cli/pull/788)
**Enhancements:**
- Update `local_server` object and secret store formats [#789](https://github.com/fastly/cli/pull/789)
**Clean-ups:**
- refactor: move global struct and config.Source types into separate packages [#796](https://github.com/fastly/cli/pull/796)
- refactor(secretstore): divide command files into separate packages [#797](https://github.com/fastly/cli/pull/797)
## [v5.1.1](https://github.com/fastly/cli/releases/tag/v5.1.1) (2023-02-01)
[Full Changelog](https://github.com/fastly/cli/compare/v5.1.0...v5.1.1)
**Bug fixes:**
- fix(compute/build): AssemblyScript bugs [#786](https://github.com/fastly/cli/pull/786)
**Dependencies:**
- Bump github.com/fatih/color from 1.14.0 to 1.14.1 [#783](https://github.com/fastly/cli/pull/783)
## [v5.1.0](https://github.com/fastly/cli/releases/tag/v5.1.0) (2023-01-27)
[Full Changelog](https://github.com/fastly/cli/compare/v5.0.0...v5.1.0)
**Enhancements:**
- Add Secret Store support [#717](https://github.com/fastly/cli/pull/717)
- refactor(compute/deploy): reduce size of `Exec()` [#775](https://github.com/fastly/cli/pull/775)
- refactor(compute/deploy): add messaging to explain `[setup]` [#779](https://github.com/fastly/cli/pull/779)
**Bug fixes:**
- fix(objectstore/get): output value unless verbose/json flag passed [#774](https://github.com/fastly/cli/pull/774)
- fix(compute/init): add warning for paths with spaces [#778](https://github.com/fastly/cli/pull/778)
- fix(compute/deploy): clean-up new service creation on-error [#776](https://github.com/fastly/cli/pull/776)
**Dependencies:**
- Bump github.com/fatih/color from 1.13.0 to 1.14.0 [#772](https://github.com/fastly/cli/pull/772)
## [v5.0.0](https://github.com/fastly/cli/releases/tag/v5.0.0) (2023-01-19)
[Full Changelog](https://github.com/fastly/cli/compare/v4.6.2...v5.0.0)
**Breaking:**
The `objectstore` command was incorrectly configured to have a long flag using
a single character (e.g. `--k` and `--v`). These were corrected to `--key` and
`--value` (and a short flag variant for `-k` was added as well).
- feat(objectstore): add --json support to keys/list subcommands [#762](https://github.com/fastly/cli/pull/762)
- feat(objectstore/get): implement --json flag for getting key value [#763](https://github.com/fastly/cli/pull/763)
**Enhancements:**
- feat(compute/deploy): add Object Store to manifest \[setup\] [#764](https://github.com/fastly/cli/pull/764)
- feat(compute/build): support locating language manifests outside project directory [#765](https://github.com/fastly/cli/pull/765)
- feat(compute/serve): implement --watch-dir flag [#758](https://github.com/fastly/cli/pull/758)
**Bug fixes:**
- fix(setup): object_store needs to be linked to service [#767](https://github.com/fastly/cli/pull/767)
**Dependencies:**
- Bump github.com/getsentry/sentry-go from 0.16.0 to 0.17.0 [#759](https://github.com/fastly/cli/pull/759)
## [v4.6.2](https://github.com/fastly/cli/releases/tag/v4.6.2) (2023-01-12)
[Full Changelog](https://github.com/fastly/cli/compare/v4.6.1...v4.6.2)
**Bug fixes:**
- fix(pkg/commands/compute/serve): prevent 386 arch users executing command [#753](https://github.com/fastly/cli/pull/753)
- build(goreleaser): fix Windows archive generation to include zips [#756](https://github.com/fastly/cli/pull/756)
**Dependencies:**
- Bump golang.org/x/term from 0.3.0 to 0.4.0 [#754](https://github.com/fastly/cli/pull/754)
## [v4.6.1](https://github.com/fastly/cli/releases/tag/v4.6.1) (2023-01-05)
[Full Changelog](https://github.com/fastly/cli/compare/v4.6.0...v4.6.1)
**Bug fixes:**
- fix(pkg/commands/vcl/snippet): set default dynamic value [#751](https://github.com/fastly/cli/pull/751)
**Dependencies:**
- Bump github.com/mattn/go-isatty from 0.0.16 to 0.0.17 [#748](https://github.com/fastly/cli/pull/748)
**Enhancements:**
- build(makefile): add goreleaser target for testing builds locally [#750](https://github.com/fastly/cli/pull/750)
## [v4.6.0](https://github.com/fastly/cli/releases/tag/v4.6.0) (2023-01-03)
[Full Changelog](https://github.com/fastly/cli/compare/v4.5.0...v4.6.0)
**Bug fixes:**
- vcl/snippet: pass AllowActiveLocked if --dynamic was passed [#742](https://github.com/fastly/cli/pull/742)
**Dependencies:**
- Bump goreleaser/goreleaser-action from 3 to 4 [#746](https://github.com/fastly/cli/pull/746)
**Enhancements:**
- Use DevHub endpoint for acquiring CLI/Viceroy metadata [#739](https://github.com/fastly/cli/pull/739)
## [v4.5.0](https://github.com/fastly/cli/releases/tag/v4.5.0) (2022-12-15)
[Full Changelog](https://github.com/fastly/cli/compare/v4.4.1...v4.5.0)
**Documentation:**
- docs(pkg/compute): remove PLC labels from supported languages [#740](https://github.com/fastly/cli/pull/740)
**Enhancements:**
- refactor(pkg/commands/update): move versioner logic to separate package [#735](https://github.com/fastly/cli/pull/735)
- fix(compute): don't validate js-compute-runtime binary location [#731](https://github.com/fastly/cli/pull/731)
- Link to Starter Kits during compute init [#730](https://github.com/fastly/cli/pull/730)
- Update tinygo default build command [#727](https://github.com/fastly/cli/pull/727)
- CI/Dockerfiles: minor dockerfiles improvements [#722](https://github.com/fastly/cli/pull/722)
- Switch JavaScript build script based on webpack in package.json prebuild [#728](https://github.com/fastly/cli/pull/728)
- Add support for TOML secret_store section [#726](https://github.com/fastly/cli/pull/726)
**Dependencies:**
- Bump golang.org/x/term from 0.2.0 to 0.3.0 [#733](https://github.com/fastly/cli/pull/733)
- Bump github.com/getsentry/sentry-go from 0.15.0 to 0.16.0 [#734](https://github.com/fastly/cli/pull/734)
- Bump github.com/Masterminds/semver/v3 from 3.1.1 to 3.2.0 [#724](https://github.com/fastly/cli/pull/724)
## [v4.4.1](https://github.com/fastly/cli/releases/tag/v4.4.1) (2022-12-02)
[Full Changelog](https://github.com/fastly/cli/compare/v4.4.0...v4.4.1)
**Bug fixes:**
- Avoid sending empty string to Backend create API [#720](https://github.com/fastly/cli/pull/720)
## [v4.4.0](https://github.com/fastly/cli/releases/tag/v4.4.0) (2022-11-29)
[Full Changelog](https://github.com/fastly/cli/compare/v4.3.0...v4.4.0)
**Enhancements:**
- Add `PrintLines` to `text` package and use in logging [#698](https://github.com/fastly/cli/pull/698)
- Add dependabot workflow automation for updating dependency [#701](https://github.com/fastly/cli/pull/701)
- Add account name to pubsub and bigquery [#699](https://github.com/fastly/cli/pull/699)
**Bug fixes:**
- Add missing `--help` flag to globals [#695](https://github.com/fastly/cli/pull/695)
- Fix check for mutual exclusion flags [#696](https://github.com/fastly/cli/pull/696)
- Fix object store TOML definitions, add test data [#715](https://github.com/fastly/cli/pull/715)
**Dependencies:**
- Bump github.com/otiai10/copy from 1.7.0 to 1.9.0 [#706](https://github.com/fastly/cli/pull/706)
- Bump github.com/mholt/archiver/v3 from 3.5.0 to 3.5.1 [#703](https://github.com/fastly/cli/pull/703)
- Bump github.com/fastly/go-fastly/v6 from 6.6.0 to 6.8.0 [#704](https://github.com/fastly/cli/pull/704)
- Bump github.com/mattn/go-isatty from 0.0.14 to 0.0.16 [#702](https://github.com/fastly/cli/pull/702)
- Bump github.com/google/go-cmp from 0.5.6 to 0.5.9 [#708](https://github.com/fastly/cli/pull/708)
- Bump github.com/mitchellh/mapstructure from 1.4.3 to 1.5.0 [#709](https://github.com/fastly/cli/pull/709)
- Bump github.com/bep/debounce from 1.2.0 to 1.2.1 [#711](https://github.com/fastly/cli/pull/711)
- Bump github.com/getsentry/sentry-go from 0.12.0 to 0.15.0 [#712](https://github.com/fastly/cli/pull/712)
- Bump github.com/pelletier/go-toml from 1.9.3 to 1.9.5 [#710](https://github.com/fastly/cli/pull/710)
- Bump go-fastly to v7 [#707](https://github.com/fastly/cli/pull/707)
- Bump github.com/fsnotify/fsnotify from 1.5.1 to 1.6.0 [#716](https://github.com/fastly/cli/pull/716)
## [v4.3.0](https://github.com/fastly/cli/releases/tag/v4.3.0) (2022-10-26)
[Full Changelog](https://github.com/fastly/cli/compare/v4.2.0...v4.3.0)
**Enhancements:**
- Fix release process to not use external config [#688](https://github.com/fastly/cli/pull/688)
- Skip exit code 1 for 'help' output [#689](https://github.com/fastly/cli/pull/689)
- Implement dynamic package name [#686](https://github.com/fastly/cli/pull/686)
- Replace fiddle.fastly.dev with fiddle.fastlydemo.net [#687](https://github.com/fastly/cli/pull/687)
- Code clean-up [#685](https://github.com/fastly/cli/pull/685)
- Implement --quiet flag [#690](https://github.com/fastly/cli/pull/690)
- Make `compute build` respect `--quiet` [#694](https://github.com/fastly/cli/pull/694)
**Bug fixes:**
- Fix runtime panic [#683](https://github.com/fastly/cli/pull/683)
- Fix runtime panic caused by outdated global flags [#693](https://github.com/fastly/cli/pull/693)
- Fix runtime panic caused by missing `--help` global flag [#695](https://github.com/fastly/cli/pull/695)
- Fix check for mutual exclusion flags[#696](https://github.com/fastly/cli/pull/696)
- Correct installation instructions for Go [#682](https://github.com/fastly/cli/pull/682)
## [v4.2.0](https://github.com/fastly/cli/releases/tag/v4.2.0) (2022-10-18)
[Full Changelog](https://github.com/fastly/cli/compare/v4.1.0...v4.2.0)
**Enhancements:**
- Service Authorization [#660](https://github.com/fastly/cli/pull/660)
- Add Object Store API calls [#670](https://github.com/fastly/cli/pull/670)
- Remove upper limit on Go toolchain [#678](https://github.com/fastly/cli/pull/678)
**Bug fixes:**
- Fix `compute pack` to produce expected `package.tar.gz` filename [#662](https://github.com/fastly/cli/pull/662)
- Fix `--help` flag to not display an error [#672](https://github.com/fastly/cli/pull/672)
- Fix command substitution issue for Windows OS [#677](https://github.com/fastly/cli/pull/677)
- Fix Makefile for Windows [#679](https://github.com/fastly/cli/pull/679)
## [v4.1.0](https://github.com/fastly/cli/releases/tag/v4.1.0) (2022-10-11)
[Full Changelog](https://github.com/fastly/cli/compare/v4.0.1...v4.1.0)
**Bug fixes:**
- Fix Rust validation step for fastly crate dependency [#661](https://github.com/fastly/cli/pull/661)
- Fix `compute build --first-byte-timeout` [#667](https://github.com/fastly/cli/pull/667)
- Ensure the ./bin directory is present even with `--skip-verification` [#665](https://github.com/fastly/cli/pull/665)
**Enhancements:**
- Reduce duplication of strings in logging package [#653](https://github.com/fastly/cli/pull/653)
- Support `cert_host` and `use_sni` Viceroy properties [#663](https://github.com/fastly/cli/pull/663)
## [v4.0.1](https://github.com/fastly/cli/releases/tag/v4.0.1) (2022-10-05)
[Full Changelog](https://github.com/fastly/cli/compare/v4.0.0...v4.0.1)
**Bug fixes:**
- Fix JS dependency lookup [#656](https://github.com/fastly/cli/pull/656)
- Fix Rust 'existing project' bug [#657](https://github.com/fastly/cli/pull/657)
- Fix Rust toolchain lookup regression [#658](https://github.com/fastly/cli/pull/658)
## [v4.0.0](https://github.com/fastly/cli/releases/tag/v4.0.0) (2022-10-04)
[Full Changelog](https://github.com/fastly/cli/compare/v3.3.0...v4.0.0)
**Enhancements:**
- Bump go-fastly to v6.5.1 [#635](https://github.com/fastly/cli/pull/635)
- Update `--ssl-ciphers` description [#636](https://github.com/fastly/cli/pull/636)
- Improve JS error message when a dependency is missing [#637](https://github.com/fastly/cli/pull/637)
- Change default service version selection behaviour [#638](https://github.com/fastly/cli/pull/638)
- Support for additional S3 storage classes [#641](https://github.com/fastly/cli/pull/641)
- Change `compute serve --watch` flag to default to the project root directory [#642](https://github.com/fastly/cli/pull/642)
- Document the newly supported Datadog sites for logging [#576](https://github.com/fastly/cli/pull/576)
- Move the internal build scripts to the fastly.toml manifest [#640](https://github.com/fastly/cli/pull/640)
- Implement `compute hashsum` [#649](https://github.com/fastly/cli/pull/649)
- Add support for TOML `object_store` section [#651](https://github.com/fastly/cli/pull/651)
- Add `--account-name` to GCS logging endpoint [#549](https://github.com/fastly/cli/pull/549)
**Bug fixes:**
- errors/log: be defensive against nil pointer dereference [#650](https://github.com/fastly/cli/pull/650)
**Documentation:**
- Fix typos [#652](https://github.com/fastly/cli/pull/652)
## [v3.3.0](https://github.com/fastly/cli/releases/tag/v3.3.0) (2022-09-05)
[Full Changelog](https://github.com/fastly/cli/compare/v3.2.5...v3.3.0)
**Enhancements:**
- TLS Support [#630](https://github.com/fastly/cli/pull/630)
- CI to use community TinyGo action [#624](https://github.com/fastly/cli/pull/624)
- Improve compute init remediation [#627](https://github.com/fastly/cli/pull/627)
- Change default Makefile target [#629](https://github.com/fastly/cli/pull/629)
- Refactor after remote config removal [#626](https://github.com/fastly/cli/pull/626)
- Refactor for revive linter [#632](https://github.com/fastly/cli/pull/632)
## [v3.2.5](https://github.com/fastly/cli/releases/tag/v3.2.5) (2022-08-10)
[Full Changelog](https://github.com/fastly/cli/compare/v3.2.4...v3.2.5)
**Enhancements:**
- Remove dynamic configuration [#620](https://github.com/fastly/cli/pull/620)
- Static analysis updates [#621](https://github.com/fastly/cli/pull/621)
- Semgrep updates [#619](https://github.com/fastly/cli/pull/619)
**Bug fixes:**
- Fix `fastly help` tests to work with Go 1.19 [#623](https://github.com/fastly/cli/pull/623)
## [v3.2.4](https://github.com/fastly/cli/releases/tag/v3.2.4) (2022-07-28)
[Full Changelog](https://github.com/fastly/cli/compare/v3.2.3...v3.2.4)
**Bug fixes:**
- Fix `--completion-script-zsh` [#617](https://github.com/fastly/cli/pull/617)
## [v3.2.3](https://github.com/fastly/cli/releases/tag/v3.2.3) (2022-07-28)
[Full Changelog](https://github.com/fastly/cli/releases/tag/v3.2.2...v3.2.3)
**Bug fixes:**
- Block for config update if CLI version updated [#615](https://github.com/fastly/cli/pull/615)
## [v3.2.2](https://github.com/fastly/cli/releases/tag/v3.2.2) (2022-07-28)
[Full Changelog](https://github.com/fastly/cli/compare/v3.2.1...v3.2.2)
**Bug fixes:**
- Ignore TTL & update config if app version doesn't match config version [#612](https://github.com/fastly/cli/pull/612)
## [v3.2.1](https://github.com/fastly/cli/releases/tag/v3.2.1) (2022-07-27)
[Full Changelog](https://github.com/fastly/cli/compare/v3.2.0...v3.2.1)
**Enhancements:**
- Print subprocess commands in verbose mode [#608](https://github.com/fastly/cli/pull/608)
**Bug fixes:**
- Ensure application configuration is updated after `fastly update` [#610](https://github.com/fastly/cli/pull/610)
- Don't include language manifest in packages [#609](https://github.com/fastly/cli/pull/609)
## [v3.2.0](https://github.com/fastly/cli/releases/tag/v3.2.0) (2022-07-27)
[Full Changelog](https://github.com/fastly/cli/compare/v3.1.1...v3.2.0)
**Enhancements:**
- Compute@Edge TinyGo Support [#594](https://github.com/fastly/cli/pull/594)
- `pkg/commands/profile`: add `--json` flag for `list` command [#602](https://github.com/fastly/cli/pull/602)
**Bug fixes:**
- `pkg/commands/compute/deploy.go` (`getHashSum`): sort key order [#596](https://github.com/fastly/cli/pull/596)
- `pkg/errors/log.go`: prevent runtime panic due to a `nil` reference [#601](https://github.com/fastly/cli/pull/601)
## [v3.1.1](https://github.com/fastly/cli/releases/tag/v3.1.1) (2022-07-04)
[Full Changelog](https://github.com/fastly/cli/compare/v3.1.0...v3.1.1)
**Enhancements:**
- Handle build info more accurately [#588](https://github.com/fastly/cli/pull/588)
**Bug fixes:**
- Fix version check [#589](https://github.com/fastly/cli/pull/589)
- Address profile data loss [#590](https://github.com/fastly/cli/pull/590)
## [v3.1.0](https://github.com/fastly/cli/releases/tag/v3.1.0) (2022-06-24)
[Full Changelog](https://github.com/fastly/cli/compare/v3.0.1...v3.1.0)
**Enhancements:**
- Implement `profile token` command [#578](https://github.com/fastly/cli/pull/578)
**Bug fixes:**
- Fix `compute publish --non-interactive` [#583](https://github.com/fastly/cli/pull/583)
- Support `fastly --help <command>` format [#581](https://github.com/fastly/cli/pull/581)
## [v3.0.1](https://github.com/fastly/cli/releases/tag/v3.0.1) (2022-06-23)
[Full Changelog](https://github.com/fastly/cli/compare/v3.0.0...v3.0.1)
**Enhancements:**
- Makefile: when building binary, depend on .go files [#579](https://github.com/fastly/cli/pull/579)
- Include `fastly.toml` hashsum [#575](https://github.com/fastly/cli/pull/575)
- Hash main.wasm and not the package [#574](https://github.com/fastly/cli/pull/574)
## [v3.0.0](https://github.com/fastly/cli/releases/tag/v3.0.0) (2022-05-30)
[Full Changelog](https://github.com/fastly/cli/compare/v2.0.3...v3.0.0)
**Breaking changes:**
- Implement new global flags for handling interactive prompts [#568](https://github.com/fastly/cli/pull/568)
**Bug fixes:**
- The `backend create` command should set `--port` value if specified [#566](https://github.com/fastly/cli/pull/566)
- Don't overwrite `file.Load` error with `nil` [#569](https://github.com/fastly/cli/pull/569)
**Enhancements:**
- Support `[scripts.post_build]` [#565](https://github.com/fastly/cli/pull/565)
- Support Viceroy "inline-toml" `format` and new `contents` field [#567](https://github.com/fastly/cli/pull/567)
- Add example inline-toml dictionary to tests [#570](https://github.com/fastly/cli/pull/570)
- Avoid config update checks when handling 'completion' flags [#554](https://github.com/fastly/cli/pull/554)
## [v2.0.3](https://github.com/fastly/cli/releases/tag/v2.0.3) (2022-05-20)
[Full Changelog](https://github.com/fastly/cli/compare/v2.0.2...v2.0.3)
**Bug fixes:**
- Update Sentry DSN [#563](https://github.com/fastly/cli/pull/563)
## [v2.0.2](https://github.com/fastly/cli/releases/tag/v2.0.2) (2022-05-18)
[Full Changelog](https://github.com/fastly/cli/compare/v2.0.1...v2.0.2)
**Enhancements:**
- Remove user identifiable data [#561](https://github.com/fastly/cli/pull/561)
## [v2.0.1](https://github.com/fastly/cli/releases/tag/v2.0.1) (2022-05-17)
[Full Changelog](https://github.com/fastly/cli/compare/v2.0.0...v2.0.1)
**Security:**
- Omit data from Sentry [#559](https://github.com/fastly/cli/pull/559)
## [v2.0.0](https://github.com/fastly/cli/releases/tag/v2.0.0) (2022-04-05)
[Full Changelog](https://github.com/fastly/cli/compare/v1.7.1...v2.0.0)
**Bug fixes:**
- Update `--request-max-entries`/`--request-max-bytes` description defaults [#541](https://github.com/fastly/cli/pull/541)
**Enhancements:**
- Add `--debug` flag to `compute serve` [#545](https://github.com/fastly/cli/pull/545)
- Support multiple profiles via `[profiles]` configuration [#546](https://github.com/fastly/cli/pull/546)
- Reorder C@E languages and make JS 'Limited Availability' [#548](https://github.com/fastly/cli/pull/548)
## [v1.7.1](https://github.com/fastly/cli/releases/tag/v1.7.1) (2022-03-14)
[Full Changelog](https://github.com/fastly/cli/compare/v1.7.0...v1.7.1)
**Bug fixes:**
- Fix runtime panic in arg parser [#542](https://github.com/fastly/cli/pull/542)
## [v1.7.0](https://github.com/fastly/cli/releases/tag/v1.7.0) (2022-02-22)
[Full Changelog](https://github.com/fastly/cli/compare/v1.6.0...v1.7.0)
**Enhancements:**
- Add `fastly` user to Dockerfiles [#521](https://github.com/fastly/cli/pull/521)
- Support Sentry 'suspect commit' feature [#508](https://github.com/fastly/cli/pull/508)
- Populate language manifest `name` field with project name [#527](https://github.com/fastly/cli/pull/527)
- Make `--name` flag for `service search` command a required flag [#529](https://github.com/fastly/cli/pull/529)
- Update config `last_checked` field even on config load error [#528](https://github.com/fastly/cli/pull/528)
- Implement Compute@Edge Free Trial Activation [#531](https://github.com/fastly/cli/pull/531)
- Bump Rust toolchain constraint to `1.56.1` for 2021 edition [#533](https://github.com/fastly/cli/pull/533)
- Support Arch User Repositories [#530](https://github.com/fastly/cli/pull/530)
## [v1.6.0](https://github.com/fastly/cli/releases/tag/v1.6.0) (2022-01-20)
[Full Changelog](https://github.com/fastly/cli/compare/v1.5.0...v1.6.0)
**Enhancements:**
- Display the requested command in Sentry breadcrumb [#519](https://github.com/fastly/cli/pull/519)
## [v1.5.0](https://github.com/fastly/cli/releases/tag/v1.5.0) (2022-01-20)
[Full Changelog](https://github.com/fastly/cli/compare/v1.4.0...v1.5.0)
**Enhancements:**
- Implement `--json` output for describe/list operations [#505](https://github.com/fastly/cli/pull/505)
- Omit unix file permissions from error message [#507](https://github.com/fastly/cli/pull/507)
- Implement new go-fastly pagination types [#511](https://github.com/fastly/cli/pull/511)
## [v1.4.0](https://github.com/fastly/cli/releases/tag/v1.4.0) (2022-01-07)
[Full Changelog](https://github.com/fastly/cli/compare/v1.3.0...v1.4.0)
**Enhancements:**
- Add `viceroy.ttl` to CLI app config [#489](https://github.com/fastly/cli/pull/489)
- Display `viceroy --version` if installed [#487](https://github.com/fastly/cli/pull/487)
- Support `compute build` for 'other' language option using `[scripts.build]` [#484](https://github.com/fastly/cli/pull/484)
- Pass parent environment to subprocess [#491](https://github.com/fastly/cli/pull/491)
- Implement a yes/no user prompt abstraction [#500](https://github.com/fastly/cli/pull/500)
- Ensure build compilation errors are displayed [#492](https://github.com/fastly/cli/pull/492)
- Implement `--service-name` as swap-in replacement for `--service-id` [#495](https://github.com/fastly/cli/pull/495)
- Support `FASTLY_CUSTOMER_ID` environment variable [#494](https://github.com/fastly/cli/pull/494)
- Support `gotest` [#501](https://github.com/fastly/cli/pull/501)
**Bug fixes:**
- Fix the `--watch` flag for AssemblyScript [#493](https://github.com/fastly/cli/pull/493)
- Fix `compute init --from` for Windows [#490](https://github.com/fastly/cli/pull/490)
- Avoid triggering GitHub API rate limit when running Viceroy in CI [#488](https://github.com/fastly/cli/pull/488)
- Fix Windows ANSI escape code rendering [#503](https://github.com/fastly/cli/pull/503)
- Prevent runtime panic when global flag set with no command [#502](https://github.com/fastly/cli/pull/502)
## [v1.3.0](https://github.com/fastly/cli/releases/tag/v1.3.0) (2021-12-01)
[Full Changelog](https://github.com/fastly/cli/compare/v1.2.0...v1.3.0)
**Enhancements:**
- Implement custom `[scripts.build]` operation [#480](https://github.com/fastly/cli/pull/480)
- Move `manifest` package into top-level `pkg` directory [#478](https://github.com/fastly/cli/pull/478)
- Refactor AssemblyScript logic to call out to the JavaScript implementation [#479](https://github.com/fastly/cli/pull/479)
## [v1.2.0](https://github.com/fastly/cli/releases/tag/v1.2.0) (2021-11-25)
[Full Changelog](https://github.com/fastly/cli/compare/v1.1.1...v1.2.0)
**Enhancements:**
- Implement `SEE ALSO` section in help output [#472](https://github.com/fastly/cli/pull/472)
- Add command 'API' metadata [#473](https://github.com/fastly/cli/pull/473)
## [v1.1.1](https://github.com/fastly/cli/releases/tag/v1.1.1) (2021-11-11)
[Full Changelog](https://github.com/fastly/cli/compare/v1.1.0...v1.1.1)
**Bug fixes:**
- Avoid displaying a wildcard domain [#468](https://github.com/fastly/cli/pull/468)
- Set sensible defaults for host related flags on `backend create` [#469](https://github.com/fastly/cli/pull/469)
- Fix error extracting package files from `.tgz` archive [#470](https://github.com/fastly/cli/pull/470)
## [v1.1.0](https://github.com/fastly/cli/releases/tag/v1.1.0) (2021-11-08)
[Full Changelog](https://github.com/fastly/cli/compare/v1.0.1...v1.1.0)
**Enhancements:**
- Implement `--watch` flag for `compute serve` [#464](https://github.com/fastly/cli/pull/464)
## [v1.0.1](https://github.com/fastly/cli/releases/tag/v1.0.1) (2021-11-08)
[Full Changelog](https://github.com/fastly/cli/compare/v1.0.0...v1.0.1)
**Bug fixes:**
- Allow git repo to be used as a value at the starter kit prompt [#465](https://github.com/fastly/cli/pull/465)
## [v1.0.0](https://github.com/fastly/cli/releases/tag/v1.0.0) (2021-11-02)
[Full Changelog](https://github.com/fastly/cli/compare/v0.43.0...v1.0.0)
**Changed:**
- Use `EnumsVar` for `auth-token --scope` [#447](https://github.com/fastly/cli/pull/447)
- Rename `logs tail` to `log-tail` [#456](https://github.com/fastly/cli/pull/456)
- Rename `dictionaryitem` to `dictionary-item` [#459](https://github.com/fastly/cli/pull/459)
- Rename `fastly compute ... --path` flags [#460](https://github.com/fastly/cli/pull/460)
- Rename `--force` to `--skip-verification` [#461](https://github.com/fastly/cli/pull/461)
## [v0.43.0](https://github.com/fastly/cli/releases/tag/v0.43.0) (2021-11-01)
[Full Changelog](https://github.com/fastly/cli/compare/v0.42.0...v0.43.0)
**Bug fixes:**
- Ignore possible `rustup` 'sync' output when calling `rustc --version` [#453](https://github.com/fastly/cli/pull/453)
- Bump goreleaser to avoid Homebrew warning [#455](https://github.com/fastly/cli/pull/455)
- Prevent `.Hidden()` flags/commands from being documented via `--format json` [#454](https://github.com/fastly/cli/pull/454)
## [v0.42.0](https://github.com/fastly/cli/releases/tag/v0.42.0) (2021-10-22)
[Full Changelog](https://github.com/fastly/cli/compare/v0.41.0...v0.42.0)
**Enhancements:**
- Fallback to existing viceroy binary in case of network error [#445](https://github.com/fastly/cli/pull/445)
- Remove `text.ServiceType` abstraction [#449](https://github.com/fastly/cli/pull/449)
**Bug fixes:**
- Avoid fetching packages when manifest exists [#448](https://github.com/fastly/cli/pull/448)
- Implement `--path` lookup fallback for manifest [#446](https://github.com/fastly/cli/pull/446)
- Fix broken Windows support [#450](https://github.com/fastly/cli/pull/450)
## [v0.41.0](https://github.com/fastly/cli/releases/tag/v0.41.0) (2021-10-19)
[Full Changelog](https://github.com/fastly/cli/compare/v0.40.2...v0.41.0)
**Enhancements:**
- Implement `[setup.log_endpoints.<name>]` support [#443](https://github.com/fastly/cli/pull/443)
- The `compute init --from` flag should support archives [#428](https://github.com/fastly/cli/pull/428)
- Add region support for logentries logging endpoint [#375](https://github.com/fastly/cli/pull/375)
## [v0.40.2](https://github.com/fastly/cli/releases/tag/v0.40.2) (2021-10-14)
[Full Changelog](https://github.com/fastly/cli/compare/v0.40.1...v0.40.2)
**Bug fixes:**
- Fix shell autocomplete evaluation [#441](https://github.com/fastly/cli/pull/441)
## [v0.40.1](https://github.com/fastly/cli/releases/tag/v0.40.1) (2021-10-14)
[Full Changelog](https://github.com/fastly/cli/compare/v0.40.0...v0.40.1)
**Bug fixes:**
- Fix shell completion (and Homebrew upgrade) [#439](https://github.com/fastly/cli/pull/439)
## [v0.40.0](https://github.com/fastly/cli/releases/tag/v0.40.0) (2021-10-13)
[Full Changelog](https://github.com/fastly/cli/compare/v0.39.3...v0.40.0)
**Bug fixes:**
- Auto-migrate `manifest_version` from 1 to 2 when applicable [#434](https://github.com/fastly/cli/pull/434)
- Better error handling for manifest parsing [#436](https://github.com/fastly/cli/pull/436)
**Enhancements:**
- Implement `[setup.dictionaries]` support [#431](https://github.com/fastly/cli/pull/431)
- Tests for `[setup.dictionaries]` support [#438](https://github.com/fastly/cli/pull/438)
- Refactor `app.Run()` [#429](https://github.com/fastly/cli/pull/429)
- Ensure manifest is read only once for all missed references [#433](https://github.com/fastly/cli/pull/433)
## [v0.39.3](https://github.com/fastly/cli/releases/tag/v0.39.3) (2021-10-06)
[Full Changelog](https://github.com/fastly/cli/compare/v0.39.2...v0.39.3)
**Bug fixes:**
- Add missing description for `user list --customer-id` [#425](https://github.com/fastly/cli/pull/425)
- Trim the rust version to fix parse errors [#427](https://github.com/fastly/cli/pull/427)
**Enhancements:**
- Abstraction layer for `[setup.backends]` [#421](https://github.com/fastly/cli/pull/421)
## [v0.39.2](https://github.com/fastly/cli/releases/tag/v0.39.2) (2021-09-29)
[Full Changelog](https://github.com/fastly/cli/compare/v0.39.1...v0.39.2)
**Bug fixes:**
- Provide better remediation for unrecognised `manifest_version` [#422](https://github.com/fastly/cli/pull/422)
- Bump `go-fastly` to `v5.0.0` to fix ACL entries bug [#417](https://github.com/fastly/cli/pull/417)
- Remove Rust debug flags [#416](https://github.com/fastly/cli/pull/416)
**Enhancements:**
- Clarify Starter Kit options in `compute init` flow [#418](https://github.com/fastly/cli/pull/418)
- Avoid excessive manifest reads [#420](https://github.com/fastly/cli/pull/420)
## [v0.39.1](https://github.com/fastly/cli/releases/tag/v0.39.1) (2021-09-21)
[Full Changelog](https://github.com/fastly/cli/compare/v0.39.0...v0.39.1)
**Bug fixes:**
- Bug fixes for `auth-token` [#413](https://github.com/fastly/cli/pull/413)
## [v0.39.0](https://github.com/fastly/cli/releases/tag/v0.39.0) (2021-09-21)
[Full Changelog](https://github.com/fastly/cli/compare/v0.38.0...v0.39.0)
**Enhancements:**
- Implement `user` commands [#406](https://github.com/fastly/cli/pull/406)
- Implement `auth-token` commands [#409](https://github.com/fastly/cli/pull/409)
- Add region support for New Relic logging endpoint [#378](https://github.com/fastly/cli/pull/378)
**Bug fixes:**
- Add the `--name` flag to `compute deploy` [#410](https://github.com/fastly/cli/pull/410)
## [v0.38.0](https://github.com/fastly/cli/releases/tag/v0.38.0) (2021-09-15)
[Full Changelog](https://github.com/fastly/cli/compare/v0.37.1...v0.38.0)
**Enhancements:**
- Add support for `override_host` to Local Server configuration [#394](https://github.com/fastly/cli/pull/394)
- Add support for Dictionaries to Local Server configuration [#395](https://github.com/fastly/cli/pull/395)
- Integrate domain validation [#402](https://github.com/fastly/cli/pull/402)
- Refactor Versioner `GitHub.Download()` logic [#403](https://github.com/fastly/cli/pull/403)
**Bug fixes:**
- Pass down `compute publish --name` to `compute deploy` [#398](https://github.com/fastly/cli/pull/398)
- Sanitise name when packing the wasm file [#401](https://github.com/fastly/cli/pull/401)
- Use a non-interactive progress writer in non-TTY environments [#405](https://github.com/fastly/cli/pull/405)
**Removed:**
- Remove support for Scoop, the Window's command-line installer [#396](https://github.com/fastly/cli/pull/396)
- Remove unused 'rename local binary' code [#399](https://github.com/fastly/cli/pull/399)
## [v0.37.1](https://github.com/fastly/cli/releases/tag/v0.37.1) (2021-09-06)
[Full Changelog](https://github.com/fastly/cli/compare/v0.37.0...v0.37.1)
**Enhancements:**
- Bump `go-github` dependency to latest release [#388](https://github.com/fastly/cli/pull/388)
- Add Service ID to `--verbose` output [#383](https://github.com/fastly/cli/pull/383)
**Bug fixes:**
- Download Viceroy to a _randomly_ generated directory [#386](https://github.com/fastly/cli/pull/386)
- Bug fix for ensuring assets are downloaded into a randomly generated directory [#389](https://github.com/fastly/cli/pull/389)
## [v0.37.0](https://github.com/fastly/cli/releases/tag/v0.37.0) (2021-09-03)
[Full Changelog](https://github.com/fastly/cli/compare/v0.36.0...v0.37.0)
**Enhancements:**
- Update CLI config using flag on `update` command [#382](https://github.com/fastly/cli/pull/382)
- Validate package size doesn't exceed limit [#380](https://github.com/fastly/cli/pull/380)
- Log tailing should respect the configured `--endpoint` [#374](https://github.com/fastly/cli/pull/374)
- Support Windows arm64 [#372](https://github.com/fastly/cli/pull/372)
- Refactor compute deploy logic to better support `[setup]` configuration [#370](https://github.com/fastly/cli/pull/370)
- Omit messaging when using `--accept-defaults` [#366](https://github.com/fastly/cli/pull/366)
- Implement `[setup]` configuration for backends [#355](https://github.com/fastly/cli/pull/355)
- Refactor code to help CI performance [#360](https://github.com/fastly/cli/pull/360)
**Bug fixes:**
- Add executable permissions to Viceroy binary after renaming/moving it [#368](https://github.com/fastly/cli/pull/368)
- Update rust toolchain validation steps [#371](https://github.com/fastly/cli/pull/371)
**Security:**
- Update dependency to avoid dependabot warning in GitHub UI [#381](https://github.com/fastly/cli/pull/381)
## [v0.36.0](https://github.com/fastly/cli/releases/tag/v0.36.0) (2021-07-30)
[Full Changelog](https://github.com/fastly/cli/compare/v0.35.0...v0.36.0)
**Enhancements:**
- Implement `logging newrelic` command [#354](https://github.com/fastly/cli/pull/354)
## [v0.35.0](https://github.com/fastly/cli/releases/tag/v0.35.0) (2021-07-29)
[Full Changelog](https://github.com/fastly/cli/compare/v0.34.0...v0.35.0)
**Enhancements:**
- Support for Compute@Edge JS SDK (Beta) [#347](https://github.com/fastly/cli/pull/347)
- Implement `--override-host` and `--ssl-sni-hostname` [#352](https://github.com/fastly/cli/pull/352)
- Implement `acl` command [#350](https://github.com/fastly/cli/pull/350)
- Implement `acl-entry` command [#351](https://github.com/fastly/cli/pull/351)
- Separate command files from other logic files [#349](https://github.com/fastly/cli/pull/349)
- Log a record of errors to disk [#340](https://github.com/fastly/cli/pull/340)
**Bug fixes:**
- Fix nondeterministic flag parsing [#353](https://github.com/fastly/cli/pull/353)
- Fix `compute serve --addr` description to reference port requirement [#348](https://github.com/fastly/cli/pull/348)
## [v0.34.0](https://github.com/fastly/cli/releases/tag/v0.34.0) (2021-07-16)
[Full Changelog](https://github.com/fastly/cli/compare/v0.33.0...v0.34.0)
**Enhancements:**
- Implement `compute serve` subcommand [#252](https://github.com/fastly/cli/pull/252)
- Simplify logic for prefixing fastly spec to file [#345](https://github.com/fastly/cli/pull/345)
- `fastly compute publish` and `deploy` should accept a comment [#328](https://github.com/fastly/cli/pull/328)
- Improve GitHub Actions intermittent test timeouts [#336](https://github.com/fastly/cli/pull/336)
- New flags for displaying the CLI config, and its location [#338](https://github.com/fastly/cli/pull/338)
- Don't allow stats short help to wrap [#331](https://github.com/fastly/cli/pull/331)
**Bug fixes:**
- Ensure incompatibility message only shown when config is invalid [#335](https://github.com/fastly/cli/pull/335)
- Check-in static config for traditional golang workflows [#337](https://github.com/fastly/cli/pull/337)
## [v0.33.0](https://github.com/fastly/cli/releases/tag/v0.33.0) (2021-07-06)
[Full Changelog](https://github.com/fastly/cli/compare/v0.32.0...v0.33.0)
**Enhancements:**
- Improve CI workflow [#333](https://github.com/fastly/cli/pull/333)
- Support multiple versions of Rust [#330](https://github.com/fastly/cli/pull/330)
- Replace `app.Run` positional signature with a struct [#329](https://github.com/fastly/cli/pull/329)
- Test suite improvements [#327](https
gitextract_2_s0yx1h/
├── .fastly/
│ ├── config.toml
│ └── help/
│ ├── README.md
│ ├── cli-auth.mdx
│ └── ecp-feature.mdx
├── .github/
│ ├── CODEOWNERS
│ ├── ISSUE_TEMPLATE/
│ │ ├── bug_report.md
│ │ ├── config.yml
│ │ └── feature_request.md
│ ├── PULL_REQUEST_TEMPLATE.md
│ ├── dependabot.yml
│ └── workflows/
│ ├── dependabot_changelog_update.yml
│ ├── merge_to_main.yml
│ ├── pr_test.yml
│ ├── publish_release.yml
│ └── tag_to_draft_release.yml
├── .gitignore
├── .golangci.yml
├── .goreleaser.yml
├── .tmpl/
│ ├── create.go
│ ├── delete.go
│ ├── describe.go
│ ├── doc.go
│ ├── doc_parent.go
│ ├── list.go
│ ├── root.go
│ ├── root_parent.go
│ ├── test.go
│ └── update.go
├── CHANGELOG.md
├── CONTRIBUTING.md
├── DEVELOPMENT.md
├── DOCUMENTATION.md
├── Dockerfile-node
├── Dockerfile-rust
├── ISSUES.md
├── LICENSE
├── Makefile
├── README.md
├── RELEASE.md
├── SECURITY.md
├── TESTING.md
├── cmd/
│ └── fastly/
│ └── main.go
├── deb-copyright
├── go.mod
├── go.sum
├── npm/
│ └── @fastly/
│ └── cli/
│ ├── .gitignore
│ ├── fastly.js
│ ├── index.d.ts
│ ├── index.js
│ ├── package-helpers.js
│ ├── package.json
│ └── update.js
├── pkg/
│ ├── api/
│ │ ├── doc.go
│ │ ├── interface.go
│ │ └── undocumented/
│ │ └── undocumented.go
│ ├── app/
│ │ ├── disable_token_flag_test.go
│ │ ├── doc.go
│ │ ├── expiry_warning_test.go
│ │ ├── metadata.json
│ │ ├── run.go
│ │ ├── run_test.go
│ │ ├── usage.go
│ │ └── usage_auth_help_test.go
│ ├── argparser/
│ │ ├── cmd.go
│ │ ├── cmd_test.go
│ │ ├── common.go
│ │ ├── doc.go
│ │ ├── fixtures/
│ │ │ └── content_test.txt
│ │ ├── flags.go
│ │ └── flags_test.go
│ ├── auth/
│ │ ├── auth.go
│ │ └── doc.go
│ ├── check/
│ │ └── check.go
│ ├── commands/
│ │ ├── alias/
│ │ │ ├── acl/
│ │ │ │ ├── create.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── describe.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── list.go
│ │ │ │ ├── root.go
│ │ │ │ └── update.go
│ │ │ ├── aclentry/
│ │ │ │ ├── create.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── describe.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── list.go
│ │ │ │ ├── root.go
│ │ │ │ └── update.go
│ │ │ ├── alerts/
│ │ │ │ ├── create.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── describe.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── history.go
│ │ │ │ ├── list.go
│ │ │ │ ├── root.go
│ │ │ │ └── update.go
│ │ │ ├── backend/
│ │ │ │ ├── create.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── describe.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── list.go
│ │ │ │ ├── root.go
│ │ │ │ └── update.go
│ │ │ ├── dictionary/
│ │ │ │ ├── create.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── describe.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── list.go
│ │ │ │ ├── root.go
│ │ │ │ └── update.go
│ │ │ ├── dictionaryentry/
│ │ │ │ ├── create.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── describe.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── list.go
│ │ │ │ ├── root.go
│ │ │ │ └── update.go
│ │ │ ├── doc.go
│ │ │ ├── healthcheck/
│ │ │ │ ├── create.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── describe.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── list.go
│ │ │ │ ├── root.go
│ │ │ │ └── update.go
│ │ │ ├── imageoptimizerdefaults/
│ │ │ │ ├── doc.go
│ │ │ │ ├── get.go
│ │ │ │ ├── root.go
│ │ │ │ └── update.go
│ │ │ ├── logging/
│ │ │ │ ├── azureblob/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── bigquery/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── cloudfiles/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── datadog/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── digitalocean/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── elasticsearch/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── ftp/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── gcs/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── googlepubsub/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── grafanacloudlogs/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── heroku/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── honeycomb/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── https/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── kafka/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── kinesis/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── loggly/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── logshuttle/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── newrelic/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── newrelicotlp/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── openstack/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── papertrail/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── root.go
│ │ │ │ ├── s3/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── scalyr/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── sftp/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── splunk/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── sumologic/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ └── syslog/
│ │ │ │ ├── create.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── describe.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── list.go
│ │ │ │ ├── root.go
│ │ │ │ └── update.go
│ │ │ ├── purge/
│ │ │ │ ├── doc.go
│ │ │ │ └── purge.go
│ │ │ ├── ratelimit/
│ │ │ │ ├── create.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── describe.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── list.go
│ │ │ │ ├── root.go
│ │ │ │ └── update.go
│ │ │ ├── resourcelink/
│ │ │ │ ├── create.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── describe.go
│ │ │ │ ├── list.go
│ │ │ │ ├── root.go
│ │ │ │ └── update.go
│ │ │ ├── serviceauth/
│ │ │ │ ├── create.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── describe.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── list.go
│ │ │ │ ├── root.go
│ │ │ │ └── update.go
│ │ │ ├── serviceversion/
│ │ │ │ ├── activate.go
│ │ │ │ ├── clone.go
│ │ │ │ ├── deactivate.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── list.go
│ │ │ │ ├── lock.go
│ │ │ │ ├── root.go
│ │ │ │ ├── stage.go
│ │ │ │ ├── unstage.go
│ │ │ │ └── update.go
│ │ │ └── vcl/
│ │ │ ├── condition/
│ │ │ │ ├── create.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── describe.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── list.go
│ │ │ │ ├── root.go
│ │ │ │ └── update.go
│ │ │ ├── custom/
│ │ │ │ ├── create.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── describe.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── list.go
│ │ │ │ ├── root.go
│ │ │ │ └── update.go
│ │ │ ├── describe.go
│ │ │ ├── doc.go
│ │ │ ├── root.go
│ │ │ └── snippet/
│ │ │ ├── create.go
│ │ │ ├── delete.go
│ │ │ ├── describe.go
│ │ │ ├── doc.go
│ │ │ ├── list.go
│ │ │ ├── root.go
│ │ │ └── update.go
│ │ ├── apisecurity/
│ │ │ ├── discoveredoperations/
│ │ │ │ ├── discoveredoperations_test.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── list.go
│ │ │ │ ├── root.go
│ │ │ │ └── update.go
│ │ │ ├── doc.go
│ │ │ ├── operations/
│ │ │ │ ├── addtags.go
│ │ │ │ ├── create.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── describe.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── list.go
│ │ │ │ ├── operations_test.go
│ │ │ │ ├── root.go
│ │ │ │ └── update.go
│ │ │ ├── root.go
│ │ │ └── tags/
│ │ │ ├── create.go
│ │ │ ├── delete.go
│ │ │ ├── doc.go
│ │ │ ├── get.go
│ │ │ ├── list.go
│ │ │ ├── root.go
│ │ │ ├── tags_test.go
│ │ │ └── update.go
│ │ ├── auth/
│ │ │ ├── add.go
│ │ │ ├── delete.go
│ │ │ ├── expiry.go
│ │ │ ├── expiry_test.go
│ │ │ ├── list.go
│ │ │ ├── login.go
│ │ │ ├── metadata.go
│ │ │ ├── metadata_test.go
│ │ │ ├── revoke.go
│ │ │ ├── revoke_test.go
│ │ │ ├── root.go
│ │ │ ├── show.go
│ │ │ ├── sso.go
│ │ │ ├── sso_test.go
│ │ │ ├── token.go
│ │ │ ├── token_test.go
│ │ │ ├── token_tty_unix_test.go
│ │ │ └── use.go
│ │ ├── authtoken/
│ │ │ ├── authtoken_test.go
│ │ │ ├── create.go
│ │ │ ├── delete.go
│ │ │ ├── describe.go
│ │ │ ├── doc.go
│ │ │ ├── list.go
│ │ │ ├── root.go
│ │ │ └── testdata/
│ │ │ └── tokens
│ │ ├── commands.go
│ │ ├── commands_test.go
│ │ ├── compute/
│ │ │ ├── build.go
│ │ │ ├── build_test.go
│ │ │ ├── compute_mocks_test.go
│ │ │ ├── compute_test.go
│ │ │ ├── computeacl/
│ │ │ │ ├── computeacl_test.go
│ │ │ │ ├── create.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── describe.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── listacls.go
│ │ │ │ ├── listentries.go
│ │ │ │ ├── lookup.go
│ │ │ │ ├── root.go
│ │ │ │ ├── testdata/
│ │ │ │ │ └── entries.json
│ │ │ │ └── update.go
│ │ │ ├── deploy.go
│ │ │ ├── deploy_test.go
│ │ │ ├── dir.go
│ │ │ ├── doc.go
│ │ │ ├── hashfiles.go
│ │ │ ├── init.go
│ │ │ ├── init_test.go
│ │ │ ├── language.go
│ │ │ ├── language_assemblyscript.go
│ │ │ ├── language_cpp.go
│ │ │ ├── language_go.go
│ │ │ ├── language_javascript.go
│ │ │ ├── language_javascript_test.go
│ │ │ ├── language_other.go
│ │ │ ├── language_rust.go
│ │ │ ├── language_toolchain.go
│ │ │ ├── metadata.go
│ │ │ ├── metadata_test.go
│ │ │ ├── pack.go
│ │ │ ├── pack_test.go
│ │ │ ├── publish.go
│ │ │ ├── pushpin.conf.template
│ │ │ ├── root.go
│ │ │ ├── secrets.go
│ │ │ ├── serve.go
│ │ │ ├── serve_test.go
│ │ │ ├── serve_unix.go
│ │ │ ├── serve_windows.go
│ │ │ ├── setup/
│ │ │ │ ├── backend.go
│ │ │ │ ├── config_store.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── domain.go
│ │ │ │ ├── interface.go
│ │ │ │ ├── kv_store.go
│ │ │ │ ├── kv_store_test.go
│ │ │ │ ├── loggers.go
│ │ │ │ └── secret_store.go
│ │ │ ├── testdata/
│ │ │ │ ├── build/
│ │ │ │ │ ├── cpp/
│ │ │ │ │ │ └── main.cpp
│ │ │ │ │ ├── go/
│ │ │ │ │ │ ├── go.mod
│ │ │ │ │ │ └── main.go
│ │ │ │ │ ├── javascript/
│ │ │ │ │ │ ├── package.json
│ │ │ │ │ │ └── src/
│ │ │ │ │ │ └── index.js
│ │ │ │ │ └── rust/
│ │ │ │ │ ├── Cargo.lock
│ │ │ │ │ ├── Cargo.toml
│ │ │ │ │ ├── fastly.toml
│ │ │ │ │ └── src/
│ │ │ │ │ └── main.rs
│ │ │ │ ├── init/
│ │ │ │ │ ├── fastly-invalid-missing-version.toml
│ │ │ │ │ ├── fastly-invalid-section-version.toml
│ │ │ │ │ ├── fastly-invalid-unrecognised.toml
│ │ │ │ │ ├── fastly-invalid-version-exceeded.toml
│ │ │ │ │ ├── fastly-missing-spec-url.toml
│ │ │ │ │ ├── fastly-valid-integer.toml
│ │ │ │ │ ├── fastly-valid-semver.toml
│ │ │ │ │ └── fastly-viceroy-update.toml
│ │ │ │ ├── kv_store_example.json
│ │ │ │ ├── main.wasm
│ │ │ │ ├── metadata/
│ │ │ │ │ └── config.toml
│ │ │ │ └── pack/
│ │ │ │ └── main.wasm
│ │ │ ├── update.go
│ │ │ ├── update_test.go
│ │ │ ├── validate.go
│ │ │ └── validate_test.go
│ │ ├── config/
│ │ │ ├── config_test.go
│ │ │ ├── doc.go
│ │ │ ├── root.go
│ │ │ └── testdata/
│ │ │ └── config.toml
│ │ ├── configstore/
│ │ │ ├── configstore_test.go
│ │ │ ├── create.go
│ │ │ ├── delete.go
│ │ │ ├── describe.go
│ │ │ ├── doc.go
│ │ │ ├── helper_test.go
│ │ │ ├── list.go
│ │ │ ├── list_services.go
│ │ │ ├── root.go
│ │ │ └── update.go
│ │ ├── configstoreentry/
│ │ │ ├── configstoreentry_test.go
│ │ │ ├── create.go
│ │ │ ├── delete.go
│ │ │ ├── describe.go
│ │ │ ├── doc.go
│ │ │ ├── errors.go
│ │ │ ├── list.go
│ │ │ ├── root.go
│ │ │ └── update.go
│ │ ├── dashboard/
│ │ │ ├── create.go
│ │ │ ├── dashboard_test.go
│ │ │ ├── delete.go
│ │ │ ├── describe.go
│ │ │ ├── doc.go
│ │ │ ├── item/
│ │ │ │ ├── common.go
│ │ │ │ ├── create.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── describe.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── item_test.go
│ │ │ │ ├── root.go
│ │ │ │ └── update.go
│ │ │ ├── list.go
│ │ │ ├── printer/
│ │ │ │ └── print.go
│ │ │ ├── root.go
│ │ │ └── update.go
│ │ ├── doc.go
│ │ ├── domain/
│ │ │ ├── common.go
│ │ │ ├── create.go
│ │ │ ├── delete.go
│ │ │ ├── describe.go
│ │ │ ├── doc.go
│ │ │ ├── domain_test.go
│ │ │ ├── list.go
│ │ │ ├── root.go
│ │ │ └── update.go
│ │ ├── install/
│ │ │ ├── doc.go
│ │ │ └── root.go
│ │ ├── ip/
│ │ │ ├── doc.go
│ │ │ ├── ip_test.go
│ │ │ └── root.go
│ │ ├── kvstore/
│ │ │ ├── create.go
│ │ │ ├── delete.go
│ │ │ ├── describe.go
│ │ │ ├── doc.go
│ │ │ ├── kvstore_test.go
│ │ │ ├── list.go
│ │ │ └── root.go
│ │ ├── kvstoreentry/
│ │ │ ├── create.go
│ │ │ ├── delete.go
│ │ │ ├── describe.go
│ │ │ ├── doc.go
│ │ │ ├── get.go
│ │ │ ├── hidden.go
│ │ │ ├── kvstoreentry_test.go
│ │ │ ├── list.go
│ │ │ ├── root.go
│ │ │ └── testdata/
│ │ │ ├── data.json
│ │ │ └── example/
│ │ │ ├── .hiddenfile
│ │ │ └── foo.txt
│ │ ├── logtail/
│ │ │ ├── doc.go
│ │ │ ├── root.go
│ │ │ ├── tail_test.go
│ │ │ └── testdata/
│ │ │ └── response.json
│ │ ├── ngwaf/
│ │ │ ├── countrylist/
│ │ │ │ ├── countrylist_test.go
│ │ │ │ ├── create.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── get.go
│ │ │ │ ├── list.go
│ │ │ │ ├── root.go
│ │ │ │ └── update.go
│ │ │ ├── customsignal/
│ │ │ │ ├── create.go
│ │ │ │ ├── customsignal_test.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── get.go
│ │ │ │ ├── list.go
│ │ │ │ ├── root.go
│ │ │ │ └── update.go
│ │ │ ├── doc.go
│ │ │ ├── iplist/
│ │ │ │ ├── create.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── get.go
│ │ │ │ ├── iplist_test.go
│ │ │ │ ├── list.go
│ │ │ │ ├── root.go
│ │ │ │ └── update.go
│ │ │ ├── ngwaflist/
│ │ │ │ ├── api.go
│ │ │ │ └── doc.go
│ │ │ ├── root.go
│ │ │ ├── rule/
│ │ │ │ ├── create.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── get.go
│ │ │ │ ├── list.go
│ │ │ │ ├── root.go
│ │ │ │ ├── rule_test.go
│ │ │ │ ├── testdata/
│ │ │ │ │ ├── test_complex_rule.json
│ │ │ │ │ └── test_rule.json
│ │ │ │ └── update.go
│ │ │ ├── signallist/
│ │ │ │ ├── create.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── get.go
│ │ │ │ ├── list.go
│ │ │ │ ├── root.go
│ │ │ │ ├── signallist_test.go
│ │ │ │ └── update.go
│ │ │ ├── stringlist/
│ │ │ │ ├── create.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── get.go
│ │ │ │ ├── list.go
│ │ │ │ ├── root.go
│ │ │ │ ├── stringlist_test.go
│ │ │ │ └── update.go
│ │ │ ├── wildcardlist/
│ │ │ │ ├── create.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── get.go
│ │ │ │ ├── list.go
│ │ │ │ ├── root.go
│ │ │ │ ├── update.go
│ │ │ │ └── wildcardlist_test.go
│ │ │ └── workspace/
│ │ │ ├── alert/
│ │ │ │ ├── datadog/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── datadog_test.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── get.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── jira/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── get.go
│ │ │ │ │ ├── jira_test.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── mailinglist/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── get.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── mailinglist_test.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── microsoftteams/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── get.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── microsoftteams_test.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── opsgenie/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── get.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── opsgenie_test.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── pagerduty/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── get.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── pagerduty_test.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── root.go
│ │ │ │ ├── slack/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── get.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ ├── slack_test.go
│ │ │ │ │ └── update.go
│ │ │ │ └── webhook/
│ │ │ │ ├── create.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── get-signing-key.go
│ │ │ │ ├── get.go
│ │ │ │ ├── list.go
│ │ │ │ ├── root.go
│ │ │ │ ├── rotate-signing-key.go
│ │ │ │ ├── update.go
│ │ │ │ └── webhook_test.go
│ │ │ ├── countrylist/
│ │ │ │ ├── countrylist_test.go
│ │ │ │ ├── create.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── get.go
│ │ │ │ ├── list.go
│ │ │ │ ├── root.go
│ │ │ │ └── update.go
│ │ │ ├── create.go
│ │ │ ├── customsignal/
│ │ │ │ ├── create.go
│ │ │ │ ├── customsignal_test.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── get.go
│ │ │ │ ├── list.go
│ │ │ │ ├── root.go
│ │ │ │ └── update.go
│ │ │ ├── delete.go
│ │ │ ├── doc.go
│ │ │ ├── get.go
│ │ │ ├── iplist/
│ │ │ │ ├── create.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── get.go
│ │ │ │ ├── iplist_test.go
│ │ │ │ ├── list.go
│ │ │ │ ├── root.go
│ │ │ │ └── update.go
│ │ │ ├── list.go
│ │ │ ├── redaction/
│ │ │ │ ├── create.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── list.go
│ │ │ │ ├── redaction_test.go
│ │ │ │ ├── retrieve.go
│ │ │ │ ├── root.go
│ │ │ │ └── update.go
│ │ │ ├── root.go
│ │ │ ├── rule/
│ │ │ │ ├── create.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── get.go
│ │ │ │ ├── list.go
│ │ │ │ ├── root.go
│ │ │ │ ├── rule_test.go
│ │ │ │ ├── testdata/
│ │ │ │ │ ├── test_complex_rule.json
│ │ │ │ │ └── test_rule.json
│ │ │ │ └── update.go
│ │ │ ├── signallist/
│ │ │ │ ├── create.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── get.go
│ │ │ │ ├── list.go
│ │ │ │ ├── root.go
│ │ │ │ ├── signallist_test.go
│ │ │ │ └── update.go
│ │ │ ├── stringlist/
│ │ │ │ ├── create.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── get.go
│ │ │ │ ├── list.go
│ │ │ │ ├── root.go
│ │ │ │ ├── stringlist_test.go
│ │ │ │ └── update.go
│ │ │ ├── threshold/
│ │ │ │ ├── create.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── get.go
│ │ │ │ ├── list.go
│ │ │ │ ├── root.go
│ │ │ │ ├── threshold_test.go
│ │ │ │ └── update.go
│ │ │ ├── update.go
│ │ │ ├── virtualpatch/
│ │ │ │ ├── list.go
│ │ │ │ ├── retrieve.go
│ │ │ │ ├── root.go
│ │ │ │ ├── update.go
│ │ │ │ └── virtualpatch_test.go
│ │ │ ├── wildcardlist/
│ │ │ │ ├── create.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── get.go
│ │ │ │ ├── list.go
│ │ │ │ ├── root.go
│ │ │ │ ├── update.go
│ │ │ │ └── wildcardlist_test.go
│ │ │ └── workspace_test.go
│ │ ├── objectstorage/
│ │ │ ├── accesskeys/
│ │ │ │ ├── accesskeys_test.go
│ │ │ │ ├── create.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── get.go
│ │ │ │ ├── list.go
│ │ │ │ └── root.go
│ │ │ ├── doc.go
│ │ │ └── root.go
│ │ ├── pop/
│ │ │ ├── doc.go
│ │ │ ├── pop_test.go
│ │ │ └── root.go
│ │ ├── products/
│ │ │ ├── doc.go
│ │ │ ├── products_test.go
│ │ │ └── root.go
│ │ ├── profile/
│ │ │ ├── create.go
│ │ │ ├── delete.go
│ │ │ ├── doc.go
│ │ │ ├── list.go
│ │ │ ├── profile_test.go
│ │ │ ├── root.go
│ │ │ ├── switch.go
│ │ │ ├── testdata/
│ │ │ │ └── config.toml
│ │ │ ├── token.go
│ │ │ └── update.go
│ │ ├── secretstore/
│ │ │ ├── create.go
│ │ │ ├── delete.go
│ │ │ ├── describe.go
│ │ │ ├── doc.go
│ │ │ ├── flags.go
│ │ │ ├── helper_test.go
│ │ │ ├── list.go
│ │ │ ├── root.go
│ │ │ └── secretstore_test.go
│ │ ├── secretstoreentry/
│ │ │ ├── create.go
│ │ │ ├── delete.go
│ │ │ ├── describe.go
│ │ │ ├── doc.go
│ │ │ ├── flags.go
│ │ │ ├── helper_test.go
│ │ │ ├── list.go
│ │ │ ├── root.go
│ │ │ └── secretstoreentry_test.go
│ │ ├── service/
│ │ │ ├── acl/
│ │ │ │ ├── acl_test.go
│ │ │ │ ├── create.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── describe.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── list.go
│ │ │ │ ├── root.go
│ │ │ │ └── update.go
│ │ │ ├── aclentry/
│ │ │ │ ├── aclentry_test.go
│ │ │ │ ├── create.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── describe.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── list.go
│ │ │ │ ├── root.go
│ │ │ │ ├── testdata/
│ │ │ │ │ └── batch.json
│ │ │ │ └── update.go
│ │ │ ├── alert/
│ │ │ │ ├── alert_test.go
│ │ │ │ ├── common.go
│ │ │ │ ├── create.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── describe.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── list.go
│ │ │ │ ├── list_history.go
│ │ │ │ ├── root.go
│ │ │ │ └── update.go
│ │ │ ├── auth/
│ │ │ │ ├── create.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── describe.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── list.go
│ │ │ │ ├── root.go
│ │ │ │ ├── service_test.go
│ │ │ │ ├── testdata/
│ │ │ │ │ ├── fastly-no-serviceid.toml
│ │ │ │ │ └── fastly-valid.toml
│ │ │ │ └── update.go
│ │ │ ├── backend/
│ │ │ │ ├── backend_test.go
│ │ │ │ ├── create.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── describe.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── list.go
│ │ │ │ ├── root.go
│ │ │ │ └── update.go
│ │ │ ├── create.go
│ │ │ ├── delete.go
│ │ │ ├── describe.go
│ │ │ ├── dictionary/
│ │ │ │ ├── create.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── describe.go
│ │ │ │ ├── dictionary_test.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── list.go
│ │ │ │ ├── root.go
│ │ │ │ └── update.go
│ │ │ ├── dictionaryentry/
│ │ │ │ ├── create.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── describe.go
│ │ │ │ ├── dictionaryitem_test.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── list.go
│ │ │ │ ├── root.go
│ │ │ │ └── update.go
│ │ │ ├── doc.go
│ │ │ ├── domain/
│ │ │ │ ├── create.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── describe.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── domain_test.go
│ │ │ │ ├── list.go
│ │ │ │ ├── root.go
│ │ │ │ ├── update.go
│ │ │ │ └── validate.go
│ │ │ ├── healthcheck/
│ │ │ │ ├── create.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── describe.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── healthcheck_test.go
│ │ │ │ ├── list.go
│ │ │ │ ├── root.go
│ │ │ │ └── update.go
│ │ │ ├── imageoptimizerdefaults/
│ │ │ │ ├── doc.go
│ │ │ │ ├── get.go
│ │ │ │ ├── imageoptimizer_test.go
│ │ │ │ ├── root.go
│ │ │ │ └── update.go
│ │ │ ├── list.go
│ │ │ ├── logging/
│ │ │ │ ├── azureblob/
│ │ │ │ │ ├── azureblob_integration_test.go
│ │ │ │ │ ├── azureblob_test.go
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── bigquery/
│ │ │ │ │ ├── bigquery_integration_test.go
│ │ │ │ │ ├── bigquery_test.go
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── cloudfiles/
│ │ │ │ │ ├── cloudfiles_integration_test.go
│ │ │ │ │ ├── cloudfiles_test.go
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── datadog/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── datadog_integration_test.go
│ │ │ │ │ ├── datadog_test.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── debug/
│ │ │ │ │ ├── debug_test.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ └── root.go
│ │ │ │ ├── digitalocean/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── digitalocean_integration_test.go
│ │ │ │ │ ├── digitalocean_test.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── elasticsearch/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── elasticsearch_integration_test.go
│ │ │ │ │ ├── elasticsearch_test.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── ftp/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── ftp_integration_test.go
│ │ │ │ │ ├── ftp_test.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── gcs/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── gcs_integration_test.go
│ │ │ │ │ ├── gcs_test.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── googlepubsub/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── googlepubsub_integration_test.go
│ │ │ │ │ ├── googlepubsub_test.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── grafanacloudlogs/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── grafanacloud_logs_integration_test.go
│ │ │ │ │ ├── grafanacloudlogs_test.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── heroku/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── heroku_integration_test.go
│ │ │ │ │ ├── heroku_test.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── honeycomb/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── honeycomb_integration_test.go
│ │ │ │ │ ├── honeycomb_test.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── https/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── https_integration_test.go
│ │ │ │ │ ├── https_test.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── kafka/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── kafka_integration_test.go
│ │ │ │ │ ├── kafka_test.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── kinesis/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── kinesis_integration_test.go
│ │ │ │ │ ├── kinesis_test.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── logflags/
│ │ │ │ │ ├── doc.go
│ │ │ │ │ └── flags.go
│ │ │ │ ├── loggly/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── loggly_integration_test.go
│ │ │ │ │ ├── loggly_test.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── logshuttle/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── logshuttle_integration_test.go
│ │ │ │ │ ├── logshuttle_test.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── newrelic/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── newrelic_test.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── newrelicotlp/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── newrelicotlp_test.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── openstack/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── openstack_integration_test.go
│ │ │ │ │ ├── openstack_test.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── papertrail/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── papertrail_integration_test.go
│ │ │ │ │ ├── papertrail_test.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── root.go
│ │ │ │ ├── s3/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ ├── s3_integration_test.go
│ │ │ │ │ ├── s3_test.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── scalyr/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ ├── scalyr_integration_test.go
│ │ │ │ │ ├── scalyr_test.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── sftp/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ ├── sftp_integration_test.go
│ │ │ │ │ ├── sftp_test.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── splunk/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ ├── splunk_integration_test.go
│ │ │ │ │ ├── splunk_test.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── sumologic/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ ├── sumologic_integration_test.go
│ │ │ │ │ ├── sumologic_test.go
│ │ │ │ │ └── update.go
│ │ │ │ └── syslog/
│ │ │ │ ├── create.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── describe.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── list.go
│ │ │ │ ├── root.go
│ │ │ │ ├── syslog_integration_test.go
│ │ │ │ ├── syslog_test.go
│ │ │ │ └── update.go
│ │ │ ├── purge/
│ │ │ │ ├── doc.go
│ │ │ │ ├── purge.go
│ │ │ │ ├── purge_test.go
│ │ │ │ └── testdata/
│ │ │ │ └── keys
│ │ │ ├── ratelimit/
│ │ │ │ ├── create.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── describe.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── list.go
│ │ │ │ ├── ratelimit_test.go
│ │ │ │ ├── root.go
│ │ │ │ └── update.go
│ │ │ ├── resourcelink/
│ │ │ │ ├── create.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── describe.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── list.go
│ │ │ │ ├── resourcelink_test.go
│ │ │ │ ├── root.go
│ │ │ │ └── update.go
│ │ │ ├── root.go
│ │ │ ├── search.go
│ │ │ ├── service_test.go
│ │ │ ├── testdata/
│ │ │ │ ├── fastly-no-serviceid.toml
│ │ │ │ └── fastly-valid.toml
│ │ │ ├── update.go
│ │ │ ├── vcl/
│ │ │ │ ├── condition/
│ │ │ │ │ ├── condition_test.go
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── custom/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── custom_test.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ ├── testdata/
│ │ │ │ │ │ └── example.vcl
│ │ │ │ │ └── update.go
│ │ │ │ ├── describe.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── root.go
│ │ │ │ ├── snippet/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ ├── snippet_test.go
│ │ │ │ │ ├── testdata/
│ │ │ │ │ │ └── snippet.vcl
│ │ │ │ │ └── update.go
│ │ │ │ └── vcl_test.go
│ │ │ └── version/
│ │ │ ├── activate.go
│ │ │ ├── clone.go
│ │ │ ├── deactivate.go
│ │ │ ├── doc.go
│ │ │ ├── list.go
│ │ │ ├── lock.go
│ │ │ ├── root.go
│ │ │ ├── serviceversion_test.go
│ │ │ ├── stage.go
│ │ │ ├── unstage.go
│ │ │ ├── update.go
│ │ │ └── validate.go
│ │ ├── shellcomplete/
│ │ │ ├── doc.go
│ │ │ └── root.go
│ │ ├── sso/
│ │ │ ├── doc.go
│ │ │ ├── root.go
│ │ │ └── sso_test.go
│ │ ├── stats/
│ │ │ ├── aggregate.go
│ │ │ ├── aggregate_test.go
│ │ │ ├── doc.go
│ │ │ ├── domain_inspector.go
│ │ │ ├── domain_inspector_test.go
│ │ │ ├── historical.go
│ │ │ ├── historical_test.go
│ │ │ ├── obj.go
│ │ │ ├── origin_inspector.go
│ │ │ ├── origin_inspector_test.go
│ │ │ ├── realtime.go
│ │ │ ├── realtime_test.go
│ │ │ ├── regions.go
│ │ │ ├── regions_test.go
│ │ │ ├── root.go
│ │ │ ├── template.go
│ │ │ ├── usage.go
│ │ │ └── usage_test.go
│ │ ├── tls/
│ │ │ ├── config/
│ │ │ │ ├── config_test.go
│ │ │ │ ├── describe.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── list.go
│ │ │ │ ├── root.go
│ │ │ │ └── update.go
│ │ │ ├── custom/
│ │ │ │ ├── activation/
│ │ │ │ │ ├── activation_test.go
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── update.go
│ │ │ │ ├── certificate/
│ │ │ │ │ ├── certificate_test.go
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ ├── testdata/
│ │ │ │ │ │ └── certificate.crt
│ │ │ │ │ └── update.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── domain/
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── domain_test.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ └── root.go
│ │ │ │ ├── privatekey/
│ │ │ │ │ ├── create.go
│ │ │ │ │ ├── delete.go
│ │ │ │ │ ├── describe.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── list.go
│ │ │ │ │ ├── privatekey_test.go
│ │ │ │ │ ├── root.go
│ │ │ │ │ └── testdata/
│ │ │ │ │ └── testkey.pem
│ │ │ │ └── root.go
│ │ │ ├── platform/
│ │ │ │ ├── create.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── describe.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── list.go
│ │ │ │ ├── platform_test.go
│ │ │ │ ├── root.go
│ │ │ │ └── update.go
│ │ │ └── subscription/
│ │ │ ├── create.go
│ │ │ ├── delete.go
│ │ │ ├── describe.go
│ │ │ ├── doc.go
│ │ │ ├── list.go
│ │ │ ├── root.go
│ │ │ ├── subscription_test.go
│ │ │ └── update.go
│ │ ├── tools/
│ │ │ ├── doc.go
│ │ │ ├── domain/
│ │ │ │ ├── doc.go
│ │ │ │ ├── root.go
│ │ │ │ ├── status.go
│ │ │ │ ├── status_test.go
│ │ │ │ ├── suggest.go
│ │ │ │ └── suggest_test.go
│ │ │ └── root.go
│ │ ├── update/
│ │ │ ├── check.go
│ │ │ ├── check_test.go
│ │ │ ├── doc.go
│ │ │ └── root.go
│ │ ├── user/
│ │ │ ├── create.go
│ │ │ ├── delete.go
│ │ │ ├── describe.go
│ │ │ ├── doc.go
│ │ │ ├── list.go
│ │ │ ├── root.go
│ │ │ ├── update.go
│ │ │ └── user_test.go
│ │ ├── version/
│ │ │ ├── doc.go
│ │ │ ├── root.go
│ │ │ └── version_test.go
│ │ └── whoami/
│ │ ├── doc.go
│ │ ├── root.go
│ │ └── whoami_test.go
│ ├── config/
│ │ ├── auth.go
│ │ ├── config.go
│ │ ├── config_test.go
│ │ ├── doc.go
│ │ ├── migrate_auth.go
│ │ ├── migrate_auth_test.go
│ │ └── testdata/
│ │ ├── config-current.toml
│ │ ├── config-incompatible-config-version.toml
│ │ ├── config-invalid.toml
│ │ ├── config-legacy.toml
│ │ ├── config-outdated-cli-version.toml
│ │ ├── config.toml
│ │ └── static/
│ │ ├── config-invalid.toml
│ │ └── config.toml
│ ├── debug/
│ │ ├── debug.go
│ │ └── doc.go
│ ├── env/
│ │ ├── doc.go
│ │ ├── env.go
│ │ └── env_test.go
│ ├── errors/
│ │ ├── deduce.go
│ │ ├── deduce_test.go
│ │ ├── doc.go
│ │ ├── errors.go
│ │ ├── exit_error.go
│ │ ├── log.go
│ │ ├── log_test.go
│ │ ├── process.go
│ │ ├── remediation_error.go
│ │ ├── remediation_test.go
│ │ └── testdata/
│ │ ├── errors-expected-rotation.log
│ │ └── errors-expected.log
│ ├── exec/
│ │ ├── doc.go
│ │ └── exec.go
│ ├── file/
│ │ ├── archive.go
│ │ └── doc.go
│ ├── filesystem/
│ │ ├── directory.go
│ │ ├── doc.go
│ │ └── home.go
│ ├── fmt/
│ │ ├── doc.go
│ │ └── fmt.go
│ ├── github/
│ │ ├── doc.go
│ │ ├── github.go
│ │ └── github_test.go
│ ├── global/
│ │ ├── doc.go
│ │ ├── global.go
│ │ └── global_test.go
│ ├── internal/
│ │ └── beacon/
│ │ ├── beacon.go
│ │ ├── beacon_test.go
│ │ └── doc.go
│ ├── lookup/
│ │ ├── doc.go
│ │ └── lookup.go
│ ├── manifest/
│ │ ├── data.go
│ │ ├── doc.go
│ │ ├── file.go
│ │ ├── flags.go
│ │ ├── local_server.go
│ │ ├── local_server_test.go
│ │ ├── manifest.go
│ │ ├── manifest_test.go
│ │ ├── setup.go
│ │ ├── testdata/
│ │ │ ├── fastly-invalid-missing-version.toml
│ │ │ ├── fastly-invalid-unrecognised.toml
│ │ │ ├── fastly-invalid-version-exceeded.toml
│ │ │ ├── fastly-missing-spec-url.toml
│ │ │ ├── fastly-valid-integer.toml
│ │ │ ├── fastly-valid-semver.toml
│ │ │ ├── fastly-viceroy-update.toml
│ │ │ └── fastly-warning-dictionaries.toml
│ │ └── version.go
│ ├── mock/
│ │ ├── api.go
│ │ ├── client.go
│ │ ├── config_file.go
│ │ ├── doc.go
│ │ └── versioner.go
│ ├── revision/
│ │ ├── revision.go
│ │ └── revision_test.go
│ ├── runtime/
│ │ ├── doc.go
│ │ └── runtime.go
│ ├── sync/
│ │ ├── doc.go
│ │ └── sync.go
│ ├── testutil/
│ │ ├── api.go
│ │ ├── args.go
│ │ ├── assert.go
│ │ ├── client.go
│ │ ├── doc.go
│ │ ├── env.go
│ │ ├── file.go
│ │ ├── json.go
│ │ ├── log.go
│ │ ├── must.go
│ │ ├── paginator.go
│ │ ├── scenarios.go
│ │ ├── string.go
│ │ └── time.go
│ ├── text/
│ │ ├── accesskey.go
│ │ ├── alerts.go
│ │ ├── backend.go
│ │ ├── color.go
│ │ ├── computeacl.go
│ │ ├── configstore.go
│ │ ├── customsignal.go
│ │ ├── dictionary.go
│ │ ├── dictionaryitem.go
│ │ ├── dictionaryitem_test.go
│ │ ├── doc.go
│ │ ├── healthcheck.go
│ │ ├── kvstore.go
│ │ ├── lines.go
│ │ ├── lines_test.go
│ │ ├── list.go
│ │ ├── redaction.go
│ │ ├── resource.go
│ │ ├── rule.go
│ │ ├── sanitize.go
│ │ ├── sanitize_test.go
│ │ ├── secretstore.go
│ │ ├── service.go
│ │ ├── service_test.go
│ │ ├── spinner.go
│ │ ├── stats.go
│ │ ├── table.go
│ │ ├── tag.go
│ │ ├── text.go
│ │ ├── text_test.go
│ │ ├── threshold.go
│ │ ├── virtualpatch.go
│ │ └── workspace.go
│ ├── threadsafe/
│ │ ├── doc.go
│ │ └── threadsafe.go
│ ├── time/
│ │ ├── doc.go
│ │ └── time.go
│ ├── undo/
│ │ ├── doc.go
│ │ └── undo.go
│ └── useragent/
│ ├── doc.go
│ └── useragent.go
├── scripts/
│ ├── config.sh
│ ├── documentation.sh
│ ├── go-test-cache/
│ │ ├── go.mod
│ │ └── main.go
│ ├── scaffold-category.sh
│ ├── scaffold-update-interfaces.sh
│ ├── scaffold.sh
│ └── tags.sh
└── tools/
├── go.mod
└── go.sum
Showing preview only (598K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (5916 symbols across 1187 files)
FILE: .tmpl/create.go
function NewCreateCommand (line 15) | func NewCreateCommand(parent argparser.Registerer, globals *config.Data,...
type CreateCommand (line 53) | type CreateCommand struct
method Exec (line 63) | func (c *CreateCommand) Exec(in io.Reader, out io.Writer) error {
FILE: .tmpl/delete.go
function NewDeleteCommand (line 15) | func NewDeleteCommand(parent argparser.Registerer, globals *config.Data,...
type DeleteCommand (line 53) | type DeleteCommand struct
method Exec (line 63) | func (c *DeleteCommand) Exec(in io.Reader, out io.Writer) error {
FILE: .tmpl/describe.go
function NewDescribeCommand (line 15) | func NewDescribeCommand(parent argparser.Registerer, globals *config.Dat...
type DescribeCommand (line 49) | type DescribeCommand struct
method Exec (line 58) | func (c *DescribeCommand) Exec(in io.Reader, out io.Writer) error {
method print (line 102) | func (c *DescribeCommand) print(out io.Writer, r *fastly.${CLI_API}) {
FILE: .tmpl/list.go
function NewListCommand (line 16) | func NewListCommand(parent argparser.Registerer, globals *config.Data, d...
type ListCommand (line 50) | type ListCommand struct
method Exec (line 59) | func (c *ListCommand) Exec(in io.Reader, out io.Writer) error {
method printVerbose (line 107) | func (c *ListCommand) printVerbose(out io.Writer, serviceID string, se...
method printSummary (line 128) | func (c *ListCommand) printSummary(out io.Writer, rs []*fastly.${CLI_A...
FILE: .tmpl/root.go
type RootCommand (line 12) | type RootCommand struct
method Exec (line 26) | func (c *RootCommand) Exec(in io.Reader, out io.Writer) error {
function NewRootCommand (line 18) | func NewRootCommand(parent argparser.Registerer, globals *config.Data) *...
FILE: .tmpl/root_parent.go
type RootCommand (line 12) | type RootCommand struct
method Exec (line 26) | func (c *RootCommand) Exec(in io.Reader, out io.Writer) error {
function NewRootCommand (line 18) | func NewRootCommand(parent argparser.Registerer, globals *config.Data) *...
FILE: .tmpl/test.go
constant baseCommand (line 13) | baseCommand = "${CLI_COMMAND}"
function TestDescribe (line 153) | func TestDescribe(t *testing.T) {
function TestList (line 189) | func TestList(t *testing.T) {
FILE: .tmpl/update.go
function NewUpdateCommand (line 17) | func NewUpdateCommand(parent argparser.Registerer, globals *config.Data,...
type UpdateCommand (line 55) | type UpdateCommand struct
method Exec (line 67) | func (c *UpdateCommand) Exec(in io.Reader, out io.Writer) error {
method constructInput (line 110) | func (c *UpdateCommand) constructInput(serviceID string, serviceVersio...
FILE: cmd/fastly/main.go
function main (line 11) | func main() {
FILE: npm/@fastly/cli/package-helpers.js
function pkgForCurrentPlatform (line 3) | function pkgForCurrentPlatform() {
FILE: npm/@fastly/cli/update.js
function indexJs (line 157) | function indexJs(binaryAsset) {
function packageJson (line 166) | function packageJson(name, version, description, os, cpu, binaryAsset) {
FILE: pkg/api/interface.go
type HTTPClient (line 15) | type HTTPClient interface
type Interface (line 21) | type Interface interface
type RealtimeStatsInterface (line 430) | type RealtimeStatsInterface interface
FILE: pkg/api/undocumented/undocumented.go
constant RequestTimeout (line 20) | RequestTimeout = 5 * time.Second
type APIError (line 23) | type APIError struct
method Error (line 29) | func (e APIError) Error() string {
method Unwrap (line 33) | func (e APIError) Unwrap() error {
method HTTPStatusCode (line 37) | func (e APIError) HTTPStatusCode() int {
function NewError (line 42) | func NewError(err error, statusCode int) APIError {
type HTTPHeader (line 50) | type HTTPHeader struct
type CallOptions (line 56) | type CallOptions struct
function Call (line 70) | func Call(opts CallOptions) (data []byte, err error) {
FILE: pkg/app/disable_token_flag_test.go
function TestTokenFlagDisabledWhenAuthCommandDisabled (line 17) | func TestTokenFlagDisabledWhenAuthCommandDisabled(t *testing.T) {
function TestTokenFlagAvailableByDefault (line 81) | func TestTokenFlagAvailableByDefault(t *testing.T) {
FILE: pkg/app/expiry_warning_test.go
function expiringTokenData (line 18) | func expiringTokenData(out *bytes.Buffer) *global.Data {
function TestCheckTokenExpirationWarning (line 40) | func TestCheckTokenExpirationWarning(t *testing.T) {
function TestCheckTokenExpirationWarningDisabledAuth (line 273) | func TestCheckTokenExpirationWarningDisabledAuth(t *testing.T) {
function TestCheckTokenExpirationWarningSuppression (line 296) | func TestCheckTokenExpirationWarningSuppression(t *testing.T) {
function TestCheckTokenExpirationWarningShownForJSON (line 374) | func TestCheckTokenExpirationWarningShownForJSON(t *testing.T) {
function TestCheckTokenExpirationWarningNotSuppressedForNonAuth (line 390) | func TestCheckTokenExpirationWarningNotSuppressedForNonAuth(t *testing.T) {
FILE: pkg/app/run.go
function Run (line 45) | func Run(args []string, stdin io.Reader) error {
function Exec (line 196) | func Exec(data *global.Data) error {
function configureKingpin (line 346) | func configureKingpin(data *global.Data) *kingpin.Application {
function processToken (line 399) | func processToken(data *global.Data) (token string, tokenSource lookup.S...
function checkAndRefreshAuthSSOToken (line 442) | func checkAndRefreshAuthSSOToken(name string, at *config.AuthToken, data...
function checkTokenExpirationWarning (line 532) | func checkTokenExpirationWarning(data *global.Data, commandName string) {
function isAuthRelatedCommand (line 573) | func isAuthRelatedCommand(commandName string) bool {
function ssoAuthentication (line 583) | func ssoAuthentication(outputMessage string, data *global.Data, forceReA...
function promptForAuth (line 618) | func promptForAuth(data *global.Data) (string, lookup.Source, error) {
function displayToken (line 651) | func displayToken(tokenSource lookup.Source, data *global.Data) {
function checkConfigPermissions (line 674) | func checkConfigPermissions(tokenSource lookup.Source, out io.Writer) {
function displayAPIEndpoint (line 686) | func displayAPIEndpoint(endpoint string, endpointSource lookup.Source, o...
function configureClients (line 701) | func configureClients(token, apiEndpoint string, acf global.APIClientFac...
function checkForUpdates (line 715) | func checkForUpdates(av github.AssetVersioner, commandName string) func(...
function commandCollectsData (line 726) | func commandCollectsData(command string) bool {
function commandRequiresAuthServer (line 736) | func commandRequiresAuthServer(command string, args []string) bool {
function commandRequiresToken (line 748) | func commandRequiresToken(command argparser.Command) bool {
function configureAuth (line 772) | func configureAuth(apiEndpoint string, args []string, f config.File, c a...
function accountEndpoint (line 829) | func accountEndpoint(args []string, e config.Environment, cfg config.Fil...
function commandSuppressesVerbose (line 850) | func commandSuppressesVerbose(command argparser.Command) bool {
FILE: pkg/app/run_test.go
function TestShellCompletion (line 25) | func TestShellCompletion(t *testing.T) {
function TestExecQuietSuppressesExpiryWarning (line 143) | func TestExecQuietSuppressesExpiryWarning(t *testing.T) {
function TestExecConfigShowsExpiryWarning (line 166) | func TestExecConfigShowsExpiryWarning(t *testing.T) {
function TestExecJSONLeavesStdoutCleanAndWritesWarningToStderr (line 191) | func TestExecJSONLeavesStdoutCleanAndWritesWarningToStderr(t *testing.T) {
function TestStatsJSONSuppressesUpdateNotice (line 223) | func TestStatsJSONSuppressesUpdateNotice(t *testing.T) {
function TestHelpJSON (line 258) | func TestHelpJSON(t *testing.T) {
function stripTrailingSpace (line 278) | func stripTrailingSpace(str string) string {
FILE: pkg/app/usage.go
function Usage (line 27) | func Usage(args []string, app *kingpin.Application, out, err io.Writer, ...
constant authGuideTemplate (line 42) | authGuideTemplate = `{{if .Context.SelectedCommand -}}
function globalFlags (line 173) | func globalFlags() map[string]bool {
constant VerboseUsageTemplate (line 193) | VerboseUsageTemplate = `{{define "FormatCommands" -}}
function processCommandInput (line 242) | func processCommandInput(
function useFullHelpOutput (line 422) | func useFullHelpOutput(app *kingpin.Application, args []string, out io.W...
type commandsMetadata (line 450) | type commandsMetadata
function UsageJSON (line 454) | func UsageJSON(app *kingpin.Application) (string, error) {
type usageJSON (line 474) | type usageJSON struct
type flagJSON (line 479) | type flagJSON struct
type Example (line 489) | type Example struct
type commandJSON (line 495) | type commandJSON struct
function getGlobalFlagJSON (line 504) | func getGlobalFlagJSON(models []*kingpin.ClauseModel) []flagJSON {
function getCommandJSON (line 514) | func getCommandJSON(models []*kingpin.CmdModel, data commandsMetadata) [...
function recurse (line 576) | func recurse(n int, segs []string, data commandsMetadata) commandsMetada...
function resolveToString (line 591) | func resolveToString(i any, key string) string {
function getFlagJSON (line 605) | func getFlagJSON(models []*kingpin.ClauseModel) []flagJSON {
function displayHelp (line 628) | func displayHelp(
FILE: pkg/app/usage_auth_help_test.go
function TestAuthGuideBlock (line 16) | func TestAuthGuideBlock(t *testing.T) {
FILE: pkg/argparser/cmd.go
type Command (line 24) | type Command interface
function Select (line 30) | func Select(name string, commands []Command) (Command, bool) {
type Registerer (line 42) | type Registerer interface
type Globals (line 50) | type Globals struct
type Base (line 57) | type Base struct
method Name (line 65) | func (b Base) Name() string {
method SuppressesVerbose (line 70) | func (b Base) SuppressesVerbose() bool {
type Optional (line 76) | type Optional struct
method Set (line 82) | func (o *Optional) Set(_ *kingpin.ParseElement, _ *kingpin.ParseContex...
type OptionalString (line 88) | type OptionalString struct
type OptionalStringSlice (line 94) | type OptionalStringSlice struct
type OptionalBool (line 100) | type OptionalBool struct
type OptionalInt (line 106) | type OptionalInt struct
type OptionalFloat64 (line 112) | type OptionalFloat64 struct
type ServiceDetailsOpts (line 119) | type ServiceDetailsOpts struct
function ServiceDetails (line 143) | func ServiceDetails(opts ServiceDetailsOpts) (serviceID string, serviceV...
function ServiceID (line 216) | func ServiceID(serviceName OptionalServiceNameID, data manifest.Data, cl...
function DisplayServiceID (line 249) | func DisplayServiceID(sid, flag string, s manifest.Source, out io.Writer) {
function ArgsIsHelpJSON (line 267) | func ArgsIsHelpJSON(args []string) bool {
function IsHelpOnly (line 282) | func IsHelpOnly(args []string) bool {
function IsHelpFlagOnly (line 287) | func IsHelpFlagOnly(args []string) bool {
function IsVerboseAndQuiet (line 293) | func IsVerboseAndQuiet(args []string) bool {
function IsGlobalFlagsOnly (line 327) | func IsGlobalFlagsOnly(args []string) bool {
FILE: pkg/argparser/cmd_test.go
function TestIsGlobalFlagsOnly (line 10) | func TestIsGlobalFlagsOnly(t *testing.T) {
function TestArgsIsHelpJSON (line 48) | func TestArgsIsHelpJSON(t *testing.T) {
function TestIsGlobalFlagsOnlyDisabledAuth (line 100) | func TestIsGlobalFlagsOnlyDisabledAuth(t *testing.T) {
FILE: pkg/argparser/common.go
function CursorFlag (line 38) | func CursorFlag(dst *string) StringFlagOpts {
function LimitFlag (line 48) | func LimitFlag(dst *int) IntFlagOpts {
function StoreIDFlag (line 59) | func StoreIDFlag(dst *string) StringFlagOpts {
FILE: pkg/argparser/flags.go
type StringFlagOpts (line 32) | type StringFlagOpts struct
method RegisterFlag (line 42) | func (b Base) RegisterFlag(opts StringFlagOpts) {
type BoolFlagOpts (line 57) | type BoolFlagOpts struct
method RegisterFlagBool (line 69) | func (b Base) RegisterFlagBool(opts BoolFlagOpts) {
type IntFlagOpts (line 84) | type IntFlagOpts struct
method RegisterFlagInt (line 95) | func (b Base) RegisterFlagInt(opts IntFlagOpts) {
type OptionalServiceVersion (line 113) | type OptionalServiceVersion struct
method Parse (line 125) | func (sv *OptionalServiceVersion) Parse(sid string, client api.Interfa...
type OptionalServiceNameID (line 197) | type OptionalServiceNameID struct
method Parse (line 202) | func (sv *OptionalServiceNameID) Parse(client api.Interface) (serviceI...
type OptionalCustomerID (line 221) | type OptionalCustomerID struct
method Parse (line 229) | func (sv *OptionalCustomerID) Parse() error {
type OptionalWorkspaceID (line 241) | type OptionalWorkspaceID struct
method Parse (line 249) | func (sv *OptionalWorkspaceID) Parse() error {
type AutoCloneFlagOpts (line 262) | type AutoCloneFlagOpts struct
method RegisterAutoCloneFlag (line 269) | func (b Base) RegisterAutoCloneFlag(opts AutoCloneFlagOpts) {
type OptionalAutoClone (line 275) | type OptionalAutoClone struct
method Parse (line 283) | func (ac *OptionalAutoClone) Parse(v *fastly.Version, sid string, verb...
function Content (line 314) | func Content(flagval string) string {
function IntToBool (line 327) | func IntToBool(i int) bool {
function ContextHasHelpFlag (line 333) | func ContextHasHelpFlag(ctx *kingpin.ParseContext) bool {
function IsCompletionScript (line 340) | func IsCompletionScript(args []string) bool {
function IsCompletion (line 353) | func IsCompletion(args []string) bool {
type JSONOutput (line 365) | type JSONOutput struct
method JSONFlag (line 370) | func (j *JSONOutput) JSONFlag() BoolFlagOpts {
method WriteJSON (line 381) | func (j *JSONOutput) WriteJSON(out io.Writer, value any) (bool, error) {
function ConvertBoolFromStringFlag (line 391) | func ConvertBoolFromStringFlag(value string, argName string) (*bool, err...
function ConvertOrderFromStringFlag (line 402) | func ConvertOrderFromStringFlag(value string, argName string) (string, e...
FILE: pkg/argparser/flags_test.go
function TestOptionalServiceVersionParse (line 20) | func TestOptionalServiceVersionParse(t *testing.T) {
function listVersions (line 97) | func listVersions(_ context.Context, i *fastly.ListVersionsInput) ([]*fa...
function getServiceDetails (line 126) | func getServiceDetails(_ context.Context, i *fastly.GetServiceDetailsInp...
function TestOptionalAutoCloneParse (line 179) | func TestOptionalAutoCloneParse(t *testing.T) {
function TestServiceID (line 285) | func TestServiceID(t *testing.T) {
function TestContent (line 381) | func TestContent(t *testing.T) {
function cloneVersionResult (line 407) | func cloneVersionResult(version int) func(_ context.Context, i *fastly.C...
function errMatches (line 419) | func errMatches(version int, err error) bool {
FILE: pkg/auth/auth.go
constant Remediation (line 25) | Remediation = "Please re-run the command. If the problem persists, pleas...
constant ClientID (line 28) | ClientID = "fastly-cli"
constant redirectPath (line 31) | redirectPath = "/callback"
constant redirectURL (line 34) | redirectURL = "http://localhost:8080" + redirectPath
constant OIDCMetadata (line 38) | OIDCMetadata = "%s/realms/fastly/.well-known/openid-configuration"
type WellKnownEndpoints (line 44) | type WellKnownEndpoints struct
type Runner (line 54) | type Runner interface
type Server (line 74) | type Server struct
method AuthURL (line 103) | func (s Server) AuthURL() (string, error) {
method SetParam (line 123) | func (s *Server) SetParam(field, value string) {
method GetResult (line 128) | func (s Server) GetResult() chan AuthorizationResult {
method GetJWT (line 134) | func (s Server) GetJWT(authorizationCode string) (JWT, error) {
method SetVerifier (line 183) | func (s *Server) SetVerifier(verifier *oidc.S256Verifier) {
method Start (line 188) | func (s *Server) Start() error {
method HandleCallback (line 207) | func (s *Server) HandleCallback() http.HandlerFunc {
method ValidateAndRetrieveAPIToken (line 267) | func (s *Server) ValidateAndRetrieveAPIToken(accessToken string) (stri...
method VerifyJWTSignature (line 313) | func (s *Server) VerifyJWTSignature(accessToken string) (claims map[st...
method ExchangeAccessToken (line 332) | func (s *Server) ExchangeAccessToken(accessToken string) (*APIToken, e...
method RefreshAccessToken (line 367) | func (s *Server) RefreshAccessToken(refreshToken string) (JWT, error) {
type Param (line 96) | type Param struct
type RefreshError (line 422) | type RefreshError struct
type APIToken (line 428) | type APIToken struct
type AuthorizationResult (line 444) | type AuthorizationResult struct
type JWT (line 459) | type JWT struct
function TokenExpired (line 475) | func TokenExpired(ttl int, timestamp int64) bool {
FILE: pkg/check/check.go
function Stale (line 12) | func Stale(lastVersionCheck string, dur string) bool {
FILE: pkg/commands/alias/acl/create.go
type CreateCommand (line 14) | type CreateCommand struct
method Exec (line 26) | func (c *CreateCommand) Exec(in io.Reader, out io.Writer) error {
function NewCreateCommand (line 19) | func NewCreateCommand(parent argparser.Registerer, g *global.Data) *Crea...
FILE: pkg/commands/alias/acl/delete.go
type DeleteCommand (line 14) | type DeleteCommand struct
method Exec (line 26) | func (c *DeleteCommand) Exec(in io.Reader, out io.Writer) error {
function NewDeleteCommand (line 19) | func NewDeleteCommand(parent argparser.Registerer, g *global.Data) *Dele...
FILE: pkg/commands/alias/acl/describe.go
type DescribeCommand (line 14) | type DescribeCommand struct
method Exec (line 26) | func (c *DescribeCommand) Exec(in io.Reader, out io.Writer) error {
function NewDescribeCommand (line 19) | func NewDescribeCommand(parent argparser.Registerer, g *global.Data) *De...
FILE: pkg/commands/alias/acl/list.go
type ListCommand (line 14) | type ListCommand struct
method Exec (line 26) | func (c *ListCommand) Exec(in io.Reader, out io.Writer) error {
function NewListCommand (line 19) | func NewListCommand(parent argparser.Registerer, g *global.Data) *ListCo...
FILE: pkg/commands/alias/acl/root.go
type RootCommand (line 12) | type RootCommand struct
method Exec (line 29) | func (c *RootCommand) Exec(_ io.Reader, _ io.Writer) error {
constant CommandName (line 18) | CommandName = "acl"
function NewRootCommand (line 21) | func NewRootCommand(parent argparser.Registerer, g *global.Data) *RootCo...
FILE: pkg/commands/alias/acl/update.go
type UpdateCommand (line 14) | type UpdateCommand struct
method Exec (line 26) | func (c *UpdateCommand) Exec(in io.Reader, out io.Writer) error {
function NewUpdateCommand (line 19) | func NewUpdateCommand(parent argparser.Registerer, g *global.Data) *Upda...
FILE: pkg/commands/alias/aclentry/create.go
type CreateCommand (line 14) | type CreateCommand struct
method Exec (line 26) | func (c *CreateCommand) Exec(in io.Reader, out io.Writer) error {
function NewCreateCommand (line 19) | func NewCreateCommand(parent argparser.Registerer, g *global.Data) *Crea...
FILE: pkg/commands/alias/aclentry/delete.go
type DeleteCommand (line 14) | type DeleteCommand struct
method Exec (line 26) | func (c *DeleteCommand) Exec(in io.Reader, out io.Writer) error {
function NewDeleteCommand (line 19) | func NewDeleteCommand(parent argparser.Registerer, g *global.Data) *Dele...
FILE: pkg/commands/alias/aclentry/describe.go
type DescribeCommand (line 14) | type DescribeCommand struct
method Exec (line 26) | func (c *DescribeCommand) Exec(in io.Reader, out io.Writer) error {
function NewDescribeCommand (line 19) | func NewDescribeCommand(parent argparser.Registerer, g *global.Data) *De...
FILE: pkg/commands/alias/aclentry/list.go
type ListCommand (line 14) | type ListCommand struct
method Exec (line 26) | func (c *ListCommand) Exec(in io.Reader, out io.Writer) error {
function NewListCommand (line 19) | func NewListCommand(parent argparser.Registerer, g *global.Data) *ListCo...
FILE: pkg/commands/alias/aclentry/root.go
type RootCommand (line 12) | type RootCommand struct
method Exec (line 29) | func (c *RootCommand) Exec(_ io.Reader, _ io.Writer) error {
constant CommandName (line 18) | CommandName = "aclentry"
function NewRootCommand (line 21) | func NewRootCommand(parent argparser.Registerer, g *global.Data) *RootCo...
FILE: pkg/commands/alias/aclentry/update.go
type UpdateCommand (line 14) | type UpdateCommand struct
method Exec (line 26) | func (c *UpdateCommand) Exec(in io.Reader, out io.Writer) error {
function NewUpdateCommand (line 19) | func NewUpdateCommand(parent argparser.Registerer, g *global.Data) *Upda...
FILE: pkg/commands/alias/alerts/create.go
type CreateCommand (line 14) | type CreateCommand struct
method Exec (line 26) | func (c *CreateCommand) Exec(in io.Reader, out io.Writer) error {
function NewCreateCommand (line 19) | func NewCreateCommand(parent argparser.Registerer, g *global.Data) *Crea...
FILE: pkg/commands/alias/alerts/delete.go
type DeleteCommand (line 14) | type DeleteCommand struct
method Exec (line 26) | func (c *DeleteCommand) Exec(in io.Reader, out io.Writer) error {
function NewDeleteCommand (line 19) | func NewDeleteCommand(parent argparser.Registerer, g *global.Data) *Dele...
FILE: pkg/commands/alias/alerts/describe.go
type DescribeCommand (line 14) | type DescribeCommand struct
method Exec (line 26) | func (c *DescribeCommand) Exec(in io.Reader, out io.Writer) error {
function NewDescribeCommand (line 19) | func NewDescribeCommand(parent argparser.Registerer, g *global.Data) *De...
FILE: pkg/commands/alias/alerts/history.go
type ListHistoryCommand (line 14) | type ListHistoryCommand struct
method Exec (line 26) | func (c *ListHistoryCommand) Exec(in io.Reader, out io.Writer) error {
function NewListHistoryCommand (line 19) | func NewListHistoryCommand(parent argparser.Registerer, g *global.Data) ...
FILE: pkg/commands/alias/alerts/list.go
type ListCommand (line 14) | type ListCommand struct
method Exec (line 26) | func (c *ListCommand) Exec(in io.Reader, out io.Writer) error {
function NewListCommand (line 19) | func NewListCommand(parent argparser.Registerer, g *global.Data) *ListCo...
FILE: pkg/commands/alias/alerts/root.go
type RootCommand (line 12) | type RootCommand struct
method Exec (line 29) | func (c *RootCommand) Exec(_ io.Reader, _ io.Writer) error {
constant CommandName (line 18) | CommandName = "alerts"
function NewRootCommand (line 21) | func NewRootCommand(parent argparser.Registerer, g *global.Data) *RootCo...
FILE: pkg/commands/alias/alerts/update.go
type UpdateCommand (line 14) | type UpdateCommand struct
method Exec (line 26) | func (c *UpdateCommand) Exec(in io.Reader, out io.Writer) error {
function NewUpdateCommand (line 19) | func NewUpdateCommand(parent argparser.Registerer, g *global.Data) *Upda...
FILE: pkg/commands/alias/backend/create.go
type CreateCommand (line 14) | type CreateCommand struct
method Exec (line 26) | func (c *CreateCommand) Exec(in io.Reader, out io.Writer) error {
function NewCreateCommand (line 19) | func NewCreateCommand(parent argparser.Registerer, g *global.Data) *Crea...
FILE: pkg/commands/alias/backend/delete.go
type DeleteCommand (line 14) | type DeleteCommand struct
method Exec (line 26) | func (c *DeleteCommand) Exec(in io.Reader, out io.Writer) error {
function NewDeleteCommand (line 19) | func NewDeleteCommand(parent argparser.Registerer, g *global.Data) *Dele...
FILE: pkg/commands/alias/backend/describe.go
type DescribeCommand (line 14) | type DescribeCommand struct
method Exec (line 26) | func (c *DescribeCommand) Exec(in io.Reader, out io.Writer) error {
function NewDescribeCommand (line 19) | func NewDescribeCommand(parent argparser.Registerer, g *global.Data) *De...
FILE: pkg/commands/alias/backend/list.go
type ListCommand (line 14) | type ListCommand struct
method Exec (line 26) | func (c *ListCommand) Exec(in io.Reader, out io.Writer) error {
function NewListCommand (line 19) | func NewListCommand(parent argparser.Registerer, g *global.Data) *ListCo...
FILE: pkg/commands/alias/backend/root.go
type RootCommand (line 12) | type RootCommand struct
method Exec (line 29) | func (c *RootCommand) Exec(_ io.Reader, _ io.Writer) error {
constant CommandName (line 18) | CommandName = "backend"
function NewRootCommand (line 21) | func NewRootCommand(parent argparser.Registerer, g *global.Data) *RootCo...
FILE: pkg/commands/alias/backend/update.go
type UpdateCommand (line 14) | type UpdateCommand struct
method Exec (line 26) | func (c *UpdateCommand) Exec(in io.Reader, out io.Writer) error {
function NewUpdateCommand (line 19) | func NewUpdateCommand(parent argparser.Registerer, g *global.Data) *Upda...
FILE: pkg/commands/alias/dictionary/create.go
type CreateCommand (line 14) | type CreateCommand struct
method Exec (line 26) | func (c *CreateCommand) Exec(in io.Reader, out io.Writer) error {
function NewCreateCommand (line 19) | func NewCreateCommand(parent argparser.Registerer, g *global.Data) *Crea...
FILE: pkg/commands/alias/dictionary/delete.go
type DeleteCommand (line 14) | type DeleteCommand struct
method Exec (line 26) | func (c *DeleteCommand) Exec(in io.Reader, out io.Writer) error {
function NewDeleteCommand (line 19) | func NewDeleteCommand(parent argparser.Registerer, g *global.Data) *Dele...
FILE: pkg/commands/alias/dictionary/describe.go
type DescribeCommand (line 14) | type DescribeCommand struct
method Exec (line 26) | func (c *DescribeCommand) Exec(in io.Reader, out io.Writer) error {
function NewDescribeCommand (line 19) | func NewDescribeCommand(parent argparser.Registerer, g *global.Data) *De...
FILE: pkg/commands/alias/dictionary/list.go
type ListCommand (line 14) | type ListCommand struct
method Exec (line 26) | func (c *ListCommand) Exec(in io.Reader, out io.Writer) error {
function NewListCommand (line 19) | func NewListCommand(parent argparser.Registerer, g *global.Data) *ListCo...
FILE: pkg/commands/alias/dictionary/root.go
type RootCommand (line 12) | type RootCommand struct
method Exec (line 29) | func (c *RootCommand) Exec(_ io.Reader, _ io.Writer) error {
constant CommandName (line 18) | CommandName = "dictionary"
function NewRootCommand (line 21) | func NewRootCommand(parent argparser.Registerer, g *global.Data) *RootCo...
FILE: pkg/commands/alias/dictionary/update.go
type UpdateCommand (line 14) | type UpdateCommand struct
method Exec (line 26) | func (c *UpdateCommand) Exec(in io.Reader, out io.Writer) error {
function NewUpdateCommand (line 19) | func NewUpdateCommand(parent argparser.Registerer, g *global.Data) *Upda...
FILE: pkg/commands/alias/dictionaryentry/create.go
type CreateCommand (line 14) | type CreateCommand struct
method Exec (line 26) | func (c *CreateCommand) Exec(in io.Reader, out io.Writer) error {
function NewCreateCommand (line 19) | func NewCreateCommand(parent argparser.Registerer, g *global.Data) *Crea...
FILE: pkg/commands/alias/dictionaryentry/delete.go
type DeleteCommand (line 14) | type DeleteCommand struct
method Exec (line 26) | func (c *DeleteCommand) Exec(in io.Reader, out io.Writer) error {
function NewDeleteCommand (line 19) | func NewDeleteCommand(parent argparser.Registerer, g *global.Data) *Dele...
FILE: pkg/commands/alias/dictionaryentry/describe.go
type DescribeCommand (line 14) | type DescribeCommand struct
method Exec (line 26) | func (c *DescribeCommand) Exec(in io.Reader, out io.Writer) error {
function NewDescribeCommand (line 19) | func NewDescribeCommand(parent argparser.Registerer, g *global.Data) *De...
FILE: pkg/commands/alias/dictionaryentry/list.go
type ListCommand (line 14) | type ListCommand struct
method Exec (line 26) | func (c *ListCommand) Exec(in io.Reader, out io.Writer) error {
function NewListCommand (line 19) | func NewListCommand(parent argparser.Registerer, g *global.Data) *ListCo...
FILE: pkg/commands/alias/dictionaryentry/root.go
type RootCommand (line 12) | type RootCommand struct
method Exec (line 29) | func (c *RootCommand) Exec(_ io.Reader, _ io.Writer) error {
constant CommandName (line 18) | CommandName = "dictionary-entry"
function NewRootCommand (line 21) | func NewRootCommand(parent argparser.Registerer, g *global.Data) *RootCo...
FILE: pkg/commands/alias/dictionaryentry/update.go
type UpdateCommand (line 14) | type UpdateCommand struct
method Exec (line 26) | func (c *UpdateCommand) Exec(in io.Reader, out io.Writer) error {
function NewUpdateCommand (line 19) | func NewUpdateCommand(parent argparser.Registerer, g *global.Data) *Upda...
FILE: pkg/commands/alias/healthcheck/create.go
type CreateCommand (line 14) | type CreateCommand struct
method Exec (line 26) | func (c *CreateCommand) Exec(in io.Reader, out io.Writer) error {
function NewCreateCommand (line 19) | func NewCreateCommand(parent argparser.Registerer, g *global.Data) *Crea...
FILE: pkg/commands/alias/healthcheck/delete.go
type DeleteCommand (line 14) | type DeleteCommand struct
method Exec (line 26) | func (c *DeleteCommand) Exec(in io.Reader, out io.Writer) error {
function NewDeleteCommand (line 19) | func NewDeleteCommand(parent argparser.Registerer, g *global.Data) *Dele...
FILE: pkg/commands/alias/healthcheck/describe.go
type DescribeCommand (line 14) | type DescribeCommand struct
method Exec (line 26) | func (c *DescribeCommand) Exec(in io.Reader, out io.Writer) error {
function NewDescribeCommand (line 19) | func NewDescribeCommand(parent argparser.Registerer, g *global.Data) *De...
FILE: pkg/commands/alias/healthcheck/list.go
type ListCommand (line 14) | type ListCommand struct
method Exec (line 26) | func (c *ListCommand) Exec(in io.Reader, out io.Writer) error {
function NewListCommand (line 19) | func NewListCommand(parent argparser.Registerer, g *global.Data) *ListCo...
FILE: pkg/commands/alias/healthcheck/root.go
type RootCommand (line 12) | type RootCommand struct
method Exec (line 29) | func (c *RootCommand) Exec(_ io.Reader, _ io.Writer) error {
constant CommandName (line 18) | CommandName = "healthcheck"
function NewRootCommand (line 21) | func NewRootCommand(parent argparser.Registerer, g *global.Data) *RootCo...
FILE: pkg/commands/alias/healthcheck/update.go
type UpdateCommand (line 14) | type UpdateCommand struct
method Exec (line 26) | func (c *UpdateCommand) Exec(in io.Reader, out io.Writer) error {
function NewUpdateCommand (line 19) | func NewUpdateCommand(parent argparser.Registerer, g *global.Data) *Upda...
FILE: pkg/commands/alias/imageoptimizerdefaults/get.go
type GetCommand (line 14) | type GetCommand struct
method Exec (line 26) | func (c *GetCommand) Exec(in io.Reader, out io.Writer) error {
function NewGetCommand (line 19) | func NewGetCommand(parent argparser.Registerer, g *global.Data) *GetComm...
FILE: pkg/commands/alias/imageoptimizerdefaults/root.go
type RootCommand (line 12) | type RootCommand struct
method Exec (line 29) | func (c *RootCommand) Exec(_ io.Reader, _ io.Writer) error {
constant CommandName (line 18) | CommandName = "imageoptimizerdefaults"
function NewRootCommand (line 21) | func NewRootCommand(parent argparser.Registerer, g *global.Data) *RootCo...
FILE: pkg/commands/alias/imageoptimizerdefaults/update.go
type UpdateCommand (line 14) | type UpdateCommand struct
method Exec (line 26) | func (c *UpdateCommand) Exec(in io.Reader, out io.Writer) error {
function NewUpdateCommand (line 19) | func NewUpdateCommand(parent argparser.Registerer, g *global.Data) *Upda...
FILE: pkg/commands/alias/logging/azureblob/create.go
type CreateCommand (line 14) | type CreateCommand struct
method Exec (line 26) | func (c *CreateCommand) Exec(in io.Reader, out io.Writer) error {
function NewCreateCommand (line 19) | func NewCreateCommand(parent argparser.Registerer, g *global.Data) *Crea...
FILE: pkg/commands/alias/logging/azureblob/delete.go
type DeleteCommand (line 14) | type DeleteCommand struct
method Exec (line 26) | func (c *DeleteCommand) Exec(in io.Reader, out io.Writer) error {
function NewDeleteCommand (line 19) | func NewDeleteCommand(parent argparser.Registerer, g *global.Data) *Dele...
FILE: pkg/commands/alias/logging/azureblob/describe.go
type DescribeCommand (line 14) | type DescribeCommand struct
method Exec (line 26) | func (c *DescribeCommand) Exec(in io.Reader, out io.Writer) error {
function NewDescribeCommand (line 19) | func NewDescribeCommand(parent argparser.Registerer, g *global.Data) *De...
FILE: pkg/commands/alias/logging/azureblob/list.go
type ListCommand (line 14) | type ListCommand struct
method Exec (line 26) | func (c *ListCommand) Exec(in io.Reader, out io.Writer) error {
function NewListCommand (line 19) | func NewListCommand(parent argparser.Registerer, g *global.Data) *ListCo...
FILE: pkg/commands/alias/logging/azureblob/root.go
type RootCommand (line 12) | type RootCommand struct
method Exec (line 29) | func (c *RootCommand) Exec(_ io.Reader, _ io.Writer) error {
constant CommandName (line 18) | CommandName = "azureblob"
function NewRootCommand (line 21) | func NewRootCommand(parent argparser.Registerer, g *global.Data) *RootCo...
FILE: pkg/commands/alias/logging/azureblob/update.go
type UpdateCommand (line 14) | type UpdateCommand struct
method Exec (line 26) | func (c *UpdateCommand) Exec(in io.Reader, out io.Writer) error {
function NewUpdateCommand (line 19) | func NewUpdateCommand(parent argparser.Registerer, g *global.Data) *Upda...
FILE: pkg/commands/alias/logging/bigquery/create.go
type CreateCommand (line 14) | type CreateCommand struct
method Exec (line 26) | func (c *CreateCommand) Exec(in io.Reader, out io.Writer) error {
function NewCreateCommand (line 19) | func NewCreateCommand(parent argparser.Registerer, g *global.Data) *Crea...
FILE: pkg/commands/alias/logging/bigquery/delete.go
type DeleteCommand (line 14) | type DeleteCommand struct
method Exec (line 26) | func (c *DeleteCommand) Exec(in io.Reader, out io.Writer) error {
function NewDeleteCommand (line 19) | func NewDeleteCommand(parent argparser.Registerer, g *global.Data) *Dele...
FILE: pkg/commands/alias/logging/bigquery/describe.go
type DescribeCommand (line 14) | type DescribeCommand struct
method Exec (line 26) | func (c *DescribeCommand) Exec(in io.Reader, out io.Writer) error {
function NewDescribeCommand (line 19) | func NewDescribeCommand(parent argparser.Registerer, g *global.Data) *De...
FILE: pkg/commands/alias/logging/bigquery/list.go
type ListCommand (line 14) | type ListCommand struct
method Exec (line 26) | func (c *ListCommand) Exec(in io.Reader, out io.Writer) error {
function NewListCommand (line 19) | func NewListCommand(parent argparser.Registerer, g *global.Data) *ListCo...
FILE: pkg/commands/alias/logging/bigquery/root.go
type RootCommand (line 12) | type RootCommand struct
method Exec (line 29) | func (c *RootCommand) Exec(_ io.Reader, _ io.Writer) error {
constant CommandName (line 18) | CommandName = "bigquery"
function NewRootCommand (line 21) | func NewRootCommand(parent argparser.Registerer, g *global.Data) *RootCo...
FILE: pkg/commands/alias/logging/bigquery/update.go
type UpdateCommand (line 14) | type UpdateCommand struct
method Exec (line 26) | func (c *UpdateCommand) Exec(in io.Reader, out io.Writer) error {
function NewUpdateCommand (line 19) | func NewUpdateCommand(parent argparser.Registerer, g *global.Data) *Upda...
FILE: pkg/commands/alias/logging/cloudfiles/create.go
type CreateCommand (line 14) | type CreateCommand struct
method Exec (line 26) | func (c *CreateCommand) Exec(in io.Reader, out io.Writer) error {
function NewCreateCommand (line 19) | func NewCreateCommand(parent argparser.Registerer, g *global.Data) *Crea...
FILE: pkg/commands/alias/logging/cloudfiles/delete.go
type DeleteCommand (line 14) | type DeleteCommand struct
method Exec (line 26) | func (c *DeleteCommand) Exec(in io.Reader, out io.Writer) error {
function NewDeleteCommand (line 19) | func NewDeleteCommand(parent argparser.Registerer, g *global.Data) *Dele...
FILE: pkg/commands/alias/logging/cloudfiles/describe.go
type DescribeCommand (line 14) | type DescribeCommand struct
method Exec (line 26) | func (c *DescribeCommand) Exec(in io.Reader, out io.Writer) error {
function NewDescribeCommand (line 19) | func NewDescribeCommand(parent argparser.Registerer, g *global.Data) *De...
FILE: pkg/commands/alias/logging/cloudfiles/list.go
type ListCommand (line 14) | type ListCommand struct
method Exec (line 26) | func (c *ListCommand) Exec(in io.Reader, out io.Writer) error {
function NewListCommand (line 19) | func NewListCommand(parent argparser.Registerer, g *global.Data) *ListCo...
FILE: pkg/commands/alias/logging/cloudfiles/root.go
type RootCommand (line 12) | type RootCommand struct
method Exec (line 29) | func (c *RootCommand) Exec(_ io.Reader, _ io.Writer) error {
constant CommandName (line 18) | CommandName = "cloudfiles"
function NewRootCommand (line 21) | func NewRootCommand(parent argparser.Registerer, g *global.Data) *RootCo...
FILE: pkg/commands/alias/logging/cloudfiles/update.go
type UpdateCommand (line 14) | type UpdateCommand struct
method Exec (line 26) | func (c *UpdateCommand) Exec(in io.Reader, out io.Writer) error {
function NewUpdateCommand (line 19) | func NewUpdateCommand(parent argparser.Registerer, g *global.Data) *Upda...
FILE: pkg/commands/alias/logging/datadog/create.go
type CreateCommand (line 14) | type CreateCommand struct
method Exec (line 26) | func (c *CreateCommand) Exec(in io.Reader, out io.Writer) error {
function NewCreateCommand (line 19) | func NewCreateCommand(parent argparser.Registerer, g *global.Data) *Crea...
FILE: pkg/commands/alias/logging/datadog/delete.go
type DeleteCommand (line 14) | type DeleteCommand struct
method Exec (line 26) | func (c *DeleteCommand) Exec(in io.Reader, out io.Writer) error {
function NewDeleteCommand (line 19) | func NewDeleteCommand(parent argparser.Registerer, g *global.Data) *Dele...
FILE: pkg/commands/alias/logging/datadog/describe.go
type DescribeCommand (line 14) | type DescribeCommand struct
method Exec (line 26) | func (c *DescribeCommand) Exec(in io.Reader, out io.Writer) error {
function NewDescribeCommand (line 19) | func NewDescribeCommand(parent argparser.Registerer, g *global.Data) *De...
FILE: pkg/commands/alias/logging/datadog/list.go
type ListCommand (line 14) | type ListCommand struct
method Exec (line 26) | func (c *ListCommand) Exec(in io.Reader, out io.Writer) error {
function NewListCommand (line 19) | func NewListCommand(parent argparser.Registerer, g *global.Data) *ListCo...
FILE: pkg/commands/alias/logging/datadog/root.go
type RootCommand (line 12) | type RootCommand struct
method Exec (line 29) | func (c *RootCommand) Exec(_ io.Reader, _ io.Writer) error {
constant CommandName (line 18) | CommandName = "datadog"
function NewRootCommand (line 21) | func NewRootCommand(parent argparser.Registerer, g *global.Data) *RootCo...
FILE: pkg/commands/alias/logging/datadog/update.go
type UpdateCommand (line 14) | type UpdateCommand struct
method Exec (line 26) | func (c *UpdateCommand) Exec(in io.Reader, out io.Writer) error {
function NewUpdateCommand (line 19) | func NewUpdateCommand(parent argparser.Registerer, g *global.Data) *Upda...
FILE: pkg/commands/alias/logging/digitalocean/create.go
type CreateCommand (line 14) | type CreateCommand struct
method Exec (line 26) | func (c *CreateCommand) Exec(in io.Reader, out io.Writer) error {
function NewCreateCommand (line 19) | func NewCreateCommand(parent argparser.Registerer, g *global.Data) *Crea...
FILE: pkg/commands/alias/logging/digitalocean/delete.go
type DeleteCommand (line 14) | type DeleteCommand struct
method Exec (line 26) | func (c *DeleteCommand) Exec(in io.Reader, out io.Writer) error {
function NewDeleteCommand (line 19) | func NewDeleteCommand(parent argparser.Registerer, g *global.Data) *Dele...
FILE: pkg/commands/alias/logging/digitalocean/describe.go
type DescribeCommand (line 14) | type DescribeCommand struct
method Exec (line 26) | func (c *DescribeCommand) Exec(in io.Reader, out io.Writer) error {
function NewDescribeCommand (line 19) | func NewDescribeCommand(parent argparser.Registerer, g *global.Data) *De...
FILE: pkg/commands/alias/logging/digitalocean/list.go
type ListCommand (line 14) | type ListCommand struct
method Exec (line 26) | func (c *ListCommand) Exec(in io.Reader, out io.Writer) error {
function NewListCommand (line 19) | func NewListCommand(parent argparser.Registerer, g *global.Data) *ListCo...
FILE: pkg/commands/alias/logging/digitalocean/root.go
type RootCommand (line 12) | type RootCommand struct
method Exec (line 29) | func (c *RootCommand) Exec(_ io.Reader, _ io.Writer) error {
constant CommandName (line 18) | CommandName = "digitalocean"
function NewRootCommand (line 21) | func NewRootCommand(parent argparser.Registerer, g *global.Data) *RootCo...
FILE: pkg/commands/alias/logging/digitalocean/update.go
type UpdateCommand (line 14) | type UpdateCommand struct
method Exec (line 26) | func (c *UpdateCommand) Exec(in io.Reader, out io.Writer) error {
function NewUpdateCommand (line 19) | func NewUpdateCommand(parent argparser.Registerer, g *global.Data) *Upda...
FILE: pkg/commands/alias/logging/elasticsearch/create.go
type CreateCommand (line 14) | type CreateCommand struct
method Exec (line 26) | func (c *CreateCommand) Exec(in io.Reader, out io.Writer) error {
function NewCreateCommand (line 19) | func NewCreateCommand(parent argparser.Registerer, g *global.Data) *Crea...
FILE: pkg/commands/alias/logging/elasticsearch/delete.go
type DeleteCommand (line 14) | type DeleteCommand struct
method Exec (line 26) | func (c *DeleteCommand) Exec(in io.Reader, out io.Writer) error {
function NewDeleteCommand (line 19) | func NewDeleteCommand(parent argparser.Registerer, g *global.Data) *Dele...
FILE: pkg/commands/alias/logging/elasticsearch/describe.go
type DescribeCommand (line 14) | type DescribeCommand struct
method Exec (line 26) | func (c *DescribeCommand) Exec(in io.Reader, out io.Writer) error {
function NewDescribeCommand (line 19) | func NewDescribeCommand(parent argparser.Registerer, g *global.Data) *De...
FILE: pkg/commands/alias/logging/elasticsearch/list.go
type ListCommand (line 14) | type ListCommand struct
method Exec (line 26) | func (c *ListCommand) Exec(in io.Reader, out io.Writer) error {
function NewListCommand (line 19) | func NewListCommand(parent argparser.Registerer, g *global.Data) *ListCo...
FILE: pkg/commands/alias/logging/elasticsearch/root.go
type RootCommand (line 12) | type RootCommand struct
method Exec (line 29) | func (c *RootCommand) Exec(_ io.Reader, _ io.Writer) error {
constant CommandName (line 18) | CommandName = "elasticsearch"
function NewRootCommand (line 21) | func NewRootCommand(parent argparser.Registerer, g *global.Data) *RootCo...
FILE: pkg/commands/alias/logging/elasticsearch/update.go
type UpdateCommand (line 14) | type UpdateCommand struct
method Exec (line 26) | func (c *UpdateCommand) Exec(in io.Reader, out io.Writer) error {
function NewUpdateCommand (line 19) | func NewUpdateCommand(parent argparser.Registerer, g *global.Data) *Upda...
FILE: pkg/commands/alias/logging/ftp/create.go
type CreateCommand (line 14) | type CreateCommand struct
method Exec (line 26) | func (c *CreateCommand) Exec(in io.Reader, out io.Writer) error {
function NewCreateCommand (line 19) | func NewCreateCommand(parent argparser.Registerer, g *global.Data) *Crea...
FILE: pkg/commands/alias/logging/ftp/delete.go
type DeleteCommand (line 14) | type DeleteCommand struct
method Exec (line 26) | func (c *DeleteCommand) Exec(in io.Reader, out io.Writer) error {
function NewDeleteCommand (line 19) | func NewDeleteCommand(parent argparser.Registerer, g *global.Data) *Dele...
FILE: pkg/commands/alias/logging/ftp/describe.go
type DescribeCommand (line 14) | type DescribeCommand struct
method Exec (line 26) | func (c *DescribeCommand) Exec(in io.Reader, out io.Writer) error {
function NewDescribeCommand (line 19) | func NewDescribeCommand(parent argparser.Registerer, g *global.Data) *De...
FILE: pkg/commands/alias/logging/ftp/list.go
type ListCommand (line 14) | type ListCommand struct
method Exec (line 26) | func (c *ListCommand) Exec(in io.Reader, out io.Writer) error {
function NewListCommand (line 19) | func NewListCommand(parent argparser.Registerer, g *global.Data) *ListCo...
FILE: pkg/commands/alias/logging/ftp/root.go
type RootCommand (line 12) | type RootCommand struct
method Exec (line 29) | func (c *RootCommand) Exec(_ io.Reader, _ io.Writer) error {
constant CommandName (line 18) | CommandName = "ftp"
function NewRootCommand (line 21) | func NewRootCommand(parent argparser.Registerer, g *global.Data) *RootCo...
FILE: pkg/commands/alias/logging/ftp/update.go
type UpdateCommand (line 14) | type UpdateCommand struct
method Exec (line 26) | func (c *UpdateCommand) Exec(in io.Reader, out io.Writer) error {
function NewUpdateCommand (line 19) | func NewUpdateCommand(parent argparser.Registerer, g *global.Data) *Upda...
FILE: pkg/commands/alias/logging/gcs/create.go
type CreateCommand (line 14) | type CreateCommand struct
method Exec (line 26) | func (c *CreateCommand) Exec(in io.Reader, out io.Writer) error {
function NewCreateCommand (line 19) | func NewCreateCommand(parent argparser.Registerer, g *global.Data) *Crea...
FILE: pkg/commands/alias/logging/gcs/delete.go
type DeleteCommand (line 14) | type DeleteCommand struct
method Exec (line 26) | func (c *DeleteCommand) Exec(in io.Reader, out io.Writer) error {
function NewDeleteCommand (line 19) | func NewDeleteCommand(parent argparser.Registerer, g *global.Data) *Dele...
FILE: pkg/commands/alias/logging/gcs/describe.go
type DescribeCommand (line 14) | type DescribeCommand struct
method Exec (line 26) | func (c *DescribeCommand) Exec(in io.Reader, out io.Writer) error {
function NewDescribeCommand (line 19) | func NewDescribeCommand(parent argparser.Registerer, g *global.Data) *De...
FILE: pkg/commands/alias/logging/gcs/list.go
type ListCommand (line 14) | type ListCommand struct
method Exec (line 26) | func (c *ListCommand) Exec(in io.Reader, out io.Writer) error {
function NewListCommand (line 19) | func NewListCommand(parent argparser.Registerer, g *global.Data) *ListCo...
FILE: pkg/commands/alias/logging/gcs/root.go
type RootCommand (line 12) | type RootCommand struct
method Exec (line 29) | func (c *RootCommand) Exec(_ io.Reader, _ io.Writer) error {
constant CommandName (line 18) | CommandName = "gcs"
function NewRootCommand (line 21) | func NewRootCommand(parent argparser.Registerer, g *global.Data) *RootCo...
FILE: pkg/commands/alias/logging/gcs/update.go
type UpdateCommand (line 14) | type UpdateCommand struct
method Exec (line 26) | func (c *UpdateCommand) Exec(in io.Reader, out io.Writer) error {
function NewUpdateCommand (line 19) | func NewUpdateCommand(parent argparser.Registerer, g *global.Data) *Upda...
FILE: pkg/commands/alias/logging/googlepubsub/create.go
type CreateCommand (line 14) | type CreateCommand struct
method Exec (line 26) | func (c *CreateCommand) Exec(in io.Reader, out io.Writer) error {
function NewCreateCommand (line 19) | func NewCreateCommand(parent argparser.Registerer, g *global.Data) *Crea...
FILE: pkg/commands/alias/logging/googlepubsub/delete.go
type DeleteCommand (line 14) | type DeleteCommand struct
method Exec (line 26) | func (c *DeleteCommand) Exec(in io.Reader, out io.Writer) error {
function NewDeleteCommand (line 19) | func NewDeleteCommand(parent argparser.Registerer, g *global.Data) *Dele...
FILE: pkg/commands/alias/logging/googlepubsub/describe.go
type DescribeCommand (line 14) | type DescribeCommand struct
method Exec (line 26) | func (c *DescribeCommand) Exec(in io.Reader, out io.Writer) error {
function NewDescribeCommand (line 19) | func NewDescribeCommand(parent argparser.Registerer, g *global.Data) *De...
FILE: pkg/commands/alias/logging/googlepubsub/list.go
type ListCommand (line 14) | type ListCommand struct
method Exec (line 26) | func (c *ListCommand) Exec(in io.Reader, out io.Writer) error {
function NewListCommand (line 19) | func NewListCommand(parent argparser.Registerer, g *global.Data) *ListCo...
FILE: pkg/commands/alias/logging/googlepubsub/root.go
type RootCommand (line 12) | type RootCommand struct
method Exec (line 29) | func (c *RootCommand) Exec(_ io.Reader, _ io.Writer) error {
constant CommandName (line 18) | CommandName = "googlepubsub"
function NewRootCommand (line 21) | func NewRootCommand(parent argparser.Registerer, g *global.Data) *RootCo...
FILE: pkg/commands/alias/logging/googlepubsub/update.go
type UpdateCommand (line 14) | type UpdateCommand struct
method Exec (line 26) | func (c *UpdateCommand) Exec(in io.Reader, out io.Writer) error {
function NewUpdateCommand (line 19) | func NewUpdateCommand(parent argparser.Registerer, g *global.Data) *Upda...
FILE: pkg/commands/alias/logging/grafanacloudlogs/create.go
type CreateCommand (line 14) | type CreateCommand struct
method Exec (line 26) | func (c *CreateCommand) Exec(in io.Reader, out io.Writer) error {
function NewCreateCommand (line 19) | func NewCreateCommand(parent argparser.Registerer, g *global.Data) *Crea...
FILE: pkg/commands/alias/logging/grafanacloudlogs/delete.go
type DeleteCommand (line 14) | type DeleteCommand struct
method Exec (line 26) | func (c *DeleteCommand) Exec(in io.Reader, out io.Writer) error {
function NewDeleteCommand (line 19) | func NewDeleteCommand(parent argparser.Registerer, g *global.Data) *Dele...
FILE: pkg/commands/alias/logging/grafanacloudlogs/describe.go
type DescribeCommand (line 14) | type DescribeCommand struct
method Exec (line 26) | func (c *DescribeCommand) Exec(in io.Reader, out io.Writer) error {
function NewDescribeCommand (line 19) | func NewDescribeCommand(parent argparser.Registerer, g *global.Data) *De...
FILE: pkg/commands/alias/logging/grafanacloudlogs/list.go
type ListCommand (line 14) | type ListCommand struct
method Exec (line 26) | func (c *ListCommand) Exec(in io.Reader, out io.Writer) error {
function NewListCommand (line 19) | func NewListCommand(parent argparser.Registerer, g *global.Data) *ListCo...
FILE: pkg/commands/alias/logging/grafanacloudlogs/root.go
type RootCommand (line 12) | type RootCommand struct
method Exec (line 29) | func (c *RootCommand) Exec(_ io.Reader, _ io.Writer) error {
constant CommandName (line 18) | CommandName = "grafanacloudlogs"
function NewRootCommand (line 21) | func NewRootCommand(parent argparser.Registerer, g *global.Data) *RootCo...
FILE: pkg/commands/alias/logging/grafanacloudlogs/update.go
type UpdateCommand (line 14) | type UpdateCommand struct
method Exec (line 26) | func (c *UpdateCommand) Exec(in io.Reader, out io.Writer) error {
function NewUpdateCommand (line 19) | func NewUpdateCommand(parent argparser.Registerer, g *global.Data) *Upda...
FILE: pkg/commands/alias/logging/heroku/create.go
type CreateCommand (line 14) | type CreateCommand struct
method Exec (line 26) | func (c *CreateCommand) Exec(in io.Reader, out io.Writer) error {
function NewCreateCommand (line 19) | func NewCreateCommand(parent argparser.Registerer, g *global.Data) *Crea...
FILE: pkg/commands/alias/logging/heroku/delete.go
type DeleteCommand (line 14) | type DeleteCommand struct
method Exec (line 26) | func (c *DeleteCommand) Exec(in io.Reader, out io.Writer) error {
function NewDeleteCommand (line 19) | func NewDeleteCommand(parent argparser.Registerer, g *global.Data) *Dele...
FILE: pkg/commands/alias/logging/heroku/describe.go
type DescribeCommand (line 14) | type DescribeCommand struct
method Exec (line 26) | func (c *DescribeCommand) Exec(in io.Reader, out io.Writer) error {
function NewDescribeCommand (line 19) | func NewDescribeCommand(parent argparser.Registerer, g *global.Data) *De...
FILE: pkg/commands/alias/logging/heroku/list.go
type ListCommand (line 14) | type ListCommand struct
method Exec (line 26) | func (c *ListCommand) Exec(in io.Reader, out io.Writer) error {
function NewListCommand (line 19) | func NewListCommand(parent argparser.Registerer, g *global.Data) *ListCo...
FILE: pkg/commands/alias/logging/heroku/root.go
type RootCommand (line 12) | type RootCommand struct
method Exec (line 29) | func (c *RootCommand) Exec(_ io.Reader, _ io.Writer) error {
constant CommandName (line 18) | CommandName = "heroku"
function NewRootCommand (line 21) | func NewRootCommand(parent argparser.Registerer, g *global.Data) *RootCo...
FILE: pkg/commands/alias/logging/heroku/update.go
type UpdateCommand (line 14) | type UpdateCommand struct
method Exec (line 26) | func (c *UpdateCommand) Exec(in io.Reader, out io.Writer) error {
function NewUpdateCommand (line 19) | func NewUpdateCommand(parent argparser.Registerer, g *global.Data) *Upda...
FILE: pkg/commands/alias/logging/honeycomb/create.go
type CreateCommand (line 14) | type CreateCommand struct
method Exec (line 26) | func (c *CreateCommand) Exec(in io.Reader, out io.Writer) error {
function NewCreateCommand (line 19) | func NewCreateCommand(parent argparser.Registerer, g *global.Data) *Crea...
FILE: pkg/commands/alias/logging/honeycomb/delete.go
type DeleteCommand (line 14) | type DeleteCommand struct
method Exec (line 26) | func (c *DeleteCommand) Exec(in io.Reader, out io.Writer) error {
function NewDeleteCommand (line 19) | func NewDeleteCommand(parent argparser.Registerer, g *global.Data) *Dele...
FILE: pkg/commands/alias/logging/honeycomb/describe.go
type DescribeCommand (line 14) | type DescribeCommand struct
method Exec (line 26) | func (c *DescribeCommand) Exec(in io.Reader, out io.Writer) error {
function NewDescribeCommand (line 19) | func NewDescribeCommand(parent argparser.Registerer, g *global.Data) *De...
FILE: pkg/commands/alias/logging/honeycomb/list.go
type ListCommand (line 14) | type ListCommand struct
method Exec (line 26) | func (c *ListCommand) Exec(in io.Reader, out io.Writer) error {
function NewListCommand (line 19) | func NewListCommand(parent argparser.Registerer, g *global.Data) *ListCo...
FILE: pkg/commands/alias/logging/honeycomb/root.go
type RootCommand (line 12) | type RootCommand struct
method Exec (line 29) | func (c *RootCommand) Exec(_ io.Reader, _ io.Writer) error {
constant CommandName (line 18) | CommandName = "honeycomb"
function NewRootCommand (line 21) | func NewRootCommand(parent argparser.Registerer, g *global.Data) *RootCo...
FILE: pkg/commands/alias/logging/honeycomb/update.go
type UpdateCommand (line 14) | type UpdateCommand struct
method Exec (line 26) | func (c *UpdateCommand) Exec(in io.Reader, out io.Writer) error {
function NewUpdateCommand (line 19) | func NewUpdateCommand(parent argparser.Registerer, g *global.Data) *Upda...
FILE: pkg/commands/alias/logging/https/create.go
type CreateCommand (line 14) | type CreateCommand struct
method Exec (line 26) | func (c *CreateCommand) Exec(in io.Reader, out io.Writer) error {
function NewCreateCommand (line 19) | func NewCreateCommand(parent argparser.Registerer, g *global.Data) *Crea...
FILE: pkg/commands/alias/logging/https/delete.go
type DeleteCommand (line 14) | type DeleteCommand struct
method Exec (line 26) | func (c *DeleteCommand) Exec(in io.Reader, out io.Writer) error {
function NewDeleteCommand (line 19) | func NewDeleteCommand(parent argparser.Registerer, g *global.Data) *Dele...
FILE: pkg/commands/alias/logging/https/describe.go
type DescribeCommand (line 14) | type DescribeCommand struct
method Exec (line 26) | func (c *DescribeCommand) Exec(in io.Reader, out io.Writer) error {
function NewDescribeCommand (line 19) | func NewDescribeCommand(parent argparser.Registerer, g *global.Data) *De...
FILE: pkg/commands/alias/logging/https/list.go
type ListCommand (line 14) | type ListCommand struct
method Exec (line 26) | func (c *ListCommand) Exec(in io.Reader, out io.Writer) error {
function NewListCommand (line 19) | func NewListCommand(parent argparser.Registerer, g *global.Data) *ListCo...
FILE: pkg/commands/alias/logging/https/root.go
type RootCommand (line 12) | type RootCommand struct
method Exec (line 29) | func (c *RootCommand) Exec(_ io.Reader, _ io.Writer) error {
constant CommandName (line 18) | CommandName = "https"
function NewRootCommand (line 21) | func NewRootCommand(parent argparser.Registerer, g *global.Data) *RootCo...
FILE: pkg/commands/alias/logging/https/update.go
type UpdateCommand (line 14) | type UpdateCommand struct
method Exec (line 26) | func (c *UpdateCommand) Exec(in io.Reader, out io.Writer) error {
function NewUpdateCommand (line 19) | func NewUpdateCommand(parent argparser.Registerer, g *global.Data) *Upda...
FILE: pkg/commands/alias/logging/kafka/create.go
type CreateCommand (line 14) | type CreateCommand struct
method Exec (line 26) | func (c *CreateCommand) Exec(in io.Reader, out io.Writer) error {
function NewCreateCommand (line 19) | func NewCreateCommand(parent argparser.Registerer, g *global.Data) *Crea...
FILE: pkg/commands/alias/logging/kafka/delete.go
type DeleteCommand (line 14) | type DeleteCommand struct
method Exec (line 26) | func (c *DeleteCommand) Exec(in io.Reader, out io.Writer) error {
function NewDeleteCommand (line 19) | func NewDeleteCommand(parent argparser.Registerer, g *global.Data) *Dele...
FILE: pkg/commands/alias/logging/kafka/describe.go
type DescribeCommand (line 14) | type DescribeCommand struct
method Exec (line 26) | func (c *DescribeCommand) Exec(in io.Reader, out io.Writer) error {
function NewDescribeCommand (line 19) | func NewDescribeCommand(parent argparser.Registerer, g *global.Data) *De...
FILE: pkg/commands/alias/logging/kafka/list.go
type ListCommand (line 14) | type ListCommand struct
method Exec (line 26) | func (c *ListCommand) Exec(in io.Reader, out io.Writer) error {
function NewListCommand (line 19) | func NewListCommand(parent argparser.Registerer, g *global.Data) *ListCo...
FILE: pkg/commands/alias/logging/kafka/root.go
type RootCommand (line 12) | type RootCommand struct
method Exec (line 29) | func (c *RootCommand) Exec(_ io.Reader, _ io.Writer) error {
constant CommandName (line 18) | CommandName = "kafka"
function NewRootCommand (line 21) | func NewRootCommand(parent argparser.Registerer, g *global.Data) *RootCo...
FILE: pkg/commands/alias/logging/kafka/update.go
type UpdateCommand (line 14) | type UpdateCommand struct
method Exec (line 26) | func (c *UpdateCommand) Exec(in io.Reader, out io.Writer) error {
function NewUpdateCommand (line 19) | func NewUpdateCommand(parent argparser.Registerer, g *global.Data) *Upda...
FILE: pkg/commands/alias/logging/kinesis/create.go
type CreateCommand (line 14) | type CreateCommand struct
method Exec (line 26) | func (c *CreateCommand) Exec(in io.Reader, out io.Writer) error {
function NewCreateCommand (line 19) | func NewCreateCommand(parent argparser.Registerer, g *global.Data) *Crea...
FILE: pkg/commands/alias/logging/kinesis/delete.go
type DeleteCommand (line 14) | type DeleteCommand struct
method Exec (line 26) | func (c *DeleteCommand) Exec(in io.Reader, out io.Writer) error {
function NewDeleteCommand (line 19) | func NewDeleteCommand(parent argparser.Registerer, g *global.Data) *Dele...
FILE: pkg/commands/alias/logging/kinesis/describe.go
type DescribeCommand (line 14) | type DescribeCommand struct
method Exec (line 26) | func (c *DescribeCommand) Exec(in io.Reader, out io.Writer) error {
function NewDescribeCommand (line 19) | func NewDescribeCommand(parent argparser.Registerer, g *global.Data) *De...
FILE: pkg/commands/alias/logging/kinesis/list.go
type ListCommand (line 14) | type ListCommand struct
method Exec (line 26) | func (c *ListCommand) Exec(in io.Reader, out io.Writer) error {
function NewListCommand (line 19) | func NewListCommand(parent argparser.Registerer, g *global.Data) *ListCo...
FILE: pkg/commands/alias/logging/kinesis/root.go
type RootCommand (line 12) | type RootCommand struct
method Exec (line 29) | func (c *RootCommand) Exec(_ io.Reader, _ io.Writer) error {
constant CommandName (line 18) | CommandName = "kinesis"
function NewRootCommand (line 21) | func NewRootCommand(parent argparser.Registerer, g *global.Data) *RootCo...
FILE: pkg/commands/alias/logging/kinesis/update.go
type UpdateCommand (line 14) | type UpdateCommand struct
method Exec (line 26) | func (c *UpdateCommand) Exec(in io.Reader, out io.Writer) error {
function NewUpdateCommand (line 19) | func NewUpdateCommand(parent argparser.Registerer, g *global.Data) *Upda...
FILE: pkg/commands/alias/logging/loggly/create.go
type CreateCommand (line 14) | type CreateCommand struct
method Exec (line 26) | func (c *CreateCommand) Exec(in io.Reader, out io.Writer) error {
function NewCreateCommand (line 19) | func NewCreateCommand(parent argparser.Registerer, g *global.Data) *Crea...
FILE: pkg/commands/alias/logging/loggly/delete.go
type DeleteCommand (line 14) | type DeleteCommand struct
method Exec (line 26) | func (c *DeleteCommand) Exec(in io.Reader, out io.Writer) error {
function NewDeleteCommand (line 19) | func NewDeleteCommand(parent argparser.Registerer, g *global.Data) *Dele...
FILE: pkg/commands/alias/logging/loggly/describe.go
type DescribeCommand (line 14) | type DescribeCommand struct
method Exec (line 26) | func (c *DescribeCommand) Exec(in io.Reader, out io.Writer) error {
function NewDescribeCommand (line 19) | func NewDescribeCommand(parent argparser.Registerer, g *global.Data) *De...
FILE: pkg/commands/alias/logging/loggly/list.go
type ListCommand (line 14) | type ListCommand struct
method Exec (line 26) | func (c *ListCommand) Exec(in io.Reader, out io.Writer) error {
function NewListCommand (line 19) | func NewListCommand(parent argparser.Registerer, g *global.Data) *ListCo...
FILE: pkg/commands/alias/logging/loggly/root.go
type RootCommand (line 12) | type RootCommand struct
method Exec (line 29) | func (c *RootCommand) Exec(_ io.Reader, _ io.Writer) error {
constant CommandName (line 18) | CommandName = "loggly"
function NewRootCommand (line 21) | func NewRootCommand(parent argparser.Registerer, g *global.Data) *RootCo...
FILE: pkg/commands/alias/logging/loggly/update.go
type UpdateCommand (line 14) | type UpdateCommand struct
method Exec (line 26) | func (c *UpdateCommand) Exec(in io.Reader, out io.Writer) error {
function NewUpdateCommand (line 19) | func NewUpdateCommand(parent argparser.Registerer, g *global.Data) *Upda...
FILE: pkg/commands/alias/logging/logshuttle/create.go
type CreateCommand (line 14) | type CreateCommand struct
method Exec (line 26) | func (c *CreateCommand) Exec(in io.Reader, out io.Writer) error {
function NewCreateCommand (line 19) | func NewCreateCommand(parent argparser.Registerer, g *global.Data) *Crea...
FILE: pkg/commands/alias/logging/logshuttle/delete.go
type DeleteCommand (line 14) | type DeleteCommand struct
method Exec (line 26) | func (c *DeleteCommand) Exec(in io.Reader, out io.Writer) error {
function NewDeleteCommand (line 19) | func NewDeleteCommand(parent argparser.Registerer, g *global.Data) *Dele...
FILE: pkg/commands/alias/logging/logshuttle/describe.go
type DescribeCommand (line 14) | type DescribeCommand struct
method Exec (line 26) | func (c *DescribeCommand) Exec(in io.Reader, out io.Writer) error {
function NewDescribeCommand (line 19) | func NewDescribeCommand(parent argparser.Registerer, g *global.Data) *De...
FILE: pkg/commands/alias/logging/logshuttle/list.go
type ListCommand (line 14) | type ListCommand struct
method Exec (line 26) | func (c *ListCommand) Exec(in io.Reader, out io.Writer) error {
function NewListCommand (line 19) | func NewListCommand(parent argparser.Registerer, g *global.Data) *ListCo...
FILE: pkg/commands/alias/logging/logshuttle/root.go
type RootCommand (line 12) | type RootCommand struct
method Exec (line 29) | func (c *RootCommand) Exec(_ io.Reader, _ io.Writer) error {
constant CommandName (line 18) | CommandName = "logshuttle"
function NewRootCommand (line 21) | func NewRootCommand(parent argparser.Registerer, g *global.Data) *RootCo...
FILE: pkg/commands/alias/logging/logshuttle/update.go
type UpdateCommand (line 14) | type UpdateCommand struct
method Exec (line 26) | func (c *UpdateCommand) Exec(in io.Reader, out io.Writer) error {
function NewUpdateCommand (line 19) | func NewUpdateCommand(parent argparser.Registerer, g *global.Data) *Upda...
FILE: pkg/commands/alias/logging/newrelic/create.go
type CreateCommand (line 14) | type CreateCommand struct
method Exec (line 26) | func (c *CreateCommand) Exec(in io.Reader, out io.Writer) error {
function NewCreateCommand (line 19) | func NewCreateCommand(parent argparser.Registerer, g *global.Data) *Crea...
FILE: pkg/commands/alias/logging/newrelic/delete.go
type DeleteCommand (line 14) | type DeleteCommand struct
method Exec (line 26) | func (c *DeleteCommand) Exec(in io.Reader, out io.Writer) error {
function NewDeleteCommand (line 19) | func NewDeleteCommand(parent argparser.Registerer, g *global.Data) *Dele...
FILE: pkg/commands/alias/logging/newrelic/describe.go
type DescribeCommand (line 14) | type DescribeCommand struct
method Exec (line 26) | func (c *DescribeCommand) Exec(in io.Reader, out io.Writer) error {
function NewDescribeCommand (line 19) | func NewDescribeCommand(parent argparser.Registerer, g *global.Data) *De...
FILE: pkg/commands/alias/logging/newrelic/list.go
type ListCommand (line 14) | type ListCommand struct
method Exec (line 26) | func (c *ListCommand) Exec(in io.Reader, out io.Writer) error {
function NewListCommand (line 19) | func NewListCommand(parent argparser.Registerer, g *global.Data) *ListCo...
FILE: pkg/commands/alias/logging/newrelic/root.go
type RootCommand (line 12) | type RootCommand struct
method Exec (line 29) | func (c *RootCommand) Exec(_ io.Reader, _ io.Writer) error {
constant CommandName (line 18) | CommandName = "newrelic"
function NewRootCommand (line 21) | func NewRootCommand(parent argparser.Registerer, g *global.Data) *RootCo...
FILE: pkg/commands/alias/logging/newrelic/update.go
type UpdateCommand (line 14) | type UpdateCommand struct
method Exec (line 26) | func (c *UpdateCommand) Exec(in io.Reader, out io.Writer) error {
function NewUpdateCommand (line 19) | func NewUpdateCommand(parent argparser.Registerer, g *global.Data) *Upda...
FILE: pkg/commands/alias/logging/newrelicotlp/create.go
type CreateCommand (line 14) | type CreateCommand struct
method Exec (line 26) | func (c *CreateCommand) Exec(in io.Reader, out io.Writer) error {
function NewCreateCommand (line 19) | func NewCreateCommand(parent argparser.Registerer, g *global.Data) *Crea...
FILE: pkg/commands/alias/logging/newrelicotlp/delete.go
type DeleteCommand (line 14) | type DeleteCommand struct
method Exec (line 26) | func (c *DeleteCommand) Exec(in io.Reader, out io.Writer) error {
function NewDeleteCommand (line 19) | func NewDeleteCommand(parent argparser.Registerer, g *global.Data) *Dele...
FILE: pkg/commands/alias/logging/newrelicotlp/describe.go
type DescribeCommand (line 14) | type DescribeCommand struct
method Exec (line 26) | func (c *DescribeCommand) Exec(in io.Reader, out io.Writer) error {
function NewDescribeCommand (line 19) | func NewDescribeCommand(parent argparser.Registerer, g *global.Data) *De...
FILE: pkg/commands/alias/logging/newrelicotlp/list.go
type ListCommand (line 14) | type ListCommand struct
method Exec (line 26) | func (c *ListCommand) Exec(in io.Reader, out io.Writer) error {
function NewListCommand (line 19) | func NewListCommand(parent argparser.Registerer, g *global.Data) *ListCo...
FILE: pkg/commands/alias/logging/newrelicotlp/root.go
type RootCommand (line 12) | type RootCommand struct
method Exec (line 29) | func (c *RootCommand) Exec(_ io.Reader, _ io.Writer) error {
constant CommandName (line 18) | CommandName = "newrelicotlp"
function NewRootCommand (line 21) | func NewRootCommand(parent argparser.Registerer, g *global.Data) *RootCo...
FILE: pkg/commands/alias/logging/newrelicotlp/update.go
type UpdateCommand (line 14) | type UpdateCommand struct
method Exec (line 26) | func (c *UpdateCommand) Exec(in io.Reader, out io.Writer) error {
function NewUpdateCommand (line 19) | func NewUpdateCommand(parent argparser.Registerer, g *global.Data) *Upda...
FILE: pkg/commands/alias/logging/openstack/create.go
type CreateCommand (line 14) | type CreateCommand struct
method Exec (line 26) | func (c *CreateCommand) Exec(in io.Reader, out io.Writer) error {
function NewCreateCommand (line 19) | func NewCreateCommand(parent argparser.Registerer, g *global.Data) *Crea...
FILE: pkg/commands/alias/logging/openstack/delete.go
type DeleteCommand (line 14) | type DeleteCommand struct
method Exec (line 26) | func (c *DeleteCommand) Exec(in io.Reader, out io.Writer) error {
function NewDeleteCommand (line 19) | func NewDeleteCommand(parent argparser.Registerer, g *global.Data) *Dele...
FILE: pkg/commands/alias/logging/openstack/describe.go
type DescribeCommand (line 14) | type DescribeCommand struct
method Exec (line 26) | func (c *DescribeCommand) Exec(in io.Reader, out io.Writer) error {
function NewDescribeCommand (line 19) | func NewDescribeCommand(parent argparser.Registerer, g *global.Data) *De...
FILE: pkg/commands/alias/logging/openstack/list.go
type ListCommand (line 14) | type ListCommand struct
method Exec (line 26) | func (c *ListCommand) Exec(in io.Reader, out io.Writer) error {
function NewListCommand (line 19) | func NewListCommand(parent argparser.Registerer, g *global.Data) *ListCo...
FILE: pkg/commands/alias/logging/openstack/root.go
type RootCommand (line 12) | type RootCommand struct
method Exec (line 29) | func (c *RootCommand) Exec(_ io.Reader, _ io.Writer) error {
constant CommandName (line 18) | CommandName = "openstack"
function NewRootCommand (line 21) | func NewRootCommand(parent argparser.Registerer, g *global.Data) *RootCo...
FILE: pkg/commands/alias/logging/openstack/update.go
type UpdateCommand (line 14) | type UpdateCommand struct
method Exec (line 26) | func (c *UpdateCommand) Exec(in io.Reader, out io.Writer) error {
function NewUpdateCommand (line 19) | func NewUpdateCommand(parent argparser.Registerer, g *global.Data) *Upda...
FILE: pkg/commands/alias/logging/papertrail/create.go
type CreateCommand (line 14) | type CreateCommand struct
method Exec (line 26) | func (c *CreateCommand) Exec(in io.Reader, out io.Writer) error {
function NewCreateCommand (line 19) | func NewCreateCommand(parent argparser.Registerer, g *global.Data) *Crea...
FILE: pkg/commands/alias/logging/papertrail/delete.go
type DeleteCommand (line 14) | type DeleteCommand struct
method Exec (line 26) | func (c *DeleteCommand) Exec(in io.Reader, out io.Writer) error {
function NewDeleteCommand (line 19) | func NewDeleteCommand(parent argparser.Registerer, g *global.Data) *Dele...
FILE: pkg/commands/alias/logging/papertrail/describe.go
type DescribeCommand (line 14) | type DescribeCommand struct
method Exec (line 26) | func (c *DescribeCommand) Exec(in io.Reader, out io.Writer) error {
function NewDescribeCommand (line 19) | func NewDescribeCommand(parent argparser.Registerer, g *global.Data) *De...
FILE: pkg/commands/alias/logging/papertrail/list.go
type ListCommand (line 14) | type ListCommand struct
method Exec (line 26) | func (c *ListCommand) Exec(in io.Reader, out io.Writer) error {
function NewListCommand (line 19) | func NewListCommand(parent argparser.Registerer, g *global.Data) *ListCo...
FILE: pkg/commands/alias/logging/papertrail/root.go
type RootCommand (line 12) | type RootCommand struct
method Exec (line 29) | func (c *RootCommand) Exec(_ io.Reader, _ io.Writer) error {
constant CommandName (line 18) | CommandName = "papertrail"
function NewRootCommand (line 21) | func NewRootCommand(parent argparser.Registerer, g *global.Data) *RootCo...
FILE: pkg/commands/alias/logging/papertrail/update.go
type UpdateCommand (line 14) | type UpdateCommand struct
method Exec (line 26) | func (c *UpdateCommand) Exec(in io.Reader, out io.Writer) error {
function NewUpdateCommand (line 19) | func NewUpdateCommand(parent argparser.Registerer, g *global.Data) *Upda...
FILE: pkg/commands/alias/logging/root.go
type RootCommand (line 12) | type RootCommand struct
method Exec (line 29) | func (c *RootCommand) Exec(_ io.Reader, _ io.Writer) error {
constant CommandName (line 18) | CommandName = "logging"
function NewRootCommand (line 21) | func NewRootCommand(parent argparser.Registerer, g *global.Data) *RootCo...
FILE: pkg/commands/alias/logging/s3/create.go
type CreateCommand (line 14) | type CreateCommand struct
method Exec (line 26) | func (c *CreateCommand) Exec(in io.Reader, out io.Writer) error {
function NewCreateCommand (line 19) | func NewCreateCommand(parent argparser.Registerer, g *global.Data) *Crea...
FILE: pkg/commands/alias/logging/s3/delete.go
type DeleteCommand (line 14) | type DeleteCommand struct
method Exec (line 26) | func (c *DeleteCommand) Exec(in io.Reader, out io.Writer) error {
function NewDeleteCommand (line 19) | func NewDeleteCommand(parent argparser.Registerer, g *global.Data) *Dele...
FILE: pkg/commands/alias/logging/s3/describe.go
type DescribeCommand (line 14) | type DescribeCommand struct
method Exec (line 26) | func (c *DescribeCommand) Exec(in io.Reader, out io.Writer) error {
function NewDescribeCommand (line 19) | func NewDescribeCommand(parent argparser.Registerer, g *global.Data) *De...
FILE: pkg/commands/alias/logging/s3/list.go
type ListCommand (line 14) | type ListCommand struct
method Exec (line 26) | func (c *ListCommand) Exec(in io.Reader, out io.Writer) error {
function NewListCommand (line 19) | func NewListCommand(parent argparser.Registerer, g *global.Data) *ListCo...
FILE: pkg/commands/alias/logging/s3/root.go
type RootCommand (line 12) | type RootCommand struct
method Exec (line 29) | func (c *RootCommand) Exec(_ io.Reader, _ io.Writer) error {
constant CommandName (line 18) | CommandName = "s3"
function NewRootCommand (line 21) | func NewRootCommand(parent argparser.Registerer, g *global.Data) *RootCo...
FILE: pkg/commands/alias/logging/s3/update.go
type UpdateCommand (line 14) | type UpdateCommand struct
method Exec (line 26) | func (c *UpdateCommand) Exec(in io.Reader, out io.Writer) error {
function NewUpdateCommand (line 19) | func NewUpdateCommand(parent argparser.Registerer, g *global.Data) *Upda...
FILE: pkg/commands/alias/logging/scalyr/create.go
type CreateCommand (line 14) | type CreateCommand struct
method Exec (line 26) | func (c *CreateCommand) Exec(in io.Reader, out io.Writer) error {
function NewCreateCommand (line 19) | func NewCreateCommand(parent argparser.Registerer, g *global.Data) *Crea...
FILE: pkg/commands/alias/logging/scalyr/delete.go
type DeleteCommand (line 14) | type DeleteCommand struct
method Exec (line 26) | func (c *DeleteCommand) Exec(in io.Reader, out io.Writer) error {
function NewDeleteCommand (line 19) | func NewDeleteCommand(parent argparser.Registerer, g *global.Data) *Dele...
FILE: pkg/commands/alias/logging/scalyr/describe.go
type DescribeCommand (line 14) | type DescribeCommand struct
method Exec (line 26) | func (c *DescribeCommand) Exec(in io.Reader, out io.Writer) error {
function NewDescribeCommand (line 19) | func NewDescribeCommand(parent argparser.Registerer, g *global.Data) *De...
FILE: pkg/commands/alias/logging/scalyr/list.go
type ListCommand (line 14) | type ListCommand struct
method Exec (line 26) | func (c *ListCommand) Exec(in io.Reader, out io.Writer) error {
function NewListCommand (line 19) | func NewListCommand(parent argparser.Registerer, g *global.Data) *ListCo...
FILE: pkg/commands/alias/logging/scalyr/root.go
type RootCommand (line 12) | type RootCommand struct
method Exec (line 29) | func (c *RootCommand) Exec(_ io.Reader, _ io.Writer) error {
constant CommandName (line 18) | CommandName = "scalyr"
function NewRootCommand (line 21) | func NewRootCommand(parent argparser.Registerer, g *global.Data) *RootCo...
FILE: pkg/commands/alias/logging/scalyr/update.go
type UpdateCommand (line 14) | type UpdateCommand struct
method Exec (line 26) | func (c *UpdateCommand) Exec(in io.Reader, out io.Writer) error {
function NewUpdateCommand (line 19) | func NewUpdateCommand(parent argparser.Registerer, g *global.Data) *Upda...
FILE: pkg/commands/alias/logging/sftp/create.go
type CreateCommand (line 14) | type CreateCommand struct
method Exec (line 26) | func (c *CreateCommand) Exec(in io.Reader, out io.Writer) error {
function NewCreateCommand (line 19) | func NewCreateCommand(parent argparser.Registerer, g *global.Data) *Crea...
FILE: pkg/commands/alias/logging/sftp/delete.go
type DeleteCommand (line 14) | type DeleteCommand struct
method Exec (line 26) | func (c *DeleteCommand) Exec(in io.Reader, out io.Writer) error {
function NewDeleteCommand (line 19) | func NewDeleteCommand(parent argparser.Registerer, g *global.Data) *Dele...
FILE: pkg/commands/alias/logging/sftp/describe.go
type DescribeCommand (line 14) | type DescribeCommand struct
method Exec (line 26) | func (c *DescribeCommand) Exec(in io.Reader, out io.Writer) error {
function NewDescribeCommand (line 19) | func NewDescribeCommand(parent argparser.Registerer, g *global.Data) *De...
FILE: pkg/commands/alias/logging/sftp/list.go
type ListCommand (line 14) | type ListCommand struct
method Exec (line 26) | func (c *ListCommand) Exec(in io.Reader, out io.Writer) error {
function NewListCommand (line 19) | func NewListCommand(parent argparser.Registerer, g *global.Data) *ListCo...
FILE: pkg/commands/alias/logging/sftp/root.go
type RootCommand (line 12) | type RootCommand struct
method Exec (line 29) | func (c *RootCommand) Exec(_ io.Reader, _ io.Writer) error {
constant CommandName (line 18) | CommandName = "sftp"
function NewRootCommand (line 21) | func NewRootCommand(parent argparser.Registerer, g *global.Data) *RootCo...
FILE: pkg/commands/alias/logging/sftp/update.go
type UpdateCommand (line 14) | type UpdateCommand struct
method Exec (line 26) | func (c *UpdateCommand) Exec(in io.Reader, out io.Writer) error {
function NewUpdateCommand (line 19) | func NewUpdateCommand(parent argparser.Registerer, g *global.Data) *Upda...
FILE: pkg/commands/alias/logging/splunk/create.go
type CreateCommand (line 14) | type CreateCommand struct
method Exec (line 26) | func (c *CreateCommand) Exec(in io.Reader, out io.Writer) error {
function NewCreateCommand (line 19) | func NewCreateCommand(parent argparser.Registerer, g *global.Data) *Crea...
FILE: pkg/commands/alias/logging/splunk/delete.go
type DeleteCommand (line 14) | type DeleteCommand struct
method Exec (line 26) | func (c *DeleteCommand) Exec(in io.Reader, out io.Writer) error {
function NewDeleteCommand (line 19) | func NewDeleteCommand(parent argparser.Registerer, g *global.Data) *Dele...
FILE: pkg/commands/alias/logging/splunk/describe.go
type DescribeCommand (line 14) | type DescribeCommand struct
method Exec (line 26) | func (c *DescribeCommand) Exec(in io.Reader, out io.Writer) error {
function NewDescribeCommand (line 19) | func NewDescribeCommand(parent argparser.Registerer, g *global.Data) *De...
FILE: pkg/commands/alias/logging/splunk/list.go
type ListCommand (line 14) | type ListCommand struct
method Exec (line 26) | func (c *ListCommand) Exec(in io.Reader, out io.Writer) error {
function NewListCommand (line 19) | func NewListCommand(parent argparser.Registerer, g *global.Data) *ListCo...
FILE: pkg/commands/alias/logging/splunk/root.go
type RootCommand (line 12) | type RootCommand struct
method Exec (line 29) | func (c *RootCommand) Exec(_ io.Reader, _ io.Writer) error {
constant CommandName (line 18) | CommandName = "splunk"
function NewRootCommand (line 21) | func NewRootCommand(parent argparser.Registerer, g *global.Data) *RootCo...
FILE: pkg/commands/alias/logging/splunk/update.go
type UpdateCommand (line 14) | type UpdateCommand struct
method Exec (line 26) | func (c *UpdateCommand) Exec(in io.Reader, out io.Writer) error {
function NewUpdateCommand (line 19) | func NewUpdateCommand(parent argparser.Registerer, g *global.Data) *Upda...
FILE: pkg/commands/alias/logging/sumologic/create.go
type CreateCommand (line 14) | type CreateCommand struct
method Exec (line 26) | func (c *CreateCommand) Exec(in io.Reader, out io.Writer) error {
function NewCreateCommand (line 19) | func NewCreateCommand(parent argparser.Registerer, g *global.Data) *Crea...
FILE: pkg/commands/alias/logging/sumologic/delete.go
type DeleteCommand (line 14) | type DeleteCommand struct
method Exec (line 26) | func (c *DeleteCommand) Exec(in io.Reader, out io.Writer) error {
function NewDeleteCommand (line 19) | func NewDeleteCommand(parent argparser.Registerer, g *global.Data) *Dele...
FILE: pkg/commands/alias/logging/sumologic/describe.go
type DescribeCommand (line 14) | type DescribeCommand struct
method Exec (line 26) | func (c *DescribeCommand) Exec(in io.Reader, out io.Writer) error {
function NewDescribeCommand (line 19) | func NewDescribeCommand(parent argparser.Registerer, g *global.Data) *De...
FILE: pkg/commands/alias/logging/sumologic/list.go
type ListCommand (line 14) | type ListCommand struct
method Exec (line 26) | func (c *ListCommand) Exec(in io.Reader, out io.Writer) error {
function NewListCommand (line 19) | func NewListCommand(parent argparser.Registerer, g *global.Data) *ListCo...
FILE: pkg/commands/alias/logging/sumologic/root.go
type RootCommand (line 12) | type RootCommand struct
method Exec (line 29) | func (c *RootCommand) Exec(_ io.Reader, _ io.Writer) error {
constant CommandName (line 18) | CommandName = "sumologic"
function NewRootCommand (line 21) | func NewRootCommand(parent argparser.Registerer, g *global.Data) *RootCo...
FILE: pkg/commands/alias/logging/sumologic/update.go
type UpdateCommand (line 14) | type UpdateCommand struct
method Exec (line 26) | func (c *UpdateCommand) Exec(in io.Reader, out io.Writer) error {
function NewUpdateCommand (line 19) | func NewUpdateCommand(parent argparser.Registerer, g *global.Data) *Upda...
FILE: pkg/commands/alias/logging/syslog/create.go
type CreateCommand (line 14) | type CreateCommand struct
method Exec (line 26) | func (c *CreateCommand) Exec(in io.Reader, out io.Writer) error {
function NewCreateCommand (line 19) | func NewCreateCommand(parent argparser.Registerer, g *global.Data) *Crea...
FILE: pkg/commands/alias/logging/syslog/delete.go
type DeleteCommand (line 14) | type DeleteCommand struct
method Exec (line 26) | func (c *DeleteCommand) Exec(in io.Reader, out io.Writer) error {
function NewDeleteCommand (line 19) | func NewDeleteCommand(parent argparser.Registerer, g *global.Data) *Dele...
FILE: pkg/commands/alias/logging/syslog/describe.go
type DescribeCommand (line 14) | type DescribeCommand struct
method Exec (line 26) | func (c *DescribeCommand) Exec(in io.Reader, out io.Writer) error {
function NewDescribeCommand (line 19) | func NewDescribeCommand(parent argparser.Registerer, g *global.Data) *De...
FILE: pkg/commands/alias/logging/syslog/list.go
type ListCommand (line 14) | type ListCommand struct
method Exec (line 26) | func (c *ListCommand) Exec(in io.Reader, out io.Writer) error {
function NewListCommand (line 19) | func NewListCommand(parent argparser.Registerer, g *global.Data) *ListCo...
FILE: pkg/commands/alias/logging/syslog/root.go
type RootCommand (line 12) | type RootCommand struct
method Exec (line 29) | func (c *RootCommand) Exec(_ io.Reader, _ io.Writer) error {
constant CommandName (line 18) | CommandName = "syslog"
function NewRootCommand (line 21) | func NewRootCommand(parent argparser.Registerer, g *global.Data) *RootCo...
FILE: pkg/commands/alias/logging/syslog/update.go
type UpdateCommand (line 14) | type UpdateCommand struct
method Exec (line 26) | func (c *UpdateCommand) Exec(in io.Reader, out io.Writer) error {
function NewUpdateCommand (line 19) | func NewUpdateCommand(parent argparser.Registerer, g *global.Data) *Upda...
FILE: pkg/commands/alias/purge/purge.go
type Command (line 14) | type Command struct
method Exec (line 26) | func (c *Command) Exec(in io.Reader, out io.Writer) error {
function NewCommand (line 19) | func NewCommand(parent argparser.Registerer, g *global.Data) *Command {
FILE: pkg/commands/alias/ratelimit/create.go
type CreateCommand (line 14) | type CreateCommand struct
method Exec (line 26) | func (c *CreateCommand) Exec(in io.Reader, out io.Writer) error {
function NewCreateCommand (line 19) | func NewCreateCommand(parent argparser.Registerer, g *global.Data) *Crea...
FILE: pkg/commands/alias/ratelimit/delete.go
type DeleteCommand (line 14) | type DeleteCommand struct
method Exec (line 26) | func (c *DeleteCommand) Exec(in io.Reader, out io.Writer) error {
function NewDeleteCommand (line 19) | func NewDeleteCommand(parent argparser.Registerer, g *global.Data) *Dele...
FILE: pkg/commands/alias/ratelimit/describe.go
type DescribeCommand (line 14) | type DescribeCommand struct
method Exec (line 26) | func (c *DescribeCommand) Exec(in io.Reader, out io.Writer) error {
function NewDescribeCommand (line 19) | func NewDescribeCommand(parent argparser.Registerer, g *global.Data) *De...
FILE: pkg/commands/alias/ratelimit/list.go
type ListCommand (line 14) | type ListCommand struct
method Exec (line 26) | func (c *ListCommand) Exec(in io.Reader, out io.Writer) error {
function NewListCommand (line 19) | func NewListCommand(parent argparser.Registerer, g *global.Data) *ListCo...
FILE: pkg/commands/alias/ratelimit/root.go
type RootCommand (line 12) | type RootCommand struct
method Exec (line 29) | func (c *RootCommand) Exec(_ io.Reader, _ io.Writer) error {
constant CommandName (line 18) | CommandName = "rate-limit"
function NewRootCommand (line 21) | func NewRootCommand(parent argparser.Registerer, g *global.Data) *RootCo...
FILE: pkg/commands/alias/ratelimit/update.go
type UpdateCommand (line 14) | type UpdateCommand struct
method Exec (line 26) | func (c *UpdateCommand) Exec(in io.Reader, out io.Writer) error {
function NewUpdateCommand (line 19) | func NewUpdateCommand(parent argparser.Registerer, g *global.Data) *Upda...
FILE: pkg/commands/alias/resourcelink/create.go
type CreateCommand (line 14) | type CreateCommand struct
method Exec (line 26) | func (c *CreateCommand) Exec(in io.Reader, out io.Writer) error {
function NewCreateCommand (line 19) | func NewCreateCommand(parent argparser.Registerer, g *global.Data) *Crea...
FILE: pkg/commands/alias/resourcelink/delete.go
type DeleteCommand (line 14) | type DeleteCommand struct
method Exec (line 26) | func (c *DeleteCommand) Exec(in io.Reader, out io.Writer) error {
function NewDeleteCommand (line 19) | func NewDeleteCommand(parent argparser.Registerer, g *global.Data) *Dele...
FILE: pkg/commands/alias/resourcelink/describe.go
type DescribeCommand (line 14) | type DescribeCommand struct
method Exec (line 26) | func (c *DescribeCommand) Exec(in io.Reader, out io.Writer) error {
function NewDescribeCommand (line 19) | func NewDescribeCommand(parent argparser.Registerer, g *global.Data) *De...
FILE: pkg/commands/alias/resourcelink/list.go
type ListCommand (line 14) | type ListCommand struct
method Exec (line 26) | func (c *ListCommand) Exec(in io.Reader, out io.Writer) error {
function NewListCommand (line 19) | func NewListCommand(parent argparser.Registerer, g *global.Data) *ListCo...
FILE: pkg/commands/alias/resourcelink/root.go
type RootCommand (line 12) | type RootCommand struct
method Exec (line 29) | func (c *RootCommand) Exec(_ io.Reader, _ io.Writer) error {
constant CommandName (line 18) | CommandName = "resource-link"
function NewRootCommand (line 21) | func NewRootCommand(parent argparser.Registerer, g *global.Data) *RootCo...
FILE: pkg/commands/alias/resourcelink/update.go
type UpdateCommand (line 14) | type UpdateCommand struct
method Exec (line 26) | func (c *UpdateCommand) Exec(in io.Reader, out io.Writer) error {
function NewUpdateCommand (line 19) | func NewUpdateCommand(parent argparser.Registerer, g *global.Data) *Upda...
FILE: pkg/commands/alias/serviceauth/create.go
type CreateCommand (line 14) | type CreateCommand struct
method Exec (line 26) | func (c *CreateCommand) Exec(in io.Reader, out io.Writer) error {
function NewCreateCommand (line 19) | func NewCreateCommand(parent argparser.Registerer, g *global.Data) *Crea...
FILE: pkg/commands/alias/serviceauth/delete.go
type DeleteCommand (line 14) | type DeleteCommand struct
method Exec (line 26) | func (c *DeleteCommand) Exec(in io.Reader, out io.Writer) error {
function NewDeleteCommand (line 19) | func NewDeleteCommand(parent argparser.Registerer, g *global.Data) *Dele...
FILE: pkg/commands/alias/serviceauth/describe.go
type DescribeCommand (line 14) | type DescribeCommand struct
method Exec (line 26) | func (c *DescribeCommand) Exec(in io.Reader, out io.Writer) error {
function NewDescribeCommand (line 19) | func NewDescribeCommand(parent argparser.Registerer, g *global.Data) *De...
FILE: pkg/commands/alias/serviceauth/list.go
type ListCommand (line 14) | type ListCommand struct
method Exec (line 26) | func (c *ListCommand) Exec(in io.Reader, out io.Writer) error {
function NewListCommand (line 19) | func NewListCommand(parent argparser.Registerer, g *global.Data) *ListCo...
FILE: pkg/commands/alias/serviceauth/root.go
type RootCommand (line 12) | type RootCommand struct
method Exec (line 29) | func (c *RootCommand) Exec(_ io.Reader, _ io.Writer) error {
constant CommandName (line 18) | CommandName = "service-auth"
function NewRootCommand (line 21) | func NewRootCommand(parent argparser.Registerer, g *global.Data) *RootCo...
FILE: pkg/commands/alias/serviceauth/update.go
type UpdateCommand (line 14) | type UpdateCommand struct
method Exec (line 26) | func (c *UpdateCommand) Exec(in io.Reader, out io.Writer) error {
function NewUpdateCommand (line 19) | func NewUpdateCommand(parent argparser.Registerer, g *global.Data) *Upda...
FILE: pkg/commands/alias/serviceversion/activate.go
type ActivateCommand (line 14) | type ActivateCommand struct
method Exec (line 26) | func (c *ActivateCommand) Exec(in io.Reader, out io.Writer) error {
function NewActivateCommand (line 19) | func NewActivateCommand(parent argparser.Registerer, g *global.Data) *Ac...
FILE: pkg/commands/alias/serviceversion/clone.go
type CloneCommand (line 14) | type CloneCommand struct
method Exec (line 26) | func (c *CloneCommand) Exec(in io.Reader, out io.Writer) error {
function NewCloneCommand (line 19) | func NewCloneCommand(parent argparser.Registerer, g *global.Data) *Clone...
FILE: pkg/commands/alias/serviceversion/deactivate.go
type DeactivateCommand (line 14) | type DeactivateCommand struct
method Exec (line 26) | func (c *DeactivateCommand) Exec(in io.Reader, out io.Writer) error {
function NewDeactivateCommand (line 19) | func NewDeactivateCommand(parent argparser.Registerer, g *global.Data) *...
FILE: pkg/commands/alias/serviceversion/list.go
type ListCommand (line 14) | type ListCommand struct
method Exec (line 26) | func (c *ListCommand) Exec(in io.Reader, out io.Writer) error {
function NewListCommand (line 19) | func NewListCommand(parent argparser.Registerer, g *global.Data) *ListCo...
FILE: pkg/commands/alias/serviceversion/lock.go
type LockCommand (line 14) | type LockCommand struct
method Exec (line 26) | func (c *LockCommand) Exec(in io.Reader, out io.Writer) error {
function NewLockCommand (line 19) | func NewLockCommand(parent argparser.Registerer, g *global.Data) *LockCo...
FILE: pkg/commands/alias/serviceversion/root.go
type RootCommand (line 12) | type RootCommand struct
method Exec (line 29) | func (c *RootCommand) Exec(_ io.Reader, _ io.Writer) error {
constant CommandName (line 18) | CommandName = "service-version"
function NewRootCommand (line 21) | func NewRootCommand(parent argparser.Registerer, g *global.Data) *RootCo...
FILE: pkg/commands/alias/serviceversion/stage.go
type StageCommand (line 14) | type StageCommand struct
method Exec (line 26) | func (c *StageCommand) Exec(in io.Reader, out io.Writer) error {
function NewStageCommand (line 19) | func NewStageCommand(parent argparser.Registerer, g *global.Data) *Stage...
FILE: pkg/commands/alias/serviceversion/unstage.go
type UnstageCommand (line 14) | type UnstageCommand struct
method Exec (line 26) | func (c *UnstageCommand) Exec(in io.Reader, out io.Writer) error {
function NewUnstageCommand (line 19) | func NewUnstageCommand(parent argparser.Registerer, g *global.Data) *Uns...
FILE: pkg/commands/alias/serviceversion/update.go
type UpdateCommand (line 14) | type UpdateCommand struct
method Exec (line 26) | func (c *UpdateCommand) Exec(in io.Reader, out io.Writer) error {
function NewUpdateCommand (line 19) | func NewUpdateCommand(parent argparser.Registerer, g *global.Data) *Upda...
FILE: pkg/commands/alias/vcl/condition/create.go
type CreateCommand (line 14) | type CreateCommand struct
method Exec (line 26) | func (c *CreateCommand) Exec(in io.Reader, out io.Writer) error {
function NewCreateCommand (line 19) | func NewCreateCommand(parent argparser.Registerer, g *global.Data) *Crea...
FILE: pkg/commands/alias/vcl/condition/delete.go
type DeleteCommand (line 14) | type DeleteCommand struct
method Exec (line 26) | func (c *DeleteCommand) Exec(in io.Reader, out io.Writer) error {
function NewDeleteCommand (line 19) | func NewDeleteCommand(parent argparser.Registerer, g *global.Data) *Dele...
FILE: pkg/commands/alias/vcl/condition/describe.go
type DescribeCommand (line 14) | type DescribeCommand struct
method Exec (line 26) | func (c *DescribeCommand) Exec(in io.Reader, out io.Writer) error {
function NewDescribeCommand (line 19) | func NewDescribeCommand(parent argparser.Registerer, g *global.Data) *De...
FILE: pkg/commands/alias/vcl/condition/list.go
type ListCommand (line 14) | type ListCommand struct
method Exec (line 26) | func (c *ListCommand) Exec(in io.Reader, out io.Writer) error {
function NewListCommand (line 19) | func NewListCommand(parent argparser.Registerer, g *global.Data) *ListCo...
FILE: pkg/commands/alias/vcl/condition/root.go
type RootCommand (line 12) | type RootCommand struct
method Exec (line 29) | func (c *RootCommand) Exec(_ io.Reader, _ io.Writer) error {
constant CommandName (line 18) | CommandName = "condition"
function NewRootCommand (line 21) | func NewRootCommand(parent argparser.Registerer, g *global.Data) *RootCo...
FILE: pkg/commands/alias/vcl/condition/update.go
type UpdateCommand (line 14) | type UpdateCommand struct
method Exec (line 26) | func (c *UpdateCommand) Exec(in io.Reader, out io.Writer) error {
function NewUpdateCommand (line 19) | func NewUpdateCommand(parent argparser.Registerer, g *global.Data) *Upda...
FILE: pkg/commands/alias/vcl/custom/create.go
type CreateCommand (line 14) | type CreateCommand struct
method Exec (line 26) | func (c *CreateCommand) Exec(in io.Reader, out io.Writer) error {
function NewCreateCommand (line 19) | func NewCreateCommand(parent argparser.Registerer, g *global.Data) *Crea...
FILE: pkg/commands/alias/vcl/custom/delete.go
type DeleteCommand (line 14) | type DeleteCommand struct
method Exec (line 26) | func (c *DeleteCommand) Exec(in io.Reader, out io.Writer) error {
function NewDeleteCommand (line 19) | func NewDeleteCommand(parent argparser.Registerer, g *global.Data) *Dele...
FILE: pkg/commands/alias/vcl/custom/describe.go
type DescribeCommand (line 14) | type DescribeCommand struct
method Exec (line 26) | func (c *DescribeCommand) Exec(in io.Reader, out io.Writer) error {
function NewDescribeCommand (line 19) | func NewDescribeCommand(parent argparser.Registerer, g *global.Data) *De...
FILE: pkg/commands/alias/vcl/custom/list.go
type ListCommand (line 14) | type ListCommand struct
method Exec (line 26) | func (c *ListCommand) Exec(in io.Reader, out io.Writer) error {
function NewListCommand (line 19) | func NewListCommand(parent argparser.Registerer, g *global.Data) *ListCo...
FILE: pkg/commands/alias/vcl/custom/root.go
type RootCommand (line 12) | type RootCommand struct
method Exec (line 29) | func (c *RootCommand) Exec(_ io.Reader, _ io.Writer) error {
constant CommandName (line 18) | CommandName = "custom"
function NewRootCommand (line 21) | func NewRootCommand(parent argparser.Registerer, g *global.Data) *RootCo...
FILE: pkg/commands/alias/vcl/custom/update.go
type UpdateCommand (line 14) | type UpdateCommand struct
method Exec (line 26) | func (c *UpdateCommand) Exec(in io.Reader, out io.Writer) error {
function NewUpdateCommand (line 19) | func NewUpdateCommand(parent argparser.Registerer, g *global.Data) *Upda...
FILE: pkg/commands/alias/vcl/describe.go
type DescribeCommand (line 14) | type DescribeCommand struct
method Exec (line 26) | func (c *DescribeCommand) Exec(in io.Reader, out io.Writer) error {
function NewDescribeCommand (line 19) | func NewDescribeCommand(parent argparser.Registerer, g *global.Data) *De...
FILE: pkg/commands/alias/vcl/root.go
type RootCommand (line 12) | type RootCommand struct
method Exec (line 29) | func (c *RootCommand) Exec(_ io.Reader, _ io.Writer) error {
constant CommandName (line 18) | CommandName = "vcl"
function NewRootCommand (line 21) | func NewRootCommand(parent argparser.Registerer, g *global.Data) *RootCo...
FILE: pkg/commands/alias/vcl/snippet/create.go
type CreateCommand (line 14) | type CreateCommand struct
method Exec (line 26) | func (c *CreateCommand) Exec(in io.Reader, out io.Writer) error {
function NewCreateCommand (line 19) | func NewCreateCommand(parent argparser.Registerer, g *global.Data) *Crea...
FILE: pkg/commands/alias/vcl/snippet/delete.go
type DeleteCommand (line 14) | type DeleteCommand struct
method Exec (line 26) | func (c *DeleteCommand) Exec(in io.Reader, out io.Writer) error {
function NewDeleteCommand (line 19) | func NewDeleteCommand(parent argparser.Registerer, g *global.Data) *Dele...
FILE: pkg/commands/alias/vcl/snippet/describe.go
type DescribeCommand (line 14) | type DescribeCommand struct
method Exec (line 26) | func (c *DescribeCommand) Exec(in io.Reader, out io.Writer) error {
function NewDescribeCommand (line 19) | func NewDescribeCommand(parent argparser.Registerer, g *global.Data) *De...
FILE: pkg/commands/alias/vcl/snippet/list.go
type ListCommand (line 14) | type ListCommand struct
method Exec (line 26) | func (c *ListCommand) Exec(in io.Reader, out io.Writer) error {
function NewListCommand (line 19) | func NewListCommand(parent argparser.Registerer, g *global.Data) *ListCo...
FILE: pkg/commands/alias/vcl/snippet/root.go
type RootCommand (line 12) | type RootCommand struct
method Exec (line 29) | func (c *RootCommand) Exec(_ io.Reader, _ io.Writer) error {
constant CommandName (line 18) | CommandName = "snippet"
function NewRootCommand (line 21) | func NewRootCommand(parent argparser.Registerer, g *global.Data) *RootCo...
FILE: pkg/commands/alias/vcl/snippet/update.go
type UpdateCommand (line 14) | type UpdateCommand struct
method Exec (line 26) | func (c *UpdateCommand) Exec(in io.Reader, out io.Writer) error {
function NewUpdateCommand (line 19) | func NewUpdateCommand(parent argparser.Registerer, g *global.Data) *Upda...
FILE: pkg/commands/apisecurity/discoveredoperations/discoveredoperations_test.go
constant serviceID (line 20) | serviceID = "test-service-id"
constant operationID (line 21) | operationID = "test-operation-id"
function TestListCommand (line 117) | func TestListCommand(t *testing.T) {
function TestListCommandWithFilters (line 199) | func TestListCommandWithFilters(t *testing.T) {
function TestUpdateCommand (line 281) | func TestUpdateCommand(t *testing.T) {
function TestUpdateCommandEdgeCases (line 417) | func TestUpdateCommandEdgeCases(t *testing.T) {
FILE: pkg/commands/apisecurity/discoveredoperations/list.go
type ListCommand (line 20) | type ListCommand struct
method Exec (line 70) | func (c *ListCommand) Exec(_ io.Reader, out io.Writer) error {
method printSummary (line 169) | func (c *ListCommand) printSummary(out io.Writer, o []operations.Disco...
method printVerbose (line 188) | func (c *ListCommand) printVerbose(out io.Writer, o []operations.Disco...
function NewListCommand (line 36) | func NewListCommand(parent argparser.Registerer, g *global.Data) *ListCo...
FILE: pkg/commands/apisecurity/discoveredoperations/root.go
type RootCommand (line 12) | type RootCommand struct
method Exec (line 29) | func (c *RootCommand) Exec(_ io.Reader, _ io.Writer) error {
constant CommandName (line 18) | CommandName = "discovered-operations"
function NewRootCommand (line 21) | func NewRootCommand(parent argparser.Registerer, globals *global.Data) *...
FILE: pkg/commands/apisecurity/discoveredoperations/update.go
type UpdateCommand (line 23) | type UpdateCommand struct
method Exec (line 68) | func (c *UpdateCommand) Exec(_ io.Reader, out io.Writer) error {
method validateStatus (line 170) | func (c *UpdateCommand) validateStatus(statusValue string) (string, er...
method executeBulkUpdate (line 182) | func (c *UpdateCommand) executeBulkUpdate(out io.Writer, serviceID str...
method readFromFile (line 223) | func (c *UpdateCommand) readFromFile() (*UpdateFileInput, error) {
method printBulkResults (line 261) | func (c *UpdateCommand) printBulkResults(out io.Writer, results *opera...
method printSummary (line 295) | func (c *UpdateCommand) printSummary(out io.Writer, op *operations.Dis...
method printVerbose (line 307) | func (c *UpdateCommand) printVerbose(out io.Writer, op *operations.Dis...
function NewUpdateCommand (line 35) | func NewUpdateCommand(parent argparser.Registerer, g *global.Data) *Upda...
type UpdateFileInput (line 217) | type UpdateFileInput struct
FILE: pkg/commands/apisecurity/operations/addtags.go
type AddTagsCommand (line 24) | type AddTagsCommand struct
method Exec (line 71) | func (c *AddTagsCommand) Exec(_ io.Reader, out io.Writer) error {
method readFromFile (line 147) | func (c *AddTagsCommand) readFromFile() (*AddTagsFileInput, error) {
method printResults (line 185) | func (c *AddTagsCommand) printResults(out io.Writer, results *operatio...
function NewAddTagsCommand (line 38) | func NewAddTagsCommand(parent argparser.Registerer, g *global.Data) *Add...
type AddTagsFileInput (line 141) | type AddTagsFileInput struct
FILE: pkg/commands/apisecurity/operations/create.go
type CreateCommand (line 25) | type CreateCommand struct
method Exec (line 92) | func (c *CreateCommand) Exec(_ io.Reader, out io.Writer) error {
method constructInput (line 154) | func (c *CreateCommand) constructInput(serviceID string) *operations.C...
method createFromFile (line 174) | func (c *CreateCommand) createFromFile(serviceID string, out io.Writer...
method readOperationsFromFile (line 278) | func (c *CreateCommand) readOperationsFromFile() ([]OperationInput, er...
type OperationInput (line 42) | type OperationInput struct
type CreateFileInput (line 51) | type CreateFileInput struct
function NewCreateCommand (line 56) | func NewCreateCommand(parent argparser.Registerer, g *global.Data) *Crea...
FILE: pkg/commands/apisecurity/operations/delete.go
type DeleteCommand (line 18) | type DeleteCommand struct
method Exec (line 59) | func (c *DeleteCommand) Exec(_ io.Reader, out io.Writer) error {
function NewDeleteCommand (line 28) | func NewDeleteCommand(parent argparser.Registerer, g *global.Data) *Dele...
FILE: pkg/commands/apisecurity/operations/describe.go
type DescribeCommand (line 19) | type DescribeCommand struct
method Exec (line 60) | func (c *DescribeCommand) Exec(_ io.Reader, out io.Writer) error {
method print (line 100) | func (c *DescribeCommand) print(out io.Writer, o *operations.Operation...
function NewDescribeCommand (line 29) | func NewDescribeCommand(parent argparser.Registerer, g *global.Data) *De...
FILE: pkg/commands/apisecurity/operations/list.go
type ListCommand (line 20) | type ListCommand struct
method Exec (line 70) | func (c *ListCommand) Exec(_ io.Reader, out io.Writer) error {
method printSummary (line 151) | func (c *ListCommand) printSummary(out io.Writer, o []operations.Opera...
method printVerbose (line 175) | func (c *ListCommand) printVerbose(out io.Writer, o []operations.Opera...
function NewListCommand (line 36) | func NewListCommand(parent argparser.Registerer, g *global.Data) *ListCo...
FILE: pkg/commands/apisecurity/operations/operations_test.go
constant serviceID (line 19) | serviceID = "test-service-id"
function TestListCommand (line 90) | func TestListCommand(t *testing.T) {
function TestListCommandWithFilters (line 158) | func TestListCommandWithFilters(t *testing.T) {
FILE: pkg/commands/apisecurity/operations/root.go
type RootCommand (line 12) | type RootCommand struct
method Exec (line 29) | func (c *RootCommand) Exec(_ io.Reader, _ io.Writer) error {
constant CommandName (line 18) | CommandName = "operations"
function NewRootCommand (line 21) | func NewRootCommand(parent argparser.Registerer, globals *global.Data) *...
FILE: pkg/commands/apisecurity/operations/update.go
type UpdateCommand (line 22) | type UpdateCommand struct
method Exec (line 69) | func (c *UpdateCommand) Exec(_ io.Reader, out io.Writer) error {
method constructInput (line 125) | func (c *UpdateCommand) constructInput(serviceID string) *operations.U...
function NewUpdateCommand (line 36) | func NewUpdateCommand(parent argparser.Registerer, g *global.Data) *Upda...
FILE: pkg/commands/apisecurity/root.go
type RootCommand (line 12) | type RootCommand struct
method Exec (line 29) | func (c *RootCommand) Exec(_ io.Reader, _ io.Writer) error {
constant CommandName (line 18) | CommandName = "apisecurity"
function NewRootCommand (line 21) | func NewRootCommand(parent argparser.Registerer, globals *global.Data) *...
FILE: pkg/commands/apisecurity/tags/create.go
type CreateCommand (line 18) | type CreateCommand struct
method Exec (line 62) | func (c *CreateCommand) Exec(_ io.Reader, out io.Writer) error {
function NewCreateCommand (line 31) | func NewCreateCommand(parent argparser.Registerer, g *global.Data) *Crea...
FILE: pkg/commands/apisecurity/tags/delete.go
type DeleteCommand (line 18) | type DeleteCommand struct
method Exec (line 58) | func (c *DeleteCommand) Exec(_ io.Reader, out io.Writer) error {
function NewDeleteCommand (line 28) | func NewDeleteCommand(parent argparser.Registerer, g *global.Data) *Dele...
FILE: pkg/commands/apisecurity/tags/get.go
type GetCommand (line 18) | type GetCommand struct
method Exec (line 58) | func (c *GetCommand) Exec(_ io.Reader, out io.Writer) error {
function NewGetCommand (line 28) | func NewGetCommand(parent argparser.Registerer, g *global.Data) *GetComm...
FILE: pkg/commands/apisecurity/tags/list.go
type ListCommand (line 17) | type ListCommand struct
method Exec (line 53) | func (c *ListCommand) Exec(_ io.Reader, out io.Writer) error {
function NewListCommand (line 26) | func NewListCommand(parent argparser.Registerer, g *global.Data) *ListCo...
FILE: pkg/commands/apisecurity/tags/root.go
type RootCommand (line 12) | type RootCommand struct
method Exec (line 29) | func (c *RootCommand) Exec(_ io.Reader, _ io.Writer) error {
constant CommandName (line 18) | CommandName = "tags"
function NewRootCommand (line 21) | func NewRootCommand(parent argparser.Registerer, g *global.Data) *RootCo...
FILE: pkg/commands/apisecurity/tags/tags_test.go
constant serviceID (line 19) | serviceID = "test-service-id"
constant tagID (line 20) | tagID = "tag-123"
constant tagName (line 21) | tagName = "APIv1"
constant tagDescription (line 22) | tagDescription = "All-APIv1-endpoints"
constant updatedTagName (line 23) | updatedTagName = "APIv1.1"
constant updatedTagDesc (line 24) | updatedTagDesc = "Updated-APIv1-endpoints"
function TestTagsCreate (line 36) | func TestTagsCreate(t *testing.T) {
function TestTagsDelete (line 109) | func TestTagsDelete(t *testing.T) {
function TestTagsGet (line 172) | func TestTagsGet(t *testing.T) {
function TestTagsList (line 237) | func TestTagsList(t *testing.T) {
function TestTagsUpdate (line 350) | func TestTagsUpdate(t *testing.T) {
FILE: pkg/commands/apisecurity/tags/update.go
type UpdateCommand (line 18) | type UpdateCommand struct
method Exec (line 63) | func (c *UpdateCommand) Exec(_ io.Reader, out io.Writer) error {
function NewUpdateCommand (line 30) | func NewUpdateCommand(parent argparser.Registerer, g *global.Data) *Upda...
FILE: pkg/commands/auth/add.go
type AddCommand (line 15) | type AddCommand struct
method Exec (line 32) | func (c *AddCommand) Exec(_ io.Reader, out io.Writer) error {
function NewAddCommand (line 21) | func NewAddCommand(parent argparser.Registerer, g *global.Data) *AddComm...
FILE: pkg/commands/auth/delete.go
type DeleteCommand (line 13) | type DeleteCommand struct
method Exec (line 27) | func (c *DeleteCommand) Exec(in io.Reader, out io.Writer) error {
function NewDeleteCommand (line 18) | func NewDeleteCommand(parent argparser.Registerer, g *global.Data) *Dele...
FILE: pkg/commands/auth/expiry.go
type ExpirationStatus (line 13) | type ExpirationStatus
constant StatusNoExpiry (line 17) | StatusNoExpiry ExpirationStatus = iota
constant StatusOK (line 19) | StatusOK
constant StatusExpiringSoon (line 21) | StatusExpiringSoon
constant StatusExpired (line 23) | StatusExpired
constant StatusNeedsReauth (line 25) | StatusNeedsReauth
constant expiryWarningThreshold (line 30) | expiryWarningThreshold = 30 * time.Minute
constant accessOnlyWarningThreshold (line 34) | accessOnlyWarningThreshold = 1 * time.Hour
function GetExpirationStatus (line 40) | func GetExpirationStatus(at *config.AuthToken, now time.Time) (Expiratio...
function staticExpirationStatus (line 60) | func staticExpirationStatus(at *config.AuthToken, now time.Time) (Expira...
function ssoExpirationStatus (line 74) | func ssoExpirationStatus(at *config.AuthToken, now time.Time) (Expiratio...
function classifyExpiry (line 104) | func classifyExpiry(expires, now time.Time, threshold time.Duration) Exp...
function ExpirationSummary (line 117) | func ExpirationSummary(status ExpirationStatus, expires time.Time, now t...
function ExpirationRemediation (line 130) | func ExpirationRemediation(tokenType string) string {
function humanDuration (line 136) | func humanDuration(d time.Duration) string {
FILE: pkg/commands/auth/expiry_test.go
function TestGetExpirationStatus (line 12) | func TestGetExpirationStatus(t *testing.T) {
function TestExpirationSummary (line 301) | func TestExpirationSummary(t *testing.T) {
function TestExpirationRemediation (line 362) | func TestExpirationRemediation(t *testing.T) {
FILE: pkg/commands/auth/list.go
type ListCommand (line 14) | type ListCommand struct
method Exec (line 25) | func (c *ListCommand) Exec(_ io.Reader, out io.Writer) error {
function NewListCommand (line 18) | func NewListCommand(parent argparser.Registerer, g *global.Data) *ListCo...
FILE: pkg/commands/auth/login.go
type LoginCommand (line 14) | type LoginCommand struct
method Exec (line 28) | func (c *LoginCommand) Exec(in io.Reader, out io.Writer) error {
method execSSO (line 53) | func (c *LoginCommand) execSSO(in io.Reader, out io.Writer) error {
function NewLoginCommand (line 19) | func NewLoginCommand(parent argparser.Registerer, g *global.Data) *Login...
FILE: pkg/commands/auth/metadata.go
type TokenMetadata (line 16) | type TokenMetadata struct
function FetchTokenMetadata (line 29) | func FetchTokenMetadata(g *global.Data, token string) (*TokenMetadata, e...
function FetchTokenMetadataLenient (line 55) | func FetchTokenMetadataLenient(g *global.Data, token string) (*TokenMeta...
function EnrichWithTokenSelf (line 88) | func EnrichWithTokenSelf(g *global.Data, at *config.AuthToken) {
function BuildAndStoreStaticToken (line 107) | func BuildAndStoreStaticToken(g *global.Data, token, name string, md *To...
function StoreStaticToken (line 129) | func StoreStaticToken(g *global.Data, token string) (name string, md *To...
function fetchTokenSelf (line 152) | func fetchTokenSelf(g *global.Data, apiClient api.Interface, md *TokenMe...
FILE: pkg/commands/auth/metadata_test.go
function TestAuthAdd (line 51) | func TestAuthAdd(t *testing.T) {
function TestAuthLogin (line 174) | func TestAuthLogin(t *testing.T) {
function TestAuthShow (line 237) | func TestAuthShow(t *testing.T) {
function TestAuthAddScopedToken (line 397) | func TestAuthAddScopedToken(t *testing.T) {
function TestEnrichWithTokenSelfPreservesOnFailure (line 458) | func TestEnrichWithTokenSelfPreservesOnFailure(t *testing.T) {
function TestAuthDelete (line 492) | func TestAuthDelete(t *testing.T) {
FILE: pkg/commands/auth/revoke.go
type RevokeCommand (line 29) | type RevokeCommand struct
method Exec (line 50) | func (c *RevokeCommand) Exec(in io.Reader, out io.Writer) error {
method validateFlags (line 75) | func (c *RevokeCommand) validateFlags() error {
method revokeCurrent (line 101) | func (c *RevokeCommand) revokeCurrent(in io.Reader, out io.Writer) err...
method revokeByName (line 127) | func (c *RevokeCommand) revokeByName(in io.Reader, out io.Writer) error {
method revokeByTokenValue (line 166) | func (c *RevokeCommand) revokeByTokenValue(in io.Reader, out io.Writer...
method revokeByID (line 204) | func (c *RevokeCommand) revokeByID(out io.Writer) error {
method revokeByFile (line 231) | func (c *RevokeCommand) revokeByFile(out io.Writer) error {
method authClient (line 276) | func (c *RevokeCommand) authClient() (api.Interface, error) {
method buildClient (line 287) | func (c *RevokeCommand) buildClient(token string) (api.Interface, erro...
method confirmDefaultRevocation (line 299) | func (c *RevokeCommand) confirmDefaultRevocation(names []string, in io...
method removeLocalTokens (line 431) | func (c *RevokeCommand) removeLocalTokens(names []string, out io.Write...
function NewRevokeCommand (line 38) | func NewRevokeCommand(parent argparser.Registerer, g *global.Data) *Revo...
function isAlreadyGone (line 331) | func isAlreadyGone(err error) bool {
function isSelfAlreadyGone (line 336) | func isSelfAlreadyGone(err error) bool {
function readTokenValue (line 341) | func readTokenValue(flag string, in io.Reader) (string, error) {
function readTokenIDFile (line 370) | func readTokenIDFile(path string) ([]string, error) {
function findLocalTokensByValue (line 411) | func findLocalTokensByValue(cfg *config.File, raw string) []string {
function findLocalTokensByID (line 421) | func findLocalTokensByID(cfg *config.File, id string) []string {
FILE: pkg/commands/auth/revoke_test.go
function TestAuthRevoke (line 22) | func TestAuthRevoke(t *testing.T) {
function writeTokenIDFile (line 489) | func writeTokenIDFile(t *testing.T, content string) string {
FILE: pkg/commands/auth/root.go
type RootCommand (line 10) | type RootCommand struct
method Exec (line 23) | func (c *RootCommand) Exec(_ io.Reader, _ io.Writer) error {
constant CommandName (line 14) | CommandName = "auth"
function NewRootCommand (line 16) | func NewRootCommand(parent argparser.Registerer, g *global.Data) *RootCo...
FILE: pkg/commands/auth/show.go
type ShowCommand (line 17) | type ShowCommand struct
method Exec (line 34) | func (c *ShowCommand) Exec(_ io.Reader, out io.Writer) error {
function NewShowCommand (line 23) | func NewShowCommand(parent argparser.Registerer, g *global.Data) *ShowCo...
function apiTokenExpirySummary (line 131) | func apiTokenExpirySummary(entry *config.AuthToken, mainExpires time.Tim...
FILE: pkg/commands/auth/sso.go
function RunSSO (line 25) | func RunSSO(in io.Reader, out io.Writer, g *global.Data, forceReAuth boo...
function RunSSOWithTokenName (line 31) | func RunSSOWithTokenName(in io.Reader, out io.Writer, g *global.Data, fo...
function identifyTokenName (line 127) | func identifyTokenName(g *global.Data) string {
type CurrentCustomerResponse (line 142) | type CurrentCustomerResponse struct
function processCustomer (line 147) | func processCustomer(g *global.Data, ar auth.AuthorizationResult) (custo...
function storeAuthToken (line 182) | func storeAuthToken(g *global.Data, ar auth.AuthorizationResult, tokenNa...
FILE: pkg/commands/auth/sso_test.go
function TestSSO (line 21) | func TestSSO(t *testing.T) {
function TestSSOSuccessMessageDisableAuthCommand (line 846) | func TestSSOSuccessMessageDisableAuthCommand(t *testing.T) {
FILE: pkg/commands/auth/token.go
type TokenCommand (line 15) | type TokenCommand struct
method Exec (line 28) | func (c *TokenCommand) Exec(_ io.Reader, out io.Writer) error {
function NewTokenCommand (line 20) | func NewTokenCommand(parent argparser.Registerer, g *global.Data) *Token...
FILE: pkg/commands/auth/token_test.go
function newTokenCommand (line 17) | func newTokenCommand(g *global.Data) *authcmd.TokenCommand {
function globalDataWithToken (line 23) | func globalDataWithToken(token string) *global.Data {
function TestToken_NonTTY_Success (line 39) | func TestToken_NonTTY_Success(t *testing.T) {
function TestToken_NonTTY_NoToken (line 54) | func TestToken_NonTTY_NoToken(t *testing.T) {
function TestToken_NonTTY_ProfileFlagUnknown (line 74) | func TestToken_NonTTY_ProfileFlagUnknown(t *testing.T) {
function TestToken_NonTTY_ProfileFlagKnown (line 96) | func TestToken_NonTTY_ProfileFlagKnown(t *testing.T) {
function TestToken_NonTTY_TokenFlagBeatsProfileFlag (line 112) | func TestToken_NonTTY_TokenFlagBeatsProfileFlag(t *testing.T) {
FILE: pkg/commands/auth/token_tty_unix_test.go
function TestToken_TTY_Refused (line 14) | func TestToken_TTY_Refused(t *testing.T) {
FILE: pkg/commands/auth/use.go
type UseCommand (line 13) | type UseCommand struct
method Exec (line 27) | func (c *UseCommand) Exec(_ io.Reader, out io.Writer) error {
function NewUseCommand (line 18) | func NewUseCommand(parent argparser.Registerer, g *global.Data) *UseComm...
FILE: pkg/commands/authtoken/authtoken_test.go
function TestAuthTokenCreate (line 15) | func TestAuthTokenCreate(t *testing.T) {
function TestAuthTokenDelete (line 68) | func TestAuthTokenDelete(t *testing.T) {
function TestAuthTokenDescribe (line 150) | func TestAuthTokenDescribe(t *testing.T) {
function TestAuthTokenList (line 175) | func TestAuthTokenList(t *testing.T) {
function getToken (line 232) | func getToken(_ context.Context) (*fastly.Token, error) {
function listTokens (line 248) | func listTokens(ctx context.Context, _ *fastly.ListTokensInput) ([]*fast...
function listCustomerTokens (line 268) | func listCustomerTokens(ctx context.Context, _ *fastly.ListCustomerToken...
function fileTokensOutput (line 272) | func fileTokensOutput() string {
function describeTokenOutput (line 281) | func describeTokenOutput() string {
function listTokenOutputVerbose (line 295) | func listTokenOutputVerbose() string {
function listTokenOutputSummary (line 325) | func listTokenOutputSummary(env bool) string {
FILE: pkg/commands/authtoken/create.go
function NewCreateCommand (line 23) | func NewCreateCommand(parent argparser.Registerer, g *global.Data) *Crea...
type CreateCommand (line 54) | type CreateCommand struct
method Exec (line 65) | func (c *CreateCommand) Exec(_ io.Reader, out io.Writer) error {
method constructInput (line 88) | func (c *CreateCommand) constructInput() *fastly.CreateTokenInput {
FILE: pkg/commands/authtoken/delete.go
function NewDeleteCommand (line 19) | func NewDeleteCommand(parent argparser.Registerer, g *global.Data) *Dele...
type DeleteCommand (line 34) | type DeleteCommand struct
method Exec (line 43) | func (c *DeleteCommand) Exec(_ io.Reader, out io.Writer) error {
method constructInput (line 101) | func (c *DeleteCommand) constructInput() *fastly.DeleteTokenInput {
method constructInputBatch (line 110) | func (c *DeleteCommand) constructInputBatch() (*fastly.BatchDeleteToke...
method printTokens (line 141) | func (c *DeleteCommand) printTokens(out io.Writer, rs []*fastly.BatchT...
FILE: pkg/commands/authtoken/describe.go
function NewDescribeCommand (line 18) | func NewDescribeCommand(parent argparser.Registerer, g *global.Data) *De...
type DescribeCommand (line 31) | type DescribeCommand struct
method Exec (line 37) | func (c *DescribeCommand) Exec(_ io.Reader, out io.Writer) error {
method print (line 60) | func (c *DescribeCommand) print(out io.Writer, t *fastly.Token) error {
FILE: pkg/commands/authtoken/list.go
function NewListCommand (line 18) | func NewListCommand(parent argparser.Registerer, g *global.Data) *ListCo...
type ListCommand (line 37) | type ListCommand struct
method Exec (line 45) | func (c *ListCommand) Exec(_ io.Reader, out io.Writer) error {
method constructInput (line 93) | func (c *ListCommand) constructInput() *fastly.ListCustomerTokensInput {
method printVerbose (line 103) | func (c *ListCommand) printVerbose(out io.Writer, rs []*fastly.Token) {
method printSummary (line 127) | func (c *ListCommand) printSummary(out io.Writer, ts []*fastly.Token) ...
FILE: pkg/commands/authtoken/root.go
type RootCommand (line 12) | type RootCommand struct
method Exec (line 29) | func (c *RootCommand) Exec(_ io.Reader, _ io.Writer) error {
constant CommandName (line 18) | CommandName = "auth-token"
function NewRootCommand (line 21) | func NewRootCommand(parent argparser.Registerer, g *global.Data) *RootCo...
FILE: pkg/commands/commands.go
function Define (line 178) | func Define( // nolint:revive // function-length
FILE: pkg/commands/commands_test.go
function isAuthRelated (line 21) | func isAuthRelated(name string) bool {
function TestDefineDisableAuthCommand (line 30) | func TestDefineDisableAuthCommand(t *testing.T) {
FILE: pkg/commands/compute/build.go
constant IgnoreFilePath (line 37) | IgnoreFilePath = ".fastlyignore"
constant CustomPostScriptMessage (line 41) | CustomPostScriptMessage = "This project has a custom post_%s script defi...
type Flags (line 50) | type Flags struct
type BuildCommand (line 60) | type BuildCommand struct
method Exec (line 95) | func (c *BuildCommand) Exec(in io.Reader, out io.Writer) (err error) {
method AnnotateWasmBinaryShort (line 321) | func (c *BuildCommand) AnnotateWasmBinaryShort(wasmtools string, args ...
method AnnotateWasmBinaryLong (line 326) | func (c *BuildCommand) AnnotateWasmBinaryLong(wasmtools string, args [...
method ShowMetadata (line 381) | func (c *BuildCommand) ShowMetadata(wasmtools string, out io.Writer) {
method includeSourceCode (line 406) | func (c *BuildCommand) includeSourceCode(files []string, srcDir string...
method PackageName (line 441) | func (c *BuildCommand) PackageName(manifestFilename string) (string, e...
function NewBuildCommand (line 74) | func NewBuildCommand(parent argparser.Registerer, g *global.Data) *Build...
function ExecuteWasmTools (line 460) | func ExecuteWasmTools(wasmtools string, args []string, d *global.Data) e...
function GetWasmTools (line 516) | func GetWasmTools(spinner text.Spinner, out io.Writer, wasmtoolsVersione...
function installLatestWasmtools (line 600) | func installLatestWasmtools(binPath string, spinner text.Spinner, wasmto...
function updateWasmtools (line 616) | func updateWasmtools(
function identifyToolchain (line 679) | func identifyToolchain(c *BuildCommand) (string, error) {
function language (line 697) | func language(toolchain, manifestFilename string, c *BuildCommand, in io...
function binDir (line 738) | func binDir(c *BuildCommand) error {
function CreatePackageArchive (line 762) | func CreatePackageArchive(files []string, destination string) error {
function createTarGz (line 799) | func createTarGz(sourceDir, destFile string) error {
function FileNameWithoutExtension (line 839) | func FileNameWithoutExtension(filename string) string {
function GetIgnoredFiles (line 851) | func GetIgnoredFiles(filePath string) (files map[string]bool, err error) {
function GetNonIgnoredFiles (line 895) | func GetNonIgnoredFiles(base string, ignoredFiles map[string]bool) ([]st...
function bytesToMB (line 915) | func bytesToMB(bytes uint64) uint64 {
function bucketMB (line 922) | func bucketMB(mb uint64) string {
type DataCollection (line 944) | type DataCollection struct
type DataCollectionBuildInfo (line 952) | type DataCollectionBuildInfo struct
type DataCollectionMachineInfo (line 957) | type DataCollectionMachineInfo struct
type DataCollectionPackageInfo (line 966) | type DataCollectionPackageInfo struct
type DataCollectionScriptInfo (line 976) | type DataCollectionScriptInfo struct
FILE: pkg/commands/compute/build_test.go
function TestBuildUnknownLanguage (line 22) | func TestBuildUnknownLanguage(t *testing.T) {
function TestBuildRust (line 109) | func TestBuildRust(t *testing.T) {
function TestBuildGo (line 349) | func TestBuildGo(t *testing.T) {
function TestBuildJavaScript (line 523) | func TestBuildJavaScript(t *testing.T) {
function TestBuildCPP (line 701) | func TestBuildCPP(t *testing.T) {
function TestBuildOther (line 905) | func TestBuildOther(t *testing.T) {
FILE: pkg/commands/compute/compute_mocks_test.go
function getServiceOK (line 15) | func getServiceOK(_ context.Context, _ *fastly.GetServiceInput) (*fastly...
function createDomainOK (line 22) | func createDomainOK(_ context.Context, i *fastly.CreateDomainInput) (*fa...
function createBackendOK (line 30) | func createBackendOK(_ context.Context, i *fastly.CreateBackendInput) (*...
function createConfigStoreOK (line 38) | func createConfigStoreOK(_ context.Context, i *fastly.CreateConfigStoreI...
function updateConfigStoreItemOK (line 44) | func updateConfigStoreItemOK(_ context.Context, i *fastly.UpdateConfigSt...
function createDictionaryOK (line 51) | func createDictionaryOK(_ context.Context, i *fastly.CreateDictionaryInp...
function createDictionaryItemOK (line 59) | func createDictionaryItemOK(_ context.Context, i *fastly.CreateDictionar...
function createKVStoreOK (line 68) | func createKVStoreOK(_ context.Context, i *fastly.CreateKVStoreInput) (*...
function createKVStoreItemOK (line 75) | func createKVStoreItemOK(_ context.Context, _ *fastly.InsertKVStoreKeyIn...
function createResourceOK (line 79) | func createResourceOK(_ context.Context, _ *fastly.CreateResourceInput) ...
function getPackageOk (line 83) | func getPackageOk(_ context.Context, i *fastly.GetPackageInput) (*fastly...
function updatePackageOk (line 87) | func updatePackageOk(_ context.Context, i *fastly.UpdatePackageInput) (*...
function updatePackageError (line 91) | func updatePackageError(_ context.Context, _ *fastly.UpdatePackageInput)...
function activateVersionOk (line 95) | func activateVersionOk(_ context.Context, i *fastly.ActivateVersionInput...
function updateVersionOk (line 99) | func updateVersionOk(_ context.Context, i *fastly.UpdateVersionInput) (*...
function listDomainsOk (line 103) | func listDomainsOk(_ context.Context, _ *fastly.ListDomainsInput) ([]*fa...
function listKVStoresOk (line 109) | func listKVStoresOk(_ context.Context, _ *fastly.ListKVStoresInput) (*fa...
function listKVStoresEmpty (line 124) | func listKVStoresEmpty(_ context.Context, _ *fastly.ListKVStoresInput) (...
function getKVStoreOk (line 128) | func getKVStoreOk(_ context.Context, _ *fastly.GetKVStoreInput) (*fastly...
function listSecretStoresOk (line 135) | func listSecretStoresOk(_ context.Context, _ *fastly.ListSecretStoresInp...
function listSecretStoresEmpty (line 150) | func listSecretStoresEmpty(_ context.Context, _ *fastly.ListSecretStores...
function getSecretStoreOk (line 154) | func getSecretStoreOk(_ context.Context, _ *fastly.GetSecretStoreInput) ...
function createSecretStoreOk (line 161) | func createSecretStoreOk(_ context.Context, _ *fastly.CreateSecretStoreI...
function createSecretOk (line 168) | func createSecretOk(_ context.Context, _ *fastly.CreateSecretInput) (*fa...
function listConfigStoresOk (line 175) | func listConfigStoresOk(_ context.Context, _ *fastly.ListConfigStoresInp...
function listConfigStoresEmpty (line 188) | func listConfigStoresEmpty(_ context.Context, _ *fastly.ListConfigStores...
function getConfigStoreOk (line 192) | func getConfigStoreOk(_ context.Context, _ *fastly.GetConfigStoreInput) ...
function getServiceDetailsWasm (line 199) | func getServiceDetailsWasm(_ context.Context, i *fastly.GetServiceDetail...
function getServiceDetailsWasmNoActive (line 220) | func getServiceDetailsWasmNoActive(_ context.Context, _ *fastly.GetServi...
FILE: pkg/commands/compute/compute_test.go
function TestFlagDivergencePublish (line 23) | func TestFlagDivergencePublish(t *testing.T) {
function TestFlagDivergenceServe (line 72) | func TestFlagDivergenceServe(t *testing.T) {
function TestFlagDivergenceHashFiles (line 136) | func TestFlagDivergenceHashFiles(t *testing.T) {
function ignoreFlag (line 185) | func ignoreFlag(ignore []string, flag string) bool {
function getFlags (line 194) | func getFlags(cmd *kingpin.CmdClause) reflect.Value {
function TestCreatePackageArchive (line 198) | func TestCreatePackageArchive(t *testing.T) {
function TestFileNameWithoutExtension (line 270) | func TestFileNameWithoutExtension(t *testing.T) {
function TestGetIgnoredFiles (line 295) | func TestGetIgnoredFiles(t *testing.T) {
function TestGetNonIgnoredFiles (line 366) | func TestGetNonIgnoredFiles(t *testing.T) {
FILE: pkg/commands/compute/computeacl/computeacl_test.go
function TestComputeACLCreate (line 18) | func TestComputeACLCreate(t *testing.T) {
function TestComputeACLDelete (line 81) | func TestComputeACLDelete(t *testing.T) {
function TestComputeACLDescribe (line 140) | func TestComputeACLDescribe(t *testing.T) {
function TestComputeACLList (line 209) | func TestComputeACLList(t *testing.T) {
function TestComputeACLLookup (line 292) | func TestComputeACLLookup(t *testing.T) {
function TestComputeACLUpdate (line 392) | func TestComputeACLUpdate(t *testing.T) {
function TestComputeACLListEntries (line 497) | func TestComputeACLListEntries(t *testing.T) {
FILE: pkg/commands/compute/computeacl/create.go
type CreateCommand (line 19) | type CreateCommand struct
method Exec (line 47) | func (c *CreateCommand) Exec(_ io.Reader, out io.Writer) error {
function NewCreateCommand (line 28) | func NewCreateCommand(parent argparser.Registerer, g *global.Data) *Crea...
FILE: pkg/commands/compute/computeacl/delete.go
type DeleteCommand (line 19) | type DeleteCommand struct
method Exec (line 47) | func (c *DeleteCommand) Exec(_ io.Reader, out io.Writer) error {
function NewDeleteCommand (line 28) | func NewDeleteCommand(parent argparser.Registerer, g *global.Data) *Dele...
FILE: pkg/commands/compute/computeacl/describe.go
type DescribeCommand (line 19) | type DescribeCommand struct
method Exec (line 47) | func (c *DescribeCommand) Exec(_ io.Reader, out io.Writer) error {
function NewDescribeCommand (line 28) | func NewDescribeCommand(parent argparser.Registerer, g *global.Data) *De...
FILE: pkg/commands/compute/computeacl/listacls.go
type ListCommand (line 18) | type ListCommand struct
method Exec (line 40) | func (c *ListCommand) Exec(_ io.Reader, out io.Writer) error {
function NewListCommand (line 24) | func NewListCommand(parent argparser.Registerer, g *global.Data) *ListCo...
FILE: pkg/commands/compute/computeacl/listentries.go
type ListEntriesCommand (line 19) | type ListEntriesCommand struct
method Exec (line 53) | func (c *ListEntriesCommand) Exec(in io.Reader, out io.Writer) error {
function NewListEntriesCommand (line 32) | func NewListEntriesCommand(parent argparser.Registerer, g *global.Data) ...
FILE: pkg/commands/compute/computeacl/lookup.go
type LookupCommand (line 19) | type LookupCommand struct
method Exec (line 49) | func (c *LookupCommand) Exec(_ io.Reader, out io.Writer) error {
function NewLookupCommand (line 29) | func NewLookupCommand(parent argparser.Registerer, g *global.Data) *Look...
FILE: pkg/commands/compute/computeacl/root.go
type RootCommand (line 12) | type RootCommand struct
method Exec (line 29) | func (c *RootCommand) Exec(_ io.Reader, _ io.Writer) error {
constant CommandName (line 18) | CommandName = "acl"
function NewRootCommand (line 21) | func NewRootCommand(parent argparser.Registerer, g *global.Data) *RootCo...
FILE: pkg/commands/compute/computeacl/update.go
type UpdateCommand (line 21) | type UpdateCommand struct
method Exec (line 63) | func (c *UpdateCommand) Exec(_ io.Reader, out io.Writer) error {
method constructBatchInput (line 101) | func (c *UpdateCommand) constructBatchInput() (*computeacls.UpdateInpu...
method constructInput (line 132) | func (c *UpdateCommand) constructInput() (*computeacls.UpdateInput, er...
function NewUpdateCommand (line 41) | func NewUpdateCommand(parent argparser.Registerer, g *global.Data) *Upda...
FILE: pkg/commands/compute/deploy.go
constant manageServiceBaseURL (line 36) | manageServiceBaseURL = "https://manage.fastly.com/configure/services/"
type DeployCommand (line 43) | type DeployCommand struct
method Exec (line 104) | func (c *DeployCommand) Exec(in io.Reader, out io.Writer) (err error) {
method StatusCheck (line 319) | func (c *DeployCommand) StatusCheck(serviceURL string, spinner text.Sp...
method Setup (line 368) | func (c *DeployCommand) Setup(out io.Writer) (serviceID string, err er...
method NewService (line 501) | func (c *DeployCommand) NewService(manifestFilename string, spinner te...
method CleanupNewService (line 627) | func (c *DeployCommand) CleanupNewService(serviceID, manifestFilename ...
method UpdateManifestServiceID (line 653) | func (c *DeployCommand) UpdateManifestServiceID(serviceID, manifestPat...
method CompareLocalRemotePackage (line 683) | func (c *DeployCommand) CompareLocalRemotePackage(serviceID string, ve...
method UploadPackage (line 704) | func (c *DeployCommand) UploadPackage(spinner text.Spinner, serviceID ...
method ConstructNewServiceResources (line 732) | func (c *DeployCommand) ConstructNewServiceResources(
method ConfigureServiceResources (line 803) | func (c *DeployCommand) ConfigureServiceResources(sr ServiceResources,...
method CreateServiceResources (line 857) | func (c *DeployCommand) CreateServiceResources(
method ProcessService (line 929) | func (c *DeployCommand) ProcessService(serviceID string, serviceVersio...
method GetServiceURL (line 973) | func (c *DeployCommand) GetServiceURL(serviceID string, serviceVersion...
method ExistingServiceVersion (line 1113) | func (c *DeployCommand) ExistingServiceVersion(serviceID string, out i...
function NewDeployCommand (line 65) | func NewDeployCommand(parent argparser.Registerer, g *global.Data) *Depl...
function displayDeployOutput (line 346) | func displayDeployOutput(out io.Writer, manageServiceBaseURL, serviceID,...
function validStatusCodeRange (line 356) | func validStatusCodeRange(status int) bool {
function validatePackage (line 402) | func validatePackage(pkgPath string) error {
function readManifestFromPackageArchive (line 421) | func readManifestFromPackageArchive(data *manifest.Data, packageFlag, ma...
function locateManifest (line 457) | func locateManifest(path, manifestFilename string) (string, error) {
function packageSize (line 492) | func packageSize(path string) (size int64, err error) {
function createService (line 578) | func createService(
function errLogService (line 665) | func errLogService(l fsterr.LogInterface, err error, sid string, sv int) {
type ServiceResources (line 720) | type ServiceResources struct
function checkingServiceAvailability (line 994) | func checkingServiceAvailability(
function generateTimeout (line 1069) | func generateTimeout(d time.Duration) string {
function pingServiceURL (line 1077) | func pingServiceURL(serviceURL string, httpClient api.HTTPClient, expect...
function monitorSignals (line 1202) | func monitorSignals(signalCh chan os.Signal, noExistingService bool, out...
FILE: pkg/commands/compute/deploy_test.go
function TestDeploy (line 48) | func TestDeploy(t *testing.T) {
function TestDeploy_ActivateBeacon (line 2159) | func TestDeploy_ActivateBeacon(t *testing.T) {
function createServiceOK (line 2253) | func createServiceOK(_ context.Context, i *fastly.CreateServiceInput) (*...
function createServiceError (line 2261) | func createServiceError(_ context.Context, _ *fastly.CreateServiceInput)...
function deleteServiceOK (line 2265) | func deleteServiceOK(_ context.Context, _ *fastly.DeleteServiceInput) er...
function createDomainError (line 2269) | func createDomainError(_ context.Context, _ *fastly.CreateDomainInput) (...
function deleteDomainOK (line 2273) | func deleteDomainOK(_ context.Context, _ *fastly.DeleteDomainInput) error {
function createBackendError (line 2277) | func createBackendError(_ context.Context, _ *fastly.CreateBackendInput)...
function deleteBackendOK (line 2281) | func deleteBackendOK(_ context.Context, _ *fastly.DeleteBackendInput) er...
function getPackageIdentical (line 2285) | func getPackageIdentical(_ context.Context, i *fastly.GetPackageInput) (...
function activateVersionError (line 2296) | func activateVersionError(_ context.Context, _ *fastly.ActivateVersionIn...
function listDomainsError (line 2300) | func listDomainsError(_ context.Context, _ *fastly.ListDomainsInput) ([]...
function listDomainsNone (line 2304) | func listDomainsNone(_ context.Context, _ *fastly.ListDomainsInput) ([]*...
FILE: pkg/commands/compute/dir.go
constant EnvManifestMsg (line 12) | EnvManifestMsg = "Using the '%s' environment manifest (it will be packag...
constant ProjectDirMsg (line 15) | ProjectDirMsg = "Changed project directory to '%s'\n\n"
function EnvironmentManifest (line 19) | func EnvironmentManifest(env string) (manifestFilename string) {
function ChangeProjectDirectory (line 28) | func ChangeProjectDirectory(dir string) (projectDirectory string, err er...
FILE: pkg/commands/compute/hashfiles.go
type HashFilesCommand (line 31) | type HashFilesCommand struct
method Exec (line 72) | func (c *HashFilesCommand) Exec(in io.Reader, out io.Writer) (err erro...
method Build (line 142) | func (c *HashFilesCommand) Build(in io.Reader, out io.Writer) error {
function NewHashFilesCommand (line 51) | func NewHashFilesCommand(parent argparser.Registerer, g *global.Data, bu...
function getFilesHash (line 178) | func getFilesHash(pkgPath string) (string, error) {
FILE: pkg/commands/compute/init.go
type InitCommand (line 44) | type InitCommand struct
method Exec (line 79) | func (c *InitCommand) Exec(in io.Reader, out io.Writer) (err error) {
method VerifyDirectory (line 512) | func (c *InitCommand) VerifyDirectory(in io.Reader, out io.Writer) (co...
method VerifyDestination (line 550) | func (c *InitCommand) VerifyDestination(spinner text.Spinner) (dst str...
method PromptOrReturn (line 611) | func (c *InitCommand) PromptOrReturn(email string, in io.Reader, out i...
method PromptPackageName (line 649) | func (c *InitCommand) PromptPackageName(flags global.Flags, name strin...
method PromptForLanguage (line 725) | func (c *InitCommand) PromptForLanguage(languages []*Language, in io.R...
method PromptForStarterKit (line 781) | func (c *InitCommand) PromptForStarterKit(kits []config.StarterKit, in...
method FetchPackageTemplate (line 837) | func (c *InitCommand) FetchPackageTemplate(branch, tag string, archive...
method ClonePackageFromEndpoint (line 1067) | func (c *InitCommand) ClonePackageFromEndpoint(from, branch, tag strin...
method UpdateManifest (line 1172) | func (c *InitCommand) UpdateManifest(m manifest.File, spinner text.Spi...
method InitializeLanguage (line 1260) | func (c *InitCommand) InitializeLanguage(spinner text.Spinner, languag...
function NewInitCommand (line 63) | func NewInitCommand(parent argparser.Registerer, g *global.Data) *InitCo...
function validateDirectoryPermissions (line 576) | func validateDirectoryPermissions(dst string) text.SpinnerProcess {
function promptPackageDescription (line 672) | func promptPackageDescription(flags global.Flags, desc string, in io.Rea...
function promptPackageAuthors (line 696) | func promptPackageAuthors(flags global.Flags, authors []string, manifest...
function validateLanguageOption (line 762) | func validateLanguageOption(languages []*Language) func(string) error {
function validateTemplateOptionOrURL (line 815) | func validateTemplateOptionOrURL(templates []config.StarterKit) func(str...
function tempDir (line 1152) | func tempDir(prefix string) (abspath string, err error) {
function promptForPostInitContinue (line 1296) | func promptForPostInitContinue(msg, script string, out io.Writer, in io....
function displayInitOutput (line 1313) | func displayInitOutput(name, dst, language string, out io.Writer) {
FILE: pkg/commands/compute/init_test.go
function TestInit (line 24) | func TestInit(t *testing.T) {
function TestInit_ExistingService (line 540) | func TestInit_ExistingService(t *testing.T) {
FILE: pkg/commands/compute/language.go
function NewLanguages (line 17) | func NewLanguages(kits config.StarterKitLanguages) []*Language {
function NewLanguage (line 53) | func NewLanguage(options *LanguageOptions) *Language {
type Language (line 82) | type Language struct
type LanguageOptions (line 92) | type LanguageOptions struct
type Shell (line 102) | type Shell struct
method Build (line 112) | func (s Shell) Build(command string) (cmd string, args []string) {
FILE: pkg/commands/compute/language_assemblyscript.go
constant AsSourceDirectory (line 36) | AsSourceDirectory = "assembly"
function NewAssemblyScript (line 39) | func NewAssemblyScript(
type AssemblyScript (line 63) | type AssemblyScript struct
method DefaultBuildScript (line 96) | func (a *AssemblyScript) DefaultBuildScript() bool {
method Dependencies (line 101) | func (a *AssemblyScript) Dependencies() map[string]string {
method Build (line 125) | func (a *AssemblyScript) Build() error {
method checkForWebpack (line 167) | func (a AssemblyScript) checkForWebpack() (bool, error) {
FILE: pkg/commands/compute/language_cpp.go
constant CPPDefaultBuildCommand (line 26) | CPPDefaultBuildCommand = "clang++ -O3 --target=%s -o %s main.cpp"
constant CPPDefaultWasmWasiTarget (line 29) | CPPDefaultWasmWasiTarget = "wasm32-wasip1"
constant CPPSourceDirectory (line 32) | CPPSourceDirectory = "."
function NewCPP (line 35) | func NewCPP(
type CPP (line 63) | type CPP struct
method DefaultBuildScript (line 100) | func (cpp *CPP) DefaultBuildScript() bool {
method Dependencies (line 105) | func (cpp *CPP) Dependencies() map[string]string {
method Build (line 113) | func (cpp *CPP) Build() error {
method toolchainConstraint (line 158) | func (cpp *CPP) toolchainConstraint(toolchain, pattern, constraint str...
FILE: pkg/commands/compute/language_go.go
constant GoSourceDirectory (line 33) | GoSourceDirectory = "."
function NewGo (line 36) | func NewGo(
type Go (line 69) | type Go struct
method DefaultBuildScript (line 106) | func (g *Go) DefaultBuildScript() bool {
method Dependencies (line 111) | func (g *Go) Dependencies() map[string]string {
method Build (line 131) | func (g *Go) Build() error {
method toolchainConstraint (line 282) | func (g *Go) toolchainConstraint(toolchain, pattern, constraint string) {
function identifyTinyGoConstraint (line 213) | func identifyTinyGoConstraint(configConstraint, fallback string) string {
FILE: pkg/commands/compute/language_javascript.go
constant JsSourceDirectory (line 32) | JsSourceDirectory = "src"
type JSRuntime (line 50) | type JSRuntime struct
function NewJavaScript (line 60) | func NewJavaScript(
type JavaScript (line 87) | type JavaScript struct
method DefaultBuildScript (line 127) | func (j *JavaScript) DefaultBuildScript() bool {
method Dependencies (line 142) | func (j *JavaScript) Dependencies() map[string]string {
method isDefaultBuildScript (line 171) | func (j *JavaScript) isDefaultBuildScript() bool {
method Build (line 204) | func (j *JavaScript) Build() error {
method checkBun (line 268) | func (j *JavaScript) checkBun() (*JSRuntime, error) {
method checkNode (line 285) | func (j *JavaScript) checkNode() (*JSRuntime, error) {
method detectProjectRuntime (line 310) | func (j *JavaScript) detectProjectRuntime() (string, error) {
method detectRuntime (line 354) | func (j *JavaScript) detectRuntime() (*JSRuntime, error) {
method findAllNodeModules (line 435) | func (j *JavaScript) findAllNodeModules(startDir, home string) []string {
method verifyDependencies (line 453) | func (j *JavaScript) verifyDependencies() error {
method verifyJsComputeRuntime (line 516) | func (j *JavaScript) verifyJsComputeRuntime() error {
method verifyToolchain (line 544) | func (j *JavaScript) verifyToolchain() error {
method getDefaultBuildCommand (line 561) | func (j *JavaScript) getDefaultBuildCommand() string {
type JavaScriptPackage (line 132) | type JavaScriptPackage struct
type JavaScriptLockFile (line 137) | type JavaScriptLockFile struct
function isEnvAssignment (line 185) | func isEnvAssignment(token string) bool {
function search (line 242) | func search(filename, wd, home string) (found bool, path string, err err...
type NPMPackage (line 262) | type NPMPackage struct
FILE: pkg/commands/compute/language_javascript_test.go
function createFakeRuntime (line 15) | func createFakeRuntime(t *testing.T, dir, name, output string) {
function TestJavaScript_detectRuntime_NoRuntime (line 34) | func TestJavaScript_detectRuntime_NoRuntime(t *testing.T) {
function TestJavaScript_detectRuntime_NodeFound (line 60) | func TestJavaScript_detectRuntime_NodeFound(t *testing.T) {
function TestJavaScript_detectRuntime_BunFound (line 84) | func TestJavaScript_detectRuntime_BunFound(t *testing.T) {
function TestJavaScript_detectRuntime_NodePreferredByDefault (line 107) | func TestJavaScript_detectRuntime_NodePreferredByDefault(t *testing.T) {
function TestJavaScript_detectRuntime_BunPreferredWithLockfile (line 138) | func TestJavaScript_detectRuntime_BunPreferredWithLockfile(t *testing.T) {
function TestJavaScript_detectRuntime_BunLockfileInParentDir (line 177) | func TestJavaScript_detectRuntime_BunLockfileInParentDir(t *testing.T) {
function TestJavaScript_detectRuntime_BunWorkspace (line 222) | func TestJavaScript_detectRuntime_BunWorkspace(t *testing.T) {
function TestJavaScript_detectRuntime_IgnoresUnrelatedBunLockfile (line 276) | func TestJavaScript_detectRuntime_IgnoresUnrelatedBunLockfile(t *testing...
function TestJavaScript_detectRuntime_NodeMissingNpm (line 322) | func TestJavaScript_detectRuntime_NodeMissingNpm(t *testing.T) {
function TestJavaScript_findAllNodeModules (line 349) | func TestJavaScript_findAllNodeModules(t *testing.T) {
function TestJavaScript_verifyDependencies_NoPackageJson (line 396) | func TestJavaScript_verifyDependencies_NoPackageJson(t *testing.T) {
function TestJavaScript_verifyDependencies_NoNodeModules (line 427) | func TestJavaScript_verifyDependencies_NoNodeModules(t *testing.T) {
function TestJavaScript_verifyJsComputeRuntime_NotInstalled (line 463) | func TestJavaScript_verifyJsComputeRuntime_NotInstalled(t *testing.T) {
function TestJavaScript_verifyJsComputeRuntime_Installed (line 488) | func TestJavaScript_verifyJsComputeRuntime_Installed(t *testing.T) {
function TestJavaScript_verifyJsComputeRuntime_InParentNodeModules (line 509) | func TestJavaScript_verifyJsComputeRuntime_InParentNodeModules(t *testin...
function TestJavaScript_isDefaultBuildScript (line 535) | func TestJavaScript_isDefaultBuildScript(t *testing.T) {
function TestJavaScript_getDefaultBuildCommand_Node (line 561) | func TestJavaScript_getDefaultBuildCommand_Node(t *testing.T) {
function TestJavaScript_getDefaultBuildCommand_Bun (line 572) | func TestJavaScript_getDefaultBuildCommand_Bun(t *testing.T) {
FILE: pkg/commands/compute/language_other.go
function NewOther (line 11) | func NewOther(
type Other (line 39) | type Other struct
method DefaultBuildScript (line 74) | func (o Other) DefaultBuildScript() bool {
method Dependencies (line 79) | func (o Other) Dependencies() map[string]string {
method Build (line 86) | func (o Other) Build() error {
FILE: pkg/commands/compute/language_rust.go
constant RustDefaultBuildCommand (line 33) | RustDefaultBuildCommand = "cargo build --bin %s --release --target %s --...
constant RustDefaultWasmWasiTarget (line 36) | RustDefaultWasmWasiTarget = "wasm32-wasip1"
constant OldRustDefaultWasmWasiTarget (line 39) | OldRustDefaultWasmWasiTarget = "wasm32-wasi"
constant RustManifest (line 42) | RustManifest = "Cargo.toml"
constant RustDefaultPackageName (line 45) | RustDefaultPackageName = "fastly-compute-project"
constant RustSourceDirectory (line 48) | RustSourceDirectory = "src"
function NewRust (line 51) | func NewRust(
type Rust (line 79) | type Rust struct
method DefaultBuildScript (line 120) | func (r *Rust) DefaultBuildScript() bool {
method Dependencies (line 136) | func (r *Rust) Dependencies() map[string]string {
method Build (line 152) | func (r *Rust) Build() error {
method modifyCargoPackageName (line 218) | func (r *Rust) modifyCargoPackageName(defaultBuild bool) error {
method toolchainConstraint (line 317) | func (r *Rust) toolchainConstraint() (*semver.Version, error) {
method checkCargoConfigFileName (line 388) | func (r *Rust) checkCargoConfigFileName(rustVersion *semver.Version) e...
method ProcessLocation (line 414) | func (r *Rust) ProcessLocation() error {
type CargoLockFilePackage (line 125) | type CargoLockFilePackage struct
type CargoLockFile (line 131) | type CargoLockFile struct
type RustToolchainManifest (line 206) | type RustToolchainManifest struct
type RustToolchain (line 211) | type RustToolchain struct
type CargoLocateProject (line 447) | type CargoLocateProject struct
type CargoManifest (line 454) | type CargoManifest struct
method Read (line 460) | func (m *CargoManifest) Read(path string) error {
type CargoWorkspace (line 474) | type CargoWorkspace struct
type CargoPackage (line 481) | type CargoPackage struct
type CargoMetadata (line 488) | type CargoMetadata struct
method Read (line 494) | func (m *CargoMetadata) Read(errlog fsterr.LogInterface) error {
type CargoMetadataPackage (line 514) | type CargoMetadataPackage struct
FILE: pkg/commands/compute/language_toolchain.go
constant wasmBytes (line 20) | wasmBytes = 4
constant binWasmPath (line 23) | binWasmPath = "./bin/main.wasm"
type Toolchain (line 43) | type Toolchain interface
type BuildToolchain (line 53) | type BuildToolchain struct
method Build (line 88) | func (bt BuildToolchain) Build() error {
method validateWasm (line 263) | func (bt BuildToolchain) validateWasm() error {
method handleError (line 296) | func (bt BuildToolchain) handleError(err error) error {
method execCommand (line 310) | func (bt BuildToolchain) execCommand(cmd string, args []string, spinMe...
method promptForPostBuildContinue (line 326) | func (bt BuildToolchain) promptForPostBuildContinue(msg, script string...
FILE: pkg/commands/compute/metadata.go
type MetadataCommand (line 15) | type MetadataCommand struct
method Exec (line 49) | func (c *MetadataCommand) Exec(_ io.Reader, out io.Writer) error {
function NewMetadataCommand (line 31) | func NewMetadataCommand(parent argparser.Registerer, g *global.Data) *Me...
function toggleAll (line 126) | func toggleAll(state string) config.WasmMetadata {
FILE: pkg/commands/compute/metadata_test.go
function TestMetadata (line 18) | func TestMetadata(t *testing.T) {
FILE: pkg/commands/compute/pack.go
type PackCommand (line 20) | type PackCommand struct
method Exec (line 38) | func (c *PackCommand) Exec(_ io.Reader, out io.Writer) (err error) {
function NewPackCommand (line 26) | func NewPackCommand(parent argparser.Registerer, g *global.Data) *PackCo...
FILE: pkg/commands/compute/pack_test.go
function TestPack (line 16) | func TestPack(t *testing.T) {
FILE: pkg/commands/compute/publish.go
type PublishCommand (line 14) | type PublishCommand struct
method Exec (line 100) | func (c *PublishCommand) Exec(in io.Reader, out io.Writer) (err error) {
method Build (line 136) | func (c *PublishCommand) Build(in io.Reader, out io.Writer) error {
method Deploy (line 172) | func (c *PublishCommand) Deploy(in io.Reader, out io.Writer) error {
function NewPublishCommand (line 47) | func NewPublishCommand(parent argparser.Registerer, g *global.Data, buil...
FILE: pkg/commands/compute/root.go
type RootCommand (line 12) | type RootCommand struct
method Exec (line 29) | func (c *RootCommand) Exec(_ io.Reader, _ io.Writer) error {
constant CommandName (line 18) | CommandName = "compute"
function NewRootCommand (line 21) | func NewRootCommand(parent argparser.Registerer, g *global.Data) *RootCo...
FILE: pkg/commands/compute/secrets.go
function ExtendStaticSecretEnvVars (line 73) | func ExtendStaticSecretEnvVars(filter string) {
function FilterSecretsFromSlice (line 98) | func FilterSecretsFromSlice(data []string) []string {
function FilterSecretsFromString (line 148) | func FilterSecretsFromString(data string) string {
function FilterSecretsFromBytes (line 180) | func FilterSecretsFromBytes(data []byte) []byte {
FILE: pkg/commands/compute/serve.go
type ServeCommand (line 53) | type ServeCommand struct
method Exec (line 127) | func (c *ServeCommand) Exec(in io.Reader, out io.Writer) (err error) {
method Build (line 294) | func (c *ServeCommand) Build(in io.Reader, out io.Writer) error {
method setBackendsWithDefaultOverrideHostIfMissing (line 333) | func (c *ServeCommand) setBackendsWithDefaultOverrideHostIfMissing(out...
method GetViceroy (line 358) | func (c *ServeCommand) GetViceroy(spinner text.Spinner, out io.Writer,...
method InstallViceroy (line 454) | func (c *ServeCommand) InstallViceroy(
method GetPushpinProxyPort (line 595) | func (c *ServeCommand) GetPushpinProxyPort(out io.Writer) (uint16, err...
method GetPushpinPublishPort (line 638) | func (c *ServeCommand) GetPushpinPublishPort(out io.Writer) (uint16, e...
method GetPushpinRunner (line 679) | func (c *ServeCommand) GetPushpinRunner(out io.Writer) (bin string, er...
method BuildPushpinRoutes (line 718) | func (c *ServeCommand) BuildPushpinRoutes() []string {
method startPushpin (line 848) | func (c *ServeCommand) startPushpin(spinner text.Spinner, out io.Write...
function NewServeCommand (line 91) | func NewServeCommand(parent argparser.Registerer, g *global.Data, build ...
function checkViceroyEnvVar (line 439) | func checkViceroyEnvVar(value string) bool {
function normalizeHost (line 761) | func normalizeHost(u *url.URL) string {
function formatPushpinLog (line 781) | func formatPushpinLog(line string) (string, string) {
type pushpinContext (line 803) | type pushpinContext struct
method Close (line 816) | func (c *pushpinContext) Close() {
method buildPushpinConf (line 828) | func (c *pushpinContext) buildPushpinConf() string {
type localOpts (line 1051) | type localOpts struct
function local (line 1070) | func local(opts localOpts) error {
function watchFiles (line 1224) | func watchFiles(root string, gi *ignore.GitIgnore, verbose bool, s *fste...
function ignoreFiles (line 1354) | func ignoreFiles(watchDir argparser.OptionalString) *ignore.GitIgnore {
function readIgnoreFile (line 1381) | func readIgnoreFile(path string) (lines []string) {
function watchFile (line 1396) | func watchFile(path string, watcher *fsnotify.Watcher, verbose bool, out...
function killProcessTree (line 1411) | func killProcessTree(pid int) {
FILE: pkg/commands/compute/serve_test.go
function TestGetViceroy (line 34) | func TestGetViceroy(t *testing.T) {
FILE: pkg/commands/compute/serve_unix.go
function killProcess (line 9) | func killProcess(pid int) error {
FILE: pkg/commands/compute/serve_windows.go
function killProcess (line 10) | func killProcess(pid int) error {
FILE: pkg/commands/compute/setup/backend.go
type Backends (line 23) | type Backends struct
method Configure (line 51) | func (b *Backends) Configure() error {
method Create (line 59) | func (b *Backends) Create() error {
method Predefined (line 126) | func (b *Backends) Predefined() bool {
method isOriginless (line 131) | func (b *Backends) isOriginless() bool {
method checkPredefined (line 137) | func (b *Backends) checkPredefined() error {
method promptForBackend (line 208) | func (b *Backends) promptForBackend() error {
method createOriginlessBackend (line 270) | func (b *Backends) createOriginlessBackend() Backend {
method validateAddress (line 279) | func (b *Backends) validateAddress(input string) error {
type Backend (line 41) | type Backend struct
FILE: pkg/commands/compute/setup/config_store.go
type ConfigStores (line 20) | type ConfigStores struct
method Configure (line 53) | func (o *ConfigStores) Configure() error {
method Create (line 143) | func (o *ConfigStores) Create() error {
method Predefined (line 228) | func (o *ConfigStores) Predefined() bool {
type ConfigStore (line 38) | type ConfigStore struct
type ConfigStoreItem (line 47) | type ConfigStoreItem struct
FILE: pkg/commands/compute/setup/domain.go
constant defaultTopLevelDomain (line 20) | defaultTopLevelDomain = "edgecompute.app"
type Domains (line 27) | type Domains struct
method Configure (line 57) | func (d *Domains) Configure() error {
method Create (line 98) | func (d *Domains) Create() error {
method Missing (line 116) | func (d *Domains) Missing() bool {
method Predefined (line 125) | func (d *Domains) Predefined() bool {
method Validate (line 134) | func (d *Domains) Validate() error {
method validateDomain (line 155) | func (d *Domains) validateDomain(input string) error {
method createDomain (line 165) | func (d *Domains) createDomain(name string, attempt int) error {
type Domain (line 50) | type Domain struct
function generateDomainName (line 228) | func generateDomainName() string {
FILE: pkg/commands/compute/setup/interface.go
type Interface (line 4) | type Interface interface
FILE: pkg/commands/compute/setup/kv_store.go
type KVStores (line 23) | type KVStores struct
method Configure (line 57) | func (o *KVStores) Configure() error {
method Create (line 215) | func (o *KVStores) Create() error {
method Predefined (line 304) | func (o *KVStores) Predefined() bool {
type KVStore (line 41) | type KVStore struct
type KVStoreItem (line 50) | type KVStoreItem struct
function loadKVStoreFile (line 309) | func loadKVStoreFile(filePath string) ([]KVStoreItem, error) {
FILE: pkg/commands/compute/setup/kv_store_test.go
function TestLoadKVStoreFile (line 9) | func TestLoadKVStoreFile(t *testing.T) {
FILE: pkg/commands/compute/setup/loggers.go
type Loggers (line 14) | type Loggers struct
method Configure (line 26) | func (l *Loggers) Configure() error {
method Predefined (line 48) | func (l *Loggers) Predefined() bool {
type Logger (line 21) | type Logger struct
FILE: pkg/commands/compute/setup/secret_store.go
type SecretStores (line 21) | type SecretStores struct
method Predefined (line 55) | func (s *SecretStores) Predefined() bool {
method Configure (line 60) | func (s *SecretStores) Configure() error {
method Create (line 162) | func (s *SecretStores) Create() error {
type SecretStore (line 39) | type SecretStore struct
type SecretStoreEntry (line 48) | type SecretStoreEntry struct
FILE: pkg/commands/compute/testdata/build/cpp/main.cpp
function main (line 3) | int main() {
FILE: pkg/commands/compute/testdata/build/go/main.go
function main (line 5) | func main() {
FILE: pkg/commands/compute/testdata/build/rust/src/main.rs
function main (line 1) | fn main() {
FILE: pkg/commands/compute/update.go
type UpdateCommand (line 21) | type UpdateCommand struct
method Exec (line 64) | func (c *UpdateCommand) Exec(_ io.Reader, out io.Writer) (err error) {
function NewUpdateCommand (line 30) | func NewUpdateCommand(parent argparser.Registerer, g *global.Data) *Upda...
FILE: pkg/commands/compute/update_test.go
function TestUpdate (line 13) | func TestUpdate(t *testing.T) {
FILE: pkg/commands/compute/validate.go
function NewValidateCommand (line 21) | func NewValidateCommand(parent argparser.Registerer, g *global.Data) *Va...
type ValidateCommand (line 74) | type ValidateCommand struct
method Exec (line 31) | func (c *ValidateCommand) Exec(_ io.Reader, out io.Writer) error {
function validatePackageContent (line 85) | func validatePackageContent(pkgPath string) error {
function packageFiles (line 116) | func packageFiles(path string, fn func(archives.FileInfo) error) error {
FILE: pkg/commands/compute/validate_test.go
function TestValidate (line 11) | func TestValidate(t *testing.T) {
FILE: pkg/commands/config/config_test.go
function TestConfig (line 12) | func TestConfig(t *testing.T) {
FILE: pkg/commands/config/root.go
type RootCommand (line 16) | type RootCommand struct
method Exec (line 37) | func (c *RootCommand) Exec(_ io.Reader, out io.Writer) (err error) {
constant CommandName (line 24) | CommandName = "config"
function NewRootCommand (line 27) | func NewRootCommand(parent argparser.Registerer, g *global.Data) *RootCo...
FILE: pkg/commands/configstore/configstore_test.go
function TestCreateStoreCommand (line 18) | func TestCreateStoreCommand(t *testing.T) {
function TestDeleteStoreCommand (line 74) | func TestDeleteStoreCommand(t *testing.T) {
function TestGetStoreCommand (line 123) | func TestGetStoreCommand(t *testing.T) {
function TestListStoresCommand (line 213) | func TestListStoresCommand(t *testing.T) {
function TestListStoreServicesCommand (line 265) | func TestListStoreServicesCommand(t *testing.T) {
function TestUpdateStoreCommand (line 318) | func TestUpdateStoreCommand(t *testing.T) {
FILE: pkg/commands/configstore/create.go
function NewCreateCommand (line 16) | func NewCreateCommand(parent argparser.Registerer, g *global.Data) *Crea...
type CreateCommand (line 41) | type CreateCommand struct
method Exec (line 48) | func (c *CreateCommand) Exec(_ io.Reader, out io.Writer) error {
FILE: pkg/commands/configstore/delete.go
function NewDeleteCommand (line 16) | func NewDeleteCommand(parent argparser.Registerer, g *global.Data) *Dele...
type DeleteCommand (line 35) | type DeleteCommand struct
method Exec (line 42) | func (c *DeleteCommand) Exec(_ io.Reader, out io.Writer) error {
FILE: pkg/commands/configstore/describe.go
function NewDescribeCommand (line 16) | func NewDescribeCommand(parent argparser.Registerer, g *global.Data) *De...
type DescribeCommand (line 41) | type DescribeCommand struct
method Exec (line 49) | func (c *DescribeCommand) Exec(_ io.Reader, out io.Writer) error {
FILE: pkg/commands/configstore/helper_test.go
function fmtStore (line 10) | func fmtStore(cs *fastly.ConfigStore, csm *fastly.ConfigStoreMetadata) s...
function fmtStores (line 16) | func fmtStores(s []*fastly.ConfigStore) string {
function fmtServices (line 22) | func fmtServices(s []*fastly.Service) string {
FILE: pkg/commands/configstore/list.go
function NewListCommand (line 16) | func NewListCommand(parent argparser.Registerer, g *global.Data) *ListCo...
type ListCommand (line 32) | type ListCommand struct
method Exec (line 38) | func (c *ListCommand) Exec(_ io.Reader, out io.Writer) error {
FILE: pkg/commands/configstore/list_services.go
function NewListServicesCommand (line 16) | func NewListServicesCommand(parent argparser.Registerer, g *global.Data)...
type ListServicesCommand (line 35) | type ListServicesCommand struct
method Exec (line 42) | func (c *ListServicesCommand) Exec(_ io.Reader, out io.Writer) error {
FILE: pkg/commands/configstore/root.go
constant CommandName (line 11) | CommandName = "config-store"
function NewRootCommand (line 14) | func NewRootCommand(parent argparser.Registerer, g *global.Data) *RootCo...
type RootCommand (line 28) | type RootCommand struct
method Exec (line 34) | func (c *RootCommand) Exec(_ io.Reader, _ io.Writer) error {
FILE: pkg/commands/configstore/update.go
function NewUpdateCommand (line 16) | func NewUpdateCommand(parent argparser.Registerer, g *global.Data) *Upda...
type UpdateCommand (line 42) | type UpdateCommand struct
method Exec (line 49) | func (c *UpdateCommand) Exec(_ io.Reader, out io.Writer) error {
FILE: pkg/commands/configstoreentry/configstoreentry_test.go
function TestCreateEntryCommand (line 20) | func TestCreateEntryCommand(t *testing.T) {
function TestDeleteEntryCommand (line 81) | func TestDeleteEntryCommand(t *testing.T) {
function TestDescribeEntryCommand (line 186) | func TestDescribeEntryCommand(t *testing.T) {
function TestListEntriesCommand (line 250) | func TestListEntriesCommand(t *testing.T) {
function TestUpdateEntryCommand (line 302) | func TestUpdateEntryCommand(t *testing.T) {
function printConfigStoreItem (line 363) | func printConfigStoreItem(i *fastly.ConfigStoreItem) string {
function printConfigStoreItemsTbl (line 369) | func printConfigStoreItemsTbl(i []*fastly.ConfigStoreItem) string {
FILE: pkg/commands/configstoreentry/create.go
function NewCreateCommand (line 16) | func NewCreateCommand(parent argparser.Registerer, g *global.Data) *Crea...
type CreateCommand (line 56) | type CreateCommand struct
method Exec (line 64) | func (c *CreateCommand) Exec(in io.Reader, out io.Writer) error {
FILE: pkg/commands/configstoreentry/delete.go
constant deleteKeysConcurrencyLimit (line 20) | deleteKeysConcurrencyLimit int = 100
constant batchLimit (line 24) | batchLimit int = 100
function NewDeleteCommand (line 27) | func NewDeleteCommand(parent argparser.Registerer, g *global.Data) *Dele...
type DeleteCommand (line 55) | type DeleteCommand struct
method Exec (line 66) | func (c *DeleteCommand) Exec(in io.Reader, out io.Writer) error {
method deleteAllKeys (line 120) | func (c *DeleteCommand) deleteAllKeys(out io.Writer) error {
FILE: pkg/commands/configstoreentry/describe.go
function NewDescribeCommand (line 16) | func NewDescribeCommand(parent argparser.Registerer, g *global.Data) *De...
type DescribeCommand (line 42) | type DescribeCommand struct
method Exec (line 49) | func (c *DescribeCommand) Exec(_ io.Reader, out io.Writer) error {
FILE: pkg/commands/configstoreentry/errors.go
constant maxKeyLen (line 11) | maxKeyLen = 256
constant maxValueLen (line 15) | maxValueLen = 2 << 15
FILE: pkg/commands/configstoreentry/list.go
function NewListCommand (line 16) | func NewListCommand(parent argparser.Registerer, g *global.Data) *ListCo...
type ListCommand (line 35) | type ListCommand struct
method Exec (line 42) | func (c *ListCommand) Exec(_ io.Reader, out io.Writer) error {
FILE: pkg/commands/configstoreentry/root.go
constant CommandName (line 11) | CommandName = "config-store-entry"
function NewRootCommand (line 14) | func NewRootCommand(parent argparser.Registerer, g *global.Data) *RootCo...
type RootCommand (line 28) | type RootCommand struct
method Exec (line 34) | func (c *RootCommand) Exec(_ io.Reader, _ io.Writer) error {
FILE: pkg/commands/configstoreentry/update.go
function NewUpdateCommand (line 16) | func NewUpdateCommand(parent argparser.Registerer, g *global.Data) *Upda...
type UpdateCommand (line 62) | type UpdateCommand struct
method Exec (line 70) | func (c *UpdateCommand) Exec(in io.Reader, out io.Writer) error {
FILE: pkg/commands/dashboard/create.go
function NewCreateCommand (line 16) | func NewCreateCommand(parent argparser.Registerer, globals *global.Data)...
type CreateCommand (line 32) | type CreateCommand struct
method Exec (line 41) | func (c *CreateCommand) Exec(_ io.Reader, out io.Writer) error {
method constructInput (line 61) | func (c *CreateCommand) constructInput() *fastly.CreateObservabilityCu...
FILE: pkg/commands/dashboard/dashboard_test.go
constant userID (line 15) | userID = "test-user"
function TestCreate (line 18) | func TestCreate(t *testing.T) {
function TestDelete (line 72) | func TestDelete(t *testing.T) {
function TestDescribe (line 103) | func TestDescribe(t *testing.T) {
function TestList (line 132) | func TestList(t *testing.T) {
function TestUpdate (line 163) | func TestUpdate(t *testing.T) {
function getObservabilityCustomDashboard (line 198) | func getObservabilityCustomDashboard(_ context.Context, i *fastly.GetObs...
function listObservabilityCustomDashboards (line 213) | func listObservabilityCustomDashboards(_ context.Context, _ *fastly.List...
FILE: pkg/commands/dashboard/delete.go
function NewDeleteCommand (line 16) | func NewDeleteCommand(parent argparser.Registerer, globals *global.Data)...
type DeleteCommand (line 31) | type DeleteCommand struct
method Exec (line 39) | func (c *DeleteCommand) Exec(_ io.Reader, out io.Writer) error {
method constructInput (line 67) | func (c *DeleteCommand) constructInput() *fastly.DeleteObservabilityCu...
FILE: pkg/commands/dashboard/describe.go
function NewDescribeCommand (line 16) | func NewDescribeCommand(parent argparser.Registerer, globals *global.Dat...
type DescribeCommand (line 30) | type DescribeCommand struct
method Exec (line 38) | func (c *DescribeCommand) Exec(_ io.Reader, out io.Writer) error {
method constructInput (line 58) | func (c *DescribeCommand) constructInput() *fastly.GetObservabilityCus...
FILE: pkg/commands/dashboard/item/create.go
function NewCreateCommand (line 17) | func NewCreateCommand(parent argparser.Registerer, globals *global.Data)...
type CreateCommand (line 41) | type CreateCommand struct
method Exec (line 61) | func (c *CreateCommand) Exec(_ io.Reader, out io.Writer) error {
method constructInput (line 88) | func (c *CreateCommand) constructInput(d *fastly.ObservabilityCustomDa...
FILE: pkg/commands/dashboard/item/delete.go
function NewDeleteCommand (line 17) | func NewDeleteCommand(parent argparser.Registerer, globals *global.Data)...
type DeleteCommand (line 33) | type DeleteCommand struct
method Exec (line 43) | func (c *DeleteCommand) Exec(_ io.Reader, out io.Writer) error {
method constructInput (line 91) | func (c *DeleteCommand) constructInput(d *fastly.ObservabilityCustomDa...
FILE: pkg/commands/dashboard/item/describe.go
function NewDescribeCommand (line 17) | func NewDescribeCommand(parent argparser.Registerer, globals *global.Dat...
type DescribeCommand (line 33) | type DescribeCommand struct
method Exec (line 43) | func (c *DescribeCommand) Exec(_ io.Reader, out io.Writer) error {
method constructInput (line 73) | func (c *DescribeCommand) constructInput() *fastly.GetObservabilityCus...
function getItemFromDashboard (line 77) | func getItemFromDashboard(_ context.Context, d *fastly.ObservabilityCust...
FILE: pkg/commands/dashboard/item/item_test.go
function TestCreate (line 66) | func TestCreate(t *testing.T) {
function TestDelete (line 131) | func TestDelete(t *testing.T) {
function TestDescribe (line 158) | func TestDescribe(t *testing.T) {
function TestUpdate (line 185) | func TestUpdate(t *testing.T) {
function getDashboardOK (line 319) | func getDashboardOK(_ context.Context, _ *fastly.GetObservabilityCustomD...
function updateDashboardOK (line 324) | func updateDashboardOK(_ context.Context, i *fastly.UpdateObservabilityC...
function updateDashboardEmpty (line 330) | func updateDashboardEmpty(_ context.Context, _ *fastly.UpdateObservabili...
FILE: pkg/commands/dashboard/item/root.go
type RootCommand (line 12) | type RootCommand struct
method Exec (line 29) | func (c *RootCommand) Exec(_ io.Reader, _ io.Writer) error {
constant CommandName (line 18) | CommandName = "item"
function NewRootCommand (line 21) | func NewRootCommand(parent argparser.Registerer, globals *global.Data) *...
FILE: pkg/commands/dashboard/item/update.go
function NewUpdateCommand (line 17) | func NewUpdateCommand(parent argparser.Registerer, globals *global.Data)...
type UpdateCommand (line 42) | type UpdateCommand struct
method Exec (line 63) | func (c *UpdateCommand) Exec(_ io.Reader, out io.Writer) error {
method constructInput (line 91) | func (c *UpdateCommand) constructInput(d *fastly.ObservabilityCustomDa...
FILE: pkg/commands/dashboard/list.go
function NewListCommand (line 17) | func NewListCommand(parent argparser.Registerer, globals *global.Data) *...
type ListCommand (line 33) | type ListCommand struct
method Exec (line 44) | func (c *ListCommand) Exec(in io.Reader, out io.Writer) error {
method constructInput (line 113) | func (c *ListCommand) constructInput() (*fastly.ListObservabilityCusto...
FILE: pkg/commands/dashboard/printer/print.go
function PrintSummary (line 16) | func PrintSummary(out io.Writer, ds []fastly.ObservabilityCustomDashboar...
function PrintVerbose (line 32) | func PrintVerbose(out io.Writer, ds []fastly.ObservabilityCustomDashboar...
function PrintDashboard (line 41) | func PrintDashboard(out io.Writer, indent uint, dashboard *fastly.Observ...
function PrintItem (line 66) | func PrintItem(out io.Writer, indent uint, item *fastly.DashboardItem) {
FILE: pkg/commands/dashboard/root.go
type RootCommand (line 12) | type RootCommand struct
method Exec (line 29) | func (c *RootCommand) Exec(_ io.Reader, _ io.Writer) error {
constant CommandName (line 18) | CommandName = "dashboard"
function NewRootCommand (line 21) | func NewRootCommand(parent argparser.Registerer, globals *global.Data) *...
FILE: pkg/commands/dashboard/update.go
function NewUpdateCommand (line 16) | func NewUpdateCommand(parent argparser.Registerer, globals *global.Data)...
type UpdateCommand (line 33) | type UpdateCommand struct
method Exec (line 43) | func (c *UpdateCommand) Exec(_ io.Reader, out io.Writer) error {
method constructInput (line 63) | func (c *UpdateCommand) constructInput() *fastly.UpdateObservabilityCu...
FILE: pkg/commands/domain/common.go
function printSummary (line 14) | func printSummary(out io.Writer, data []domains.Data) {
function printVerbose (line 29) | func printVerbose(out io.Writer, data []domains.Data) {
FILE: pkg/commands/domain/create.go
type CreateCommand (line 18) | type CreateCommand struct
method Exec (line 51) | func (c *CreateCommand) Exec(_ io.Reader, out io.Writer) error {
function NewCreateCommand (line 30) | func NewCreateCommand(parent argparser.Registerer, g *global.Data) *Crea...
FILE: pkg/commands/domain/delete.go
type DeleteCommand (line 17) | type DeleteCommand struct
method Exec (line 38) | func (c *DeleteCommand) Exec(_ io.Reader, out io.Writer) error {
function NewDeleteCommand (line 23) | func NewDeleteCommand(parent argparser.Registerer, g *global.Data) *Dele...
FILE: pkg/commands/domain/describe.go
type DescribeCommand (line 17) | type DescribeCommand struct
method Exec (line 41) | func (c *DescribeCommand) Exec(_ io.Reader, out io.Writer) error {
function NewDescribeCommand (line 24) | func NewDescribeCommand(parent argparser.Registerer, g *global.Data) *De...
FILE: pkg/commands/domain/domain_test.go
function TestDomainCreate (line 17) | func TestDomainCreate(t *testing.T) {
function TestDomainList (line 86) | func TestDomainList(t *testing.T) {
function TestDomainDescribe (line 138) | func TestDomainDescribe(t *testing.T) {
function TestDomainUpdate (line 186) | func TestDomainUpdate(t *testing.T) {
function TestDomainDelete (line 255) | func TestDomainDelete(t *testing.T) {
FILE: pkg/commands/domain/list.go
type ListCommand (line 18) | type ListCommand struct
method Exec (line 55) | func (c *ListCommand) Exec(in io.Reader, out io.Writer) error {
function NewListCommand (line 30) | func NewListCommand(parent argparser.Registerer, g *global.Data) *ListCo...
FILE: pkg/commands/domain/root.go
type RootCommand (line 12) | type RootCommand struct
method Exec (line 29) | func (c *RootCommand) Exec(_ io.Reader, _ io.Writer) error {
constant CommandName (line 18) | CommandName = "domain"
function NewRootCommand (line 21) | func NewRootCommand(parent argparser.Registerer, g *global.Data) *RootCo...
FILE: pkg/commands/domain/update.go
type UpdateCommand (line 18) | type UpdateCommand struct
method Exec (line 45) | func (c *UpdateCommand) Exec(_ io.Reader, out io.Writer) error {
function NewUpdateCommand (line 26) | func NewUpdateCommand(parent argparser.Registerer, g *global.Data) *Upda...
FILE: pkg/commands/install/root.go
type RootCommand (line 17) | type RootCommand struct
method Exec (line 36) | func (c *RootCommand) Exec(_ io.Reader, out io.Writer) error {
constant CommandName (line 24) | CommandName = "install"
function NewRootCommand (line 27) | func NewRootCommand(parent argparser.Registerer, g *global.Data) *RootCo...
FILE: pkg/commands/ip/ip_test.go
function TestAllIPs (line 14) | func TestAllIPs(t *testing.T) {
FILE: pkg/commands/ip/root.go
type RootCommand (line 15) | type RootCommand struct
method Exec (line 31) | func (c *RootCommand) Exec(_ io.Reader, out io.Writer) error {
constant CommandName (line 20) | CommandName = "ip-list"
function NewRootCommand (line 23) | func NewRootCommand(parent argparser.Registerer, g *global.Data) *RootCo...
FILE: pkg/commands/kvstore/create.go
type CreateCommand (line 16) | type CreateCommand struct
method Exec (line 43) | func (c *CreateCommand) Exec(_ io.Reader, out io.Writer) error {
function NewCreateCommand (line 27) | func NewCreateCommand(parent argparser.Registerer, g *global.Data) *Crea...
FILE: pkg/commands/kvstore/delete.go
type DeleteCommand (line 19) | type DeleteCommand struct
method Exec (line 50) | func (c *DeleteCommand) Exec(in io.Reader, out io.Writer) error {
function NewDeleteCommand (line 30) | func NewDeleteCommand(parent argparser.Registerer, g *global.Data) *Dele...
FILE: pkg/commands/kvstore/describe.go
type DescribeCommand (line 16) | type DescribeCommand struct
method Exec (line 42) | func (c *DescribeCommand) Exec(_ io.Reader, out io.Writer) error {
function NewDescribeCommand (line 24) | func NewDescribeCommand(parent argparser.Registerer, g *global.Data) *De...
FILE: pkg/commands/kvstore/kvstore_test.go
function TestCreateStoreCommand (line 20) | func TestCreateStoreCommand(t *testing.T) {
function TestDeleteStoreCommand (line 112) | func TestDeleteStoreCommand(t *testing.T) {
function TestGetStoreCommand (line 161) | func TestGetStoreCommand(t *testing.T) {
function TestListStoresCommand (line 225) | func TestListStoresCommand(t *testing.T) {
function fmtStore (line 278) | func fmtStore(ks *fastly.KVStore) string {
function fmtStores (line 284) | func fmtStores(ks *fastly.ListKVStoresResponse) string {
FILE: pkg/commands/kvstore/list.go
type ListCommand (line 16) | type ListCommand struct
method Exec (line 37) | func (c *ListCommand) Exec(in io.Reader, out io.Writer) error {
function NewListCommand (line 22) | func NewListCommand(parent argparser.Registerer, g *global.Data) *ListCo...
FILE: pkg/commands/kvstore/root.go
type RootCommand (line 12) | type RootCommand struct
method Exec (line 29) | func (c *RootCommand) Exec(_ io.Reader, _ io.Writer) error {
constant CommandName (line 18) | CommandName = "kv-store"
function NewRootCommand (line 21) | func NewRootCommand(parent argparser.Registerer, g *global.Data) *RootCo...
FILE: pkg/commands/kvstoreentry/create.go
function NewCreateCommand (line 27) | func NewCreateCommand(parent argparser.Registerer, g *global.Data) *Crea...
type CreateCommand (line 58) | type CreateCommand struct
method Exec (line 78) | func (c *CreateCommand) Exec(in io.Reader, out io.Writer) error {
method CheckFlags (line 144) | func (c *CreateCommand) CheckFlags() error {
method ProcessStdin (line 162) | func (c *CreateCommand) ProcessStdin(in io.Reader, out io.Writer) error {
method ProcessFile (line 174) | func (c *CreateCommand) ProcessFile(out io.Writer) error {
method ProcessDir (line 196) | func (c *CreateCommand) ProcessDir(in io.Reader, out io.Writer) error {
method PromptWindowsUser (line 368) | func (c *CreateCommand) PromptWindowsUser(in io.Reader, out io.Writer)...
method CallBatchEndpoint (line 381) | func (c *CreateCommand) CallBatchEndpoint(in io.Reader, out io.Writer)...
function insertKey (line 433) | func insertKey(opts insertKeyOptions) error {
type insertKeyOptions (line 441) | type insertKeyOptions struct
type ProcessErr (line 449) | type ProcessErr struct
FILE: pkg/commands/kvstoreentry/delete.go
constant DeleteKeysPoolSize (line 21) | DeleteKeysPoolSize int = 100
constant DeleteKeysMaxErrors (line 25) | DeleteKeysMaxErrors int = 100
type DeleteCommand (line 28) | type DeleteCommand struct
method Exec (line 67) | func (c *DeleteCommand) Exec(in io.Reader, out io.Writer) error {
method DeleteAllKeys (line 138) | func (c *DeleteCommand) DeleteAllKeys(out io.Writer) error {
function NewDeleteCommand (line 43) | func NewDeleteCommand(parent argparser.Registerer, g *global.Data) *Dele...
FILE: pkg/commands/kvstoreentry/describe.go
type DescribeCommand (line 16) | type DescribeCommand struct
method Exec (line 45) | func (c *DescribeCommand) Exec(_ io.Reader, out io.Writer) error {
function NewDescribeCommand (line 24) | func NewDescribeCommand(parent argparser.Registerer, g *global.Data) *De...
FILE: pkg/commands/kvstoreentry/get.go
type GetCommand (line 19) | type GetCommand struct
method Exec (line 50) | func (c *GetCommand) Exec(_ io.Reader, out io.Writer) error {
function NewGetCommand (line 28) | func NewGetCommand(parent argparser.Registerer, g *global.Data) *GetComm...
FILE: pkg/commands/kvstoreentry/hidden.go
function isHiddenFile (line 3) | func isHiddenFile(filename string) bool {
FILE: pkg/commands/kvstoreentry/kvstoreentry_test.go
function TestCreateCommand (line 21) | func TestCreateCommand(t *testing.T) {
function TestDeleteCommand (line 193) | func TestDeleteCommand(t *testing.T) {
function TestGetCommand (line 311) | func TestGetCommand(t *testing.T) {
function TestDescribeCommand (line 427) | func TestDescribeCommand(t *testing.T) {
function TestListCommand (line 504) | func TestListCommand(t *testing.T) {
type mockKVStoresEntriesPaginator (line 558) | type mockKVStoresEntriesPaginator struct
method Next (line 564) | func (m *mockKVStoresEntriesPaginator) Next() bool {
method Keys (line 572) | func (m *mockKVStoresEntriesPaginator) Keys() []string {
method Err (line 576) | func (m *mockKVStoresEntriesPaginator) Err() error {
FILE: pkg/commands/kvstoreentry/list.go
type ListCommand (line 17) | type ListCommand struct
method Exec (line 53) | func (c *ListCommand) Exec(_ io.Reader, out io.Writer) error {
function NewListCommand (line 33) | func NewListCommand(parent argparser.Registerer, g *global.Data) *ListCo...
FILE: pkg/commands/kvstoreentry/root.go
type RootCommand (line 12) | type RootCommand struct
method Exec (line 29) | func (c *RootCommand) Exec(_ io.Reader, _ io.Writer) error {
constant CommandName (line 18) | CommandName = "kv-store-entry"
function NewRootCommand (line 21) | func NewRootCommand(parent argparser.Registerer, g *global.Data) *RootCo...
FILE: pkg/commands/logtail/root.go
type RootCommand (line 32) | type RootCommand struct
method Exec (line 75) | func (c *RootCommand) Exec(_ io.Reader, out io.Writer) error {
method tail (line 135) | func (c *RootCommand) tail(out io.Writer) error {
method adjustTimes (line 290) | func (c *RootCommand) adjustTimes() {
method enableManagedLogging (line 304) | func (c *RootCommand) enableManagedLogging(out io.Writer) error {
method outputLoop (line 316) | func (c *RootCommand) outputLoop(out io.Writer) {
method printLogs (line 450) | func (c *RootCommand) printLogs(out io.Writer, logs []Log) {
method doReq (line 465) | func (c *RootCommand) doReq(req *http.Request) (*http.Response, error) {
constant CommandName (line 46) | CommandName = "log-tail"
function NewRootCommand (line 49) | func NewRootCommand(parent argparser.Registerer, g *global.Data) *RootCo...
type cfg (line 489) | type cfg struct
type Log (line 518) | type Log struct
method RequestStartFromRaw (line 543) | func (l *Log) RequestStartFromRaw() time.Time {
method String (line 551) | func (l *Log) String() string {
type Batch (line 535) | type Batch struct
function makeNewPath (line 561) | func makeNewPath(path string, window int64, batchID string) (string, err...
function splitByReqID (line 584) | func splitByReqID(in []Log) map[string][]Log {
function parseResponseData (line 593) | func parseResponseData(data []byte) (Batch, error) {
function filterStream (line 606) | func filterStream(stream string, logs []Log) []Log {
function getTimeFromLink (line 624) | func getTimeFromLink(link string) (int64, error) {
function getLinks (line 630) | func getLinks(head http.Header) (prev, next string) {
function findIdxBySeq (line 645) | func findIdxBySeq(logs []Log, seq int) int {
function highSequence (line 656) | func highSequence(logs []Log) int {
FILE: pkg/commands/logtail/tail_test.go
constant responseFile (line 13) | responseFile = "testdata/response.json"
function TestAdjustTimes (line 17) | func TestAdjustTimes(t *testing.T) {
function TestSplitByReqID (line 46) | func TestSplitByReqID(t *testing.T) {
function TestParseResponseData (line 106) | func TestParseResponseData(t *testing.T) {
function TestFilterStream (line 140) | func TestFilterStream(t *testing.T) {
function TestGetLinks (line 197) | func TestGetLinks(t *testing.T) {
function TestSplitOnIdx (line 235) | func TestSplitOnIdx(t *testing.T) {
function TestHighSequence (line 304) | func TestHighSequence(t *testing.T) {
FILE: pkg/commands/ngwaf/countrylist/countrylist_test.go
constant listID (line 20) | listID = "someListID"
constant listDescription (line 21) | listDescription = "NGWAFCLIList"
constant listEntries (line 22) | listEntries = "us"
constant listType (line 23) | listType = "country"
constant listName (line 24) | listName = "listName"
function TestCountryListCreate (line 53) | func TestCountryListCreate(t *testing.T) {
function TestCountryListDelete (line 111) | func TestCountryListDelete(t *testing.T) {
function TestCountryListGet (line 168) | func TestCountryListGet(t *testing.T) {
function TestCountryListList (line 227) | func TestCountryListList(t *testing.T) {
function TestCountryListUpdate (line 300) | func TestCountryListUpdate(t *testing.T) {
FILE: pkg/commands/ngwaf/countrylist/create.go
type CreateCommand (line 18) | type CreateCommand struct
method Exec (line 51) | func (c *CreateCommand) Exec(_ io.Reader, out io.Writer) error {
function NewCreateCommand (line 31) | func NewCreateCommand(parent argparser.Registerer, g *global.Data) *Crea...
FILE: pkg/commands/ngwaf/countrylist/delete.go
type DeleteCommand (line 18) | type DeleteCommand struct
method Exec (line 46) | func (c *DeleteCommand) Exec(_ io.Reader, out io.Writer) error {
function NewDeleteCommand (line 27) | func NewDeleteCommand(parent argparser.Registerer, g *global.Data) *Dele...
FILE: pkg/commands/ngwaf/countrylist/get.go
type GetCommand (line 17) | type GetCommand struct
method Exec (line 45) | func (c *GetCommand) Exec(_ io.Reader, out io.Writer) error {
function NewGetCommand (line 26) | func NewGetCommand(parent argparser.Registerer, g *global.Data) *GetComm...
FILE: pkg/commands/ngwaf/countrylist/list.go
type ListCommand (line 19) | type ListCommand struct
method Exec (line 41) | func (c *ListCommand) Exec(_ io.Reader, out io.Writer) error {
function NewListCommand (line 25) | func NewListCommand(parent argparser.Registerer, g *global.Data) *ListCo...
FILE: pkg/commands/ngwaf/countrylist/root.go
type RootCommand (line 12) | type RootCommand struct
method Exec (line 29) | func (c *RootCommand) Exec(_ io.Reader, _ io.Writer) error {
constant CommandName (line 18) | CommandName = "country-list"
function NewRootCommand (line 21) | func NewRootCommand(parent argparser.Registerer, g *global.Data) *RootCo...
FILE: pkg/commands/ngwaf/countrylist/update.go
type UpdateCommand (line 18) | type UpdateCommand struct
method Exec (line 51) | func (c *UpdateCommand) Exec(_ io.Reader, out io.Writer) error {
function NewUpdateCommand (line 31) | func NewUpdateCommand(parent argparser.Registerer, g *global.Data) *Upda...
FILE: pkg/commands/ngwaf/customsignal/create.go
type CreateCommand (line 19) | type CreateCommand struct
method Exec (line 50) | func (c *CreateCommand) Exec(_ io.Reader, out io.Writer) error {
function NewCreateCommand (line 31) | func NewCreateCommand(parent argparser.Registerer, g *global.Data) *Crea...
FILE: pkg/commands/ngwaf/customsignal/customsignal_test.go
constant customSignalDescription (line 20) | customSignalDescription = "NGWAFCLICustomSignal"
constant customSignalID (line 21) | customSignalID = "someID"
constant customSignalName (line 22) | customSignalName = "CLICustomSignalName"
function TestCustomSignalCreate (line 36) | func TestCustomSignalCreate(t *testing.T) {
function TestCustomSignalDelete (line 89) | func TestCustomSignalDelete(t *testing.T) {
function TestCustomSignalGet (line 146) | func TestCustomSignalGet(t *testing.T) {
function TestCustomSignalList (line 205) | func TestCustomSignalList(t *testing.T) {
function TestCustomSignalUpdate (line 296) | func TestCustomSignalUpdate(t *testing.T) {
FILE: pkg/commands/ngwaf/customsignal/delete.go
type DeleteCommand (line 20) | type DeleteCommand struct
method Exec (line 48) | func (c *DeleteCommand) Exec(_ io.Reader, out io.Writer) error {
function NewDeleteCommand (line 29) | func NewDeleteCommand(parent argparser.Registerer, g *global.Data) *Dele...
FILE: pkg/commands/ngwaf/customsignal/get.go
type GetCommand (line 20) | type GetCommand struct
method Exec (line 48) | func (c *GetCommand) Exec(_ io.Reader, out io.Writer) error {
function NewGetCommand (line 29) | func NewGetCommand(parent argparser.Registerer, g *global.Data) *GetComm...
FILE: pkg/commands/ngwaf/customsignal/list.go
type ListCommand (line 19) | type ListCommand struct
method Exec (line 41) | func (c *ListCommand) Exec(_ io.Reader, out io.Writer) error {
function NewListCommand (line 25) | func NewListCommand(parent argparser.Registerer, g *global.Data) *ListCo...
FILE: pkg/commands/ngwaf/customsignal/root.go
type RootCommand (line 12) | type RootCommand struct
method Exec (line 29) | func (c *RootCommand) Exec(_ io.Reader, _ io.Writer) error {
constant CommandName (line 18) | CommandName = "customsignal"
function NewRootCommand (line 21) | func NewRootCommand(parent argparser.Registerer, g *global.Data) *RootCo...
FILE: pkg/commands/ngwaf/customsignal/update.go
type UpdateCommand (line 19) | type UpdateCommand struct
method Exec (line 48) | func (c *UpdateCommand) Exec(_ io.Reader, out io.Writer) error {
function NewUpdateCommand (line 29) | func NewUpdateCommand(parent argparser.Registerer, g *global.Data) *Upda...
FILE: pkg/commands/ngwaf/iplist/create.go
type CreateCommand (line 18) | type CreateCommand struct
method Exec (line 51) | func (c *CreateCommand) Exec(_ io.Reader, out io.Writer) error {
function NewCreateCommand (line 31) | func NewCreateCommand(parent argparser.Registerer, g *global.Data) *Crea...
FILE: pkg/commands/ngwaf/iplist/delete.go
type DeleteCommand (line 18) | type DeleteCommand struct
method Exec (line 46) | func (c *DeleteCommand) Exec(_ io.Reader, out io.Writer) error {
function NewDeleteCommand (line 27) | func NewDeleteCommand(parent argparser.Registerer, g *global.Data) *Dele...
FILE: pkg/commands/ngwaf/iplist/get.go
type GetCommand (line 17) | type GetCommand struct
method Exec (line 45) | func (c *GetCommand) Exec(_ io.Reader, out io.Writer) error {
function NewGetCommand (line 26) | func NewGetCommand(parent argparser.Registerer, g *global.Data) *GetComm...
FILE: pkg/commands/ngwaf/iplist/iplist_test.go
constant listID (line 20) | listID = "someListID"
constant listDescription (line 21) | listDescription = "NGWAFCLIList"
constant listEntries (line 22) | listEntries = "1.0.0.0"
constant listType (line 23) | listType = "ip"
constant listName (line 24) | listName = "listName"
function TestIPListCreate (line 53) | func TestIPListCreate(t *testing.T) {
function TestIPListDelete (line 111) | func TestIPListDelete(t *testing.T) {
function TestIPListGet (line 168) | func TestIPListGet(t *testing.T) {
function TestIPListList (line 227) | func TestIPListList(t *testing.T) {
function TestIPListUpdate (line 300) | func TestIPListUpdate(t *testing.T) {
FILE: pkg/commands/ngwaf/iplist/list.go
type ListCommand (line 19) | type ListCommand struct
method Exec (line 41) | func (c *ListCommand) Exec(_ io.Reader, out io.Writer) error {
function NewListCommand (line 25) | func NewListCommand(parent argparser.Registerer, g *global.Data) *ListCo...
FILE: pkg/commands/ngwaf/iplist/root.go
type RootCommand (line 12) | type RootCommand struct
method Exec (line 29) | func (c *RootCommand) Exec(_ io.Reader, _ io.Writer) error {
constant CommandName (line 18) | CommandName = "ip-list"
function NewRootCommand (line 21) | func NewRootCommand(parent argparser.Registerer, g *global.Data) *RootCo...
FILE: pkg/commands/ngwaf/iplist/update.go
type UpdateCommand (line 18) | type UpdateCommand struct
method Exec (line 51) | func (c *UpdateCommand) Exec(_ io.Reader, out io.Writer) error {
function NewUpdateCommand (line 31) | func NewUpdateCommand(parent argparser.Registerer, g *global.Data) *Upda...
FILE: pkg/commands/ngwaf/ngwaflist/api.go
type ListCreateInput (line 15) | type ListCreateInput struct
function ListCreate (line 25) | func ListCreate(argsInput ListCreateInput) (*lists.List, error) {
type ListDeleteInput (line 51) | type ListDeleteInput struct
function ListDelete (line 58) | func ListDelete(argsInput ListDeleteInput) error {
type ListGetInput (line 78) | type ListGetInput struct
function ListGet (line 85) | func ListGet(argsInput ListGetInput) (*lists.List, error) {
type ListListInput (line 105) | type ListListInput struct
function ListList (line 113) | func ListList(argsInput ListListInput) (*lists.Lists, error) {
type ListUpdateInput (line 145) | type ListUpdateInput struct
function ListUpdate (line 154) | func ListUpdate(argsInput ListUpdateInput) (*lists.List, error) {
function generateScope (line 180) | func generateScope(inputScope scope.Type, workspaceID string) (*scope.Sc...
FILE: pkg/commands/ngwaf/root.go
type RootCommand (line 13) | type RootCommand struct
method Exec (line 30) | func (c *RootCommand) Exec(_ io.Reader, _ io.Writer) error {
constant CommandName (line 19) | CommandName = "ngwaf"
function NewRootCommand (line 22) | func NewRootCommand(parent argparser.Registerer, g *global.Data) *RootCo...
FILE: pkg/commands/ngwaf/rule/create.go
type CreateCommand (line 23) | type CreateCommand struct
method Exec (line 50) | func (c *CreateCommand) Exec(_ io.Reader, out io.Writer) error {
function NewCreateCommand (line 32) | func NewCreateCommand(parent argparser.Registerer, g *global.Data) *Crea...
FILE: pkg/commands/ngwaf/rule/delete.go
type DeleteCommand (line 20) | type DeleteCommand struct
method Exec (line 48) | func (c *DeleteCommand) Exec(_ io.Reader, out io.Writer) error {
function NewDeleteCommand (line 29) | func NewDeleteCommand(parent argparser.Registerer, g *global.Data) *Dele...
FILE: pkg/commands/ngwaf/rule/get.go
type GetCommand (line 20) | type GetCommand struct
method Exec (line 48) | func (c *GetCommand) Exec(_ io.Reader, out io.Writer) error {
function NewGetCommand (line 29) | func NewGetCommand(parent argparser.Registerer, g *global.Data) *GetComm...
FILE: pkg/commands/ngwaf/rule/list.go
type ListCommand (line 20) | type ListCommand struct
method Exec (line 48) | func (c *ListCommand) Exec(_ io.Reader, out io.Writer) error {
function NewListCommand (line 30) | func NewListCommand(parent argparser.Registerer, g *global.Data) *ListCo...
FILE: pkg/commands/ngwaf/rule/root.go
type RootCommand (line 12) | type RootCommand struct
method Exec (li
Condensed preview — 1492 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (6,166K chars).
[
{
"path": ".fastly/config.toml",
"chars": 1328,
"preview": "config_version = 6\n\n[fastly]\naccount_endpoint = \"https://accounts.fastly.com\"\napi_endpoint = \"https://api.fastly.com\"\n\n["
},
{
"path": ".fastly/help/README.md",
"chars": 710,
"preview": "# Developer Hub Help Pages\n\nThis directory contains troubleshooting pages for common issues in this project, which are i"
},
{
"path": ".fastly/help/cli-auth.mdx",
"chars": 1606,
"preview": "---\nid: cli-auth\ntitle: Authenticate with the Fastly CLI\ntemplate: help\n---\n\n## Quick start\n\nPick whichever method suits"
},
{
"path": ".fastly/help/ecp-feature.mdx",
"chars": 310,
"preview": "---\nid: ecp-feature\ntitle: Compute is not enabled on your account\ntemplate: help\n---\n\nOur edge compute platform is in li"
},
{
"path": ".github/CODEOWNERS",
"chars": 25,
"preview": "* @fastly/developer-tools"
},
{
"path": ".github/ISSUE_TEMPLATE/bug_report.md",
"chars": 909,
"preview": "---\nname: Bug report\nabout: Tell us about a bug to help us improve\ntitle: ''\nlabels: bug\nassignees: ''\n\n---\n\n<!-- \n **N"
},
{
"path": ".github/ISSUE_TEMPLATE/config.yml",
"chars": 73,
"preview": "# Disable blank issues for non-maintainers. \nblank_issues_enabled: false\n"
},
{
"path": ".github/ISSUE_TEMPLATE/feature_request.md",
"chars": 1202,
"preview": "---\nname: Feature request\nabout: Suggest an idea for this project\ntitle: \"[FEATURE REQUEST] ...\"\nlabels: feature request"
},
{
"path": ".github/PULL_REQUEST_TEMPLATE.md",
"chars": 981,
"preview": "### Change summary\n\n <!--\nBriefly describe the changes introduced in this pull request. Include context or\nreasoning beh"
},
{
"path": ".github/dependabot.yml",
"chars": 658,
"preview": "version: 2\nupdates:\n - package-ecosystem: \"gomod\"\n directory: \"/\"\n schedule:\n interval: \"weekly\"\n allow:\n"
},
{
"path": ".github/workflows/dependabot_changelog_update.yml",
"chars": 2164,
"preview": "name: Generate changelog entry for Dependabot\n\non:\n pull_request:\n types:\n - opened\n - synchronize\n -"
},
{
"path": ".github/workflows/merge_to_main.yml",
"chars": 1037,
"preview": "name: Build CLI Binaries\non:\n pull_request:\n branches:\n - \"main\"\n types:\n [closed]\npermissions:\n conte"
},
{
"path": ".github/workflows/pr_test.yml",
"chars": 10446,
"preview": "name: Test\n\non:\n pull_request:\n types:\n - opened\n - synchronize\n - reopened\n - labeled\n - u"
},
{
"path": ".github/workflows/publish_release.yml",
"chars": 1506,
"preview": "name: NPM Release\non:\n workflow_dispatch:\n release:\n types:\n - published\npermissions:\n id-token: write\n cont"
},
{
"path": ".github/workflows/tag_to_draft_release.yml",
"chars": 1695,
"preview": "name: Draft Release from Tag\non:\n workflow_dispatch:\n push:\n tags:\n - 'v*'\npermissions:\n contents: read\njobs:"
},
{
"path": ".gitignore",
"chars": 1557,
"preview": "# Fastly binary\n**/fastly\n# But allow fastly main package\n!cmd/fastly\n\nRELEASE_CHANGELOG.md\n\n# Fastly package format fil"
},
{
"path": ".golangci.yml",
"chars": 932,
"preview": "version: \"2\"\nrun:\n allow-parallel-runners: true\n modules-download-mode: readonly\nlinters:\n enable:\n - durationchec"
},
{
"path": ".goreleaser.yml",
"chars": 5393,
"preview": "# https://goreleaser.com/customization/project/\nproject_name: fastly\nversion: 2\n\n# https://goreleaser.com/customization/"
},
{
"path": ".tmpl/create.go",
"chars": 3355,
"preview": "package ${CLI_PACKAGE}\n\nimport (\n\t\"io\"\n\n\t\"github.com/fastly/cli/pkg/argparser\"\n\t\"github.com/fastly/cli/pkg/manifest\"\n\t\"g"
},
{
"path": ".tmpl/delete.go",
"chars": 3300,
"preview": "package ${CLI_PACKAGE}\n\nimport (\n\t\"io\"\n\n\t\"github.com/fastly/cli/pkg/argparser\"\n\t\"github.com/fastly/cli/pkg/manifest\"\n\t\"g"
},
{
"path": ".tmpl/describe.go",
"chars": 3439,
"preview": "package ${CLI_PACKAGE}\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\n\t\"github.com/fastly/cli/pkg/argparser\"\n\t\"github.com/fastly/cli/pkg/manife"
},
{
"path": ".tmpl/doc.go",
"chars": 77,
"preview": "// Package ${CLI_PACKAGE} contains commands to <...>.\npackage ${CLI_PACKAGE}\n"
},
{
"path": ".tmpl/doc_parent.go",
"chars": 80,
"preview": "// Package ${CLI_CATEGORY} contains commands for <...>.\npackage ${CLI_CATEGORY}\n"
},
{
"path": ".tmpl/list.go",
"chars": 3900,
"preview": "package ${CLI_PACKAGE}\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\n\t\"github.com/fastly/cli/pkg/argparser\"\n\t\"github.com/fastly/cli/pkg/manife"
},
{
"path": ".tmpl/root.go",
"chars": 701,
"preview": "package ${CLI_PACKAGE}\n\nimport (\n\t\"io\"\n\n\t\"github.com/fastly/cli/pkg/argparser\"\n\t\"github.com/fastly/cli/pkg/config\"\n)\n\n//"
},
{
"path": ".tmpl/root_parent.go",
"chars": 711,
"preview": "package ${CLI_CATEGORY}\n\nimport (\n\t\"io\"\n\n\t\"github.com/fastly/cli/pkg/argparser\"\n\t\"github.com/fastly/cli/pkg/config\"\n)\n\n/"
},
{
"path": ".tmpl/test.go",
"chars": 9171,
"preview": "package ${CLI_PACKAGE}_test\n\nimport (\n\t\"testing\"\n\n\t\"github.com/fastly/go-fastly/v10/fastly\"\n\n\t\"github.com/fastly/cli/pkg"
},
{
"path": ".tmpl/update.go",
"chars": 3885,
"preview": "package ${CLI_PACKAGE}\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"io\"\n\n\t\"github.com/fastly/cli/pkg/argparser\"\n\t\"github.com/fast"
},
{
"path": "CHANGELOG.md",
"chars": 159740,
"preview": "# CHANGELOG\n\n## [Unreleased]\n\n### Breaking:\n\n### Bug Fixes:\n\n### Enhancements:\n\n### Dependencies:\n- build(deps): `github"
},
{
"path": "CONTRIBUTING.md",
"chars": 862,
"preview": "# Contributing\n\nWe're happy to receive feature requests and PRs. If your change is nontrivial,\nplease open an [issue](ht"
},
{
"path": "DEVELOPMENT.md",
"chars": 5025,
"preview": "## Development\n\nBuilding the Fastly CLI requires [Go](https://golang.org) (version\n1.18 or later), and [Rust](https://ww"
},
{
"path": "DOCUMENTATION.md",
"chars": 478,
"preview": "## Documentation\n\nThe help output from the Fastly CLI is consumed by the Fastly Developer Hub to produce online document"
},
{
"path": "Dockerfile-node",
"chars": 1225,
"preview": "FROM node:latest\nLABEL maintainer=\"Fastly OSS <oss@fastly.com>\"\n\nRUN apt-get update && apt-get install -y curl jq && apt"
},
{
"path": "Dockerfile-rust",
"chars": 1340,
"preview": "FROM rust:latest\nLABEL maintainer=\"Fastly OSS <oss@fastly.com>\"\n\nENV RUSTUP_TOOLCHAIN=$RUST_VERSION\nRUN rustup target ad"
},
{
"path": "ISSUES.md",
"chars": 1319,
"preview": "<div align=\"center\">\n <h3 align=\"center\">CLI Issues</h3>\n <p align=\"center\">Best practices for submitting an issue to "
},
{
"path": "LICENSE",
"chars": 10238,
"preview": "Apache License\nVersion 2.0, January 2004\nhttp://www.apache.org/licenses/\n\nTERMS AND CONDITIONS FOR USE, REPRODUCTION, AN"
},
{
"path": "Makefile",
"chars": 5671,
"preview": ".PHONY: clean\n\nSHELL := /usr/bin/env bash -o pipefail ## Set the shell to use for finding Go files (default: /bin/bash)\n"
},
{
"path": "README.md",
"chars": 3786,
"preview": "<div align=\"center\">\n <h3 align=\"center\">Fastly CLI</h3>\n <p align=\"center\">A CLI for interacting with the Fastly plat"
},
{
"path": "RELEASE.md",
"chars": 3464,
"preview": "# Release Process\n\n1. Merge all PRs intended for the release.\n1. Ensure any relevant `FIXME` notes in the code are addre"
},
{
"path": "SECURITY.md",
"chars": 856,
"preview": "## Report a security issue\n\nThe fastly/cli project team welcomes security reports and is committed to providing prompt a"
},
{
"path": "TESTING.md",
"chars": 2520,
"preview": "## Testing\n\nTo run the test suite:\n\n```sh\nmake test\n```\n\nNote that by default the tests are run using `go test` with the"
},
{
"path": "cmd/fastly/main.go",
"chars": 331,
"preview": "// Package main is the entry point for the Fastly CLI.\npackage main\n\nimport (\n\t\"os\"\n\n\t\"github.com/fastly/cli/pkg/app\"\n\tf"
},
{
"path": "deb-copyright",
"chars": 314,
"preview": "Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/\nSource: https://github.com/fastly/cli\nUpstrea"
},
{
"path": "go.mod",
"chars": 3685,
"preview": "module github.com/fastly/cli\n\ngo 1.25.0\n\ntoolchain go1.25.7\n\nrequire (\n\tgithub.com/Masterminds/semver/v3 v3.5.0\n\tgithub."
},
{
"path": "go.sum",
"chars": 21758,
"preview": "4d63.com/optional v0.2.0 h1:VtMa/Iy8Xn5JuIqJYwDScgBSBsZsKCwP7s35NiUB+8A=\n4d63.com/optional v0.2.0/go.mod h1:DBA8tAdkYkYb"
},
{
"path": "npm/@fastly/cli/.gitignore",
"chars": 30,
"preview": "LICENSE\nREADME.md\nSECURITY.md\n"
},
{
"path": "npm/@fastly/cli/fastly.js",
"chars": 1182,
"preview": "#!/usr/bin/env node\nimport { execFileSync } from \"node:child_process\";\n\nimport { pkgForCurrentPlatform } from \"./package"
},
{
"path": "npm/@fastly/cli/index.d.ts",
"chars": 86,
"preview": "declare module '@fastly/cli' {\n const location: string;\n export default location;\n}\n"
},
{
"path": "npm/@fastly/cli/index.js",
"chars": 900,
"preview": "import { pkgForCurrentPlatform } from \"./package-helpers.js\";\n\nconst pkg = pkgForCurrentPlatform();\n\nlet location;\ntry {"
},
{
"path": "npm/@fastly/cli/package-helpers.js",
"chars": 136,
"preview": "import { platform, arch } from \"node:process\";\n\nexport function pkgForCurrentPlatform() {\n return `@fastly/cli-${platfo"
},
{
"path": "npm/@fastly/cli/package.json",
"chars": 1074,
"preview": "{\n \"name\": \"@fastly/cli\",\n \"version\": \"10.12.3\",\n \"description\": \"Build, deploy and configure Fastly services f"
},
{
"path": "npm/@fastly/cli/update.js",
"chars": 5626,
"preview": "#!/usr/bin/env node\n\nimport { fileURLToPath } from \"node:url\";\nimport { dirname, join, parse } from \"node:path\";\nimport "
},
{
"path": "pkg/api/doc.go",
"chars": 80,
"preview": "// Package api provides abstractions for talking to the Fastly API.\npackage api\n"
},
{
"path": "pkg/api/interface.go",
"chars": 30576,
"preview": "package api\n\nimport (\n\t\"context\"\n\t\"crypto/ed25519\"\n\t\"net/http\"\n\n\t\"github.com/fastly/go-fastly/v15/fastly\"\n)\n\n// HTTPClie"
},
{
"path": "pkg/api/undocumented/undocumented.go",
"chars": 2548,
"preview": "// Package undocumented provides abstractions for talking to undocumented Fastly\n// API endpoints.\npackage undocumented\n"
},
{
"path": "pkg/app/disable_token_flag_test.go",
"chars": 2707,
"preview": "package app_test\n\nimport (\n\t\"bytes\"\n\tstderrors \"errors\"\n\t\"io\"\n\t\"strings\"\n\t\"testing\"\n\n\t\"github.com/fastly/cli/pkg/app\"\n\t\""
},
{
"path": "pkg/app/doc.go",
"chars": 197,
"preview": "// Package app provides helpers for creating and running the CLI application.\n// Care has been taken to make the CLI tes"
},
{
"path": "pkg/app/expiry_warning_test.go",
"chars": 10893,
"preview": "package app\n\nimport (\n\t\"bytes\"\n\t\"os\"\n\t\"strings\"\n\t\"testing\"\n\t\"time\"\n\n\t\"github.com/fastly/cli/pkg/config\"\n\tfsterr \"github."
},
{
"path": "pkg/app/metadata.json",
"chars": 51647,
"preview": "{\n \"acl\": {\n \"create\": {\n \"examples\": [\n {\n \"cmd\": \"fastly acl create --name robots --version a"
},
{
"path": "pkg/app/run.go",
"chars": 31138,
"preview": "package app\n\nimport (\n\t\"encoding/json\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"net/http\"\n\t\"os\"\n\t\"slices\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n"
},
{
"path": "pkg/app/run_test.go",
"chars": 8409,
"preview": "package app_test\n\nimport (\n\t\"bufio\"\n\t\"bytes\"\n\t\"context\"\n\t\"encoding/json\"\n\t\"io\"\n\t\"os\"\n\t\"strings\"\n\t\"testing\"\n\t\"time\"\n\n\t\"gi"
},
{
"path": "pkg/app/usage.go",
"chars": 20633,
"preview": "package app\n\nimport (\n\t\"bytes\"\n\t_ \"embed\"\n\t\"encoding/json\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"os\"\n\t\"strings\"\n\t\"text/template\"\n\n\t\"g"
},
{
"path": "pkg/app/usage_auth_help_test.go",
"chars": 1718,
"preview": "package app_test\n\nimport (\n\t\"bytes\"\n\tstderrors \"errors\"\n\t\"io\"\n\t\"strings\"\n\t\"testing\"\n\n\t\"github.com/fastly/cli/pkg/app\"\n\t\""
},
{
"path": "pkg/argparser/cmd.go",
"chars": 10492,
"preview": "package argparser\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\n\t\"github.com/fastly/go-fastly/v15/fastly\"\n\n\t\"github.com/fastly/kingpin\"\n\n\t\"4d6"
},
{
"path": "pkg/argparser/cmd_test.go",
"chars": 2523,
"preview": "package argparser_test\n\nimport (\n\t\"testing\"\n\n\t\"github.com/fastly/cli/pkg/argparser\"\n\t\"github.com/fastly/cli/pkg/env\"\n)\n\n"
},
{
"path": "pkg/argparser/common.go",
"chars": 2348,
"preview": "package argparser\n\nvar (\n\t// FlagCustomerIDName is the flag name.\n\tFlagCustomerIDName = \"customer-id\"\n\t// FlagCustomerID"
},
{
"path": "pkg/argparser/doc.go",
"chars": 101,
"preview": "// Package argparser contains helper abstractions for working with the CLI parser.\npackage argparser\n"
},
{
"path": "pkg/argparser/fixtures/content_test.txt",
"chars": 14,
"preview": "This is a test"
},
{
"path": "pkg/argparser/flags.go",
"chars": 12188,
"preview": "package argparser\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"regexp\"\n\t\"sort\"\n"
},
{
"path": "pkg/argparser/flags_test.go",
"chars": 11902,
"preview": "package argparser_test\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"fmt\"\n\t\"io\"\n\t\"net/http\"\n\t\"strings\"\n\t\"testing\"\n\n\t\"github.com/fastly"
},
{
"path": "pkg/auth/auth.go",
"chars": 14337,
"preview": "package auth\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"net/http\"\n\t\"net/url\"\n\t\"strconv\"\n\t\"strings\"\n\t"
},
{
"path": "pkg/auth/doc.go",
"chars": 73,
"preview": "// Package auth contains types to authenticate with Fastly.\npackage auth\n"
},
{
"path": "pkg/check/check.go",
"chars": 628,
"preview": "// Package check provides functions for validating installed binaries.\npackage check\n\nimport (\n\t\"time\"\n)\n\n// Stale valid"
},
{
"path": "pkg/commands/alias/acl/create.go",
"chars": 783,
"preview": "package acl\n\nimport (\n\t\"io\"\n\n\tnewcmd \"github.com/fastly/cli/pkg/commands/service/acl\"\n\n\t\"github.com/fastly/cli/pkg/argpa"
},
{
"path": "pkg/commands/alias/acl/delete.go",
"chars": 783,
"preview": "package acl\n\nimport (\n\t\"io\"\n\n\tnewcmd \"github.com/fastly/cli/pkg/commands/service/acl\"\n\n\t\"github.com/fastly/cli/pkg/argpa"
},
{
"path": "pkg/commands/alias/acl/describe.go",
"chars": 839,
"preview": "package acl\n\nimport (\n\t\"io\"\n\n\tnewcmd \"github.com/fastly/cli/pkg/commands/service/acl\"\n\n\t\"github.com/fastly/cli/pkg/argpa"
},
{
"path": "pkg/commands/alias/acl/doc.go",
"chars": 87,
"preview": "// Package acl contains deprecated aliases for the 'service acl' commands.\npackage acl\n"
},
{
"path": "pkg/commands/alias/acl/list.go",
"chars": 791,
"preview": "package acl\n\nimport (\n\t\"io\"\n\n\tnewcmd \"github.com/fastly/cli/pkg/commands/service/acl\"\n\n\t\"github.com/fastly/cli/pkg/argpa"
},
{
"path": "pkg/commands/alias/acl/root.go",
"chars": 787,
"preview": "package acl\n\nimport (\n\t\"io\"\n\n\t\"github.com/fastly/cli/pkg/argparser\"\n\t\"github.com/fastly/cli/pkg/global\"\n)\n\n// RootComman"
},
{
"path": "pkg/commands/alias/acl/update.go",
"chars": 783,
"preview": "package acl\n\nimport (\n\t\"io\"\n\n\tnewcmd \"github.com/fastly/cli/pkg/commands/service/acl\"\n\n\t\"github.com/fastly/cli/pkg/argpa"
},
{
"path": "pkg/commands/alias/aclentry/create.go",
"chars": 798,
"preview": "package aclentry\n\nimport (\n\t\"io\"\n\n\tnewcmd \"github.com/fastly/cli/pkg/commands/service/aclentry\"\n\n\t\"github.com/fastly/cli"
},
{
"path": "pkg/commands/alias/aclentry/delete.go",
"chars": 798,
"preview": "package aclentry\n\nimport (\n\t\"io\"\n\n\tnewcmd \"github.com/fastly/cli/pkg/commands/service/aclentry\"\n\n\t\"github.com/fastly/cli"
},
{
"path": "pkg/commands/alias/aclentry/describe.go",
"chars": 854,
"preview": "package aclentry\n\nimport (\n\t\"io\"\n\n\tnewcmd \"github.com/fastly/cli/pkg/commands/service/aclentry\"\n\n\t\"github.com/fastly/cli"
},
{
"path": "pkg/commands/alias/aclentry/doc.go",
"chars": 102,
"preview": "// Package aclentry contains deprecated aliases for the 'service aclentry' commands.\npackage aclentry\n"
},
{
"path": "pkg/commands/alias/aclentry/list.go",
"chars": 806,
"preview": "package aclentry\n\nimport (\n\t\"io\"\n\n\tnewcmd \"github.com/fastly/cli/pkg/commands/service/aclentry\"\n\n\t\"github.com/fastly/cli"
},
{
"path": "pkg/commands/alias/aclentry/root.go",
"chars": 797,
"preview": "package aclentry\n\nimport (\n\t\"io\"\n\n\t\"github.com/fastly/cli/pkg/argparser\"\n\t\"github.com/fastly/cli/pkg/global\"\n)\n\n// RootC"
},
{
"path": "pkg/commands/alias/aclentry/update.go",
"chars": 798,
"preview": "package aclentry\n\nimport (\n\t\"io\"\n\n\tnewcmd \"github.com/fastly/cli/pkg/commands/service/aclentry\"\n\n\t\"github.com/fastly/cli"
},
{
"path": "pkg/commands/alias/alerts/create.go",
"chars": 790,
"preview": "package alerts\n\nimport (\n\t\"io\"\n\n\tnewcmd \"github.com/fastly/cli/pkg/commands/service/alert\"\n\n\t\"github.com/fastly/cli/pkg/"
},
{
"path": "pkg/commands/alias/alerts/delete.go",
"chars": 790,
"preview": "package alerts\n\nimport (\n\t\"io\"\n\n\tnewcmd \"github.com/fastly/cli/pkg/commands/service/alert\"\n\n\t\"github.com/fastly/cli/pkg/"
},
{
"path": "pkg/commands/alias/alerts/describe.go",
"chars": 846,
"preview": "package alerts\n\nimport (\n\t\"io\"\n\n\tnewcmd \"github.com/fastly/cli/pkg/commands/service/alert\"\n\n\t\"github.com/fastly/cli/pkg/"
},
{
"path": "pkg/commands/alias/alerts/doc.go",
"chars": 95,
"preview": "// Package alerts contains deprecated aliases for the 'service alert' commands.\npackage alerts\n"
},
{
"path": "pkg/commands/alias/alerts/history.go",
"chars": 876,
"preview": "package alerts\n\nimport (\n\t\"io\"\n\n\tnewcmd \"github.com/fastly/cli/pkg/commands/service/alert\"\n\n\t\"github.com/fastly/cli/pkg/"
},
{
"path": "pkg/commands/alias/alerts/list.go",
"chars": 798,
"preview": "package alerts\n\nimport (\n\t\"io\"\n\n\tnewcmd \"github.com/fastly/cli/pkg/commands/service/alert\"\n\n\t\"github.com/fastly/cli/pkg/"
},
{
"path": "pkg/commands/alias/alerts/root.go",
"chars": 795,
"preview": "package alerts\n\nimport (\n\t\"io\"\n\n\t\"github.com/fastly/cli/pkg/argparser\"\n\t\"github.com/fastly/cli/pkg/global\"\n)\n\n// RootCom"
},
{
"path": "pkg/commands/alias/alerts/update.go",
"chars": 790,
"preview": "package alerts\n\nimport (\n\t\"io\"\n\n\tnewcmd \"github.com/fastly/cli/pkg/commands/service/alert\"\n\n\t\"github.com/fastly/cli/pkg/"
},
{
"path": "pkg/commands/alias/backend/create.go",
"chars": 827,
"preview": "package backend\n\nimport (\n\t\"io\"\n\n\tservicebackend \"github.com/fastly/cli/pkg/commands/service/backend\"\n\n\t\"github.com/fast"
},
{
"path": "pkg/commands/alias/backend/delete.go",
"chars": 827,
"preview": "package backend\n\nimport (\n\t\"io\"\n\n\tservicebackend \"github.com/fastly/cli/pkg/commands/service/backend\"\n\n\t\"github.com/fast"
},
{
"path": "pkg/commands/alias/backend/describe.go",
"chars": 883,
"preview": "package backend\n\nimport (\n\t\"io\"\n\n\tservicebackend \"github.com/fastly/cli/pkg/commands/service/backend\"\n\n\t\"github.com/fast"
},
{
"path": "pkg/commands/alias/backend/doc.go",
"chars": 99,
"preview": "// Package backend contains the 'backend' alias for the 'service backend' command.\npackage backend\n"
},
{
"path": "pkg/commands/alias/backend/list.go",
"chars": 835,
"preview": "package backend\n\nimport (\n\t\"io\"\n\n\tservicebackend \"github.com/fastly/cli/pkg/commands/service/backend\"\n\n\t\"github.com/fast"
},
{
"path": "pkg/commands/alias/backend/root.go",
"chars": 815,
"preview": "package backend\n\nimport (\n\t\"io\"\n\n\t\"github.com/fastly/cli/pkg/argparser\"\n\t\"github.com/fastly/cli/pkg/global\"\n)\n\n// RootCo"
},
{
"path": "pkg/commands/alias/backend/update.go",
"chars": 827,
"preview": "package backend\n\nimport (\n\t\"io\"\n\n\tservicebackend \"github.com/fastly/cli/pkg/commands/service/backend\"\n\n\t\"github.com/fast"
},
{
"path": "pkg/commands/alias/dictionary/create.go",
"chars": 804,
"preview": "package dictionary\n\nimport (\n\t\"io\"\n\n\tnewcmd \"github.com/fastly/cli/pkg/commands/service/dictionary\"\n\n\t\"github.com/fastly"
},
{
"path": "pkg/commands/alias/dictionary/delete.go",
"chars": 804,
"preview": "package dictionary\n\nimport (\n\t\"io\"\n\n\tnewcmd \"github.com/fastly/cli/pkg/commands/service/dictionary\"\n\n\t\"github.com/fastly"
},
{
"path": "pkg/commands/alias/dictionary/describe.go",
"chars": 860,
"preview": "package dictionary\n\nimport (\n\t\"io\"\n\n\tnewcmd \"github.com/fastly/cli/pkg/commands/service/dictionary\"\n\n\t\"github.com/fastly"
},
{
"path": "pkg/commands/alias/dictionary/doc.go",
"chars": 108,
"preview": "// Package dictionary contains deprecated aliases for the 'service dictionary' commands.\npackage dictionary\n"
},
{
"path": "pkg/commands/alias/dictionary/list.go",
"chars": 812,
"preview": "package dictionary\n\nimport (\n\t\"io\"\n\n\tnewcmd \"github.com/fastly/cli/pkg/commands/service/dictionary\"\n\n\t\"github.com/fastly"
},
{
"path": "pkg/commands/alias/dictionary/root.go",
"chars": 816,
"preview": "package dictionary\n\nimport (\n\t\"io\"\n\n\t\"github.com/fastly/cli/pkg/argparser\"\n\t\"github.com/fastly/cli/pkg/global\"\n)\n\n// Roo"
},
{
"path": "pkg/commands/alias/dictionary/update.go",
"chars": 804,
"preview": "package dictionary\n\nimport (\n\t\"io\"\n\n\tnewcmd \"github.com/fastly/cli/pkg/commands/service/dictionary\"\n\n\t\"github.com/fastly"
},
{
"path": "pkg/commands/alias/dictionaryentry/create.go",
"chars": 884,
"preview": "package dictionaryentry\n\nimport (\n\t\"io\"\n\n\tservicedictionaryentry \"github.com/fastly/cli/pkg/commands/service/dictionarye"
},
{
"path": "pkg/commands/alias/dictionaryentry/delete.go",
"chars": 884,
"preview": "package dictionaryentry\n\nimport (\n\t\"io\"\n\n\tservicedictionaryentry \"github.com/fastly/cli/pkg/commands/service/dictionarye"
},
{
"path": "pkg/commands/alias/dictionaryentry/describe.go",
"chars": 940,
"preview": "package dictionaryentry\n\nimport (\n\t\"io\"\n\n\tservicedictionaryentry \"github.com/fastly/cli/pkg/commands/service/dictionarye"
},
{
"path": "pkg/commands/alias/dictionaryentry/doc.go",
"chars": 133,
"preview": "// Package dictionaryentry contains the 'dictionary-entry' alias for the 'service dictionary-entry' command.\npackage dic"
},
{
"path": "pkg/commands/alias/dictionaryentry/list.go",
"chars": 892,
"preview": "package dictionaryentry\n\nimport (\n\t\"io\"\n\n\tservicedictionaryentry \"github.com/fastly/cli/pkg/commands/service/dictionarye"
},
{
"path": "pkg/commands/alias/dictionaryentry/root.go",
"chars": 829,
"preview": "package dictionaryentry\n\nimport (\n\t\"io\"\n\n\t\"github.com/fastly/cli/pkg/argparser\"\n\t\"github.com/fastly/cli/pkg/global\"\n)\n\n/"
},
{
"path": "pkg/commands/alias/dictionaryentry/update.go",
"chars": 884,
"preview": "package dictionaryentry\n\nimport (\n\t\"io\"\n\n\tservicedictionaryentry \"github.com/fastly/cli/pkg/commands/service/dictionarye"
},
{
"path": "pkg/commands/alias/doc.go",
"chars": 115,
"preview": "// Package alias contains aliases for commands which have been renamed/relocated and are deprecated.\npackage alias\n"
},
{
"path": "pkg/commands/alias/healthcheck/create.go",
"chars": 855,
"preview": "package healthcheck\n\nimport (\n\t\"io\"\n\n\tservicehealthcheck \"github.com/fastly/cli/pkg/commands/service/healthcheck\"\n\n\t\"git"
},
{
"path": "pkg/commands/alias/healthcheck/delete.go",
"chars": 855,
"preview": "package healthcheck\n\nimport (\n\t\"io\"\n\n\tservicehealthcheck \"github.com/fastly/cli/pkg/commands/service/healthcheck\"\n\n\t\"git"
},
{
"path": "pkg/commands/alias/healthcheck/describe.go",
"chars": 911,
"preview": "package healthcheck\n\nimport (\n\t\"io\"\n\n\tservicehealthcheck \"github.com/fastly/cli/pkg/commands/service/healthcheck\"\n\n\t\"git"
},
{
"path": "pkg/commands/alias/healthcheck/doc.go",
"chars": 115,
"preview": "// Package healthcheck contains the 'healthcheck' alias for the 'service healthcheck' command.\npackage healthcheck\n"
},
{
"path": "pkg/commands/alias/healthcheck/list.go",
"chars": 863,
"preview": "package healthcheck\n\nimport (\n\t\"io\"\n\n\tservicehealthcheck \"github.com/fastly/cli/pkg/commands/service/healthcheck\"\n\n\t\"git"
},
{
"path": "pkg/commands/alias/healthcheck/root.go",
"chars": 827,
"preview": "package healthcheck\n\nimport (\n\t\"io\"\n\n\t\"github.com/fastly/cli/pkg/argparser\"\n\t\"github.com/fastly/cli/pkg/global\"\n)\n\n// Ro"
},
{
"path": "pkg/commands/alias/healthcheck/update.go",
"chars": 855,
"preview": "package healthcheck\n\nimport (\n\t\"io\"\n\n\tservicehealthcheck \"github.com/fastly/cli/pkg/commands/service/healthcheck\"\n\n\t\"git"
},
{
"path": "pkg/commands/alias/imageoptimizerdefaults/doc.go",
"chars": 144,
"preview": "// Package imageoptimizerdefaults contains deprecated aliases for the 'service imageoptimizerdefaults' commands.\npackage"
},
{
"path": "pkg/commands/alias/imageoptimizerdefaults/get.go",
"chars": 804,
"preview": "package imageoptimizerdefaults\n\nimport (\n\t\"io\"\n\n\tnewcmd \"github.com/fastly/cli/pkg/commands/service/imageoptimizerdefaul"
},
{
"path": "pkg/commands/alias/imageoptimizerdefaults/root.go",
"chars": 845,
"preview": "package imageoptimizerdefaults\n\nimport (\n\t\"io\"\n\n\t\"github.com/fastly/cli/pkg/argparser\"\n\t\"github.com/fastly/cli/pkg/globa"
},
{
"path": "pkg/commands/alias/imageoptimizerdefaults/update.go",
"chars": 840,
"preview": "package imageoptimizerdefaults\n\nimport (\n\t\"io\"\n\n\tnewcmd \"github.com/fastly/cli/pkg/commands/service/imageoptimizerdefaul"
},
{
"path": "pkg/commands/alias/logging/azureblob/create.go",
"chars": 817,
"preview": "package azureblob\n\nimport (\n\t\"io\"\n\n\tnewcmd \"github.com/fastly/cli/pkg/commands/service/logging/azureblob\"\n\n\t\"github.com/"
},
{
"path": "pkg/commands/alias/logging/azureblob/delete.go",
"chars": 817,
"preview": "package azureblob\n\nimport (\n\t\"io\"\n\n\tnewcmd \"github.com/fastly/cli/pkg/commands/service/logging/azureblob\"\n\n\t\"github.com/"
},
{
"path": "pkg/commands/alias/logging/azureblob/describe.go",
"chars": 873,
"preview": "package azureblob\n\nimport (\n\t\"io\"\n\n\tnewcmd \"github.com/fastly/cli/pkg/commands/service/logging/azureblob\"\n\n\t\"github.com/"
},
{
"path": "pkg/commands/alias/logging/azureblob/doc.go",
"chars": 113,
"preview": "// Package azureblob contains deprecated aliases for the 'service logging azureblob' commands.\npackage azureblob\n"
},
{
"path": "pkg/commands/alias/logging/azureblob/list.go",
"chars": 825,
"preview": "package azureblob\n\nimport (\n\t\"io\"\n\n\tnewcmd \"github.com/fastly/cli/pkg/commands/service/logging/azureblob\"\n\n\t\"github.com/"
},
{
"path": "pkg/commands/alias/logging/azureblob/root.go",
"chars": 847,
"preview": "package azureblob\n\nimport (\n\t\"io\"\n\n\t\"github.com/fastly/cli/pkg/argparser\"\n\t\"github.com/fastly/cli/pkg/global\"\n)\n\n// Root"
},
{
"path": "pkg/commands/alias/logging/azureblob/update.go",
"chars": 817,
"preview": "package azureblob\n\nimport (\n\t\"io\"\n\n\tnewcmd \"github.com/fastly/cli/pkg/commands/service/logging/azureblob\"\n\n\t\"github.com/"
},
{
"path": "pkg/commands/alias/logging/bigquery/create.go",
"chars": 814,
"preview": "package bigquery\n\nimport (\n\t\"io\"\n\n\tnewcmd \"github.com/fastly/cli/pkg/commands/service/logging/bigquery\"\n\n\t\"github.com/fa"
},
{
"path": "pkg/commands/alias/logging/bigquery/delete.go",
"chars": 814,
"preview": "package bigquery\n\nimport (\n\t\"io\"\n\n\tnewcmd \"github.com/fastly/cli/pkg/commands/service/logging/bigquery\"\n\n\t\"github.com/fa"
},
{
"path": "pkg/commands/alias/logging/bigquery/describe.go",
"chars": 870,
"preview": "package bigquery\n\nimport (\n\t\"io\"\n\n\tnewcmd \"github.com/fastly/cli/pkg/commands/service/logging/bigquery\"\n\n\t\"github.com/fa"
},
{
"path": "pkg/commands/alias/logging/bigquery/doc.go",
"chars": 110,
"preview": "// Package bigquery contains deprecated aliases for the 'service logging bigquery' commands.\npackage bigquery\n"
},
{
"path": "pkg/commands/alias/logging/bigquery/list.go",
"chars": 822,
"preview": "package bigquery\n\nimport (\n\t\"io\"\n\n\tnewcmd \"github.com/fastly/cli/pkg/commands/service/logging/bigquery\"\n\n\t\"github.com/fa"
},
{
"path": "pkg/commands/alias/logging/bigquery/root.go",
"chars": 842,
"preview": "package bigquery\n\nimport (\n\t\"io\"\n\n\t\"github.com/fastly/cli/pkg/argparser\"\n\t\"github.com/fastly/cli/pkg/global\"\n)\n\n// RootC"
},
{
"path": "pkg/commands/alias/logging/bigquery/update.go",
"chars": 814,
"preview": "package bigquery\n\nimport (\n\t\"io\"\n\n\tnewcmd \"github.com/fastly/cli/pkg/commands/service/logging/bigquery\"\n\n\t\"github.com/fa"
},
{
"path": "pkg/commands/alias/logging/cloudfiles/create.go",
"chars": 820,
"preview": "package cloudfiles\n\nimport (\n\t\"io\"\n\n\tnewcmd \"github.com/fastly/cli/pkg/commands/service/logging/cloudfiles\"\n\n\t\"github.co"
},
{
"path": "pkg/commands/alias/logging/cloudfiles/delete.go",
"chars": 820,
"preview": "package cloudfiles\n\nimport (\n\t\"io\"\n\n\tnewcmd \"github.com/fastly/cli/pkg/commands/service/logging/cloudfiles\"\n\n\t\"github.co"
},
{
"path": "pkg/commands/alias/logging/cloudfiles/describe.go",
"chars": 876,
"preview": "package cloudfiles\n\nimport (\n\t\"io\"\n\n\tnewcmd \"github.com/fastly/cli/pkg/commands/service/logging/cloudfiles\"\n\n\t\"github.co"
},
{
"path": "pkg/commands/alias/logging/cloudfiles/doc.go",
"chars": 116,
"preview": "// Package cloudfiles contains deprecated aliases for the 'service logging cloudfiles' commands.\npackage cloudfiles\n"
},
{
"path": "pkg/commands/alias/logging/cloudfiles/list.go",
"chars": 828,
"preview": "package cloudfiles\n\nimport (\n\t\"io\"\n\n\tnewcmd \"github.com/fastly/cli/pkg/commands/service/logging/cloudfiles\"\n\n\t\"github.co"
},
{
"path": "pkg/commands/alias/logging/cloudfiles/root.go",
"chars": 852,
"preview": "package cloudfiles\n\nimport (\n\t\"io\"\n\n\t\"github.com/fastly/cli/pkg/argparser\"\n\t\"github.com/fastly/cli/pkg/global\"\n)\n\n// Roo"
},
{
"path": "pkg/commands/alias/logging/cloudfiles/update.go",
"chars": 820,
"preview": "package cloudfiles\n\nimport (\n\t\"io\"\n\n\tnewcmd \"github.com/fastly/cli/pkg/commands/service/logging/cloudfiles\"\n\n\t\"github.co"
},
{
"path": "pkg/commands/alias/logging/datadog/create.go",
"chars": 811,
"preview": "package datadog\n\nimport (\n\t\"io\"\n\n\tnewcmd \"github.com/fastly/cli/pkg/commands/service/logging/datadog\"\n\n\t\"github.com/fast"
},
{
"path": "pkg/commands/alias/logging/datadog/delete.go",
"chars": 811,
"preview": "package datadog\n\nimport (\n\t\"io\"\n\n\tnewcmd \"github.com/fastly/cli/pkg/commands/service/logging/datadog\"\n\n\t\"github.com/fast"
},
{
"path": "pkg/commands/alias/logging/datadog/describe.go",
"chars": 867,
"preview": "package datadog\n\nimport (\n\t\"io\"\n\n\tnewcmd \"github.com/fastly/cli/pkg/commands/service/logging/datadog\"\n\n\t\"github.com/fast"
},
{
"path": "pkg/commands/alias/logging/datadog/doc.go",
"chars": 107,
"preview": "// Package datadog contains deprecated aliases for the 'service logging datadog' commands.\npackage datadog\n"
},
{
"path": "pkg/commands/alias/logging/datadog/list.go",
"chars": 819,
"preview": "package datadog\n\nimport (\n\t\"io\"\n\n\tnewcmd \"github.com/fastly/cli/pkg/commands/service/logging/datadog\"\n\n\t\"github.com/fast"
},
{
"path": "pkg/commands/alias/logging/datadog/root.go",
"chars": 832,
"preview": "package datadog\n\nimport (\n\t\"io\"\n\n\t\"github.com/fastly/cli/pkg/argparser\"\n\t\"github.com/fastly/cli/pkg/global\"\n)\n\n// RootCo"
},
{
"path": "pkg/commands/alias/logging/datadog/update.go",
"chars": 811,
"preview": "package datadog\n\nimport (\n\t\"io\"\n\n\tnewcmd \"github.com/fastly/cli/pkg/commands/service/logging/datadog\"\n\n\t\"github.com/fast"
},
{
"path": "pkg/commands/alias/logging/digitalocean/create.go",
"chars": 826,
"preview": "package digitalocean\n\nimport (\n\t\"io\"\n\n\tnewcmd \"github.com/fastly/cli/pkg/commands/service/logging/digitalocean\"\n\n\t\"githu"
},
{
"path": "pkg/commands/alias/logging/digitalocean/delete.go",
"chars": 826,
"preview": "package digitalocean\n\nimport (\n\t\"io\"\n\n\tnewcmd \"github.com/fastly/cli/pkg/commands/service/logging/digitalocean\"\n\n\t\"githu"
},
{
"path": "pkg/commands/alias/logging/digitalocean/describe.go",
"chars": 882,
"preview": "package digitalocean\n\nimport (\n\t\"io\"\n\n\tnewcmd \"github.com/fastly/cli/pkg/commands/service/logging/digitalocean\"\n\n\t\"githu"
},
{
"path": "pkg/commands/alias/logging/digitalocean/doc.go",
"chars": 122,
"preview": "// Package digitalocean contains deprecated aliases for the 'service logging digitalocean' commands.\npackage digitalocea"
},
{
"path": "pkg/commands/alias/logging/digitalocean/list.go",
"chars": 834,
"preview": "package digitalocean\n\nimport (\n\t\"io\"\n\n\tnewcmd \"github.com/fastly/cli/pkg/commands/service/logging/digitalocean\"\n\n\t\"githu"
},
{
"path": "pkg/commands/alias/logging/digitalocean/root.go",
"chars": 854,
"preview": "package digitalocean\n\nimport (\n\t\"io\"\n\n\t\"github.com/fastly/cli/pkg/argparser\"\n\t\"github.com/fastly/cli/pkg/global\"\n)\n\n// R"
},
{
"path": "pkg/commands/alias/logging/digitalocean/update.go",
"chars": 826,
"preview": "package digitalocean\n\nimport (\n\t\"io\"\n\n\tnewcmd \"github.com/fastly/cli/pkg/commands/service/logging/digitalocean\"\n\n\t\"githu"
},
{
"path": "pkg/commands/alias/logging/doc.go",
"chars": 99,
"preview": "// Package logging contains deprecated aliases for the 'service logging' commands.\npackage logging\n"
},
{
"path": "pkg/commands/alias/logging/elasticsearch/create.go",
"chars": 829,
"preview": "package elasticsearch\n\nimport (\n\t\"io\"\n\n\tnewcmd \"github.com/fastly/cli/pkg/commands/service/logging/elasticsearch\"\n\n\t\"git"
},
{
"path": "pkg/commands/alias/logging/elasticsearch/delete.go",
"chars": 829,
"preview": "package elasticsearch\n\nimport (\n\t\"io\"\n\n\tnewcmd \"github.com/fastly/cli/pkg/commands/service/logging/elasticsearch\"\n\n\t\"git"
},
{
"path": "pkg/commands/alias/logging/elasticsearch/describe.go",
"chars": 885,
"preview": "package elasticsearch\n\nimport (\n\t\"io\"\n\n\tnewcmd \"github.com/fastly/cli/pkg/commands/service/logging/elasticsearch\"\n\n\t\"git"
},
{
"path": "pkg/commands/alias/logging/elasticsearch/doc.go",
"chars": 125,
"preview": "// Package elasticsearch contains deprecated aliases for the 'service logging elasticsearch' commands.\npackage elasticse"
},
{
"path": "pkg/commands/alias/logging/elasticsearch/list.go",
"chars": 837,
"preview": "package elasticsearch\n\nimport (\n\t\"io\"\n\n\tnewcmd \"github.com/fastly/cli/pkg/commands/service/logging/elasticsearch\"\n\n\t\"git"
},
{
"path": "pkg/commands/alias/logging/elasticsearch/root.go",
"chars": 850,
"preview": "package elasticsearch\n\nimport (\n\t\"io\"\n\n\t\"github.com/fastly/cli/pkg/argparser\"\n\t\"github.com/fastly/cli/pkg/global\"\n)\n\n// "
},
{
"path": "pkg/commands/alias/logging/elasticsearch/update.go",
"chars": 829,
"preview": "package elasticsearch\n\nimport (\n\t\"io\"\n\n\tnewcmd \"github.com/fastly/cli/pkg/commands/service/logging/elasticsearch\"\n\n\t\"git"
},
{
"path": "pkg/commands/alias/logging/ftp/create.go",
"chars": 799,
"preview": "package ftp\n\nimport (\n\t\"io\"\n\n\tnewcmd \"github.com/fastly/cli/pkg/commands/service/logging/ftp\"\n\n\t\"github.com/fastly/cli/p"
},
{
"path": "pkg/commands/alias/logging/ftp/delete.go",
"chars": 799,
"preview": "package ftp\n\nimport (\n\t\"io\"\n\n\tnewcmd \"github.com/fastly/cli/pkg/commands/service/logging/ftp\"\n\n\t\"github.com/fastly/cli/p"
},
{
"path": "pkg/commands/alias/logging/ftp/describe.go",
"chars": 855,
"preview": "package ftp\n\nimport (\n\t\"io\"\n\n\tnewcmd \"github.com/fastly/cli/pkg/commands/service/logging/ftp\"\n\n\t\"github.com/fastly/cli/p"
},
{
"path": "pkg/commands/alias/logging/ftp/doc.go",
"chars": 95,
"preview": "// Package ftp contains deprecated aliases for the 'service logging ftp' commands.\npackage ftp\n"
},
{
"path": "pkg/commands/alias/logging/ftp/list.go",
"chars": 807,
"preview": "package ftp\n\nimport (\n\t\"io\"\n\n\tnewcmd \"github.com/fastly/cli/pkg/commands/service/logging/ftp\"\n\n\t\"github.com/fastly/cli/p"
},
{
"path": "pkg/commands/alias/logging/ftp/root.go",
"chars": 820,
"preview": "package ftp\n\nimport (\n\t\"io\"\n\n\t\"github.com/fastly/cli/pkg/argparser\"\n\t\"github.com/fastly/cli/pkg/global\"\n)\n\n// RootComman"
},
{
"path": "pkg/commands/alias/logging/ftp/update.go",
"chars": 799,
"preview": "package ftp\n\nimport (\n\t\"io\"\n\n\tnewcmd \"github.com/fastly/cli/pkg/commands/service/logging/ftp\"\n\n\t\"github.com/fastly/cli/p"
},
{
"path": "pkg/commands/alias/logging/gcs/create.go",
"chars": 799,
"preview": "package gcs\n\nimport (\n\t\"io\"\n\n\tnewcmd \"github.com/fastly/cli/pkg/commands/service/logging/gcs\"\n\n\t\"github.com/fastly/cli/p"
},
{
"path": "pkg/commands/alias/logging/gcs/delete.go",
"chars": 799,
"preview": "package gcs\n\nimport (\n\t\"io\"\n\n\tnewcmd \"github.com/fastly/cli/pkg/commands/service/logging/gcs\"\n\n\t\"github.com/fastly/cli/p"
},
{
"path": "pkg/commands/alias/logging/gcs/describe.go",
"chars": 855,
"preview": "package gcs\n\nimport (\n\t\"io\"\n\n\tnewcmd \"github.com/fastly/cli/pkg/commands/service/logging/gcs\"\n\n\t\"github.com/fastly/cli/p"
},
{
"path": "pkg/commands/alias/logging/gcs/doc.go",
"chars": 95,
"preview": "// Package gcs contains deprecated aliases for the 'service logging gcs' commands.\npackage gcs\n"
},
{
"path": "pkg/commands/alias/logging/gcs/list.go",
"chars": 807,
"preview": "package gcs\n\nimport (\n\t\"io\"\n\n\tnewcmd \"github.com/fastly/cli/pkg/commands/service/logging/gcs\"\n\n\t\"github.com/fastly/cli/p"
},
{
"path": "pkg/commands/alias/logging/gcs/root.go",
"chars": 837,
"preview": "package gcs\n\nimport (\n\t\"io\"\n\n\t\"github.com/fastly/cli/pkg/argparser\"\n\t\"github.com/fastly/cli/pkg/global\"\n)\n\n// RootComman"
},
{
"path": "pkg/commands/alias/logging/gcs/update.go",
"chars": 799,
"preview": "package gcs\n\nimport (\n\t\"io\"\n\n\tnewcmd \"github.com/fastly/cli/pkg/commands/service/logging/gcs\"\n\n\t\"github.com/fastly/cli/p"
},
{
"path": "pkg/commands/alias/logging/googlepubsub/create.go",
"chars": 826,
"preview": "package googlepubsub\n\nimport (\n\t\"io\"\n\n\tnewcmd \"github.com/fastly/cli/pkg/commands/service/logging/googlepubsub\"\n\n\t\"githu"
},
{
"path": "pkg/commands/alias/logging/googlepubsub/delete.go",
"chars": 826,
"preview": "package googlepubsub\n\nimport (\n\t\"io\"\n\n\tnewcmd \"github.com/fastly/cli/pkg/commands/service/logging/googlepubsub\"\n\n\t\"githu"
},
{
"path": "pkg/commands/alias/logging/googlepubsub/describe.go",
"chars": 882,
"preview": "package googlepubsub\n\nimport (\n\t\"io\"\n\n\tnewcmd \"github.com/fastly/cli/pkg/commands/service/logging/googlepubsub\"\n\n\t\"githu"
},
{
"path": "pkg/commands/alias/logging/googlepubsub/doc.go",
"chars": 122,
"preview": "// Package googlepubsub contains deprecated aliases for the 'service logging googlepubsub' commands.\npackage googlepubsu"
},
{
"path": "pkg/commands/alias/logging/googlepubsub/list.go",
"chars": 834,
"preview": "package googlepubsub\n\nimport (\n\t\"io\"\n\n\tnewcmd \"github.com/fastly/cli/pkg/commands/service/logging/googlepubsub\"\n\n\t\"githu"
},
{
"path": "pkg/commands/alias/logging/googlepubsub/root.go",
"chars": 855,
"preview": "package googlepubsub\n\nimport (\n\t\"io\"\n\n\t\"github.com/fastly/cli/pkg/argparser\"\n\t\"github.com/fastly/cli/pkg/global\"\n)\n\n// R"
},
{
"path": "pkg/commands/alias/logging/googlepubsub/update.go",
"chars": 826,
"preview": "package googlepubsub\n\nimport (\n\t\"io\"\n\n\tnewcmd \"github.com/fastly/cli/pkg/commands/service/logging/googlepubsub\"\n\n\t\"githu"
},
{
"path": "pkg/commands/alias/logging/grafanacloudlogs/create.go",
"chars": 838,
"preview": "package grafanacloudlogs\n\nimport (\n\t\"io\"\n\n\tnewcmd \"github.com/fastly/cli/pkg/commands/service/logging/grafanacloudlogs\"\n"
},
{
"path": "pkg/commands/alias/logging/grafanacloudlogs/delete.go",
"chars": 838,
"preview": "package grafanacloudlogs\n\nimport (\n\t\"io\"\n\n\tnewcmd \"github.com/fastly/cli/pkg/commands/service/logging/grafanacloudlogs\"\n"
},
{
"path": "pkg/commands/alias/logging/grafanacloudlogs/describe.go",
"chars": 894,
"preview": "package grafanacloudlogs\n\nimport (\n\t\"io\"\n\n\tnewcmd \"github.com/fastly/cli/pkg/commands/service/logging/grafanacloudlogs\"\n"
},
{
"path": "pkg/commands/alias/logging/grafanacloudlogs/doc.go",
"chars": 134,
"preview": "// Package grafanacloudlogs contains deprecated aliases for the 'service logging grafanacloudlogs' commands.\npackage gra"
},
{
"path": "pkg/commands/alias/logging/grafanacloudlogs/list.go",
"chars": 846,
"preview": "package grafanacloudlogs\n\nimport (\n\t\"io\"\n\n\tnewcmd \"github.com/fastly/cli/pkg/commands/service/logging/grafanacloudlogs\"\n"
},
{
"path": "pkg/commands/alias/logging/grafanacloudlogs/root.go",
"chars": 861,
"preview": "package grafanacloudlogs\n\nimport (\n\t\"io\"\n\n\t\"github.com/fastly/cli/pkg/argparser\"\n\t\"github.com/fastly/cli/pkg/global\"\n)\n\n"
},
{
"path": "pkg/commands/alias/logging/grafanacloudlogs/update.go",
"chars": 838,
"preview": "package grafanacloudlogs\n\nimport (\n\t\"io\"\n\n\tnewcmd \"github.com/fastly/cli/pkg/commands/service/logging/grafanacloudlogs\"\n"
},
{
"path": "pkg/commands/alias/logging/heroku/create.go",
"chars": 808,
"preview": "package heroku\n\nimport (\n\t\"io\"\n\n\tnewcmd \"github.com/fastly/cli/pkg/commands/service/logging/heroku\"\n\n\t\"github.com/fastly"
}
]
// ... and 1292 more files (download for full content)
About this extraction
This page contains the full source code of the fastly/cli GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 1492 files (5.3 MB), approximately 1.5M tokens, and a symbol index with 5916 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.