pulumi-gcp 7.31.0__py3-none-any.whl → 7.31.0a1720509668__py3-none-any.whl
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.
- pulumi_gcp/__init__.py +0 -40
- pulumi_gcp/applicationintegration/auth_config.py +2 -2
- pulumi_gcp/bigquery/reservation_assignment.py +30 -48
- pulumi_gcp/certificateauthority/certificate_template.py +2 -2
- pulumi_gcp/certificatemanager/_inputs.py +0 -33
- pulumi_gcp/certificatemanager/outputs.py +0 -36
- pulumi_gcp/certificatemanager/trust_config.py +0 -107
- pulumi_gcp/compute/_inputs.py +6 -3
- pulumi_gcp/compute/ca_external_account_key.py +2 -2
- pulumi_gcp/compute/get_health_check.py +1 -11
- pulumi_gcp/compute/global_forwarding_rule.py +4 -2
- pulumi_gcp/compute/health_check.py +0 -124
- pulumi_gcp/compute/instance.py +14 -14
- pulumi_gcp/compute/instance_group_membership.py +2 -2
- pulumi_gcp/compute/outputs.py +8 -4
- pulumi_gcp/compute/region_network_endpoint.py +2 -2
- pulumi_gcp/compute/region_network_endpoint_group.py +2 -2
- pulumi_gcp/compute/subnetwork.py +2 -2
- pulumi_gcp/config/__init__.pyi +0 -2
- pulumi_gcp/config/vars.py +0 -4
- pulumi_gcp/container/_inputs.py +3 -3
- pulumi_gcp/container/outputs.py +4 -4
- pulumi_gcp/containeranalysis/note.py +2 -2
- pulumi_gcp/dataloss/_inputs.py +0 -3
- pulumi_gcp/dataloss/outputs.py +0 -2
- pulumi_gcp/dataloss/prevention_job_trigger.py +0 -90
- pulumi_gcp/dataplex/_inputs.py +0 -56
- pulumi_gcp/dataplex/datascan.py +0 -12
- pulumi_gcp/dataplex/outputs.py +0 -52
- pulumi_gcp/filestore/backup.py +2 -2
- pulumi_gcp/filestore/instance.py +2 -2
- pulumi_gcp/filestore/snapshot.py +2 -2
- pulumi_gcp/gkehub/_inputs.py +0 -20
- pulumi_gcp/gkehub/outputs.py +0 -12
- pulumi_gcp/kms/__init__.py +0 -2
- pulumi_gcp/kms/crypto_key.py +7 -7
- pulumi_gcp/kms/outputs.py +0 -270
- pulumi_gcp/logging/_inputs.py +12 -12
- pulumi_gcp/logging/folder_bucket_config.py +6 -6
- pulumi_gcp/logging/organization_bucket_config.py +6 -6
- pulumi_gcp/logging/outputs.py +8 -8
- pulumi_gcp/logging/project_bucket_config.py +6 -6
- pulumi_gcp/looker/instance.py +2 -2
- pulumi_gcp/monitoring/custom_service.py +2 -2
- pulumi_gcp/monitoring/generic_service.py +2 -2
- pulumi_gcp/monitoring/notification_channel.py +2 -2
- pulumi_gcp/monitoring/slo.py +2 -2
- pulumi_gcp/netapp/storage_pool.py +53 -132
- pulumi_gcp/netapp/volume.py +4 -60
- pulumi_gcp/networksecurity/address_group.py +1 -85
- pulumi_gcp/networksecurity/firewall_endpoint.py +2 -2
- pulumi_gcp/networksecurity/firewall_endpoint_association.py +2 -2
- pulumi_gcp/networksecurity/security_profile_group.py +2 -2
- pulumi_gcp/orgpolicy/_inputs.py +10 -40
- pulumi_gcp/orgpolicy/outputs.py +8 -28
- pulumi_gcp/orgpolicy/policy.py +35 -52
- pulumi_gcp/provider.py +0 -20
- pulumi_gcp/pubsub/_inputs.py +3 -3
- pulumi_gcp/pubsub/outputs.py +4 -4
- pulumi_gcp/pulumi-plugin.json +1 -1
- pulumi_gcp/securesourcemanager/__init__.py +0 -5
- pulumi_gcp/securesourcemanager/_inputs.py +0 -284
- pulumi_gcp/securesourcemanager/outputs.py +0 -202
- pulumi_gcp/securitycenter/__init__.py +0 -1
- pulumi_gcp/securitycenter/_inputs.py +0 -93
- pulumi_gcp/securitycenter/outputs.py +0 -59
- pulumi_gcp/securityposture/posture_deployment.py +78 -0
- pulumi_gcp/servicenetworking/vpc_service_controls.py +2 -2
- pulumi_gcp/vertex/_inputs.py +1 -21
- pulumi_gcp/vertex/ai_feature_online_store_featureview.py +0 -222
- pulumi_gcp/vertex/outputs.py +1 -15
- pulumi_gcp/workstations/_inputs.py +1 -33
- pulumi_gcp/workstations/outputs.py +1 -23
- pulumi_gcp/workstations/workstation_config.py +0 -18
- {pulumi_gcp-7.31.0.dist-info → pulumi_gcp-7.31.0a1720509668.dist-info}/METADATA +1 -1
- {pulumi_gcp-7.31.0.dist-info → pulumi_gcp-7.31.0a1720509668.dist-info}/RECORD +78 -86
- {pulumi_gcp-7.31.0.dist-info → pulumi_gcp-7.31.0a1720509668.dist-info}/WHEEL +1 -1
- pulumi_gcp/kms/get_crypto_keys.py +0 -143
- pulumi_gcp/kms/get_key_rings.py +0 -119
- pulumi_gcp/securesourcemanager/get_repository_iam_policy.py +0 -177
- pulumi_gcp/securesourcemanager/repository.py +0 -715
- pulumi_gcp/securesourcemanager/repository_iam_binding.py +0 -804
- pulumi_gcp/securesourcemanager/repository_iam_member.py +0 -804
- pulumi_gcp/securesourcemanager/repository_iam_policy.py +0 -643
- pulumi_gcp/securitycenter/v2_organization_notification_config.py +0 -576
- {pulumi_gcp-7.31.0.dist-info → pulumi_gcp-7.31.0a1720509668.dist-info}/top_level.txt +0 -0
@@ -463,6 +463,45 @@ class PostureDeployment(pulumi.CustomResource):
|
|
463
463
|
* How-to Guides
|
464
464
|
* [Create and deploy a posture](https://cloud.google.com/security-command-center/docs/how-to-use-security-posture)
|
465
465
|
|
466
|
+
## Example Usage
|
467
|
+
|
468
|
+
### Securityposture Posture Deployment Basic
|
469
|
+
|
470
|
+
```python
|
471
|
+
import pulumi
|
472
|
+
import pulumi_gcp as gcp
|
473
|
+
|
474
|
+
posture1 = gcp.securityposture.Posture("posture_1",
|
475
|
+
posture_id="posture_1",
|
476
|
+
parent="organizations/123456789",
|
477
|
+
location="global",
|
478
|
+
state="ACTIVE",
|
479
|
+
description="a new posture",
|
480
|
+
policy_sets=[{
|
481
|
+
"policySetId": "org_policy_set",
|
482
|
+
"description": "set of org policies",
|
483
|
+
"policies": [{
|
484
|
+
"policyId": "policy_1",
|
485
|
+
"constraint": {
|
486
|
+
"orgPolicyConstraint": {
|
487
|
+
"cannedConstraintId": "storage.uniformBucketLevelAccess",
|
488
|
+
"policyRules": [{
|
489
|
+
"enforce": True,
|
490
|
+
}],
|
491
|
+
},
|
492
|
+
},
|
493
|
+
}],
|
494
|
+
}])
|
495
|
+
posture_deployment = gcp.securityposture.PostureDeployment("postureDeployment",
|
496
|
+
posture_deployment_id="posture_deployment_1",
|
497
|
+
parent="organizations/123456789",
|
498
|
+
location="global",
|
499
|
+
description="a new posture deployment",
|
500
|
+
target_resource="projects/1111111111111",
|
501
|
+
posture_id=posture1.name,
|
502
|
+
posture_revision_id=posture1.revision_id)
|
503
|
+
```
|
504
|
+
|
466
505
|
## Import
|
467
506
|
|
468
507
|
PostureDeployment can be imported using any of these accepted formats:
|
@@ -510,6 +549,45 @@ class PostureDeployment(pulumi.CustomResource):
|
|
510
549
|
* How-to Guides
|
511
550
|
* [Create and deploy a posture](https://cloud.google.com/security-command-center/docs/how-to-use-security-posture)
|
512
551
|
|
552
|
+
## Example Usage
|
553
|
+
|
554
|
+
### Securityposture Posture Deployment Basic
|
555
|
+
|
556
|
+
```python
|
557
|
+
import pulumi
|
558
|
+
import pulumi_gcp as gcp
|
559
|
+
|
560
|
+
posture1 = gcp.securityposture.Posture("posture_1",
|
561
|
+
posture_id="posture_1",
|
562
|
+
parent="organizations/123456789",
|
563
|
+
location="global",
|
564
|
+
state="ACTIVE",
|
565
|
+
description="a new posture",
|
566
|
+
policy_sets=[{
|
567
|
+
"policySetId": "org_policy_set",
|
568
|
+
"description": "set of org policies",
|
569
|
+
"policies": [{
|
570
|
+
"policyId": "policy_1",
|
571
|
+
"constraint": {
|
572
|
+
"orgPolicyConstraint": {
|
573
|
+
"cannedConstraintId": "storage.uniformBucketLevelAccess",
|
574
|
+
"policyRules": [{
|
575
|
+
"enforce": True,
|
576
|
+
}],
|
577
|
+
},
|
578
|
+
},
|
579
|
+
}],
|
580
|
+
}])
|
581
|
+
posture_deployment = gcp.securityposture.PostureDeployment("postureDeployment",
|
582
|
+
posture_deployment_id="posture_deployment_1",
|
583
|
+
parent="organizations/123456789",
|
584
|
+
location="global",
|
585
|
+
description="a new posture deployment",
|
586
|
+
target_resource="projects/1111111111111",
|
587
|
+
posture_id=posture1.name,
|
588
|
+
posture_revision_id=posture1.revision_id)
|
589
|
+
```
|
590
|
+
|
513
591
|
## Import
|
514
592
|
|
515
593
|
PostureDeployment can be imported using any of these accepted formats:
|
@@ -221,9 +221,9 @@ class VpcServiceControls(pulumi.CustomResource):
|
|
221
221
|
|
222
222
|
* [API documentation](https://cloud.google.com/service-infrastructure/docs/service-networking/reference/rest/v1/services)
|
223
223
|
* How-to Guides
|
224
|
-
* [Enable VPC Service Controls for service networking](https://cloud.google.com/sdk/gcloud/reference/services/vpc-peerings/enable-vpc-service-controls)
|
225
224
|
* [Private Google Access with VPC Service Controls](https://cloud.google.com/vpc-service-controls/docs/private-connectivity)
|
226
225
|
* [Set up private connectivity to Google APIs and services](https://cloud.google.com/vpc-service-controls/docs/set-up-private-connectivity)
|
226
|
+
* [Enable VPC Service Controls for service networking](https://cloud.google.com/sdk/gcloud/reference/services/vpc-peerings/enable-vpc-service-controls)
|
227
227
|
|
228
228
|
> **Note:** Destroying a `servicenetworking.VpcServiceControls`
|
229
229
|
resource will remove it from state, but will not change the
|
@@ -333,9 +333,9 @@ class VpcServiceControls(pulumi.CustomResource):
|
|
333
333
|
|
334
334
|
* [API documentation](https://cloud.google.com/service-infrastructure/docs/service-networking/reference/rest/v1/services)
|
335
335
|
* How-to Guides
|
336
|
-
* [Enable VPC Service Controls for service networking](https://cloud.google.com/sdk/gcloud/reference/services/vpc-peerings/enable-vpc-service-controls)
|
337
336
|
* [Private Google Access with VPC Service Controls](https://cloud.google.com/vpc-service-controls/docs/private-connectivity)
|
338
337
|
* [Set up private connectivity to Google APIs and services](https://cloud.google.com/vpc-service-controls/docs/set-up-private-connectivity)
|
338
|
+
* [Enable VPC Service Controls for service networking](https://cloud.google.com/sdk/gcloud/reference/services/vpc-peerings/enable-vpc-service-controls)
|
339
339
|
|
340
340
|
> **Note:** Destroying a `servicenetworking.VpcServiceControls`
|
341
341
|
resource will remove it from state, but will not change the
|
pulumi_gcp/vertex/_inputs.py
CHANGED
@@ -1615,26 +1615,18 @@ if not MYPY:
|
|
1615
1615
|
List of features that need to be synced to Online Store.
|
1616
1616
|
Structure is documented below.
|
1617
1617
|
"""
|
1618
|
-
project_number: NotRequired[pulumi.Input[str]]
|
1619
|
-
"""
|
1620
|
-
The project number of the parent project of the feature Groups.
|
1621
|
-
"""
|
1622
1618
|
elif False:
|
1623
1619
|
AiFeatureOnlineStoreFeatureviewFeatureRegistrySourceArgsDict: TypeAlias = Mapping[str, Any]
|
1624
1620
|
|
1625
1621
|
@pulumi.input_type
|
1626
1622
|
class AiFeatureOnlineStoreFeatureviewFeatureRegistrySourceArgs:
|
1627
1623
|
def __init__(__self__, *,
|
1628
|
-
feature_groups: pulumi.Input[Sequence[pulumi.Input['AiFeatureOnlineStoreFeatureviewFeatureRegistrySourceFeatureGroupArgs']]]
|
1629
|
-
project_number: Optional[pulumi.Input[str]] = None):
|
1624
|
+
feature_groups: pulumi.Input[Sequence[pulumi.Input['AiFeatureOnlineStoreFeatureviewFeatureRegistrySourceFeatureGroupArgs']]]):
|
1630
1625
|
"""
|
1631
1626
|
:param pulumi.Input[Sequence[pulumi.Input['AiFeatureOnlineStoreFeatureviewFeatureRegistrySourceFeatureGroupArgs']]] feature_groups: List of features that need to be synced to Online Store.
|
1632
1627
|
Structure is documented below.
|
1633
|
-
:param pulumi.Input[str] project_number: The project number of the parent project of the feature Groups.
|
1634
1628
|
"""
|
1635
1629
|
pulumi.set(__self__, "feature_groups", feature_groups)
|
1636
|
-
if project_number is not None:
|
1637
|
-
pulumi.set(__self__, "project_number", project_number)
|
1638
1630
|
|
1639
1631
|
@property
|
1640
1632
|
@pulumi.getter(name="featureGroups")
|
@@ -1649,18 +1641,6 @@ class AiFeatureOnlineStoreFeatureviewFeatureRegistrySourceArgs:
|
|
1649
1641
|
def feature_groups(self, value: pulumi.Input[Sequence[pulumi.Input['AiFeatureOnlineStoreFeatureviewFeatureRegistrySourceFeatureGroupArgs']]]):
|
1650
1642
|
pulumi.set(self, "feature_groups", value)
|
1651
1643
|
|
1652
|
-
@property
|
1653
|
-
@pulumi.getter(name="projectNumber")
|
1654
|
-
def project_number(self) -> Optional[pulumi.Input[str]]:
|
1655
|
-
"""
|
1656
|
-
The project number of the parent project of the feature Groups.
|
1657
|
-
"""
|
1658
|
-
return pulumi.get(self, "project_number")
|
1659
|
-
|
1660
|
-
@project_number.setter
|
1661
|
-
def project_number(self, value: Optional[pulumi.Input[str]]):
|
1662
|
-
pulumi.set(self, "project_number", value)
|
1663
|
-
|
1664
1644
|
|
1665
1645
|
if not MYPY:
|
1666
1646
|
class AiFeatureOnlineStoreFeatureviewFeatureRegistrySourceFeatureGroupArgsDict(TypedDict):
|
@@ -599,117 +599,6 @@ class AiFeatureOnlineStoreFeatureview(pulumi.CustomResource):
|
|
599
599
|
}],
|
600
600
|
})
|
601
601
|
```
|
602
|
-
### Vertex Ai Featureonlinestore Featureview Cross Project
|
603
|
-
|
604
|
-
```python
|
605
|
-
import pulumi
|
606
|
-
import pulumi_gcp as gcp
|
607
|
-
import pulumi_time as time
|
608
|
-
|
609
|
-
test_project = gcp.organizations.get_project()
|
610
|
-
project = gcp.organizations.Project("project",
|
611
|
-
project_id="tf-test_55138",
|
612
|
-
name="tf-test_37559",
|
613
|
-
org_id="123456789",
|
614
|
-
billing_account="000000-0000000-0000000-000000")
|
615
|
-
wait60_seconds = time.index.Sleep("wait_60_seconds", create_duration=60s,
|
616
|
-
opts = pulumi.ResourceOptions(depends_on=[project]))
|
617
|
-
vertexai = gcp.projects.Service("vertexai",
|
618
|
-
service="aiplatform.googleapis.com",
|
619
|
-
project=project.project_id,
|
620
|
-
disable_on_destroy=False,
|
621
|
-
opts = pulumi.ResourceOptions(depends_on=[wait60_seconds]))
|
622
|
-
featureonlinestore = gcp.vertex.AiFeatureOnlineStore("featureonlinestore",
|
623
|
-
name="example_cross_project_featureview",
|
624
|
-
project=project.project_id,
|
625
|
-
labels={
|
626
|
-
"foo": "bar",
|
627
|
-
},
|
628
|
-
region="us-central1",
|
629
|
-
bigtable={
|
630
|
-
"autoScaling": {
|
631
|
-
"minNodeCount": 1,
|
632
|
-
"maxNodeCount": 2,
|
633
|
-
"cpuUtilizationTarget": 80,
|
634
|
-
},
|
635
|
-
},
|
636
|
-
opts = pulumi.ResourceOptions(depends_on=[vertexai]))
|
637
|
-
sample_dataset = gcp.bigquery.Dataset("sample_dataset",
|
638
|
-
dataset_id="example_cross_project_featureview",
|
639
|
-
friendly_name="test",
|
640
|
-
description="This is a test description",
|
641
|
-
location="US")
|
642
|
-
viewer = gcp.bigquery.DatasetIamMember("viewer",
|
643
|
-
project=test_project.project_id,
|
644
|
-
dataset_id=sample_dataset.dataset_id,
|
645
|
-
role="roles/bigquery.dataViewer",
|
646
|
-
member=project.number.apply(lambda number: f"serviceAccount:service-{number}@gcp-sa-aiplatform.iam.gserviceaccount.com"),
|
647
|
-
opts = pulumi.ResourceOptions(depends_on=[featureonlinestore]))
|
648
|
-
wait30_seconds = time.index.Sleep("wait_30_seconds", create_duration=30s,
|
649
|
-
opts = pulumi.ResourceOptions(depends_on=[viewer]))
|
650
|
-
sample_table = gcp.bigquery.Table("sample_table",
|
651
|
-
deletion_protection=False,
|
652
|
-
dataset_id=sample_dataset.dataset_id,
|
653
|
-
table_id="example_cross_project_featureview",
|
654
|
-
schema=\"\"\"[
|
655
|
-
{
|
656
|
-
"name": "feature_id",
|
657
|
-
"type": "STRING",
|
658
|
-
"mode": "NULLABLE"
|
659
|
-
},
|
660
|
-
{
|
661
|
-
"name": "example_cross_project_featureview",
|
662
|
-
"type": "STRING",
|
663
|
-
"mode": "NULLABLE"
|
664
|
-
},
|
665
|
-
{
|
666
|
-
"name": "feature_timestamp",
|
667
|
-
"type": "TIMESTAMP",
|
668
|
-
"mode": "NULLABLE"
|
669
|
-
}
|
670
|
-
]
|
671
|
-
\"\"\")
|
672
|
-
sample_feature_group = gcp.vertex.AiFeatureGroup("sample_feature_group",
|
673
|
-
name="example_cross_project_featureview",
|
674
|
-
description="A sample feature group",
|
675
|
-
region="us-central1",
|
676
|
-
labels={
|
677
|
-
"label-one": "value-one",
|
678
|
-
},
|
679
|
-
big_query={
|
680
|
-
"bigQuerySource": {
|
681
|
-
"inputUri": pulumi.Output.all(sample_table.project, sample_table.dataset_id, sample_table.table_id).apply(lambda project, dataset_id, table_id: f"bq://{project}.{dataset_id}.{table_id}"),
|
682
|
-
},
|
683
|
-
"entityIdColumns": ["feature_id"],
|
684
|
-
})
|
685
|
-
sample_feature = gcp.vertex.AiFeatureGroupFeature("sample_feature",
|
686
|
-
name="example_cross_project_featureview",
|
687
|
-
region="us-central1",
|
688
|
-
feature_group=sample_feature_group.name,
|
689
|
-
description="A sample feature",
|
690
|
-
labels={
|
691
|
-
"label-one": "value-one",
|
692
|
-
})
|
693
|
-
cross_project_featureview = gcp.vertex.AiFeatureOnlineStoreFeatureview("cross_project_featureview",
|
694
|
-
name="example_cross_project_featureview",
|
695
|
-
project=project.project_id,
|
696
|
-
region="us-central1",
|
697
|
-
feature_online_store=featureonlinestore.name,
|
698
|
-
sync_config={
|
699
|
-
"cron": "0 0 * * *",
|
700
|
-
},
|
701
|
-
feature_registry_source={
|
702
|
-
"featureGroups": [{
|
703
|
-
"featureGroupId": sample_feature_group.name,
|
704
|
-
"featureIds": [sample_feature.name],
|
705
|
-
}],
|
706
|
-
"projectNumber": test_project.number,
|
707
|
-
},
|
708
|
-
opts = pulumi.ResourceOptions(depends_on=[
|
709
|
-
vertexai,
|
710
|
-
wait30_seconds,
|
711
|
-
]))
|
712
|
-
```
|
713
602
|
### Vertex Ai Featureonlinestore Featureview With Vector Search
|
714
603
|
|
715
604
|
```python
|
@@ -1023,117 +912,6 @@ class AiFeatureOnlineStoreFeatureview(pulumi.CustomResource):
|
|
1023
912
|
}],
|
1024
913
|
})
|
1025
914
|
```
|
1026
|
-
### Vertex Ai Featureonlinestore Featureview Cross Project
|
1027
|
-
|
1028
|
-
```python
|
1029
|
-
import pulumi
|
1030
|
-
import pulumi_gcp as gcp
|
1031
|
-
import pulumi_time as time
|
1032
|
-
|
1033
|
-
test_project = gcp.organizations.get_project()
|
1034
|
-
project = gcp.organizations.Project("project",
|
1035
|
-
project_id="tf-test_55138",
|
1036
|
-
name="tf-test_37559",
|
1037
|
-
org_id="123456789",
|
1038
|
-
billing_account="000000-0000000-0000000-000000")
|
1039
|
-
wait60_seconds = time.index.Sleep("wait_60_seconds", create_duration=60s,
|
1040
|
-
opts = pulumi.ResourceOptions(depends_on=[project]))
|
1041
|
-
vertexai = gcp.projects.Service("vertexai",
|
1042
|
-
service="aiplatform.googleapis.com",
|
1043
|
-
project=project.project_id,
|
1044
|
-
disable_on_destroy=False,
|
1045
|
-
opts = pulumi.ResourceOptions(depends_on=[wait60_seconds]))
|
1046
|
-
featureonlinestore = gcp.vertex.AiFeatureOnlineStore("featureonlinestore",
|
1047
|
-
name="example_cross_project_featureview",
|
1048
|
-
project=project.project_id,
|
1049
|
-
labels={
|
1050
|
-
"foo": "bar",
|
1051
|
-
},
|
1052
|
-
region="us-central1",
|
1053
|
-
bigtable={
|
1054
|
-
"autoScaling": {
|
1055
|
-
"minNodeCount": 1,
|
1056
|
-
"maxNodeCount": 2,
|
1057
|
-
"cpuUtilizationTarget": 80,
|
1058
|
-
},
|
1059
|
-
},
|
1060
|
-
opts = pulumi.ResourceOptions(depends_on=[vertexai]))
|
1061
|
-
sample_dataset = gcp.bigquery.Dataset("sample_dataset",
|
1062
|
-
dataset_id="example_cross_project_featureview",
|
1063
|
-
friendly_name="test",
|
1064
|
-
description="This is a test description",
|
1065
|
-
location="US")
|
1066
|
-
viewer = gcp.bigquery.DatasetIamMember("viewer",
|
1067
|
-
project=test_project.project_id,
|
1068
|
-
dataset_id=sample_dataset.dataset_id,
|
1069
|
-
role="roles/bigquery.dataViewer",
|
1070
|
-
member=project.number.apply(lambda number: f"serviceAccount:service-{number}@gcp-sa-aiplatform.iam.gserviceaccount.com"),
|
1071
|
-
opts = pulumi.ResourceOptions(depends_on=[featureonlinestore]))
|
1072
|
-
wait30_seconds = time.index.Sleep("wait_30_seconds", create_duration=30s,
|
1073
|
-
opts = pulumi.ResourceOptions(depends_on=[viewer]))
|
1074
|
-
sample_table = gcp.bigquery.Table("sample_table",
|
1075
|
-
deletion_protection=False,
|
1076
|
-
dataset_id=sample_dataset.dataset_id,
|
1077
|
-
table_id="example_cross_project_featureview",
|
1078
|
-
schema=\"\"\"[
|
1079
|
-
{
|
1080
|
-
"name": "feature_id",
|
1081
|
-
"type": "STRING",
|
1082
|
-
"mode": "NULLABLE"
|
1083
|
-
},
|
1084
|
-
{
|
1085
|
-
"name": "example_cross_project_featureview",
|
1086
|
-
"type": "STRING",
|
1087
|
-
"mode": "NULLABLE"
|
1088
|
-
},
|
1089
|
-
{
|
1090
|
-
"name": "feature_timestamp",
|
1091
|
-
"type": "TIMESTAMP",
|
1092
|
-
"mode": "NULLABLE"
|
1093
|
-
}
|
1094
|
-
]
|
1095
|
-
\"\"\")
|
1096
|
-
sample_feature_group = gcp.vertex.AiFeatureGroup("sample_feature_group",
|
1097
|
-
name="example_cross_project_featureview",
|
1098
|
-
description="A sample feature group",
|
1099
|
-
region="us-central1",
|
1100
|
-
labels={
|
1101
|
-
"label-one": "value-one",
|
1102
|
-
},
|
1103
|
-
big_query={
|
1104
|
-
"bigQuerySource": {
|
1105
|
-
"inputUri": pulumi.Output.all(sample_table.project, sample_table.dataset_id, sample_table.table_id).apply(lambda project, dataset_id, table_id: f"bq://{project}.{dataset_id}.{table_id}"),
|
1106
|
-
},
|
1107
|
-
"entityIdColumns": ["feature_id"],
|
1108
|
-
})
|
1109
|
-
sample_feature = gcp.vertex.AiFeatureGroupFeature("sample_feature",
|
1110
|
-
name="example_cross_project_featureview",
|
1111
|
-
region="us-central1",
|
1112
|
-
feature_group=sample_feature_group.name,
|
1113
|
-
description="A sample feature",
|
1114
|
-
labels={
|
1115
|
-
"label-one": "value-one",
|
1116
|
-
})
|
1117
|
-
cross_project_featureview = gcp.vertex.AiFeatureOnlineStoreFeatureview("cross_project_featureview",
|
1118
|
-
name="example_cross_project_featureview",
|
1119
|
-
project=project.project_id,
|
1120
|
-
region="us-central1",
|
1121
|
-
feature_online_store=featureonlinestore.name,
|
1122
|
-
sync_config={
|
1123
|
-
"cron": "0 0 * * *",
|
1124
|
-
},
|
1125
|
-
feature_registry_source={
|
1126
|
-
"featureGroups": [{
|
1127
|
-
"featureGroupId": sample_feature_group.name,
|
1128
|
-
"featureIds": [sample_feature.name],
|
1129
|
-
}],
|
1130
|
-
"projectNumber": test_project.number,
|
1131
|
-
},
|
1132
|
-
opts = pulumi.ResourceOptions(depends_on=[
|
1133
|
-
vertexai,
|
1134
|
-
wait30_seconds,
|
1135
|
-
]))
|
1136
|
-
```
|
1137
915
|
### Vertex Ai Featureonlinestore Featureview With Vector Search
|
1138
916
|
|
1139
917
|
```python
|
pulumi_gcp/vertex/outputs.py
CHANGED
@@ -1336,8 +1336,6 @@ class AiFeatureOnlineStoreFeatureviewFeatureRegistrySource(dict):
|
|
1336
1336
|
suggest = None
|
1337
1337
|
if key == "featureGroups":
|
1338
1338
|
suggest = "feature_groups"
|
1339
|
-
elif key == "projectNumber":
|
1340
|
-
suggest = "project_number"
|
1341
1339
|
|
1342
1340
|
if suggest:
|
1343
1341
|
pulumi.log.warn(f"Key '{key}' not found in AiFeatureOnlineStoreFeatureviewFeatureRegistrySource. Access the value via the '{suggest}' property getter instead.")
|
@@ -1351,16 +1349,12 @@ class AiFeatureOnlineStoreFeatureviewFeatureRegistrySource(dict):
|
|
1351
1349
|
return super().get(key, default)
|
1352
1350
|
|
1353
1351
|
def __init__(__self__, *,
|
1354
|
-
feature_groups: Sequence['outputs.AiFeatureOnlineStoreFeatureviewFeatureRegistrySourceFeatureGroup']
|
1355
|
-
project_number: Optional[str] = None):
|
1352
|
+
feature_groups: Sequence['outputs.AiFeatureOnlineStoreFeatureviewFeatureRegistrySourceFeatureGroup']):
|
1356
1353
|
"""
|
1357
1354
|
:param Sequence['AiFeatureOnlineStoreFeatureviewFeatureRegistrySourceFeatureGroupArgs'] feature_groups: List of features that need to be synced to Online Store.
|
1358
1355
|
Structure is documented below.
|
1359
|
-
:param str project_number: The project number of the parent project of the feature Groups.
|
1360
1356
|
"""
|
1361
1357
|
pulumi.set(__self__, "feature_groups", feature_groups)
|
1362
|
-
if project_number is not None:
|
1363
|
-
pulumi.set(__self__, "project_number", project_number)
|
1364
1358
|
|
1365
1359
|
@property
|
1366
1360
|
@pulumi.getter(name="featureGroups")
|
@@ -1371,14 +1365,6 @@ class AiFeatureOnlineStoreFeatureviewFeatureRegistrySource(dict):
|
|
1371
1365
|
"""
|
1372
1366
|
return pulumi.get(self, "feature_groups")
|
1373
1367
|
|
1374
|
-
@property
|
1375
|
-
@pulumi.getter(name="projectNumber")
|
1376
|
-
def project_number(self) -> Optional[str]:
|
1377
|
-
"""
|
1378
|
-
The project number of the parent project of the feature Groups.
|
1379
|
-
"""
|
1380
|
-
return pulumi.get(self, "project_number")
|
1381
|
-
|
1382
1368
|
|
1383
1369
|
@pulumi.output_type
|
1384
1370
|
class AiFeatureOnlineStoreFeatureviewFeatureRegistrySourceFeatureGroup(dict):
|
@@ -809,14 +809,6 @@ if not MYPY:
|
|
809
809
|
"""
|
810
810
|
Network tags to add to the Compute Engine machines backing the Workstations.
|
811
811
|
"""
|
812
|
-
vm_tags: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[str]]]]
|
813
|
-
"""
|
814
|
-
Resource manager tags to be bound to the VM instances backing the Workstations.
|
815
|
-
Tag keys and values have the same definition as
|
816
|
-
https://cloud.google.com/resource-manager/docs/tags/tags-overview
|
817
|
-
Keys must be in the format `tagKeys/{tag_key_id}`, and
|
818
|
-
values are in the format `tagValues/456`.
|
819
|
-
"""
|
820
812
|
elif False:
|
821
813
|
WorkstationConfigHostGceInstanceArgsDict: TypeAlias = Mapping[str, Any]
|
822
814
|
|
@@ -835,8 +827,7 @@ class WorkstationConfigHostGceInstanceArgs:
|
|
835
827
|
service_account: Optional[pulumi.Input[str]] = None,
|
836
828
|
service_account_scopes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
|
837
829
|
shielded_instance_config: Optional[pulumi.Input['WorkstationConfigHostGceInstanceShieldedInstanceConfigArgs']] = None,
|
838
|
-
tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None
|
839
|
-
vm_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None):
|
830
|
+
tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None):
|
840
831
|
"""
|
841
832
|
:param pulumi.Input[Sequence[pulumi.Input['WorkstationConfigHostGceInstanceAcceleratorArgs']]] accelerators: An accelerator card attached to the instance.
|
842
833
|
Structure is documented below.
|
@@ -856,11 +847,6 @@ class WorkstationConfigHostGceInstanceArgs:
|
|
856
847
|
:param pulumi.Input['WorkstationConfigHostGceInstanceShieldedInstanceConfigArgs'] shielded_instance_config: A set of Compute Engine Shielded instance options.
|
857
848
|
Structure is documented below.
|
858
849
|
:param pulumi.Input[Sequence[pulumi.Input[str]]] tags: Network tags to add to the Compute Engine machines backing the Workstations.
|
859
|
-
:param pulumi.Input[Mapping[str, pulumi.Input[str]]] vm_tags: Resource manager tags to be bound to the VM instances backing the Workstations.
|
860
|
-
Tag keys and values have the same definition as
|
861
|
-
https://cloud.google.com/resource-manager/docs/tags/tags-overview
|
862
|
-
Keys must be in the format `tagKeys/{tag_key_id}`, and
|
863
|
-
values are in the format `tagValues/456`.
|
864
850
|
"""
|
865
851
|
if accelerators is not None:
|
866
852
|
pulumi.set(__self__, "accelerators", accelerators)
|
@@ -888,8 +874,6 @@ class WorkstationConfigHostGceInstanceArgs:
|
|
888
874
|
pulumi.set(__self__, "shielded_instance_config", shielded_instance_config)
|
889
875
|
if tags is not None:
|
890
876
|
pulumi.set(__self__, "tags", tags)
|
891
|
-
if vm_tags is not None:
|
892
|
-
pulumi.set(__self__, "vm_tags", vm_tags)
|
893
877
|
|
894
878
|
@property
|
895
879
|
@pulumi.getter
|
@@ -1052,22 +1036,6 @@ class WorkstationConfigHostGceInstanceArgs:
|
|
1052
1036
|
def tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
|
1053
1037
|
pulumi.set(self, "tags", value)
|
1054
1038
|
|
1055
|
-
@property
|
1056
|
-
@pulumi.getter(name="vmTags")
|
1057
|
-
def vm_tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
|
1058
|
-
"""
|
1059
|
-
Resource manager tags to be bound to the VM instances backing the Workstations.
|
1060
|
-
Tag keys and values have the same definition as
|
1061
|
-
https://cloud.google.com/resource-manager/docs/tags/tags-overview
|
1062
|
-
Keys must be in the format `tagKeys/{tag_key_id}`, and
|
1063
|
-
values are in the format `tagValues/456`.
|
1064
|
-
"""
|
1065
|
-
return pulumi.get(self, "vm_tags")
|
1066
|
-
|
1067
|
-
@vm_tags.setter
|
1068
|
-
def vm_tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
|
1069
|
-
pulumi.set(self, "vm_tags", value)
|
1070
|
-
|
1071
1039
|
|
1072
1040
|
if not MYPY:
|
1073
1041
|
class WorkstationConfigHostGceInstanceAcceleratorArgsDict(TypedDict):
|
@@ -600,8 +600,6 @@ class WorkstationConfigHostGceInstance(dict):
|
|
600
600
|
suggest = "service_account_scopes"
|
601
601
|
elif key == "shieldedInstanceConfig":
|
602
602
|
suggest = "shielded_instance_config"
|
603
|
-
elif key == "vmTags":
|
604
|
-
suggest = "vm_tags"
|
605
603
|
|
606
604
|
if suggest:
|
607
605
|
pulumi.log.warn(f"Key '{key}' not found in WorkstationConfigHostGceInstance. Access the value via the '{suggest}' property getter instead.")
|
@@ -627,8 +625,7 @@ class WorkstationConfigHostGceInstance(dict):
|
|
627
625
|
service_account: Optional[str] = None,
|
628
626
|
service_account_scopes: Optional[Sequence[str]] = None,
|
629
627
|
shielded_instance_config: Optional['outputs.WorkstationConfigHostGceInstanceShieldedInstanceConfig'] = None,
|
630
|
-
tags: Optional[Sequence[str]] = None
|
631
|
-
vm_tags: Optional[Mapping[str, str]] = None):
|
628
|
+
tags: Optional[Sequence[str]] = None):
|
632
629
|
"""
|
633
630
|
:param Sequence['WorkstationConfigHostGceInstanceAcceleratorArgs'] accelerators: An accelerator card attached to the instance.
|
634
631
|
Structure is documented below.
|
@@ -648,11 +645,6 @@ class WorkstationConfigHostGceInstance(dict):
|
|
648
645
|
:param 'WorkstationConfigHostGceInstanceShieldedInstanceConfigArgs' shielded_instance_config: A set of Compute Engine Shielded instance options.
|
649
646
|
Structure is documented below.
|
650
647
|
:param Sequence[str] tags: Network tags to add to the Compute Engine machines backing the Workstations.
|
651
|
-
:param Mapping[str, str] vm_tags: Resource manager tags to be bound to the VM instances backing the Workstations.
|
652
|
-
Tag keys and values have the same definition as
|
653
|
-
https://cloud.google.com/resource-manager/docs/tags/tags-overview
|
654
|
-
Keys must be in the format `tagKeys/{tag_key_id}`, and
|
655
|
-
values are in the format `tagValues/456`.
|
656
648
|
"""
|
657
649
|
if accelerators is not None:
|
658
650
|
pulumi.set(__self__, "accelerators", accelerators)
|
@@ -680,8 +672,6 @@ class WorkstationConfigHostGceInstance(dict):
|
|
680
672
|
pulumi.set(__self__, "shielded_instance_config", shielded_instance_config)
|
681
673
|
if tags is not None:
|
682
674
|
pulumi.set(__self__, "tags", tags)
|
683
|
-
if vm_tags is not None:
|
684
|
-
pulumi.set(__self__, "vm_tags", vm_tags)
|
685
675
|
|
686
676
|
@property
|
687
677
|
@pulumi.getter
|
@@ -792,18 +782,6 @@ class WorkstationConfigHostGceInstance(dict):
|
|
792
782
|
"""
|
793
783
|
return pulumi.get(self, "tags")
|
794
784
|
|
795
|
-
@property
|
796
|
-
@pulumi.getter(name="vmTags")
|
797
|
-
def vm_tags(self) -> Optional[Mapping[str, str]]:
|
798
|
-
"""
|
799
|
-
Resource manager tags to be bound to the VM instances backing the Workstations.
|
800
|
-
Tag keys and values have the same definition as
|
801
|
-
https://cloud.google.com/resource-manager/docs/tags/tags-overview
|
802
|
-
Keys must be in the format `tagKeys/{tag_key_id}`, and
|
803
|
-
values are in the format `tagValues/456`.
|
804
|
-
"""
|
805
|
-
return pulumi.get(self, "vm_tags")
|
806
|
-
|
807
785
|
|
808
786
|
@pulumi.output_type
|
809
787
|
class WorkstationConfigHostGceInstanceAccelerator(dict):
|
@@ -866,12 +866,6 @@ class WorkstationConfig(pulumi.CustomResource):
|
|
866
866
|
import pulumi
|
867
867
|
import pulumi_gcp as gcp
|
868
868
|
|
869
|
-
tag_key1 = gcp.tags.TagKey("tag_key1",
|
870
|
-
parent="organizations/123456789",
|
871
|
-
short_name="keyname")
|
872
|
-
tag_value1 = gcp.tags.TagValue("tag_value1",
|
873
|
-
parent=tag_key1.name.apply(lambda name: f"tagKeys/{name}"),
|
874
|
-
short_name="valuename")
|
875
869
|
default = gcp.compute.Network("default",
|
876
870
|
name="workstation-cluster",
|
877
871
|
auto_create_subnetworks=False)
|
@@ -913,9 +907,6 @@ class WorkstationConfig(pulumi.CustomResource):
|
|
913
907
|
"bootDiskSizeGb": 35,
|
914
908
|
"disablePublicIpAddresses": True,
|
915
909
|
"disableSsh": False,
|
916
|
-
"vmTags": pulumi.Output.all(tag_key1.name, tag_value1.name).apply(lambda tagKey1Name, tagValue1Name: {
|
917
|
-
f"tagKeys/{tag_key1_name}": f"tagValues/{tag_value1_name}",
|
918
|
-
}),
|
919
910
|
},
|
920
911
|
})
|
921
912
|
```
|
@@ -1325,12 +1316,6 @@ class WorkstationConfig(pulumi.CustomResource):
|
|
1325
1316
|
import pulumi
|
1326
1317
|
import pulumi_gcp as gcp
|
1327
1318
|
|
1328
|
-
tag_key1 = gcp.tags.TagKey("tag_key1",
|
1329
|
-
parent="organizations/123456789",
|
1330
|
-
short_name="keyname")
|
1331
|
-
tag_value1 = gcp.tags.TagValue("tag_value1",
|
1332
|
-
parent=tag_key1.name.apply(lambda name: f"tagKeys/{name}"),
|
1333
|
-
short_name="valuename")
|
1334
1319
|
default = gcp.compute.Network("default",
|
1335
1320
|
name="workstation-cluster",
|
1336
1321
|
auto_create_subnetworks=False)
|
@@ -1372,9 +1357,6 @@ class WorkstationConfig(pulumi.CustomResource):
|
|
1372
1357
|
"bootDiskSizeGb": 35,
|
1373
1358
|
"disablePublicIpAddresses": True,
|
1374
1359
|
"disableSsh": False,
|
1375
|
-
"vmTags": pulumi.Output.all(tag_key1.name, tag_value1.name).apply(lambda tagKey1Name, tagValue1Name: {
|
1376
|
-
f"tagKeys/{tag_key1_name}": f"tagValues/{tag_value1_name}",
|
1377
|
-
}),
|
1378
1360
|
},
|
1379
1361
|
})
|
1380
1362
|
```
|