From a0dcfb0aaf9d9a00ee79292cebe6646f2dcf03b4 Mon Sep 17 00:00:00 2001 From: James Woolfenden Date: Thu, 1 Feb 2024 08:59:36 +0000 Subject: [PATCH] WIP --- .github/workflows/ci.yml | 2 +- src/coverage/google.md | 22 -------- .../aiplatform/google_vertex_ai_dataset.json | 21 ++++++++ .../aiplatform/google_vertex_ai_endpoint.json | 20 ++++++++ .../google_vertex_ai_endpoint_iam.json | 14 ++++++ .../google_vertex_ai_feature_group.json | 21 ++++++++ ...oogle_vertex_ai_feature_group_feature.json | 21 ++++++++ ...google_vertex_ai_feature_online_store.json | 20 ++++++++ ...x_ai_feature_online_store_featureview.json | 21 ++++++++ .../google_vertex_ai_featurestore.json | 20 ++++++++ ...gle_vertex_ai_featurestore_entitytype.json | 19 +++++++ ...ex_ai_featurestore_entitytype_feature.json | 17 +++++++ ...vertex_ai_featurestore_entitytype_iam.json | 14 ++++++ .../google_vertex_ai_featurestore_iam.json | 14 ++++++ .../aiplatform/google_vertex_ai_index.json | 13 +++++ .../google_vertex_ai_index_endpoint.json | 13 +++++ .../google_vertex_ai_metadata_store.json | 17 +++++++ .../google_vertex_ai_tensorboard.json | 20 ++++++++ .../google_service_networking_connection.json | 3 +- .../backup/google_project_iam_policy.tf | 2 +- .../google/backup/google_vertex_ai_dataset.tf | 9 ++++ .../backup/google_vertex_ai_endpoint.tf | 17 +++++++ .../google_vertex_ai_endpoint_iam_binding.tf | 8 +++ .../google_vertex_ai_endpoint_iam_member.tf | 7 +++ .../google_vertex_ai_endpoint_iam_policy.tf | 14 ++++++ .../backup/google_vertex_ai_feature_group.tf | 44 ++++++++++++++++ .../google_vertex_ai_feature_group_feature.tf | 9 ++++ .../google_vertex_ai_feature_online_store.tf | 14 ++++++ ...tex_ai_feature_online_store_featureview.tf | 50 +++++++++++++++++++ .../backup/google_vertex_ai_featurestore.tf | 14 ++++++ ...oogle_vertex_ai_featurestore_entitytype.tf | 27 ++++++++++ ...rtex_ai_featurestore_entitytype_feature.tf | 11 ++++ ..._ai_featurestore_entitytype_iam_binding.tf | 9 ++++ ...x_ai_featurestore_entitytype_iam_member.tf | 7 +++ ...x_ai_featurestore_entitytype_iam_policy.tf | 15 ++++++ ...ogle_vertex_ai_featurestore_iam_binding.tf | 6 +++ ...oogle_vertex_ai_featurestore_iam_member.tf | 6 +++ ...oogle_vertex_ai_featurestore_iam_policy.tf | 15 ++++++ .../google/backup/google_vertex_ai_index.tf | 42 ++++++++++++++++ .../backup/google_vertex_ai_index_endpoint.tf | 38 ++++++++++++++ .../backup/google_vertex_ai_metadata_store.tf | 6 +++ .../backup/google_vertex_ai_tensorboard.tf | 9 ++++ terraform/google/provider.google.tf | 26 +++++----- .../role/google_project_iam_custom_role.tf | 41 +++------------ terraform/google/role/provider.gcp.tf | 3 +- 45 files changed, 688 insertions(+), 73 deletions(-) create mode 100644 src/mapping/google/resource/aiplatform/google_vertex_ai_dataset.json create mode 100644 src/mapping/google/resource/aiplatform/google_vertex_ai_endpoint.json create mode 100644 src/mapping/google/resource/aiplatform/google_vertex_ai_endpoint_iam.json create mode 100644 src/mapping/google/resource/aiplatform/google_vertex_ai_feature_group.json create mode 100644 src/mapping/google/resource/aiplatform/google_vertex_ai_feature_group_feature.json create mode 100644 src/mapping/google/resource/aiplatform/google_vertex_ai_feature_online_store.json create mode 100644 src/mapping/google/resource/aiplatform/google_vertex_ai_feature_online_store_featureview.json create mode 100644 src/mapping/google/resource/aiplatform/google_vertex_ai_featurestore.json create mode 100644 src/mapping/google/resource/aiplatform/google_vertex_ai_featurestore_entitytype.json create mode 100644 src/mapping/google/resource/aiplatform/google_vertex_ai_featurestore_entitytype_feature.json create mode 100644 src/mapping/google/resource/aiplatform/google_vertex_ai_featurestore_entitytype_iam.json create mode 100644 src/mapping/google/resource/aiplatform/google_vertex_ai_featurestore_iam.json create mode 100644 src/mapping/google/resource/aiplatform/google_vertex_ai_index.json create mode 100644 src/mapping/google/resource/aiplatform/google_vertex_ai_index_endpoint.json create mode 100644 src/mapping/google/resource/aiplatform/google_vertex_ai_metadata_store.json create mode 100644 src/mapping/google/resource/aiplatform/google_vertex_ai_tensorboard.json create mode 100644 terraform/google/backup/google_vertex_ai_dataset.tf create mode 100644 terraform/google/backup/google_vertex_ai_endpoint.tf create mode 100644 terraform/google/backup/google_vertex_ai_endpoint_iam_binding.tf create mode 100644 terraform/google/backup/google_vertex_ai_endpoint_iam_member.tf create mode 100644 terraform/google/backup/google_vertex_ai_endpoint_iam_policy.tf create mode 100644 terraform/google/backup/google_vertex_ai_feature_group.tf create mode 100644 terraform/google/backup/google_vertex_ai_feature_group_feature.tf create mode 100644 terraform/google/backup/google_vertex_ai_feature_online_store.tf create mode 100644 terraform/google/backup/google_vertex_ai_feature_online_store_featureview.tf create mode 100644 terraform/google/backup/google_vertex_ai_featurestore.tf create mode 100644 terraform/google/backup/google_vertex_ai_featurestore_entitytype.tf create mode 100644 terraform/google/backup/google_vertex_ai_featurestore_entitytype_feature.tf create mode 100644 terraform/google/backup/google_vertex_ai_featurestore_entitytype_iam_binding.tf create mode 100644 terraform/google/backup/google_vertex_ai_featurestore_entitytype_iam_member.tf create mode 100644 terraform/google/backup/google_vertex_ai_featurestore_entitytype_iam_policy.tf create mode 100644 terraform/google/backup/google_vertex_ai_featurestore_iam_binding.tf create mode 100644 terraform/google/backup/google_vertex_ai_featurestore_iam_member.tf create mode 100644 terraform/google/backup/google_vertex_ai_featurestore_iam_policy.tf create mode 100644 terraform/google/backup/google_vertex_ai_index.tf create mode 100644 terraform/google/backup/google_vertex_ai_index_endpoint.tf create mode 100644 terraform/google/backup/google_vertex_ai_metadata_store.tf create mode 100644 terraform/google/backup/google_vertex_ai_tensorboard.tf diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1113fb70..352571dd 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -43,6 +43,6 @@ jobs: run: go test ./... -coverprofile=./cover.out - name: Upload coverage reports to Codecov - uses: codecov/codecov-action@9cc74bf7e13a810454a28846494ddbc3795eb693 # v3.1.6 + uses: codecov/codecov-action@edd20798ab377991aad21abfb1f2d5e093b681e8 # v4.0.0 env: CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} diff --git a/src/coverage/google.md b/src/coverage/google.md index 088cb320..7d7faefc 100755 --- a/src/coverage/google.md +++ b/src/coverage/google.md @@ -667,28 +667,6 @@ Datasource percentage coverage 91.35 ./resource.ps1 google_tags_tag_value_iam_policy ./resource.ps1 google_tpu_node ./resource.ps1 google_tpu_v2_vm -./resource.ps1 google_vertex_ai_dataset -./resource.ps1 google_vertex_ai_endpoint -./resource.ps1 google_vertex_ai_endpoint_iam_binding -./resource.ps1 google_vertex_ai_endpoint_iam_member -./resource.ps1 google_vertex_ai_endpoint_iam_policy -./resource.ps1 google_vertex_ai_feature_group -./resource.ps1 google_vertex_ai_feature_group_feature -./resource.ps1 google_vertex_ai_feature_online_store -./resource.ps1 google_vertex_ai_feature_online_store_featureview -./resource.ps1 google_vertex_ai_featurestore -./resource.ps1 google_vertex_ai_featurestore_entitytype -./resource.ps1 google_vertex_ai_featurestore_entitytype_feature -./resource.ps1 google_vertex_ai_featurestore_entitytype_iam_binding -./resource.ps1 google_vertex_ai_featurestore_entitytype_iam_member -./resource.ps1 google_vertex_ai_featurestore_entitytype_iam_policy -./resource.ps1 google_vertex_ai_featurestore_iam_binding -./resource.ps1 google_vertex_ai_featurestore_iam_member -./resource.ps1 google_vertex_ai_featurestore_iam_policy -./resource.ps1 google_vertex_ai_index -./resource.ps1 google_vertex_ai_index_endpoint -./resource.ps1 google_vertex_ai_metadata_store -./resource.ps1 google_vertex_ai_tensorboard ./resource.ps1 google_vmwareengine_cluster ./resource.ps1 google_vmwareengine_external_access_rule ./resource.ps1 google_vmwareengine_external_address diff --git a/src/mapping/google/resource/aiplatform/google_vertex_ai_dataset.json b/src/mapping/google/resource/aiplatform/google_vertex_ai_dataset.json new file mode 100644 index 00000000..25d9eafa --- /dev/null +++ b/src/mapping/google/resource/aiplatform/google_vertex_ai_dataset.json @@ -0,0 +1,21 @@ +[ + { + "apply": [ + "aiplatform.datasets.create", + "aiplatform.datasets.update", + "aiplatform.datasets.delete", + "aiplatform.datasets.get", + "storage.objects.list" + ], + "attributes": { + "tags": [] + }, + "destroy": [ + "aiplatform.datasets.delete" + ], + "modify": [ + "aiplatform.datasets.update" + ], + "plan": [] + } +] diff --git a/src/mapping/google/resource/aiplatform/google_vertex_ai_endpoint.json b/src/mapping/google/resource/aiplatform/google_vertex_ai_endpoint.json new file mode 100644 index 00000000..5bdc4260 --- /dev/null +++ b/src/mapping/google/resource/aiplatform/google_vertex_ai_endpoint.json @@ -0,0 +1,20 @@ +[ + { + "apply": [ + "aiplatform.endpoints.create", + "aiplatform.endpoints.delete", + "aiplatform.endpoints.update", + "aiplatform.endpoints.get" + ], + "attributes": { + "tags": [] + }, + "destroy": [ + "aiplatform.endpoints.delete" + ], + "modify": [ + "aiplatform.endpoints.update" + ], + "plan": [] + } +] diff --git a/src/mapping/google/resource/aiplatform/google_vertex_ai_endpoint_iam.json b/src/mapping/google/resource/aiplatform/google_vertex_ai_endpoint_iam.json new file mode 100644 index 00000000..a22f29fb --- /dev/null +++ b/src/mapping/google/resource/aiplatform/google_vertex_ai_endpoint_iam.json @@ -0,0 +1,14 @@ +[ + { + "apply": [ + "aiplatform.endpoints.getIamPolicy", + "aiplatform.endpoints.setIamPolicy" + ], + "attributes": { + "tags": [] + }, + "destroy": [], + "modify": [], + "plan": [] + } +] diff --git a/src/mapping/google/resource/aiplatform/google_vertex_ai_feature_group.json b/src/mapping/google/resource/aiplatform/google_vertex_ai_feature_group.json new file mode 100644 index 00000000..4375d802 --- /dev/null +++ b/src/mapping/google/resource/aiplatform/google_vertex_ai_feature_group.json @@ -0,0 +1,21 @@ +[ + { + "apply": [ + "aiplatform.featureGroups.create", + "aiplatform.featureGroups.delete", + "aiplatform.featureGroups.get", + "aiplatform.featureGroups.list", + "aiplatform.featureGroups.update" + ], + "attributes": { + "tags": [] + }, + "destroy": [ + "aiplatform.featureGroups.delete" + ], + "modify": [ + "aiplatform.featureGroups.update" + ], + "plan": [] + } +] diff --git a/src/mapping/google/resource/aiplatform/google_vertex_ai_feature_group_feature.json b/src/mapping/google/resource/aiplatform/google_vertex_ai_feature_group_feature.json new file mode 100644 index 00000000..296a22d4 --- /dev/null +++ b/src/mapping/google/resource/aiplatform/google_vertex_ai_feature_group_feature.json @@ -0,0 +1,21 @@ +[ + { + "apply": [ + "aiplatform.features.create", + "aiplatform.features.delete", + "aiplatform.features.get", + "aiplatform.features.list", + "aiplatform.features.update" + ], + "attributes": { + "tags": [] + }, + "destroy": [ + "aiplatform.features.delete" + ], + "modify": [ + "aiplatform.features.update" + ], + "plan": [] + } +] diff --git a/src/mapping/google/resource/aiplatform/google_vertex_ai_feature_online_store.json b/src/mapping/google/resource/aiplatform/google_vertex_ai_feature_online_store.json new file mode 100644 index 00000000..4fd37536 --- /dev/null +++ b/src/mapping/google/resource/aiplatform/google_vertex_ai_feature_online_store.json @@ -0,0 +1,20 @@ +[ + { + "apply": [ + "aiplatform.featureOnlineStores.create", + "aiplatform.featureOnlineStores.delete", + "aiplatform.featureOnlineStores.update", + "aiplatform.featureOnlineStores.get" + ], + "attributes": { + "tags": [] + }, + "destroy": [ + "aiplatform.featureOnlineStores.delete" + ], + "modify": [ + "aiplatform.featureOnlineStores.update" + ], + "plan": [] + } +] diff --git a/src/mapping/google/resource/aiplatform/google_vertex_ai_feature_online_store_featureview.json b/src/mapping/google/resource/aiplatform/google_vertex_ai_feature_online_store_featureview.json new file mode 100644 index 00000000..b1dd22c4 --- /dev/null +++ b/src/mapping/google/resource/aiplatform/google_vertex_ai_feature_online_store_featureview.json @@ -0,0 +1,21 @@ +[ + { + "apply": [ + "aiplatform.featureViews.create", + "aiplatform.featureViews.delete", + "aiplatform.featureViews.get", + "aiplatform.featureViews.list", + "aiplatform.featureViews.update" + ], + "attributes": { + "tags": [] + }, + "destroy": [ + "aiplatform.featureViews.delete" + ], + "modify": [ + "aiplatform.featureViews.update" + ], + "plan": [] + } +] diff --git a/src/mapping/google/resource/aiplatform/google_vertex_ai_featurestore.json b/src/mapping/google/resource/aiplatform/google_vertex_ai_featurestore.json new file mode 100644 index 00000000..9fcf81c1 --- /dev/null +++ b/src/mapping/google/resource/aiplatform/google_vertex_ai_featurestore.json @@ -0,0 +1,20 @@ +[ + { + "apply": [ + "aiplatform.featurestores.create", + "aiplatform.featurestores.get", + "aiplatform.featurestores.update", + "aiplatform.featurestores.delete" + ], + "attributes": { + "tags": [] + }, + "destroy": [ + "aiplatform.featurestores.delete" + ], + "modify": [ + "aiplatform.featurestores.update" + ], + "plan": [] + } +] diff --git a/src/mapping/google/resource/aiplatform/google_vertex_ai_featurestore_entitytype.json b/src/mapping/google/resource/aiplatform/google_vertex_ai_featurestore_entitytype.json new file mode 100644 index 00000000..f75a8dd5 --- /dev/null +++ b/src/mapping/google/resource/aiplatform/google_vertex_ai_featurestore_entitytype.json @@ -0,0 +1,19 @@ +[ + { + "apply": [ + "aiplatform.entityTypes.delete", + "aiplatform.entityTypes.get", + "aiplatform.entityTypes.update" + ], + "attributes": { + "tags": [] + }, + "destroy": [ + "aiplatform.entityTypes.delete" + ], + "modify": [ + "aiplatform.entityTypes.update" + ], + "plan": [] + } +] diff --git a/src/mapping/google/resource/aiplatform/google_vertex_ai_featurestore_entitytype_feature.json b/src/mapping/google/resource/aiplatform/google_vertex_ai_featurestore_entitytype_feature.json new file mode 100644 index 00000000..82b39af5 --- /dev/null +++ b/src/mapping/google/resource/aiplatform/google_vertex_ai_featurestore_entitytype_feature.json @@ -0,0 +1,17 @@ +[ + { + "apply": [ + "aiplatform.entityTypes.writeFeatureValues", + "aiplatform.entityTypes.deleteFeatureValues", + "aiplatform.entityTypes.readFeatureValues" + ], + "attributes": { + "tags": [] + }, + "destroy": [ + "aiplatform.entityTypes.deleteFeatureValues" + ], + "modify": [], + "plan": [] + } +] diff --git a/src/mapping/google/resource/aiplatform/google_vertex_ai_featurestore_entitytype_iam.json b/src/mapping/google/resource/aiplatform/google_vertex_ai_featurestore_entitytype_iam.json new file mode 100644 index 00000000..300eb8cb --- /dev/null +++ b/src/mapping/google/resource/aiplatform/google_vertex_ai_featurestore_entitytype_iam.json @@ -0,0 +1,14 @@ +[ + { + "apply": [ + "aiplatform.entityTypes.setIamPolicy", + "aiplatform.entityTypes.getIamPolicy" + ], + "attributes": { + "tags": [] + }, + "destroy": [], + "modify": [], + "plan": [] + } +] diff --git a/src/mapping/google/resource/aiplatform/google_vertex_ai_featurestore_iam.json b/src/mapping/google/resource/aiplatform/google_vertex_ai_featurestore_iam.json new file mode 100644 index 00000000..562b2f1f --- /dev/null +++ b/src/mapping/google/resource/aiplatform/google_vertex_ai_featurestore_iam.json @@ -0,0 +1,14 @@ +[ + { + "apply": [ + "aiplatform.featurestores.getIamPolicy", + "aiplatform.featurestores.setIamPolicy" + ], + "attributes": { + "tags": [] + }, + "destroy": [], + "modify": [], + "plan": [] + } +] diff --git a/src/mapping/google/resource/aiplatform/google_vertex_ai_index.json b/src/mapping/google/resource/aiplatform/google_vertex_ai_index.json new file mode 100644 index 00000000..80b84cce --- /dev/null +++ b/src/mapping/google/resource/aiplatform/google_vertex_ai_index.json @@ -0,0 +1,13 @@ +[ + { + "apply": [ + "aiplatform.indexes.create" + ], + "attributes": { + "tags": [] + }, + "destroy": [], + "modify": [], + "plan": [] + } +] diff --git a/src/mapping/google/resource/aiplatform/google_vertex_ai_index_endpoint.json b/src/mapping/google/resource/aiplatform/google_vertex_ai_index_endpoint.json new file mode 100644 index 00000000..c23ce101 --- /dev/null +++ b/src/mapping/google/resource/aiplatform/google_vertex_ai_index_endpoint.json @@ -0,0 +1,13 @@ +[ + { + "apply": [ + "aiplatform.indexEndpoints.create" + ], + "attributes": { + "tags": [] + }, + "destroy": [], + "modify": [], + "plan": [] + } +] diff --git a/src/mapping/google/resource/aiplatform/google_vertex_ai_metadata_store.json b/src/mapping/google/resource/aiplatform/google_vertex_ai_metadata_store.json new file mode 100644 index 00000000..85b44f9b --- /dev/null +++ b/src/mapping/google/resource/aiplatform/google_vertex_ai_metadata_store.json @@ -0,0 +1,17 @@ +[ + { + "apply": [ + "aiplatform.metadataStores.create", + "aiplatform.metadataStores.delete", + "aiplatform.metadataStores.get" + ], + "attributes": { + "tags": [] + }, + "destroy": [ + "aiplatform.metadataStores.delete" + ], + "modify": [], + "plan": [] + } +] diff --git a/src/mapping/google/resource/aiplatform/google_vertex_ai_tensorboard.json b/src/mapping/google/resource/aiplatform/google_vertex_ai_tensorboard.json new file mode 100644 index 00000000..236d5535 --- /dev/null +++ b/src/mapping/google/resource/aiplatform/google_vertex_ai_tensorboard.json @@ -0,0 +1,20 @@ +[ + { + "apply": [ + "aiplatform.tensorboards.create", + "aiplatform.tensorboards.delete", + "aiplatform.tensorboards.update", + "aiplatform.tensorboards.get" + ], + "attributes": { + "tags": [] + }, + "destroy": [ + "aiplatform.tensorboards.delete" + ], + "modify": [ + "aiplatform.tensorboards.update" + ], + "plan": [] + } +] diff --git a/src/mapping/google/resource/servicenetworking/google_service_networking_connection.json b/src/mapping/google/resource/servicenetworking/google_service_networking_connection.json index fd402692..a1160766 100644 --- a/src/mapping/google/resource/servicenetworking/google_service_networking_connection.json +++ b/src/mapping/google/resource/servicenetworking/google_service_networking_connection.json @@ -4,7 +4,8 @@ "resourcemanager.projects.get", "servicenetworking.services.get", "servicenetworking.services.addPeering", - "compute.networks.removePeering" + "compute.networks.removePeering", + "servicenetworking.services.deleteConnection" ], "attributes": { "tags": [] diff --git a/terraform/google/backup/google_project_iam_policy.tf b/terraform/google/backup/google_project_iam_policy.tf index d9f70e87..cc67ce3a 100644 --- a/terraform/google/backup/google_project_iam_policy.tf +++ b/terraform/google/backup/google_project_iam_policy.tf @@ -8,7 +8,7 @@ # role = "roles/compute.admin" # # members = [ -# "user:jane@example.com", +# "user:crwoolfenden@gmail.com", # ] # # condition { diff --git a/terraform/google/backup/google_vertex_ai_dataset.tf b/terraform/google/backup/google_vertex_ai_dataset.tf new file mode 100644 index 00000000..a8a473fd --- /dev/null +++ b/terraform/google/backup/google_vertex_ai_dataset.tf @@ -0,0 +1,9 @@ +resource "google_vertex_ai_dataset" "pike" { + display_name = "terraform" + metadata_schema_uri = "gs://google-cloud-aiplatform/schema/dataset/metadata/image_1.0.0.yaml" + region = "us-central1" + + labels = { + env = "test" + } +} diff --git a/terraform/google/backup/google_vertex_ai_endpoint.tf b/terraform/google/backup/google_vertex_ai_endpoint.tf new file mode 100644 index 00000000..54ee0fe5 --- /dev/null +++ b/terraform/google/backup/google_vertex_ai_endpoint.tf @@ -0,0 +1,17 @@ +resource "google_vertex_ai_endpoint" "pike" { + name = "endpoint-name" + display_name = "sample-endpoint" + description = "A sample vertex endpoint" + location = "us-central1" + region = "us-central1" + labels = { + label-one = "value-one" + } + network = "projects/${data.google_project.project.number}/global/networks/${google_compute_network.vertex_network.name}" + encryption_spec { + kms_key_name = "projects/pike-gcp/locations/us-central1/keyRings/cluster-1vpUU/cryptoKeys/cluster-1vpUU" + } + depends_on = [ + google_service_networking_connection.vertex_vpc_connection + ] +} diff --git a/terraform/google/backup/google_vertex_ai_endpoint_iam_binding.tf b/terraform/google/backup/google_vertex_ai_endpoint_iam_binding.tf new file mode 100644 index 00000000..0b573cd8 --- /dev/null +++ b/terraform/google/backup/google_vertex_ai_endpoint_iam_binding.tf @@ -0,0 +1,8 @@ +resource "google_vertex_ai_endpoint_iam_binding" "pike" { + provider = google-beta + endpoint = google_vertex_ai_endpoint.pike.name + role = "roles/viewer" + members = [ + "user:crwoolfenden@gmail.com", + ] +} diff --git a/terraform/google/backup/google_vertex_ai_endpoint_iam_member.tf b/terraform/google/backup/google_vertex_ai_endpoint_iam_member.tf new file mode 100644 index 00000000..e510bddf --- /dev/null +++ b/terraform/google/backup/google_vertex_ai_endpoint_iam_member.tf @@ -0,0 +1,7 @@ +resource "google_vertex_ai_endpoint_iam_member" "pike" { + provider = google-beta + endpoint = google_vertex_ai_endpoint.pike.name + + role = "roles/viewer" + member = "user:crwoolfenden@gmail.com" +} diff --git a/terraform/google/backup/google_vertex_ai_endpoint_iam_policy.tf b/terraform/google/backup/google_vertex_ai_endpoint_iam_policy.tf new file mode 100644 index 00000000..441a89ba --- /dev/null +++ b/terraform/google/backup/google_vertex_ai_endpoint_iam_policy.tf @@ -0,0 +1,14 @@ +resource "google_vertex_ai_endpoint_iam_policy" "pike" { + provider = google-beta + endpoint = google_vertex_ai_endpoint.pike.name + policy_data = data.google_iam_policy.admin3.policy_data +} + +data "google_iam_policy" "admin3" { + binding { + role = "roles/viewer" + members = [ + "user:crwoolfenden@gmail.com", + ] + } +} diff --git a/terraform/google/backup/google_vertex_ai_feature_group.tf b/terraform/google/backup/google_vertex_ai_feature_group.tf new file mode 100644 index 00000000..66d46944 --- /dev/null +++ b/terraform/google/backup/google_vertex_ai_feature_group.tf @@ -0,0 +1,44 @@ +resource "google_vertex_ai_feature_group" "pike" { + + name = "example_feature_group" + description = "A sample feature group" + region = "us-central1" + labels = { + label-one = "value-one" + } + big_query { + big_query_source { + # The source table must have a column named 'feature_timestamp' of type TIMESTAMP. + input_uri = "bq://${google_bigquery_table.sample_table.project}.${google_bigquery_table.sample_table.dataset_id}.${google_bigquery_table.sample_table.table_id}" + } + entity_id_columns = ["feature_id"] + } +} + +resource "google_bigquery_dataset" "sample_dataset" { + dataset_id = "job_load_dataset" + friendly_name = "test" + description = "This is a test description" + location = "US" +} + +resource "google_bigquery_table" "sample_table" { + deletion_protection = false + dataset_id = google_bigquery_dataset.sample_dataset.dataset_id + table_id = "job_load_table" + + schema = <