-
Notifications
You must be signed in to change notification settings - Fork 52
/
Copy pathprovider.go
271 lines (262 loc) · 18.6 KB
/
provider.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
package sysdig
import (
"context"
"github.com/hashicorp/terraform-plugin-sdk/v2/diag"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
)
type SysdigProvider struct {
SysdigClient SysdigClients
}
// Used by tests to get the provider
func Provider() *schema.Provider {
sysdigClient := NewSysdigClients()
provider := &SysdigProvider{SysdigClient: sysdigClient}
return provider.Provider()
}
func (p *SysdigProvider) Provider() *schema.Provider {
return &schema.Provider{
Schema: map[string]*schema.Schema{
"sysdig_secure_skip_policyv2msg": {
Type: schema.TypeBool,
Optional: true,
DefaultFunc: schema.EnvDefaultFunc("SYSDIG_SECURE_SKIP_POLICYV2MSG", true),
},
"sysdig_secure_api_token": {
Type: schema.TypeString,
Optional: true,
Sensitive: true,
DefaultFunc: schema.EnvDefaultFunc("SYSDIG_SECURE_API_TOKEN", nil),
},
"sysdig_secure_url": {
Type: schema.TypeString,
Optional: true,
DefaultFunc: schema.EnvDefaultFunc("SYSDIG_SECURE_URL", "https://secure.sysdig.com"),
},
"sysdig_secure_insecure_tls": {
Type: schema.TypeBool,
Optional: true,
DefaultFunc: schema.EnvDefaultFunc("SYSDIG_SECURE_INSECURE_TLS", false),
},
"sysdig_monitor_api_token": {
Type: schema.TypeString,
Optional: true,
Sensitive: true,
DefaultFunc: schema.EnvDefaultFunc("SYSDIG_MONITOR_API_TOKEN", nil),
},
"sysdig_monitor_url": {
Type: schema.TypeString,
Optional: true,
DefaultFunc: schema.EnvDefaultFunc("SYSDIG_MONITOR_URL", "https://app.sysdigcloud.com"),
},
"sysdig_monitor_insecure_tls": {
Type: schema.TypeBool,
Optional: true,
DefaultFunc: schema.EnvDefaultFunc("SYSDIG_MONITOR_INSECURE_TLS", false),
},
"extra_headers": {
Type: schema.TypeMap,
Optional: true,
Elem: &schema.Schema{Type: schema.TypeString},
},
"sysdig_monitor_team_id": {
Type: schema.TypeInt,
Optional: true,
DefaultFunc: schema.EnvDefaultFunc("SYSDIG_MONITOR_TEAM_ID", nil),
},
"sysdig_monitor_team_name": {
Type: schema.TypeString,
Optional: true,
DefaultFunc: schema.EnvDefaultFunc("SYSDIG_MONITOR_TEAM_NAME", nil),
},
"ibm_monitor_iam_url": {
Type: schema.TypeString,
Optional: true,
DefaultFunc: schema.EnvDefaultFunc("SYSDIG_IBM_MONITOR_IAM_URL", nil),
},
"ibm_monitor_instance_id": {
Type: schema.TypeString,
Optional: true,
DefaultFunc: schema.EnvDefaultFunc("SYSDIG_IBM_MONITOR_INSTANCE_ID", nil),
},
"ibm_monitor_api_key": {
Type: schema.TypeString,
Optional: true,
DefaultFunc: schema.EnvDefaultFunc("SYSDIG_IBM_MONITOR_API_KEY", nil),
},
"sysdig_secure_team_id": {
Type: schema.TypeInt,
Optional: true,
DefaultFunc: schema.EnvDefaultFunc("SYSDIG_SECURE_TEAM_ID", nil),
},
"sysdig_secure_team_name": {
Type: schema.TypeString,
Optional: true,
DefaultFunc: schema.EnvDefaultFunc("SYSDIG_SECURE_TEAM_NAME", nil),
},
"ibm_secure_iam_url": {
Type: schema.TypeString,
Optional: true,
DefaultFunc: schema.EnvDefaultFunc("SYSDIG_IBM_SECURE_IAM_URL", nil),
},
"ibm_secure_instance_id": {
Type: schema.TypeString,
Optional: true,
DefaultFunc: schema.EnvDefaultFunc("SYSDIG_IBM_SECURE_INSTANCE_ID", nil),
},
"ibm_secure_api_key": {
Type: schema.TypeString,
Optional: true,
DefaultFunc: schema.EnvDefaultFunc("SYSDIG_IBM_SECURE_API_KEY", nil),
},
},
ResourcesMap: map[string]*schema.Resource{
"sysdig_user": resourceSysdigUser(),
"sysdig_group_mapping": resourceSysdigGroupMapping(),
"sysdig_group_mapping_config": resourceSysdigGroupMappingConfig(),
"sysdig_custom_role": resourceSysdigCustomRole(),
"sysdig_team_service_account": resourceSysdigTeamServiceAccount(),
"sysdig_agent_access_key": resourceSysdigAgentAccessKey(),
"sysdig_ip_filter": resourceSysdigIPFilter(),
"sysdig_ip_filtering_settings": resourceSysdigIPFilteringSettings(),
"sysdig_secure_aws_ml_policy": resourceSysdigSecureAWSMLPolicy(),
"sysdig_secure_custom_policy": resourceSysdigSecureCustomPolicy(),
"sysdig_secure_drift_policy": resourceSysdigSecureDriftPolicy(),
"sysdig_secure_malware_policy": resourceSysdigSecureMalwarePolicy(),
"sysdig_secure_ml_policy": resourceSysdigSecureMLPolicy(),
"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_rule_stateful": resourceSysdigSecureStatefulRule(),
"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_cloud_auth_account": resourceSysdigSecureCloudauthAccount(),
"sysdig_secure_cloud_auth_account_component": resourceSysdigSecureCloudauthAccountComponent(),
"sysdig_secure_cloud_auth_account_feature": resourceSysdigSecureCloudauthAccountFeature(),
"sysdig_monitor_silence_rule": resourceSysdigMonitorSilenceRule(),
"sysdig_monitor_inhibition_rule": resourceSysdigMonitorInhibitionRule(),
"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_alert_v2_change": resourceSysdigMonitorAlertV2Change(),
"sysdig_monitor_alert_v2_form_based_prometheus": resourceSysdigMonitorAlertV2FormBasedPrometheus(),
"sysdig_monitor_alert_v2_group_outlier": resourceSysdigMonitorAlertV2GroupOutlier(),
"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(),
"sysdig_secure_organization": resourceSysdigSecureOrganization(),
"sysdig_secure_posture_policy": resourceSysdigSecurePosturePolicy(),
"sysdig_secure_posture_control": resourceSysdigSecurePostureControl(),
"sysdig_secure_posture_accept_risk": resourceSysdigSecureAcceptPostureRisk(),
"sysdig_secure_vulnerability_accept_risk": resourceSysdigSecureVulnerabilityAcceptRisk(),
"sysdig_secure_zone": resourceSysdigSecureZone(),
},
DataSourcesMap: map[string]*schema.Resource{
"sysdig_secure_agentless_scanning_assets": dataSourceSysdigSecureAgentlessScanningAssets(),
"sysdig_secure_cloud_ingestion_assets": dataSourceSysdigSecureCloudIngestionAssets(),
"sysdig_secure_trusted_azure_app": dataSourceSysdigSecureTrustedAzureApp(),
"sysdig_secure_trusted_cloud_identity": dataSourceSysdigSecureTrustedCloudIdentity(),
"sysdig_secure_trusted_oracle_app": dataSourceSysdigSecureTrustedOracleApp(),
"sysdig_secure_tenant_external_id": dataSourceSysdigSecureTenantExternalID(),
"sysdig_secure_notification_channel": dataSourceSysdigSecureNotificationChannel(),
"sysdig_secure_notification_channel_pagerduty": dataSourceSysdigSecureNotificationChannelPagerduty(),
"sysdig_secure_notification_channel_email": dataSourceSysdigSecureNotificationChannelEmail(),
"sysdig_secure_notification_channel_opsgenie": dataSourceSysdigSecureNotificationChannelOpsGenie(),
"sysdig_secure_notification_channel_slack": dataSourceSysdigSecureNotificationChannelSlack(),
"sysdig_secure_notification_channel_sns": dataSourceSysdigSecureNotificationChannelSNS(),
"sysdig_secure_notification_channel_victorops": dataSourceSysdigSecureNotificationChannelVictorOps(),
"sysdig_secure_notification_channel_webhook": dataSourceSysdigSecureNotificationChannelWebhook(),
"sysdig_secure_notification_channel_msteams": dataSourceSysdigSecureNotificationChannelMSTeams(),
"sysdig_secure_notification_channel_prometheus_alert_manager": dataSourceSysdigSecureNotificationChannelPrometheusAlertManager(),
"sysdig_secure_notification_channel_team_email": dataSourceSysdigSecureNotificationChannelTeamEmail(),
"sysdig_secure_aws_ml_policy": dataSourceSysdigSecureAWSMLPolicy(),
"sysdig_secure_custom_policy": dataSourceSysdigSecureCustomPolicy(),
"sysdig_secure_drift_policy": dataSourceSysdigSecureDriftPolicy(),
"sysdig_secure_malware_policy": dataSourceSysdigSecureMalwarePolicy(),
"sysdig_secure_ml_policy": dataSourceSysdigSecureMLPolicy(),
"sysdig_secure_managed_policy": dataSourceSysdigSecureManagedPolicy(),
"sysdig_secure_managed_ruleset": dataSourceSysdigSecureManagedRuleset(),
"sysdig_secure_rule_container": dataSourceSysdigSecureRuleContainer(),
"sysdig_secure_rule_falco": dataSourceSysdigSecureRuleFalco(),
"sysdig_secure_rule_falco_count": dataSourceSysdigSecureRuleFalcoCount(),
"sysdig_secure_rule_filesystem": dataSourceSysdigSecureRuleFilesystem(),
"sysdig_secure_rule_network": dataSourceSysdigSecureRuleNetwork(),
"sysdig_secure_rule_process": dataSourceSysdigSecureRuleProcess(),
"sysdig_secure_rule_syscall": dataSourceSysdigSecureRuleSyscall(),
"sysdig_secure_posture_policies": dataSourceSysdigSecurePosturePolicies(),
"sysdig_secure_custom_role_permissions": dataSourceSysdigSecureCustomRolePermissions(),
"sysdig_secure_rule_stateful": dataSourceSysdigSecureRuleStateful(),
"sysdig_secure_rule_stateful_count": dataSourceSysdigSecureRuleStatefulCount(),
"sysdig_current_user": dataSourceSysdigCurrentUser(),
"sysdig_user": dataSourceSysdigUser(),
"sysdig_secure_connection": dataSourceSysdigSecureConnection(),
"sysdig_custom_role": dataSourceSysdigCustomRole(),
"sysdig_agent_access_key": dataSourceSysdigAgentAccessKey(),
"sysdig_fargate_workload_agent": dataSourceSysdigFargateWorkloadAgent(),
"sysdig_monitor_notification_channel_pagerduty": dataSourceSysdigMonitorNotificationChannelPagerduty(),
"sysdig_monitor_notification_channel_email": dataSourceSysdigMonitorNotificationChannelEmail(),
"sysdig_monitor_notification_channel_opsgenie": dataSourceSysdigMonitorNotificationChannelOpsGenie(),
"sysdig_monitor_notification_channel_slack": dataSourceSysdigMonitorNotificationChannelSlack(),
"sysdig_monitor_notification_channel_sns": dataSourceSysdigMonitorNotificationChannelSNS(),
"sysdig_monitor_notification_channel_victorops": dataSourceSysdigMonitorNotificationChannelVictorOps(),
"sysdig_monitor_notification_channel_webhook": dataSourceSysdigMonitorNotificationChannelWebhook(),
"sysdig_monitor_notification_channel_msteams": dataSourceSysdigMonitorNotificationChannelMSTeams(),
"sysdig_monitor_notification_channel_google_chat": dataSourceSysdigMonitorNotificationChannelGoogleChat(),
"sysdig_monitor_notification_channel_prometheus_alert_manager": dataSourceSysdigMonitorNotificationChannelPrometheusAlertManager(),
"sysdig_monitor_notification_channel_team_email": dataSourceSysdigMonitorNotificationChannelTeamEmail(),
"sysdig_monitor_notification_channel_custom_webhook": dataSourceSysdigMonitorNotificationChannelCustomWebhook(),
"sysdig_monitor_notification_channel_ibm_event_notification": dataSourceSysdigMonitorNotificationChannelIBMEventNotification(),
"sysdig_monitor_notification_channel_ibm_function": dataSourceSysdigMonitorNotificationChannelIBMFunction(),
"sysdig_monitor_custom_role_permissions": dataSourceSysdigMonitorCustomRolePermissions(),
"sysdig_secure_posture_policy": dataSourceSysdigSecurePosturePolicy(),
},
ConfigureContextFunc: p.providerConfigure,
}
}
func (p *SysdigProvider) providerConfigure(ctx context.Context, d *schema.ResourceData) (interface{}, diag.Diagnostics) {
p.SysdigClient.Configure(ctx, d)
return p.SysdigClient, nil
}