Skip to content

Commit

Permalink
feat(notification channel): add notification channels types
Browse files Browse the repository at this point in the history
  • Loading branch information
dbonf committed Aug 3, 2023
1 parent 0bab7f1 commit 316fe42
Show file tree
Hide file tree
Showing 71 changed files with 2,931 additions and 204 deletions.
22 changes: 14 additions & 8 deletions sysdig/data_source_sysdig_secure_notification_channel.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,20 @@ import (
)

const (
NOTIFICATION_CHANNEL_TYPE_EMAIL = "EMAIL"
NOTIFICATION_CHANNEL_TYPE_AMAZON_SNS = "SNS"
NOTIFICATION_CHANNEL_TYPE_OPSGENIE = "OPSGENIE"
NOTIFICATION_CHANNEL_TYPE_VICTOROPS = "VICTOROPS"
NOTIFICATION_CHANNEL_TYPE_WEBHOOK = "WEBHOOK"
NOTIFICATION_CHANNEL_TYPE_SLACK = "SLACK"
NOTIFICATION_CHANNEL_TYPE_PAGERDUTY = "PAGER_DUTY"
NOTIFICATION_CHANNEL_TYPE_MS_TEAMS = "MS_TEAMS"
NOTIFICATION_CHANNEL_TYPE_EMAIL = "EMAIL"
NOTIFICATION_CHANNEL_TYPE_AMAZON_SNS = "SNS"
NOTIFICATION_CHANNEL_TYPE_OPSGENIE = "OPSGENIE"
NOTIFICATION_CHANNEL_TYPE_VICTOROPS = "VICTOROPS"
NOTIFICATION_CHANNEL_TYPE_WEBHOOK = "WEBHOOK"
NOTIFICATION_CHANNEL_TYPE_SLACK = "SLACK"
NOTIFICATION_CHANNEL_TYPE_PAGERDUTY = "PAGER_DUTY"
NOTIFICATION_CHANNEL_TYPE_MS_TEAMS = "MS_TEAMS"
NOTIFICATION_CHANNEL_TYPE_GCHAT = "GCHAT"
NOTIFICATION_CHANNEL_TYPE_PROMETHEUS_ALERT_MANAGER = "PROMETHEUS_ALERT_MANAGER"
NOTIFICATION_CHANNEL_TYPE_TEAM_EMAIL = "TEAM_EMAIL"
NOTIFICATION_CHANNEL_TYPE_CUSTOM_WEBHOOK = "POWER_WEBHOOK"
NOTIFICATION_CHANNEL_TYPE_IBM_EVENT_NOTIFICATION = "IBM_EVENT_NOTIFICATIONS"
NOTIFICATION_CHANNEL_TYPE_IBM_FUNCTION = "IBM_FUNCTION"

NOTIFICATION_CHANNEL_TYPE_SLACK_TEMPLATE_KEY_V1 = "SLACK_SECURE_EVENT_NOTIFICATION_TEMPLATE_METADATA_v1"
NOTIFICATION_CHANNEL_TYPE_SLACK_TEMPLATE_KEY_V2 = "SLACK_SECURE_EVENT_NOTIFICATION_TEMPLATE_METADATA_v2"
Expand Down
31 changes: 19 additions & 12 deletions sysdig/internal/client/v2/model.go
Original file line number Diff line number Diff line change
Expand Up @@ -105,18 +105,25 @@ type NotificationChannelTemplateConfiguration struct {
}

type NotificationChannelOptions struct {
EmailRecipients []string `json:"emailRecipients,omitempty"` // Type: email
SnsTopicARNs []string `json:"snsTopicARNs,omitempty"` // Type: SNS
APIKey string `json:"apiKey,omitempty"` // Type: VictorOps
RoutingKey string `json:"routingKey,omitempty"` // Type: VictorOps
Url string `json:"url,omitempty"` // Type: OpsGenie, Webhook and Slack
Channel string `json:"channel,omitempty"` // Type: Slack
Account string `json:"account,omitempty"` // Type: PagerDuty
ServiceKey string `json:"serviceKey,omitempty"` // Type: PagerDuty
ServiceName string `json:"serviceName,omitempty"` // Type: PagerDuty
AdditionalHeaders map[string]interface{} `json:"additionalHeaders,omitempty"` // Type: Webhook
Region string `json:"region,omitempty"` // Type: OpsGenie
TemplateConfiguration []NotificationChannelTemplateConfiguration `json:"templateConfiguration,omitempty"`
EmailRecipients []string `json:"emailRecipients,omitempty"` // Type: email
SnsTopicARNs []string `json:"snsTopicARNs,omitempty"` // Type: SNS
APIKey string `json:"apiKey,omitempty"` // Type: VictorOps, ibm event function
RoutingKey string `json:"routingKey,omitempty"` // Type: VictorOps
Url string `json:"url,omitempty"` // Type: OpsGenie, Webhook, Slack, google chat, prometheus alert manager, custom webhook
Channel string `json:"channel,omitempty"` // Type: Slack
Account string `json:"account,omitempty"` // Type: PagerDuty
ServiceKey string `json:"serviceKey,omitempty"` // Type: PagerDuty
ServiceName string `json:"serviceName,omitempty"` // Type: PagerDuty
AdditionalHeaders map[string]interface{} `json:"additionalHeaders,omitempty"` // Type: Webhook, prometheus alert manager, custom webhook, ibm function
Region string `json:"region,omitempty"` // Type: OpsGenie
AllowInsecureConnections *bool `json:"allowInsecureConnections,omitempty"` // Type: prometheus alert manager, custom webhook
TeamId int `json:"teamId,omitempty"` // Type: team email
HttpMethod string `json:"httpMethod,omitempty"` // Type: custom webhook
MonitorTemplate string `json:"monitorTemplate,omitempty"` // Type: custom webhook
InstanceId string `json:"instanceId,omitempty"` // Type: ibm event notification
IbmFunctionType string `json:"ibmFunctionType,omitempty"` // Type: ibm event function
CustomData map[string]interface{} `json:"customData,omitempty"` // Type: ibm function
TemplateConfiguration []NotificationChannelTemplateConfiguration `json:"templateConfiguration,omitempty"`

NotifyOnOk bool `json:"notifyOnOk"`
NotifyOnResolve bool `json:"notifyOnResolve"`
Expand Down
104 changes: 56 additions & 48 deletions sysdig/provider.go
Original file line number Diff line number Diff line change
Expand Up @@ -105,55 +105,63 @@ func Provider() *schema.Provider {
"sysdig_custom_role": resourceSysdigCustomRole(),
"sysdig_team_service_account": resourceSysdigTeamServiceAccount(),

"sysdig_secure_custom_policy": resourceSysdigSecureCustomPolicy(),
"sysdig_secure_managed_policy": resourceSysdigSecureManagedPolicy(),
"sysdig_secure_managed_ruleset": resourceSysdigSecureManagedRuleset(),
"sysdig_secure_policy": resourceSysdigSecurePolicy(),
"sysdig_secure_notification_channel_email": resourceSysdigSecureNotificationChannelEmail(),
"sysdig_secure_notification_channel_sns": resourceSysdigSecureNotificationChannelSNS(),
"sysdig_secure_notification_channel_opsgenie": resourceSysdigSecureNotificationChannelOpsGenie(),
"sysdig_secure_notification_channel_victorops": resourceSysdigSecureNotificationChannelVictorOps(),
"sysdig_secure_notification_channel_webhook": resourceSysdigSecureNotificationChannelWebhook(),
"sysdig_secure_notification_channel_slack": resourceSysdigSecureNotificationChannelSlack(),
"sysdig_secure_notification_channel_pagerduty": resourceSysdigSecureNotificationChannelPagerduty(),
"sysdig_secure_notification_channel_msteams": resourceSysdigSecureNotificationChannelMSTeams(),
"sysdig_secure_rule_container": resourceSysdigSecureRuleContainer(),
"sysdig_secure_rule_filesystem": resourceSysdigSecureRuleFilesystem(),
"sysdig_secure_rule_network": resourceSysdigSecureRuleNetwork(),
"sysdig_secure_rule_process": resourceSysdigSecureRuleProcess(),
"sysdig_secure_rule_syscall": resourceSysdigSecureRuleSyscall(),
"sysdig_secure_rule_falco": resourceSysdigSecureRuleFalco(),
"sysdig_secure_team": resourceSysdigSecureTeam(),
"sysdig_secure_list": resourceSysdigSecureList(),
"sysdig_secure_macro": resourceSysdigSecureMacro(),
"sysdig_secure_vulnerability_exception": resourceSysdigSecureVulnerabilityException(),
"sysdig_secure_vulnerability_exception_list": resourceSysdigSecureVulnerabilityExceptionList(),
"sysdig_secure_cloud_account": resourceSysdigSecureCloudAccount(),
"sysdig_secure_scanning_policy": resourceSysdigSecureScanningPolicy(),
"sysdig_secure_scanning_policy_assignment": resourceSysdigSecureScanningPolicyAssignment(),
"sysdig_secure_custom_policy": resourceSysdigSecureCustomPolicy(),
"sysdig_secure_managed_policy": resourceSysdigSecureManagedPolicy(),
"sysdig_secure_managed_ruleset": resourceSysdigSecureManagedRuleset(),
"sysdig_secure_policy": resourceSysdigSecurePolicy(),
"sysdig_secure_notification_channel_email": resourceSysdigSecureNotificationChannelEmail(),
"sysdig_secure_notification_channel_sns": resourceSysdigSecureNotificationChannelSNS(),
"sysdig_secure_notification_channel_opsgenie": resourceSysdigSecureNotificationChannelOpsGenie(),
"sysdig_secure_notification_channel_victorops": resourceSysdigSecureNotificationChannelVictorOps(),
"sysdig_secure_notification_channel_webhook": resourceSysdigSecureNotificationChannelWebhook(),
"sysdig_secure_notification_channel_slack": resourceSysdigSecureNotificationChannelSlack(),
"sysdig_secure_notification_channel_pagerduty": resourceSysdigSecureNotificationChannelPagerduty(),
"sysdig_secure_notification_channel_prometheus_alert_manager": resourceSysdigSecureNotificationChannelPrometheusAlertManager(),
"sysdig_secure_notification_channel_team_email": resourceSysdigSecureNotificationChannelTeamEmail(),
"sysdig_secure_notification_channel_msteams": resourceSysdigSecureNotificationChannelMSTeams(),
"sysdig_secure_rule_container": resourceSysdigSecureRuleContainer(),
"sysdig_secure_rule_filesystem": resourceSysdigSecureRuleFilesystem(),
"sysdig_secure_rule_network": resourceSysdigSecureRuleNetwork(),
"sysdig_secure_rule_process": resourceSysdigSecureRuleProcess(),
"sysdig_secure_rule_syscall": resourceSysdigSecureRuleSyscall(),
"sysdig_secure_rule_falco": resourceSysdigSecureRuleFalco(),
"sysdig_secure_team": resourceSysdigSecureTeam(),
"sysdig_secure_list": resourceSysdigSecureList(),
"sysdig_secure_macro": resourceSysdigSecureMacro(),
"sysdig_secure_vulnerability_exception": resourceSysdigSecureVulnerabilityException(),
"sysdig_secure_vulnerability_exception_list": resourceSysdigSecureVulnerabilityExceptionList(),
"sysdig_secure_cloud_account": resourceSysdigSecureCloudAccount(),
"sysdig_secure_scanning_policy": resourceSysdigSecureScanningPolicy(),
"sysdig_secure_scanning_policy_assignment": resourceSysdigSecureScanningPolicyAssignment(),

"sysdig_monitor_alert_downtime": resourceSysdigMonitorAlertDowntime(),
"sysdig_monitor_alert_metric": resourceSysdigMonitorAlertMetric(),
"sysdig_monitor_alert_event": resourceSysdigMonitorAlertEvent(),
"sysdig_monitor_alert_anomaly": resourceSysdigMonitorAlertAnomaly(),
"sysdig_monitor_alert_group_outlier": resourceSysdigMonitorAlertGroupOutlier(),
"sysdig_monitor_alert_promql": resourceSysdigMonitorAlertPromql(),
"sysdig_monitor_alert_v2_event": resourceSysdigMonitorAlertV2Event(),
"sysdig_monitor_alert_v2_metric": resourceSysdigMonitorAlertV2Metric(),
"sysdig_monitor_alert_v2_downtime": resourceSysdigMonitorAlertV2Downtime(),
"sysdig_monitor_alert_v2_prometheus": resourceSysdigMonitorAlertV2Prometheus(),
"sysdig_monitor_dashboard": resourceSysdigMonitorDashboard(),
"sysdig_monitor_notification_channel_email": resourceSysdigMonitorNotificationChannelEmail(),
"sysdig_monitor_notification_channel_opsgenie": resourceSysdigMonitorNotificationChannelOpsGenie(),
"sysdig_monitor_notification_channel_pagerduty": resourceSysdigMonitorNotificationChannelPagerduty(),
"sysdig_monitor_notification_channel_slack": resourceSysdigMonitorNotificationChannelSlack(),
"sysdig_monitor_notification_channel_sns": resourceSysdigMonitorNotificationChannelSNS(),
"sysdig_monitor_notification_channel_victorops": resourceSysdigMonitorNotificationChannelVictorOps(),
"sysdig_monitor_notification_channel_webhook": resourceSysdigMonitorNotificationChannelWebhook(),
"sysdig_monitor_notification_channel_msteams": resourceSysdigMonitorNotificationChannelMSTeams(),
"sysdig_monitor_team": resourceSysdigMonitorTeam(),
"sysdig_monitor_cloud_account": resourceSysdigMonitorCloudAccount(),
"sysdig_secure_posture_zone": resourceSysdigSecurePostureZone(),
"sysdig_monitor_alert_downtime": resourceSysdigMonitorAlertDowntime(),
"sysdig_monitor_alert_metric": resourceSysdigMonitorAlertMetric(),
"sysdig_monitor_alert_event": resourceSysdigMonitorAlertEvent(),
"sysdig_monitor_alert_anomaly": resourceSysdigMonitorAlertAnomaly(),
"sysdig_monitor_alert_group_outlier": resourceSysdigMonitorAlertGroupOutlier(),
"sysdig_monitor_alert_promql": resourceSysdigMonitorAlertPromql(),
"sysdig_monitor_alert_v2_event": resourceSysdigMonitorAlertV2Event(),
"sysdig_monitor_alert_v2_metric": resourceSysdigMonitorAlertV2Metric(),
"sysdig_monitor_alert_v2_downtime": resourceSysdigMonitorAlertV2Downtime(),
"sysdig_monitor_alert_v2_prometheus": resourceSysdigMonitorAlertV2Prometheus(),
"sysdig_monitor_dashboard": resourceSysdigMonitorDashboard(),
"sysdig_monitor_notification_channel_email": resourceSysdigMonitorNotificationChannelEmail(),
"sysdig_monitor_notification_channel_opsgenie": resourceSysdigMonitorNotificationChannelOpsGenie(),
"sysdig_monitor_notification_channel_pagerduty": resourceSysdigMonitorNotificationChannelPagerduty(),
"sysdig_monitor_notification_channel_slack": resourceSysdigMonitorNotificationChannelSlack(),
"sysdig_monitor_notification_channel_sns": resourceSysdigMonitorNotificationChannelSNS(),
"sysdig_monitor_notification_channel_victorops": resourceSysdigMonitorNotificationChannelVictorOps(),
"sysdig_monitor_notification_channel_webhook": resourceSysdigMonitorNotificationChannelWebhook(),
"sysdig_monitor_notification_channel_msteams": resourceSysdigMonitorNotificationChannelMSTeams(),
"sysdig_monitor_notification_channel_google_chat": resourceSysdigMonitorNotificationChannelGoogleChat(),
"sysdig_monitor_notification_channel_prometheus_alert_manager": resourceSysdigMonitorNotificationChannelPrometheusAlertManager(),
"sysdig_monitor_notification_channel_team_email": resourceSysdigMonitorNotificationChannelTeamEmail(),
"sysdig_monitor_notification_channel_custom_webhook": resourceSysdigMonitorNotificationChannelCustomWebhook(),
"sysdig_monitor_notification_channel_ibm_event_notification": resourceSysdigMonitorNotificationChannelIBMEventNotification(),
"sysdig_monitor_notification_channel_ibm_function": resourceSysdigMonitorNotificationChannelIBMFunction(),
"sysdig_monitor_team": resourceSysdigMonitorTeam(),
"sysdig_monitor_cloud_account": resourceSysdigMonitorCloudAccount(),
"sysdig_secure_posture_zone": resourceSysdigSecurePostureZone(),
},
DataSourcesMap: map[string]*schema.Resource{
"sysdig_secure_trusted_cloud_identity": dataSourceSysdigSecureTrustedCloudIdentity(),
Expand Down
Loading

0 comments on commit 316fe42

Please sign in to comment.