@pulumi/gcp 6.4.0 → 6.5.0-alpha.1639513668

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 (57) hide show
  1. package/apigee/environmentIamBinding.d.ts +166 -0
  2. package/apigee/environmentIamBinding.js +155 -0
  3. package/apigee/environmentIamBinding.js.map +1 -0
  4. package/apigee/environmentIamMember.d.ts +166 -0
  5. package/apigee/environmentIamMember.js +155 -0
  6. package/apigee/environmentIamMember.js.map +1 -0
  7. package/apigee/environmentIamPolicy.d.ts +156 -0
  8. package/apigee/environmentIamPolicy.js +148 -0
  9. package/apigee/environmentIamPolicy.js.map +1 -0
  10. package/apigee/index.d.ts +3 -0
  11. package/apigee/index.js +15 -0
  12. package/apigee/index.js.map +1 -1
  13. package/bigquery/dataTransferConfig.d.ts +3 -3
  14. package/certificateauthority/authority.d.ts +2 -1
  15. package/certificateauthority/authority.js +2 -1
  16. package/certificateauthority/authority.js.map +1 -1
  17. package/certificateauthority/certificate.d.ts +2 -0
  18. package/certificateauthority/certificate.js +2 -0
  19. package/certificateauthority/certificate.js.map +1 -1
  20. package/certificateauthority/certificateTemplate.d.ts +3 -0
  21. package/certificateauthority/certificateTemplate.js +3 -0
  22. package/certificateauthority/certificateTemplate.js.map +1 -1
  23. package/compute/packetMirroring.d.ts +1 -1
  24. package/compute/packetMirroring.js +1 -1
  25. package/compute/subnetwork.d.ts +9 -15
  26. package/compute/subnetwork.js.map +1 -1
  27. package/config/vars.d.ts +1 -0
  28. package/config/vars.js +6 -0
  29. package/config/vars.js.map +1 -1
  30. package/filestore/instance.d.ts +33 -13
  31. package/filestore/instance.js +7 -12
  32. package/filestore/instance.js.map +1 -1
  33. package/notebooks/index.d.ts +3 -0
  34. package/notebooks/index.js +15 -0
  35. package/notebooks/index.js.map +1 -1
  36. package/notebooks/runtimeIamBinding.d.ts +193 -0
  37. package/notebooks/runtimeIamBinding.js +157 -0
  38. package/notebooks/runtimeIamBinding.js.map +1 -0
  39. package/notebooks/runtimeIamMember.d.ts +193 -0
  40. package/notebooks/runtimeIamMember.js +157 -0
  41. package/notebooks/runtimeIamMember.js.map +1 -0
  42. package/notebooks/runtimeIamPolicy.d.ts +183 -0
  43. package/notebooks/runtimeIamPolicy.js +150 -0
  44. package/notebooks/runtimeIamPolicy.js.map +1 -0
  45. package/osconfig/index.d.ts +1 -0
  46. package/osconfig/index.js +5 -0
  47. package/osconfig/index.js.map +1 -1
  48. package/osconfig/osPolicyAssignment.d.ts +672 -0
  49. package/osconfig/osPolicyAssignment.js +568 -0
  50. package/osconfig/osPolicyAssignment.js.map +1 -0
  51. package/package.json +2 -2
  52. package/package.json.dev +1 -1
  53. package/provider.d.ts +2 -0
  54. package/provider.js +1 -0
  55. package/provider.js.map +1 -1
  56. package/types/input.d.ts +699 -15
  57. package/types/output.d.ts +700 -15
@@ -0,0 +1,166 @@
1
+ import * as pulumi from "@pulumi/pulumi";
2
+ import { input as inputs, output as outputs } from "../types";
3
+ /**
4
+ * Three different resources help you manage your IAM policy for Apigee Environment. Each of these resources serves a different use case:
5
+ *
6
+ * * `gcp.apigee.EnvironmentIamPolicy`: Authoritative. Sets the IAM policy for the environment and replaces any existing policy already attached.
7
+ * * `gcp.apigee.EnvironmentIamBinding`: Authoritative for a given role. Updates the IAM policy to grant a role to a list of members. Other roles within the IAM policy for the environment are preserved.
8
+ * * `gcp.apigee.EnvironmentIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the environment are preserved.
9
+ *
10
+ * > **Note:** `gcp.apigee.EnvironmentIamPolicy` **cannot** be used in conjunction with `gcp.apigee.EnvironmentIamBinding` and `gcp.apigee.EnvironmentIamMember` or they will fight over what your policy should be.
11
+ *
12
+ * > **Note:** `gcp.apigee.EnvironmentIamBinding` resources **can be** used in conjunction with `gcp.apigee.EnvironmentIamMember` resources **only if** they do not grant privilege to the same role.
13
+ *
14
+ * ## google\_apigee\_environment\_iam\_policy
15
+ *
16
+ * ```typescript
17
+ * import * as pulumi from "@pulumi/pulumi";
18
+ * import * as gcp from "@pulumi/gcp";
19
+ *
20
+ * const admin = gcp.organizations.getIAMPolicy({
21
+ * bindings: [{
22
+ * role: "roles/viewer",
23
+ * members: ["user:jane@example.com"],
24
+ * }],
25
+ * });
26
+ * const policy = new gcp.apigee.EnvironmentIamPolicy("policy", {
27
+ * orgId: google_apigee_environment.apigee_environment.org_id,
28
+ * envId: google_apigee_environment.apigee_environment.name,
29
+ * policyData: admin.then(admin => admin.policyData),
30
+ * });
31
+ * ```
32
+ *
33
+ * ## google\_apigee\_environment\_iam\_binding
34
+ *
35
+ * ```typescript
36
+ * import * as pulumi from "@pulumi/pulumi";
37
+ * import * as gcp from "@pulumi/gcp";
38
+ *
39
+ * const binding = new gcp.apigee.EnvironmentIamBinding("binding", {
40
+ * orgId: google_apigee_environment.apigee_environment.org_id,
41
+ * envId: google_apigee_environment.apigee_environment.name,
42
+ * role: "roles/viewer",
43
+ * members: ["user:jane@example.com"],
44
+ * });
45
+ * ```
46
+ *
47
+ * ## google\_apigee\_environment\_iam\_member
48
+ *
49
+ * ```typescript
50
+ * import * as pulumi from "@pulumi/pulumi";
51
+ * import * as gcp from "@pulumi/gcp";
52
+ *
53
+ * const member = new gcp.apigee.EnvironmentIamMember("member", {
54
+ * orgId: google_apigee_environment.apigee_environment.org_id,
55
+ * envId: google_apigee_environment.apigee_environment.name,
56
+ * role: "roles/viewer",
57
+ * member: "user:jane@example.com",
58
+ * });
59
+ * ```
60
+ *
61
+ * ## Import
62
+ *
63
+ * For all import syntaxes, the "resource in question" can take any of the following forms* {{org_id}}/environments/{{name}} * {{name}} Any variables not passed in the import command will be taken from the provider configuration. Apigee environment IAM resources can be imported using the resource identifiers, role, and member. IAM member imports use space-delimited identifiersthe resource in question, the role, and the member identity, e.g.
64
+ *
65
+ * ```sh
66
+ * $ pulumi import gcp:apigee/environmentIamBinding:EnvironmentIamBinding editor "{{org_id}}/environments/{{environment}} roles/viewer user:jane@example.com"
67
+ * ```
68
+ *
69
+ * IAM binding imports use space-delimited identifiersthe resource in question and the role, e.g.
70
+ *
71
+ * ```sh
72
+ * $ pulumi import gcp:apigee/environmentIamBinding:EnvironmentIamBinding editor "{{org_id}}/environments/{{environment}} roles/viewer"
73
+ * ```
74
+ *
75
+ * IAM policy imports use the identifier of the resource in question, e.g.
76
+ *
77
+ * ```sh
78
+ * $ pulumi import gcp:apigee/environmentIamBinding:EnvironmentIamBinding editor {{org_id}}/environments/{{environment}}
79
+ * ```
80
+ *
81
+ * -> **Custom Roles**If you're importing a IAM resource with a custom role, make sure to use the
82
+ *
83
+ * full name of the custom role, e.g. `[projects/my-project|organizations/my-org]/roles/my-custom-role`.
84
+ */
85
+ export declare class EnvironmentIamBinding extends pulumi.CustomResource {
86
+ /**
87
+ * Get an existing EnvironmentIamBinding resource's state with the given name, ID, and optional extra
88
+ * properties used to qualify the lookup.
89
+ *
90
+ * @param name The _unique_ name of the resulting resource.
91
+ * @param id The _unique_ provider ID of the resource to lookup.
92
+ * @param state Any extra arguments used during the lookup.
93
+ * @param opts Optional settings to control the behavior of the CustomResource.
94
+ */
95
+ static get(name: string, id: pulumi.Input<pulumi.ID>, state?: EnvironmentIamBindingState, opts?: pulumi.CustomResourceOptions): EnvironmentIamBinding;
96
+ /**
97
+ * Returns true if the given object is an instance of EnvironmentIamBinding. This is designed to work even
98
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
99
+ */
100
+ static isInstance(obj: any): obj is EnvironmentIamBinding;
101
+ readonly condition: pulumi.Output<outputs.apigee.EnvironmentIamBindingCondition | undefined>;
102
+ /**
103
+ * Used to find the parent resource to bind the IAM policy to
104
+ */
105
+ readonly envId: pulumi.Output<string>;
106
+ /**
107
+ * (Computed) The etag of the IAM policy.
108
+ */
109
+ readonly etag: pulumi.Output<string>;
110
+ readonly members: pulumi.Output<string[]>;
111
+ readonly orgId: pulumi.Output<string>;
112
+ /**
113
+ * The role that should be applied. Only one
114
+ * `gcp.apigee.EnvironmentIamBinding` can be used per role. Note that custom roles must be of the format
115
+ * `[projects|organizations]/{parent-name}/roles/{role-name}`.
116
+ */
117
+ readonly role: pulumi.Output<string>;
118
+ /**
119
+ * Create a EnvironmentIamBinding resource with the given unique name, arguments, and options.
120
+ *
121
+ * @param name The _unique_ name of the resource.
122
+ * @param args The arguments to use to populate this resource's properties.
123
+ * @param opts A bag of options that control this resource's behavior.
124
+ */
125
+ constructor(name: string, args: EnvironmentIamBindingArgs, opts?: pulumi.CustomResourceOptions);
126
+ }
127
+ /**
128
+ * Input properties used for looking up and filtering EnvironmentIamBinding resources.
129
+ */
130
+ export interface EnvironmentIamBindingState {
131
+ condition?: pulumi.Input<inputs.apigee.EnvironmentIamBindingCondition>;
132
+ /**
133
+ * Used to find the parent resource to bind the IAM policy to
134
+ */
135
+ envId?: pulumi.Input<string>;
136
+ /**
137
+ * (Computed) The etag of the IAM policy.
138
+ */
139
+ etag?: pulumi.Input<string>;
140
+ members?: pulumi.Input<pulumi.Input<string>[]>;
141
+ orgId?: pulumi.Input<string>;
142
+ /**
143
+ * The role that should be applied. Only one
144
+ * `gcp.apigee.EnvironmentIamBinding` can be used per role. Note that custom roles must be of the format
145
+ * `[projects|organizations]/{parent-name}/roles/{role-name}`.
146
+ */
147
+ role?: pulumi.Input<string>;
148
+ }
149
+ /**
150
+ * The set of arguments for constructing a EnvironmentIamBinding resource.
151
+ */
152
+ export interface EnvironmentIamBindingArgs {
153
+ condition?: pulumi.Input<inputs.apigee.EnvironmentIamBindingCondition>;
154
+ /**
155
+ * Used to find the parent resource to bind the IAM policy to
156
+ */
157
+ envId: pulumi.Input<string>;
158
+ members: pulumi.Input<pulumi.Input<string>[]>;
159
+ orgId: pulumi.Input<string>;
160
+ /**
161
+ * The role that should be applied. Only one
162
+ * `gcp.apigee.EnvironmentIamBinding` can be used per role. Note that custom roles must be of the format
163
+ * `[projects|organizations]/{parent-name}/roles/{role-name}`.
164
+ */
165
+ role: pulumi.Input<string>;
166
+ }
@@ -0,0 +1,155 @@
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.EnvironmentIamBinding = void 0;
6
+ const pulumi = require("@pulumi/pulumi");
7
+ const utilities = require("../utilities");
8
+ /**
9
+ * Three different resources help you manage your IAM policy for Apigee Environment. Each of these resources serves a different use case:
10
+ *
11
+ * * `gcp.apigee.EnvironmentIamPolicy`: Authoritative. Sets the IAM policy for the environment and replaces any existing policy already attached.
12
+ * * `gcp.apigee.EnvironmentIamBinding`: Authoritative for a given role. Updates the IAM policy to grant a role to a list of members. Other roles within the IAM policy for the environment are preserved.
13
+ * * `gcp.apigee.EnvironmentIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the environment are preserved.
14
+ *
15
+ * > **Note:** `gcp.apigee.EnvironmentIamPolicy` **cannot** be used in conjunction with `gcp.apigee.EnvironmentIamBinding` and `gcp.apigee.EnvironmentIamMember` or they will fight over what your policy should be.
16
+ *
17
+ * > **Note:** `gcp.apigee.EnvironmentIamBinding` resources **can be** used in conjunction with `gcp.apigee.EnvironmentIamMember` resources **only if** they do not grant privilege to the same role.
18
+ *
19
+ * ## google\_apigee\_environment\_iam\_policy
20
+ *
21
+ * ```typescript
22
+ * import * as pulumi from "@pulumi/pulumi";
23
+ * import * as gcp from "@pulumi/gcp";
24
+ *
25
+ * const admin = gcp.organizations.getIAMPolicy({
26
+ * bindings: [{
27
+ * role: "roles/viewer",
28
+ * members: ["user:jane@example.com"],
29
+ * }],
30
+ * });
31
+ * const policy = new gcp.apigee.EnvironmentIamPolicy("policy", {
32
+ * orgId: google_apigee_environment.apigee_environment.org_id,
33
+ * envId: google_apigee_environment.apigee_environment.name,
34
+ * policyData: admin.then(admin => admin.policyData),
35
+ * });
36
+ * ```
37
+ *
38
+ * ## google\_apigee\_environment\_iam\_binding
39
+ *
40
+ * ```typescript
41
+ * import * as pulumi from "@pulumi/pulumi";
42
+ * import * as gcp from "@pulumi/gcp";
43
+ *
44
+ * const binding = new gcp.apigee.EnvironmentIamBinding("binding", {
45
+ * orgId: google_apigee_environment.apigee_environment.org_id,
46
+ * envId: google_apigee_environment.apigee_environment.name,
47
+ * role: "roles/viewer",
48
+ * members: ["user:jane@example.com"],
49
+ * });
50
+ * ```
51
+ *
52
+ * ## google\_apigee\_environment\_iam\_member
53
+ *
54
+ * ```typescript
55
+ * import * as pulumi from "@pulumi/pulumi";
56
+ * import * as gcp from "@pulumi/gcp";
57
+ *
58
+ * const member = new gcp.apigee.EnvironmentIamMember("member", {
59
+ * orgId: google_apigee_environment.apigee_environment.org_id,
60
+ * envId: google_apigee_environment.apigee_environment.name,
61
+ * role: "roles/viewer",
62
+ * member: "user:jane@example.com",
63
+ * });
64
+ * ```
65
+ *
66
+ * ## Import
67
+ *
68
+ * For all import syntaxes, the "resource in question" can take any of the following forms* {{org_id}}/environments/{{name}} * {{name}} Any variables not passed in the import command will be taken from the provider configuration. Apigee environment IAM resources can be imported using the resource identifiers, role, and member. IAM member imports use space-delimited identifiersthe resource in question, the role, and the member identity, e.g.
69
+ *
70
+ * ```sh
71
+ * $ pulumi import gcp:apigee/environmentIamBinding:EnvironmentIamBinding editor "{{org_id}}/environments/{{environment}} roles/viewer user:jane@example.com"
72
+ * ```
73
+ *
74
+ * IAM binding imports use space-delimited identifiersthe resource in question and the role, e.g.
75
+ *
76
+ * ```sh
77
+ * $ pulumi import gcp:apigee/environmentIamBinding:EnvironmentIamBinding editor "{{org_id}}/environments/{{environment}} roles/viewer"
78
+ * ```
79
+ *
80
+ * IAM policy imports use the identifier of the resource in question, e.g.
81
+ *
82
+ * ```sh
83
+ * $ pulumi import gcp:apigee/environmentIamBinding:EnvironmentIamBinding editor {{org_id}}/environments/{{environment}}
84
+ * ```
85
+ *
86
+ * -> **Custom Roles**If you're importing a IAM resource with a custom role, make sure to use the
87
+ *
88
+ * full name of the custom role, e.g. `[projects/my-project|organizations/my-org]/roles/my-custom-role`.
89
+ */
90
+ class EnvironmentIamBinding extends pulumi.CustomResource {
91
+ constructor(name, argsOrState, opts) {
92
+ let inputs = {};
93
+ opts = opts || {};
94
+ if (opts.id) {
95
+ const state = argsOrState;
96
+ inputs["condition"] = state ? state.condition : undefined;
97
+ inputs["envId"] = state ? state.envId : undefined;
98
+ inputs["etag"] = state ? state.etag : undefined;
99
+ inputs["members"] = state ? state.members : undefined;
100
+ inputs["orgId"] = state ? state.orgId : undefined;
101
+ inputs["role"] = state ? state.role : undefined;
102
+ }
103
+ else {
104
+ const args = argsOrState;
105
+ if ((!args || args.envId === undefined) && !opts.urn) {
106
+ throw new Error("Missing required property 'envId'");
107
+ }
108
+ if ((!args || args.members === undefined) && !opts.urn) {
109
+ throw new Error("Missing required property 'members'");
110
+ }
111
+ if ((!args || args.orgId === undefined) && !opts.urn) {
112
+ throw new Error("Missing required property 'orgId'");
113
+ }
114
+ if ((!args || args.role === undefined) && !opts.urn) {
115
+ throw new Error("Missing required property 'role'");
116
+ }
117
+ inputs["condition"] = args ? args.condition : undefined;
118
+ inputs["envId"] = args ? args.envId : undefined;
119
+ inputs["members"] = args ? args.members : undefined;
120
+ inputs["orgId"] = args ? args.orgId : undefined;
121
+ inputs["role"] = args ? args.role : undefined;
122
+ inputs["etag"] = undefined /*out*/;
123
+ }
124
+ if (!opts.version) {
125
+ opts = pulumi.mergeOptions(opts, { version: utilities.getVersion() });
126
+ }
127
+ super(EnvironmentIamBinding.__pulumiType, name, inputs, opts);
128
+ }
129
+ /**
130
+ * Get an existing EnvironmentIamBinding resource's state with the given name, ID, and optional extra
131
+ * properties used to qualify the lookup.
132
+ *
133
+ * @param name The _unique_ name of the resulting resource.
134
+ * @param id The _unique_ provider ID of the resource to lookup.
135
+ * @param state Any extra arguments used during the lookup.
136
+ * @param opts Optional settings to control the behavior of the CustomResource.
137
+ */
138
+ static get(name, id, state, opts) {
139
+ return new EnvironmentIamBinding(name, state, Object.assign(Object.assign({}, opts), { id: id }));
140
+ }
141
+ /**
142
+ * Returns true if the given object is an instance of EnvironmentIamBinding. This is designed to work even
143
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
144
+ */
145
+ static isInstance(obj) {
146
+ if (obj === undefined || obj === null) {
147
+ return false;
148
+ }
149
+ return obj['__pulumiType'] === EnvironmentIamBinding.__pulumiType;
150
+ }
151
+ }
152
+ exports.EnvironmentIamBinding = EnvironmentIamBinding;
153
+ /** @internal */
154
+ EnvironmentIamBinding.__pulumiType = 'gcp:apigee/environmentIamBinding:EnvironmentIamBinding';
155
+ //# sourceMappingURL=environmentIamBinding.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environmentIamBinding.js","sourceRoot":"","sources":["../../apigee/environmentIamBinding.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,166 @@
1
+ import * as pulumi from "@pulumi/pulumi";
2
+ import { input as inputs, output as outputs } from "../types";
3
+ /**
4
+ * Three different resources help you manage your IAM policy for Apigee Environment. Each of these resources serves a different use case:
5
+ *
6
+ * * `gcp.apigee.EnvironmentIamPolicy`: Authoritative. Sets the IAM policy for the environment and replaces any existing policy already attached.
7
+ * * `gcp.apigee.EnvironmentIamBinding`: Authoritative for a given role. Updates the IAM policy to grant a role to a list of members. Other roles within the IAM policy for the environment are preserved.
8
+ * * `gcp.apigee.EnvironmentIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the environment are preserved.
9
+ *
10
+ * > **Note:** `gcp.apigee.EnvironmentIamPolicy` **cannot** be used in conjunction with `gcp.apigee.EnvironmentIamBinding` and `gcp.apigee.EnvironmentIamMember` or they will fight over what your policy should be.
11
+ *
12
+ * > **Note:** `gcp.apigee.EnvironmentIamBinding` resources **can be** used in conjunction with `gcp.apigee.EnvironmentIamMember` resources **only if** they do not grant privilege to the same role.
13
+ *
14
+ * ## google\_apigee\_environment\_iam\_policy
15
+ *
16
+ * ```typescript
17
+ * import * as pulumi from "@pulumi/pulumi";
18
+ * import * as gcp from "@pulumi/gcp";
19
+ *
20
+ * const admin = gcp.organizations.getIAMPolicy({
21
+ * bindings: [{
22
+ * role: "roles/viewer",
23
+ * members: ["user:jane@example.com"],
24
+ * }],
25
+ * });
26
+ * const policy = new gcp.apigee.EnvironmentIamPolicy("policy", {
27
+ * orgId: google_apigee_environment.apigee_environment.org_id,
28
+ * envId: google_apigee_environment.apigee_environment.name,
29
+ * policyData: admin.then(admin => admin.policyData),
30
+ * });
31
+ * ```
32
+ *
33
+ * ## google\_apigee\_environment\_iam\_binding
34
+ *
35
+ * ```typescript
36
+ * import * as pulumi from "@pulumi/pulumi";
37
+ * import * as gcp from "@pulumi/gcp";
38
+ *
39
+ * const binding = new gcp.apigee.EnvironmentIamBinding("binding", {
40
+ * orgId: google_apigee_environment.apigee_environment.org_id,
41
+ * envId: google_apigee_environment.apigee_environment.name,
42
+ * role: "roles/viewer",
43
+ * members: ["user:jane@example.com"],
44
+ * });
45
+ * ```
46
+ *
47
+ * ## google\_apigee\_environment\_iam\_member
48
+ *
49
+ * ```typescript
50
+ * import * as pulumi from "@pulumi/pulumi";
51
+ * import * as gcp from "@pulumi/gcp";
52
+ *
53
+ * const member = new gcp.apigee.EnvironmentIamMember("member", {
54
+ * orgId: google_apigee_environment.apigee_environment.org_id,
55
+ * envId: google_apigee_environment.apigee_environment.name,
56
+ * role: "roles/viewer",
57
+ * member: "user:jane@example.com",
58
+ * });
59
+ * ```
60
+ *
61
+ * ## Import
62
+ *
63
+ * For all import syntaxes, the "resource in question" can take any of the following forms* {{org_id}}/environments/{{name}} * {{name}} Any variables not passed in the import command will be taken from the provider configuration. Apigee environment IAM resources can be imported using the resource identifiers, role, and member. IAM member imports use space-delimited identifiersthe resource in question, the role, and the member identity, e.g.
64
+ *
65
+ * ```sh
66
+ * $ pulumi import gcp:apigee/environmentIamMember:EnvironmentIamMember editor "{{org_id}}/environments/{{environment}} roles/viewer user:jane@example.com"
67
+ * ```
68
+ *
69
+ * IAM binding imports use space-delimited identifiersthe resource in question and the role, e.g.
70
+ *
71
+ * ```sh
72
+ * $ pulumi import gcp:apigee/environmentIamMember:EnvironmentIamMember editor "{{org_id}}/environments/{{environment}} roles/viewer"
73
+ * ```
74
+ *
75
+ * IAM policy imports use the identifier of the resource in question, e.g.
76
+ *
77
+ * ```sh
78
+ * $ pulumi import gcp:apigee/environmentIamMember:EnvironmentIamMember editor {{org_id}}/environments/{{environment}}
79
+ * ```
80
+ *
81
+ * -> **Custom Roles**If you're importing a IAM resource with a custom role, make sure to use the
82
+ *
83
+ * full name of the custom role, e.g. `[projects/my-project|organizations/my-org]/roles/my-custom-role`.
84
+ */
85
+ export declare class EnvironmentIamMember extends pulumi.CustomResource {
86
+ /**
87
+ * Get an existing EnvironmentIamMember resource's state with the given name, ID, and optional extra
88
+ * properties used to qualify the lookup.
89
+ *
90
+ * @param name The _unique_ name of the resulting resource.
91
+ * @param id The _unique_ provider ID of the resource to lookup.
92
+ * @param state Any extra arguments used during the lookup.
93
+ * @param opts Optional settings to control the behavior of the CustomResource.
94
+ */
95
+ static get(name: string, id: pulumi.Input<pulumi.ID>, state?: EnvironmentIamMemberState, opts?: pulumi.CustomResourceOptions): EnvironmentIamMember;
96
+ /**
97
+ * Returns true if the given object is an instance of EnvironmentIamMember. This is designed to work even
98
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
99
+ */
100
+ static isInstance(obj: any): obj is EnvironmentIamMember;
101
+ readonly condition: pulumi.Output<outputs.apigee.EnvironmentIamMemberCondition | undefined>;
102
+ /**
103
+ * Used to find the parent resource to bind the IAM policy to
104
+ */
105
+ readonly envId: pulumi.Output<string>;
106
+ /**
107
+ * (Computed) The etag of the IAM policy.
108
+ */
109
+ readonly etag: pulumi.Output<string>;
110
+ readonly member: pulumi.Output<string>;
111
+ readonly orgId: pulumi.Output<string>;
112
+ /**
113
+ * The role that should be applied. Only one
114
+ * `gcp.apigee.EnvironmentIamBinding` can be used per role. Note that custom roles must be of the format
115
+ * `[projects|organizations]/{parent-name}/roles/{role-name}`.
116
+ */
117
+ readonly role: pulumi.Output<string>;
118
+ /**
119
+ * Create a EnvironmentIamMember resource with the given unique name, arguments, and options.
120
+ *
121
+ * @param name The _unique_ name of the resource.
122
+ * @param args The arguments to use to populate this resource's properties.
123
+ * @param opts A bag of options that control this resource's behavior.
124
+ */
125
+ constructor(name: string, args: EnvironmentIamMemberArgs, opts?: pulumi.CustomResourceOptions);
126
+ }
127
+ /**
128
+ * Input properties used for looking up and filtering EnvironmentIamMember resources.
129
+ */
130
+ export interface EnvironmentIamMemberState {
131
+ condition?: pulumi.Input<inputs.apigee.EnvironmentIamMemberCondition>;
132
+ /**
133
+ * Used to find the parent resource to bind the IAM policy to
134
+ */
135
+ envId?: pulumi.Input<string>;
136
+ /**
137
+ * (Computed) The etag of the IAM policy.
138
+ */
139
+ etag?: pulumi.Input<string>;
140
+ member?: pulumi.Input<string>;
141
+ orgId?: pulumi.Input<string>;
142
+ /**
143
+ * The role that should be applied. Only one
144
+ * `gcp.apigee.EnvironmentIamBinding` can be used per role. Note that custom roles must be of the format
145
+ * `[projects|organizations]/{parent-name}/roles/{role-name}`.
146
+ */
147
+ role?: pulumi.Input<string>;
148
+ }
149
+ /**
150
+ * The set of arguments for constructing a EnvironmentIamMember resource.
151
+ */
152
+ export interface EnvironmentIamMemberArgs {
153
+ condition?: pulumi.Input<inputs.apigee.EnvironmentIamMemberCondition>;
154
+ /**
155
+ * Used to find the parent resource to bind the IAM policy to
156
+ */
157
+ envId: pulumi.Input<string>;
158
+ member: pulumi.Input<string>;
159
+ orgId: pulumi.Input<string>;
160
+ /**
161
+ * The role that should be applied. Only one
162
+ * `gcp.apigee.EnvironmentIamBinding` can be used per role. Note that custom roles must be of the format
163
+ * `[projects|organizations]/{parent-name}/roles/{role-name}`.
164
+ */
165
+ role: pulumi.Input<string>;
166
+ }
@@ -0,0 +1,155 @@
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.EnvironmentIamMember = void 0;
6
+ const pulumi = require("@pulumi/pulumi");
7
+ const utilities = require("../utilities");
8
+ /**
9
+ * Three different resources help you manage your IAM policy for Apigee Environment. Each of these resources serves a different use case:
10
+ *
11
+ * * `gcp.apigee.EnvironmentIamPolicy`: Authoritative. Sets the IAM policy for the environment and replaces any existing policy already attached.
12
+ * * `gcp.apigee.EnvironmentIamBinding`: Authoritative for a given role. Updates the IAM policy to grant a role to a list of members. Other roles within the IAM policy for the environment are preserved.
13
+ * * `gcp.apigee.EnvironmentIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the environment are preserved.
14
+ *
15
+ * > **Note:** `gcp.apigee.EnvironmentIamPolicy` **cannot** be used in conjunction with `gcp.apigee.EnvironmentIamBinding` and `gcp.apigee.EnvironmentIamMember` or they will fight over what your policy should be.
16
+ *
17
+ * > **Note:** `gcp.apigee.EnvironmentIamBinding` resources **can be** used in conjunction with `gcp.apigee.EnvironmentIamMember` resources **only if** they do not grant privilege to the same role.
18
+ *
19
+ * ## google\_apigee\_environment\_iam\_policy
20
+ *
21
+ * ```typescript
22
+ * import * as pulumi from "@pulumi/pulumi";
23
+ * import * as gcp from "@pulumi/gcp";
24
+ *
25
+ * const admin = gcp.organizations.getIAMPolicy({
26
+ * bindings: [{
27
+ * role: "roles/viewer",
28
+ * members: ["user:jane@example.com"],
29
+ * }],
30
+ * });
31
+ * const policy = new gcp.apigee.EnvironmentIamPolicy("policy", {
32
+ * orgId: google_apigee_environment.apigee_environment.org_id,
33
+ * envId: google_apigee_environment.apigee_environment.name,
34
+ * policyData: admin.then(admin => admin.policyData),
35
+ * });
36
+ * ```
37
+ *
38
+ * ## google\_apigee\_environment\_iam\_binding
39
+ *
40
+ * ```typescript
41
+ * import * as pulumi from "@pulumi/pulumi";
42
+ * import * as gcp from "@pulumi/gcp";
43
+ *
44
+ * const binding = new gcp.apigee.EnvironmentIamBinding("binding", {
45
+ * orgId: google_apigee_environment.apigee_environment.org_id,
46
+ * envId: google_apigee_environment.apigee_environment.name,
47
+ * role: "roles/viewer",
48
+ * members: ["user:jane@example.com"],
49
+ * });
50
+ * ```
51
+ *
52
+ * ## google\_apigee\_environment\_iam\_member
53
+ *
54
+ * ```typescript
55
+ * import * as pulumi from "@pulumi/pulumi";
56
+ * import * as gcp from "@pulumi/gcp";
57
+ *
58
+ * const member = new gcp.apigee.EnvironmentIamMember("member", {
59
+ * orgId: google_apigee_environment.apigee_environment.org_id,
60
+ * envId: google_apigee_environment.apigee_environment.name,
61
+ * role: "roles/viewer",
62
+ * member: "user:jane@example.com",
63
+ * });
64
+ * ```
65
+ *
66
+ * ## Import
67
+ *
68
+ * For all import syntaxes, the "resource in question" can take any of the following forms* {{org_id}}/environments/{{name}} * {{name}} Any variables not passed in the import command will be taken from the provider configuration. Apigee environment IAM resources can be imported using the resource identifiers, role, and member. IAM member imports use space-delimited identifiersthe resource in question, the role, and the member identity, e.g.
69
+ *
70
+ * ```sh
71
+ * $ pulumi import gcp:apigee/environmentIamMember:EnvironmentIamMember editor "{{org_id}}/environments/{{environment}} roles/viewer user:jane@example.com"
72
+ * ```
73
+ *
74
+ * IAM binding imports use space-delimited identifiersthe resource in question and the role, e.g.
75
+ *
76
+ * ```sh
77
+ * $ pulumi import gcp:apigee/environmentIamMember:EnvironmentIamMember editor "{{org_id}}/environments/{{environment}} roles/viewer"
78
+ * ```
79
+ *
80
+ * IAM policy imports use the identifier of the resource in question, e.g.
81
+ *
82
+ * ```sh
83
+ * $ pulumi import gcp:apigee/environmentIamMember:EnvironmentIamMember editor {{org_id}}/environments/{{environment}}
84
+ * ```
85
+ *
86
+ * -> **Custom Roles**If you're importing a IAM resource with a custom role, make sure to use the
87
+ *
88
+ * full name of the custom role, e.g. `[projects/my-project|organizations/my-org]/roles/my-custom-role`.
89
+ */
90
+ class EnvironmentIamMember extends pulumi.CustomResource {
91
+ constructor(name, argsOrState, opts) {
92
+ let inputs = {};
93
+ opts = opts || {};
94
+ if (opts.id) {
95
+ const state = argsOrState;
96
+ inputs["condition"] = state ? state.condition : undefined;
97
+ inputs["envId"] = state ? state.envId : undefined;
98
+ inputs["etag"] = state ? state.etag : undefined;
99
+ inputs["member"] = state ? state.member : undefined;
100
+ inputs["orgId"] = state ? state.orgId : undefined;
101
+ inputs["role"] = state ? state.role : undefined;
102
+ }
103
+ else {
104
+ const args = argsOrState;
105
+ if ((!args || args.envId === undefined) && !opts.urn) {
106
+ throw new Error("Missing required property 'envId'");
107
+ }
108
+ if ((!args || args.member === undefined) && !opts.urn) {
109
+ throw new Error("Missing required property 'member'");
110
+ }
111
+ if ((!args || args.orgId === undefined) && !opts.urn) {
112
+ throw new Error("Missing required property 'orgId'");
113
+ }
114
+ if ((!args || args.role === undefined) && !opts.urn) {
115
+ throw new Error("Missing required property 'role'");
116
+ }
117
+ inputs["condition"] = args ? args.condition : undefined;
118
+ inputs["envId"] = args ? args.envId : undefined;
119
+ inputs["member"] = args ? args.member : undefined;
120
+ inputs["orgId"] = args ? args.orgId : undefined;
121
+ inputs["role"] = args ? args.role : undefined;
122
+ inputs["etag"] = undefined /*out*/;
123
+ }
124
+ if (!opts.version) {
125
+ opts = pulumi.mergeOptions(opts, { version: utilities.getVersion() });
126
+ }
127
+ super(EnvironmentIamMember.__pulumiType, name, inputs, opts);
128
+ }
129
+ /**
130
+ * Get an existing EnvironmentIamMember resource's state with the given name, ID, and optional extra
131
+ * properties used to qualify the lookup.
132
+ *
133
+ * @param name The _unique_ name of the resulting resource.
134
+ * @param id The _unique_ provider ID of the resource to lookup.
135
+ * @param state Any extra arguments used during the lookup.
136
+ * @param opts Optional settings to control the behavior of the CustomResource.
137
+ */
138
+ static get(name, id, state, opts) {
139
+ return new EnvironmentIamMember(name, state, Object.assign(Object.assign({}, opts), { id: id }));
140
+ }
141
+ /**
142
+ * Returns true if the given object is an instance of EnvironmentIamMember. This is designed to work even
143
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
144
+ */
145
+ static isInstance(obj) {
146
+ if (obj === undefined || obj === null) {
147
+ return false;
148
+ }
149
+ return obj['__pulumiType'] === EnvironmentIamMember.__pulumiType;
150
+ }
151
+ }
152
+ exports.EnvironmentIamMember = EnvironmentIamMember;
153
+ /** @internal */
154
+ EnvironmentIamMember.__pulumiType = 'gcp:apigee/environmentIamMember:EnvironmentIamMember';
155
+ //# sourceMappingURL=environmentIamMember.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environmentIamMember.js","sourceRoot":"","sources":["../../apigee/environmentIamMember.ts"],"names":[],"mappings":"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"}