@pulumi/gcp 6.44.0 → 6.45.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 (164) hide show
  1. package/alloydb/instance.d.ts +3 -0
  2. package/alloydb/instance.js +3 -0
  3. package/alloydb/instance.js.map +1 -1
  4. package/bigtable/gcpolicy.d.ts +58 -32
  5. package/bigtable/gcpolicy.js +45 -32
  6. package/bigtable/gcpolicy.js.map +1 -1
  7. package/bigtable/instance.d.ts +6 -3
  8. package/bigtable/instance.js.map +1 -1
  9. package/certificateauthority/authority.d.ts +3 -2
  10. package/certificateauthority/authority.js +3 -2
  11. package/certificateauthority/authority.js.map +1 -1
  12. package/certificateauthority/certificate.d.ts +12 -5
  13. package/certificateauthority/certificate.js +12 -5
  14. package/certificateauthority/certificate.js.map +1 -1
  15. package/cloudrunv2/index.d.ts +6 -0
  16. package/cloudrunv2/index.js +27 -0
  17. package/cloudrunv2/index.js.map +1 -0
  18. package/cloudrunv2/job.d.ts +501 -0
  19. package/cloudrunv2/job.js +321 -0
  20. package/cloudrunv2/job.js.map +1 -0
  21. package/cloudrunv2/service.d.ts +574 -0
  22. package/cloudrunv2/service.js +334 -0
  23. package/cloudrunv2/service.js.map +1 -0
  24. package/compute/backendService.d.ts +19 -0
  25. package/compute/backendService.js +19 -0
  26. package/compute/backendService.js.map +1 -1
  27. package/compute/forwardingRule.d.ts +21 -30
  28. package/compute/forwardingRule.js.map +1 -1
  29. package/compute/instanceGroupManager.d.ts +27 -0
  30. package/compute/instanceGroupManager.js +2 -0
  31. package/compute/instanceGroupManager.js.map +1 -1
  32. package/compute/regionInstanceGroupManager.d.ts +27 -0
  33. package/compute/regionInstanceGroupManager.js +2 -0
  34. package/compute/regionInstanceGroupManager.js.map +1 -1
  35. package/compute/routerInterface.d.ts +52 -31
  36. package/compute/routerInterface.js +4 -0
  37. package/compute/routerInterface.js.map +1 -1
  38. package/compute/securityPolicy.d.ts +83 -0
  39. package/compute/securityPolicy.js +73 -0
  40. package/compute/securityPolicy.js.map +1 -1
  41. package/config/vars.d.ts +3 -0
  42. package/config/vars.js +18 -0
  43. package/config/vars.js.map +1 -1
  44. package/container/cluster.d.ts +7 -4
  45. package/container/cluster.js.map +1 -1
  46. package/container/nodePool.d.ts +9 -6
  47. package/container/nodePool.js.map +1 -1
  48. package/datafusion/instance.d.ts +97 -5
  49. package/datafusion/instance.js +52 -5
  50. package/datafusion/instance.js.map +1 -1
  51. package/dataproc/metastoreService.d.ts +49 -0
  52. package/dataproc/metastoreService.js +34 -0
  53. package/dataproc/metastoreService.js.map +1 -1
  54. package/datastream/privateConnection.d.ts +16 -0
  55. package/datastream/privateConnection.js +4 -0
  56. package/datastream/privateConnection.js.map +1 -1
  57. package/eventarc/googleChannelConfig.d.ts +142 -0
  58. package/eventarc/googleChannelConfig.js +110 -0
  59. package/eventarc/googleChannelConfig.js.map +1 -0
  60. package/eventarc/index.d.ts +3 -0
  61. package/eventarc/index.js +6 -1
  62. package/eventarc/index.js.map +1 -1
  63. package/firebase/getAndroidApp.d.ts +36 -0
  64. package/firebase/getAndroidApp.js +22 -0
  65. package/firebase/getAndroidApp.js.map +1 -0
  66. package/firebase/index.d.ts +6 -0
  67. package/firebase/index.js +9 -1
  68. package/firebase/index.js.map +1 -1
  69. package/firebase/storageBucket.d.ts +109 -0
  70. package/firebase/storageBucket.js +91 -0
  71. package/firebase/storageBucket.js.map +1 -0
  72. package/gkebackup/backupPlan.d.ts +403 -0
  73. package/gkebackup/backupPlan.js +259 -0
  74. package/gkebackup/backupPlan.js.map +1 -0
  75. package/gkebackup/index.d.ts +3 -0
  76. package/gkebackup/index.js +22 -0
  77. package/gkebackup/index.js.map +1 -0
  78. package/gkehub/featureMembership.d.ts +1 -0
  79. package/gkehub/featureMembership.js +1 -0
  80. package/gkehub/featureMembership.js.map +1 -1
  81. package/iam/index.d.ts +3 -0
  82. package/iam/index.js +6 -1
  83. package/iam/index.js.map +1 -1
  84. package/iam/workforcePoolProvider.d.ts +510 -0
  85. package/iam/workforcePoolProvider.js +213 -0
  86. package/iam/workforcePoolProvider.js.map +1 -0
  87. package/index.d.ts +3 -1
  88. package/index.js +6 -2
  89. package/index.js.map +1 -1
  90. package/logging/billingAccountBucketConfig.d.ts +20 -0
  91. package/logging/billingAccountBucketConfig.js +2 -0
  92. package/logging/billingAccountBucketConfig.js.map +1 -1
  93. package/logging/folderBucketConfig.d.ts +20 -0
  94. package/logging/folderBucketConfig.js +2 -0
  95. package/logging/folderBucketConfig.js.map +1 -1
  96. package/logging/getProjectCmekSettings.d.ts +97 -0
  97. package/logging/getProjectCmekSettings.js +43 -0
  98. package/logging/getProjectCmekSettings.js.map +1 -0
  99. package/logging/index.d.ts +3 -0
  100. package/logging/index.js +4 -1
  101. package/logging/index.js.map +1 -1
  102. package/logging/organizationBucketConfig.d.ts +20 -0
  103. package/logging/organizationBucketConfig.js +2 -0
  104. package/logging/organizationBucketConfig.js.map +1 -1
  105. package/logging/projectBucketConfig.d.ts +48 -2
  106. package/logging/projectBucketConfig.js +34 -0
  107. package/logging/projectBucketConfig.js.map +1 -1
  108. package/networkservices/edgeCacheOrigin.d.ts +55 -1
  109. package/networkservices/edgeCacheOrigin.js +26 -1
  110. package/networkservices/edgeCacheOrigin.js.map +1 -1
  111. package/package.json +2 -2
  112. package/package.json.dev +2 -2
  113. package/provider.d.ts +6 -0
  114. package/provider.js +3 -0
  115. package/provider.js.map +1 -1
  116. package/securitycenter/index.d.ts +9 -0
  117. package/securitycenter/index.js +16 -1
  118. package/securitycenter/index.js.map +1 -1
  119. package/securitycenter/instanceIamBinding.d.ts +239 -0
  120. package/securitycenter/instanceIamBinding.js +218 -0
  121. package/securitycenter/instanceIamBinding.js.map +1 -0
  122. package/securitycenter/instanceIamMember.d.ts +239 -0
  123. package/securitycenter/instanceIamMember.js +218 -0
  124. package/securitycenter/instanceIamMember.js.map +1 -0
  125. package/securitycenter/instanceIamPolicy.d.ts +231 -0
  126. package/securitycenter/instanceIamPolicy.js +211 -0
  127. package/securitycenter/instanceIamPolicy.js.map +1 -0
  128. package/sql/database.d.ts +41 -0
  129. package/sql/database.js +22 -0
  130. package/sql/database.js.map +1 -1
  131. package/storage/bucket.d.ts +29 -7
  132. package/storage/bucket.js +18 -6
  133. package/storage/bucket.js.map +1 -1
  134. package/storage/getBucket.d.ts +1 -0
  135. package/storage/getBucket.js.map +1 -1
  136. package/types/input.d.ts +1544 -98
  137. package/types/output.d.ts +1559 -94
  138. package/vertex/aiFeatureStoreEntityTypeIamBinding.d.ts +119 -0
  139. package/vertex/aiFeatureStoreEntityTypeIamBinding.js +96 -0
  140. package/vertex/aiFeatureStoreEntityTypeIamBinding.js.map +1 -0
  141. package/vertex/aiFeatureStoreEntityTypeIamMember.d.ts +119 -0
  142. package/vertex/aiFeatureStoreEntityTypeIamMember.js +96 -0
  143. package/vertex/aiFeatureStoreEntityTypeIamMember.js.map +1 -0
  144. package/vertex/aiFeatureStoreEntityTypeIamPolicy.d.ts +108 -0
  145. package/vertex/aiFeatureStoreEntityTypeIamPolicy.js +89 -0
  146. package/vertex/aiFeatureStoreEntityTypeIamPolicy.js.map +1 -0
  147. package/vertex/aiFeatureStoreIamBinding.d.ts +53 -43
  148. package/vertex/aiFeatureStoreIamBinding.js +11 -37
  149. package/vertex/aiFeatureStoreIamBinding.js.map +1 -1
  150. package/vertex/aiFeatureStoreIamMember.d.ts +53 -43
  151. package/vertex/aiFeatureStoreIamMember.js +11 -37
  152. package/vertex/aiFeatureStoreIamMember.js.map +1 -1
  153. package/vertex/aiFeatureStoreIamPolicy.d.ts +50 -43
  154. package/vertex/aiFeatureStoreIamPolicy.js +11 -37
  155. package/vertex/aiFeatureStoreIamPolicy.js.map +1 -1
  156. package/vertex/aiIndex.d.ts +314 -0
  157. package/vertex/aiIndex.js +188 -0
  158. package/vertex/aiIndex.js.map +1 -0
  159. package/vertex/aiTensorboard.d.ts +242 -0
  160. package/vertex/aiTensorboard.js +146 -0
  161. package/vertex/aiTensorboard.js.map +1 -0
  162. package/vertex/index.d.ts +15 -0
  163. package/vertex/index.js +26 -1
  164. package/vertex/index.js.map +1 -1
@@ -6,55 +6,29 @@ exports.AiFeatureStoreIamPolicy = void 0;
6
6
  const pulumi = require("@pulumi/pulumi");
7
7
  const utilities = require("../utilities");
8
8
  /**
9
- * A collection of DataItems and Annotations on them.
10
- *
11
- * To get more information about Featurestore, see:
12
- *
13
- * * [API documentation](https://cloud.google.com/vertex-ai/docs/reference/rest/v1/projects.locations.featurestores)
14
- * * How-to Guides
15
- * * [Official Documentation](https://cloud.google.com/vertex-ai/docs)
16
- *
17
- * ## Example Usage
18
- * ### Vertex Ai Featurestore
19
- *
20
- * ```typescript
21
- * import * as pulumi from "@pulumi/pulumi";
22
- * import * as gcp from "@pulumi/gcp";
23
- *
24
- * const featurestore = new gcp.vertex.AiFeatureStore("featurestore", {
25
- * encryptionSpec: {
26
- * kmsKeyName: "kms-name",
27
- * },
28
- * forceDestroy: true,
29
- * labels: {
30
- * foo: "bar",
31
- * },
32
- * onlineServingConfig: {
33
- * fixedNodeCount: 2,
34
- * },
35
- * region: "us-central1",
36
- * });
37
- * ```
38
- *
39
9
  * ## Import
40
10
  *
41
- * Featurestore can be imported using any of these accepted formats
11
+ * For all import syntaxes, the "resource in question" can take any of the following forms* projects/{{project}}/locations/{{region}}/featurestores/{{name}} * {{project}}/{{region}}/{{name}} * {{region}}/{{name}} * {{name}} Any variables not passed in the import command will be taken from the provider configuration. Vertex AI featurestore 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.
42
12
  *
43
13
  * ```sh
44
- * $ pulumi import gcp:vertex/aiFeatureStoreIamPolicy:AiFeatureStoreIamPolicy default projects/{{project}}/locations/{{region}}/featurestores/{{name}}
14
+ * $ pulumi import gcp:vertex/aiFeatureStoreIamPolicy:AiFeatureStoreIamPolicy editor "projects/{{project}}/locations/{{region}}/featurestores/{{featurestore}} roles/viewer user:jane@example.com"
45
15
  * ```
46
16
  *
47
- * ```sh
48
- * $ pulumi import gcp:vertex/aiFeatureStoreIamPolicy:AiFeatureStoreIamPolicy default {{project}}/{{region}}/{{name}}
49
- * ```
17
+ * IAM binding imports use space-delimited identifiersthe resource in question and the role, e.g.
50
18
  *
51
19
  * ```sh
52
- * $ pulumi import gcp:vertex/aiFeatureStoreIamPolicy:AiFeatureStoreIamPolicy default {{region}}/{{name}}
20
+ * $ pulumi import gcp:vertex/aiFeatureStoreIamPolicy:AiFeatureStoreIamPolicy editor "projects/{{project}}/locations/{{region}}/featurestores/{{featurestore}} roles/viewer"
53
21
  * ```
54
22
  *
23
+ * IAM policy imports use the identifier of the resource in question, e.g.
24
+ *
55
25
  * ```sh
56
- * $ pulumi import gcp:vertex/aiFeatureStoreIamPolicy:AiFeatureStoreIamPolicy default {{name}}
26
+ * $ pulumi import gcp:vertex/aiFeatureStoreIamPolicy:AiFeatureStoreIamPolicy editor projects/{{project}}/locations/{{region}}/featurestores/{{featurestore}}
57
27
  * ```
28
+ *
29
+ * -> **Custom Roles**If you're importing a IAM resource with a custom role, make sure to use the
30
+ *
31
+ * full name of the custom role, e.g. `[projects/my-project|organizations/my-org]/roles/my-custom-role`.
58
32
  */
59
33
  class AiFeatureStoreIamPolicy extends pulumi.CustomResource {
60
34
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"aiFeatureStoreIamPolicy.js","sourceRoot":"","sources":["../../vertex/aiFeatureStoreIamPolicy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"aiFeatureStoreIamPolicy.js","sourceRoot":"","sources":["../../vertex/aiFeatureStoreIamPolicy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,314 @@
1
+ import * as pulumi from "@pulumi/pulumi";
2
+ import * as inputs from "../types/input";
3
+ import * as outputs from "../types/output";
4
+ /**
5
+ * A representation of a collection of database items organized in a way that allows for approximate nearest neighbor (a.k.a ANN) algorithms search.
6
+ *
7
+ * To get more information about Index, see:
8
+ *
9
+ * * [API documentation](https://cloud.google.com/vertex-ai/docs/reference/rest/v1/projects.locations.indexes/)
10
+ *
11
+ * ## Example Usage
12
+ * ### Vertex Ai Index
13
+ *
14
+ * ```typescript
15
+ * import * as pulumi from "@pulumi/pulumi";
16
+ * import * as gcp from "@pulumi/gcp";
17
+ *
18
+ * const bucket = new gcp.storage.Bucket("bucket", {
19
+ * location: "us-central1",
20
+ * uniformBucketLevelAccess: true,
21
+ * });
22
+ * // The sample data comes from the following link:
23
+ * // https://cloud.google.com/vertex-ai/docs/matching-engine/filtering#specify-namespaces-tokens
24
+ * const data = new gcp.storage.BucketObject("data", {
25
+ * bucket: bucket.name,
26
+ * content: `{"id": "42", "embedding": [0.5, 1.0], "restricts": [{"namespace": "class", "allow": ["cat", "pet"]},{"namespace": "category", "allow": ["feline"]}]}
27
+ * {"id": "43", "embedding": [0.6, 1.0], "restricts": [{"namespace": "class", "allow": ["dog", "pet"]},{"namespace": "category", "allow": ["canine"]}]}
28
+ * `,
29
+ * });
30
+ * const index = new gcp.vertex.AiIndex("index", {
31
+ * labels: {
32
+ * foo: "bar",
33
+ * },
34
+ * region: "us-central1",
35
+ * displayName: "test-index",
36
+ * description: "index for test",
37
+ * metadata: {
38
+ * contentsDeltaUri: pulumi.interpolate`gs://${bucket.name}/contents`,
39
+ * config: {
40
+ * dimensions: 2,
41
+ * approximateNeighborsCount: 150,
42
+ * distanceMeasureType: "DOT_PRODUCT_DISTANCE",
43
+ * algorithmConfig: {
44
+ * treeAhConfig: {
45
+ * leafNodeEmbeddingCount: 500,
46
+ * leafNodesToSearchPercent: 7,
47
+ * },
48
+ * },
49
+ * },
50
+ * },
51
+ * indexUpdateMethod: "BATCH_UPDATE",
52
+ * });
53
+ * ```
54
+ * ### Vertex Ai Index Streaming
55
+ *
56
+ * ```typescript
57
+ * import * as pulumi from "@pulumi/pulumi";
58
+ * import * as gcp from "@pulumi/gcp";
59
+ *
60
+ * const bucket = new gcp.storage.Bucket("bucket", {
61
+ * location: "us-central1",
62
+ * uniformBucketLevelAccess: true,
63
+ * });
64
+ * // The sample data comes from the following link:
65
+ * // https://cloud.google.com/vertex-ai/docs/matching-engine/filtering#specify-namespaces-tokens
66
+ * const data = new gcp.storage.BucketObject("data", {
67
+ * bucket: bucket.name,
68
+ * content: `{"id": "42", "embedding": [0.5, 1.0], "restricts": [{"namespace": "class", "allow": ["cat", "pet"]},{"namespace": "category", "allow": ["feline"]}]}
69
+ * {"id": "43", "embedding": [0.6, 1.0], "restricts": [{"namespace": "class", "allow": ["dog", "pet"]},{"namespace": "category", "allow": ["canine"]}]}
70
+ * `,
71
+ * });
72
+ * const index = new gcp.vertex.AiIndex("index", {
73
+ * labels: {
74
+ * foo: "bar",
75
+ * },
76
+ * region: "us-central1",
77
+ * displayName: "test-index",
78
+ * description: "index for test",
79
+ * metadata: {
80
+ * contentsDeltaUri: pulumi.interpolate`gs://${bucket.name}/contents`,
81
+ * config: {
82
+ * dimensions: 2,
83
+ * distanceMeasureType: "COSINE_DISTANCE",
84
+ * featureNormType: "UNIT_L2_NORM",
85
+ * algorithmConfig: {
86
+ * bruteForceConfig: {},
87
+ * },
88
+ * },
89
+ * },
90
+ * indexUpdateMethod: "STREAM_UPDATE",
91
+ * });
92
+ * ```
93
+ *
94
+ * ## Import
95
+ *
96
+ * Index can be imported using any of these accepted formats
97
+ *
98
+ * ```sh
99
+ * $ pulumi import gcp:vertex/aiIndex:AiIndex default projects/{{project}}/locations/{{region}}/indexes/{{name}}
100
+ * ```
101
+ *
102
+ * ```sh
103
+ * $ pulumi import gcp:vertex/aiIndex:AiIndex default {{project}}/{{region}}/{{name}}
104
+ * ```
105
+ *
106
+ * ```sh
107
+ * $ pulumi import gcp:vertex/aiIndex:AiIndex default {{region}}/{{name}}
108
+ * ```
109
+ *
110
+ * ```sh
111
+ * $ pulumi import gcp:vertex/aiIndex:AiIndex default {{name}}
112
+ * ```
113
+ */
114
+ export declare class AiIndex extends pulumi.CustomResource {
115
+ /**
116
+ * Get an existing AiIndex resource's state with the given name, ID, and optional extra
117
+ * properties used to qualify the lookup.
118
+ *
119
+ * @param name The _unique_ name of the resulting resource.
120
+ * @param id The _unique_ provider ID of the resource to lookup.
121
+ * @param state Any extra arguments used during the lookup.
122
+ * @param opts Optional settings to control the behavior of the CustomResource.
123
+ */
124
+ static get(name: string, id: pulumi.Input<pulumi.ID>, state?: AiIndexState, opts?: pulumi.CustomResourceOptions): AiIndex;
125
+ /**
126
+ * Returns true if the given object is an instance of AiIndex. This is designed to work even
127
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
128
+ */
129
+ static isInstance(obj: any): obj is AiIndex;
130
+ /**
131
+ * The timestamp of when the Index was created in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine
132
+ * fractional digits.
133
+ */
134
+ readonly createTime: pulumi.Output<string>;
135
+ /**
136
+ * The pointers to DeployedIndexes created from this Index. An Index can be only deleted if all its DeployedIndexes had
137
+ * been undeployed first.
138
+ */
139
+ readonly deployedIndexes: pulumi.Output<outputs.vertex.AiIndexDeployedIndex[]>;
140
+ /**
141
+ * The description of the Index.
142
+ */
143
+ readonly description: pulumi.Output<string | undefined>;
144
+ /**
145
+ * The display name of the Index. The name can be up to 128 characters long and can consist of any UTF-8 characters.
146
+ */
147
+ readonly displayName: pulumi.Output<string>;
148
+ /**
149
+ * Used to perform consistent read-modify-write updates.
150
+ */
151
+ readonly etag: pulumi.Output<string>;
152
+ /**
153
+ * Stats of the index resource.
154
+ */
155
+ readonly indexStats: pulumi.Output<outputs.vertex.AiIndexIndexStat[]>;
156
+ /**
157
+ * The update method to use with this Index. The value must be the followings. If not set, BATCH_UPDATE will be used by default.
158
+ * * BATCH_UPDATE: user can call indexes.patch with files on Cloud Storage of datapoints to update.
159
+ * * STREAM_UPDATE: user can call indexes.upsertDatapoints/DeleteDatapoints to update the Index and the updates will be applied in corresponding DeployedIndexes in nearly real-time.
160
+ */
161
+ readonly indexUpdateMethod: pulumi.Output<string | undefined>;
162
+ /**
163
+ * The labels with user-defined metadata to organize your Indexes.
164
+ */
165
+ readonly labels: pulumi.Output<{
166
+ [key: string]: string;
167
+ } | undefined>;
168
+ /**
169
+ * An additional information about the Index
170
+ * Structure is documented below.
171
+ */
172
+ readonly metadata: pulumi.Output<outputs.vertex.AiIndexMetadata | undefined>;
173
+ /**
174
+ * Points to a YAML file stored on Google Cloud Storage describing additional information about the Index, that is specific
175
+ * to it. Unset if the Index does not have any additional information.
176
+ */
177
+ readonly metadataSchemaUri: pulumi.Output<string>;
178
+ /**
179
+ * The resource name of the Index.
180
+ */
181
+ readonly name: pulumi.Output<string>;
182
+ /**
183
+ * The ID of the project in which the resource belongs.
184
+ * If it is not provided, the provider project is used.
185
+ */
186
+ readonly project: pulumi.Output<string>;
187
+ /**
188
+ * The region of the index. eg us-central1
189
+ */
190
+ readonly region: pulumi.Output<string | undefined>;
191
+ /**
192
+ * The timestamp of when the Index was last updated in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine
193
+ * fractional digits.
194
+ */
195
+ readonly updateTime: pulumi.Output<string>;
196
+ /**
197
+ * Create a AiIndex resource with the given unique name, arguments, and options.
198
+ *
199
+ * @param name The _unique_ name of the resource.
200
+ * @param args The arguments to use to populate this resource's properties.
201
+ * @param opts A bag of options that control this resource's behavior.
202
+ */
203
+ constructor(name: string, args: AiIndexArgs, opts?: pulumi.CustomResourceOptions);
204
+ }
205
+ /**
206
+ * Input properties used for looking up and filtering AiIndex resources.
207
+ */
208
+ export interface AiIndexState {
209
+ /**
210
+ * The timestamp of when the Index was created in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine
211
+ * fractional digits.
212
+ */
213
+ createTime?: pulumi.Input<string>;
214
+ /**
215
+ * The pointers to DeployedIndexes created from this Index. An Index can be only deleted if all its DeployedIndexes had
216
+ * been undeployed first.
217
+ */
218
+ deployedIndexes?: pulumi.Input<pulumi.Input<inputs.vertex.AiIndexDeployedIndex>[]>;
219
+ /**
220
+ * The description of the Index.
221
+ */
222
+ description?: pulumi.Input<string>;
223
+ /**
224
+ * The display name of the Index. The name can be up to 128 characters long and can consist of any UTF-8 characters.
225
+ */
226
+ displayName?: pulumi.Input<string>;
227
+ /**
228
+ * Used to perform consistent read-modify-write updates.
229
+ */
230
+ etag?: pulumi.Input<string>;
231
+ /**
232
+ * Stats of the index resource.
233
+ */
234
+ indexStats?: pulumi.Input<pulumi.Input<inputs.vertex.AiIndexIndexStat>[]>;
235
+ /**
236
+ * The update method to use with this Index. The value must be the followings. If not set, BATCH_UPDATE will be used by default.
237
+ * * BATCH_UPDATE: user can call indexes.patch with files on Cloud Storage of datapoints to update.
238
+ * * STREAM_UPDATE: user can call indexes.upsertDatapoints/DeleteDatapoints to update the Index and the updates will be applied in corresponding DeployedIndexes in nearly real-time.
239
+ */
240
+ indexUpdateMethod?: pulumi.Input<string>;
241
+ /**
242
+ * The labels with user-defined metadata to organize your Indexes.
243
+ */
244
+ labels?: pulumi.Input<{
245
+ [key: string]: pulumi.Input<string>;
246
+ }>;
247
+ /**
248
+ * An additional information about the Index
249
+ * Structure is documented below.
250
+ */
251
+ metadata?: pulumi.Input<inputs.vertex.AiIndexMetadata>;
252
+ /**
253
+ * Points to a YAML file stored on Google Cloud Storage describing additional information about the Index, that is specific
254
+ * to it. Unset if the Index does not have any additional information.
255
+ */
256
+ metadataSchemaUri?: pulumi.Input<string>;
257
+ /**
258
+ * The resource name of the Index.
259
+ */
260
+ name?: pulumi.Input<string>;
261
+ /**
262
+ * The ID of the project in which the resource belongs.
263
+ * If it is not provided, the provider project is used.
264
+ */
265
+ project?: pulumi.Input<string>;
266
+ /**
267
+ * The region of the index. eg us-central1
268
+ */
269
+ region?: pulumi.Input<string>;
270
+ /**
271
+ * The timestamp of when the Index was last updated in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine
272
+ * fractional digits.
273
+ */
274
+ updateTime?: pulumi.Input<string>;
275
+ }
276
+ /**
277
+ * The set of arguments for constructing a AiIndex resource.
278
+ */
279
+ export interface AiIndexArgs {
280
+ /**
281
+ * The description of the Index.
282
+ */
283
+ description?: pulumi.Input<string>;
284
+ /**
285
+ * The display name of the Index. The name can be up to 128 characters long and can consist of any UTF-8 characters.
286
+ */
287
+ displayName: pulumi.Input<string>;
288
+ /**
289
+ * The update method to use with this Index. The value must be the followings. If not set, BATCH_UPDATE will be used by default.
290
+ * * BATCH_UPDATE: user can call indexes.patch with files on Cloud Storage of datapoints to update.
291
+ * * STREAM_UPDATE: user can call indexes.upsertDatapoints/DeleteDatapoints to update the Index and the updates will be applied in corresponding DeployedIndexes in nearly real-time.
292
+ */
293
+ indexUpdateMethod?: pulumi.Input<string>;
294
+ /**
295
+ * The labels with user-defined metadata to organize your Indexes.
296
+ */
297
+ labels?: pulumi.Input<{
298
+ [key: string]: pulumi.Input<string>;
299
+ }>;
300
+ /**
301
+ * An additional information about the Index
302
+ * Structure is documented below.
303
+ */
304
+ metadata?: pulumi.Input<inputs.vertex.AiIndexMetadata>;
305
+ /**
306
+ * The ID of the project in which the resource belongs.
307
+ * If it is not provided, the provider project is used.
308
+ */
309
+ project?: pulumi.Input<string>;
310
+ /**
311
+ * The region of the index. eg us-central1
312
+ */
313
+ region?: pulumi.Input<string>;
314
+ }
@@ -0,0 +1,188 @@
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.AiIndex = void 0;
6
+ const pulumi = require("@pulumi/pulumi");
7
+ const utilities = require("../utilities");
8
+ /**
9
+ * A representation of a collection of database items organized in a way that allows for approximate nearest neighbor (a.k.a ANN) algorithms search.
10
+ *
11
+ * To get more information about Index, see:
12
+ *
13
+ * * [API documentation](https://cloud.google.com/vertex-ai/docs/reference/rest/v1/projects.locations.indexes/)
14
+ *
15
+ * ## Example Usage
16
+ * ### Vertex Ai Index
17
+ *
18
+ * ```typescript
19
+ * import * as pulumi from "@pulumi/pulumi";
20
+ * import * as gcp from "@pulumi/gcp";
21
+ *
22
+ * const bucket = new gcp.storage.Bucket("bucket", {
23
+ * location: "us-central1",
24
+ * uniformBucketLevelAccess: true,
25
+ * });
26
+ * // The sample data comes from the following link:
27
+ * // https://cloud.google.com/vertex-ai/docs/matching-engine/filtering#specify-namespaces-tokens
28
+ * const data = new gcp.storage.BucketObject("data", {
29
+ * bucket: bucket.name,
30
+ * content: `{"id": "42", "embedding": [0.5, 1.0], "restricts": [{"namespace": "class", "allow": ["cat", "pet"]},{"namespace": "category", "allow": ["feline"]}]}
31
+ * {"id": "43", "embedding": [0.6, 1.0], "restricts": [{"namespace": "class", "allow": ["dog", "pet"]},{"namespace": "category", "allow": ["canine"]}]}
32
+ * `,
33
+ * });
34
+ * const index = new gcp.vertex.AiIndex("index", {
35
+ * labels: {
36
+ * foo: "bar",
37
+ * },
38
+ * region: "us-central1",
39
+ * displayName: "test-index",
40
+ * description: "index for test",
41
+ * metadata: {
42
+ * contentsDeltaUri: pulumi.interpolate`gs://${bucket.name}/contents`,
43
+ * config: {
44
+ * dimensions: 2,
45
+ * approximateNeighborsCount: 150,
46
+ * distanceMeasureType: "DOT_PRODUCT_DISTANCE",
47
+ * algorithmConfig: {
48
+ * treeAhConfig: {
49
+ * leafNodeEmbeddingCount: 500,
50
+ * leafNodesToSearchPercent: 7,
51
+ * },
52
+ * },
53
+ * },
54
+ * },
55
+ * indexUpdateMethod: "BATCH_UPDATE",
56
+ * });
57
+ * ```
58
+ * ### Vertex Ai Index Streaming
59
+ *
60
+ * ```typescript
61
+ * import * as pulumi from "@pulumi/pulumi";
62
+ * import * as gcp from "@pulumi/gcp";
63
+ *
64
+ * const bucket = new gcp.storage.Bucket("bucket", {
65
+ * location: "us-central1",
66
+ * uniformBucketLevelAccess: true,
67
+ * });
68
+ * // The sample data comes from the following link:
69
+ * // https://cloud.google.com/vertex-ai/docs/matching-engine/filtering#specify-namespaces-tokens
70
+ * const data = new gcp.storage.BucketObject("data", {
71
+ * bucket: bucket.name,
72
+ * content: `{"id": "42", "embedding": [0.5, 1.0], "restricts": [{"namespace": "class", "allow": ["cat", "pet"]},{"namespace": "category", "allow": ["feline"]}]}
73
+ * {"id": "43", "embedding": [0.6, 1.0], "restricts": [{"namespace": "class", "allow": ["dog", "pet"]},{"namespace": "category", "allow": ["canine"]}]}
74
+ * `,
75
+ * });
76
+ * const index = new gcp.vertex.AiIndex("index", {
77
+ * labels: {
78
+ * foo: "bar",
79
+ * },
80
+ * region: "us-central1",
81
+ * displayName: "test-index",
82
+ * description: "index for test",
83
+ * metadata: {
84
+ * contentsDeltaUri: pulumi.interpolate`gs://${bucket.name}/contents`,
85
+ * config: {
86
+ * dimensions: 2,
87
+ * distanceMeasureType: "COSINE_DISTANCE",
88
+ * featureNormType: "UNIT_L2_NORM",
89
+ * algorithmConfig: {
90
+ * bruteForceConfig: {},
91
+ * },
92
+ * },
93
+ * },
94
+ * indexUpdateMethod: "STREAM_UPDATE",
95
+ * });
96
+ * ```
97
+ *
98
+ * ## Import
99
+ *
100
+ * Index can be imported using any of these accepted formats
101
+ *
102
+ * ```sh
103
+ * $ pulumi import gcp:vertex/aiIndex:AiIndex default projects/{{project}}/locations/{{region}}/indexes/{{name}}
104
+ * ```
105
+ *
106
+ * ```sh
107
+ * $ pulumi import gcp:vertex/aiIndex:AiIndex default {{project}}/{{region}}/{{name}}
108
+ * ```
109
+ *
110
+ * ```sh
111
+ * $ pulumi import gcp:vertex/aiIndex:AiIndex default {{region}}/{{name}}
112
+ * ```
113
+ *
114
+ * ```sh
115
+ * $ pulumi import gcp:vertex/aiIndex:AiIndex default {{name}}
116
+ * ```
117
+ */
118
+ class AiIndex extends pulumi.CustomResource {
119
+ /**
120
+ * Get an existing AiIndex resource's state with the given name, ID, and optional extra
121
+ * properties used to qualify the lookup.
122
+ *
123
+ * @param name The _unique_ name of the resulting resource.
124
+ * @param id The _unique_ provider ID of the resource to lookup.
125
+ * @param state Any extra arguments used during the lookup.
126
+ * @param opts Optional settings to control the behavior of the CustomResource.
127
+ */
128
+ static get(name, id, state, opts) {
129
+ return new AiIndex(name, state, Object.assign(Object.assign({}, opts), { id: id }));
130
+ }
131
+ /**
132
+ * Returns true if the given object is an instance of AiIndex. This is designed to work even
133
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
134
+ */
135
+ static isInstance(obj) {
136
+ if (obj === undefined || obj === null) {
137
+ return false;
138
+ }
139
+ return obj['__pulumiType'] === AiIndex.__pulumiType;
140
+ }
141
+ constructor(name, argsOrState, opts) {
142
+ let resourceInputs = {};
143
+ opts = opts || {};
144
+ if (opts.id) {
145
+ const state = argsOrState;
146
+ resourceInputs["createTime"] = state ? state.createTime : undefined;
147
+ resourceInputs["deployedIndexes"] = state ? state.deployedIndexes : undefined;
148
+ resourceInputs["description"] = state ? state.description : undefined;
149
+ resourceInputs["displayName"] = state ? state.displayName : undefined;
150
+ resourceInputs["etag"] = state ? state.etag : undefined;
151
+ resourceInputs["indexStats"] = state ? state.indexStats : undefined;
152
+ resourceInputs["indexUpdateMethod"] = state ? state.indexUpdateMethod : undefined;
153
+ resourceInputs["labels"] = state ? state.labels : undefined;
154
+ resourceInputs["metadata"] = state ? state.metadata : undefined;
155
+ resourceInputs["metadataSchemaUri"] = state ? state.metadataSchemaUri : undefined;
156
+ resourceInputs["name"] = state ? state.name : undefined;
157
+ resourceInputs["project"] = state ? state.project : undefined;
158
+ resourceInputs["region"] = state ? state.region : undefined;
159
+ resourceInputs["updateTime"] = state ? state.updateTime : undefined;
160
+ }
161
+ else {
162
+ const args = argsOrState;
163
+ if ((!args || args.displayName === undefined) && !opts.urn) {
164
+ throw new Error("Missing required property 'displayName'");
165
+ }
166
+ resourceInputs["description"] = args ? args.description : undefined;
167
+ resourceInputs["displayName"] = args ? args.displayName : undefined;
168
+ resourceInputs["indexUpdateMethod"] = args ? args.indexUpdateMethod : undefined;
169
+ resourceInputs["labels"] = args ? args.labels : undefined;
170
+ resourceInputs["metadata"] = args ? args.metadata : undefined;
171
+ resourceInputs["project"] = args ? args.project : undefined;
172
+ resourceInputs["region"] = args ? args.region : undefined;
173
+ resourceInputs["createTime"] = undefined /*out*/;
174
+ resourceInputs["deployedIndexes"] = undefined /*out*/;
175
+ resourceInputs["etag"] = undefined /*out*/;
176
+ resourceInputs["indexStats"] = undefined /*out*/;
177
+ resourceInputs["metadataSchemaUri"] = undefined /*out*/;
178
+ resourceInputs["name"] = undefined /*out*/;
179
+ resourceInputs["updateTime"] = undefined /*out*/;
180
+ }
181
+ opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
182
+ super(AiIndex.__pulumiType, name, resourceInputs, opts);
183
+ }
184
+ }
185
+ exports.AiIndex = AiIndex;
186
+ /** @internal */
187
+ AiIndex.__pulumiType = 'gcp:vertex/aiIndex:AiIndex';
188
+ //# sourceMappingURL=aiIndex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aiIndex.js","sourceRoot":"","sources":["../../vertex/aiIndex.ts"],"names":[],"mappings":"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"}