@pulumi/gcp 7.36.0 → 7.37.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. package/accesscontextmanager/index.d.ts +6 -0
  2. package/accesscontextmanager/index.js +11 -1
  3. package/accesscontextmanager/index.js.map +1 -1
  4. package/accesscontextmanager/servicePerimeterDryRunEgressPolicy.d.ts +112 -0
  5. package/accesscontextmanager/servicePerimeterDryRunEgressPolicy.js +76 -0
  6. package/accesscontextmanager/servicePerimeterDryRunEgressPolicy.js.map +1 -0
  7. package/accesscontextmanager/servicePerimeterDryRunIngressPolicy.d.ts +116 -0
  8. package/accesscontextmanager/servicePerimeterDryRunIngressPolicy.js +77 -0
  9. package/accesscontextmanager/servicePerimeterDryRunIngressPolicy.js.map +1 -0
  10. package/accesscontextmanager/servicePerimeterEgressPolicy.d.ts +1 -12
  11. package/accesscontextmanager/servicePerimeterEgressPolicy.js +1 -12
  12. package/accesscontextmanager/servicePerimeterEgressPolicy.js.map +1 -1
  13. package/accesscontextmanager/servicePerimeterIngressPolicy.d.ts +1 -12
  14. package/accesscontextmanager/servicePerimeterIngressPolicy.js +1 -12
  15. package/accesscontextmanager/servicePerimeterIngressPolicy.js.map +1 -1
  16. package/applicationintegration/client.d.ts +1 -1
  17. package/applicationintegration/client.js +1 -1
  18. package/compute/regionTargetHttpsProxy.d.ts +12 -0
  19. package/compute/regionTargetHttpsProxy.js.map +1 -1
  20. package/dataform/repository.d.ts +31 -0
  21. package/dataform/repository.js +18 -0
  22. package/dataform/repository.js.map +1 -1
  23. package/discoveryengine/dataStore.d.ts +31 -0
  24. package/discoveryengine/dataStore.js +3 -0
  25. package/discoveryengine/dataStore.js.map +1 -1
  26. package/logging/getLogViewIamPolicy.d.ts +34 -0
  27. package/logging/getLogViewIamPolicy.js +34 -0
  28. package/logging/getLogViewIamPolicy.js.map +1 -1
  29. package/logging/logViewIamBinding.d.ts +276 -0
  30. package/logging/logViewIamBinding.js +276 -0
  31. package/logging/logViewIamBinding.js.map +1 -1
  32. package/logging/logViewIamMember.d.ts +276 -0
  33. package/logging/logViewIamMember.js +276 -0
  34. package/logging/logViewIamMember.js.map +1 -1
  35. package/logging/logViewIamPolicy.d.ts +276 -0
  36. package/logging/logViewIamPolicy.js +276 -0
  37. package/logging/logViewIamPolicy.js.map +1 -1
  38. package/networkconnectivity/regionalEndpoint.d.ts +3 -3
  39. package/networkconnectivity/regionalEndpoint.js +3 -3
  40. package/organizations/getProject.d.ts +1 -0
  41. package/organizations/getProject.js.map +1 -1
  42. package/organizations/project.d.ts +21 -9
  43. package/organizations/project.js +2 -0
  44. package/organizations/project.js.map +1 -1
  45. package/package.json +2 -2
  46. package/securitycenter/getV2OrganizationSourceIamPolicy.d.ts +71 -0
  47. package/securitycenter/getV2OrganizationSourceIamPolicy.js +48 -0
  48. package/securitycenter/getV2OrganizationSourceIamPolicy.js.map +1 -0
  49. package/securitycenter/index.d.ts +24 -0
  50. package/securitycenter/index.js +39 -1
  51. package/securitycenter/index.js.map +1 -1
  52. package/securitycenter/v2folderMuteConfig.d.ts +230 -0
  53. package/securitycenter/v2folderMuteConfig.js +129 -0
  54. package/securitycenter/v2folderMuteConfig.js.map +1 -0
  55. package/securitycenter/v2organizationSource.d.ts +151 -0
  56. package/securitycenter/v2organizationSource.js +106 -0
  57. package/securitycenter/v2organizationSource.js.map +1 -0
  58. package/securitycenter/v2organizationSourceIamBinding.d.ts +283 -0
  59. package/securitycenter/v2organizationSourceIamBinding.js +230 -0
  60. package/securitycenter/v2organizationSourceIamBinding.js.map +1 -0
  61. package/securitycenter/v2organizationSourceIamMember.d.ts +283 -0
  62. package/securitycenter/v2organizationSourceIamMember.js +230 -0
  63. package/securitycenter/v2organizationSourceIamMember.js.map +1 -0
  64. package/securitycenter/v2organizationSourceIamPolicy.d.ts +233 -0
  65. package/securitycenter/v2organizationSourceIamPolicy.js +223 -0
  66. package/securitycenter/v2organizationSourceIamPolicy.js.map +1 -0
  67. package/securitycenter/v2projectMuteConfig.d.ts +232 -0
  68. package/securitycenter/v2projectMuteConfig.js +128 -0
  69. package/securitycenter/v2projectMuteConfig.js.map +1 -0
  70. package/securitycenter/v2projectNotificationConfig.d.ts +184 -0
  71. package/securitycenter/v2projectNotificationConfig.js +129 -0
  72. package/securitycenter/v2projectNotificationConfig.js.map +1 -0
  73. package/spanner/instance.d.ts +0 -3
  74. package/spanner/instance.js.map +1 -1
  75. package/storage/bucketObject.d.ts +8 -0
  76. package/storage/bucketObject.js +2 -0
  77. package/storage/bucketObject.js.map +1 -1
  78. package/storage/getBucketObject.d.ts +4 -0
  79. package/storage/getBucketObject.js.map +1 -1
  80. package/storage/getBucketObjectContent.d.ts +1 -0
  81. package/storage/getBucketObjectContent.js.map +1 -1
  82. package/storage/managedFolder.d.ts +22 -0
  83. package/storage/managedFolder.js +3 -0
  84. package/storage/managedFolder.js.map +1 -1
  85. package/types/input.d.ts +242 -3
  86. package/types/output.d.ts +256 -5
  87. package/vmwareengine/networkPolicy.d.ts +3 -3
  88. package/vmwareengine/networkPolicy.js +3 -3
@@ -0,0 +1,232 @@
1
+ import * as pulumi from "@pulumi/pulumi";
2
+ /**
3
+ * Mute Findings is a volume management feature in Security Command Center
4
+ * that lets you manually or programmatically hide irrelevant findings,
5
+ * and create filters to automatically silence existing and future
6
+ * findings based on criteria you specify.
7
+ *
8
+ * To get more information about ProjectMuteConfig, see:
9
+ *
10
+ * * [API documentation](https://cloud.google.com/security-command-center/docs/reference/rest/v2/projects.muteConfigs)
11
+ *
12
+ * ## Example Usage
13
+ *
14
+ * ### Scc V2 Project Mute Config Basic
15
+ *
16
+ * ```typescript
17
+ * import * as pulumi from "@pulumi/pulumi";
18
+ * import * as gcp from "@pulumi/gcp";
19
+ *
20
+ * const _default = new gcp.securitycenter.V2ProjectMuteConfig("default", {
21
+ * muteConfigId: "my-config",
22
+ * project: "",
23
+ * location: "global",
24
+ * description: "My custom Cloud Security Command Center Finding Project mute Configuration",
25
+ * filter: "severity = \"HIGH\"",
26
+ * type: "STATIC",
27
+ * });
28
+ * ```
29
+ *
30
+ * ## Import
31
+ *
32
+ * ProjectMuteConfig can be imported using any of these accepted formats:
33
+ *
34
+ * * `projects/{{project}}/locations/{{location}}/muteConfigs/{{mute_config_id}}`
35
+ *
36
+ * * `{{project}}/{{location}}/{{mute_config_id}}`
37
+ *
38
+ * * `{{location}}/{{mute_config_id}}`
39
+ *
40
+ * When using the `pulumi import` command, ProjectMuteConfig can be imported using one of the formats above. For example:
41
+ *
42
+ * ```sh
43
+ * $ pulumi import gcp:securitycenter/v2ProjectMuteConfig:V2ProjectMuteConfig default projects/{{project}}/locations/{{location}}/muteConfigs/{{mute_config_id}}
44
+ * ```
45
+ *
46
+ * ```sh
47
+ * $ pulumi import gcp:securitycenter/v2ProjectMuteConfig:V2ProjectMuteConfig default {{project}}/{{location}}/{{mute_config_id}}
48
+ * ```
49
+ *
50
+ * ```sh
51
+ * $ pulumi import gcp:securitycenter/v2ProjectMuteConfig:V2ProjectMuteConfig default {{location}}/{{mute_config_id}}
52
+ * ```
53
+ */
54
+ export declare class V2ProjectMuteConfig extends pulumi.CustomResource {
55
+ /**
56
+ * Get an existing V2ProjectMuteConfig resource's state with the given name, ID, and optional extra
57
+ * properties used to qualify the lookup.
58
+ *
59
+ * @param name The _unique_ name of the resulting resource.
60
+ * @param id The _unique_ provider ID of the resource to lookup.
61
+ * @param state Any extra arguments used during the lookup.
62
+ * @param opts Optional settings to control the behavior of the CustomResource.
63
+ */
64
+ static get(name: string, id: pulumi.Input<pulumi.ID>, state?: V2ProjectMuteConfigState, opts?: pulumi.CustomResourceOptions): V2ProjectMuteConfig;
65
+ /**
66
+ * Returns true if the given object is an instance of V2ProjectMuteConfig. This is designed to work even
67
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
68
+ */
69
+ static isInstance(obj: any): obj is V2ProjectMuteConfig;
70
+ /**
71
+ * The time at which the mute config was created. This field is set by
72
+ * the server and will be ignored if provided on config creation.
73
+ */
74
+ readonly createTime: pulumi.Output<string>;
75
+ /**
76
+ * A description of the mute config.
77
+ */
78
+ readonly description: pulumi.Output<string | undefined>;
79
+ /**
80
+ * An expression that defines the filter to apply across create/update
81
+ * events of findings. While creating a filter string, be mindful of
82
+ * the scope in which the mute configuration is being created. E.g.,
83
+ * If a filter contains project = X but is created under the
84
+ * project = Y scope, it might not match any findings.
85
+ */
86
+ readonly filter: pulumi.Output<string>;
87
+ /**
88
+ * location Id is provided by project. If not provided, Use global as default.
89
+ */
90
+ readonly location: pulumi.Output<string | undefined>;
91
+ /**
92
+ * Email address of the user who last edited the mute config. This
93
+ * field is set by the server and will be ignored if provided on
94
+ * config creation or update.
95
+ */
96
+ readonly mostRecentEditor: pulumi.Output<string>;
97
+ /**
98
+ * Unique identifier provided by the client within the parent scope.
99
+ *
100
+ *
101
+ * - - -
102
+ */
103
+ readonly muteConfigId: pulumi.Output<string>;
104
+ /**
105
+ * Name of the mute config. Its format is
106
+ * projects/{project}/locations/global/muteConfigs/{configId},
107
+ * folders/{folder}/locations/global/muteConfigs/{configId},
108
+ * or organizations/{organization}/locations/global/muteConfigs/{configId}
109
+ */
110
+ readonly name: pulumi.Output<string>;
111
+ /**
112
+ * The ID of the project in which the resource belongs.
113
+ * If it is not provided, the provider project is used.
114
+ */
115
+ readonly project: pulumi.Output<string>;
116
+ /**
117
+ * The type of the mute config.
118
+ */
119
+ readonly type: pulumi.Output<string>;
120
+ /**
121
+ * Output only. The most recent time at which the mute config was
122
+ * updated. This field is set by the server and will be ignored if
123
+ * provided on config creation or update.
124
+ */
125
+ readonly updateTime: pulumi.Output<string>;
126
+ /**
127
+ * Create a V2ProjectMuteConfig resource with the given unique name, arguments, and options.
128
+ *
129
+ * @param name The _unique_ name of the resource.
130
+ * @param args The arguments to use to populate this resource's properties.
131
+ * @param opts A bag of options that control this resource's behavior.
132
+ */
133
+ constructor(name: string, args: V2ProjectMuteConfigArgs, opts?: pulumi.CustomResourceOptions);
134
+ }
135
+ /**
136
+ * Input properties used for looking up and filtering V2ProjectMuteConfig resources.
137
+ */
138
+ export interface V2ProjectMuteConfigState {
139
+ /**
140
+ * The time at which the mute config was created. This field is set by
141
+ * the server and will be ignored if provided on config creation.
142
+ */
143
+ createTime?: pulumi.Input<string>;
144
+ /**
145
+ * A description of the mute config.
146
+ */
147
+ description?: pulumi.Input<string>;
148
+ /**
149
+ * An expression that defines the filter to apply across create/update
150
+ * events of findings. While creating a filter string, be mindful of
151
+ * the scope in which the mute configuration is being created. E.g.,
152
+ * If a filter contains project = X but is created under the
153
+ * project = Y scope, it might not match any findings.
154
+ */
155
+ filter?: pulumi.Input<string>;
156
+ /**
157
+ * location Id is provided by project. If not provided, Use global as default.
158
+ */
159
+ location?: pulumi.Input<string>;
160
+ /**
161
+ * Email address of the user who last edited the mute config. This
162
+ * field is set by the server and will be ignored if provided on
163
+ * config creation or update.
164
+ */
165
+ mostRecentEditor?: pulumi.Input<string>;
166
+ /**
167
+ * Unique identifier provided by the client within the parent scope.
168
+ *
169
+ *
170
+ * - - -
171
+ */
172
+ muteConfigId?: pulumi.Input<string>;
173
+ /**
174
+ * Name of the mute config. Its format is
175
+ * projects/{project}/locations/global/muteConfigs/{configId},
176
+ * folders/{folder}/locations/global/muteConfigs/{configId},
177
+ * or organizations/{organization}/locations/global/muteConfigs/{configId}
178
+ */
179
+ name?: pulumi.Input<string>;
180
+ /**
181
+ * The ID of the project in which the resource belongs.
182
+ * If it is not provided, the provider project is used.
183
+ */
184
+ project?: pulumi.Input<string>;
185
+ /**
186
+ * The type of the mute config.
187
+ */
188
+ type?: pulumi.Input<string>;
189
+ /**
190
+ * Output only. The most recent time at which the mute config was
191
+ * updated. This field is set by the server and will be ignored if
192
+ * provided on config creation or update.
193
+ */
194
+ updateTime?: pulumi.Input<string>;
195
+ }
196
+ /**
197
+ * The set of arguments for constructing a V2ProjectMuteConfig resource.
198
+ */
199
+ export interface V2ProjectMuteConfigArgs {
200
+ /**
201
+ * A description of the mute config.
202
+ */
203
+ description?: pulumi.Input<string>;
204
+ /**
205
+ * An expression that defines the filter to apply across create/update
206
+ * events of findings. While creating a filter string, be mindful of
207
+ * the scope in which the mute configuration is being created. E.g.,
208
+ * If a filter contains project = X but is created under the
209
+ * project = Y scope, it might not match any findings.
210
+ */
211
+ filter: pulumi.Input<string>;
212
+ /**
213
+ * location Id is provided by project. If not provided, Use global as default.
214
+ */
215
+ location?: pulumi.Input<string>;
216
+ /**
217
+ * Unique identifier provided by the client within the parent scope.
218
+ *
219
+ *
220
+ * - - -
221
+ */
222
+ muteConfigId: pulumi.Input<string>;
223
+ /**
224
+ * The ID of the project in which the resource belongs.
225
+ * If it is not provided, the provider project is used.
226
+ */
227
+ project?: pulumi.Input<string>;
228
+ /**
229
+ * The type of the mute config.
230
+ */
231
+ type: pulumi.Input<string>;
232
+ }
@@ -0,0 +1,128 @@
1
+ "use strict";
2
+ // *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
3
+ // *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.V2ProjectMuteConfig = void 0;
6
+ const pulumi = require("@pulumi/pulumi");
7
+ const utilities = require("../utilities");
8
+ /**
9
+ * Mute Findings is a volume management feature in Security Command Center
10
+ * that lets you manually or programmatically hide irrelevant findings,
11
+ * and create filters to automatically silence existing and future
12
+ * findings based on criteria you specify.
13
+ *
14
+ * To get more information about ProjectMuteConfig, see:
15
+ *
16
+ * * [API documentation](https://cloud.google.com/security-command-center/docs/reference/rest/v2/projects.muteConfigs)
17
+ *
18
+ * ## Example Usage
19
+ *
20
+ * ### Scc V2 Project Mute Config Basic
21
+ *
22
+ * ```typescript
23
+ * import * as pulumi from "@pulumi/pulumi";
24
+ * import * as gcp from "@pulumi/gcp";
25
+ *
26
+ * const _default = new gcp.securitycenter.V2ProjectMuteConfig("default", {
27
+ * muteConfigId: "my-config",
28
+ * project: "",
29
+ * location: "global",
30
+ * description: "My custom Cloud Security Command Center Finding Project mute Configuration",
31
+ * filter: "severity = \"HIGH\"",
32
+ * type: "STATIC",
33
+ * });
34
+ * ```
35
+ *
36
+ * ## Import
37
+ *
38
+ * ProjectMuteConfig can be imported using any of these accepted formats:
39
+ *
40
+ * * `projects/{{project}}/locations/{{location}}/muteConfigs/{{mute_config_id}}`
41
+ *
42
+ * * `{{project}}/{{location}}/{{mute_config_id}}`
43
+ *
44
+ * * `{{location}}/{{mute_config_id}}`
45
+ *
46
+ * When using the `pulumi import` command, ProjectMuteConfig can be imported using one of the formats above. For example:
47
+ *
48
+ * ```sh
49
+ * $ pulumi import gcp:securitycenter/v2ProjectMuteConfig:V2ProjectMuteConfig default projects/{{project}}/locations/{{location}}/muteConfigs/{{mute_config_id}}
50
+ * ```
51
+ *
52
+ * ```sh
53
+ * $ pulumi import gcp:securitycenter/v2ProjectMuteConfig:V2ProjectMuteConfig default {{project}}/{{location}}/{{mute_config_id}}
54
+ * ```
55
+ *
56
+ * ```sh
57
+ * $ pulumi import gcp:securitycenter/v2ProjectMuteConfig:V2ProjectMuteConfig default {{location}}/{{mute_config_id}}
58
+ * ```
59
+ */
60
+ class V2ProjectMuteConfig extends pulumi.CustomResource {
61
+ /**
62
+ * Get an existing V2ProjectMuteConfig resource's state with the given name, ID, and optional extra
63
+ * properties used to qualify the lookup.
64
+ *
65
+ * @param name The _unique_ name of the resulting resource.
66
+ * @param id The _unique_ provider ID of the resource to lookup.
67
+ * @param state Any extra arguments used during the lookup.
68
+ * @param opts Optional settings to control the behavior of the CustomResource.
69
+ */
70
+ static get(name, id, state, opts) {
71
+ return new V2ProjectMuteConfig(name, state, Object.assign(Object.assign({}, opts), { id: id }));
72
+ }
73
+ /**
74
+ * Returns true if the given object is an instance of V2ProjectMuteConfig. This is designed to work even
75
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
76
+ */
77
+ static isInstance(obj) {
78
+ if (obj === undefined || obj === null) {
79
+ return false;
80
+ }
81
+ return obj['__pulumiType'] === V2ProjectMuteConfig.__pulumiType;
82
+ }
83
+ constructor(name, argsOrState, opts) {
84
+ let resourceInputs = {};
85
+ opts = opts || {};
86
+ if (opts.id) {
87
+ const state = argsOrState;
88
+ resourceInputs["createTime"] = state ? state.createTime : undefined;
89
+ resourceInputs["description"] = state ? state.description : undefined;
90
+ resourceInputs["filter"] = state ? state.filter : undefined;
91
+ resourceInputs["location"] = state ? state.location : undefined;
92
+ resourceInputs["mostRecentEditor"] = state ? state.mostRecentEditor : undefined;
93
+ resourceInputs["muteConfigId"] = state ? state.muteConfigId : undefined;
94
+ resourceInputs["name"] = state ? state.name : undefined;
95
+ resourceInputs["project"] = state ? state.project : undefined;
96
+ resourceInputs["type"] = state ? state.type : undefined;
97
+ resourceInputs["updateTime"] = state ? state.updateTime : undefined;
98
+ }
99
+ else {
100
+ const args = argsOrState;
101
+ if ((!args || args.filter === undefined) && !opts.urn) {
102
+ throw new Error("Missing required property 'filter'");
103
+ }
104
+ if ((!args || args.muteConfigId === undefined) && !opts.urn) {
105
+ throw new Error("Missing required property 'muteConfigId'");
106
+ }
107
+ if ((!args || args.type === undefined) && !opts.urn) {
108
+ throw new Error("Missing required property 'type'");
109
+ }
110
+ resourceInputs["description"] = args ? args.description : undefined;
111
+ resourceInputs["filter"] = args ? args.filter : undefined;
112
+ resourceInputs["location"] = args ? args.location : undefined;
113
+ resourceInputs["muteConfigId"] = args ? args.muteConfigId : undefined;
114
+ resourceInputs["project"] = args ? args.project : undefined;
115
+ resourceInputs["type"] = args ? args.type : undefined;
116
+ resourceInputs["createTime"] = undefined /*out*/;
117
+ resourceInputs["mostRecentEditor"] = undefined /*out*/;
118
+ resourceInputs["name"] = undefined /*out*/;
119
+ resourceInputs["updateTime"] = undefined /*out*/;
120
+ }
121
+ opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
122
+ super(V2ProjectMuteConfig.__pulumiType, name, resourceInputs, opts);
123
+ }
124
+ }
125
+ exports.V2ProjectMuteConfig = V2ProjectMuteConfig;
126
+ /** @internal */
127
+ V2ProjectMuteConfig.__pulumiType = 'gcp:securitycenter/v2ProjectMuteConfig:V2ProjectMuteConfig';
128
+ //# sourceMappingURL=v2projectMuteConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"v2projectMuteConfig.js","sourceRoot":"","sources":["../../securitycenter/v2projectMuteConfig.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,184 @@
1
+ import * as pulumi from "@pulumi/pulumi";
2
+ import * as inputs from "../types/input";
3
+ import * as outputs from "../types/output";
4
+ /**
5
+ * A Cloud Security Command Center (Cloud SCC) notification configs. A
6
+ * notification config is a Cloud SCC resource that contains the
7
+ * configuration to send notifications for create/update events of
8
+ * findings, assets and etc.
9
+ * > **Note:** In order to use Cloud SCC resources, your organization must be enrolled
10
+ * in [SCC Standard/Premium](https://cloud.google.com/security-command-center/docs/quickstart-security-command-center).
11
+ * Without doing so, you may run into errors during resource creation.
12
+ *
13
+ * To get more information about ProjectNotificationConfig, see:
14
+ *
15
+ * * [API documentation](https://cloud.google.com/security-command-center/docs/reference/rest/v2/projects.locations.notificationConfigs)
16
+ * * How-to Guides
17
+ * * [Official Documentation](https://cloud.google.com/security-command-center/docs)
18
+ *
19
+ * ## Example Usage
20
+ *
21
+ * ### Scc V2 Project Notification Config Basic
22
+ *
23
+ * ```typescript
24
+ * import * as pulumi from "@pulumi/pulumi";
25
+ * import * as gcp from "@pulumi/gcp";
26
+ *
27
+ * const sccV2ProjectNotification = new gcp.pubsub.Topic("scc_v2_project_notification", {name: "my-topic"});
28
+ * const customNotificationConfig = new gcp.securitycenter.V2ProjectNotificationConfig("custom_notification_config", {
29
+ * configId: "my-config",
30
+ * project: "my-project-name",
31
+ * location: "global",
32
+ * description: "My custom Cloud Security Command Center Finding Notification Configuration",
33
+ * pubsubTopic: sccV2ProjectNotification.id,
34
+ * streamingConfig: {
35
+ * filter: "category = \"OPEN_FIREWALL\" AND state = \"ACTIVE\"",
36
+ * },
37
+ * });
38
+ * ```
39
+ *
40
+ * ## Import
41
+ *
42
+ * ProjectNotificationConfig can be imported using any of these accepted formats:
43
+ *
44
+ * * `projects/{{project}}/locations/{{location}}/notificationConfigs/{{config_id}}`
45
+ *
46
+ * * `{{project}}/{{location}}/{{config_id}}`
47
+ *
48
+ * * `{{location}}/{{config_id}}`
49
+ *
50
+ * When using the `pulumi import` command, ProjectNotificationConfig can be imported using one of the formats above. For example:
51
+ *
52
+ * ```sh
53
+ * $ pulumi import gcp:securitycenter/v2ProjectNotificationConfig:V2ProjectNotificationConfig default projects/{{project}}/locations/{{location}}/notificationConfigs/{{config_id}}
54
+ * ```
55
+ *
56
+ * ```sh
57
+ * $ pulumi import gcp:securitycenter/v2ProjectNotificationConfig:V2ProjectNotificationConfig default {{project}}/{{location}}/{{config_id}}
58
+ * ```
59
+ *
60
+ * ```sh
61
+ * $ pulumi import gcp:securitycenter/v2ProjectNotificationConfig:V2ProjectNotificationConfig default {{location}}/{{config_id}}
62
+ * ```
63
+ */
64
+ export declare class V2ProjectNotificationConfig extends pulumi.CustomResource {
65
+ /**
66
+ * Get an existing V2ProjectNotificationConfig resource's state with the given name, ID, and optional extra
67
+ * properties used to qualify the lookup.
68
+ *
69
+ * @param name The _unique_ name of the resulting resource.
70
+ * @param id The _unique_ provider ID of the resource to lookup.
71
+ * @param state Any extra arguments used during the lookup.
72
+ * @param opts Optional settings to control the behavior of the CustomResource.
73
+ */
74
+ static get(name: string, id: pulumi.Input<pulumi.ID>, state?: V2ProjectNotificationConfigState, opts?: pulumi.CustomResourceOptions): V2ProjectNotificationConfig;
75
+ /**
76
+ * Returns true if the given object is an instance of V2ProjectNotificationConfig. This is designed to work even
77
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
78
+ */
79
+ static isInstance(obj: any): obj is V2ProjectNotificationConfig;
80
+ /**
81
+ * This must be unique within the project.
82
+ */
83
+ readonly configId: pulumi.Output<string>;
84
+ /**
85
+ * The description of the notification config (max of 1024 characters).
86
+ */
87
+ readonly description: pulumi.Output<string | undefined>;
88
+ /**
89
+ * Location ID of the parent organization. Only global is supported at the moment.
90
+ */
91
+ readonly location: pulumi.Output<string | undefined>;
92
+ /**
93
+ * The resource name of this notification config, in the format
94
+ * `projects/{{projectId}}/locations/{{location}}/notificationConfigs/{{config_id}}`.
95
+ */
96
+ readonly name: pulumi.Output<string>;
97
+ readonly project: pulumi.Output<string>;
98
+ /**
99
+ * The Pub/Sub topic to send notifications to. Its format is "projects/[projectId]/topics/[topic]".
100
+ */
101
+ readonly pubsubTopic: pulumi.Output<string | undefined>;
102
+ /**
103
+ * The service account that needs "pubsub.topics.publish" permission to
104
+ * publish to the Pub/Sub topic.
105
+ */
106
+ readonly serviceAccount: pulumi.Output<string>;
107
+ /**
108
+ * The config for triggering streaming-based notifications.
109
+ * Structure is documented below.
110
+ */
111
+ readonly streamingConfig: pulumi.Output<outputs.securitycenter.V2ProjectNotificationConfigStreamingConfig>;
112
+ /**
113
+ * Create a V2ProjectNotificationConfig resource with the given unique name, arguments, and options.
114
+ *
115
+ * @param name The _unique_ name of the resource.
116
+ * @param args The arguments to use to populate this resource's properties.
117
+ * @param opts A bag of options that control this resource's behavior.
118
+ */
119
+ constructor(name: string, args: V2ProjectNotificationConfigArgs, opts?: pulumi.CustomResourceOptions);
120
+ }
121
+ /**
122
+ * Input properties used for looking up and filtering V2ProjectNotificationConfig resources.
123
+ */
124
+ export interface V2ProjectNotificationConfigState {
125
+ /**
126
+ * This must be unique within the project.
127
+ */
128
+ configId?: pulumi.Input<string>;
129
+ /**
130
+ * The description of the notification config (max of 1024 characters).
131
+ */
132
+ description?: pulumi.Input<string>;
133
+ /**
134
+ * Location ID of the parent organization. Only global is supported at the moment.
135
+ */
136
+ location?: pulumi.Input<string>;
137
+ /**
138
+ * The resource name of this notification config, in the format
139
+ * `projects/{{projectId}}/locations/{{location}}/notificationConfigs/{{config_id}}`.
140
+ */
141
+ name?: pulumi.Input<string>;
142
+ project?: pulumi.Input<string>;
143
+ /**
144
+ * The Pub/Sub topic to send notifications to. Its format is "projects/[projectId]/topics/[topic]".
145
+ */
146
+ pubsubTopic?: pulumi.Input<string>;
147
+ /**
148
+ * The service account that needs "pubsub.topics.publish" permission to
149
+ * publish to the Pub/Sub topic.
150
+ */
151
+ serviceAccount?: pulumi.Input<string>;
152
+ /**
153
+ * The config for triggering streaming-based notifications.
154
+ * Structure is documented below.
155
+ */
156
+ streamingConfig?: pulumi.Input<inputs.securitycenter.V2ProjectNotificationConfigStreamingConfig>;
157
+ }
158
+ /**
159
+ * The set of arguments for constructing a V2ProjectNotificationConfig resource.
160
+ */
161
+ export interface V2ProjectNotificationConfigArgs {
162
+ /**
163
+ * This must be unique within the project.
164
+ */
165
+ configId: pulumi.Input<string>;
166
+ /**
167
+ * The description of the notification config (max of 1024 characters).
168
+ */
169
+ description?: pulumi.Input<string>;
170
+ /**
171
+ * Location ID of the parent organization. Only global is supported at the moment.
172
+ */
173
+ location?: pulumi.Input<string>;
174
+ project?: pulumi.Input<string>;
175
+ /**
176
+ * The Pub/Sub topic to send notifications to. Its format is "projects/[projectId]/topics/[topic]".
177
+ */
178
+ pubsubTopic?: pulumi.Input<string>;
179
+ /**
180
+ * The config for triggering streaming-based notifications.
181
+ * Structure is documented below.
182
+ */
183
+ streamingConfig: pulumi.Input<inputs.securitycenter.V2ProjectNotificationConfigStreamingConfig>;
184
+ }
@@ -0,0 +1,129 @@
1
+ "use strict";
2
+ // *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
3
+ // *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.V2ProjectNotificationConfig = void 0;
6
+ const pulumi = require("@pulumi/pulumi");
7
+ const utilities = require("../utilities");
8
+ /**
9
+ * A Cloud Security Command Center (Cloud SCC) notification configs. A
10
+ * notification config is a Cloud SCC resource that contains the
11
+ * configuration to send notifications for create/update events of
12
+ * findings, assets and etc.
13
+ * > **Note:** In order to use Cloud SCC resources, your organization must be enrolled
14
+ * in [SCC Standard/Premium](https://cloud.google.com/security-command-center/docs/quickstart-security-command-center).
15
+ * Without doing so, you may run into errors during resource creation.
16
+ *
17
+ * To get more information about ProjectNotificationConfig, see:
18
+ *
19
+ * * [API documentation](https://cloud.google.com/security-command-center/docs/reference/rest/v2/projects.locations.notificationConfigs)
20
+ * * How-to Guides
21
+ * * [Official Documentation](https://cloud.google.com/security-command-center/docs)
22
+ *
23
+ * ## Example Usage
24
+ *
25
+ * ### Scc V2 Project Notification Config Basic
26
+ *
27
+ * ```typescript
28
+ * import * as pulumi from "@pulumi/pulumi";
29
+ * import * as gcp from "@pulumi/gcp";
30
+ *
31
+ * const sccV2ProjectNotification = new gcp.pubsub.Topic("scc_v2_project_notification", {name: "my-topic"});
32
+ * const customNotificationConfig = new gcp.securitycenter.V2ProjectNotificationConfig("custom_notification_config", {
33
+ * configId: "my-config",
34
+ * project: "my-project-name",
35
+ * location: "global",
36
+ * description: "My custom Cloud Security Command Center Finding Notification Configuration",
37
+ * pubsubTopic: sccV2ProjectNotification.id,
38
+ * streamingConfig: {
39
+ * filter: "category = \"OPEN_FIREWALL\" AND state = \"ACTIVE\"",
40
+ * },
41
+ * });
42
+ * ```
43
+ *
44
+ * ## Import
45
+ *
46
+ * ProjectNotificationConfig can be imported using any of these accepted formats:
47
+ *
48
+ * * `projects/{{project}}/locations/{{location}}/notificationConfigs/{{config_id}}`
49
+ *
50
+ * * `{{project}}/{{location}}/{{config_id}}`
51
+ *
52
+ * * `{{location}}/{{config_id}}`
53
+ *
54
+ * When using the `pulumi import` command, ProjectNotificationConfig can be imported using one of the formats above. For example:
55
+ *
56
+ * ```sh
57
+ * $ pulumi import gcp:securitycenter/v2ProjectNotificationConfig:V2ProjectNotificationConfig default projects/{{project}}/locations/{{location}}/notificationConfigs/{{config_id}}
58
+ * ```
59
+ *
60
+ * ```sh
61
+ * $ pulumi import gcp:securitycenter/v2ProjectNotificationConfig:V2ProjectNotificationConfig default {{project}}/{{location}}/{{config_id}}
62
+ * ```
63
+ *
64
+ * ```sh
65
+ * $ pulumi import gcp:securitycenter/v2ProjectNotificationConfig:V2ProjectNotificationConfig default {{location}}/{{config_id}}
66
+ * ```
67
+ */
68
+ class V2ProjectNotificationConfig extends pulumi.CustomResource {
69
+ /**
70
+ * Get an existing V2ProjectNotificationConfig resource's state with the given name, ID, and optional extra
71
+ * properties used to qualify the lookup.
72
+ *
73
+ * @param name The _unique_ name of the resulting resource.
74
+ * @param id The _unique_ provider ID of the resource to lookup.
75
+ * @param state Any extra arguments used during the lookup.
76
+ * @param opts Optional settings to control the behavior of the CustomResource.
77
+ */
78
+ static get(name, id, state, opts) {
79
+ return new V2ProjectNotificationConfig(name, state, Object.assign(Object.assign({}, opts), { id: id }));
80
+ }
81
+ /**
82
+ * Returns true if the given object is an instance of V2ProjectNotificationConfig. This is designed to work even
83
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
84
+ */
85
+ static isInstance(obj) {
86
+ if (obj === undefined || obj === null) {
87
+ return false;
88
+ }
89
+ return obj['__pulumiType'] === V2ProjectNotificationConfig.__pulumiType;
90
+ }
91
+ constructor(name, argsOrState, opts) {
92
+ let resourceInputs = {};
93
+ opts = opts || {};
94
+ if (opts.id) {
95
+ const state = argsOrState;
96
+ resourceInputs["configId"] = state ? state.configId : undefined;
97
+ resourceInputs["description"] = state ? state.description : undefined;
98
+ resourceInputs["location"] = state ? state.location : undefined;
99
+ resourceInputs["name"] = state ? state.name : undefined;
100
+ resourceInputs["project"] = state ? state.project : undefined;
101
+ resourceInputs["pubsubTopic"] = state ? state.pubsubTopic : undefined;
102
+ resourceInputs["serviceAccount"] = state ? state.serviceAccount : undefined;
103
+ resourceInputs["streamingConfig"] = state ? state.streamingConfig : undefined;
104
+ }
105
+ else {
106
+ const args = argsOrState;
107
+ if ((!args || args.configId === undefined) && !opts.urn) {
108
+ throw new Error("Missing required property 'configId'");
109
+ }
110
+ if ((!args || args.streamingConfig === undefined) && !opts.urn) {
111
+ throw new Error("Missing required property 'streamingConfig'");
112
+ }
113
+ resourceInputs["configId"] = args ? args.configId : undefined;
114
+ resourceInputs["description"] = args ? args.description : undefined;
115
+ resourceInputs["location"] = args ? args.location : undefined;
116
+ resourceInputs["project"] = args ? args.project : undefined;
117
+ resourceInputs["pubsubTopic"] = args ? args.pubsubTopic : undefined;
118
+ resourceInputs["streamingConfig"] = args ? args.streamingConfig : undefined;
119
+ resourceInputs["name"] = undefined /*out*/;
120
+ resourceInputs["serviceAccount"] = undefined /*out*/;
121
+ }
122
+ opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
123
+ super(V2ProjectNotificationConfig.__pulumiType, name, resourceInputs, opts);
124
+ }
125
+ }
126
+ exports.V2ProjectNotificationConfig = V2ProjectNotificationConfig;
127
+ /** @internal */
128
+ V2ProjectNotificationConfig.__pulumiType = 'gcp:securitycenter/v2ProjectNotificationConfig:V2ProjectNotificationConfig';
129
+ //# sourceMappingURL=v2projectNotificationConfig.js.map