Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@

### Enhancements:

- feat(integrations): Add support for Notification Service Integrations ([#1868](https://github.com/fastly/cli/pull/1868))

### Dependencies:
- build(deps): `golang.org/x/crypto` from 0.53.0 to 0.54.0 ([#1847](https://github.com/fastly/cli/pull/1847))
- build(deps): `github.com/bodgit/sevenzip` from 1.6.4 to 1.6.5 ([#1847](https://github.com/fastly/cli/pull/1847))
Expand Down
10 changes: 10 additions & 0 deletions pkg/api/interface.go
Original file line number Diff line number Diff line change
Expand Up @@ -357,6 +357,16 @@ type Interface interface {
UpdateServiceAuthorization(context.Context, *fastly.UpdateServiceAuthorizationInput) (*fastly.ServiceAuthorization, error)
DeleteServiceAuthorization(context.Context, *fastly.DeleteServiceAuthorizationInput) error

SearchIntegrations(context.Context, *fastly.SearchIntegrationsInput) (*fastly.SearchIntegrationsResponse, error)
CreateIntegration(context.Context, *fastly.CreateIntegrationInput) (*fastly.CreateIntegrationResponse, error)
GetIntegration(context.Context, *fastly.GetIntegrationInput) (*fastly.Integration, error)
UpdateIntegration(context.Context, *fastly.UpdateIntegrationInput) error
DeleteIntegration(context.Context, *fastly.DeleteIntegrationInput) error
GetIntegrationTypes(context.Context) (*[]fastly.IntegrationType, error)
GetWebhookSigningKey(context.Context, *fastly.GetWebhookSigningKeyInput) (*fastly.WebhookSigningKeyResponse, error)
RotateWebhookSigningKey(context.Context, *fastly.RotateWebhookSigningKeyInput) (*fastly.WebhookSigningKeyResponse, error)
CreateMailinglistConfirmation(context.Context, *fastly.CreateMailinglistConfirmationInput) error

CreateConfigStore(context.Context, *fastly.CreateConfigStoreInput) (*fastly.ConfigStore, error)
DeleteConfigStore(context.Context, *fastly.DeleteConfigStoreInput) error
GetConfigStore(context.Context, *fastly.GetConfigStoreInput) (*fastly.ConfigStore, error)
Expand Down
169 changes: 169 additions & 0 deletions pkg/app/metadata.json
Original file line number Diff line number Diff line change
Expand Up @@ -2858,6 +2858,175 @@
]
}
},
"integration": {
"list": {
"apis": [
"https://www.fastly.com/documentation/reference/api/observability/notifications/#search-integrations"
]
},
"describe": {
"apis": [
"https://www.fastly.com/documentation/reference/api/observability/notifications/#get-an-integration"
]
},
"delete": {
"apis": [
"https://www.fastly.com/documentation/reference/api/observability/notifications/#delete-an-integration"
]
},
"list-types": {
"apis": [
"https://www.fastly.com/documentation/reference/api/observability/notifications/#get-integration-types"
]
},
"datadog": {
"create": {
"apis": [
"https://www.fastly.com/documentation/reference/api/observability/notifications/#create-an-integration"
]
},
"update": {
"apis": [
"https://www.fastly.com/documentation/reference/api/observability/notifications/#update-an-integration"
]
}
},
"jiraissue": {
"create": {
"apis": [
"https://www.fastly.com/documentation/reference/api/observability/notifications/#create-an-integration"
]
},
"update": {
"apis": [
"https://www.fastly.com/documentation/reference/api/observability/notifications/#update-an-integration"
]
}
},
"jsm": {
"create": {
"apis": [
"https://www.fastly.com/documentation/reference/api/observability/notifications/#create-an-integration"
]
},
"update": {
"apis": [
"https://www.fastly.com/documentation/reference/api/observability/notifications/#update-an-integration"
]
}
},
"opsgenie": {
"create": {
"apis": [
"https://www.fastly.com/documentation/reference/api/observability/notifications/#create-an-integration"
]
},
"update": {
"apis": [
"https://www.fastly.com/documentation/reference/api/observability/notifications/#update-an-integration"
]
}
},
"splunkoncall": {
"create": {
"apis": [
"https://www.fastly.com/documentation/reference/api/observability/notifications/#create-an-integration"
]
},
"update": {
"apis": [
"https://www.fastly.com/documentation/reference/api/observability/notifications/#update-an-integration"
]
}
},
"mail": {
"create": {
"apis": [
"https://www.fastly.com/documentation/reference/api/observability/notifications/#create-an-integration"
]
},
"update": {
"apis": [
"https://www.fastly.com/documentation/reference/api/observability/notifications/#update-an-integration"
]
},
"confirm": {
"apis": [
"https://www.fastly.com/documentation/reference/api/observability/notifications/#create-a-mailing-list-confirmation"
]
}
},
"msteams": {
"create": {
"apis": [
"https://www.fastly.com/documentation/reference/api/observability/notifications/#create-an-integration"
]
},
"update": {
"apis": [
"https://www.fastly.com/documentation/reference/api/observability/notifications/#update-an-integration"
]
}
},
"newrelic": {
"create": {
"apis": [
"https://www.fastly.com/documentation/reference/api/observability/notifications/#create-an-integration"
]
},
"update": {
"apis": [
"https://www.fastly.com/documentation/reference/api/observability/notifications/#update-an-integration"
]
}
},
"pagerduty": {
"create": {
"apis": [
"https://www.fastly.com/documentation/reference/api/observability/notifications/#create-an-integration"
]
},
"update": {
"apis": [
"https://www.fastly.com/documentation/reference/api/observability/notifications/#update-an-integration"
]
}
},
"slack": {
"create": {
"apis": [
"https://www.fastly.com/documentation/reference/api/observability/notifications/#create-an-integration"
]
},
"update": {
"apis": [
"https://www.fastly.com/documentation/reference/api/observability/notifications/#update-an-integration"
]
}
},
"webhook": {
"create": {
"apis": [
"https://www.fastly.com/documentation/reference/api/observability/notifications/#create-an-integration"
]
},
"update": {
"apis": [
"https://www.fastly.com/documentation/reference/api/observability/notifications/#update-an-integration"
]
},
"get-signing-key": {
"apis": [
"https://www.fastly.com/documentation/reference/api/observability/notifications/#get-a-webhook-signing-key"
]
},
"rotate-signing-key": {
"apis": [
"https://www.fastly.com/documentation/reference/api/observability/notifications/#rotate-a-webhook-signing-key"
]
}
}
},
"kv-store": {
"create": {
"apis": [
Expand Down
1 change: 1 addition & 0 deletions pkg/app/run_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,7 @@ dashboard
dns
domain
install
integration
ip-list
kv-store
kv-store-entry
Expand Down
94 changes: 94 additions & 0 deletions pkg/commands/commands.go
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,18 @@ import (
dnszone "github.com/fastly/cli/pkg/commands/dns/zone"
"github.com/fastly/cli/pkg/commands/domain"
"github.com/fastly/cli/pkg/commands/install"
"github.com/fastly/cli/pkg/commands/integration"
integrationDatadog "github.com/fastly/cli/pkg/commands/integration/datadog"
integrationJiraIssue "github.com/fastly/cli/pkg/commands/integration/jiraissue"
integrationJSM "github.com/fastly/cli/pkg/commands/integration/jsm"
integrationMail "github.com/fastly/cli/pkg/commands/integration/mail"
integrationMSTeams "github.com/fastly/cli/pkg/commands/integration/msteams"
integrationNewRelic "github.com/fastly/cli/pkg/commands/integration/newrelic"
integrationOpsgenie "github.com/fastly/cli/pkg/commands/integration/opsgenie"
integrationPagerDuty "github.com/fastly/cli/pkg/commands/integration/pagerduty"
integrationSlack "github.com/fastly/cli/pkg/commands/integration/slack"
integrationSplunkOnCall "github.com/fastly/cli/pkg/commands/integration/splunkoncall"
integrationWebhook "github.com/fastly/cli/pkg/commands/integration/webhook"
"github.com/fastly/cli/pkg/commands/ip"
"github.com/fastly/cli/pkg/commands/kvstore"
"github.com/fastly/cli/pkg/commands/kvstoreentry"
Expand Down Expand Up @@ -308,6 +320,47 @@ func Define( // nolint:revive // function-length
domainList := domain.NewListCommand(domainCmdRoot.CmdClause, data)
domainUpdate := domain.NewUpdateCommand(domainCmdRoot.CmdClause, data)
installRoot := install.NewRootCommand(app, data)
integrationRoot := integration.NewRootCommand(app, data)
integrationList := integration.NewListCommand(integrationRoot.CmdClause, data)
integrationDescribe := integration.NewDescribeCommand(integrationRoot.CmdClause, data)
integrationDelete := integration.NewDeleteCommand(integrationRoot.CmdClause, data)
integrationListTypes := integration.NewListTypesCommand(integrationRoot.CmdClause, data)
integrationDatadogRoot := integrationDatadog.NewRootCommand(integrationRoot.CmdClause, data)
integrationDatadogCreate := integrationDatadog.NewCreateCommand(integrationDatadogRoot.CmdClause, data)
integrationDatadogUpdate := integrationDatadog.NewUpdateCommand(integrationDatadogRoot.CmdClause, data)
integrationJiraIssueRoot := integrationJiraIssue.NewRootCommand(integrationRoot.CmdClause, data)
integrationJiraIssueCreate := integrationJiraIssue.NewCreateCommand(integrationJiraIssueRoot.CmdClause, data)
integrationJiraIssueUpdate := integrationJiraIssue.NewUpdateCommand(integrationJiraIssueRoot.CmdClause, data)
integrationJSMRoot := integrationJSM.NewRootCommand(integrationRoot.CmdClause, data)
integrationJSMCreate := integrationJSM.NewCreateCommand(integrationJSMRoot.CmdClause, data)
integrationJSMUpdate := integrationJSM.NewUpdateCommand(integrationJSMRoot.CmdClause, data)
integrationOpsgenieRoot := integrationOpsgenie.NewRootCommand(integrationRoot.CmdClause, data)
integrationOpsgenieCreate := integrationOpsgenie.NewCreateCommand(integrationOpsgenieRoot.CmdClause, data)
integrationOpsgenieUpdate := integrationOpsgenie.NewUpdateCommand(integrationOpsgenieRoot.CmdClause, data)
integrationSplunkOnCallRoot := integrationSplunkOnCall.NewRootCommand(integrationRoot.CmdClause, data)
integrationSplunkOnCallCreate := integrationSplunkOnCall.NewCreateCommand(integrationSplunkOnCallRoot.CmdClause, data)
integrationSplunkOnCallUpdate := integrationSplunkOnCall.NewUpdateCommand(integrationSplunkOnCallRoot.CmdClause, data)
integrationMailRoot := integrationMail.NewRootCommand(integrationRoot.CmdClause, data)
integrationMailCreate := integrationMail.NewCreateCommand(integrationMailRoot.CmdClause, data)
integrationMailUpdate := integrationMail.NewUpdateCommand(integrationMailRoot.CmdClause, data)
integrationMailConfirm := integrationMail.NewConfirmCommand(integrationMailRoot.CmdClause, data)
integrationMSTeamsRoot := integrationMSTeams.NewRootCommand(integrationRoot.CmdClause, data)
integrationMSTeamsCreate := integrationMSTeams.NewCreateCommand(integrationMSTeamsRoot.CmdClause, data)
integrationMSTeamsUpdate := integrationMSTeams.NewUpdateCommand(integrationMSTeamsRoot.CmdClause, data)
integrationNewRelicRoot := integrationNewRelic.NewRootCommand(integrationRoot.CmdClause, data)
integrationNewRelicCreate := integrationNewRelic.NewCreateCommand(integrationNewRelicRoot.CmdClause, data)
integrationNewRelicUpdate := integrationNewRelic.NewUpdateCommand(integrationNewRelicRoot.CmdClause, data)
integrationPagerDutyRoot := integrationPagerDuty.NewRootCommand(integrationRoot.CmdClause, data)
integrationPagerDutyCreate := integrationPagerDuty.NewCreateCommand(integrationPagerDutyRoot.CmdClause, data)
integrationPagerDutyUpdate := integrationPagerDuty.NewUpdateCommand(integrationPagerDutyRoot.CmdClause, data)
integrationSlackRoot := integrationSlack.NewRootCommand(integrationRoot.CmdClause, data)
integrationSlackCreate := integrationSlack.NewCreateCommand(integrationSlackRoot.CmdClause, data)
integrationSlackUpdate := integrationSlack.NewUpdateCommand(integrationSlackRoot.CmdClause, data)
integrationWebhookRoot := integrationWebhook.NewRootCommand(integrationRoot.CmdClause, data)
integrationWebhookCreate := integrationWebhook.NewCreateCommand(integrationWebhookRoot.CmdClause, data)
integrationWebhookUpdate := integrationWebhook.NewUpdateCommand(integrationWebhookRoot.CmdClause, data)
integrationWebhookGetSigningKey := integrationWebhook.NewGetSigningKeyCommand(integrationWebhookRoot.CmdClause, data)
integrationWebhookRotateSigningKey := integrationWebhook.NewRotateSigningKeyCommand(integrationWebhookRoot.CmdClause, data)
ipCmdRoot := ip.NewRootCommand(app, data)
kvstoreCmdRoot := kvstore.NewRootCommand(app, data)
kvstoreCreate := kvstore.NewCreateCommand(kvstoreCmdRoot.CmdClause, data)
Expand Down Expand Up @@ -1200,6 +1253,47 @@ func Define( // nolint:revive // function-length
domainList,
domainUpdate,
installRoot,
integrationRoot,
integrationList,
integrationDescribe,
integrationDelete,
integrationListTypes,
integrationDatadogRoot,
integrationDatadogCreate,
integrationDatadogUpdate,
integrationJiraIssueRoot,
integrationJiraIssueCreate,
integrationJiraIssueUpdate,
integrationJSMRoot,
integrationJSMCreate,
integrationJSMUpdate,
integrationOpsgenieRoot,
integrationOpsgenieCreate,
integrationOpsgenieUpdate,
integrationSplunkOnCallRoot,
integrationSplunkOnCallCreate,
integrationSplunkOnCallUpdate,
integrationMailRoot,
integrationMailCreate,
integrationMailUpdate,
integrationMailConfirm,
integrationMSTeamsRoot,
integrationMSTeamsCreate,
integrationMSTeamsUpdate,
integrationNewRelicRoot,
integrationNewRelicCreate,
integrationNewRelicUpdate,
integrationPagerDutyRoot,
integrationPagerDutyCreate,
integrationPagerDutyUpdate,
integrationSlackRoot,
integrationSlackCreate,
integrationSlackUpdate,
integrationWebhookRoot,
integrationWebhookCreate,
integrationWebhookUpdate,
integrationWebhookGetSigningKey,
integrationWebhookRotateSigningKey,
ipCmdRoot,
kvstoreCreate,
kvstoreDelete,
Expand Down
Loading
Loading