diff --git a/.ci-mgmt.yaml b/.ci-mgmt.yaml index c1d19c90c..4786bf7f7 100644 --- a/.ci-mgmt.yaml +++ b/.ci-mgmt.yaml @@ -1,5 +1,5 @@ provider: openstack -major-version: 3 +major-version: 4 env: OS_AUTH_URL: "https://auth.cloud.ovh.net/v3/" OS_IDENTITY_API_VERSION: 3 diff --git a/.github/workflows/command-dispatch.yml b/.github/workflows/command-dispatch.yml index 9dc908ad6..510bdbb6c 100644 --- a/.github/workflows/command-dispatch.yml +++ b/.github/workflows/command-dispatch.yml @@ -37,6 +37,7 @@ env: SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} TF_APPEND_USER_AGENT: pulumi TRAVIS_OS_NAME: linux + VERSION_PREFIX: 4.0.0 jobs: command-dispatch-for-testing: name: command-dispatch-for-testing diff --git a/.github/workflows/license.yml b/.github/workflows/license.yml index bd87bc7dc..873f25e42 100644 --- a/.github/workflows/license.yml +++ b/.github/workflows/license.yml @@ -43,6 +43,7 @@ env: SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} TF_APPEND_USER_AGENT: pulumi TRAVIS_OS_NAME: linux + VERSION_PREFIX: 4.0.0 jobs: license_check: diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 30bcb3c83..6a311f977 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -42,6 +42,7 @@ env: SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} TF_APPEND_USER_AGENT: pulumi TRAVIS_OS_NAME: linux + VERSION_PREFIX: 4.0.0 jobs: lint: diff --git a/.github/workflows/master.yml b/.github/workflows/master.yml index 22280af27..919286766 100644 --- a/.github/workflows/master.yml +++ b/.github/workflows/master.yml @@ -37,6 +37,7 @@ env: SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} TF_APPEND_USER_AGENT: pulumi TRAVIS_OS_NAME: linux + VERSION_PREFIX: 4.0.0 jobs: build_sdk: name: build_sdk diff --git a/.github/workflows/prerelease.yml b/.github/workflows/prerelease.yml index edfc9a0a8..cbf2e7900 100644 --- a/.github/workflows/prerelease.yml +++ b/.github/workflows/prerelease.yml @@ -38,6 +38,7 @@ env: SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} TF_APPEND_USER_AGENT: pulumi TRAVIS_OS_NAME: linux + VERSION_PREFIX: 4.0.0 jobs: build_sdk: name: build_sdk diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml index 87ee5357c..76aa4b2c9 100644 --- a/.github/workflows/pull-request.yml +++ b/.github/workflows/pull-request.yml @@ -37,6 +37,7 @@ env: SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} TF_APPEND_USER_AGENT: pulumi TRAVIS_OS_NAME: linux + VERSION_PREFIX: 4.0.0 jobs: comment-on-pr: if: github.event.pull_request.head.repo.full_name != github.repository diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 16653ecd9..d00bd0893 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -37,6 +37,7 @@ env: SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} TF_APPEND_USER_AGENT: pulumi TRAVIS_OS_NAME: linux + VERSION_PREFIX: 4.0.0 jobs: build_sdk: name: build_sdk diff --git a/.github/workflows/resync-build.yml b/.github/workflows/resync-build.yml index d12ed7c90..68adce4aa 100644 --- a/.github/workflows/resync-build.yml +++ b/.github/workflows/resync-build.yml @@ -39,6 +39,7 @@ env: SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} TF_APPEND_USER_AGENT: pulumi TRAVIS_OS_NAME: linux + VERSION_PREFIX: 4.0.0 jobs: resync_build: name: resync-build diff --git a/.github/workflows/run-acceptance-tests.yml b/.github/workflows/run-acceptance-tests.yml index 11724ff5e..25d488de5 100644 --- a/.github/workflows/run-acceptance-tests.yml +++ b/.github/workflows/run-acceptance-tests.yml @@ -38,6 +38,7 @@ env: SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} TF_APPEND_USER_AGENT: pulumi TRAVIS_OS_NAME: linux + VERSION_PREFIX: 4.0.0 # This should cancel any previous runs of the same workflow on the same branch which are still running. concurrency: diff --git a/.goreleaser.prerelease.yml b/.goreleaser.prerelease.yml index bb7cdafd3..ba1ae7c43 100644 --- a/.goreleaser.prerelease.yml +++ b/.goreleaser.prerelease.yml @@ -32,7 +32,7 @@ builds: - env GOOS={{ .Os }} GOARCH={{ .Arch }} go clean -modcache ignore: [] ldflags: - - -X github.com/pulumi/pulumi-openstack/provider/v3/pkg/version.Version={{.Tag}} + - -X github.com/pulumi/pulumi-openstack/provider/v4/pkg/version.Version={{.Tag}} main: ./cmd/pulumi-resource-openstack/ changelog: skip: true diff --git a/.goreleaser.yml b/.goreleaser.yml index 99f09a03b..523ae6678 100644 --- a/.goreleaser.yml +++ b/.goreleaser.yml @@ -33,7 +33,7 @@ builds: ignore: [] ldflags: - -X - github.com/pulumi/pulumi-openstack/provider/v3/pkg/version.Version={{.Tag}} + github.com/pulumi/pulumi-openstack/provider/v4/pkg/version.Version={{.Tag}} main: ./cmd/pulumi-resource-openstack/ changelog: filters: diff --git a/Makefile b/Makefile index 6232452be..13400e3dc 100644 --- a/Makefile +++ b/Makefile @@ -3,7 +3,7 @@ PACK := openstack ORG := pulumi PROJECT := github.com/$(ORG)/pulumi-$(PACK) -PROVIDER_PATH := provider/v3 +PROVIDER_PATH := provider/v4 VERSION_PATH := $(PROVIDER_PATH)/pkg/version.Version TFGEN := pulumi-tfgen-$(PACK) PROVIDER := pulumi-resource-$(PACK) @@ -14,7 +14,7 @@ PULUMI_CONVERT := 1 # Override during CI using `make [TARGET] PROVIDER_VERSION=""` or by setting a PROVIDER_VERSION environment variable # Local & branch builds will just used this fixed default version unless specified -PROVIDER_VERSION ?= 3.0.0-alpha.0+dev +PROVIDER_VERSION = 4.0.0 # Use this normalised version everywhere rather than the raw input to ensure consistency. VERSION_GENERIC = $(shell pulumictl convert-version --language generic --version "$(PROVIDER_VERSION)") diff --git a/README.md b/README.md index 79743753d..1954ce1e4 100644 --- a/README.md +++ b/README.md @@ -35,7 +35,7 @@ To use from Python, install using `pip`: To use from Go, use `go get` to grab the latest version of the library - $ go get github.com/pulumi/pulumi-openstack/sdk/v3 + $ go get github.com/pulumi/pulumi-openstack/sdk/v4 ### .NET diff --git a/provider/cmd/pulumi-resource-openstack/bridge-metadata.json b/provider/cmd/pulumi-resource-openstack/bridge-metadata.json index e99f759aa..5dccb29ae 100644 --- a/provider/cmd/pulumi-resource-openstack/bridge-metadata.json +++ b/provider/cmd/pulumi-resource-openstack/bridge-metadata.json @@ -3,23 +3,23 @@ "resources": { "openstack_blockstorage_qos_association_v3": { "current": "openstack:blockstorage/qosAssociationV3:QosAssociationV3", - "majorVersion": 3 + "majorVersion": 4 }, "openstack_blockstorage_qos_v3": { "current": "openstack:blockstorage/qosV3:QosV3", - "majorVersion": 3 + "majorVersion": 4 }, "openstack_blockstorage_quotaset_v2": { "current": "openstack:blockstorage/quoteSetV2:QuoteSetV2", - "majorVersion": 3 + "majorVersion": 4 }, "openstack_blockstorage_quotaset_v3": { "current": "openstack:blockstorage/quoteSetV3:QuoteSetV3", - "majorVersion": 3 + "majorVersion": 4 }, "openstack_blockstorage_volume_attach_v2": { "current": "openstack:blockstorage/volumeAttachV2:VolumeAttachV2", - "majorVersion": 3, + "majorVersion": 4, "fields": { "wwpn": { "maxItemsOne": false @@ -28,7 +28,7 @@ }, "openstack_blockstorage_volume_attach_v3": { "current": "openstack:blockstorage/volumeAttach:VolumeAttach", - "majorVersion": 3, + "majorVersion": 4, "fields": { "wwpn": { "maxItemsOne": false @@ -37,15 +37,15 @@ }, "openstack_blockstorage_volume_type_access_v3": { "current": "openstack:blockstorage/volumeTypeAccessV3:VolumeTypeAccessV3", - "majorVersion": 3 + "majorVersion": 4 }, "openstack_blockstorage_volume_type_v3": { "current": "openstack:blockstorage/volumeTypeV3:VolumeTypeV3", - "majorVersion": 3 + "majorVersion": 4 }, "openstack_blockstorage_volume_v1": { "current": "openstack:blockstorage/volumeV1:VolumeV1", - "majorVersion": 3, + "majorVersion": 4, "fields": { "attachment": { "maxItemsOne": false @@ -54,7 +54,7 @@ }, "openstack_blockstorage_volume_v2": { "current": "openstack:blockstorage/volumeV2:VolumeV2", - "majorVersion": 3, + "majorVersion": 4, "fields": { "attachment": { "maxItemsOne": false @@ -76,7 +76,7 @@ }, "openstack_blockstorage_volume_v3": { "current": "openstack:blockstorage/volume:Volume", - "majorVersion": 3, + "majorVersion": 4, "fields": { "attachment": { "maxItemsOne": false @@ -98,7 +98,7 @@ }, "openstack_compute_aggregate_v2": { "current": "openstack:compute/aggregateV2:AggregateV2", - "majorVersion": 3, + "majorVersion": 4, "fields": { "hosts": { "maxItemsOne": false @@ -107,23 +107,23 @@ }, "openstack_compute_flavor_access_v2": { "current": "openstack:compute/flavorAccess:FlavorAccess", - "majorVersion": 3 + "majorVersion": 4 }, "openstack_compute_flavor_v2": { "current": "openstack:compute/flavor:Flavor", - "majorVersion": 3 + "majorVersion": 4 }, "openstack_compute_floatingip_associate_v2": { "current": "openstack:compute/floatingIpAssociate:FloatingIpAssociate", - "majorVersion": 3 + "majorVersion": 4 }, "openstack_compute_floatingip_v2": { "current": "openstack:compute/floatingIp:FloatingIp", - "majorVersion": 3 + "majorVersion": 4 }, "openstack_compute_instance_v2": { "current": "openstack:compute/instance:Instance", - "majorVersion": 3, + "majorVersion": 4, "fields": { "all_tags": { "maxItemsOne": false @@ -164,27 +164,24 @@ }, "vendor_options": { "maxItemsOne": true - }, - "volume": { - "maxItemsOne": false } } }, "openstack_compute_interface_attach_v2": { "current": "openstack:compute/interfaceAttach:InterfaceAttach", - "majorVersion": 3 + "majorVersion": 4 }, "openstack_compute_keypair_v2": { "current": "openstack:compute/keypair:Keypair", - "majorVersion": 3 + "majorVersion": 4 }, "openstack_compute_quotaset_v2": { "current": "openstack:compute/quotaSetV2:QuotaSetV2", - "majorVersion": 3 + "majorVersion": 4 }, "openstack_compute_secgroup_v2": { "current": "openstack:compute/secGroup:SecGroup", - "majorVersion": 3, + "majorVersion": 4, "fields": { "rule": { "maxItemsOne": false @@ -193,7 +190,7 @@ }, "openstack_compute_servergroup_v2": { "current": "openstack:compute/serverGroup:ServerGroup", - "majorVersion": 3, + "majorVersion": 4, "fields": { "members": { "maxItemsOne": false @@ -208,7 +205,7 @@ }, "openstack_compute_volume_attach_v2": { "current": "openstack:compute/volumeAttach:VolumeAttach", - "majorVersion": 3, + "majorVersion": 4, "fields": { "vendor_options": { "maxItemsOne": true @@ -217,7 +214,7 @@ }, "openstack_containerinfra_cluster_v1": { "current": "openstack:containerinfra/cluster:Cluster", - "majorVersion": 3, + "majorVersion": 4, "fields": { "master_addresses": { "maxItemsOne": false @@ -229,15 +226,15 @@ }, "openstack_containerinfra_clustertemplate_v1": { "current": "openstack:containerinfra/clusterTemplate:ClusterTemplate", - "majorVersion": 3 + "majorVersion": 4 }, "openstack_containerinfra_nodegroup_v1": { "current": "openstack:containerinfra/nodeGroup:NodeGroup", - "majorVersion": 3 + "majorVersion": 4 }, "openstack_db_configuration_v1": { "current": "openstack:database/configuration:Configuration", - "majorVersion": 3, + "majorVersion": 4, "fields": { "configuration": { "maxItemsOne": false @@ -249,11 +246,11 @@ }, "openstack_db_database_v1": { "current": "openstack:database/database:Database", - "majorVersion": 3 + "majorVersion": 4 }, "openstack_db_instance_v1": { "current": "openstack:database/instance:Instance", - "majorVersion": 3, + "majorVersion": 4, "fields": { "addresses": { "maxItemsOne": false @@ -281,7 +278,7 @@ }, "openstack_db_user_v1": { "current": "openstack:database/user:User", - "majorVersion": 3, + "majorVersion": 4, "fields": { "databases": { "maxItemsOne": false @@ -290,7 +287,7 @@ }, "openstack_dns_recordset_v2": { "current": "openstack:dns/recordSet:RecordSet", - "majorVersion": 3, + "majorVersion": 4, "fields": { "records": { "maxItemsOne": false @@ -299,15 +296,15 @@ }, "openstack_dns_transfer_accept_v2": { "current": "openstack:dns/transferAccept:TransferAccept", - "majorVersion": 3 + "majorVersion": 4 }, "openstack_dns_transfer_request_v2": { "current": "openstack:dns/transferRequest:TransferRequest", - "majorVersion": 3 + "majorVersion": 4 }, "openstack_dns_zone_v2": { "current": "openstack:dns/zone:Zone", - "majorVersion": 3, + "majorVersion": 4, "fields": { "masters": { "maxItemsOne": false @@ -316,7 +313,7 @@ }, "openstack_fw_firewall_v1": { "current": "openstack:firewall/firewall:Firewall", - "majorVersion": 3, + "majorVersion": 4, "fields": { "associated_routers": { "maxItemsOne": false @@ -325,7 +322,7 @@ }, "openstack_fw_group_v2": { "current": "openstack:firewall/groupV2:GroupV2", - "majorVersion": 3, + "majorVersion": 4, "fields": { "ports": { "maxItemsOne": false @@ -334,7 +331,7 @@ }, "openstack_fw_policy_v1": { "current": "openstack:firewall/policy:Policy", - "majorVersion": 3, + "majorVersion": 4, "fields": { "rules": { "maxItemsOne": false @@ -343,7 +340,7 @@ }, "openstack_fw_policy_v2": { "current": "openstack:firewall/policyV2:PolicyV2", - "majorVersion": 3, + "majorVersion": 4, "fields": { "rules": { "maxItemsOne": false @@ -352,15 +349,15 @@ }, "openstack_fw_rule_v1": { "current": "openstack:firewall/rule:Rule", - "majorVersion": 3 + "majorVersion": 4 }, "openstack_fw_rule_v2": { "current": "openstack:firewall/ruleV2:RuleV2", - "majorVersion": 3 + "majorVersion": 4 }, "openstack_identity_application_credential_v3": { "current": "openstack:identity/applicationCredential:ApplicationCredential", - "majorVersion": 3, + "majorVersion": 4, "fields": { "access_rules": { "maxItemsOne": false @@ -372,23 +369,23 @@ }, "openstack_identity_ec2_credential_v3": { "current": "openstack:identity/ec2CredentialV3:Ec2CredentialV3", - "majorVersion": 3 + "majorVersion": 4 }, "openstack_identity_endpoint_v3": { "current": "openstack:identity/endpointV3:EndpointV3", - "majorVersion": 3 + "majorVersion": 4 }, "openstack_identity_group_v3": { "current": "openstack:identity/groupV3:GroupV3", - "majorVersion": 3 + "majorVersion": 4 }, "openstack_identity_inherit_role_assignment_v3": { "current": "openstack:identity/inheritRoleAssignment:InheritRoleAssignment", - "majorVersion": 3 + "majorVersion": 4 }, "openstack_identity_project_v3": { "current": "openstack:identity/project:Project", - "majorVersion": 3, + "majorVersion": 4, "fields": { "tags": { "maxItemsOne": false @@ -397,23 +394,23 @@ }, "openstack_identity_role_assignment_v3": { "current": "openstack:identity/roleAssignment:RoleAssignment", - "majorVersion": 3 + "majorVersion": 4 }, "openstack_identity_role_v3": { "current": "openstack:identity/role:Role", - "majorVersion": 3 + "majorVersion": 4 }, "openstack_identity_service_v3": { "current": "openstack:identity/serviceV3:ServiceV3", - "majorVersion": 3 + "majorVersion": 4 }, "openstack_identity_user_membership_v3": { "current": "openstack:identity/userMembershipV3:UserMembershipV3", - "majorVersion": 3 + "majorVersion": 4 }, "openstack_identity_user_v3": { "current": "openstack:identity/user:User", - "majorVersion": 3, + "majorVersion": 4, "fields": { "multi_factor_auth_rule": { "maxItemsOne": false, @@ -429,15 +426,15 @@ }, "openstack_images_image_access_accept_v2": { "current": "openstack:images/imageAccessAccept:ImageAccessAccept", - "majorVersion": 3 + "majorVersion": 4 }, "openstack_images_image_access_v2": { "current": "openstack:images/imageAccess:ImageAccess", - "majorVersion": 3 + "majorVersion": 4 }, "openstack_images_image_v2": { "current": "openstack:images/image:Image", - "majorVersion": 3, + "majorVersion": 4, "fields": { "tags": { "maxItemsOne": false @@ -446,7 +443,7 @@ }, "openstack_keymanager_container_v1": { "current": "openstack:keymanager/containerV1:ContainerV1", - "majorVersion": 3, + "majorVersion": 4, "fields": { "acl": { "maxItemsOne": true, @@ -475,7 +472,7 @@ }, "openstack_keymanager_order_v1": { "current": "openstack:keymanager/orderV1:OrderV1", - "majorVersion": 3, + "majorVersion": 4, "fields": { "meta": { "maxItemsOne": true @@ -484,7 +481,7 @@ }, "openstack_keymanager_secret_v1": { "current": "openstack:keymanager/secretV1:SecretV1", - "majorVersion": 3, + "majorVersion": 4, "fields": { "acl": { "maxItemsOne": true, @@ -507,15 +504,15 @@ }, "openstack_lb_l7policy_v2": { "current": "openstack:loadbalancer/l7PolicyV2:L7PolicyV2", - "majorVersion": 3 + "majorVersion": 4 }, "openstack_lb_l7rule_v2": { "current": "openstack:loadbalancer/l7RuleV2:L7RuleV2", - "majorVersion": 3 + "majorVersion": 4 }, "openstack_lb_listener_v2": { "current": "openstack:loadbalancer/listener:Listener", - "majorVersion": 3, + "majorVersion": 4, "fields": { "allowed_cidrs": { "maxItemsOne": false @@ -530,7 +527,7 @@ }, "openstack_lb_loadbalancer_v2": { "current": "openstack:loadbalancer/loadBalancer:LoadBalancer", - "majorVersion": 3, + "majorVersion": 4, "fields": { "security_group_ids": { "maxItemsOne": false @@ -542,15 +539,15 @@ }, "openstack_lb_member_v1": { "current": "openstack:loadbalancer/memberV1:MemberV1", - "majorVersion": 3 + "majorVersion": 4 }, "openstack_lb_member_v2": { "current": "openstack:loadbalancer/member:Member", - "majorVersion": 3 + "majorVersion": 4 }, "openstack_lb_members_v2": { "current": "openstack:loadbalancer/members:Members", - "majorVersion": 3, + "majorVersion": 4, "fields": { "member": { "maxItemsOne": false @@ -559,19 +556,16 @@ }, "openstack_lb_monitor_v1": { "current": "openstack:loadbalancer/monitorV1:MonitorV1", - "majorVersion": 3 + "majorVersion": 4 }, "openstack_lb_monitor_v2": { "current": "openstack:loadbalancer/monitor:Monitor", - "majorVersion": 3 + "majorVersion": 4 }, "openstack_lb_pool_v1": { "current": "openstack:loadbalancer/poolV1:PoolV1", - "majorVersion": 3, + "majorVersion": 4, "fields": { - "member": { - "maxItemsOne": false - }, "monitor_ids": { "maxItemsOne": false } @@ -579,7 +573,7 @@ }, "openstack_lb_pool_v2": { "current": "openstack:loadbalancer/pool:Pool", - "majorVersion": 3, + "majorVersion": 4, "fields": { "persistence": { "maxItemsOne": true @@ -588,23 +582,23 @@ }, "openstack_lb_quota_v2": { "current": "openstack:loadbalancer/quota:Quota", - "majorVersion": 3 + "majorVersion": 4 }, "openstack_lb_vip_v1": { "current": "openstack:loadbalancer/vip:Vip", - "majorVersion": 3 + "majorVersion": 4 }, "openstack_networking_addressscope_v2": { "current": "openstack:networking/addressScope:AddressScope", - "majorVersion": 3 + "majorVersion": 4 }, "openstack_networking_floatingip_associate_v2": { "current": "openstack:networking/floatingIpAssociate:FloatingIpAssociate", - "majorVersion": 3 + "majorVersion": 4 }, "openstack_networking_floatingip_v2": { "current": "openstack:networking/floatingIp:FloatingIp", - "majorVersion": 3, + "majorVersion": 4, "fields": { "all_tags": { "maxItemsOne": false @@ -619,7 +613,7 @@ }, "openstack_networking_network_v2": { "current": "openstack:networking/network:Network", - "majorVersion": 3, + "majorVersion": 4, "fields": { "all_tags": { "maxItemsOne": false @@ -637,7 +631,7 @@ }, "openstack_networking_port_secgroup_associate_v2": { "current": "openstack:networking/portSecGroupAssociate:PortSecGroupAssociate", - "majorVersion": 3, + "majorVersion": 4, "fields": { "all_security_group_ids": { "maxItemsOne": false @@ -649,7 +643,7 @@ }, "openstack_networking_port_v2": { "current": "openstack:networking/port:Port", - "majorVersion": 3, + "majorVersion": 4, "fields": { "all_fixed_ips": { "maxItemsOne": false @@ -685,23 +679,23 @@ }, "openstack_networking_portforwarding_v2": { "current": "openstack:networking/portForwardingV2:PortForwardingV2", - "majorVersion": 3 + "majorVersion": 4 }, "openstack_networking_qos_bandwidth_limit_rule_v2": { "current": "openstack:networking/qosBandwidthLimitRule:QosBandwidthLimitRule", - "majorVersion": 3 + "majorVersion": 4 }, "openstack_networking_qos_dscp_marking_rule_v2": { "current": "openstack:networking/qosDscpMarkingRule:QosDscpMarkingRule", - "majorVersion": 3 + "majorVersion": 4 }, "openstack_networking_qos_minimum_bandwidth_rule_v2": { "current": "openstack:networking/qosMinimumBandwidthRule:QosMinimumBandwidthRule", - "majorVersion": 3 + "majorVersion": 4 }, "openstack_networking_qos_policy_v2": { "current": "openstack:networking/qosPolicy:QosPolicy", - "majorVersion": 3, + "majorVersion": 4, "fields": { "all_tags": { "maxItemsOne": false @@ -713,23 +707,23 @@ }, "openstack_networking_quota_v2": { "current": "openstack:networking/quotaV2:QuotaV2", - "majorVersion": 3 + "majorVersion": 4 }, "openstack_networking_rbac_policy_v2": { "current": "openstack:networking/rbacPolicyV2:RbacPolicyV2", - "majorVersion": 3 + "majorVersion": 4 }, "openstack_networking_router_interface_v2": { "current": "openstack:networking/routerInterface:RouterInterface", - "majorVersion": 3 + "majorVersion": 4 }, "openstack_networking_router_route_v2": { "current": "openstack:networking/routerRoute:RouterRoute", - "majorVersion": 3 + "majorVersion": 4 }, "openstack_networking_router_v2": { "current": "openstack:networking/router:Router", - "majorVersion": 3, + "majorVersion": 4, "fields": { "all_tags": { "maxItemsOne": false @@ -753,11 +747,11 @@ }, "openstack_networking_secgroup_rule_v2": { "current": "openstack:networking/secGroupRule:SecGroupRule", - "majorVersion": 3 + "majorVersion": 4 }, "openstack_networking_secgroup_v2": { "current": "openstack:networking/secGroup:SecGroup", - "majorVersion": 3, + "majorVersion": 4, "fields": { "all_tags": { "maxItemsOne": false @@ -769,11 +763,11 @@ }, "openstack_networking_subnet_route_v2": { "current": "openstack:networking/subnetRoute:SubnetRoute", - "majorVersion": 3 + "majorVersion": 4 }, "openstack_networking_subnet_v2": { "current": "openstack:networking/subnet:Subnet", - "majorVersion": 3, + "majorVersion": 4, "fields": { "all_tags": { "maxItemsOne": false @@ -781,15 +775,9 @@ "allocation_pool": { "maxItemsOne": false }, - "allocation_pools": { - "maxItemsOne": false - }, "dns_nameservers": { "maxItemsOne": false }, - "host_routes": { - "maxItemsOne": false - }, "service_types": { "maxItemsOne": false }, @@ -800,7 +788,7 @@ }, "openstack_networking_subnetpool_v2": { "current": "openstack:networking/subnetPool:SubnetPool", - "majorVersion": 3, + "majorVersion": 4, "fields": { "all_tags": { "maxItemsOne": false @@ -815,7 +803,7 @@ }, "openstack_networking_trunk_v2": { "current": "openstack:networking/trunk:Trunk", - "majorVersion": 3, + "majorVersion": 4, "fields": { "all_tags": { "maxItemsOne": false @@ -830,7 +818,7 @@ }, "openstack_objectstorage_container_v1": { "current": "openstack:objectstorage/container:Container", - "majorVersion": 3, + "majorVersion": 4, "fields": { "versioning_legacy": { "maxItemsOne": true @@ -839,15 +827,15 @@ }, "openstack_objectstorage_object_v1": { "current": "openstack:objectstorage/containerObject:ContainerObject", - "majorVersion": 3 + "majorVersion": 4 }, "openstack_objectstorage_tempurl_v1": { "current": "openstack:objectstorage/tempUrl:TempUrl", - "majorVersion": 3 + "majorVersion": 4 }, "openstack_orchestration_stack_v1": { "current": "openstack:orchestration/stackV1:StackV1", - "majorVersion": 3, + "majorVersion": 4, "fields": { "capabilities": { "maxItemsOne": false @@ -865,15 +853,15 @@ }, "openstack_sharedfilesystem_securityservice_v2": { "current": "openstack:sharedfilesystem/securityService:SecurityService", - "majorVersion": 3 + "majorVersion": 4 }, "openstack_sharedfilesystem_share_access_v2": { "current": "openstack:sharedfilesystem/shareAccess:ShareAccess", - "majorVersion": 3 + "majorVersion": 4 }, "openstack_sharedfilesystem_share_v2": { "current": "openstack:sharedfilesystem/share:Share", - "majorVersion": 3, + "majorVersion": 4, "fields": { "export_locations": { "maxItemsOne": false @@ -882,7 +870,7 @@ }, "openstack_sharedfilesystem_sharenetwork_v2": { "current": "openstack:sharedfilesystem/shareNetwork:ShareNetwork", - "majorVersion": 3, + "majorVersion": 4, "fields": { "security_service_ids": { "maxItemsOne": false @@ -891,7 +879,7 @@ }, "openstack_vpnaas_endpoint_group_v2": { "current": "openstack:vpnaas/endpointGroup:EndpointGroup", - "majorVersion": 3, + "majorVersion": 4, "fields": { "endpoints": { "maxItemsOne": false @@ -900,7 +888,7 @@ }, "openstack_vpnaas_ike_policy_v2": { "current": "openstack:vpnaas/ikePolicy:IkePolicy", - "majorVersion": 3, + "majorVersion": 4, "fields": { "lifetime": { "maxItemsOne": false @@ -909,7 +897,7 @@ }, "openstack_vpnaas_ipsec_policy_v2": { "current": "openstack:vpnaas/ipSecPolicy:IpSecPolicy", - "majorVersion": 3, + "majorVersion": 4, "fields": { "lifetime": { "maxItemsOne": false @@ -918,11 +906,11 @@ }, "openstack_vpnaas_service_v2": { "current": "openstack:vpnaas/service:Service", - "majorVersion": 3 + "majorVersion": 4 }, "openstack_vpnaas_site_connection_v2": { "current": "openstack:vpnaas/siteConnection:SiteConnection", - "majorVersion": 3, + "majorVersion": 4, "fields": { "dpd": { "maxItemsOne": false @@ -936,7 +924,7 @@ "datasources": { "openstack_blockstorage_availability_zones_v3": { "current": "openstack:blockstorage/getAvailabilityZonesV3:getAvailabilityZonesV3", - "majorVersion": 3, + "majorVersion": 4, "fields": { "names": { "maxItemsOne": false @@ -945,23 +933,23 @@ }, "openstack_blockstorage_quotaset_v3": { "current": "openstack:blockstorage/getQuotasetV3:getQuotasetV3", - "majorVersion": 3 + "majorVersion": 4 }, "openstack_blockstorage_snapshot_v2": { "current": "openstack:blockstorage/getSnapshotV2:getSnapshotV2", - "majorVersion": 3 + "majorVersion": 4 }, "openstack_blockstorage_snapshot_v3": { "current": "openstack:blockstorage/getSnapshotV3:getSnapshotV3", - "majorVersion": 3 + "majorVersion": 4 }, "openstack_blockstorage_volume_v2": { "current": "openstack:blockstorage/getVolumeV2:getVolumeV2", - "majorVersion": 3 + "majorVersion": 4 }, "openstack_blockstorage_volume_v3": { "current": "openstack:blockstorage/getVolumeV3:getVolumeV3", - "majorVersion": 3, + "majorVersion": 4, "fields": { "attachment": { "maxItemsOne": false @@ -970,7 +958,7 @@ }, "openstack_compute_aggregate_v2": { "current": "openstack:compute/getAggregateV2:getAggregateV2", - "majorVersion": 3, + "majorVersion": 4, "fields": { "hosts": { "maxItemsOne": false @@ -979,7 +967,7 @@ }, "openstack_compute_availability_zones_v2": { "current": "openstack:compute/getAvailabilityZones:getAvailabilityZones", - "majorVersion": 3, + "majorVersion": 4, "fields": { "names": { "maxItemsOne": false @@ -988,15 +976,15 @@ }, "openstack_compute_flavor_v2": { "current": "openstack:compute/getFlavor:getFlavor", - "majorVersion": 3 + "majorVersion": 4 }, "openstack_compute_hypervisor_v2": { "current": "openstack:compute/getHypervisorV2:getHypervisorV2", - "majorVersion": 3 + "majorVersion": 4 }, "openstack_compute_instance_v2": { "current": "openstack:compute/getInstanceV2:getInstanceV2", - "majorVersion": 3, + "majorVersion": 4, "fields": { "network": { "maxItemsOne": false @@ -1011,19 +999,19 @@ }, "openstack_compute_keypair_v2": { "current": "openstack:compute/getKeypair:getKeypair", - "majorVersion": 3 + "majorVersion": 4 }, "openstack_compute_limits_v2": { "current": "openstack:compute/getLimitsV2:getLimitsV2", - "majorVersion": 3 + "majorVersion": 4 }, "openstack_compute_quotaset_v2": { "current": "openstack:compute/getQuotaSetV2:getQuotaSetV2", - "majorVersion": 3 + "majorVersion": 4 }, "openstack_containerinfra_cluster_v1": { "current": "openstack:containerinfra/getCluster:getCluster", - "majorVersion": 3, + "majorVersion": 4, "fields": { "master_addresses": { "maxItemsOne": false @@ -1035,15 +1023,15 @@ }, "openstack_containerinfra_clustertemplate_v1": { "current": "openstack:containerinfra/getClusterTemplate:getClusterTemplate", - "majorVersion": 3 + "majorVersion": 4 }, "openstack_containerinfra_nodegroup_v1": { "current": "openstack:containerinfra/getNodeGroup:getNodeGroup", - "majorVersion": 3 + "majorVersion": 4 }, "openstack_dns_zone_v2": { "current": "openstack:dns/getDnsZone:getDnsZone", - "majorVersion": 3, + "majorVersion": 4, "fields": { "masters": { "maxItemsOne": false @@ -1052,7 +1040,7 @@ }, "openstack_fw_group_v2": { "current": "openstack:index/getFwGroupV2:getFwGroupV2", - "majorVersion": 3, + "majorVersion": 4, "fields": { "ports": { "maxItemsOne": false @@ -1061,7 +1049,7 @@ }, "openstack_fw_policy_v1": { "current": "openstack:firewall/getPolicy:getPolicy", - "majorVersion": 3, + "majorVersion": 4, "fields": { "rules": { "maxItemsOne": false @@ -1070,7 +1058,7 @@ }, "openstack_fw_policy_v2": { "current": "openstack:index/getFwPolicyV2:getFwPolicyV2", - "majorVersion": 3, + "majorVersion": 4, "fields": { "rules": { "maxItemsOne": false @@ -1079,7 +1067,7 @@ }, "openstack_fw_rule_v2": { "current": "openstack:index/getFwRuleV2:getFwRuleV2", - "majorVersion": 3, + "majorVersion": 4, "fields": { "firewall_policy_id": { "maxItemsOne": false @@ -1088,7 +1076,7 @@ }, "openstack_identity_auth_scope_v3": { "current": "openstack:identity/getAuthScope:getAuthScope", - "majorVersion": 3, + "majorVersion": 4, "fields": { "roles": { "maxItemsOne": false @@ -1107,15 +1095,15 @@ }, "openstack_identity_endpoint_v3": { "current": "openstack:identity/getEndpoint:getEndpoint", - "majorVersion": 3 + "majorVersion": 4 }, "openstack_identity_group_v3": { "current": "openstack:identity/getGroup:getGroup", - "majorVersion": 3 + "majorVersion": 4 }, "openstack_identity_project_v3": { "current": "openstack:identity/getProject:getProject", - "majorVersion": 3, + "majorVersion": 4, "fields": { "tags": { "maxItemsOne": false @@ -1124,19 +1112,19 @@ }, "openstack_identity_role_v3": { "current": "openstack:identity/getRole:getRole", - "majorVersion": 3 + "majorVersion": 4 }, "openstack_identity_service_v3": { "current": "openstack:identity/getService:getService", - "majorVersion": 3 + "majorVersion": 4 }, "openstack_identity_user_v3": { "current": "openstack:identity/getUser:getUser", - "majorVersion": 3 + "majorVersion": 4 }, "openstack_images_image_ids_v2": { "current": "openstack:images/getImageIds:getImageIds", - "majorVersion": 3, + "majorVersion": 4, "fields": { "ids": { "maxItemsOne": false @@ -1148,7 +1136,7 @@ }, "openstack_images_image_v2": { "current": "openstack:images/getImage:getImage", - "majorVersion": 3, + "majorVersion": 4, "fields": { "tags": { "maxItemsOne": false @@ -1157,7 +1145,7 @@ }, "openstack_keymanager_container_v1": { "current": "openstack:keymanager/getContainer:getContainer", - "majorVersion": 3, + "majorVersion": 4, "fields": { "acl": { "maxItemsOne": false, @@ -1186,7 +1174,7 @@ }, "openstack_keymanager_secret_v1": { "current": "openstack:keymanager/getSecret:getSecret", - "majorVersion": 3, + "majorVersion": 4, "fields": { "acl": { "maxItemsOne": false, @@ -1207,13 +1195,17 @@ } } }, + "openstack_loadbalancer_flavor_v2": { + "current": "openstack:loadbalancer/getFlavorV2:getFlavorV2", + "majorVersion": 4 + }, "openstack_networking_addressscope_v2": { "current": "openstack:networking/getAddressScope:getAddressScope", - "majorVersion": 3 + "majorVersion": 4 }, "openstack_networking_floatingip_v2": { "current": "openstack:networking/getFloatingIp:getFloatingIp", - "majorVersion": 3, + "majorVersion": 4, "fields": { "all_tags": { "maxItemsOne": false @@ -1225,7 +1217,7 @@ }, "openstack_networking_network_v2": { "current": "openstack:networking/getNetwork:getNetwork", - "majorVersion": 3, + "majorVersion": 4, "fields": { "all_tags": { "maxItemsOne": false @@ -1246,7 +1238,7 @@ }, "openstack_networking_port_ids_v2": { "current": "openstack:networking/getPortIds:getPortIds", - "majorVersion": 3, + "majorVersion": 4, "fields": { "ids": { "maxItemsOne": false @@ -1261,7 +1253,7 @@ }, "openstack_networking_port_v2": { "current": "openstack:networking/getPort:getPort", - "majorVersion": 3, + "majorVersion": 4, "fields": { "all_fixed_ips": { "maxItemsOne": false @@ -1294,19 +1286,19 @@ }, "openstack_networking_qos_bandwidth_limit_rule_v2": { "current": "openstack:networking/getQosBandwidthLimitRule:getQosBandwidthLimitRule", - "majorVersion": 3 + "majorVersion": 4 }, "openstack_networking_qos_dscp_marking_rule_v2": { "current": "openstack:networking/getQosDscpMarkingRule:getQosDscpMarkingRule", - "majorVersion": 3 + "majorVersion": 4 }, "openstack_networking_qos_minimum_bandwidth_rule_v2": { "current": "openstack:networking/getQosMinimumBandwidthRule:getQosMinimumBandwidthRule", - "majorVersion": 3 + "majorVersion": 4 }, "openstack_networking_qos_policy_v2": { "current": "openstack:networking/getQosPolicy:getQosPolicy", - "majorVersion": 3, + "majorVersion": 4, "fields": { "all_tags": { "maxItemsOne": false @@ -1318,11 +1310,11 @@ }, "openstack_networking_quota_v2": { "current": "openstack:networking/getQuotaV2:getQuotaV2", - "majorVersion": 3 + "majorVersion": 4 }, "openstack_networking_router_v2": { "current": "openstack:networking/getRouter:getRouter", - "majorVersion": 3, + "majorVersion": 4, "fields": { "all_tags": { "maxItemsOne": false @@ -1340,7 +1332,7 @@ }, "openstack_networking_secgroup_v2": { "current": "openstack:networking/getSecGroup:getSecGroup", - "majorVersion": 3, + "majorVersion": 4, "fields": { "all_tags": { "maxItemsOne": false @@ -1352,7 +1344,7 @@ }, "openstack_networking_subnet_ids_v2": { "current": "openstack:networking/getSubnetIdsV2:getSubnetIdsV2", - "majorVersion": 3, + "majorVersion": 4, "fields": { "ids": { "maxItemsOne": false @@ -1364,7 +1356,7 @@ }, "openstack_networking_subnet_v2": { "current": "openstack:networking/getSubnet:getSubnet", - "majorVersion": 3, + "majorVersion": 4, "fields": { "all_tags": { "maxItemsOne": false @@ -1388,7 +1380,7 @@ }, "openstack_networking_subnetpool_v2": { "current": "openstack:networking/getSubnetPool:getSubnetPool", - "majorVersion": 3, + "majorVersion": 4, "fields": { "all_tags": { "maxItemsOne": false @@ -1403,7 +1395,7 @@ }, "openstack_networking_trunk_v2": { "current": "openstack:networking/getTrunk:getTrunk", - "majorVersion": 3, + "majorVersion": 4, "fields": { "all_tags": { "maxItemsOne": false @@ -1418,7 +1410,7 @@ }, "openstack_sharedfilesystem_availability_zones_v2": { "current": "openstack:sharedfilesystem/getAvailbilityZones:getAvailbilityZones", - "majorVersion": 3, + "majorVersion": 4, "fields": { "names": { "maxItemsOne": false @@ -1427,7 +1419,7 @@ }, "openstack_sharedfilesystem_share_v2": { "current": "openstack:sharedfilesystem/getShare:getShare", - "majorVersion": 3, + "majorVersion": 4, "fields": { "export_locations": { "maxItemsOne": false @@ -1436,7 +1428,7 @@ }, "openstack_sharedfilesystem_sharenetwork_v2": { "current": "openstack:sharedfilesystem/getShareNetwork:getShareNetwork", - "majorVersion": 3, + "majorVersion": 4, "fields": { "security_service_ids": { "maxItemsOne": false @@ -1445,7 +1437,7 @@ }, "openstack_sharedfilesystem_snapshot_v2": { "current": "openstack:sharedfilesystem/getSnapshot:getSnapshot", - "majorVersion": 3 + "majorVersion": 4 } } }, diff --git a/provider/cmd/pulumi-resource-openstack/main.go b/provider/cmd/pulumi-resource-openstack/main.go index 52136539f..5afeacdc8 100644 --- a/provider/cmd/pulumi-resource-openstack/main.go +++ b/provider/cmd/pulumi-resource-openstack/main.go @@ -21,8 +21,8 @@ import ( "github.com/pulumi/pulumi-terraform-bridge/v3/pkg/tfbridge" - openstack "github.com/pulumi/pulumi-openstack/provider/v3" - "github.com/pulumi/pulumi-openstack/provider/v3/pkg/version" + openstack "github.com/pulumi/pulumi-openstack/provider/v4" + "github.com/pulumi/pulumi-openstack/provider/v4/pkg/version" ) //go:embed schema-embed.json diff --git a/provider/cmd/pulumi-resource-openstack/schema.json b/provider/cmd/pulumi-resource-openstack/schema.json index 9b458ed57..fcf28ba6c 100644 --- a/provider/cmd/pulumi-resource-openstack/schema.json +++ b/provider/cmd/pulumi-resource-openstack/schema.json @@ -39,7 +39,7 @@ "respectSchemaVersion": true }, "go": { - "importBasePath": "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack", + "importBasePath": "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack", "generateResourceContainerTypes": true, "generateExtraInputTypes": true, "respectSchemaVersion": true @@ -221,16 +221,6 @@ "type": "string", "description": "Authentication token to use as an alternative to username/password.\n" }, - "useOctavia": { - "type": "boolean", - "description": "If set to `true`, API requests will go the Load Balancer service (Octavia) instead of the Networking service (Neutron).\n", - "defaultInfo": { - "environment": [ - "OS_USE_OCTAVIA" - ] - }, - "deprecationMessage": "Users not using loadbalancer resources can ignore this message. Support for neutron-lbaas will be removed on next major release. Octavia will be the only supported method for loadbalancer resources. Users using octavia will have to remove 'use_octavia' option from the provider configuration block. Users using neutron-lbaas will have to migrate/upgrade to octavia." - }, "userDomainId": { "type": "string", "description": "The ID of the domain where the user resides (Identity v3).\n" @@ -499,10 +489,6 @@ "type": "string", "willReplaceOnChanges": true }, - "floatingIp": { - "type": "string", - "deprecationMessage": "Use the openstack.compute.FloatingIpAssociate resource instead" - }, "mac": { "type": "string" }, @@ -528,7 +514,6 @@ "requiredOutputs": [ "fixedIpV4", "fixedIpV6", - "floatingIp", "mac", "name", "port", @@ -587,7 +572,7 @@ }, "group": { "type": "string", - "description": "A UUID of a Server Group. The instance will be placed\ninto that group.\n", + "description": "A UUID of a Server Group. The instance will be placed\ninto that group. See reference\nfor details on managing servergroup resources\n", "willReplaceOnChanges": true }, "queries": { @@ -627,32 +612,6 @@ }, "type": "object" }, - "openstack:compute/InstanceVolume:InstanceVolume": { - "properties": { - "device": { - "type": "string" - }, - "id": { - "type": "string" - }, - "volumeId": { - "type": "string" - } - }, - "type": "object", - "required": [ - "volumeId" - ], - "language": { - "nodejs": { - "requiredOutputs": [ - "device", - "id", - "volumeId" - ] - } - } - }, "openstack:compute/SecGroupRule:SecGroupRule": { "properties": { "cidr": { @@ -1568,40 +1527,6 @@ "start" ] }, - "openstack:networking/SubnetAllocationPoolsCollection:SubnetAllocationPoolsCollection": { - "properties": { - "end": { - "type": "string", - "description": "The ending address.\n" - }, - "start": { - "type": "string", - "description": "The starting address.\n" - } - }, - "type": "object", - "required": [ - "end", - "start" - ] - }, - "openstack:networking/SubnetHostRoute:SubnetHostRoute": { - "properties": { - "destinationCidr": { - "type": "string", - "description": "The destination CIDR.\n" - }, - "nextHop": { - "type": "string", - "description": "The next hop in the route.\n" - } - }, - "type": "object", - "required": [ - "destinationCidr", - "nextHop" - ] - }, "openstack:networking/TrunkSubPort:TrunkSubPort": { "properties": { "portId": { @@ -2084,11 +2009,6 @@ "type": "string", "description": "Authentication token to use as an alternative to username/password.\n" }, - "useOctavia": { - "type": "boolean", - "description": "If set to `true`, API requests will go the Load Balancer service (Octavia) instead of the Networking service (Neutron).\n", - "deprecationMessage": "Users not using loadbalancer resources can ignore this message. Support for neutron-lbaas will be removed on next major release. Octavia will be the only supported method for loadbalancer resources. Users using octavia will have to remove 'use_octavia' option from the provider configuration block. Users using neutron-lbaas will have to migrate/upgrade to octavia." - }, "userDomainId": { "type": "string", "description": "The ID of the domain where the user resides (Identity v3).\n" @@ -2257,16 +2177,6 @@ "type": "string", "description": "Authentication token to use as an alternative to username/password.\n" }, - "useOctavia": { - "type": "boolean", - "description": "If set to `true`, API requests will go the Load Balancer service (Octavia) instead of the Networking service (Neutron).\n", - "defaultInfo": { - "environment": [ - "OS_USE_OCTAVIA" - ] - }, - "deprecationMessage": "Users not using loadbalancer resources can ignore this message. Support for neutron-lbaas will be removed on next major release. Octavia will be the only supported method for loadbalancer resources. Users using octavia will have to remove 'use_octavia' option from the provider configuration block. Users using neutron-lbaas will have to migrate/upgrade to octavia." - }, "userDomainId": { "type": "string", "description": "The ID of the domain where the user resides (Identity v3).\n" @@ -2287,7 +2197,7 @@ }, "resources": { "openstack:blockstorage/qosAssociationV3:QosAssociationV3": { - "description": "Manages a V3 block storage Qos Association resource within OpenStack.\n\n\u003e **Note:** This usually requires admin privileges.\n\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst qos = new openstack.blockstorage.QosV3(\"qos\", {\n name: \"%s\",\n consumer: \"front-end\",\n specs: {\n read_iops_sec: \"20000\",\n },\n});\nconst volumeType = new openstack.blockstorage.VolumeTypeV3(\"volume_type\", {name: \"%s\"});\nconst qosAssociation = new openstack.blockstorage.QosAssociationV3(\"qos_association\", {\n qosId: qos.id,\n volumeTypeId: volumeType.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nqos = openstack.blockstorage.QosV3(\"qos\",\n name=\"%s\",\n consumer=\"front-end\",\n specs={\n \"read_iops_sec\": \"20000\",\n })\nvolume_type = openstack.blockstorage.VolumeTypeV3(\"volume_type\", name=\"%s\")\nqos_association = openstack.blockstorage.QosAssociationV3(\"qos_association\",\n qos_id=qos.id,\n volume_type_id=volume_type.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var qos = new OpenStack.BlockStorage.QosV3(\"qos\", new()\n {\n Name = \"%s\",\n Consumer = \"front-end\",\n Specs = \n {\n { \"read_iops_sec\", \"20000\" },\n },\n });\n\n var volumeType = new OpenStack.BlockStorage.VolumeTypeV3(\"volume_type\", new()\n {\n Name = \"%s\",\n });\n\n var qosAssociation = new OpenStack.BlockStorage.QosAssociationV3(\"qos_association\", new()\n {\n QosId = qos.Id,\n VolumeTypeId = volumeType.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/blockstorage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tqos, err := blockstorage.NewQosV3(ctx, \"qos\", \u0026blockstorage.QosV3Args{\n\t\t\tName: pulumi.String(\"%s\"),\n\t\t\tConsumer: pulumi.String(\"front-end\"),\n\t\t\tSpecs: pulumi.Map{\n\t\t\t\t\"read_iops_sec\": pulumi.Any(\"20000\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvolumeType, err := blockstorage.NewVolumeTypeV3(ctx, \"volume_type\", \u0026blockstorage.VolumeTypeV3Args{\n\t\t\tName: pulumi.String(\"%s\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = blockstorage.NewQosAssociationV3(ctx, \"qos_association\", \u0026blockstorage.QosAssociationV3Args{\n\t\t\tQosId: qos.ID(),\n\t\t\tVolumeTypeId: volumeType.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.blockstorage.QosV3;\nimport com.pulumi.openstack.blockstorage.QosV3Args;\nimport com.pulumi.openstack.blockstorage.VolumeTypeV3;\nimport com.pulumi.openstack.blockstorage.VolumeTypeV3Args;\nimport com.pulumi.openstack.blockstorage.QosAssociationV3;\nimport com.pulumi.openstack.blockstorage.QosAssociationV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var qos = new QosV3(\"qos\", QosV3Args.builder() \n .name(\"%s\")\n .consumer(\"front-end\")\n .specs(Map.of(\"read_iops_sec\", \"20000\"))\n .build());\n\n var volumeType = new VolumeTypeV3(\"volumeType\", VolumeTypeV3Args.builder() \n .name(\"%s\")\n .build());\n\n var qosAssociation = new QosAssociationV3(\"qosAssociation\", QosAssociationV3Args.builder() \n .qosId(qos.id())\n .volumeTypeId(volumeType.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n qos:\n type: openstack:blockstorage:QosV3\n properties:\n name: '%s'\n consumer: front-end\n specs:\n read_iops_sec: '20000'\n volumeType:\n type: openstack:blockstorage:VolumeTypeV3\n name: volume_type\n properties:\n name: '%s'\n qosAssociation:\n type: openstack:blockstorage:QosAssociationV3\n name: qos_association\n properties:\n qosId: ${qos.id}\n volumeTypeId: ${volumeType.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nQos association can be imported using the `qos_id/volume_type_id`, e.g.\n\n```sh\n$ pulumi import openstack:blockstorage/qosAssociationV3:QosAssociationV3 qos_association 941793f0-0a34-4bc4-b72e-a6326ae58283/ea257959-eeb1-4c10-8d33-26f0409a755d\n```\n", + "description": "Manages a V3 block storage Qos Association resource within OpenStack.\n\n\u003e **Note:** This usually requires admin privileges.\n\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst qos = new openstack.blockstorage.QosV3(\"qos\", {\n name: \"%s\",\n consumer: \"front-end\",\n specs: {\n read_iops_sec: \"20000\",\n },\n});\nconst volumeType = new openstack.blockstorage.VolumeTypeV3(\"volume_type\", {name: \"%s\"});\nconst qosAssociation = new openstack.blockstorage.QosAssociationV3(\"qos_association\", {\n qosId: qos.id,\n volumeTypeId: volumeType.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nqos = openstack.blockstorage.QosV3(\"qos\",\n name=\"%s\",\n consumer=\"front-end\",\n specs={\n \"read_iops_sec\": \"20000\",\n })\nvolume_type = openstack.blockstorage.VolumeTypeV3(\"volume_type\", name=\"%s\")\nqos_association = openstack.blockstorage.QosAssociationV3(\"qos_association\",\n qos_id=qos.id,\n volume_type_id=volume_type.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var qos = new OpenStack.BlockStorage.QosV3(\"qos\", new()\n {\n Name = \"%s\",\n Consumer = \"front-end\",\n Specs = \n {\n { \"read_iops_sec\", \"20000\" },\n },\n });\n\n var volumeType = new OpenStack.BlockStorage.VolumeTypeV3(\"volume_type\", new()\n {\n Name = \"%s\",\n });\n\n var qosAssociation = new OpenStack.BlockStorage.QosAssociationV3(\"qos_association\", new()\n {\n QosId = qos.Id,\n VolumeTypeId = volumeType.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/blockstorage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tqos, err := blockstorage.NewQosV3(ctx, \"qos\", \u0026blockstorage.QosV3Args{\n\t\t\tName: pulumi.String(\"%s\"),\n\t\t\tConsumer: pulumi.String(\"front-end\"),\n\t\t\tSpecs: pulumi.Map{\n\t\t\t\t\"read_iops_sec\": pulumi.Any(\"20000\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvolumeType, err := blockstorage.NewVolumeTypeV3(ctx, \"volume_type\", \u0026blockstorage.VolumeTypeV3Args{\n\t\t\tName: pulumi.String(\"%s\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = blockstorage.NewQosAssociationV3(ctx, \"qos_association\", \u0026blockstorage.QosAssociationV3Args{\n\t\t\tQosId: qos.ID(),\n\t\t\tVolumeTypeId: volumeType.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.blockstorage.QosV3;\nimport com.pulumi.openstack.blockstorage.QosV3Args;\nimport com.pulumi.openstack.blockstorage.VolumeTypeV3;\nimport com.pulumi.openstack.blockstorage.VolumeTypeV3Args;\nimport com.pulumi.openstack.blockstorage.QosAssociationV3;\nimport com.pulumi.openstack.blockstorage.QosAssociationV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var qos = new QosV3(\"qos\", QosV3Args.builder() \n .name(\"%s\")\n .consumer(\"front-end\")\n .specs(Map.of(\"read_iops_sec\", \"20000\"))\n .build());\n\n var volumeType = new VolumeTypeV3(\"volumeType\", VolumeTypeV3Args.builder() \n .name(\"%s\")\n .build());\n\n var qosAssociation = new QosAssociationV3(\"qosAssociation\", QosAssociationV3Args.builder() \n .qosId(qos.id())\n .volumeTypeId(volumeType.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n qos:\n type: openstack:blockstorage:QosV3\n properties:\n name: '%s'\n consumer: front-end\n specs:\n read_iops_sec: '20000'\n volumeType:\n type: openstack:blockstorage:VolumeTypeV3\n name: volume_type\n properties:\n name: '%s'\n qosAssociation:\n type: openstack:blockstorage:QosAssociationV3\n name: qos_association\n properties:\n qosId: ${qos.id}\n volumeTypeId: ${volumeType.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nQos association can be imported using the `qos_id/volume_type_id`, e.g.\n\n```sh\n$ pulumi import openstack:blockstorage/qosAssociationV3:QosAssociationV3 qos_association 941793f0-0a34-4bc4-b72e-a6326ae58283/ea257959-eeb1-4c10-8d33-26f0409a755d\n```\n", "properties": { "qosId": { "type": "string", @@ -2351,7 +2261,7 @@ } }, "openstack:blockstorage/qosV3:QosV3": { - "description": "Manages a V3 block storage Quality-Of-Servirce (qos) resource within OpenStack.\n\n\u003e **Note:** This usually requires admin privileges.\n\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst qos = new openstack.blockstorage.QosV3(\"qos\", {\n name: \"foo\",\n consumer: \"back-end\",\n specs: {\n read_iops_sec: \"40000\",\n write_iops_sec: \"40000\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nqos = openstack.blockstorage.QosV3(\"qos\",\n name=\"foo\",\n consumer=\"back-end\",\n specs={\n \"read_iops_sec\": \"40000\",\n \"write_iops_sec\": \"40000\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var qos = new OpenStack.BlockStorage.QosV3(\"qos\", new()\n {\n Name = \"foo\",\n Consumer = \"back-end\",\n Specs = \n {\n { \"read_iops_sec\", \"40000\" },\n { \"write_iops_sec\", \"40000\" },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/blockstorage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := blockstorage.NewQosV3(ctx, \"qos\", \u0026blockstorage.QosV3Args{\n\t\t\tName: pulumi.String(\"foo\"),\n\t\t\tConsumer: pulumi.String(\"back-end\"),\n\t\t\tSpecs: pulumi.Map{\n\t\t\t\t\"read_iops_sec\": pulumi.Any(\"40000\"),\n\t\t\t\t\"write_iops_sec\": pulumi.Any(\"40000\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.blockstorage.QosV3;\nimport com.pulumi.openstack.blockstorage.QosV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var qos = new QosV3(\"qos\", QosV3Args.builder() \n .name(\"foo\")\n .consumer(\"back-end\")\n .specs(Map.ofEntries(\n Map.entry(\"read_iops_sec\", \"40000\"),\n Map.entry(\"write_iops_sec\", \"40000\")\n ))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n qos:\n type: openstack:blockstorage:QosV3\n properties:\n name: foo\n consumer: back-end\n specs:\n read_iops_sec: '40000'\n write_iops_sec: '40000'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nQos can be imported using the `qos_id`, e.g.\n\n```sh\n$ pulumi import openstack:blockstorage/qosV3:QosV3 qos 941793f0-0a34-4bc4-b72e-a6326ae58283\n```\n", + "description": "Manages a V3 block storage Quality-Of-Servirce (qos) resource within OpenStack.\n\n\u003e **Note:** This usually requires admin privileges.\n\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst qos = new openstack.blockstorage.QosV3(\"qos\", {\n name: \"foo\",\n consumer: \"back-end\",\n specs: {\n read_iops_sec: \"40000\",\n write_iops_sec: \"40000\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nqos = openstack.blockstorage.QosV3(\"qos\",\n name=\"foo\",\n consumer=\"back-end\",\n specs={\n \"read_iops_sec\": \"40000\",\n \"write_iops_sec\": \"40000\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var qos = new OpenStack.BlockStorage.QosV3(\"qos\", new()\n {\n Name = \"foo\",\n Consumer = \"back-end\",\n Specs = \n {\n { \"read_iops_sec\", \"40000\" },\n { \"write_iops_sec\", \"40000\" },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/blockstorage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := blockstorage.NewQosV3(ctx, \"qos\", \u0026blockstorage.QosV3Args{\n\t\t\tName: pulumi.String(\"foo\"),\n\t\t\tConsumer: pulumi.String(\"back-end\"),\n\t\t\tSpecs: pulumi.Map{\n\t\t\t\t\"read_iops_sec\": pulumi.Any(\"40000\"),\n\t\t\t\t\"write_iops_sec\": pulumi.Any(\"40000\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.blockstorage.QosV3;\nimport com.pulumi.openstack.blockstorage.QosV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var qos = new QosV3(\"qos\", QosV3Args.builder() \n .name(\"foo\")\n .consumer(\"back-end\")\n .specs(Map.ofEntries(\n Map.entry(\"read_iops_sec\", \"40000\"),\n Map.entry(\"write_iops_sec\", \"40000\")\n ))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n qos:\n type: openstack:blockstorage:QosV3\n properties:\n name: foo\n consumer: back-end\n specs:\n read_iops_sec: '40000'\n write_iops_sec: '40000'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nQos can be imported using the `qos_id`, e.g.\n\n```sh\n$ pulumi import openstack:blockstorage/qosV3:QosV3 qos 941793f0-0a34-4bc4-b72e-a6326ae58283\n```\n", "properties": { "consumer": { "type": "string", @@ -2749,7 +2659,7 @@ } }, "openstack:blockstorage/volume:Volume": { - "description": "Manages a V3 volume resource within OpenStack.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst volume1 = new openstack.blockstorage.Volume(\"volume_1\", {\n region: \"RegionOne\",\n name: \"volume_1\",\n description: \"first test volume\",\n size: 3,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nvolume1 = openstack.blockstorage.Volume(\"volume_1\",\n region=\"RegionOne\",\n name=\"volume_1\",\n description=\"first test volume\",\n size=3)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var volume1 = new OpenStack.BlockStorage.Volume(\"volume_1\", new()\n {\n Region = \"RegionOne\",\n Name = \"volume_1\",\n Description = \"first test volume\",\n Size = 3,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/blockstorage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := blockstorage.NewVolume(ctx, \"volume_1\", \u0026blockstorage.VolumeArgs{\n\t\t\tRegion: pulumi.String(\"RegionOne\"),\n\t\t\tName: pulumi.String(\"volume_1\"),\n\t\t\tDescription: pulumi.String(\"first test volume\"),\n\t\t\tSize: pulumi.Int(3),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.blockstorage.Volume;\nimport com.pulumi.openstack.blockstorage.VolumeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var volume1 = new Volume(\"volume1\", VolumeArgs.builder() \n .region(\"RegionOne\")\n .name(\"volume_1\")\n .description(\"first test volume\")\n .size(3)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n volume1:\n type: openstack:blockstorage:Volume\n name: volume_1\n properties:\n region: RegionOne\n name: volume_1\n description: first test volume\n size: 3\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nVolumes can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import openstack:blockstorage/volume:Volume volume_1 ea257959-eeb1-4c10-8d33-26f0409a755d\n```\n", + "description": "Manages a V3 volume resource within OpenStack.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst volume1 = new openstack.blockstorage.Volume(\"volume_1\", {\n region: \"RegionOne\",\n name: \"volume_1\",\n description: \"first test volume\",\n size: 3,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nvolume1 = openstack.blockstorage.Volume(\"volume_1\",\n region=\"RegionOne\",\n name=\"volume_1\",\n description=\"first test volume\",\n size=3)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var volume1 = new OpenStack.BlockStorage.Volume(\"volume_1\", new()\n {\n Region = \"RegionOne\",\n Name = \"volume_1\",\n Description = \"first test volume\",\n Size = 3,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/blockstorage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := blockstorage.NewVolume(ctx, \"volume_1\", \u0026blockstorage.VolumeArgs{\n\t\t\tRegion: pulumi.String(\"RegionOne\"),\n\t\t\tName: pulumi.String(\"volume_1\"),\n\t\t\tDescription: pulumi.String(\"first test volume\"),\n\t\t\tSize: pulumi.Int(3),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.blockstorage.Volume;\nimport com.pulumi.openstack.blockstorage.VolumeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var volume1 = new Volume(\"volume1\", VolumeArgs.builder() \n .region(\"RegionOne\")\n .name(\"volume_1\")\n .description(\"first test volume\")\n .size(3)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n volume1:\n type: openstack:blockstorage:Volume\n name: volume_1\n properties:\n region: RegionOne\n name: volume_1\n description: first test volume\n size: 3\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nVolumes can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import openstack:blockstorage/volume:Volume volume_1 ea257959-eeb1-4c10-8d33-26f0409a755d\n```\n", "properties": { "attachments": { "type": "array", @@ -2789,11 +2699,6 @@ }, "description": "Metadata key/value pairs to associate with the volume.\nChanging this updates the existing volume metadata.\n" }, - "multiattach": { - "type": "boolean", - "description": "(Optional) Allow the volume to be attached to more than one Compute instance.\n", - "deprecationMessage": "multiattach parameter has been deprecated and removed on Openstack Bobcat. The default behavior is to use multiattach enabled volume types" - }, "name": { "type": "string", "description": "A unique name for the volume. Changing this updates the\nvolume's name.\n" @@ -2875,11 +2780,6 @@ }, "description": "Metadata key/value pairs to associate with the volume.\nChanging this updates the existing volume metadata.\n" }, - "multiattach": { - "type": "boolean", - "description": "(Optional) Allow the volume to be attached to more than one Compute instance.\n", - "deprecationMessage": "multiattach parameter has been deprecated and removed on Openstack Bobcat. The default behavior is to use multiattach enabled volume types" - }, "name": { "type": "string", "description": "A unique name for the volume. Changing this updates the\nvolume's name.\n" @@ -2969,11 +2869,6 @@ }, "description": "Metadata key/value pairs to associate with the volume.\nChanging this updates the existing volume metadata.\n" }, - "multiattach": { - "type": "boolean", - "description": "(Optional) Allow the volume to be attached to more than one Compute instance.\n", - "deprecationMessage": "multiattach parameter has been deprecated and removed on Openstack Bobcat. The default behavior is to use multiattach enabled volume types" - }, "name": { "type": "string", "description": "A unique name for the volume. Changing this updates the\nvolume's name.\n" @@ -3019,7 +2914,7 @@ } }, "openstack:blockstorage/volumeAttach:VolumeAttach": { - "description": "\u003e **Note:** This resource usually requires admin privileges.\n\n\u003e **Note:** This resource does not actually attach a volume to an instance.\nPlease use the `openstack.compute.VolumeAttach` resource for that.\n\n\u003e **Note:** All arguments including the `data` computed attribute will be\nstored in the raw state as plain-text. Read more about sensitive data in\nstate.\n\nCreates a general purpose attachment connection to a Block\nStorage volume using the OpenStack Block Storage (Cinder) v3 API.\n\nDepending on your Block Storage service configuration, this\nresource can assist in attaching a volume to a non-OpenStack resource\nsuch as a bare-metal server or a remote virtual machine in a\ndifferent cloud provider.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst volume1 = new openstack.blockstorage.Volume(\"volume_1\", {\n name: \"volume_1\",\n size: 1,\n});\nconst va1 = new openstack.blockstorage.VolumeAttach(\"va_1\", {\n volumeId: volume1.id,\n device: \"auto\",\n hostName: \"devstack\",\n ipAddress: \"192.168.255.10\",\n initiator: \"iqn.1993-08.org.debian:01:e9861fb1859\",\n osType: \"linux2\",\n platform: \"x86_64\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nvolume1 = openstack.blockstorage.Volume(\"volume_1\",\n name=\"volume_1\",\n size=1)\nva1 = openstack.blockstorage.VolumeAttach(\"va_1\",\n volume_id=volume1.id,\n device=\"auto\",\n host_name=\"devstack\",\n ip_address=\"192.168.255.10\",\n initiator=\"iqn.1993-08.org.debian:01:e9861fb1859\",\n os_type=\"linux2\",\n platform=\"x86_64\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var volume1 = new OpenStack.BlockStorage.Volume(\"volume_1\", new()\n {\n Name = \"volume_1\",\n Size = 1,\n });\n\n var va1 = new OpenStack.BlockStorage.VolumeAttach(\"va_1\", new()\n {\n VolumeId = volume1.Id,\n Device = \"auto\",\n HostName = \"devstack\",\n IpAddress = \"192.168.255.10\",\n Initiator = \"iqn.1993-08.org.debian:01:e9861fb1859\",\n OsType = \"linux2\",\n Platform = \"x86_64\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/blockstorage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tvolume1, err := blockstorage.NewVolume(ctx, \"volume_1\", \u0026blockstorage.VolumeArgs{\n\t\t\tName: pulumi.String(\"volume_1\"),\n\t\t\tSize: pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = blockstorage.NewVolumeAttach(ctx, \"va_1\", \u0026blockstorage.VolumeAttachArgs{\n\t\t\tVolumeId: volume1.ID(),\n\t\t\tDevice: pulumi.String(\"auto\"),\n\t\t\tHostName: pulumi.String(\"devstack\"),\n\t\t\tIpAddress: pulumi.String(\"192.168.255.10\"),\n\t\t\tInitiator: pulumi.String(\"iqn.1993-08.org.debian:01:e9861fb1859\"),\n\t\t\tOsType: pulumi.String(\"linux2\"),\n\t\t\tPlatform: pulumi.String(\"x86_64\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.blockstorage.Volume;\nimport com.pulumi.openstack.blockstorage.VolumeArgs;\nimport com.pulumi.openstack.blockstorage.VolumeAttach;\nimport com.pulumi.openstack.blockstorage.VolumeAttachArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var volume1 = new Volume(\"volume1\", VolumeArgs.builder() \n .name(\"volume_1\")\n .size(1)\n .build());\n\n var va1 = new VolumeAttach(\"va1\", VolumeAttachArgs.builder() \n .volumeId(volume1.id())\n .device(\"auto\")\n .hostName(\"devstack\")\n .ipAddress(\"192.168.255.10\")\n .initiator(\"iqn.1993-08.org.debian:01:e9861fb1859\")\n .osType(\"linux2\")\n .platform(\"x86_64\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n volume1:\n type: openstack:blockstorage:Volume\n name: volume_1\n properties:\n name: volume_1\n size: 1\n va1:\n type: openstack:blockstorage:VolumeAttach\n name: va_1\n properties:\n volumeId: ${volume1.id}\n device: auto\n hostName: devstack\n ipAddress: 192.168.255.10\n initiator: iqn.1993-08.org.debian:01:e9861fb1859\n osType: linux2\n platform: x86_64\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Volume Connection Data\n\nUpon creation of this resource, a `data` exported attribute will be available.\nThis attribute is a set of key/value pairs that contains the information\nrequired to complete the block storage connection.\n\nAs an example, creating an iSCSI-based volume will return the following:\n\n```\ndata.access_mode = rw\ndata.auth_method = CHAP\ndata.auth_password = xUhbGKQ8QCwKmHQ2\ndata.auth_username = Sphn5X4EoyFUUMYVYSA4\ndata.target_iqn = iqn.2010-10.org.openstack:volume-2d87ed25-c312-4f42-be1d-3b36b014561d\ndata.target_portal = 192.168.255.10:3260\ndata.volume_id = 2d87ed25-c312-4f42-be1d-3b36b014561d\n```\n\nThis information can then be fed into a provisioner or a template shell script,\nwhere the final result would look something like:\n\n```\niscsiadm -m node -T ${self.data.target_iqn} -p ${self.data.target_portal} --interface default --op new\niscsiadm -m node -T ${self.data.target_iqn} -p ${self.data.target_portal} --op update -n node.session.auth.authmethod -v ${self.data.auth_method}\niscsiadm -m node -T ${self.data.target_iqn} -p ${self.data.target_portal} --op update -n node.session.auth.username -v ${self.data.auth_username}\niscsiadm -m node -T ${self.data.target_iqn} -p ${self.data.target_portal} --op update -n node.session.auth.password -v ${self.data.auth_password}\niscsiadm -m node -T ${self.data.target_iqn} -p ${self.data.target_portal} --login\niscsiadm -m node -T ${self.data.target_iqn} -p ${self.data.target_portal} --op update -n node.startup -v automatic\niscsiadm -m node -T ${self.data.target_iqn} -p ${self.data.target_portal} --rescan\n```\n\nThe contents of `data` will vary from each Block Storage service. You must have\na good understanding of how the service is configured and how to make the\nappropriate final connection. However, if used correctly, this has the\nflexibility to be able to attach OpenStack Block Storage volumes to\nnon-OpenStack resources.\n\n## Import\n\nIt is not possible to import this resource.\n\n", + "description": "\u003e **Note:** This resource usually requires admin privileges.\n\n\u003e **Note:** This resource does not actually attach a volume to an instance.\nPlease use the `openstack.compute.VolumeAttach` resource for that.\n\n\u003e **Note:** All arguments including the `data` computed attribute will be\nstored in the raw state as plain-text. Read more about sensitive data in\nstate.\n\nCreates a general purpose attachment connection to a Block\nStorage volume using the OpenStack Block Storage (Cinder) v3 API.\n\nDepending on your Block Storage service configuration, this\nresource can assist in attaching a volume to a non-OpenStack resource\nsuch as a bare-metal server or a remote virtual machine in a\ndifferent cloud provider.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst volume1 = new openstack.blockstorage.Volume(\"volume_1\", {\n name: \"volume_1\",\n size: 1,\n});\nconst va1 = new openstack.blockstorage.VolumeAttach(\"va_1\", {\n volumeId: volume1.id,\n device: \"auto\",\n hostName: \"devstack\",\n ipAddress: \"192.168.255.10\",\n initiator: \"iqn.1993-08.org.debian:01:e9861fb1859\",\n osType: \"linux2\",\n platform: \"x86_64\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nvolume1 = openstack.blockstorage.Volume(\"volume_1\",\n name=\"volume_1\",\n size=1)\nva1 = openstack.blockstorage.VolumeAttach(\"va_1\",\n volume_id=volume1.id,\n device=\"auto\",\n host_name=\"devstack\",\n ip_address=\"192.168.255.10\",\n initiator=\"iqn.1993-08.org.debian:01:e9861fb1859\",\n os_type=\"linux2\",\n platform=\"x86_64\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var volume1 = new OpenStack.BlockStorage.Volume(\"volume_1\", new()\n {\n Name = \"volume_1\",\n Size = 1,\n });\n\n var va1 = new OpenStack.BlockStorage.VolumeAttach(\"va_1\", new()\n {\n VolumeId = volume1.Id,\n Device = \"auto\",\n HostName = \"devstack\",\n IpAddress = \"192.168.255.10\",\n Initiator = \"iqn.1993-08.org.debian:01:e9861fb1859\",\n OsType = \"linux2\",\n Platform = \"x86_64\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/blockstorage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tvolume1, err := blockstorage.NewVolume(ctx, \"volume_1\", \u0026blockstorage.VolumeArgs{\n\t\t\tName: pulumi.String(\"volume_1\"),\n\t\t\tSize: pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = blockstorage.NewVolumeAttach(ctx, \"va_1\", \u0026blockstorage.VolumeAttachArgs{\n\t\t\tVolumeId: volume1.ID(),\n\t\t\tDevice: pulumi.String(\"auto\"),\n\t\t\tHostName: pulumi.String(\"devstack\"),\n\t\t\tIpAddress: pulumi.String(\"192.168.255.10\"),\n\t\t\tInitiator: pulumi.String(\"iqn.1993-08.org.debian:01:e9861fb1859\"),\n\t\t\tOsType: pulumi.String(\"linux2\"),\n\t\t\tPlatform: pulumi.String(\"x86_64\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.blockstorage.Volume;\nimport com.pulumi.openstack.blockstorage.VolumeArgs;\nimport com.pulumi.openstack.blockstorage.VolumeAttach;\nimport com.pulumi.openstack.blockstorage.VolumeAttachArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var volume1 = new Volume(\"volume1\", VolumeArgs.builder() \n .name(\"volume_1\")\n .size(1)\n .build());\n\n var va1 = new VolumeAttach(\"va1\", VolumeAttachArgs.builder() \n .volumeId(volume1.id())\n .device(\"auto\")\n .hostName(\"devstack\")\n .ipAddress(\"192.168.255.10\")\n .initiator(\"iqn.1993-08.org.debian:01:e9861fb1859\")\n .osType(\"linux2\")\n .platform(\"x86_64\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n volume1:\n type: openstack:blockstorage:Volume\n name: volume_1\n properties:\n name: volume_1\n size: 1\n va1:\n type: openstack:blockstorage:VolumeAttach\n name: va_1\n properties:\n volumeId: ${volume1.id}\n device: auto\n hostName: devstack\n ipAddress: 192.168.255.10\n initiator: iqn.1993-08.org.debian:01:e9861fb1859\n osType: linux2\n platform: x86_64\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Volume Connection Data\n\nUpon creation of this resource, a `data` exported attribute will be available.\nThis attribute is a set of key/value pairs that contains the information\nrequired to complete the block storage connection.\n\nAs an example, creating an iSCSI-based volume will return the following:\n\n```\ndata.access_mode = rw\ndata.auth_method = CHAP\ndata.auth_password = xUhbGKQ8QCwKmHQ2\ndata.auth_username = Sphn5X4EoyFUUMYVYSA4\ndata.target_iqn = iqn.2010-10.org.openstack:volume-2d87ed25-c312-4f42-be1d-3b36b014561d\ndata.target_portal = 192.168.255.10:3260\ndata.volume_id = 2d87ed25-c312-4f42-be1d-3b36b014561d\n```\n\nThis information can then be fed into a provisioner or a template shell script,\nwhere the final result would look something like:\n\n```\niscsiadm -m node -T ${self.data.target_iqn} -p ${self.data.target_portal} --interface default --op new\niscsiadm -m node -T ${self.data.target_iqn} -p ${self.data.target_portal} --op update -n node.session.auth.authmethod -v ${self.data.auth_method}\niscsiadm -m node -T ${self.data.target_iqn} -p ${self.data.target_portal} --op update -n node.session.auth.username -v ${self.data.auth_username}\niscsiadm -m node -T ${self.data.target_iqn} -p ${self.data.target_portal} --op update -n node.session.auth.password -v ${self.data.auth_password}\niscsiadm -m node -T ${self.data.target_iqn} -p ${self.data.target_portal} --login\niscsiadm -m node -T ${self.data.target_iqn} -p ${self.data.target_portal} --op update -n node.startup -v automatic\niscsiadm -m node -T ${self.data.target_iqn} -p ${self.data.target_portal} --rescan\n```\n\nThe contents of `data` will vary from each Block Storage service. You must have\na good understanding of how the service is configured and how to make the\nappropriate final connection. However, if used correctly, this has the\nflexibility to be able to attach OpenStack Block Storage volumes to\nnon-OpenStack resources.\n\n## Import\n\nIt is not possible to import this resource.\n\n", "properties": { "attachMode": { "type": "string", @@ -3253,7 +3148,7 @@ } }, "openstack:blockstorage/volumeAttachV2:VolumeAttachV2": { - "description": "\u003e **Note:** This resource usually requires admin privileges.\n\n\u003e **Note:** This resource does not actually attach a volume to an instance.\nPlease use the `openstack.compute.VolumeAttach` resource for that.\n\n\u003e **Note:** All arguments including the `data` computed attribute will be\nstored in the raw state as plain-text. Read more about sensitive data in\nstate.\n\nCreates a general purpose attachment connection to a Block\nStorage volume using the OpenStack Block Storage (Cinder) v2 API.\n\nDepending on your Block Storage service configuration, this\nresource can assist in attaching a volume to a non-OpenStack resource\nsuch as a bare-metal server or a remote virtual machine in a\ndifferent cloud provider.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst volume1 = new openstack.blockstorage.VolumeV2(\"volume_1\", {\n name: \"volume_1\",\n size: 1,\n});\nconst va1 = new openstack.blockstorage.VolumeAttachV2(\"va_1\", {\n volumeId: volume1.id,\n device: \"auto\",\n hostName: \"devstack\",\n ipAddress: \"192.168.255.10\",\n initiator: \"iqn.1993-08.org.debian:01:e9861fb1859\",\n osType: \"linux2\",\n platform: \"x86_64\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nvolume1 = openstack.blockstorage.VolumeV2(\"volume_1\",\n name=\"volume_1\",\n size=1)\nva1 = openstack.blockstorage.VolumeAttachV2(\"va_1\",\n volume_id=volume1.id,\n device=\"auto\",\n host_name=\"devstack\",\n ip_address=\"192.168.255.10\",\n initiator=\"iqn.1993-08.org.debian:01:e9861fb1859\",\n os_type=\"linux2\",\n platform=\"x86_64\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var volume1 = new OpenStack.BlockStorage.VolumeV2(\"volume_1\", new()\n {\n Name = \"volume_1\",\n Size = 1,\n });\n\n var va1 = new OpenStack.BlockStorage.VolumeAttachV2(\"va_1\", new()\n {\n VolumeId = volume1.Id,\n Device = \"auto\",\n HostName = \"devstack\",\n IpAddress = \"192.168.255.10\",\n Initiator = \"iqn.1993-08.org.debian:01:e9861fb1859\",\n OsType = \"linux2\",\n Platform = \"x86_64\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/blockstorage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tvolume1, err := blockstorage.NewVolumeV2(ctx, \"volume_1\", \u0026blockstorage.VolumeV2Args{\n\t\t\tName: pulumi.String(\"volume_1\"),\n\t\t\tSize: pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = blockstorage.NewVolumeAttachV2(ctx, \"va_1\", \u0026blockstorage.VolumeAttachV2Args{\n\t\t\tVolumeId: volume1.ID(),\n\t\t\tDevice: pulumi.String(\"auto\"),\n\t\t\tHostName: pulumi.String(\"devstack\"),\n\t\t\tIpAddress: pulumi.String(\"192.168.255.10\"),\n\t\t\tInitiator: pulumi.String(\"iqn.1993-08.org.debian:01:e9861fb1859\"),\n\t\t\tOsType: pulumi.String(\"linux2\"),\n\t\t\tPlatform: pulumi.String(\"x86_64\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.blockstorage.VolumeV2;\nimport com.pulumi.openstack.blockstorage.VolumeV2Args;\nimport com.pulumi.openstack.blockstorage.VolumeAttachV2;\nimport com.pulumi.openstack.blockstorage.VolumeAttachV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var volume1 = new VolumeV2(\"volume1\", VolumeV2Args.builder() \n .name(\"volume_1\")\n .size(1)\n .build());\n\n var va1 = new VolumeAttachV2(\"va1\", VolumeAttachV2Args.builder() \n .volumeId(volume1.id())\n .device(\"auto\")\n .hostName(\"devstack\")\n .ipAddress(\"192.168.255.10\")\n .initiator(\"iqn.1993-08.org.debian:01:e9861fb1859\")\n .osType(\"linux2\")\n .platform(\"x86_64\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n volume1:\n type: openstack:blockstorage:VolumeV2\n name: volume_1\n properties:\n name: volume_1\n size: 1\n va1:\n type: openstack:blockstorage:VolumeAttachV2\n name: va_1\n properties:\n volumeId: ${volume1.id}\n device: auto\n hostName: devstack\n ipAddress: 192.168.255.10\n initiator: iqn.1993-08.org.debian:01:e9861fb1859\n osType: linux2\n platform: x86_64\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Volume Connection Data\n\nUpon creation of this resource, a `data` exported attribute will be available.\nThis attribute is a set of key/value pairs that contains the information\nrequired to complete the block storage connection.\n\nAs an example, creating an iSCSI-based volume will return the following:\n\n```\ndata.access_mode = rw\ndata.auth_method = CHAP\ndata.auth_password = xUhbGKQ8QCwKmHQ2\ndata.auth_username = Sphn5X4EoyFUUMYVYSA4\ndata.target_iqn = iqn.2010-10.org.openstack:volume-2d87ed25-c312-4f42-be1d-3b36b014561d\ndata.target_portal = 192.168.255.10:3260\ndata.volume_id = 2d87ed25-c312-4f42-be1d-3b36b014561d\n```\n\nThis information can then be fed into a provisioner or a template shell script,\nwhere the final result would look something like:\n\n```\niscsiadm -m node -T ${self.data.target_iqn} -p ${self.data.target_portal} --interface default --op new\niscsiadm -m node -T ${self.data.target_iqn} -p ${self.data.target_portal} --op update -n node.session.auth.authmethod -v ${self.data.auth_method}\niscsiadm -m node -T ${self.data.target_iqn} -p ${self.data.target_portal} --op update -n node.session.auth.username -v ${self.data.auth_username}\niscsiadm -m node -T ${self.data.target_iqn} -p ${self.data.target_portal} --op update -n node.session.auth.password -v ${self.data.auth_password}\niscsiadm -m node -T ${self.data.target_iqn} -p ${self.data.target_portal} --login\niscsiadm -m node -T ${self.data.target_iqn} -p ${self.data.target_portal} --op update -n node.startup -v automatic\niscsiadm -m node -T ${self.data.target_iqn} -p ${self.data.target_portal} --rescan\n```\n\nThe contents of `data` will vary from each Block Storage service. You must have\na good understanding of how the service is configured and how to make the\nappropriate final connection. However, if used correctly, this has the\nflexibility to be able to attach OpenStack Block Storage volumes to\nnon-OpenStack resources.\n\n## Import\n\nIt is not possible to import this resource.\n\n", + "description": "\u003e **Note:** This resource usually requires admin privileges.\n\n\u003e **Note:** This resource does not actually attach a volume to an instance.\nPlease use the `openstack.compute.VolumeAttach` resource for that.\n\n\u003e **Note:** All arguments including the `data` computed attribute will be\nstored in the raw state as plain-text. Read more about sensitive data in\nstate.\n\nCreates a general purpose attachment connection to a Block\nStorage volume using the OpenStack Block Storage (Cinder) v2 API.\n\nDepending on your Block Storage service configuration, this\nresource can assist in attaching a volume to a non-OpenStack resource\nsuch as a bare-metal server or a remote virtual machine in a\ndifferent cloud provider.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst volume1 = new openstack.blockstorage.VolumeV2(\"volume_1\", {\n name: \"volume_1\",\n size: 1,\n});\nconst va1 = new openstack.blockstorage.VolumeAttachV2(\"va_1\", {\n volumeId: volume1.id,\n device: \"auto\",\n hostName: \"devstack\",\n ipAddress: \"192.168.255.10\",\n initiator: \"iqn.1993-08.org.debian:01:e9861fb1859\",\n osType: \"linux2\",\n platform: \"x86_64\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nvolume1 = openstack.blockstorage.VolumeV2(\"volume_1\",\n name=\"volume_1\",\n size=1)\nva1 = openstack.blockstorage.VolumeAttachV2(\"va_1\",\n volume_id=volume1.id,\n device=\"auto\",\n host_name=\"devstack\",\n ip_address=\"192.168.255.10\",\n initiator=\"iqn.1993-08.org.debian:01:e9861fb1859\",\n os_type=\"linux2\",\n platform=\"x86_64\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var volume1 = new OpenStack.BlockStorage.VolumeV2(\"volume_1\", new()\n {\n Name = \"volume_1\",\n Size = 1,\n });\n\n var va1 = new OpenStack.BlockStorage.VolumeAttachV2(\"va_1\", new()\n {\n VolumeId = volume1.Id,\n Device = \"auto\",\n HostName = \"devstack\",\n IpAddress = \"192.168.255.10\",\n Initiator = \"iqn.1993-08.org.debian:01:e9861fb1859\",\n OsType = \"linux2\",\n Platform = \"x86_64\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/blockstorage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tvolume1, err := blockstorage.NewVolumeV2(ctx, \"volume_1\", \u0026blockstorage.VolumeV2Args{\n\t\t\tName: pulumi.String(\"volume_1\"),\n\t\t\tSize: pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = blockstorage.NewVolumeAttachV2(ctx, \"va_1\", \u0026blockstorage.VolumeAttachV2Args{\n\t\t\tVolumeId: volume1.ID(),\n\t\t\tDevice: pulumi.String(\"auto\"),\n\t\t\tHostName: pulumi.String(\"devstack\"),\n\t\t\tIpAddress: pulumi.String(\"192.168.255.10\"),\n\t\t\tInitiator: pulumi.String(\"iqn.1993-08.org.debian:01:e9861fb1859\"),\n\t\t\tOsType: pulumi.String(\"linux2\"),\n\t\t\tPlatform: pulumi.String(\"x86_64\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.blockstorage.VolumeV2;\nimport com.pulumi.openstack.blockstorage.VolumeV2Args;\nimport com.pulumi.openstack.blockstorage.VolumeAttachV2;\nimport com.pulumi.openstack.blockstorage.VolumeAttachV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var volume1 = new VolumeV2(\"volume1\", VolumeV2Args.builder() \n .name(\"volume_1\")\n .size(1)\n .build());\n\n var va1 = new VolumeAttachV2(\"va1\", VolumeAttachV2Args.builder() \n .volumeId(volume1.id())\n .device(\"auto\")\n .hostName(\"devstack\")\n .ipAddress(\"192.168.255.10\")\n .initiator(\"iqn.1993-08.org.debian:01:e9861fb1859\")\n .osType(\"linux2\")\n .platform(\"x86_64\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n volume1:\n type: openstack:blockstorage:VolumeV2\n name: volume_1\n properties:\n name: volume_1\n size: 1\n va1:\n type: openstack:blockstorage:VolumeAttachV2\n name: va_1\n properties:\n volumeId: ${volume1.id}\n device: auto\n hostName: devstack\n ipAddress: 192.168.255.10\n initiator: iqn.1993-08.org.debian:01:e9861fb1859\n osType: linux2\n platform: x86_64\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Volume Connection Data\n\nUpon creation of this resource, a `data` exported attribute will be available.\nThis attribute is a set of key/value pairs that contains the information\nrequired to complete the block storage connection.\n\nAs an example, creating an iSCSI-based volume will return the following:\n\n```\ndata.access_mode = rw\ndata.auth_method = CHAP\ndata.auth_password = xUhbGKQ8QCwKmHQ2\ndata.auth_username = Sphn5X4EoyFUUMYVYSA4\ndata.target_iqn = iqn.2010-10.org.openstack:volume-2d87ed25-c312-4f42-be1d-3b36b014561d\ndata.target_portal = 192.168.255.10:3260\ndata.volume_id = 2d87ed25-c312-4f42-be1d-3b36b014561d\n```\n\nThis information can then be fed into a provisioner or a template shell script,\nwhere the final result would look something like:\n\n```\niscsiadm -m node -T ${self.data.target_iqn} -p ${self.data.target_portal} --interface default --op new\niscsiadm -m node -T ${self.data.target_iqn} -p ${self.data.target_portal} --op update -n node.session.auth.authmethod -v ${self.data.auth_method}\niscsiadm -m node -T ${self.data.target_iqn} -p ${self.data.target_portal} --op update -n node.session.auth.username -v ${self.data.auth_username}\niscsiadm -m node -T ${self.data.target_iqn} -p ${self.data.target_portal} --op update -n node.session.auth.password -v ${self.data.auth_password}\niscsiadm -m node -T ${self.data.target_iqn} -p ${self.data.target_portal} --login\niscsiadm -m node -T ${self.data.target_iqn} -p ${self.data.target_portal} --op update -n node.startup -v automatic\niscsiadm -m node -T ${self.data.target_iqn} -p ${self.data.target_portal} --rescan\n```\n\nThe contents of `data` will vary from each Block Storage service. You must have\na good understanding of how the service is configured and how to make the\nappropriate final connection. However, if used correctly, this has the\nflexibility to be able to attach OpenStack Block Storage volumes to\nnon-OpenStack resources.\n\n## Import\n\nIt is not possible to import this resource.\n\n", "properties": { "attachMode": { "type": "string", @@ -3283,10 +3178,6 @@ "type": "string", "description": "The iSCSI initiator string to make the connection.\n" }, - "instanceId": { - "type": "string", - "deprecationMessage": "instance_id is no longer used in this resource" - }, "ipAddress": { "type": "string", "description": "The IP address of the `host_name` above.\n" @@ -3356,11 +3247,6 @@ "description": "The iSCSI initiator string to make the connection.\n", "willReplaceOnChanges": true }, - "instanceId": { - "type": "string", - "deprecationMessage": "instance_id is no longer used in this resource", - "willReplaceOnChanges": true - }, "ipAddress": { "type": "string", "description": "The IP address of the `host_name` above.\n", @@ -3444,11 +3330,6 @@ "description": "The iSCSI initiator string to make the connection.\n", "willReplaceOnChanges": true }, - "instanceId": { - "type": "string", - "deprecationMessage": "instance_id is no longer used in this resource", - "willReplaceOnChanges": true - }, "ipAddress": { "type": "string", "description": "The IP address of the `host_name` above.\n", @@ -3501,7 +3382,7 @@ } }, "openstack:blockstorage/volumeTypeAccessV3:VolumeTypeAccessV3": { - "description": "Manages a V3 block storage volume type access resource within OpenStack.\n\n\u003e **Note:** This usually requires admin privileges.\n\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst project1 = new openstack.identity.Project(\"project_1\", {name: \"project_1\"});\nconst volumeType1 = new openstack.blockstorage.VolumeTypeV3(\"volume_type_1\", {\n name: \"volume_type_1\",\n isPublic: false,\n});\nconst volumeTypeAccess = new openstack.blockstorage.VolumeTypeAccessV3(\"volume_type_access\", {\n projectId: project1.id,\n volumeTypeId: volumeType1.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nproject1 = openstack.identity.Project(\"project_1\", name=\"project_1\")\nvolume_type1 = openstack.blockstorage.VolumeTypeV3(\"volume_type_1\",\n name=\"volume_type_1\",\n is_public=False)\nvolume_type_access = openstack.blockstorage.VolumeTypeAccessV3(\"volume_type_access\",\n project_id=project1.id,\n volume_type_id=volume_type1.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var project1 = new OpenStack.Identity.Project(\"project_1\", new()\n {\n Name = \"project_1\",\n });\n\n var volumeType1 = new OpenStack.BlockStorage.VolumeTypeV3(\"volume_type_1\", new()\n {\n Name = \"volume_type_1\",\n IsPublic = false,\n });\n\n var volumeTypeAccess = new OpenStack.BlockStorage.VolumeTypeAccessV3(\"volume_type_access\", new()\n {\n ProjectId = project1.Id,\n VolumeTypeId = volumeType1.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/blockstorage\"\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/identity\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tproject1, err := identity.NewProject(ctx, \"project_1\", \u0026identity.ProjectArgs{\n\t\t\tName: pulumi.String(\"project_1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvolumeType1, err := blockstorage.NewVolumeTypeV3(ctx, \"volume_type_1\", \u0026blockstorage.VolumeTypeV3Args{\n\t\t\tName: pulumi.String(\"volume_type_1\"),\n\t\t\tIsPublic: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = blockstorage.NewVolumeTypeAccessV3(ctx, \"volume_type_access\", \u0026blockstorage.VolumeTypeAccessV3Args{\n\t\t\tProjectId: project1.ID(),\n\t\t\tVolumeTypeId: volumeType1.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.identity.Project;\nimport com.pulumi.openstack.identity.ProjectArgs;\nimport com.pulumi.openstack.blockstorage.VolumeTypeV3;\nimport com.pulumi.openstack.blockstorage.VolumeTypeV3Args;\nimport com.pulumi.openstack.blockstorage.VolumeTypeAccessV3;\nimport com.pulumi.openstack.blockstorage.VolumeTypeAccessV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var project1 = new Project(\"project1\", ProjectArgs.builder() \n .name(\"project_1\")\n .build());\n\n var volumeType1 = new VolumeTypeV3(\"volumeType1\", VolumeTypeV3Args.builder() \n .name(\"volume_type_1\")\n .isPublic(false)\n .build());\n\n var volumeTypeAccess = new VolumeTypeAccessV3(\"volumeTypeAccess\", VolumeTypeAccessV3Args.builder() \n .projectId(project1.id())\n .volumeTypeId(volumeType1.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n project1:\n type: openstack:identity:Project\n name: project_1\n properties:\n name: project_1\n volumeType1:\n type: openstack:blockstorage:VolumeTypeV3\n name: volume_type_1\n properties:\n name: volume_type_1\n isPublic: false\n volumeTypeAccess:\n type: openstack:blockstorage:VolumeTypeAccessV3\n name: volume_type_access\n properties:\n projectId: ${project1.id}\n volumeTypeId: ${volumeType1.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nVolume types access can be imported using the `volume_type_id/project_id`, e.g.\n\n```sh\n$ pulumi import openstack:blockstorage/volumeTypeAccessV3:VolumeTypeAccessV3 volume_type_access 941793f0-0a34-4bc4-b72e-a6326ae58283/ed498e81f0cc448bae0ad4f8f21bf67f\n```\n", + "description": "Manages a V3 block storage volume type access resource within OpenStack.\n\n\u003e **Note:** This usually requires admin privileges.\n\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst project1 = new openstack.identity.Project(\"project_1\", {name: \"project_1\"});\nconst volumeType1 = new openstack.blockstorage.VolumeTypeV3(\"volume_type_1\", {\n name: \"volume_type_1\",\n isPublic: false,\n});\nconst volumeTypeAccess = new openstack.blockstorage.VolumeTypeAccessV3(\"volume_type_access\", {\n projectId: project1.id,\n volumeTypeId: volumeType1.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nproject1 = openstack.identity.Project(\"project_1\", name=\"project_1\")\nvolume_type1 = openstack.blockstorage.VolumeTypeV3(\"volume_type_1\",\n name=\"volume_type_1\",\n is_public=False)\nvolume_type_access = openstack.blockstorage.VolumeTypeAccessV3(\"volume_type_access\",\n project_id=project1.id,\n volume_type_id=volume_type1.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var project1 = new OpenStack.Identity.Project(\"project_1\", new()\n {\n Name = \"project_1\",\n });\n\n var volumeType1 = new OpenStack.BlockStorage.VolumeTypeV3(\"volume_type_1\", new()\n {\n Name = \"volume_type_1\",\n IsPublic = false,\n });\n\n var volumeTypeAccess = new OpenStack.BlockStorage.VolumeTypeAccessV3(\"volume_type_access\", new()\n {\n ProjectId = project1.Id,\n VolumeTypeId = volumeType1.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/blockstorage\"\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/identity\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tproject1, err := identity.NewProject(ctx, \"project_1\", \u0026identity.ProjectArgs{\n\t\t\tName: pulumi.String(\"project_1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvolumeType1, err := blockstorage.NewVolumeTypeV3(ctx, \"volume_type_1\", \u0026blockstorage.VolumeTypeV3Args{\n\t\t\tName: pulumi.String(\"volume_type_1\"),\n\t\t\tIsPublic: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = blockstorage.NewVolumeTypeAccessV3(ctx, \"volume_type_access\", \u0026blockstorage.VolumeTypeAccessV3Args{\n\t\t\tProjectId: project1.ID(),\n\t\t\tVolumeTypeId: volumeType1.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.identity.Project;\nimport com.pulumi.openstack.identity.ProjectArgs;\nimport com.pulumi.openstack.blockstorage.VolumeTypeV3;\nimport com.pulumi.openstack.blockstorage.VolumeTypeV3Args;\nimport com.pulumi.openstack.blockstorage.VolumeTypeAccessV3;\nimport com.pulumi.openstack.blockstorage.VolumeTypeAccessV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var project1 = new Project(\"project1\", ProjectArgs.builder() \n .name(\"project_1\")\n .build());\n\n var volumeType1 = new VolumeTypeV3(\"volumeType1\", VolumeTypeV3Args.builder() \n .name(\"volume_type_1\")\n .isPublic(false)\n .build());\n\n var volumeTypeAccess = new VolumeTypeAccessV3(\"volumeTypeAccess\", VolumeTypeAccessV3Args.builder() \n .projectId(project1.id())\n .volumeTypeId(volumeType1.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n project1:\n type: openstack:identity:Project\n name: project_1\n properties:\n name: project_1\n volumeType1:\n type: openstack:blockstorage:VolumeTypeV3\n name: volume_type_1\n properties:\n name: volume_type_1\n isPublic: false\n volumeTypeAccess:\n type: openstack:blockstorage:VolumeTypeAccessV3\n name: volume_type_access\n properties:\n projectId: ${project1.id}\n volumeTypeId: ${volumeType1.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nVolume types access can be imported using the `volume_type_id/project_id`, e.g.\n\n```sh\n$ pulumi import openstack:blockstorage/volumeTypeAccessV3:VolumeTypeAccessV3 volume_type_access 941793f0-0a34-4bc4-b72e-a6326ae58283/ed498e81f0cc448bae0ad4f8f21bf67f\n```\n", "properties": { "projectId": { "type": "string", @@ -3565,7 +3446,7 @@ } }, "openstack:blockstorage/volumeTypeV3:VolumeTypeV3": { - "description": "Manages a V3 block storage volume type resource within OpenStack.\n\n\u003e **Note:** This usually requires admin privileges.\n\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst volumeType1 = new openstack.blockstorage.VolumeTypeV3(\"volume_type_1\", {\n name: \"volume_type_1\",\n description: \"Volume type 1\",\n extraSpecs: {\n capabilities: \"gpu\",\n volume_backend_name: \"ssd\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nvolume_type1 = openstack.blockstorage.VolumeTypeV3(\"volume_type_1\",\n name=\"volume_type_1\",\n description=\"Volume type 1\",\n extra_specs={\n \"capabilities\": \"gpu\",\n \"volume_backend_name\": \"ssd\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var volumeType1 = new OpenStack.BlockStorage.VolumeTypeV3(\"volume_type_1\", new()\n {\n Name = \"volume_type_1\",\n Description = \"Volume type 1\",\n ExtraSpecs = \n {\n { \"capabilities\", \"gpu\" },\n { \"volume_backend_name\", \"ssd\" },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/blockstorage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := blockstorage.NewVolumeTypeV3(ctx, \"volume_type_1\", \u0026blockstorage.VolumeTypeV3Args{\n\t\t\tName: pulumi.String(\"volume_type_1\"),\n\t\t\tDescription: pulumi.String(\"Volume type 1\"),\n\t\t\tExtraSpecs: pulumi.Map{\n\t\t\t\t\"capabilities\": pulumi.Any(\"gpu\"),\n\t\t\t\t\"volume_backend_name\": pulumi.Any(\"ssd\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.blockstorage.VolumeTypeV3;\nimport com.pulumi.openstack.blockstorage.VolumeTypeV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var volumeType1 = new VolumeTypeV3(\"volumeType1\", VolumeTypeV3Args.builder() \n .name(\"volume_type_1\")\n .description(\"Volume type 1\")\n .extraSpecs(Map.ofEntries(\n Map.entry(\"capabilities\", \"gpu\"),\n Map.entry(\"volume_backend_name\", \"ssd\")\n ))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n volumeType1:\n type: openstack:blockstorage:VolumeTypeV3\n name: volume_type_1\n properties:\n name: volume_type_1\n description: Volume type 1\n extraSpecs:\n capabilities: gpu\n volume_backend_name: ssd\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nVolume types can be imported using the `volume_type_id`, e.g.\n\n```sh\n$ pulumi import openstack:blockstorage/volumeTypeV3:VolumeTypeV3 volume_type_1 941793f0-0a34-4bc4-b72e-a6326ae58283\n```\n", + "description": "Manages a V3 block storage volume type resource within OpenStack.\n\n\u003e **Note:** This usually requires admin privileges.\n\n\n## Example Usage\n\n### Basic Volume Type\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst volumeType1 = new openstack.blockstorage.VolumeTypeV3(\"volume_type_1\", {\n name: \"volume_type_1\",\n description: \"Volume type 1\",\n extraSpecs: {\n capabilities: \"gpu\",\n volume_backend_name: \"ssd\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nvolume_type1 = openstack.blockstorage.VolumeTypeV3(\"volume_type_1\",\n name=\"volume_type_1\",\n description=\"Volume type 1\",\n extra_specs={\n \"capabilities\": \"gpu\",\n \"volume_backend_name\": \"ssd\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var volumeType1 = new OpenStack.BlockStorage.VolumeTypeV3(\"volume_type_1\", new()\n {\n Name = \"volume_type_1\",\n Description = \"Volume type 1\",\n ExtraSpecs = \n {\n { \"capabilities\", \"gpu\" },\n { \"volume_backend_name\", \"ssd\" },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/blockstorage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := blockstorage.NewVolumeTypeV3(ctx, \"volume_type_1\", \u0026blockstorage.VolumeTypeV3Args{\n\t\t\tName: pulumi.String(\"volume_type_1\"),\n\t\t\tDescription: pulumi.String(\"Volume type 1\"),\n\t\t\tExtraSpecs: pulumi.Map{\n\t\t\t\t\"capabilities\": pulumi.Any(\"gpu\"),\n\t\t\t\t\"volume_backend_name\": pulumi.Any(\"ssd\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.blockstorage.VolumeTypeV3;\nimport com.pulumi.openstack.blockstorage.VolumeTypeV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var volumeType1 = new VolumeTypeV3(\"volumeType1\", VolumeTypeV3Args.builder() \n .name(\"volume_type_1\")\n .description(\"Volume type 1\")\n .extraSpecs(Map.ofEntries(\n Map.entry(\"capabilities\", \"gpu\"),\n Map.entry(\"volume_backend_name\", \"ssd\")\n ))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n volumeType1:\n type: openstack:blockstorage:VolumeTypeV3\n name: volume_type_1\n properties:\n name: volume_type_1\n description: Volume type 1\n extraSpecs:\n capabilities: gpu\n volume_backend_name: ssd\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Volume Type with multiattach enabled\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst multiattach = new openstack.blockstorage.VolumeTypeV3(\"multiattach\", {\n name: \"multiattach\",\n description: \"Multiattach-enabled volume type\",\n extraSpecs: {\n multiattach: \"\u003cis\u003e True\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nmultiattach = openstack.blockstorage.VolumeTypeV3(\"multiattach\",\n name=\"multiattach\",\n description=\"Multiattach-enabled volume type\",\n extra_specs={\n \"multiattach\": \"\u003cis\u003e True\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var multiattach = new OpenStack.BlockStorage.VolumeTypeV3(\"multiattach\", new()\n {\n Name = \"multiattach\",\n Description = \"Multiattach-enabled volume type\",\n ExtraSpecs = \n {\n { \"multiattach\", \"\u003cis\u003e True\" },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/blockstorage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := blockstorage.NewVolumeTypeV3(ctx, \"multiattach\", \u0026blockstorage.VolumeTypeV3Args{\n\t\t\tName: pulumi.String(\"multiattach\"),\n\t\t\tDescription: pulumi.String(\"Multiattach-enabled volume type\"),\n\t\t\tExtraSpecs: pulumi.Map{\n\t\t\t\t\"multiattach\": pulumi.Any(\"\u003cis\u003e True\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.blockstorage.VolumeTypeV3;\nimport com.pulumi.openstack.blockstorage.VolumeTypeV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var multiattach = new VolumeTypeV3(\"multiattach\", VolumeTypeV3Args.builder() \n .name(\"multiattach\")\n .description(\"Multiattach-enabled volume type\")\n .extraSpecs(Map.of(\"multiattach\", \"\u003cis\u003e True\"))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n multiattach:\n type: openstack:blockstorage:VolumeTypeV3\n properties:\n name: multiattach\n description: Multiattach-enabled volume type\n extraSpecs:\n multiattach: \u003cis\u003e True\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nVolume types can be imported using the `volume_type_id`, e.g.\n\n```sh\n$ pulumi import openstack:blockstorage/volumeTypeV3:VolumeTypeV3 volume_type_1 941793f0-0a34-4bc4-b72e-a6326ae58283\n```\n", "properties": { "description": { "type": "string", @@ -3656,7 +3537,7 @@ } }, "openstack:blockstorage/volumeV1:VolumeV1": { - "description": "Manages a V1 volume resource within OpenStack.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst volume1 = new openstack.blockstorage.VolumeV1(\"volume_1\", {\n region: \"RegionOne\",\n name: \"tf-test-volume\",\n description: \"first test volume\",\n size: 3,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nvolume1 = openstack.blockstorage.VolumeV1(\"volume_1\",\n region=\"RegionOne\",\n name=\"tf-test-volume\",\n description=\"first test volume\",\n size=3)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var volume1 = new OpenStack.BlockStorage.VolumeV1(\"volume_1\", new()\n {\n Region = \"RegionOne\",\n Name = \"tf-test-volume\",\n Description = \"first test volume\",\n Size = 3,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/blockstorage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := blockstorage.NewVolumeV1(ctx, \"volume_1\", \u0026blockstorage.VolumeV1Args{\n\t\t\tRegion: pulumi.String(\"RegionOne\"),\n\t\t\tName: pulumi.String(\"tf-test-volume\"),\n\t\t\tDescription: pulumi.String(\"first test volume\"),\n\t\t\tSize: pulumi.Int(3),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.blockstorage.VolumeV1;\nimport com.pulumi.openstack.blockstorage.VolumeV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var volume1 = new VolumeV1(\"volume1\", VolumeV1Args.builder() \n .region(\"RegionOne\")\n .name(\"tf-test-volume\")\n .description(\"first test volume\")\n .size(3)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n volume1:\n type: openstack:blockstorage:VolumeV1\n name: volume_1\n properties:\n region: RegionOne\n name: tf-test-volume\n description: first test volume\n size: 3\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nVolumes can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import openstack:blockstorage/volumeV1:VolumeV1 volume_1 ea257959-eeb1-4c10-8d33-26f0409a755d\n```\n", + "description": "Manages a V1 volume resource within OpenStack.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst volume1 = new openstack.blockstorage.VolumeV1(\"volume_1\", {\n region: \"RegionOne\",\n name: \"tf-test-volume\",\n description: \"first test volume\",\n size: 3,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nvolume1 = openstack.blockstorage.VolumeV1(\"volume_1\",\n region=\"RegionOne\",\n name=\"tf-test-volume\",\n description=\"first test volume\",\n size=3)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var volume1 = new OpenStack.BlockStorage.VolumeV1(\"volume_1\", new()\n {\n Region = \"RegionOne\",\n Name = \"tf-test-volume\",\n Description = \"first test volume\",\n Size = 3,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/blockstorage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := blockstorage.NewVolumeV1(ctx, \"volume_1\", \u0026blockstorage.VolumeV1Args{\n\t\t\tRegion: pulumi.String(\"RegionOne\"),\n\t\t\tName: pulumi.String(\"tf-test-volume\"),\n\t\t\tDescription: pulumi.String(\"first test volume\"),\n\t\t\tSize: pulumi.Int(3),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.blockstorage.VolumeV1;\nimport com.pulumi.openstack.blockstorage.VolumeV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var volume1 = new VolumeV1(\"volume1\", VolumeV1Args.builder() \n .region(\"RegionOne\")\n .name(\"tf-test-volume\")\n .description(\"first test volume\")\n .size(3)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n volume1:\n type: openstack:blockstorage:VolumeV1\n name: volume_1\n properties:\n region: RegionOne\n name: tf-test-volume\n description: first test volume\n size: 3\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nVolumes can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import openstack:blockstorage/volumeV1:VolumeV1 volume_1 ea257959-eeb1-4c10-8d33-26f0409a755d\n```\n", "properties": { "attachments": { "type": "array", @@ -3838,7 +3719,7 @@ } }, "openstack:blockstorage/volumeV2:VolumeV2": { - "description": "Manages a V2 volume resource within OpenStack.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst volume1 = new openstack.blockstorage.VolumeV2(\"volume_1\", {\n region: \"RegionOne\",\n name: \"volume_1\",\n description: \"first test volume\",\n size: 3,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nvolume1 = openstack.blockstorage.VolumeV2(\"volume_1\",\n region=\"RegionOne\",\n name=\"volume_1\",\n description=\"first test volume\",\n size=3)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var volume1 = new OpenStack.BlockStorage.VolumeV2(\"volume_1\", new()\n {\n Region = \"RegionOne\",\n Name = \"volume_1\",\n Description = \"first test volume\",\n Size = 3,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/blockstorage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := blockstorage.NewVolumeV2(ctx, \"volume_1\", \u0026blockstorage.VolumeV2Args{\n\t\t\tRegion: pulumi.String(\"RegionOne\"),\n\t\t\tName: pulumi.String(\"volume_1\"),\n\t\t\tDescription: pulumi.String(\"first test volume\"),\n\t\t\tSize: pulumi.Int(3),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.blockstorage.VolumeV2;\nimport com.pulumi.openstack.blockstorage.VolumeV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var volume1 = new VolumeV2(\"volume1\", VolumeV2Args.builder() \n .region(\"RegionOne\")\n .name(\"volume_1\")\n .description(\"first test volume\")\n .size(3)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n volume1:\n type: openstack:blockstorage:VolumeV2\n name: volume_1\n properties:\n region: RegionOne\n name: volume_1\n description: first test volume\n size: 3\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nVolumes can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import openstack:blockstorage/volumeV2:VolumeV2 volume_1 ea257959-eeb1-4c10-8d33-26f0409a755d\n```\n", + "description": "Manages a V2 volume resource within OpenStack.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst volume1 = new openstack.blockstorage.VolumeV2(\"volume_1\", {\n region: \"RegionOne\",\n name: \"volume_1\",\n description: \"first test volume\",\n size: 3,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nvolume1 = openstack.blockstorage.VolumeV2(\"volume_1\",\n region=\"RegionOne\",\n name=\"volume_1\",\n description=\"first test volume\",\n size=3)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var volume1 = new OpenStack.BlockStorage.VolumeV2(\"volume_1\", new()\n {\n Region = \"RegionOne\",\n Name = \"volume_1\",\n Description = \"first test volume\",\n Size = 3,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/blockstorage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := blockstorage.NewVolumeV2(ctx, \"volume_1\", \u0026blockstorage.VolumeV2Args{\n\t\t\tRegion: pulumi.String(\"RegionOne\"),\n\t\t\tName: pulumi.String(\"volume_1\"),\n\t\t\tDescription: pulumi.String(\"first test volume\"),\n\t\t\tSize: pulumi.Int(3),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.blockstorage.VolumeV2;\nimport com.pulumi.openstack.blockstorage.VolumeV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var volume1 = new VolumeV2(\"volume1\", VolumeV2Args.builder() \n .region(\"RegionOne\")\n .name(\"volume_1\")\n .description(\"first test volume\")\n .size(3)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n volume1:\n type: openstack:blockstorage:VolumeV2\n name: volume_1\n properties:\n region: RegionOne\n name: volume_1\n description: first test volume\n size: 3\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nVolumes can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import openstack:blockstorage/volumeV2:VolumeV2 volume_1 ea257959-eeb1-4c10-8d33-26f0409a755d\n```\n", "properties": { "attachments": { "type": "array", @@ -4069,7 +3950,7 @@ } }, "openstack:compute/aggregateV2:AggregateV2": { - "description": "Manages a Host Aggregate within Openstack Nova.\n\n## Example Usage\n\n### Full example\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst dellServers = new openstack.compute.AggregateV2(\"dell_servers\", {\n region: \"RegionOne\",\n name: \"dell_servers\",\n zone: \"nova\",\n metadata: {\n cpus: \"56\",\n },\n hosts: [\n \"myhost01.example.com\",\n \"myhost02.example.com\",\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\ndell_servers = openstack.compute.AggregateV2(\"dell_servers\",\n region=\"RegionOne\",\n name=\"dell_servers\",\n zone=\"nova\",\n metadata={\n \"cpus\": \"56\",\n },\n hosts=[\n \"myhost01.example.com\",\n \"myhost02.example.com\",\n ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var dellServers = new OpenStack.Compute.AggregateV2(\"dell_servers\", new()\n {\n Region = \"RegionOne\",\n Name = \"dell_servers\",\n Zone = \"nova\",\n Metadata = \n {\n { \"cpus\", \"56\" },\n },\n Hosts = new[]\n {\n \"myhost01.example.com\",\n \"myhost02.example.com\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := compute.NewAggregateV2(ctx, \"dell_servers\", \u0026compute.AggregateV2Args{\n\t\t\tRegion: pulumi.String(\"RegionOne\"),\n\t\t\tName: pulumi.String(\"dell_servers\"),\n\t\t\tZone: pulumi.String(\"nova\"),\n\t\t\tMetadata: pulumi.StringMap{\n\t\t\t\t\"cpus\": pulumi.String(\"56\"),\n\t\t\t},\n\t\t\tHosts: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"myhost01.example.com\"),\n\t\t\t\tpulumi.String(\"myhost02.example.com\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.compute.AggregateV2;\nimport com.pulumi.openstack.compute.AggregateV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var dellServers = new AggregateV2(\"dellServers\", AggregateV2Args.builder() \n .region(\"RegionOne\")\n .name(\"dell_servers\")\n .zone(\"nova\")\n .metadata(Map.of(\"cpus\", \"56\"))\n .hosts( \n \"myhost01.example.com\",\n \"myhost02.example.com\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n dellServers:\n type: openstack:compute:AggregateV2\n name: dell_servers\n properties:\n region: RegionOne\n name: dell_servers\n zone: nova\n metadata:\n cpus: '56'\n hosts:\n - myhost01.example.com\n - myhost02.example.com\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Minimum required example\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst test = new openstack.compute.AggregateV2(\"test\", {name: \"test\"});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\ntest = openstack.compute.AggregateV2(\"test\", name=\"test\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var test = new OpenStack.Compute.AggregateV2(\"test\", new()\n {\n Name = \"test\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := compute.NewAggregateV2(ctx, \"test\", \u0026compute.AggregateV2Args{\n\t\t\tName: pulumi.String(\"test\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.compute.AggregateV2;\nimport com.pulumi.openstack.compute.AggregateV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var test = new AggregateV2(\"test\", AggregateV2Args.builder() \n .name(\"test\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n test:\n type: openstack:compute:AggregateV2\n properties:\n name: test\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nYou can import an existing Host Aggregate by their ID.\n\n```sh\n$ pulumi import openstack:compute/aggregateV2:AggregateV2 myaggregate 24\n```\n\nThe ID can be obtained with an openstack command:\n\n$ openstack aggregate list\n\n+----+------+-------------------+\n\n| ID | Name | Availability Zone |\n\n+----+------+-------------------+\n\n| 59 | test | None |\n\n+----+------+-------------------+\n\n", + "description": "Manages a Host Aggregate within Openstack Nova.\n\n## Example Usage\n\n### Full example\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst dellServers = new openstack.compute.AggregateV2(\"dell_servers\", {\n region: \"RegionOne\",\n name: \"dell_servers\",\n zone: \"nova\",\n metadata: {\n cpus: \"56\",\n },\n hosts: [\n \"myhost01.example.com\",\n \"myhost02.example.com\",\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\ndell_servers = openstack.compute.AggregateV2(\"dell_servers\",\n region=\"RegionOne\",\n name=\"dell_servers\",\n zone=\"nova\",\n metadata={\n \"cpus\": \"56\",\n },\n hosts=[\n \"myhost01.example.com\",\n \"myhost02.example.com\",\n ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var dellServers = new OpenStack.Compute.AggregateV2(\"dell_servers\", new()\n {\n Region = \"RegionOne\",\n Name = \"dell_servers\",\n Zone = \"nova\",\n Metadata = \n {\n { \"cpus\", \"56\" },\n },\n Hosts = new[]\n {\n \"myhost01.example.com\",\n \"myhost02.example.com\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := compute.NewAggregateV2(ctx, \"dell_servers\", \u0026compute.AggregateV2Args{\n\t\t\tRegion: pulumi.String(\"RegionOne\"),\n\t\t\tName: pulumi.String(\"dell_servers\"),\n\t\t\tZone: pulumi.String(\"nova\"),\n\t\t\tMetadata: pulumi.StringMap{\n\t\t\t\t\"cpus\": pulumi.String(\"56\"),\n\t\t\t},\n\t\t\tHosts: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"myhost01.example.com\"),\n\t\t\t\tpulumi.String(\"myhost02.example.com\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.compute.AggregateV2;\nimport com.pulumi.openstack.compute.AggregateV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var dellServers = new AggregateV2(\"dellServers\", AggregateV2Args.builder() \n .region(\"RegionOne\")\n .name(\"dell_servers\")\n .zone(\"nova\")\n .metadata(Map.of(\"cpus\", \"56\"))\n .hosts( \n \"myhost01.example.com\",\n \"myhost02.example.com\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n dellServers:\n type: openstack:compute:AggregateV2\n name: dell_servers\n properties:\n region: RegionOne\n name: dell_servers\n zone: nova\n metadata:\n cpus: '56'\n hosts:\n - myhost01.example.com\n - myhost02.example.com\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Minimum required example\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst test = new openstack.compute.AggregateV2(\"test\", {name: \"test\"});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\ntest = openstack.compute.AggregateV2(\"test\", name=\"test\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var test = new OpenStack.Compute.AggregateV2(\"test\", new()\n {\n Name = \"test\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := compute.NewAggregateV2(ctx, \"test\", \u0026compute.AggregateV2Args{\n\t\t\tName: pulumi.String(\"test\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.compute.AggregateV2;\nimport com.pulumi.openstack.compute.AggregateV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var test = new AggregateV2(\"test\", AggregateV2Args.builder() \n .name(\"test\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n test:\n type: openstack:compute:AggregateV2\n properties:\n name: test\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nYou can import an existing Host Aggregate by their ID.\n\n```sh\n$ pulumi import openstack:compute/aggregateV2:AggregateV2 myaggregate 24\n```\n\nThe ID can be obtained with an openstack command:\n\n$ openstack aggregate list\n\n+----+------+-------------------+\n\n| ID | Name | Availability Zone |\n\n+----+------+-------------------+\n\n| 59 | test | None |\n\n+----+------+-------------------+\n\n", "properties": { "hosts": { "type": "array", @@ -4166,7 +4047,7 @@ } }, "openstack:compute/flavor:Flavor": { - "description": "Manages a V2 flavor resource within OpenStack.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst test_flavor = new openstack.compute.Flavor(\"test-flavor\", {\n name: \"my-flavor\",\n ram: 8096,\n vcpus: 2,\n disk: 20,\n extraSpecs: {\n \"hw:cpu_policy\": \"CPU-POLICY\",\n \"hw:cpu_thread_policy\": \"CPU-THREAD-POLICY\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\ntest_flavor = openstack.compute.Flavor(\"test-flavor\",\n name=\"my-flavor\",\n ram=8096,\n vcpus=2,\n disk=20,\n extra_specs={\n \"hw:cpu_policy\": \"CPU-POLICY\",\n \"hw:cpu_thread_policy\": \"CPU-THREAD-POLICY\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var test_flavor = new OpenStack.Compute.Flavor(\"test-flavor\", new()\n {\n Name = \"my-flavor\",\n Ram = 8096,\n Vcpus = 2,\n Disk = 20,\n ExtraSpecs = \n {\n { \"hw:cpu_policy\", \"CPU-POLICY\" },\n { \"hw:cpu_thread_policy\", \"CPU-THREAD-POLICY\" },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := compute.NewFlavor(ctx, \"test-flavor\", \u0026compute.FlavorArgs{\n\t\t\tName: pulumi.String(\"my-flavor\"),\n\t\t\tRam: pulumi.Int(8096),\n\t\t\tVcpus: pulumi.Int(2),\n\t\t\tDisk: pulumi.Int(20),\n\t\t\tExtraSpecs: pulumi.Map{\n\t\t\t\t\"hw:cpu_policy\": pulumi.Any(\"CPU-POLICY\"),\n\t\t\t\t\"hw:cpu_thread_policy\": pulumi.Any(\"CPU-THREAD-POLICY\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.compute.Flavor;\nimport com.pulumi.openstack.compute.FlavorArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var test_flavor = new Flavor(\"test-flavor\", FlavorArgs.builder() \n .name(\"my-flavor\")\n .ram(\"8096\")\n .vcpus(\"2\")\n .disk(\"20\")\n .extraSpecs(Map.ofEntries(\n Map.entry(\"hw:cpu_policy\", \"CPU-POLICY\"),\n Map.entry(\"hw:cpu_thread_policy\", \"CPU-THREAD-POLICY\")\n ))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n test-flavor:\n type: openstack:compute:Flavor\n properties:\n name: my-flavor\n ram: '8096'\n vcpus: '2'\n disk: '20'\n extraSpecs:\n hw:cpu_policy: CPU-POLICY\n hw:cpu_thread_policy: CPU-THREAD-POLICY\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nFlavors can be imported using the `ID`, e.g.\n\n```sh\n$ pulumi import openstack:compute/flavor:Flavor my-flavor 4142e64b-1b35-44a0-9b1e-5affc7af1106\n```\n", + "description": "Manages a V2 flavor resource within OpenStack.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst test_flavor = new openstack.compute.Flavor(\"test-flavor\", {\n name: \"my-flavor\",\n ram: 8096,\n vcpus: 2,\n disk: 20,\n extraSpecs: {\n \"hw:cpu_policy\": \"CPU-POLICY\",\n \"hw:cpu_thread_policy\": \"CPU-THREAD-POLICY\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\ntest_flavor = openstack.compute.Flavor(\"test-flavor\",\n name=\"my-flavor\",\n ram=8096,\n vcpus=2,\n disk=20,\n extra_specs={\n \"hw:cpu_policy\": \"CPU-POLICY\",\n \"hw:cpu_thread_policy\": \"CPU-THREAD-POLICY\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var test_flavor = new OpenStack.Compute.Flavor(\"test-flavor\", new()\n {\n Name = \"my-flavor\",\n Ram = 8096,\n Vcpus = 2,\n Disk = 20,\n ExtraSpecs = \n {\n { \"hw:cpu_policy\", \"CPU-POLICY\" },\n { \"hw:cpu_thread_policy\", \"CPU-THREAD-POLICY\" },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := compute.NewFlavor(ctx, \"test-flavor\", \u0026compute.FlavorArgs{\n\t\t\tName: pulumi.String(\"my-flavor\"),\n\t\t\tRam: pulumi.Int(8096),\n\t\t\tVcpus: pulumi.Int(2),\n\t\t\tDisk: pulumi.Int(20),\n\t\t\tExtraSpecs: pulumi.Map{\n\t\t\t\t\"hw:cpu_policy\": pulumi.Any(\"CPU-POLICY\"),\n\t\t\t\t\"hw:cpu_thread_policy\": pulumi.Any(\"CPU-THREAD-POLICY\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.compute.Flavor;\nimport com.pulumi.openstack.compute.FlavorArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var test_flavor = new Flavor(\"test-flavor\", FlavorArgs.builder() \n .name(\"my-flavor\")\n .ram(\"8096\")\n .vcpus(\"2\")\n .disk(\"20\")\n .extraSpecs(Map.ofEntries(\n Map.entry(\"hw:cpu_policy\", \"CPU-POLICY\"),\n Map.entry(\"hw:cpu_thread_policy\", \"CPU-THREAD-POLICY\")\n ))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n test-flavor:\n type: openstack:compute:Flavor\n properties:\n name: my-flavor\n ram: '8096'\n vcpus: '2'\n disk: '20'\n extraSpecs:\n hw:cpu_policy: CPU-POLICY\n hw:cpu_thread_policy: CPU-THREAD-POLICY\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nFlavors can be imported using the `ID`, e.g.\n\n```sh\n$ pulumi import openstack:compute/flavor:Flavor my-flavor 4142e64b-1b35-44a0-9b1e-5affc7af1106\n```\n", "properties": { "description": { "type": "string", @@ -4366,7 +4247,7 @@ } }, "openstack:compute/flavorAccess:FlavorAccess": { - "description": "Manages a project access for flavor V2 resource within OpenStack.\n\n\u003e **Note:** You _must_ have admin privileges in your OpenStack cloud to use\nthis resource.\n\n---\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst project1 = new openstack.identity.Project(\"project_1\", {name: \"my-project\"});\nconst flavor1 = new openstack.compute.Flavor(\"flavor_1\", {\n name: \"my-flavor\",\n ram: 8096,\n vcpus: 2,\n disk: 20,\n isPublic: false,\n});\nconst access1 = new openstack.compute.FlavorAccess(\"access_1\", {\n tenantId: project1.id,\n flavorId: flavor1.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nproject1 = openstack.identity.Project(\"project_1\", name=\"my-project\")\nflavor1 = openstack.compute.Flavor(\"flavor_1\",\n name=\"my-flavor\",\n ram=8096,\n vcpus=2,\n disk=20,\n is_public=False)\naccess1 = openstack.compute.FlavorAccess(\"access_1\",\n tenant_id=project1.id,\n flavor_id=flavor1.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var project1 = new OpenStack.Identity.Project(\"project_1\", new()\n {\n Name = \"my-project\",\n });\n\n var flavor1 = new OpenStack.Compute.Flavor(\"flavor_1\", new()\n {\n Name = \"my-flavor\",\n Ram = 8096,\n Vcpus = 2,\n Disk = 20,\n IsPublic = false,\n });\n\n var access1 = new OpenStack.Compute.FlavorAccess(\"access_1\", new()\n {\n TenantId = project1.Id,\n FlavorId = flavor1.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/compute\"\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/identity\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tproject1, err := identity.NewProject(ctx, \"project_1\", \u0026identity.ProjectArgs{\n\t\t\tName: pulumi.String(\"my-project\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tflavor1, err := compute.NewFlavor(ctx, \"flavor_1\", \u0026compute.FlavorArgs{\n\t\t\tName: pulumi.String(\"my-flavor\"),\n\t\t\tRam: pulumi.Int(8096),\n\t\t\tVcpus: pulumi.Int(2),\n\t\t\tDisk: pulumi.Int(20),\n\t\t\tIsPublic: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewFlavorAccess(ctx, \"access_1\", \u0026compute.FlavorAccessArgs{\n\t\t\tTenantId: project1.ID(),\n\t\t\tFlavorId: flavor1.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.identity.Project;\nimport com.pulumi.openstack.identity.ProjectArgs;\nimport com.pulumi.openstack.compute.Flavor;\nimport com.pulumi.openstack.compute.FlavorArgs;\nimport com.pulumi.openstack.compute.FlavorAccess;\nimport com.pulumi.openstack.compute.FlavorAccessArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var project1 = new Project(\"project1\", ProjectArgs.builder() \n .name(\"my-project\")\n .build());\n\n var flavor1 = new Flavor(\"flavor1\", FlavorArgs.builder() \n .name(\"my-flavor\")\n .ram(\"8096\")\n .vcpus(\"2\")\n .disk(\"20\")\n .isPublic(false)\n .build());\n\n var access1 = new FlavorAccess(\"access1\", FlavorAccessArgs.builder() \n .tenantId(project1.id())\n .flavorId(flavor1.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n project1:\n type: openstack:identity:Project\n name: project_1\n properties:\n name: my-project\n flavor1:\n type: openstack:compute:Flavor\n name: flavor_1\n properties:\n name: my-flavor\n ram: '8096'\n vcpus: '2'\n disk: '20'\n isPublic: false\n access1:\n type: openstack:compute:FlavorAccess\n name: access_1\n properties:\n tenantId: ${project1.id}\n flavorId: ${flavor1.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThis resource can be imported by specifying all two arguments, separated\nby a forward slash:\n\n```sh\n$ pulumi import openstack:compute/flavorAccess:FlavorAccess access_1 flavor_id/tenant_id\n```\n", + "description": "Manages a project access for flavor V2 resource within OpenStack.\n\n\u003e **Note:** You _must_ have admin privileges in your OpenStack cloud to use\nthis resource.\n\n---\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst project1 = new openstack.identity.Project(\"project_1\", {name: \"my-project\"});\nconst flavor1 = new openstack.compute.Flavor(\"flavor_1\", {\n name: \"my-flavor\",\n ram: 8096,\n vcpus: 2,\n disk: 20,\n isPublic: false,\n});\nconst access1 = new openstack.compute.FlavorAccess(\"access_1\", {\n tenantId: project1.id,\n flavorId: flavor1.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nproject1 = openstack.identity.Project(\"project_1\", name=\"my-project\")\nflavor1 = openstack.compute.Flavor(\"flavor_1\",\n name=\"my-flavor\",\n ram=8096,\n vcpus=2,\n disk=20,\n is_public=False)\naccess1 = openstack.compute.FlavorAccess(\"access_1\",\n tenant_id=project1.id,\n flavor_id=flavor1.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var project1 = new OpenStack.Identity.Project(\"project_1\", new()\n {\n Name = \"my-project\",\n });\n\n var flavor1 = new OpenStack.Compute.Flavor(\"flavor_1\", new()\n {\n Name = \"my-flavor\",\n Ram = 8096,\n Vcpus = 2,\n Disk = 20,\n IsPublic = false,\n });\n\n var access1 = new OpenStack.Compute.FlavorAccess(\"access_1\", new()\n {\n TenantId = project1.Id,\n FlavorId = flavor1.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/compute\"\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/identity\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tproject1, err := identity.NewProject(ctx, \"project_1\", \u0026identity.ProjectArgs{\n\t\t\tName: pulumi.String(\"my-project\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tflavor1, err := compute.NewFlavor(ctx, \"flavor_1\", \u0026compute.FlavorArgs{\n\t\t\tName: pulumi.String(\"my-flavor\"),\n\t\t\tRam: pulumi.Int(8096),\n\t\t\tVcpus: pulumi.Int(2),\n\t\t\tDisk: pulumi.Int(20),\n\t\t\tIsPublic: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewFlavorAccess(ctx, \"access_1\", \u0026compute.FlavorAccessArgs{\n\t\t\tTenantId: project1.ID(),\n\t\t\tFlavorId: flavor1.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.identity.Project;\nimport com.pulumi.openstack.identity.ProjectArgs;\nimport com.pulumi.openstack.compute.Flavor;\nimport com.pulumi.openstack.compute.FlavorArgs;\nimport com.pulumi.openstack.compute.FlavorAccess;\nimport com.pulumi.openstack.compute.FlavorAccessArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var project1 = new Project(\"project1\", ProjectArgs.builder() \n .name(\"my-project\")\n .build());\n\n var flavor1 = new Flavor(\"flavor1\", FlavorArgs.builder() \n .name(\"my-flavor\")\n .ram(\"8096\")\n .vcpus(\"2\")\n .disk(\"20\")\n .isPublic(false)\n .build());\n\n var access1 = new FlavorAccess(\"access1\", FlavorAccessArgs.builder() \n .tenantId(project1.id())\n .flavorId(flavor1.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n project1:\n type: openstack:identity:Project\n name: project_1\n properties:\n name: my-project\n flavor1:\n type: openstack:compute:Flavor\n name: flavor_1\n properties:\n name: my-flavor\n ram: '8096'\n vcpus: '2'\n disk: '20'\n isPublic: false\n access1:\n type: openstack:compute:FlavorAccess\n name: access_1\n properties:\n tenantId: ${project1.id}\n flavorId: ${flavor1.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThis resource can be imported by specifying all two arguments, separated\nby a forward slash:\n\n```sh\n$ pulumi import openstack:compute/flavorAccess:FlavorAccess access_1 flavor_id/tenant_id\n```\n", "properties": { "flavorId": { "type": "string", @@ -4430,7 +4311,7 @@ } }, "openstack:compute/floatingIp:FloatingIp": { - "description": "Manages a V2 floating IP resource within OpenStack Nova (compute)\nthat can be used for compute instances.\n\nPlease note that managing floating IPs through the OpenStack Compute API has\nbeen deprecated. Unless you are using an older OpenStack environment, it is\nrecommended to use the `openstack.networking.FloatingIp`\nresource instead, which uses the OpenStack Networking API.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst floatip1 = new openstack.compute.FloatingIp(\"floatip_1\", {pool: \"public\"});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nfloatip1 = openstack.compute.FloatingIp(\"floatip_1\", pool=\"public\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var floatip1 = new OpenStack.Compute.FloatingIp(\"floatip_1\", new()\n {\n Pool = \"public\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := compute.NewFloatingIp(ctx, \"floatip_1\", \u0026compute.FloatingIpArgs{\n\t\t\tPool: pulumi.String(\"public\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.compute.FloatingIp;\nimport com.pulumi.openstack.compute.FloatingIpArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var floatip1 = new FloatingIp(\"floatip1\", FloatingIpArgs.builder() \n .pool(\"public\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n floatip1:\n type: openstack:compute:FloatingIp\n name: floatip_1\n properties:\n pool: public\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nFloating IPs can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import openstack:compute/floatingIp:FloatingIp floatip_1 89c60255-9bd6-460c-822a-e2b959ede9d2\n```\n", + "description": "Manages a V2 floating IP resource within OpenStack Nova (compute)\nthat can be used for compute instances.\n\nPlease note that managing floating IPs through the OpenStack Compute API has\nbeen deprecated. Unless you are using an older OpenStack environment, it is\nrecommended to use the `openstack.networking.FloatingIp`\nresource instead, which uses the OpenStack Networking API.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst floatip1 = new openstack.compute.FloatingIp(\"floatip_1\", {pool: \"public\"});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nfloatip1 = openstack.compute.FloatingIp(\"floatip_1\", pool=\"public\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var floatip1 = new OpenStack.Compute.FloatingIp(\"floatip_1\", new()\n {\n Pool = \"public\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := compute.NewFloatingIp(ctx, \"floatip_1\", \u0026compute.FloatingIpArgs{\n\t\t\tPool: pulumi.String(\"public\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.compute.FloatingIp;\nimport com.pulumi.openstack.compute.FloatingIpArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var floatip1 = new FloatingIp(\"floatip1\", FloatingIpArgs.builder() \n .pool(\"public\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n floatip1:\n type: openstack:compute:FloatingIp\n name: floatip_1\n properties:\n pool: public\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nFloating IPs can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import openstack:compute/floatingIp:FloatingIp floatip_1 89c60255-9bd6-460c-822a-e2b959ede9d2\n```\n", "properties": { "address": { "type": "string", @@ -4505,7 +4386,7 @@ } }, "openstack:compute/floatingIpAssociate:FloatingIpAssociate": { - "description": "Associate a floating IP to an instance.\n\n## Example Usage\n\n### Automatically detect the correct network\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst instance1 = new openstack.compute.Instance(\"instance_1\", {\n name: \"instance_1\",\n imageId: \"ad091b52-742f-469e-8f3c-fd81cadf0743\",\n flavorId: \"3\",\n keyPair: \"my_key_pair_name\",\n securityGroups: [\"default\"],\n});\nconst fip1 = new openstack.networking.FloatingIp(\"fip_1\", {pool: \"my_pool\"});\nconst fip1FloatingIpAssociate = new openstack.compute.FloatingIpAssociate(\"fip_1\", {\n floatingIp: fip1.address,\n instanceId: instance1.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\ninstance1 = openstack.compute.Instance(\"instance_1\",\n name=\"instance_1\",\n image_id=\"ad091b52-742f-469e-8f3c-fd81cadf0743\",\n flavor_id=\"3\",\n key_pair=\"my_key_pair_name\",\n security_groups=[\"default\"])\nfip1 = openstack.networking.FloatingIp(\"fip_1\", pool=\"my_pool\")\nfip1_floating_ip_associate = openstack.compute.FloatingIpAssociate(\"fip_1\",\n floating_ip=fip1.address,\n instance_id=instance1.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var instance1 = new OpenStack.Compute.Instance(\"instance_1\", new()\n {\n Name = \"instance_1\",\n ImageId = \"ad091b52-742f-469e-8f3c-fd81cadf0743\",\n FlavorId = \"3\",\n KeyPair = \"my_key_pair_name\",\n SecurityGroups = new[]\n {\n \"default\",\n },\n });\n\n var fip1 = new OpenStack.Networking.FloatingIp(\"fip_1\", new()\n {\n Pool = \"my_pool\",\n });\n\n var fip1FloatingIpAssociate = new OpenStack.Compute.FloatingIpAssociate(\"fip_1\", new()\n {\n FloatingIp = fip1.Address,\n InstanceId = instance1.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/compute\"\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tinstance1, err := compute.NewInstance(ctx, \"instance_1\", \u0026compute.InstanceArgs{\n\t\t\tName: pulumi.String(\"instance_1\"),\n\t\t\tImageId: pulumi.String(\"ad091b52-742f-469e-8f3c-fd81cadf0743\"),\n\t\t\tFlavorId: pulumi.String(\"3\"),\n\t\t\tKeyPair: pulumi.String(\"my_key_pair_name\"),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"default\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfip1, err := networking.NewFloatingIp(ctx, \"fip_1\", \u0026networking.FloatingIpArgs{\n\t\t\tPool: pulumi.String(\"my_pool\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewFloatingIpAssociate(ctx, \"fip_1\", \u0026compute.FloatingIpAssociateArgs{\n\t\t\tFloatingIp: fip1.Address,\n\t\t\tInstanceId: instance1.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.compute.Instance;\nimport com.pulumi.openstack.compute.InstanceArgs;\nimport com.pulumi.openstack.networking.FloatingIp;\nimport com.pulumi.openstack.networking.FloatingIpArgs;\nimport com.pulumi.openstack.compute.FloatingIpAssociate;\nimport com.pulumi.openstack.compute.FloatingIpAssociateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var instance1 = new Instance(\"instance1\", InstanceArgs.builder() \n .name(\"instance_1\")\n .imageId(\"ad091b52-742f-469e-8f3c-fd81cadf0743\")\n .flavorId(3)\n .keyPair(\"my_key_pair_name\")\n .securityGroups(\"default\")\n .build());\n\n var fip1 = new FloatingIp(\"fip1\", FloatingIpArgs.builder() \n .pool(\"my_pool\")\n .build());\n\n var fip1FloatingIpAssociate = new FloatingIpAssociate(\"fip1FloatingIpAssociate\", FloatingIpAssociateArgs.builder() \n .floatingIp(fip1.address())\n .instanceId(instance1.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n instance1:\n type: openstack:compute:Instance\n name: instance_1\n properties:\n name: instance_1\n imageId: ad091b52-742f-469e-8f3c-fd81cadf0743\n flavorId: 3\n keyPair: my_key_pair_name\n securityGroups:\n - default\n fip1:\n type: openstack:networking:FloatingIp\n name: fip_1\n properties:\n pool: my_pool\n fip1FloatingIpAssociate:\n type: openstack:compute:FloatingIpAssociate\n name: fip_1\n properties:\n floatingIp: ${fip1.address}\n instanceId: ${instance1.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Explicitly set the network to attach to\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst instance1 = new openstack.compute.Instance(\"instance_1\", {\n name: \"instance_1\",\n imageId: \"ad091b52-742f-469e-8f3c-fd81cadf0743\",\n flavorId: \"3\",\n keyPair: \"my_key_pair_name\",\n securityGroups: [\"default\"],\n networks: [\n {\n name: \"my_network\",\n },\n {\n name: \"default\",\n },\n ],\n});\nconst fip1 = new openstack.networking.FloatingIp(\"fip_1\", {pool: \"my_pool\"});\nconst fip1FloatingIpAssociate = new openstack.compute.FloatingIpAssociate(\"fip_1\", {\n floatingIp: fip1.address,\n instanceId: instance1.id,\n fixedIp: instance1.networks.apply(networks =\u003e networks[1].fixedIpV4),\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\ninstance1 = openstack.compute.Instance(\"instance_1\",\n name=\"instance_1\",\n image_id=\"ad091b52-742f-469e-8f3c-fd81cadf0743\",\n flavor_id=\"3\",\n key_pair=\"my_key_pair_name\",\n security_groups=[\"default\"],\n networks=[\n openstack.compute.InstanceNetworkArgs(\n name=\"my_network\",\n ),\n openstack.compute.InstanceNetworkArgs(\n name=\"default\",\n ),\n ])\nfip1 = openstack.networking.FloatingIp(\"fip_1\", pool=\"my_pool\")\nfip1_floating_ip_associate = openstack.compute.FloatingIpAssociate(\"fip_1\",\n floating_ip=fip1.address,\n instance_id=instance1.id,\n fixed_ip=instance1.networks[1].fixed_ip_v4)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var instance1 = new OpenStack.Compute.Instance(\"instance_1\", new()\n {\n Name = \"instance_1\",\n ImageId = \"ad091b52-742f-469e-8f3c-fd81cadf0743\",\n FlavorId = \"3\",\n KeyPair = \"my_key_pair_name\",\n SecurityGroups = new[]\n {\n \"default\",\n },\n Networks = new[]\n {\n new OpenStack.Compute.Inputs.InstanceNetworkArgs\n {\n Name = \"my_network\",\n },\n new OpenStack.Compute.Inputs.InstanceNetworkArgs\n {\n Name = \"default\",\n },\n },\n });\n\n var fip1 = new OpenStack.Networking.FloatingIp(\"fip_1\", new()\n {\n Pool = \"my_pool\",\n });\n\n var fip1FloatingIpAssociate = new OpenStack.Compute.FloatingIpAssociate(\"fip_1\", new()\n {\n FloatingIp = fip1.Address,\n InstanceId = instance1.Id,\n FixedIp = instance1.Networks.Apply(networks =\u003e networks[1].FixedIpV4),\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/compute\"\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tinstance1, err := compute.NewInstance(ctx, \"instance_1\", \u0026compute.InstanceArgs{\n\t\t\tName: pulumi.String(\"instance_1\"),\n\t\t\tImageId: pulumi.String(\"ad091b52-742f-469e-8f3c-fd81cadf0743\"),\n\t\t\tFlavorId: pulumi.String(\"3\"),\n\t\t\tKeyPair: pulumi.String(\"my_key_pair_name\"),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"default\"),\n\t\t\t},\n\t\t\tNetworks: compute.InstanceNetworkArray{\n\t\t\t\t\u0026compute.InstanceNetworkArgs{\n\t\t\t\t\tName: pulumi.String(\"my_network\"),\n\t\t\t\t},\n\t\t\t\t\u0026compute.InstanceNetworkArgs{\n\t\t\t\t\tName: pulumi.String(\"default\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfip1, err := networking.NewFloatingIp(ctx, \"fip_1\", \u0026networking.FloatingIpArgs{\n\t\t\tPool: pulumi.String(\"my_pool\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewFloatingIpAssociate(ctx, \"fip_1\", \u0026compute.FloatingIpAssociateArgs{\n\t\t\tFloatingIp: fip1.Address,\n\t\t\tInstanceId: instance1.ID(),\n\t\t\tFixedIp: instance1.Networks.ApplyT(func(networks []compute.InstanceNetwork) (*string, error) {\n\t\t\t\treturn \u0026networks[1].FixedIpV4, nil\n\t\t\t}).(pulumi.StringPtrOutput),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.compute.Instance;\nimport com.pulumi.openstack.compute.InstanceArgs;\nimport com.pulumi.openstack.compute.inputs.InstanceNetworkArgs;\nimport com.pulumi.openstack.networking.FloatingIp;\nimport com.pulumi.openstack.networking.FloatingIpArgs;\nimport com.pulumi.openstack.compute.FloatingIpAssociate;\nimport com.pulumi.openstack.compute.FloatingIpAssociateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var instance1 = new Instance(\"instance1\", InstanceArgs.builder() \n .name(\"instance_1\")\n .imageId(\"ad091b52-742f-469e-8f3c-fd81cadf0743\")\n .flavorId(3)\n .keyPair(\"my_key_pair_name\")\n .securityGroups(\"default\")\n .networks( \n InstanceNetworkArgs.builder()\n .name(\"my_network\")\n .build(),\n InstanceNetworkArgs.builder()\n .name(\"default\")\n .build())\n .build());\n\n var fip1 = new FloatingIp(\"fip1\", FloatingIpArgs.builder() \n .pool(\"my_pool\")\n .build());\n\n var fip1FloatingIpAssociate = new FloatingIpAssociate(\"fip1FloatingIpAssociate\", FloatingIpAssociateArgs.builder() \n .floatingIp(fip1.address())\n .instanceId(instance1.id())\n .fixedIp(instance1.networks().applyValue(networks -\u003e networks[1].fixedIpV4()))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n instance1:\n type: openstack:compute:Instance\n name: instance_1\n properties:\n name: instance_1\n imageId: ad091b52-742f-469e-8f3c-fd81cadf0743\n flavorId: 3\n keyPair: my_key_pair_name\n securityGroups:\n - default\n networks:\n - name: my_network\n - name: default\n fip1:\n type: openstack:networking:FloatingIp\n name: fip_1\n properties:\n pool: my_pool\n fip1FloatingIpAssociate:\n type: openstack:compute:FloatingIpAssociate\n name: fip_1\n properties:\n floatingIp: ${fip1.address}\n instanceId: ${instance1.id}\n fixedIp: ${instance1.networks[1].fixedIpV4}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThis resource can be imported by specifying all three arguments, separated\nby a forward slash:\n\n```sh\n$ pulumi import openstack:compute/floatingIpAssociate:FloatingIpAssociate fip_1 floating_ip/instance_id/fixed_ip\n```\n", + "description": "Associate a floating IP to an instance.\n\n## Example Usage\n\n### Automatically detect the correct network\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst instance1 = new openstack.compute.Instance(\"instance_1\", {\n name: \"instance_1\",\n imageId: \"ad091b52-742f-469e-8f3c-fd81cadf0743\",\n flavorId: \"3\",\n keyPair: \"my_key_pair_name\",\n securityGroups: [\"default\"],\n});\nconst fip1 = new openstack.networking.FloatingIp(\"fip_1\", {pool: \"my_pool\"});\nconst fip1FloatingIpAssociate = new openstack.compute.FloatingIpAssociate(\"fip_1\", {\n floatingIp: fip1.address,\n instanceId: instance1.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\ninstance1 = openstack.compute.Instance(\"instance_1\",\n name=\"instance_1\",\n image_id=\"ad091b52-742f-469e-8f3c-fd81cadf0743\",\n flavor_id=\"3\",\n key_pair=\"my_key_pair_name\",\n security_groups=[\"default\"])\nfip1 = openstack.networking.FloatingIp(\"fip_1\", pool=\"my_pool\")\nfip1_floating_ip_associate = openstack.compute.FloatingIpAssociate(\"fip_1\",\n floating_ip=fip1.address,\n instance_id=instance1.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var instance1 = new OpenStack.Compute.Instance(\"instance_1\", new()\n {\n Name = \"instance_1\",\n ImageId = \"ad091b52-742f-469e-8f3c-fd81cadf0743\",\n FlavorId = \"3\",\n KeyPair = \"my_key_pair_name\",\n SecurityGroups = new[]\n {\n \"default\",\n },\n });\n\n var fip1 = new OpenStack.Networking.FloatingIp(\"fip_1\", new()\n {\n Pool = \"my_pool\",\n });\n\n var fip1FloatingIpAssociate = new OpenStack.Compute.FloatingIpAssociate(\"fip_1\", new()\n {\n FloatingIp = fip1.Address,\n InstanceId = instance1.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/compute\"\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tinstance1, err := compute.NewInstance(ctx, \"instance_1\", \u0026compute.InstanceArgs{\n\t\t\tName: pulumi.String(\"instance_1\"),\n\t\t\tImageId: pulumi.String(\"ad091b52-742f-469e-8f3c-fd81cadf0743\"),\n\t\t\tFlavorId: pulumi.String(\"3\"),\n\t\t\tKeyPair: pulumi.String(\"my_key_pair_name\"),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"default\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfip1, err := networking.NewFloatingIp(ctx, \"fip_1\", \u0026networking.FloatingIpArgs{\n\t\t\tPool: pulumi.String(\"my_pool\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewFloatingIpAssociate(ctx, \"fip_1\", \u0026compute.FloatingIpAssociateArgs{\n\t\t\tFloatingIp: fip1.Address,\n\t\t\tInstanceId: instance1.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.compute.Instance;\nimport com.pulumi.openstack.compute.InstanceArgs;\nimport com.pulumi.openstack.networking.FloatingIp;\nimport com.pulumi.openstack.networking.FloatingIpArgs;\nimport com.pulumi.openstack.compute.FloatingIpAssociate;\nimport com.pulumi.openstack.compute.FloatingIpAssociateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var instance1 = new Instance(\"instance1\", InstanceArgs.builder() \n .name(\"instance_1\")\n .imageId(\"ad091b52-742f-469e-8f3c-fd81cadf0743\")\n .flavorId(3)\n .keyPair(\"my_key_pair_name\")\n .securityGroups(\"default\")\n .build());\n\n var fip1 = new FloatingIp(\"fip1\", FloatingIpArgs.builder() \n .pool(\"my_pool\")\n .build());\n\n var fip1FloatingIpAssociate = new FloatingIpAssociate(\"fip1FloatingIpAssociate\", FloatingIpAssociateArgs.builder() \n .floatingIp(fip1.address())\n .instanceId(instance1.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n instance1:\n type: openstack:compute:Instance\n name: instance_1\n properties:\n name: instance_1\n imageId: ad091b52-742f-469e-8f3c-fd81cadf0743\n flavorId: 3\n keyPair: my_key_pair_name\n securityGroups:\n - default\n fip1:\n type: openstack:networking:FloatingIp\n name: fip_1\n properties:\n pool: my_pool\n fip1FloatingIpAssociate:\n type: openstack:compute:FloatingIpAssociate\n name: fip_1\n properties:\n floatingIp: ${fip1.address}\n instanceId: ${instance1.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Explicitly set the network to attach to\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst instance1 = new openstack.compute.Instance(\"instance_1\", {\n name: \"instance_1\",\n imageId: \"ad091b52-742f-469e-8f3c-fd81cadf0743\",\n flavorId: \"3\",\n keyPair: \"my_key_pair_name\",\n securityGroups: [\"default\"],\n networks: [\n {\n name: \"my_network\",\n },\n {\n name: \"default\",\n },\n ],\n});\nconst fip1 = new openstack.networking.FloatingIp(\"fip_1\", {pool: \"my_pool\"});\nconst fip1FloatingIpAssociate = new openstack.compute.FloatingIpAssociate(\"fip_1\", {\n floatingIp: fip1.address,\n instanceId: instance1.id,\n fixedIp: instance1.networks.apply(networks =\u003e networks[1].fixedIpV4),\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\ninstance1 = openstack.compute.Instance(\"instance_1\",\n name=\"instance_1\",\n image_id=\"ad091b52-742f-469e-8f3c-fd81cadf0743\",\n flavor_id=\"3\",\n key_pair=\"my_key_pair_name\",\n security_groups=[\"default\"],\n networks=[\n openstack.compute.InstanceNetworkArgs(\n name=\"my_network\",\n ),\n openstack.compute.InstanceNetworkArgs(\n name=\"default\",\n ),\n ])\nfip1 = openstack.networking.FloatingIp(\"fip_1\", pool=\"my_pool\")\nfip1_floating_ip_associate = openstack.compute.FloatingIpAssociate(\"fip_1\",\n floating_ip=fip1.address,\n instance_id=instance1.id,\n fixed_ip=instance1.networks[1].fixed_ip_v4)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var instance1 = new OpenStack.Compute.Instance(\"instance_1\", new()\n {\n Name = \"instance_1\",\n ImageId = \"ad091b52-742f-469e-8f3c-fd81cadf0743\",\n FlavorId = \"3\",\n KeyPair = \"my_key_pair_name\",\n SecurityGroups = new[]\n {\n \"default\",\n },\n Networks = new[]\n {\n new OpenStack.Compute.Inputs.InstanceNetworkArgs\n {\n Name = \"my_network\",\n },\n new OpenStack.Compute.Inputs.InstanceNetworkArgs\n {\n Name = \"default\",\n },\n },\n });\n\n var fip1 = new OpenStack.Networking.FloatingIp(\"fip_1\", new()\n {\n Pool = \"my_pool\",\n });\n\n var fip1FloatingIpAssociate = new OpenStack.Compute.FloatingIpAssociate(\"fip_1\", new()\n {\n FloatingIp = fip1.Address,\n InstanceId = instance1.Id,\n FixedIp = instance1.Networks.Apply(networks =\u003e networks[1].FixedIpV4),\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/compute\"\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tinstance1, err := compute.NewInstance(ctx, \"instance_1\", \u0026compute.InstanceArgs{\n\t\t\tName: pulumi.String(\"instance_1\"),\n\t\t\tImageId: pulumi.String(\"ad091b52-742f-469e-8f3c-fd81cadf0743\"),\n\t\t\tFlavorId: pulumi.String(\"3\"),\n\t\t\tKeyPair: pulumi.String(\"my_key_pair_name\"),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"default\"),\n\t\t\t},\n\t\t\tNetworks: compute.InstanceNetworkArray{\n\t\t\t\t\u0026compute.InstanceNetworkArgs{\n\t\t\t\t\tName: pulumi.String(\"my_network\"),\n\t\t\t\t},\n\t\t\t\t\u0026compute.InstanceNetworkArgs{\n\t\t\t\t\tName: pulumi.String(\"default\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfip1, err := networking.NewFloatingIp(ctx, \"fip_1\", \u0026networking.FloatingIpArgs{\n\t\t\tPool: pulumi.String(\"my_pool\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewFloatingIpAssociate(ctx, \"fip_1\", \u0026compute.FloatingIpAssociateArgs{\n\t\t\tFloatingIp: fip1.Address,\n\t\t\tInstanceId: instance1.ID(),\n\t\t\tFixedIp: instance1.Networks.ApplyT(func(networks []compute.InstanceNetwork) (*string, error) {\n\t\t\t\treturn \u0026networks[1].FixedIpV4, nil\n\t\t\t}).(pulumi.StringPtrOutput),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.compute.Instance;\nimport com.pulumi.openstack.compute.InstanceArgs;\nimport com.pulumi.openstack.compute.inputs.InstanceNetworkArgs;\nimport com.pulumi.openstack.networking.FloatingIp;\nimport com.pulumi.openstack.networking.FloatingIpArgs;\nimport com.pulumi.openstack.compute.FloatingIpAssociate;\nimport com.pulumi.openstack.compute.FloatingIpAssociateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var instance1 = new Instance(\"instance1\", InstanceArgs.builder() \n .name(\"instance_1\")\n .imageId(\"ad091b52-742f-469e-8f3c-fd81cadf0743\")\n .flavorId(3)\n .keyPair(\"my_key_pair_name\")\n .securityGroups(\"default\")\n .networks( \n InstanceNetworkArgs.builder()\n .name(\"my_network\")\n .build(),\n InstanceNetworkArgs.builder()\n .name(\"default\")\n .build())\n .build());\n\n var fip1 = new FloatingIp(\"fip1\", FloatingIpArgs.builder() \n .pool(\"my_pool\")\n .build());\n\n var fip1FloatingIpAssociate = new FloatingIpAssociate(\"fip1FloatingIpAssociate\", FloatingIpAssociateArgs.builder() \n .floatingIp(fip1.address())\n .instanceId(instance1.id())\n .fixedIp(instance1.networks().applyValue(networks -\u003e networks[1].fixedIpV4()))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n instance1:\n type: openstack:compute:Instance\n name: instance_1\n properties:\n name: instance_1\n imageId: ad091b52-742f-469e-8f3c-fd81cadf0743\n flavorId: 3\n keyPair: my_key_pair_name\n securityGroups:\n - default\n networks:\n - name: my_network\n - name: default\n fip1:\n type: openstack:networking:FloatingIp\n name: fip_1\n properties:\n pool: my_pool\n fip1FloatingIpAssociate:\n type: openstack:compute:FloatingIpAssociate\n name: fip_1\n properties:\n floatingIp: ${fip1.address}\n instanceId: ${instance1.id}\n fixedIp: ${instance1.networks[1].fixedIpV4}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThis resource can be imported by specifying all three arguments, separated\nby a forward slash:\n\n```sh\n$ pulumi import openstack:compute/floatingIpAssociate:FloatingIpAssociate fip_1 floating_ip/instance_id/fixed_ip\n```\n", "properties": { "fixedIp": { "type": "string", @@ -4652,10 +4533,6 @@ "type": "string", "description": "The name of the\ndesired flavor for the server. Changing this resizes the existing server.\n" }, - "floatingIp": { - "type": "string", - "deprecationMessage": "Use the openstack.compute.FloatingIpAssociate resource instead" - }, "forceDelete": { "type": "boolean", "description": "Whether to force the OpenStack instance to be\nforcefully deleted. This is useful for environments that have reclaim / soft\ndeletion enabled.\n" @@ -4745,13 +4622,6 @@ "vendorOptions": { "$ref": "#/types/openstack:compute/InstanceVendorOptions:InstanceVendorOptions", "description": "Map of additional vendor-specific options.\nSupported options are described below.\n" - }, - "volumes": { - "type": "array", - "items": { - "$ref": "#/types/openstack:compute/InstanceVolume:InstanceVolume" - }, - "deprecationMessage": "Use block_device or openstack.compute.VolumeAttach instead" } }, "required": [ @@ -4815,10 +4685,6 @@ "type": "string", "description": "The name of the\ndesired flavor for the server. Changing this resizes the existing server.\n" }, - "floatingIp": { - "type": "string", - "deprecationMessage": "Use the openstack.compute.FloatingIpAssociate resource instead" - }, "forceDelete": { "type": "boolean", "description": "Whether to force the OpenStack instance to be\nforcefully deleted. This is useful for environments that have reclaim / soft\ndeletion enabled.\n" @@ -4909,13 +4775,6 @@ "vendorOptions": { "$ref": "#/types/openstack:compute/InstanceVendorOptions:InstanceVendorOptions", "description": "Map of additional vendor-specific options.\nSupported options are described below.\n" - }, - "volumes": { - "type": "array", - "items": { - "$ref": "#/types/openstack:compute/InstanceVolume:InstanceVolume" - }, - "deprecationMessage": "Use block_device or openstack.compute.VolumeAttach instead" } }, "stateInputs": { @@ -4981,10 +4840,6 @@ "type": "string", "description": "The name of the\ndesired flavor for the server. Changing this resizes the existing server.\n" }, - "floatingIp": { - "type": "string", - "deprecationMessage": "Use the openstack.compute.FloatingIpAssociate resource instead" - }, "forceDelete": { "type": "boolean", "description": "Whether to force the OpenStack instance to be\nforcefully deleted. This is useful for environments that have reclaim / soft\ndeletion enabled.\n" @@ -5079,20 +4934,13 @@ "vendorOptions": { "$ref": "#/types/openstack:compute/InstanceVendorOptions:InstanceVendorOptions", "description": "Map of additional vendor-specific options.\nSupported options are described below.\n" - }, - "volumes": { - "type": "array", - "items": { - "$ref": "#/types/openstack:compute/InstanceVolume:InstanceVolume" - }, - "deprecationMessage": "Use block_device or openstack.compute.VolumeAttach instead" } }, "type": "object" } }, "openstack:compute/interfaceAttach:InterfaceAttach": { - "description": "Attaches a Network Interface (a Port) to an Instance using the OpenStack\nCompute (Nova) v2 API.\n\n## Example Usage\n\n### Basic Attachment\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst network1 = new openstack.networking.Network(\"network_1\", {\n name: \"network_1\",\n adminStateUp: true,\n});\nconst instance1 = new openstack.compute.Instance(\"instance_1\", {\n name: \"instance_1\",\n securityGroups: [\"default\"],\n});\nconst ai1 = new openstack.compute.InterfaceAttach(\"ai_1\", {\n instanceId: instance1.id,\n networkId: network1OpenstackNetworkingPortV2.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nnetwork1 = openstack.networking.Network(\"network_1\",\n name=\"network_1\",\n admin_state_up=True)\ninstance1 = openstack.compute.Instance(\"instance_1\",\n name=\"instance_1\",\n security_groups=[\"default\"])\nai1 = openstack.compute.InterfaceAttach(\"ai_1\",\n instance_id=instance1.id,\n network_id=network1_openstack_networking_port_v2[\"id\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var network1 = new OpenStack.Networking.Network(\"network_1\", new()\n {\n Name = \"network_1\",\n AdminStateUp = true,\n });\n\n var instance1 = new OpenStack.Compute.Instance(\"instance_1\", new()\n {\n Name = \"instance_1\",\n SecurityGroups = new[]\n {\n \"default\",\n },\n });\n\n var ai1 = new OpenStack.Compute.InterfaceAttach(\"ai_1\", new()\n {\n InstanceId = instance1.Id,\n NetworkId = network1OpenstackNetworkingPortV2.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/compute\"\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := networking.NewNetwork(ctx, \"network_1\", \u0026networking.NetworkArgs{\n\t\t\tName: pulumi.String(\"network_1\"),\n\t\t\tAdminStateUp: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinstance1, err := compute.NewInstance(ctx, \"instance_1\", \u0026compute.InstanceArgs{\n\t\t\tName: pulumi.String(\"instance_1\"),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"default\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewInterfaceAttach(ctx, \"ai_1\", \u0026compute.InterfaceAttachArgs{\n\t\t\tInstanceId: instance1.ID(),\n\t\t\tNetworkId: pulumi.Any(network1OpenstackNetworkingPortV2.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.Network;\nimport com.pulumi.openstack.networking.NetworkArgs;\nimport com.pulumi.openstack.compute.Instance;\nimport com.pulumi.openstack.compute.InstanceArgs;\nimport com.pulumi.openstack.compute.InterfaceAttach;\nimport com.pulumi.openstack.compute.InterfaceAttachArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var network1 = new Network(\"network1\", NetworkArgs.builder() \n .name(\"network_1\")\n .adminStateUp(\"true\")\n .build());\n\n var instance1 = new Instance(\"instance1\", InstanceArgs.builder() \n .name(\"instance_1\")\n .securityGroups(\"default\")\n .build());\n\n var ai1 = new InterfaceAttach(\"ai1\", InterfaceAttachArgs.builder() \n .instanceId(instance1.id())\n .networkId(network1OpenstackNetworkingPortV2.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n network1:\n type: openstack:networking:Network\n name: network_1\n properties:\n name: network_1\n adminStateUp: 'true'\n instance1:\n type: openstack:compute:Instance\n name: instance_1\n properties:\n name: instance_1\n securityGroups:\n - default\n ai1:\n type: openstack:compute:InterfaceAttach\n name: ai_1\n properties:\n instanceId: ${instance1.id}\n networkId: ${network1OpenstackNetworkingPortV2.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Attachment Specifying a Fixed IP\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst network1 = new openstack.networking.Network(\"network_1\", {\n name: \"network_1\",\n adminStateUp: true,\n});\nconst instance1 = new openstack.compute.Instance(\"instance_1\", {\n name: \"instance_1\",\n securityGroups: [\"default\"],\n});\nconst ai1 = new openstack.compute.InterfaceAttach(\"ai_1\", {\n instanceId: instance1.id,\n networkId: network1OpenstackNetworkingPortV2.id,\n fixedIp: \"10.0.10.10\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nnetwork1 = openstack.networking.Network(\"network_1\",\n name=\"network_1\",\n admin_state_up=True)\ninstance1 = openstack.compute.Instance(\"instance_1\",\n name=\"instance_1\",\n security_groups=[\"default\"])\nai1 = openstack.compute.InterfaceAttach(\"ai_1\",\n instance_id=instance1.id,\n network_id=network1_openstack_networking_port_v2[\"id\"],\n fixed_ip=\"10.0.10.10\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var network1 = new OpenStack.Networking.Network(\"network_1\", new()\n {\n Name = \"network_1\",\n AdminStateUp = true,\n });\n\n var instance1 = new OpenStack.Compute.Instance(\"instance_1\", new()\n {\n Name = \"instance_1\",\n SecurityGroups = new[]\n {\n \"default\",\n },\n });\n\n var ai1 = new OpenStack.Compute.InterfaceAttach(\"ai_1\", new()\n {\n InstanceId = instance1.Id,\n NetworkId = network1OpenstackNetworkingPortV2.Id,\n FixedIp = \"10.0.10.10\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/compute\"\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := networking.NewNetwork(ctx, \"network_1\", \u0026networking.NetworkArgs{\n\t\t\tName: pulumi.String(\"network_1\"),\n\t\t\tAdminStateUp: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinstance1, err := compute.NewInstance(ctx, \"instance_1\", \u0026compute.InstanceArgs{\n\t\t\tName: pulumi.String(\"instance_1\"),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"default\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewInterfaceAttach(ctx, \"ai_1\", \u0026compute.InterfaceAttachArgs{\n\t\t\tInstanceId: instance1.ID(),\n\t\t\tNetworkId: pulumi.Any(network1OpenstackNetworkingPortV2.Id),\n\t\t\tFixedIp: pulumi.String(\"10.0.10.10\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.Network;\nimport com.pulumi.openstack.networking.NetworkArgs;\nimport com.pulumi.openstack.compute.Instance;\nimport com.pulumi.openstack.compute.InstanceArgs;\nimport com.pulumi.openstack.compute.InterfaceAttach;\nimport com.pulumi.openstack.compute.InterfaceAttachArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var network1 = new Network(\"network1\", NetworkArgs.builder() \n .name(\"network_1\")\n .adminStateUp(\"true\")\n .build());\n\n var instance1 = new Instance(\"instance1\", InstanceArgs.builder() \n .name(\"instance_1\")\n .securityGroups(\"default\")\n .build());\n\n var ai1 = new InterfaceAttach(\"ai1\", InterfaceAttachArgs.builder() \n .instanceId(instance1.id())\n .networkId(network1OpenstackNetworkingPortV2.id())\n .fixedIp(\"10.0.10.10\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n network1:\n type: openstack:networking:Network\n name: network_1\n properties:\n name: network_1\n adminStateUp: 'true'\n instance1:\n type: openstack:compute:Instance\n name: instance_1\n properties:\n name: instance_1\n securityGroups:\n - default\n ai1:\n type: openstack:compute:InterfaceAttach\n name: ai_1\n properties:\n instanceId: ${instance1.id}\n networkId: ${network1OpenstackNetworkingPortV2.id}\n fixedIp: 10.0.10.10\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n### Attachment Using an Existing Port\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst network1 = new openstack.networking.Network(\"network_1\", {\n name: \"network_1\",\n adminStateUp: true,\n});\nconst port1 = new openstack.networking.Port(\"port_1\", {\n name: \"port_1\",\n networkId: network1.id,\n adminStateUp: true,\n});\nconst instance1 = new openstack.compute.Instance(\"instance_1\", {\n name: \"instance_1\",\n securityGroups: [\"default\"],\n});\nconst ai1 = new openstack.compute.InterfaceAttach(\"ai_1\", {\n instanceId: instance1.id,\n portId: port1.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nnetwork1 = openstack.networking.Network(\"network_1\",\n name=\"network_1\",\n admin_state_up=True)\nport1 = openstack.networking.Port(\"port_1\",\n name=\"port_1\",\n network_id=network1.id,\n admin_state_up=True)\ninstance1 = openstack.compute.Instance(\"instance_1\",\n name=\"instance_1\",\n security_groups=[\"default\"])\nai1 = openstack.compute.InterfaceAttach(\"ai_1\",\n instance_id=instance1.id,\n port_id=port1.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var network1 = new OpenStack.Networking.Network(\"network_1\", new()\n {\n Name = \"network_1\",\n AdminStateUp = true,\n });\n\n var port1 = new OpenStack.Networking.Port(\"port_1\", new()\n {\n Name = \"port_1\",\n NetworkId = network1.Id,\n AdminStateUp = true,\n });\n\n var instance1 = new OpenStack.Compute.Instance(\"instance_1\", new()\n {\n Name = \"instance_1\",\n SecurityGroups = new[]\n {\n \"default\",\n },\n });\n\n var ai1 = new OpenStack.Compute.InterfaceAttach(\"ai_1\", new()\n {\n InstanceId = instance1.Id,\n PortId = port1.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/compute\"\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tnetwork1, err := networking.NewNetwork(ctx, \"network_1\", \u0026networking.NetworkArgs{\n\t\t\tName: pulumi.String(\"network_1\"),\n\t\t\tAdminStateUp: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tport1, err := networking.NewPort(ctx, \"port_1\", \u0026networking.PortArgs{\n\t\t\tName: pulumi.String(\"port_1\"),\n\t\t\tNetworkId: network1.ID(),\n\t\t\tAdminStateUp: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinstance1, err := compute.NewInstance(ctx, \"instance_1\", \u0026compute.InstanceArgs{\n\t\t\tName: pulumi.String(\"instance_1\"),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"default\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewInterfaceAttach(ctx, \"ai_1\", \u0026compute.InterfaceAttachArgs{\n\t\t\tInstanceId: instance1.ID(),\n\t\t\tPortId: port1.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.Network;\nimport com.pulumi.openstack.networking.NetworkArgs;\nimport com.pulumi.openstack.networking.Port;\nimport com.pulumi.openstack.networking.PortArgs;\nimport com.pulumi.openstack.compute.Instance;\nimport com.pulumi.openstack.compute.InstanceArgs;\nimport com.pulumi.openstack.compute.InterfaceAttach;\nimport com.pulumi.openstack.compute.InterfaceAttachArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var network1 = new Network(\"network1\", NetworkArgs.builder() \n .name(\"network_1\")\n .adminStateUp(\"true\")\n .build());\n\n var port1 = new Port(\"port1\", PortArgs.builder() \n .name(\"port_1\")\n .networkId(network1.id())\n .adminStateUp(\"true\")\n .build());\n\n var instance1 = new Instance(\"instance1\", InstanceArgs.builder() \n .name(\"instance_1\")\n .securityGroups(\"default\")\n .build());\n\n var ai1 = new InterfaceAttach(\"ai1\", InterfaceAttachArgs.builder() \n .instanceId(instance1.id())\n .portId(port1.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n network1:\n type: openstack:networking:Network\n name: network_1\n properties:\n name: network_1\n adminStateUp: 'true'\n port1:\n type: openstack:networking:Port\n name: port_1\n properties:\n name: port_1\n networkId: ${network1.id}\n adminStateUp: 'true'\n instance1:\n type: openstack:compute:Instance\n name: instance_1\n properties:\n name: instance_1\n securityGroups:\n - default\n ai1:\n type: openstack:compute:InterfaceAttach\n name: ai_1\n properties:\n instanceId: ${instance1.id}\n portId: ${port1.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nInterface Attachments can be imported using the Instance ID and Port ID\nseparated by a slash, e.g.\n\n```sh\n$ pulumi import openstack:compute/interfaceAttach:InterfaceAttach ai_1 89c60255-9bd6-460c-822a-e2b959ede9d2/45670584-225f-46c3-b33e-6707b589b666\n```\n", + "description": "Attaches a Network Interface (a Port) to an Instance using the OpenStack\nCompute (Nova) v2 API.\n\n## Example Usage\n\n### Basic Attachment\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst network1 = new openstack.networking.Network(\"network_1\", {\n name: \"network_1\",\n adminStateUp: true,\n});\nconst instance1 = new openstack.compute.Instance(\"instance_1\", {\n name: \"instance_1\",\n securityGroups: [\"default\"],\n});\nconst ai1 = new openstack.compute.InterfaceAttach(\"ai_1\", {\n instanceId: instance1.id,\n networkId: network1OpenstackNetworkingPortV2.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nnetwork1 = openstack.networking.Network(\"network_1\",\n name=\"network_1\",\n admin_state_up=True)\ninstance1 = openstack.compute.Instance(\"instance_1\",\n name=\"instance_1\",\n security_groups=[\"default\"])\nai1 = openstack.compute.InterfaceAttach(\"ai_1\",\n instance_id=instance1.id,\n network_id=network1_openstack_networking_port_v2[\"id\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var network1 = new OpenStack.Networking.Network(\"network_1\", new()\n {\n Name = \"network_1\",\n AdminStateUp = true,\n });\n\n var instance1 = new OpenStack.Compute.Instance(\"instance_1\", new()\n {\n Name = \"instance_1\",\n SecurityGroups = new[]\n {\n \"default\",\n },\n });\n\n var ai1 = new OpenStack.Compute.InterfaceAttach(\"ai_1\", new()\n {\n InstanceId = instance1.Id,\n NetworkId = network1OpenstackNetworkingPortV2.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/compute\"\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := networking.NewNetwork(ctx, \"network_1\", \u0026networking.NetworkArgs{\n\t\t\tName: pulumi.String(\"network_1\"),\n\t\t\tAdminStateUp: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinstance1, err := compute.NewInstance(ctx, \"instance_1\", \u0026compute.InstanceArgs{\n\t\t\tName: pulumi.String(\"instance_1\"),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"default\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewInterfaceAttach(ctx, \"ai_1\", \u0026compute.InterfaceAttachArgs{\n\t\t\tInstanceId: instance1.ID(),\n\t\t\tNetworkId: pulumi.Any(network1OpenstackNetworkingPortV2.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.Network;\nimport com.pulumi.openstack.networking.NetworkArgs;\nimport com.pulumi.openstack.compute.Instance;\nimport com.pulumi.openstack.compute.InstanceArgs;\nimport com.pulumi.openstack.compute.InterfaceAttach;\nimport com.pulumi.openstack.compute.InterfaceAttachArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var network1 = new Network(\"network1\", NetworkArgs.builder() \n .name(\"network_1\")\n .adminStateUp(\"true\")\n .build());\n\n var instance1 = new Instance(\"instance1\", InstanceArgs.builder() \n .name(\"instance_1\")\n .securityGroups(\"default\")\n .build());\n\n var ai1 = new InterfaceAttach(\"ai1\", InterfaceAttachArgs.builder() \n .instanceId(instance1.id())\n .networkId(network1OpenstackNetworkingPortV2.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n network1:\n type: openstack:networking:Network\n name: network_1\n properties:\n name: network_1\n adminStateUp: 'true'\n instance1:\n type: openstack:compute:Instance\n name: instance_1\n properties:\n name: instance_1\n securityGroups:\n - default\n ai1:\n type: openstack:compute:InterfaceAttach\n name: ai_1\n properties:\n instanceId: ${instance1.id}\n networkId: ${network1OpenstackNetworkingPortV2.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Attachment Specifying a Fixed IP\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst network1 = new openstack.networking.Network(\"network_1\", {\n name: \"network_1\",\n adminStateUp: true,\n});\nconst instance1 = new openstack.compute.Instance(\"instance_1\", {\n name: \"instance_1\",\n securityGroups: [\"default\"],\n});\nconst ai1 = new openstack.compute.InterfaceAttach(\"ai_1\", {\n instanceId: instance1.id,\n networkId: network1OpenstackNetworkingPortV2.id,\n fixedIp: \"10.0.10.10\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nnetwork1 = openstack.networking.Network(\"network_1\",\n name=\"network_1\",\n admin_state_up=True)\ninstance1 = openstack.compute.Instance(\"instance_1\",\n name=\"instance_1\",\n security_groups=[\"default\"])\nai1 = openstack.compute.InterfaceAttach(\"ai_1\",\n instance_id=instance1.id,\n network_id=network1_openstack_networking_port_v2[\"id\"],\n fixed_ip=\"10.0.10.10\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var network1 = new OpenStack.Networking.Network(\"network_1\", new()\n {\n Name = \"network_1\",\n AdminStateUp = true,\n });\n\n var instance1 = new OpenStack.Compute.Instance(\"instance_1\", new()\n {\n Name = \"instance_1\",\n SecurityGroups = new[]\n {\n \"default\",\n },\n });\n\n var ai1 = new OpenStack.Compute.InterfaceAttach(\"ai_1\", new()\n {\n InstanceId = instance1.Id,\n NetworkId = network1OpenstackNetworkingPortV2.Id,\n FixedIp = \"10.0.10.10\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/compute\"\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := networking.NewNetwork(ctx, \"network_1\", \u0026networking.NetworkArgs{\n\t\t\tName: pulumi.String(\"network_1\"),\n\t\t\tAdminStateUp: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinstance1, err := compute.NewInstance(ctx, \"instance_1\", \u0026compute.InstanceArgs{\n\t\t\tName: pulumi.String(\"instance_1\"),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"default\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewInterfaceAttach(ctx, \"ai_1\", \u0026compute.InterfaceAttachArgs{\n\t\t\tInstanceId: instance1.ID(),\n\t\t\tNetworkId: pulumi.Any(network1OpenstackNetworkingPortV2.Id),\n\t\t\tFixedIp: pulumi.String(\"10.0.10.10\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.Network;\nimport com.pulumi.openstack.networking.NetworkArgs;\nimport com.pulumi.openstack.compute.Instance;\nimport com.pulumi.openstack.compute.InstanceArgs;\nimport com.pulumi.openstack.compute.InterfaceAttach;\nimport com.pulumi.openstack.compute.InterfaceAttachArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var network1 = new Network(\"network1\", NetworkArgs.builder() \n .name(\"network_1\")\n .adminStateUp(\"true\")\n .build());\n\n var instance1 = new Instance(\"instance1\", InstanceArgs.builder() \n .name(\"instance_1\")\n .securityGroups(\"default\")\n .build());\n\n var ai1 = new InterfaceAttach(\"ai1\", InterfaceAttachArgs.builder() \n .instanceId(instance1.id())\n .networkId(network1OpenstackNetworkingPortV2.id())\n .fixedIp(\"10.0.10.10\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n network1:\n type: openstack:networking:Network\n name: network_1\n properties:\n name: network_1\n adminStateUp: 'true'\n instance1:\n type: openstack:compute:Instance\n name: instance_1\n properties:\n name: instance_1\n securityGroups:\n - default\n ai1:\n type: openstack:compute:InterfaceAttach\n name: ai_1\n properties:\n instanceId: ${instance1.id}\n networkId: ${network1OpenstackNetworkingPortV2.id}\n fixedIp: 10.0.10.10\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n### Attachment Using an Existing Port\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst network1 = new openstack.networking.Network(\"network_1\", {\n name: \"network_1\",\n adminStateUp: true,\n});\nconst port1 = new openstack.networking.Port(\"port_1\", {\n name: \"port_1\",\n networkId: network1.id,\n adminStateUp: true,\n});\nconst instance1 = new openstack.compute.Instance(\"instance_1\", {\n name: \"instance_1\",\n securityGroups: [\"default\"],\n});\nconst ai1 = new openstack.compute.InterfaceAttach(\"ai_1\", {\n instanceId: instance1.id,\n portId: port1.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nnetwork1 = openstack.networking.Network(\"network_1\",\n name=\"network_1\",\n admin_state_up=True)\nport1 = openstack.networking.Port(\"port_1\",\n name=\"port_1\",\n network_id=network1.id,\n admin_state_up=True)\ninstance1 = openstack.compute.Instance(\"instance_1\",\n name=\"instance_1\",\n security_groups=[\"default\"])\nai1 = openstack.compute.InterfaceAttach(\"ai_1\",\n instance_id=instance1.id,\n port_id=port1.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var network1 = new OpenStack.Networking.Network(\"network_1\", new()\n {\n Name = \"network_1\",\n AdminStateUp = true,\n });\n\n var port1 = new OpenStack.Networking.Port(\"port_1\", new()\n {\n Name = \"port_1\",\n NetworkId = network1.Id,\n AdminStateUp = true,\n });\n\n var instance1 = new OpenStack.Compute.Instance(\"instance_1\", new()\n {\n Name = \"instance_1\",\n SecurityGroups = new[]\n {\n \"default\",\n },\n });\n\n var ai1 = new OpenStack.Compute.InterfaceAttach(\"ai_1\", new()\n {\n InstanceId = instance1.Id,\n PortId = port1.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/compute\"\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tnetwork1, err := networking.NewNetwork(ctx, \"network_1\", \u0026networking.NetworkArgs{\n\t\t\tName: pulumi.String(\"network_1\"),\n\t\t\tAdminStateUp: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tport1, err := networking.NewPort(ctx, \"port_1\", \u0026networking.PortArgs{\n\t\t\tName: pulumi.String(\"port_1\"),\n\t\t\tNetworkId: network1.ID(),\n\t\t\tAdminStateUp: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinstance1, err := compute.NewInstance(ctx, \"instance_1\", \u0026compute.InstanceArgs{\n\t\t\tName: pulumi.String(\"instance_1\"),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"default\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewInterfaceAttach(ctx, \"ai_1\", \u0026compute.InterfaceAttachArgs{\n\t\t\tInstanceId: instance1.ID(),\n\t\t\tPortId: port1.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.Network;\nimport com.pulumi.openstack.networking.NetworkArgs;\nimport com.pulumi.openstack.networking.Port;\nimport com.pulumi.openstack.networking.PortArgs;\nimport com.pulumi.openstack.compute.Instance;\nimport com.pulumi.openstack.compute.InstanceArgs;\nimport com.pulumi.openstack.compute.InterfaceAttach;\nimport com.pulumi.openstack.compute.InterfaceAttachArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var network1 = new Network(\"network1\", NetworkArgs.builder() \n .name(\"network_1\")\n .adminStateUp(\"true\")\n .build());\n\n var port1 = new Port(\"port1\", PortArgs.builder() \n .name(\"port_1\")\n .networkId(network1.id())\n .adminStateUp(\"true\")\n .build());\n\n var instance1 = new Instance(\"instance1\", InstanceArgs.builder() \n .name(\"instance_1\")\n .securityGroups(\"default\")\n .build());\n\n var ai1 = new InterfaceAttach(\"ai1\", InterfaceAttachArgs.builder() \n .instanceId(instance1.id())\n .portId(port1.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n network1:\n type: openstack:networking:Network\n name: network_1\n properties:\n name: network_1\n adminStateUp: 'true'\n port1:\n type: openstack:networking:Port\n name: port_1\n properties:\n name: port_1\n networkId: ${network1.id}\n adminStateUp: 'true'\n instance1:\n type: openstack:compute:Instance\n name: instance_1\n properties:\n name: instance_1\n securityGroups:\n - default\n ai1:\n type: openstack:compute:InterfaceAttach\n name: ai_1\n properties:\n instanceId: ${instance1.id}\n portId: ${port1.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nInterface Attachments can be imported using the Instance ID and Port ID\nseparated by a slash, e.g.\n\n```sh\n$ pulumi import openstack:compute/interfaceAttach:InterfaceAttach ai_1 89c60255-9bd6-460c-822a-e2b959ede9d2/45670584-225f-46c3-b33e-6707b589b666\n```\n", "properties": { "fixedIp": { "type": "string", @@ -5185,7 +5033,7 @@ } }, "openstack:compute/keypair:Keypair": { - "description": "## Example Usage\n\n### Import an Existing Public Key\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst test_keypair = new openstack.compute.Keypair(\"test-keypair\", {\n name: \"my-keypair\",\n publicKey: \"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDAjpC1hwiOCCmKEWxJ4qzTTsJbKzndLotBCz5PcwtUnflmU+gHJtWMZKpuEGVi29h0A/+ydKek1O18k10Ff+4tyFjiHDQAnOfgWf7+b1yK+qDip3X1C0UPMbwHlTfSGWLGZqd9LvEFx9k3h/M+VtMvwR1lJ9LUyTAImnNjWG7TaIPmui30HvM2UiFEmqkr4ijq45MyX2+fLIePLRIF61p4whjHAQYufqyno3BS48icQb4p6iVEZPo4AE2o9oIyQvj2mx4dk5Y8CgSETOZTYDOR3rU2fZTRDRgPJDH9FWvQjF5tA0p3d9CoWWd2s6GKKbfoUIi8R/Db1BSPJwkqB\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\ntest_keypair = openstack.compute.Keypair(\"test-keypair\",\n name=\"my-keypair\",\n public_key=\"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDAjpC1hwiOCCmKEWxJ4qzTTsJbKzndLotBCz5PcwtUnflmU+gHJtWMZKpuEGVi29h0A/+ydKek1O18k10Ff+4tyFjiHDQAnOfgWf7+b1yK+qDip3X1C0UPMbwHlTfSGWLGZqd9LvEFx9k3h/M+VtMvwR1lJ9LUyTAImnNjWG7TaIPmui30HvM2UiFEmqkr4ijq45MyX2+fLIePLRIF61p4whjHAQYufqyno3BS48icQb4p6iVEZPo4AE2o9oIyQvj2mx4dk5Y8CgSETOZTYDOR3rU2fZTRDRgPJDH9FWvQjF5tA0p3d9CoWWd2s6GKKbfoUIi8R/Db1BSPJwkqB\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var test_keypair = new OpenStack.Compute.Keypair(\"test-keypair\", new()\n {\n Name = \"my-keypair\",\n PublicKey = \"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDAjpC1hwiOCCmKEWxJ4qzTTsJbKzndLotBCz5PcwtUnflmU+gHJtWMZKpuEGVi29h0A/+ydKek1O18k10Ff+4tyFjiHDQAnOfgWf7+b1yK+qDip3X1C0UPMbwHlTfSGWLGZqd9LvEFx9k3h/M+VtMvwR1lJ9LUyTAImnNjWG7TaIPmui30HvM2UiFEmqkr4ijq45MyX2+fLIePLRIF61p4whjHAQYufqyno3BS48icQb4p6iVEZPo4AE2o9oIyQvj2mx4dk5Y8CgSETOZTYDOR3rU2fZTRDRgPJDH9FWvQjF5tA0p3d9CoWWd2s6GKKbfoUIi8R/Db1BSPJwkqB\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := compute.NewKeypair(ctx, \"test-keypair\", \u0026compute.KeypairArgs{\n\t\t\tName: pulumi.String(\"my-keypair\"),\n\t\t\tPublicKey: pulumi.String(\"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDAjpC1hwiOCCmKEWxJ4qzTTsJbKzndLotBCz5PcwtUnflmU+gHJtWMZKpuEGVi29h0A/+ydKek1O18k10Ff+4tyFjiHDQAnOfgWf7+b1yK+qDip3X1C0UPMbwHlTfSGWLGZqd9LvEFx9k3h/M+VtMvwR1lJ9LUyTAImnNjWG7TaIPmui30HvM2UiFEmqkr4ijq45MyX2+fLIePLRIF61p4whjHAQYufqyno3BS48icQb4p6iVEZPo4AE2o9oIyQvj2mx4dk5Y8CgSETOZTYDOR3rU2fZTRDRgPJDH9FWvQjF5tA0p3d9CoWWd2s6GKKbfoUIi8R/Db1BSPJwkqB\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.compute.Keypair;\nimport com.pulumi.openstack.compute.KeypairArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var test_keypair = new Keypair(\"test-keypair\", KeypairArgs.builder() \n .name(\"my-keypair\")\n .publicKey(\"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDAjpC1hwiOCCmKEWxJ4qzTTsJbKzndLotBCz5PcwtUnflmU+gHJtWMZKpuEGVi29h0A/+ydKek1O18k10Ff+4tyFjiHDQAnOfgWf7+b1yK+qDip3X1C0UPMbwHlTfSGWLGZqd9LvEFx9k3h/M+VtMvwR1lJ9LUyTAImnNjWG7TaIPmui30HvM2UiFEmqkr4ijq45MyX2+fLIePLRIF61p4whjHAQYufqyno3BS48icQb4p6iVEZPo4AE2o9oIyQvj2mx4dk5Y8CgSETOZTYDOR3rU2fZTRDRgPJDH9FWvQjF5tA0p3d9CoWWd2s6GKKbfoUIi8R/Db1BSPJwkqB\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n test-keypair:\n type: openstack:compute:Keypair\n properties:\n name: my-keypair\n publicKey: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDAjpC1hwiOCCmKEWxJ4qzTTsJbKzndLotBCz5PcwtUnflmU+gHJtWMZKpuEGVi29h0A/+ydKek1O18k10Ff+4tyFjiHDQAnOfgWf7+b1yK+qDip3X1C0UPMbwHlTfSGWLGZqd9LvEFx9k3h/M+VtMvwR1lJ9LUyTAImnNjWG7TaIPmui30HvM2UiFEmqkr4ijq45MyX2+fLIePLRIF61p4whjHAQYufqyno3BS48icQb4p6iVEZPo4AE2o9oIyQvj2mx4dk5Y8CgSETOZTYDOR3rU2fZTRDRgPJDH9FWvQjF5tA0p3d9CoWWd2s6GKKbfoUIi8R/Db1BSPJwkqB\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Generate a Public/Private Key Pair\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst test_keypair = new openstack.compute.Keypair(\"test-keypair\", {name: \"my-keypair\"});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\ntest_keypair = openstack.compute.Keypair(\"test-keypair\", name=\"my-keypair\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var test_keypair = new OpenStack.Compute.Keypair(\"test-keypair\", new()\n {\n Name = \"my-keypair\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := compute.NewKeypair(ctx, \"test-keypair\", \u0026compute.KeypairArgs{\n\t\t\tName: pulumi.String(\"my-keypair\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.compute.Keypair;\nimport com.pulumi.openstack.compute.KeypairArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var test_keypair = new Keypair(\"test-keypair\", KeypairArgs.builder() \n .name(\"my-keypair\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n test-keypair:\n type: openstack:compute:Keypair\n properties:\n name: my-keypair\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nKeypairs can be imported using the `name`, e.g.\n\n```sh\n$ pulumi import openstack:compute/keypair:Keypair my-keypair test-keypair\n```\n", + "description": "## Example Usage\n\n### Import an Existing Public Key\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst test_keypair = new openstack.compute.Keypair(\"test-keypair\", {\n name: \"my-keypair\",\n publicKey: \"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDAjpC1hwiOCCmKEWxJ4qzTTsJbKzndLotBCz5PcwtUnflmU+gHJtWMZKpuEGVi29h0A/+ydKek1O18k10Ff+4tyFjiHDQAnOfgWf7+b1yK+qDip3X1C0UPMbwHlTfSGWLGZqd9LvEFx9k3h/M+VtMvwR1lJ9LUyTAImnNjWG7TaIPmui30HvM2UiFEmqkr4ijq45MyX2+fLIePLRIF61p4whjHAQYufqyno3BS48icQb4p6iVEZPo4AE2o9oIyQvj2mx4dk5Y8CgSETOZTYDOR3rU2fZTRDRgPJDH9FWvQjF5tA0p3d9CoWWd2s6GKKbfoUIi8R/Db1BSPJwkqB\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\ntest_keypair = openstack.compute.Keypair(\"test-keypair\",\n name=\"my-keypair\",\n public_key=\"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDAjpC1hwiOCCmKEWxJ4qzTTsJbKzndLotBCz5PcwtUnflmU+gHJtWMZKpuEGVi29h0A/+ydKek1O18k10Ff+4tyFjiHDQAnOfgWf7+b1yK+qDip3X1C0UPMbwHlTfSGWLGZqd9LvEFx9k3h/M+VtMvwR1lJ9LUyTAImnNjWG7TaIPmui30HvM2UiFEmqkr4ijq45MyX2+fLIePLRIF61p4whjHAQYufqyno3BS48icQb4p6iVEZPo4AE2o9oIyQvj2mx4dk5Y8CgSETOZTYDOR3rU2fZTRDRgPJDH9FWvQjF5tA0p3d9CoWWd2s6GKKbfoUIi8R/Db1BSPJwkqB\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var test_keypair = new OpenStack.Compute.Keypair(\"test-keypair\", new()\n {\n Name = \"my-keypair\",\n PublicKey = \"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDAjpC1hwiOCCmKEWxJ4qzTTsJbKzndLotBCz5PcwtUnflmU+gHJtWMZKpuEGVi29h0A/+ydKek1O18k10Ff+4tyFjiHDQAnOfgWf7+b1yK+qDip3X1C0UPMbwHlTfSGWLGZqd9LvEFx9k3h/M+VtMvwR1lJ9LUyTAImnNjWG7TaIPmui30HvM2UiFEmqkr4ijq45MyX2+fLIePLRIF61p4whjHAQYufqyno3BS48icQb4p6iVEZPo4AE2o9oIyQvj2mx4dk5Y8CgSETOZTYDOR3rU2fZTRDRgPJDH9FWvQjF5tA0p3d9CoWWd2s6GKKbfoUIi8R/Db1BSPJwkqB\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := compute.NewKeypair(ctx, \"test-keypair\", \u0026compute.KeypairArgs{\n\t\t\tName: pulumi.String(\"my-keypair\"),\n\t\t\tPublicKey: pulumi.String(\"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDAjpC1hwiOCCmKEWxJ4qzTTsJbKzndLotBCz5PcwtUnflmU+gHJtWMZKpuEGVi29h0A/+ydKek1O18k10Ff+4tyFjiHDQAnOfgWf7+b1yK+qDip3X1C0UPMbwHlTfSGWLGZqd9LvEFx9k3h/M+VtMvwR1lJ9LUyTAImnNjWG7TaIPmui30HvM2UiFEmqkr4ijq45MyX2+fLIePLRIF61p4whjHAQYufqyno3BS48icQb4p6iVEZPo4AE2o9oIyQvj2mx4dk5Y8CgSETOZTYDOR3rU2fZTRDRgPJDH9FWvQjF5tA0p3d9CoWWd2s6GKKbfoUIi8R/Db1BSPJwkqB\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.compute.Keypair;\nimport com.pulumi.openstack.compute.KeypairArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var test_keypair = new Keypair(\"test-keypair\", KeypairArgs.builder() \n .name(\"my-keypair\")\n .publicKey(\"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDAjpC1hwiOCCmKEWxJ4qzTTsJbKzndLotBCz5PcwtUnflmU+gHJtWMZKpuEGVi29h0A/+ydKek1O18k10Ff+4tyFjiHDQAnOfgWf7+b1yK+qDip3X1C0UPMbwHlTfSGWLGZqd9LvEFx9k3h/M+VtMvwR1lJ9LUyTAImnNjWG7TaIPmui30HvM2UiFEmqkr4ijq45MyX2+fLIePLRIF61p4whjHAQYufqyno3BS48icQb4p6iVEZPo4AE2o9oIyQvj2mx4dk5Y8CgSETOZTYDOR3rU2fZTRDRgPJDH9FWvQjF5tA0p3d9CoWWd2s6GKKbfoUIi8R/Db1BSPJwkqB\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n test-keypair:\n type: openstack:compute:Keypair\n properties:\n name: my-keypair\n publicKey: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDAjpC1hwiOCCmKEWxJ4qzTTsJbKzndLotBCz5PcwtUnflmU+gHJtWMZKpuEGVi29h0A/+ydKek1O18k10Ff+4tyFjiHDQAnOfgWf7+b1yK+qDip3X1C0UPMbwHlTfSGWLGZqd9LvEFx9k3h/M+VtMvwR1lJ9LUyTAImnNjWG7TaIPmui30HvM2UiFEmqkr4ijq45MyX2+fLIePLRIF61p4whjHAQYufqyno3BS48icQb4p6iVEZPo4AE2o9oIyQvj2mx4dk5Y8CgSETOZTYDOR3rU2fZTRDRgPJDH9FWvQjF5tA0p3d9CoWWd2s6GKKbfoUIi8R/Db1BSPJwkqB\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Generate a Public/Private Key Pair\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst test_keypair = new openstack.compute.Keypair(\"test-keypair\", {name: \"my-keypair\"});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\ntest_keypair = openstack.compute.Keypair(\"test-keypair\", name=\"my-keypair\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var test_keypair = new OpenStack.Compute.Keypair(\"test-keypair\", new()\n {\n Name = \"my-keypair\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := compute.NewKeypair(ctx, \"test-keypair\", \u0026compute.KeypairArgs{\n\t\t\tName: pulumi.String(\"my-keypair\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.compute.Keypair;\nimport com.pulumi.openstack.compute.KeypairArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var test_keypair = new Keypair(\"test-keypair\", KeypairArgs.builder() \n .name(\"my-keypair\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n test-keypair:\n type: openstack:compute:Keypair\n properties:\n name: my-keypair\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nKeypairs can be imported using the `name`, e.g.\n\n```sh\n$ pulumi import openstack:compute/keypair:Keypair my-keypair test-keypair\n```\n", "properties": { "fingerprint": { "type": "string", @@ -5533,7 +5381,7 @@ } }, "openstack:compute/secGroup:SecGroup": { - "description": "Manages a V2 security group resource within OpenStack.\n\nPlease note that managing security groups through the OpenStack Compute API\nhas been deprecated. Unless you are using an older OpenStack environment, it is\nrecommended to use the `openstack.networking.SecGroup`\nand `openstack.networking.SecGroupRule`\nresources instead, which uses the OpenStack Networking API.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst secgroup1 = new openstack.compute.SecGroup(\"secgroup_1\", {\n name: \"my_secgroup\",\n description: \"my security group\",\n rules: [\n {\n fromPort: 22,\n toPort: 22,\n ipProtocol: \"tcp\",\n cidr: \"0.0.0.0/0\",\n },\n {\n fromPort: 80,\n toPort: 80,\n ipProtocol: \"tcp\",\n cidr: \"0.0.0.0/0\",\n },\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nsecgroup1 = openstack.compute.SecGroup(\"secgroup_1\",\n name=\"my_secgroup\",\n description=\"my security group\",\n rules=[\n openstack.compute.SecGroupRuleArgs(\n from_port=22,\n to_port=22,\n ip_protocol=\"tcp\",\n cidr=\"0.0.0.0/0\",\n ),\n openstack.compute.SecGroupRuleArgs(\n from_port=80,\n to_port=80,\n ip_protocol=\"tcp\",\n cidr=\"0.0.0.0/0\",\n ),\n ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var secgroup1 = new OpenStack.Compute.SecGroup(\"secgroup_1\", new()\n {\n Name = \"my_secgroup\",\n Description = \"my security group\",\n Rules = new[]\n {\n new OpenStack.Compute.Inputs.SecGroupRuleArgs\n {\n FromPort = 22,\n ToPort = 22,\n IpProtocol = \"tcp\",\n Cidr = \"0.0.0.0/0\",\n },\n new OpenStack.Compute.Inputs.SecGroupRuleArgs\n {\n FromPort = 80,\n ToPort = 80,\n IpProtocol = \"tcp\",\n Cidr = \"0.0.0.0/0\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := compute.NewSecGroup(ctx, \"secgroup_1\", \u0026compute.SecGroupArgs{\n\t\t\tName: pulumi.String(\"my_secgroup\"),\n\t\t\tDescription: pulumi.String(\"my security group\"),\n\t\t\tRules: compute.SecGroupRuleArray{\n\t\t\t\t\u0026compute.SecGroupRuleArgs{\n\t\t\t\t\tFromPort: pulumi.Int(22),\n\t\t\t\t\tToPort: pulumi.Int(22),\n\t\t\t\t\tIpProtocol: pulumi.String(\"tcp\"),\n\t\t\t\t\tCidr: pulumi.String(\"0.0.0.0/0\"),\n\t\t\t\t},\n\t\t\t\t\u0026compute.SecGroupRuleArgs{\n\t\t\t\t\tFromPort: pulumi.Int(80),\n\t\t\t\t\tToPort: pulumi.Int(80),\n\t\t\t\t\tIpProtocol: pulumi.String(\"tcp\"),\n\t\t\t\t\tCidr: pulumi.String(\"0.0.0.0/0\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.compute.SecGroup;\nimport com.pulumi.openstack.compute.SecGroupArgs;\nimport com.pulumi.openstack.compute.inputs.SecGroupRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var secgroup1 = new SecGroup(\"secgroup1\", SecGroupArgs.builder() \n .name(\"my_secgroup\")\n .description(\"my security group\")\n .rules( \n SecGroupRuleArgs.builder()\n .fromPort(22)\n .toPort(22)\n .ipProtocol(\"tcp\")\n .cidr(\"0.0.0.0/0\")\n .build(),\n SecGroupRuleArgs.builder()\n .fromPort(80)\n .toPort(80)\n .ipProtocol(\"tcp\")\n .cidr(\"0.0.0.0/0\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n secgroup1:\n type: openstack:compute:SecGroup\n name: secgroup_1\n properties:\n name: my_secgroup\n description: my security group\n rules:\n - fromPort: 22\n toPort: 22\n ipProtocol: tcp\n cidr: 0.0.0.0/0\n - fromPort: 80\n toPort: 80\n ipProtocol: tcp\n cidr: 0.0.0.0/0\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Notes\n\n### Referencing Security Groups\n\nWhen referencing a security group in a configuration (for example, a configuration creates a new security group and then needs to apply it to an instance being created in the same configuration), it is currently recommended to reference the security group by name and not by ID, like this:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst test_server = new openstack.compute.Instance(\"test-server\", {\n name: \"tf-test\",\n imageId: \"ad091b52-742f-469e-8f3c-fd81cadf0743\",\n flavorId: \"3\",\n keyPair: \"my_key_pair_name\",\n securityGroups: [secgroup1.name],\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\ntest_server = openstack.compute.Instance(\"test-server\",\n name=\"tf-test\",\n image_id=\"ad091b52-742f-469e-8f3c-fd81cadf0743\",\n flavor_id=\"3\",\n key_pair=\"my_key_pair_name\",\n security_groups=[secgroup1[\"name\"]])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var test_server = new OpenStack.Compute.Instance(\"test-server\", new()\n {\n Name = \"tf-test\",\n ImageId = \"ad091b52-742f-469e-8f3c-fd81cadf0743\",\n FlavorId = \"3\",\n KeyPair = \"my_key_pair_name\",\n SecurityGroups = new[]\n {\n secgroup1.Name,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := compute.NewInstance(ctx, \"test-server\", \u0026compute.InstanceArgs{\n\t\t\tName: pulumi.String(\"tf-test\"),\n\t\t\tImageId: pulumi.String(\"ad091b52-742f-469e-8f3c-fd81cadf0743\"),\n\t\t\tFlavorId: pulumi.String(\"3\"),\n\t\t\tKeyPair: pulumi.String(\"my_key_pair_name\"),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\tsecgroup1.Name,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.compute.Instance;\nimport com.pulumi.openstack.compute.InstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var test_server = new Instance(\"test-server\", InstanceArgs.builder() \n .name(\"tf-test\")\n .imageId(\"ad091b52-742f-469e-8f3c-fd81cadf0743\")\n .flavorId(\"3\")\n .keyPair(\"my_key_pair_name\")\n .securityGroups(secgroup1.name())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n test-server:\n type: openstack:compute:Instance\n properties:\n name: tf-test\n imageId: ad091b52-742f-469e-8f3c-fd81cadf0743\n flavorId: '3'\n keyPair: my_key_pair_name\n securityGroups:\n - ${secgroup1.name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nSecurity Groups can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import openstack:compute/secGroup:SecGroup my_secgroup 1bc30ee9-9d5b-4c30-bdd5-7f1e663f5edf\n```\n", + "description": "Manages a V2 security group resource within OpenStack.\n\nPlease note that managing security groups through the OpenStack Compute API\nhas been deprecated. Unless you are using an older OpenStack environment, it is\nrecommended to use the `openstack.networking.SecGroup`\nand `openstack.networking.SecGroupRule`\nresources instead, which uses the OpenStack Networking API.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst secgroup1 = new openstack.compute.SecGroup(\"secgroup_1\", {\n name: \"my_secgroup\",\n description: \"my security group\",\n rules: [\n {\n fromPort: 22,\n toPort: 22,\n ipProtocol: \"tcp\",\n cidr: \"0.0.0.0/0\",\n },\n {\n fromPort: 80,\n toPort: 80,\n ipProtocol: \"tcp\",\n cidr: \"0.0.0.0/0\",\n },\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nsecgroup1 = openstack.compute.SecGroup(\"secgroup_1\",\n name=\"my_secgroup\",\n description=\"my security group\",\n rules=[\n openstack.compute.SecGroupRuleArgs(\n from_port=22,\n to_port=22,\n ip_protocol=\"tcp\",\n cidr=\"0.0.0.0/0\",\n ),\n openstack.compute.SecGroupRuleArgs(\n from_port=80,\n to_port=80,\n ip_protocol=\"tcp\",\n cidr=\"0.0.0.0/0\",\n ),\n ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var secgroup1 = new OpenStack.Compute.SecGroup(\"secgroup_1\", new()\n {\n Name = \"my_secgroup\",\n Description = \"my security group\",\n Rules = new[]\n {\n new OpenStack.Compute.Inputs.SecGroupRuleArgs\n {\n FromPort = 22,\n ToPort = 22,\n IpProtocol = \"tcp\",\n Cidr = \"0.0.0.0/0\",\n },\n new OpenStack.Compute.Inputs.SecGroupRuleArgs\n {\n FromPort = 80,\n ToPort = 80,\n IpProtocol = \"tcp\",\n Cidr = \"0.0.0.0/0\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := compute.NewSecGroup(ctx, \"secgroup_1\", \u0026compute.SecGroupArgs{\n\t\t\tName: pulumi.String(\"my_secgroup\"),\n\t\t\tDescription: pulumi.String(\"my security group\"),\n\t\t\tRules: compute.SecGroupRuleArray{\n\t\t\t\t\u0026compute.SecGroupRuleArgs{\n\t\t\t\t\tFromPort: pulumi.Int(22),\n\t\t\t\t\tToPort: pulumi.Int(22),\n\t\t\t\t\tIpProtocol: pulumi.String(\"tcp\"),\n\t\t\t\t\tCidr: pulumi.String(\"0.0.0.0/0\"),\n\t\t\t\t},\n\t\t\t\t\u0026compute.SecGroupRuleArgs{\n\t\t\t\t\tFromPort: pulumi.Int(80),\n\t\t\t\t\tToPort: pulumi.Int(80),\n\t\t\t\t\tIpProtocol: pulumi.String(\"tcp\"),\n\t\t\t\t\tCidr: pulumi.String(\"0.0.0.0/0\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.compute.SecGroup;\nimport com.pulumi.openstack.compute.SecGroupArgs;\nimport com.pulumi.openstack.compute.inputs.SecGroupRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var secgroup1 = new SecGroup(\"secgroup1\", SecGroupArgs.builder() \n .name(\"my_secgroup\")\n .description(\"my security group\")\n .rules( \n SecGroupRuleArgs.builder()\n .fromPort(22)\n .toPort(22)\n .ipProtocol(\"tcp\")\n .cidr(\"0.0.0.0/0\")\n .build(),\n SecGroupRuleArgs.builder()\n .fromPort(80)\n .toPort(80)\n .ipProtocol(\"tcp\")\n .cidr(\"0.0.0.0/0\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n secgroup1:\n type: openstack:compute:SecGroup\n name: secgroup_1\n properties:\n name: my_secgroup\n description: my security group\n rules:\n - fromPort: 22\n toPort: 22\n ipProtocol: tcp\n cidr: 0.0.0.0/0\n - fromPort: 80\n toPort: 80\n ipProtocol: tcp\n cidr: 0.0.0.0/0\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Notes\n\n### Referencing Security Groups\n\nWhen referencing a security group in a configuration (for example, a configuration creates a new security group and then needs to apply it to an instance being created in the same configuration), it is currently recommended to reference the security group by name and not by ID, like this:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst test_server = new openstack.compute.Instance(\"test-server\", {\n name: \"tf-test\",\n imageId: \"ad091b52-742f-469e-8f3c-fd81cadf0743\",\n flavorId: \"3\",\n keyPair: \"my_key_pair_name\",\n securityGroups: [secgroup1.name],\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\ntest_server = openstack.compute.Instance(\"test-server\",\n name=\"tf-test\",\n image_id=\"ad091b52-742f-469e-8f3c-fd81cadf0743\",\n flavor_id=\"3\",\n key_pair=\"my_key_pair_name\",\n security_groups=[secgroup1[\"name\"]])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var test_server = new OpenStack.Compute.Instance(\"test-server\", new()\n {\n Name = \"tf-test\",\n ImageId = \"ad091b52-742f-469e-8f3c-fd81cadf0743\",\n FlavorId = \"3\",\n KeyPair = \"my_key_pair_name\",\n SecurityGroups = new[]\n {\n secgroup1.Name,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := compute.NewInstance(ctx, \"test-server\", \u0026compute.InstanceArgs{\n\t\t\tName: pulumi.String(\"tf-test\"),\n\t\t\tImageId: pulumi.String(\"ad091b52-742f-469e-8f3c-fd81cadf0743\"),\n\t\t\tFlavorId: pulumi.String(\"3\"),\n\t\t\tKeyPair: pulumi.String(\"my_key_pair_name\"),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\tsecgroup1.Name,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.compute.Instance;\nimport com.pulumi.openstack.compute.InstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var test_server = new Instance(\"test-server\", InstanceArgs.builder() \n .name(\"tf-test\")\n .imageId(\"ad091b52-742f-469e-8f3c-fd81cadf0743\")\n .flavorId(\"3\")\n .keyPair(\"my_key_pair_name\")\n .securityGroups(secgroup1.name())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n test-server:\n type: openstack:compute:Instance\n properties:\n name: tf-test\n imageId: ad091b52-742f-469e-8f3c-fd81cadf0743\n flavorId: '3'\n keyPair: my_key_pair_name\n securityGroups:\n - ${secgroup1.name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nSecurity Groups can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import openstack:compute/secGroup:SecGroup my_secgroup 1bc30ee9-9d5b-4c30-bdd5-7f1e663f5edf\n```\n", "properties": { "description": { "type": "string", @@ -5614,7 +5462,7 @@ } }, "openstack:compute/serverGroup:ServerGroup": { - "description": "Manages a V2 Server Group resource within OpenStack.\n\n## Example Usage\n\n### Compute service API version 2.63 or below:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst test_sg = new openstack.compute.ServerGroup(\"test-sg\", {\n name: \"my-sg\",\n policies: [\"anti-affinity\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\ntest_sg = openstack.compute.ServerGroup(\"test-sg\",\n name=\"my-sg\",\n policies=[\"anti-affinity\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var test_sg = new OpenStack.Compute.ServerGroup(\"test-sg\", new()\n {\n Name = \"my-sg\",\n Policies = new[]\n {\n \"anti-affinity\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := compute.NewServerGroup(ctx, \"test-sg\", \u0026compute.ServerGroupArgs{\n\t\t\tName: pulumi.String(\"my-sg\"),\n\t\t\tPolicies: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"anti-affinity\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.compute.ServerGroup;\nimport com.pulumi.openstack.compute.ServerGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var test_sg = new ServerGroup(\"test-sg\", ServerGroupArgs.builder() \n .name(\"my-sg\")\n .policies(\"anti-affinity\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n test-sg:\n type: openstack:compute:ServerGroup\n properties:\n name: my-sg\n policies:\n - anti-affinity\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Compute service API version 2.64 or above:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst test_sg = new openstack.compute.ServerGroup(\"test-sg\", {\n name: \"my-sg\",\n policies: [\"anti-affinity\"],\n rules: {\n maxServerPerHost: 3,\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\ntest_sg = openstack.compute.ServerGroup(\"test-sg\",\n name=\"my-sg\",\n policies=[\"anti-affinity\"],\n rules=openstack.compute.ServerGroupRulesArgs(\n max_server_per_host=3,\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var test_sg = new OpenStack.Compute.ServerGroup(\"test-sg\", new()\n {\n Name = \"my-sg\",\n Policies = new[]\n {\n \"anti-affinity\",\n },\n Rules = new OpenStack.Compute.Inputs.ServerGroupRulesArgs\n {\n MaxServerPerHost = 3,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := compute.NewServerGroup(ctx, \"test-sg\", \u0026compute.ServerGroupArgs{\n\t\t\tName: pulumi.String(\"my-sg\"),\n\t\t\tPolicies: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"anti-affinity\"),\n\t\t\t},\n\t\t\tRules: \u0026compute.ServerGroupRulesArgs{\n\t\t\t\tMaxServerPerHost: pulumi.Int(3),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.compute.ServerGroup;\nimport com.pulumi.openstack.compute.ServerGroupArgs;\nimport com.pulumi.openstack.compute.inputs.ServerGroupRulesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var test_sg = new ServerGroup(\"test-sg\", ServerGroupArgs.builder() \n .name(\"my-sg\")\n .policies(\"anti-affinity\")\n .rules(ServerGroupRulesArgs.builder()\n .maxServerPerHost(3)\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n test-sg:\n type: openstack:compute:ServerGroup\n properties:\n name: my-sg\n policies:\n - anti-affinity\n rules:\n maxServerPerHost: 3\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Policies\n\n* `affinity` - All instances/servers launched in this group will be hosted on\n the same compute node.\n\n* `anti-affinity` - All instances/servers launched in this group will be\n hosted on different compute nodes.\n\n* `soft-affinity` - All instances/servers launched in this group will be hosted\n on the same compute node if possible, but if not possible they\n still will be scheduled instead of failure. To use this policy your\n OpenStack environment should support Compute service API 2.15 or above.\n\n* `soft-anti-affinity` - All instances/servers launched in this group will be\n hosted on different compute nodes if possible, but if not possible they\n still will be scheduled instead of failure. To use this policy your\n OpenStack environment should support Compute service API 2.15 or above.\n\n## Import\n\nServer Groups can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import openstack:compute/serverGroup:ServerGroup test-sg 1bc30ee9-9d5b-4c30-bdd5-7f1e663f5edf\n```\n", + "description": "Manages a V2 Server Group resource within OpenStack.\n\n## Example Usage\n\n### Compute service API version 2.63 or below:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst test_sg = new openstack.compute.ServerGroup(\"test-sg\", {\n name: \"my-sg\",\n policies: [\"anti-affinity\"],\n});\nconst test_instance = new openstack.compute.Instance(\"test-instance\", {\n name: \"my-instance\",\n imageId: \"ad091b52-742f-469e-8f3c-fd81cadf0743\",\n flavorId: \"3\",\n schedulerHints: [{\n group: test_sg.id,\n }],\n networks: [{\n name: \"my_network\",\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\ntest_sg = openstack.compute.ServerGroup(\"test-sg\",\n name=\"my-sg\",\n policies=[\"anti-affinity\"])\ntest_instance = openstack.compute.Instance(\"test-instance\",\n name=\"my-instance\",\n image_id=\"ad091b52-742f-469e-8f3c-fd81cadf0743\",\n flavor_id=\"3\",\n scheduler_hints=[openstack.compute.InstanceSchedulerHintArgs(\n group=test_sg.id,\n )],\n networks=[openstack.compute.InstanceNetworkArgs(\n name=\"my_network\",\n )])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var test_sg = new OpenStack.Compute.ServerGroup(\"test-sg\", new()\n {\n Name = \"my-sg\",\n Policies = new[]\n {\n \"anti-affinity\",\n },\n });\n\n var test_instance = new OpenStack.Compute.Instance(\"test-instance\", new()\n {\n Name = \"my-instance\",\n ImageId = \"ad091b52-742f-469e-8f3c-fd81cadf0743\",\n FlavorId = \"3\",\n SchedulerHints = new[]\n {\n new OpenStack.Compute.Inputs.InstanceSchedulerHintArgs\n {\n Group = test_sg.Id,\n },\n },\n Networks = new[]\n {\n new OpenStack.Compute.Inputs.InstanceNetworkArgs\n {\n Name = \"my_network\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := compute.NewServerGroup(ctx, \"test-sg\", \u0026compute.ServerGroupArgs{\n\t\t\tName: pulumi.String(\"my-sg\"),\n\t\t\tPolicies: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"anti-affinity\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewInstance(ctx, \"test-instance\", \u0026compute.InstanceArgs{\n\t\t\tName: pulumi.String(\"my-instance\"),\n\t\t\tImageId: pulumi.String(\"ad091b52-742f-469e-8f3c-fd81cadf0743\"),\n\t\t\tFlavorId: pulumi.String(\"3\"),\n\t\t\tSchedulerHints: compute.InstanceSchedulerHintArray{\n\t\t\t\t\u0026compute.InstanceSchedulerHintArgs{\n\t\t\t\t\tGroup: test_sg.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t\tNetworks: compute.InstanceNetworkArray{\n\t\t\t\t\u0026compute.InstanceNetworkArgs{\n\t\t\t\t\tName: pulumi.String(\"my_network\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.compute.ServerGroup;\nimport com.pulumi.openstack.compute.ServerGroupArgs;\nimport com.pulumi.openstack.compute.Instance;\nimport com.pulumi.openstack.compute.InstanceArgs;\nimport com.pulumi.openstack.compute.inputs.InstanceSchedulerHintArgs;\nimport com.pulumi.openstack.compute.inputs.InstanceNetworkArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var test_sg = new ServerGroup(\"test-sg\", ServerGroupArgs.builder() \n .name(\"my-sg\")\n .policies(\"anti-affinity\")\n .build());\n\n var test_instance = new Instance(\"test-instance\", InstanceArgs.builder() \n .name(\"my-instance\")\n .imageId(\"ad091b52-742f-469e-8f3c-fd81cadf0743\")\n .flavorId(\"3\")\n .schedulerHints(InstanceSchedulerHintArgs.builder()\n .group(test_sg.id())\n .build())\n .networks(InstanceNetworkArgs.builder()\n .name(\"my_network\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n test-sg:\n type: openstack:compute:ServerGroup\n properties:\n name: my-sg\n policies:\n - anti-affinity\n test-instance:\n type: openstack:compute:Instance\n properties:\n name: my-instance\n imageId: ad091b52-742f-469e-8f3c-fd81cadf0743\n flavorId: '3'\n schedulerHints:\n - group: ${[\"test-sg\"].id}\n networks:\n - name: my_network\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Compute service API version 2.64 or above:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst test_sg = new openstack.compute.ServerGroup(\"test-sg\", {\n name: \"my-sg\",\n policies: [\"anti-affinity\"],\n rules: {\n maxServerPerHost: 3,\n },\n});\nconst test_instance = new openstack.compute.Instance(\"test-instance\", {\n name: \"my-instance\",\n imageId: \"ad091b52-742f-469e-8f3c-fd81cadf0743\",\n flavorId: \"3\",\n schedulerHints: [{\n group: test_sg.id,\n }],\n networks: [{\n name: \"my_network\",\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\ntest_sg = openstack.compute.ServerGroup(\"test-sg\",\n name=\"my-sg\",\n policies=[\"anti-affinity\"],\n rules=openstack.compute.ServerGroupRulesArgs(\n max_server_per_host=3,\n ))\ntest_instance = openstack.compute.Instance(\"test-instance\",\n name=\"my-instance\",\n image_id=\"ad091b52-742f-469e-8f3c-fd81cadf0743\",\n flavor_id=\"3\",\n scheduler_hints=[openstack.compute.InstanceSchedulerHintArgs(\n group=test_sg.id,\n )],\n networks=[openstack.compute.InstanceNetworkArgs(\n name=\"my_network\",\n )])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var test_sg = new OpenStack.Compute.ServerGroup(\"test-sg\", new()\n {\n Name = \"my-sg\",\n Policies = new[]\n {\n \"anti-affinity\",\n },\n Rules = new OpenStack.Compute.Inputs.ServerGroupRulesArgs\n {\n MaxServerPerHost = 3,\n },\n });\n\n var test_instance = new OpenStack.Compute.Instance(\"test-instance\", new()\n {\n Name = \"my-instance\",\n ImageId = \"ad091b52-742f-469e-8f3c-fd81cadf0743\",\n FlavorId = \"3\",\n SchedulerHints = new[]\n {\n new OpenStack.Compute.Inputs.InstanceSchedulerHintArgs\n {\n Group = test_sg.Id,\n },\n },\n Networks = new[]\n {\n new OpenStack.Compute.Inputs.InstanceNetworkArgs\n {\n Name = \"my_network\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := compute.NewServerGroup(ctx, \"test-sg\", \u0026compute.ServerGroupArgs{\n\t\t\tName: pulumi.String(\"my-sg\"),\n\t\t\tPolicies: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"anti-affinity\"),\n\t\t\t},\n\t\t\tRules: \u0026compute.ServerGroupRulesArgs{\n\t\t\t\tMaxServerPerHost: pulumi.Int(3),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewInstance(ctx, \"test-instance\", \u0026compute.InstanceArgs{\n\t\t\tName: pulumi.String(\"my-instance\"),\n\t\t\tImageId: pulumi.String(\"ad091b52-742f-469e-8f3c-fd81cadf0743\"),\n\t\t\tFlavorId: pulumi.String(\"3\"),\n\t\t\tSchedulerHints: compute.InstanceSchedulerHintArray{\n\t\t\t\t\u0026compute.InstanceSchedulerHintArgs{\n\t\t\t\t\tGroup: test_sg.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t\tNetworks: compute.InstanceNetworkArray{\n\t\t\t\t\u0026compute.InstanceNetworkArgs{\n\t\t\t\t\tName: pulumi.String(\"my_network\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.compute.ServerGroup;\nimport com.pulumi.openstack.compute.ServerGroupArgs;\nimport com.pulumi.openstack.compute.inputs.ServerGroupRulesArgs;\nimport com.pulumi.openstack.compute.Instance;\nimport com.pulumi.openstack.compute.InstanceArgs;\nimport com.pulumi.openstack.compute.inputs.InstanceSchedulerHintArgs;\nimport com.pulumi.openstack.compute.inputs.InstanceNetworkArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var test_sg = new ServerGroup(\"test-sg\", ServerGroupArgs.builder() \n .name(\"my-sg\")\n .policies(\"anti-affinity\")\n .rules(ServerGroupRulesArgs.builder()\n .maxServerPerHost(3)\n .build())\n .build());\n\n var test_instance = new Instance(\"test-instance\", InstanceArgs.builder() \n .name(\"my-instance\")\n .imageId(\"ad091b52-742f-469e-8f3c-fd81cadf0743\")\n .flavorId(\"3\")\n .schedulerHints(InstanceSchedulerHintArgs.builder()\n .group(test_sg.id())\n .build())\n .networks(InstanceNetworkArgs.builder()\n .name(\"my_network\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n test-sg:\n type: openstack:compute:ServerGroup\n properties:\n name: my-sg\n policies:\n - anti-affinity\n rules:\n maxServerPerHost: 3\n test-instance:\n type: openstack:compute:Instance\n properties:\n name: my-instance\n imageId: ad091b52-742f-469e-8f3c-fd81cadf0743\n flavorId: '3'\n schedulerHints:\n - group: ${[\"test-sg\"].id}\n networks:\n - name: my_network\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Policies\n\n* `affinity` - All instances/servers launched in this group will be hosted on\n the same compute node.\n\n* `anti-affinity` - All instances/servers launched in this group will be\n hosted on different compute nodes.\n\n* `soft-affinity` - All instances/servers launched in this group will be hosted\n on the same compute node if possible, but if not possible they\n still will be scheduled instead of failure. To use this policy your\n OpenStack environment should support Compute service API 2.15 or above.\n\n* `soft-anti-affinity` - All instances/servers launched in this group will be\n hosted on different compute nodes if possible, but if not possible they\n still will be scheduled instead of failure. To use this policy your\n OpenStack environment should support Compute service API 2.15 or above.\n\n## Import\n\nServer Groups can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import openstack:compute/serverGroup:ServerGroup test-sg 1bc30ee9-9d5b-4c30-bdd5-7f1e663f5edf\n```\n", "properties": { "members": { "type": "array", @@ -5735,7 +5583,7 @@ } }, "openstack:compute/volumeAttach:VolumeAttach": { - "description": "Attaches a Block Storage Volume to an Instance using the OpenStack\nCompute (Nova) v2 API.\n\n## Example Usage\n\n### Basic attachment of a single volume to a single instance\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst volume1 = new openstack.blockstorage.Volume(\"volume_1\", {\n name: \"volume_1\",\n size: 1,\n});\nconst instance1 = new openstack.compute.Instance(\"instance_1\", {\n name: \"instance_1\",\n securityGroups: [\"default\"],\n});\nconst va1 = new openstack.compute.VolumeAttach(\"va_1\", {\n instanceId: instance1.id,\n volumeId: volume1.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nvolume1 = openstack.blockstorage.Volume(\"volume_1\",\n name=\"volume_1\",\n size=1)\ninstance1 = openstack.compute.Instance(\"instance_1\",\n name=\"instance_1\",\n security_groups=[\"default\"])\nva1 = openstack.compute.VolumeAttach(\"va_1\",\n instance_id=instance1.id,\n volume_id=volume1.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var volume1 = new OpenStack.BlockStorage.Volume(\"volume_1\", new()\n {\n Name = \"volume_1\",\n Size = 1,\n });\n\n var instance1 = new OpenStack.Compute.Instance(\"instance_1\", new()\n {\n Name = \"instance_1\",\n SecurityGroups = new[]\n {\n \"default\",\n },\n });\n\n var va1 = new OpenStack.Compute.VolumeAttach(\"va_1\", new()\n {\n InstanceId = instance1.Id,\n VolumeId = volume1.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/blockstorage\"\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tvolume1, err := blockstorage.NewVolume(ctx, \"volume_1\", \u0026blockstorage.VolumeArgs{\n\t\t\tName: pulumi.String(\"volume_1\"),\n\t\t\tSize: pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinstance1, err := compute.NewInstance(ctx, \"instance_1\", \u0026compute.InstanceArgs{\n\t\t\tName: pulumi.String(\"instance_1\"),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"default\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewVolumeAttach(ctx, \"va_1\", \u0026compute.VolumeAttachArgs{\n\t\t\tInstanceId: instance1.ID(),\n\t\t\tVolumeId: volume1.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.blockstorage.Volume;\nimport com.pulumi.openstack.blockstorage.VolumeArgs;\nimport com.pulumi.openstack.compute.Instance;\nimport com.pulumi.openstack.compute.InstanceArgs;\nimport com.pulumi.openstack.compute.VolumeAttach;\nimport com.pulumi.openstack.compute.VolumeAttachArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var volume1 = new Volume(\"volume1\", VolumeArgs.builder() \n .name(\"volume_1\")\n .size(1)\n .build());\n\n var instance1 = new Instance(\"instance1\", InstanceArgs.builder() \n .name(\"instance_1\")\n .securityGroups(\"default\")\n .build());\n\n var va1 = new VolumeAttach(\"va1\", VolumeAttachArgs.builder() \n .instanceId(instance1.id())\n .volumeId(volume1.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n volume1:\n type: openstack:blockstorage:Volume\n name: volume_1\n properties:\n name: volume_1\n size: 1\n instance1:\n type: openstack:compute:Instance\n name: instance_1\n properties:\n name: instance_1\n securityGroups:\n - default\n va1:\n type: openstack:compute:VolumeAttach\n name: va_1\n properties:\n instanceId: ${instance1.id}\n volumeId: ${volume1.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Using Multiattach-enabled volumes\n\nMultiattach Volumes are dependent upon your OpenStack cloud and not all\nclouds support multiattach.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst volume1 = new openstack.blockstorage.Volume(\"volume_1\", {\n name: \"volume_1\",\n size: 1,\n multiattach: true,\n});\nconst instance1 = new openstack.compute.Instance(\"instance_1\", {\n name: \"instance_1\",\n securityGroups: [\"default\"],\n});\nconst instance2 = new openstack.compute.Instance(\"instance_2\", {\n name: \"instance_2\",\n securityGroups: [\"default\"],\n});\nconst va1 = new openstack.compute.VolumeAttach(\"va_1\", {\n instanceId: instance1.id,\n volumeId: volume1.id,\n multiattach: true,\n});\nconst va2 = new openstack.compute.VolumeAttach(\"va_2\", {\n instanceId: instance2.id,\n volumeId: volume1.id,\n multiattach: true,\n}, {\n dependsOn: [va1],\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nvolume1 = openstack.blockstorage.Volume(\"volume_1\",\n name=\"volume_1\",\n size=1,\n multiattach=True)\ninstance1 = openstack.compute.Instance(\"instance_1\",\n name=\"instance_1\",\n security_groups=[\"default\"])\ninstance2 = openstack.compute.Instance(\"instance_2\",\n name=\"instance_2\",\n security_groups=[\"default\"])\nva1 = openstack.compute.VolumeAttach(\"va_1\",\n instance_id=instance1.id,\n volume_id=volume1.id,\n multiattach=True)\nva2 = openstack.compute.VolumeAttach(\"va_2\",\n instance_id=instance2.id,\n volume_id=volume1.id,\n multiattach=True,\n opts=pulumi.ResourceOptions(depends_on=[va1]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var volume1 = new OpenStack.BlockStorage.Volume(\"volume_1\", new()\n {\n Name = \"volume_1\",\n Size = 1,\n Multiattach = true,\n });\n\n var instance1 = new OpenStack.Compute.Instance(\"instance_1\", new()\n {\n Name = \"instance_1\",\n SecurityGroups = new[]\n {\n \"default\",\n },\n });\n\n var instance2 = new OpenStack.Compute.Instance(\"instance_2\", new()\n {\n Name = \"instance_2\",\n SecurityGroups = new[]\n {\n \"default\",\n },\n });\n\n var va1 = new OpenStack.Compute.VolumeAttach(\"va_1\", new()\n {\n InstanceId = instance1.Id,\n VolumeId = volume1.Id,\n Multiattach = true,\n });\n\n var va2 = new OpenStack.Compute.VolumeAttach(\"va_2\", new()\n {\n InstanceId = instance2.Id,\n VolumeId = volume1.Id,\n Multiattach = true,\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n va1,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/blockstorage\"\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tvolume1, err := blockstorage.NewVolume(ctx, \"volume_1\", \u0026blockstorage.VolumeArgs{\n\t\t\tName: pulumi.String(\"volume_1\"),\n\t\t\tSize: pulumi.Int(1),\n\t\t\tMultiattach: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinstance1, err := compute.NewInstance(ctx, \"instance_1\", \u0026compute.InstanceArgs{\n\t\t\tName: pulumi.String(\"instance_1\"),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"default\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinstance2, err := compute.NewInstance(ctx, \"instance_2\", \u0026compute.InstanceArgs{\n\t\t\tName: pulumi.String(\"instance_2\"),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"default\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tva1, err := compute.NewVolumeAttach(ctx, \"va_1\", \u0026compute.VolumeAttachArgs{\n\t\t\tInstanceId: instance1.ID(),\n\t\t\tVolumeId: volume1.ID(),\n\t\t\tMultiattach: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewVolumeAttach(ctx, \"va_2\", \u0026compute.VolumeAttachArgs{\n\t\t\tInstanceId: instance2.ID(),\n\t\t\tVolumeId: volume1.ID(),\n\t\t\tMultiattach: pulumi.Bool(true),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tva1,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.blockstorage.Volume;\nimport com.pulumi.openstack.blockstorage.VolumeArgs;\nimport com.pulumi.openstack.compute.Instance;\nimport com.pulumi.openstack.compute.InstanceArgs;\nimport com.pulumi.openstack.compute.VolumeAttach;\nimport com.pulumi.openstack.compute.VolumeAttachArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var volume1 = new Volume(\"volume1\", VolumeArgs.builder() \n .name(\"volume_1\")\n .size(1)\n .multiattach(true)\n .build());\n\n var instance1 = new Instance(\"instance1\", InstanceArgs.builder() \n .name(\"instance_1\")\n .securityGroups(\"default\")\n .build());\n\n var instance2 = new Instance(\"instance2\", InstanceArgs.builder() \n .name(\"instance_2\")\n .securityGroups(\"default\")\n .build());\n\n var va1 = new VolumeAttach(\"va1\", VolumeAttachArgs.builder() \n .instanceId(instance1.id())\n .volumeId(volume1.id())\n .multiattach(true)\n .build());\n\n var va2 = new VolumeAttach(\"va2\", VolumeAttachArgs.builder() \n .instanceId(instance2.id())\n .volumeId(volume1.id())\n .multiattach(true)\n .build(), CustomResourceOptions.builder()\n .dependsOn(va1)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n volume1:\n type: openstack:blockstorage:Volume\n name: volume_1\n properties:\n name: volume_1\n size: 1\n multiattach: true\n instance1:\n type: openstack:compute:Instance\n name: instance_1\n properties:\n name: instance_1\n securityGroups:\n - default\n instance2:\n type: openstack:compute:Instance\n name: instance_2\n properties:\n name: instance_2\n securityGroups:\n - default\n va1:\n type: openstack:compute:VolumeAttach\n name: va_1\n properties:\n instanceId: ${instance1.id}\n volumeId: ${volume1.id}\n multiattach: true\n va2:\n type: openstack:compute:VolumeAttach\n name: va_2\n properties:\n instanceId: ${instance2.id}\n volumeId: ${volume1.id}\n multiattach: true\n options:\n dependson:\n - ${va1}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nIt is recommended to use `depends_on` for the attach resources\nto enforce the volume attachments to happen one at a time.\n\n## Import\n\nVolume Attachments can be imported using the Instance ID and Volume ID\nseparated by a slash, e.g.\n\n```sh\n$ pulumi import openstack:compute/volumeAttach:VolumeAttach va_1 89c60255-9bd6-460c-822a-e2b959ede9d2/45670584-225f-46c3-b33e-6707b589b666\n```\n", + "description": "Attaches a Block Storage Volume to an Instance using the OpenStack\nCompute (Nova) v2 API.\n\n## Example Usage\n\n### Basic attachment of a single volume to a single instance\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst volume1 = new openstack.blockstorage.Volume(\"volume_1\", {\n name: \"volume_1\",\n size: 1,\n});\nconst instance1 = new openstack.compute.Instance(\"instance_1\", {\n name: \"instance_1\",\n securityGroups: [\"default\"],\n});\nconst va1 = new openstack.compute.VolumeAttach(\"va_1\", {\n instanceId: instance1.id,\n volumeId: volume1.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nvolume1 = openstack.blockstorage.Volume(\"volume_1\",\n name=\"volume_1\",\n size=1)\ninstance1 = openstack.compute.Instance(\"instance_1\",\n name=\"instance_1\",\n security_groups=[\"default\"])\nva1 = openstack.compute.VolumeAttach(\"va_1\",\n instance_id=instance1.id,\n volume_id=volume1.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var volume1 = new OpenStack.BlockStorage.Volume(\"volume_1\", new()\n {\n Name = \"volume_1\",\n Size = 1,\n });\n\n var instance1 = new OpenStack.Compute.Instance(\"instance_1\", new()\n {\n Name = \"instance_1\",\n SecurityGroups = new[]\n {\n \"default\",\n },\n });\n\n var va1 = new OpenStack.Compute.VolumeAttach(\"va_1\", new()\n {\n InstanceId = instance1.Id,\n VolumeId = volume1.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/blockstorage\"\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tvolume1, err := blockstorage.NewVolume(ctx, \"volume_1\", \u0026blockstorage.VolumeArgs{\n\t\t\tName: pulumi.String(\"volume_1\"),\n\t\t\tSize: pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinstance1, err := compute.NewInstance(ctx, \"instance_1\", \u0026compute.InstanceArgs{\n\t\t\tName: pulumi.String(\"instance_1\"),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"default\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewVolumeAttach(ctx, \"va_1\", \u0026compute.VolumeAttachArgs{\n\t\t\tInstanceId: instance1.ID(),\n\t\t\tVolumeId: volume1.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.blockstorage.Volume;\nimport com.pulumi.openstack.blockstorage.VolumeArgs;\nimport com.pulumi.openstack.compute.Instance;\nimport com.pulumi.openstack.compute.InstanceArgs;\nimport com.pulumi.openstack.compute.VolumeAttach;\nimport com.pulumi.openstack.compute.VolumeAttachArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var volume1 = new Volume(\"volume1\", VolumeArgs.builder() \n .name(\"volume_1\")\n .size(1)\n .build());\n\n var instance1 = new Instance(\"instance1\", InstanceArgs.builder() \n .name(\"instance_1\")\n .securityGroups(\"default\")\n .build());\n\n var va1 = new VolumeAttach(\"va1\", VolumeAttachArgs.builder() \n .instanceId(instance1.id())\n .volumeId(volume1.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n volume1:\n type: openstack:blockstorage:Volume\n name: volume_1\n properties:\n name: volume_1\n size: 1\n instance1:\n type: openstack:compute:Instance\n name: instance_1\n properties:\n name: instance_1\n securityGroups:\n - default\n va1:\n type: openstack:compute:VolumeAttach\n name: va_1\n properties:\n instanceId: ${instance1.id}\n volumeId: ${volume1.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Using Multiattach-enabled volumes\n\nMultiattach Volumes are dependent upon your OpenStack cloud and not all\nclouds support multiattach. Multiattach volumes require a volume_type that has [multiattach enabled](https://docs.openstack.org/cinder/latest/admin/volume-multiattach.html#multiattach-volume-type).\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst volume1 = new openstack.blockstorage.Volume(\"volume_1\", {\n name: \"volume_1\",\n size: 1,\n volumeType: \"multiattach\",\n});\nconst instance1 = new openstack.compute.Instance(\"instance_1\", {\n name: \"instance_1\",\n securityGroups: [\"default\"],\n});\nconst instance2 = new openstack.compute.Instance(\"instance_2\", {\n name: \"instance_2\",\n securityGroups: [\"default\"],\n});\nconst va1 = new openstack.compute.VolumeAttach(\"va_1\", {\n instanceId: instance1.id,\n volumeId: volume1.id,\n multiattach: true,\n});\nconst va2 = new openstack.compute.VolumeAttach(\"va_2\", {\n instanceId: instance2.id,\n volumeId: volume1.id,\n multiattach: true,\n}, {\n dependsOn: [va1],\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nvolume1 = openstack.blockstorage.Volume(\"volume_1\",\n name=\"volume_1\",\n size=1,\n volume_type=\"multiattach\")\ninstance1 = openstack.compute.Instance(\"instance_1\",\n name=\"instance_1\",\n security_groups=[\"default\"])\ninstance2 = openstack.compute.Instance(\"instance_2\",\n name=\"instance_2\",\n security_groups=[\"default\"])\nva1 = openstack.compute.VolumeAttach(\"va_1\",\n instance_id=instance1.id,\n volume_id=volume1.id,\n multiattach=True)\nva2 = openstack.compute.VolumeAttach(\"va_2\",\n instance_id=instance2.id,\n volume_id=volume1.id,\n multiattach=True,\n opts=pulumi.ResourceOptions(depends_on=[va1]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var volume1 = new OpenStack.BlockStorage.Volume(\"volume_1\", new()\n {\n Name = \"volume_1\",\n Size = 1,\n VolumeType = \"multiattach\",\n });\n\n var instance1 = new OpenStack.Compute.Instance(\"instance_1\", new()\n {\n Name = \"instance_1\",\n SecurityGroups = new[]\n {\n \"default\",\n },\n });\n\n var instance2 = new OpenStack.Compute.Instance(\"instance_2\", new()\n {\n Name = \"instance_2\",\n SecurityGroups = new[]\n {\n \"default\",\n },\n });\n\n var va1 = new OpenStack.Compute.VolumeAttach(\"va_1\", new()\n {\n InstanceId = instance1.Id,\n VolumeId = volume1.Id,\n Multiattach = true,\n });\n\n var va2 = new OpenStack.Compute.VolumeAttach(\"va_2\", new()\n {\n InstanceId = instance2.Id,\n VolumeId = volume1.Id,\n Multiattach = true,\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n va1,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/blockstorage\"\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tvolume1, err := blockstorage.NewVolume(ctx, \"volume_1\", \u0026blockstorage.VolumeArgs{\n\t\t\tName: pulumi.String(\"volume_1\"),\n\t\t\tSize: pulumi.Int(1),\n\t\t\tVolumeType: pulumi.String(\"multiattach\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinstance1, err := compute.NewInstance(ctx, \"instance_1\", \u0026compute.InstanceArgs{\n\t\t\tName: pulumi.String(\"instance_1\"),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"default\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinstance2, err := compute.NewInstance(ctx, \"instance_2\", \u0026compute.InstanceArgs{\n\t\t\tName: pulumi.String(\"instance_2\"),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"default\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tva1, err := compute.NewVolumeAttach(ctx, \"va_1\", \u0026compute.VolumeAttachArgs{\n\t\t\tInstanceId: instance1.ID(),\n\t\t\tVolumeId: volume1.ID(),\n\t\t\tMultiattach: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewVolumeAttach(ctx, \"va_2\", \u0026compute.VolumeAttachArgs{\n\t\t\tInstanceId: instance2.ID(),\n\t\t\tVolumeId: volume1.ID(),\n\t\t\tMultiattach: pulumi.Bool(true),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tva1,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.blockstorage.Volume;\nimport com.pulumi.openstack.blockstorage.VolumeArgs;\nimport com.pulumi.openstack.compute.Instance;\nimport com.pulumi.openstack.compute.InstanceArgs;\nimport com.pulumi.openstack.compute.VolumeAttach;\nimport com.pulumi.openstack.compute.VolumeAttachArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var volume1 = new Volume(\"volume1\", VolumeArgs.builder() \n .name(\"volume_1\")\n .size(1)\n .volumeType(\"multiattach\")\n .build());\n\n var instance1 = new Instance(\"instance1\", InstanceArgs.builder() \n .name(\"instance_1\")\n .securityGroups(\"default\")\n .build());\n\n var instance2 = new Instance(\"instance2\", InstanceArgs.builder() \n .name(\"instance_2\")\n .securityGroups(\"default\")\n .build());\n\n var va1 = new VolumeAttach(\"va1\", VolumeAttachArgs.builder() \n .instanceId(instance1.id())\n .volumeId(volume1.id())\n .multiattach(true)\n .build());\n\n var va2 = new VolumeAttach(\"va2\", VolumeAttachArgs.builder() \n .instanceId(instance2.id())\n .volumeId(volume1.id())\n .multiattach(true)\n .build(), CustomResourceOptions.builder()\n .dependsOn(va1)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n volume1:\n type: openstack:blockstorage:Volume\n name: volume_1\n properties:\n name: volume_1\n size: 1\n volumeType: multiattach\n instance1:\n type: openstack:compute:Instance\n name: instance_1\n properties:\n name: instance_1\n securityGroups:\n - default\n instance2:\n type: openstack:compute:Instance\n name: instance_2\n properties:\n name: instance_2\n securityGroups:\n - default\n va1:\n type: openstack:compute:VolumeAttach\n name: va_1\n properties:\n instanceId: ${instance1.id}\n volumeId: ${volume1.id}\n multiattach: true\n va2:\n type: openstack:compute:VolumeAttach\n name: va_2\n properties:\n instanceId: ${instance2.id}\n volumeId: ${volume1.id}\n multiattach: true\n options:\n dependson:\n - ${va1}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nIt is recommended to use `depends_on` for the attach resources\nto enforce the volume attachments to happen one at a time.\n\n## Import\n\nVolume Attachments can be imported using the Instance ID and Volume ID\nseparated by a slash, e.g.\n\n```sh\n$ pulumi import openstack:compute/volumeAttach:VolumeAttach va_1 89c60255-9bd6-460c-822a-e2b959ede9d2/45670584-225f-46c3-b33e-6707b589b666\n```\n", "properties": { "device": { "type": "string" @@ -5752,6 +5600,10 @@ "type": "string", "description": "The region in which to obtain the V2 Compute client.\nA Compute client is needed to create a volume attachment. If omitted, the\n`region` argument of the provider is used. Changing this creates a\nnew volume attachment.\n" }, + "tag": { + "type": "string", + "description": "Add a device role tag that is applied to the volume when\nattaching it to the VM. Changing this creates a new volume attachment with\nthe new tag. Requires microversion \u003e= 2.49.\n" + }, "vendorOptions": { "$ref": "#/types/openstack:compute/VolumeAttachVendorOptions:VolumeAttachVendorOptions", "description": "Map of additional vendor-specific options.\nSupported options are described below.\n" @@ -5786,6 +5638,11 @@ "description": "The region in which to obtain the V2 Compute client.\nA Compute client is needed to create a volume attachment. If omitted, the\n`region` argument of the provider is used. Changing this creates a\nnew volume attachment.\n", "willReplaceOnChanges": true }, + "tag": { + "type": "string", + "description": "Add a device role tag that is applied to the volume when\nattaching it to the VM. Changing this creates a new volume attachment with\nthe new tag. Requires microversion \u003e= 2.49.\n", + "willReplaceOnChanges": true + }, "vendorOptions": { "$ref": "#/types/openstack:compute/VolumeAttachVendorOptions:VolumeAttachVendorOptions", "description": "Map of additional vendor-specific options.\nSupported options are described below.\n", @@ -5822,6 +5679,11 @@ "description": "The region in which to obtain the V2 Compute client.\nA Compute client is needed to create a volume attachment. If omitted, the\n`region` argument of the provider is used. Changing this creates a\nnew volume attachment.\n", "willReplaceOnChanges": true }, + "tag": { + "type": "string", + "description": "Add a device role tag that is applied to the volume when\nattaching it to the VM. Changing this creates a new volume attachment with\nthe new tag. Requires microversion \u003e= 2.49.\n", + "willReplaceOnChanges": true + }, "vendorOptions": { "$ref": "#/types/openstack:compute/VolumeAttachVendorOptions:VolumeAttachVendorOptions", "description": "Map of additional vendor-specific options.\nSupported options are described below.\n", @@ -5837,7 +5699,7 @@ } }, "openstack:containerinfra/cluster:Cluster": { - "description": "Manages a V1 Magnum cluster resource within OpenStack.\n\n\u003e **Note:** All arguments including the `kubeconfig` computed attribute will be\nstored in the raw state as plain-text. Read more about sensitive data in\nstate.\n\n## Example Usage\n\n### Create a Cluster\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst cluster1 = new openstack.containerinfra.Cluster(\"cluster_1\", {\n name: \"cluster_1\",\n clusterTemplateId: \"b9a45c5c-cd03-4958-82aa-b80bf93cb922\",\n masterCount: 3,\n nodeCount: 5,\n keypair: \"ssh_keypair\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\ncluster1 = openstack.containerinfra.Cluster(\"cluster_1\",\n name=\"cluster_1\",\n cluster_template_id=\"b9a45c5c-cd03-4958-82aa-b80bf93cb922\",\n master_count=3,\n node_count=5,\n keypair=\"ssh_keypair\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var cluster1 = new OpenStack.ContainerInfra.Cluster(\"cluster_1\", new()\n {\n Name = \"cluster_1\",\n ClusterTemplateId = \"b9a45c5c-cd03-4958-82aa-b80bf93cb922\",\n MasterCount = 3,\n NodeCount = 5,\n Keypair = \"ssh_keypair\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/containerinfra\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := containerinfra.NewCluster(ctx, \"cluster_1\", \u0026containerinfra.ClusterArgs{\n\t\t\tName: pulumi.String(\"cluster_1\"),\n\t\t\tClusterTemplateId: pulumi.String(\"b9a45c5c-cd03-4958-82aa-b80bf93cb922\"),\n\t\t\tMasterCount: pulumi.Int(3),\n\t\t\tNodeCount: pulumi.Int(5),\n\t\t\tKeypair: pulumi.String(\"ssh_keypair\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.containerinfra.Cluster;\nimport com.pulumi.openstack.containerinfra.ClusterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var cluster1 = new Cluster(\"cluster1\", ClusterArgs.builder() \n .name(\"cluster_1\")\n .clusterTemplateId(\"b9a45c5c-cd03-4958-82aa-b80bf93cb922\")\n .masterCount(3)\n .nodeCount(5)\n .keypair(\"ssh_keypair\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n cluster1:\n type: openstack:containerinfra:Cluster\n name: cluster_1\n properties:\n name: cluster_1\n clusterTemplateId: b9a45c5c-cd03-4958-82aa-b80bf93cb922\n masterCount: 3\n nodeCount: 5\n keypair: ssh_keypair\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Attributes reference\n\nThe following attributes are exported:\n\n* `region` - See Argument Reference above.\n* `name` - See Argument Reference above.\n* `project_id` - See Argument Reference above.\n* `created_at` - The time at which cluster was created.\n* `updated_at` - The time at which cluster was created.\n* `api_address` - COE API address.\n* `coe_version` - COE software version.\n* `cluster_template_id` - See Argument Reference above.\n* `container_version` - Container software version.\n* `create_timeout` - See Argument Reference above.\n* `discovery_url` - See Argument Reference above.\n* `docker_volume_size` - See Argument Reference above.\n* `flavor` - See Argument Reference above.\n* `master_flavor` - See Argument Reference above.\n* `keypair` - See Argument Reference above.\n* `labels` - See Argument Reference above.\n* `merge_labels` - See Argument Reference above.\n* `master_count` - See Argument Reference above.\n* `node_count` - See Argument Reference above.\n* `fixed_network` - See Argument Reference above.\n* `fixed_subnet` - See Argument Reference above.\n* `floating_ip_enabled` - See Argument Reference above.\n* `master_addresses` - IP addresses of the master node of the cluster.\n* `node_addresses` - IP addresses of the node of the cluster.\n* `stack_id` - UUID of the Orchestration service stack.\n* `kubeconfig` - The Kubernetes cluster's credentials\n * `raw_config` - The raw kubeconfig file\n * `host` - The cluster's API server URL\n * `cluster_ca_certificate` - The cluster's CA certificate\n * `client_key` - The client's RSA key\n * `client_certificate` - The client's certificate\n\n## Import\n\nClusters can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import openstack:containerinfra/cluster:Cluster cluster_1 ce0f9463-dd25-474b-9fe8-94de63e5e42b\n```\n", + "description": "Manages a V1 Magnum cluster resource within OpenStack.\n\n\u003e **Note:** All arguments including the `kubeconfig` computed attribute will be\nstored in the raw state as plain-text. Read more about sensitive data in\nstate.\n\n## Example Usage\n\n### Create a Cluster\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst cluster1 = new openstack.containerinfra.Cluster(\"cluster_1\", {\n name: \"cluster_1\",\n clusterTemplateId: \"b9a45c5c-cd03-4958-82aa-b80bf93cb922\",\n masterCount: 3,\n nodeCount: 5,\n keypair: \"ssh_keypair\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\ncluster1 = openstack.containerinfra.Cluster(\"cluster_1\",\n name=\"cluster_1\",\n cluster_template_id=\"b9a45c5c-cd03-4958-82aa-b80bf93cb922\",\n master_count=3,\n node_count=5,\n keypair=\"ssh_keypair\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var cluster1 = new OpenStack.ContainerInfra.Cluster(\"cluster_1\", new()\n {\n Name = \"cluster_1\",\n ClusterTemplateId = \"b9a45c5c-cd03-4958-82aa-b80bf93cb922\",\n MasterCount = 3,\n NodeCount = 5,\n Keypair = \"ssh_keypair\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/containerinfra\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := containerinfra.NewCluster(ctx, \"cluster_1\", \u0026containerinfra.ClusterArgs{\n\t\t\tName: pulumi.String(\"cluster_1\"),\n\t\t\tClusterTemplateId: pulumi.String(\"b9a45c5c-cd03-4958-82aa-b80bf93cb922\"),\n\t\t\tMasterCount: pulumi.Int(3),\n\t\t\tNodeCount: pulumi.Int(5),\n\t\t\tKeypair: pulumi.String(\"ssh_keypair\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.containerinfra.Cluster;\nimport com.pulumi.openstack.containerinfra.ClusterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var cluster1 = new Cluster(\"cluster1\", ClusterArgs.builder() \n .name(\"cluster_1\")\n .clusterTemplateId(\"b9a45c5c-cd03-4958-82aa-b80bf93cb922\")\n .masterCount(3)\n .nodeCount(5)\n .keypair(\"ssh_keypair\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n cluster1:\n type: openstack:containerinfra:Cluster\n name: cluster_1\n properties:\n name: cluster_1\n clusterTemplateId: b9a45c5c-cd03-4958-82aa-b80bf93cb922\n masterCount: 3\n nodeCount: 5\n keypair: ssh_keypair\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Attributes reference\n\nThe following attributes are exported:\n\n* `region` - See Argument Reference above.\n* `name` - See Argument Reference above.\n* `project_id` - See Argument Reference above.\n* `created_at` - The time at which cluster was created.\n* `updated_at` - The time at which cluster was created.\n* `api_address` - COE API address.\n* `coe_version` - COE software version.\n* `cluster_template_id` - See Argument Reference above.\n* `container_version` - Container software version.\n* `create_timeout` - See Argument Reference above.\n* `discovery_url` - See Argument Reference above.\n* `docker_volume_size` - See Argument Reference above.\n* `flavor` - See Argument Reference above.\n* `master_flavor` - See Argument Reference above.\n* `keypair` - See Argument Reference above.\n* `labels` - See Argument Reference above.\n* `merge_labels` - See Argument Reference above.\n* `master_count` - See Argument Reference above.\n* `node_count` - See Argument Reference above.\n* `fixed_network` - See Argument Reference above.\n* `fixed_subnet` - See Argument Reference above.\n* `floating_ip_enabled` - See Argument Reference above.\n* `master_addresses` - IP addresses of the master node of the cluster.\n* `node_addresses` - IP addresses of the node of the cluster.\n* `stack_id` - UUID of the Orchestration service stack.\n* `kubeconfig` - The Kubernetes cluster's credentials\n * `raw_config` - The raw kubeconfig file\n * `host` - The cluster's API server URL\n * `cluster_ca_certificate` - The cluster's CA certificate\n * `client_key` - The client's RSA key\n * `client_certificate` - The client's certificate\n\n## Import\n\nClusters can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import openstack:containerinfra/cluster:Cluster cluster_1 ce0f9463-dd25-474b-9fe8-94de63e5e42b\n```\n", "properties": { "apiAddress": { "type": "string" @@ -6201,7 +6063,7 @@ } }, "openstack:containerinfra/clusterTemplate:ClusterTemplate": { - "description": "Manages a V1 Magnum cluster template resource within OpenStack.\n\n## Example Usage\n\n### Create a Cluster template\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst clustertemplate1 = new openstack.containerinfra.ClusterTemplate(\"clustertemplate_1\", {\n name: \"clustertemplate_1\",\n image: \"Fedora-Atomic-27\",\n coe: \"kubernetes\",\n flavor: \"m1.small\",\n masterFlavor: \"m1.medium\",\n dnsNameserver: \"1.1.1.1\",\n dockerStorageDriver: \"devicemapper\",\n dockerVolumeSize: 10,\n volumeDriver: \"cinder\",\n networkDriver: \"flannel\",\n serverType: \"vm\",\n masterLbEnabled: true,\n floatingIpEnabled: false,\n labels: {\n kube_tag: \"1.11.1\",\n kube_dashboard_enabled: \"true\",\n prometheus_monitoring: \"true\",\n influx_grafana_dashboard_enabled: \"true\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nclustertemplate1 = openstack.containerinfra.ClusterTemplate(\"clustertemplate_1\",\n name=\"clustertemplate_1\",\n image=\"Fedora-Atomic-27\",\n coe=\"kubernetes\",\n flavor=\"m1.small\",\n master_flavor=\"m1.medium\",\n dns_nameserver=\"1.1.1.1\",\n docker_storage_driver=\"devicemapper\",\n docker_volume_size=10,\n volume_driver=\"cinder\",\n network_driver=\"flannel\",\n server_type=\"vm\",\n master_lb_enabled=True,\n floating_ip_enabled=False,\n labels={\n \"kube_tag\": \"1.11.1\",\n \"kube_dashboard_enabled\": \"true\",\n \"prometheus_monitoring\": \"true\",\n \"influx_grafana_dashboard_enabled\": \"true\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var clustertemplate1 = new OpenStack.ContainerInfra.ClusterTemplate(\"clustertemplate_1\", new()\n {\n Name = \"clustertemplate_1\",\n Image = \"Fedora-Atomic-27\",\n Coe = \"kubernetes\",\n Flavor = \"m1.small\",\n MasterFlavor = \"m1.medium\",\n DnsNameserver = \"1.1.1.1\",\n DockerStorageDriver = \"devicemapper\",\n DockerVolumeSize = 10,\n VolumeDriver = \"cinder\",\n NetworkDriver = \"flannel\",\n ServerType = \"vm\",\n MasterLbEnabled = true,\n FloatingIpEnabled = false,\n Labels = \n {\n { \"kube_tag\", \"1.11.1\" },\n { \"kube_dashboard_enabled\", \"true\" },\n { \"prometheus_monitoring\", \"true\" },\n { \"influx_grafana_dashboard_enabled\", \"true\" },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/containerinfra\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := containerinfra.NewClusterTemplate(ctx, \"clustertemplate_1\", \u0026containerinfra.ClusterTemplateArgs{\n\t\t\tName: pulumi.String(\"clustertemplate_1\"),\n\t\t\tImage: pulumi.String(\"Fedora-Atomic-27\"),\n\t\t\tCoe: pulumi.String(\"kubernetes\"),\n\t\t\tFlavor: pulumi.String(\"m1.small\"),\n\t\t\tMasterFlavor: pulumi.String(\"m1.medium\"),\n\t\t\tDnsNameserver: pulumi.String(\"1.1.1.1\"),\n\t\t\tDockerStorageDriver: pulumi.String(\"devicemapper\"),\n\t\t\tDockerVolumeSize: pulumi.Int(10),\n\t\t\tVolumeDriver: pulumi.String(\"cinder\"),\n\t\t\tNetworkDriver: pulumi.String(\"flannel\"),\n\t\t\tServerType: pulumi.String(\"vm\"),\n\t\t\tMasterLbEnabled: pulumi.Bool(true),\n\t\t\tFloatingIpEnabled: pulumi.Bool(false),\n\t\t\tLabels: pulumi.Map{\n\t\t\t\t\"kube_tag\": pulumi.Any(\"1.11.1\"),\n\t\t\t\t\"kube_dashboard_enabled\": pulumi.Any(\"true\"),\n\t\t\t\t\"prometheus_monitoring\": pulumi.Any(\"true\"),\n\t\t\t\t\"influx_grafana_dashboard_enabled\": pulumi.Any(\"true\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.containerinfra.ClusterTemplate;\nimport com.pulumi.openstack.containerinfra.ClusterTemplateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var clustertemplate1 = new ClusterTemplate(\"clustertemplate1\", ClusterTemplateArgs.builder() \n .name(\"clustertemplate_1\")\n .image(\"Fedora-Atomic-27\")\n .coe(\"kubernetes\")\n .flavor(\"m1.small\")\n .masterFlavor(\"m1.medium\")\n .dnsNameserver(\"1.1.1.1\")\n .dockerStorageDriver(\"devicemapper\")\n .dockerVolumeSize(10)\n .volumeDriver(\"cinder\")\n .networkDriver(\"flannel\")\n .serverType(\"vm\")\n .masterLbEnabled(true)\n .floatingIpEnabled(false)\n .labels(Map.ofEntries(\n Map.entry(\"kube_tag\", \"1.11.1\"),\n Map.entry(\"kube_dashboard_enabled\", \"true\"),\n Map.entry(\"prometheus_monitoring\", \"true\"),\n Map.entry(\"influx_grafana_dashboard_enabled\", \"true\")\n ))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n clustertemplate1:\n type: openstack:containerinfra:ClusterTemplate\n name: clustertemplate_1\n properties:\n name: clustertemplate_1\n image: Fedora-Atomic-27\n coe: kubernetes\n flavor: m1.small\n masterFlavor: m1.medium\n dnsNameserver: 1.1.1.1\n dockerStorageDriver: devicemapper\n dockerVolumeSize: 10\n volumeDriver: cinder\n networkDriver: flannel\n serverType: vm\n masterLbEnabled: true\n floatingIpEnabled: false\n labels:\n kube_tag: 1.11.1\n kube_dashboard_enabled: 'true'\n prometheus_monitoring: 'true'\n influx_grafana_dashboard_enabled: 'true'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Attributes reference\n\nThe following attributes are exported:\n\n* `region` - See Argument Reference above.\n* `name` - See Argument Reference above.\n* `project_id` - See Argument Reference above.\n* `created_at` - The time at which cluster template was created.\n* `updated_at` - The time at which cluster template was created.\n* `apiserver_port` - See Argument Reference above.\n* `coe` - See Argument Reference above.\n* `cluster_distro` - See Argument Reference above.\n* `dns_nameserver` - See Argument Reference above.\n* `docker_storage_driver` - See Argument Reference above.\n* `docker_volume_size` - See Argument Reference above.\n* `external_network_id` - See Argument Reference above.\n* `fixed_network` - See Argument Reference above.\n* `fixed_subnet` - See Argument Reference above.\n* `flavor` - See Argument Reference above.\n* `master_flavor` - See Argument Reference above.\n* `floating_ip_enabled` - See Argument Reference above.\n* `http_proxy` - See Argument Reference above.\n* `https_proxy` - See Argument Reference above.\n* `image` - See Argument Reference above.\n* `insecure_registry` - See Argument Reference above.\n* `keypair_id` - See Argument Reference above.\n* `labels` - See Argument Reference above.\n* `links` - A list containing associated cluster template links.\n* `master_lb_enabled` - See Argument Reference above.\n* `network_driver` - See Argument Reference above.\n* `no_proxy` - See Argument Reference above.\n* `public` - See Argument Reference above.\n* `registry_enabled` - See Argument Reference above.\n* `server_type` - See Argument Reference above.\n* `tls_disabled` - See Argument Reference above.\n* `volume_driver` - See Argument Reference above.\n* `hidden` - See Argument Reference above.\n\n## Import\n\nCluster templates can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import openstack:containerinfra/clusterTemplate:ClusterTemplate clustertemplate_1 b9a45c5c-cd03-4958-82aa-b80bf93cb922\n```\n", + "description": "Manages a V1 Magnum cluster template resource within OpenStack.\n\n## Example Usage\n\n### Create a Cluster template\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst clustertemplate1 = new openstack.containerinfra.ClusterTemplate(\"clustertemplate_1\", {\n name: \"clustertemplate_1\",\n image: \"Fedora-Atomic-27\",\n coe: \"kubernetes\",\n flavor: \"m1.small\",\n masterFlavor: \"m1.medium\",\n dnsNameserver: \"1.1.1.1\",\n dockerStorageDriver: \"devicemapper\",\n dockerVolumeSize: 10,\n volumeDriver: \"cinder\",\n networkDriver: \"flannel\",\n serverType: \"vm\",\n masterLbEnabled: true,\n floatingIpEnabled: false,\n labels: {\n kube_tag: \"1.11.1\",\n kube_dashboard_enabled: \"true\",\n prometheus_monitoring: \"true\",\n influx_grafana_dashboard_enabled: \"true\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nclustertemplate1 = openstack.containerinfra.ClusterTemplate(\"clustertemplate_1\",\n name=\"clustertemplate_1\",\n image=\"Fedora-Atomic-27\",\n coe=\"kubernetes\",\n flavor=\"m1.small\",\n master_flavor=\"m1.medium\",\n dns_nameserver=\"1.1.1.1\",\n docker_storage_driver=\"devicemapper\",\n docker_volume_size=10,\n volume_driver=\"cinder\",\n network_driver=\"flannel\",\n server_type=\"vm\",\n master_lb_enabled=True,\n floating_ip_enabled=False,\n labels={\n \"kube_tag\": \"1.11.1\",\n \"kube_dashboard_enabled\": \"true\",\n \"prometheus_monitoring\": \"true\",\n \"influx_grafana_dashboard_enabled\": \"true\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var clustertemplate1 = new OpenStack.ContainerInfra.ClusterTemplate(\"clustertemplate_1\", new()\n {\n Name = \"clustertemplate_1\",\n Image = \"Fedora-Atomic-27\",\n Coe = \"kubernetes\",\n Flavor = \"m1.small\",\n MasterFlavor = \"m1.medium\",\n DnsNameserver = \"1.1.1.1\",\n DockerStorageDriver = \"devicemapper\",\n DockerVolumeSize = 10,\n VolumeDriver = \"cinder\",\n NetworkDriver = \"flannel\",\n ServerType = \"vm\",\n MasterLbEnabled = true,\n FloatingIpEnabled = false,\n Labels = \n {\n { \"kube_tag\", \"1.11.1\" },\n { \"kube_dashboard_enabled\", \"true\" },\n { \"prometheus_monitoring\", \"true\" },\n { \"influx_grafana_dashboard_enabled\", \"true\" },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/containerinfra\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := containerinfra.NewClusterTemplate(ctx, \"clustertemplate_1\", \u0026containerinfra.ClusterTemplateArgs{\n\t\t\tName: pulumi.String(\"clustertemplate_1\"),\n\t\t\tImage: pulumi.String(\"Fedora-Atomic-27\"),\n\t\t\tCoe: pulumi.String(\"kubernetes\"),\n\t\t\tFlavor: pulumi.String(\"m1.small\"),\n\t\t\tMasterFlavor: pulumi.String(\"m1.medium\"),\n\t\t\tDnsNameserver: pulumi.String(\"1.1.1.1\"),\n\t\t\tDockerStorageDriver: pulumi.String(\"devicemapper\"),\n\t\t\tDockerVolumeSize: pulumi.Int(10),\n\t\t\tVolumeDriver: pulumi.String(\"cinder\"),\n\t\t\tNetworkDriver: pulumi.String(\"flannel\"),\n\t\t\tServerType: pulumi.String(\"vm\"),\n\t\t\tMasterLbEnabled: pulumi.Bool(true),\n\t\t\tFloatingIpEnabled: pulumi.Bool(false),\n\t\t\tLabels: pulumi.Map{\n\t\t\t\t\"kube_tag\": pulumi.Any(\"1.11.1\"),\n\t\t\t\t\"kube_dashboard_enabled\": pulumi.Any(\"true\"),\n\t\t\t\t\"prometheus_monitoring\": pulumi.Any(\"true\"),\n\t\t\t\t\"influx_grafana_dashboard_enabled\": pulumi.Any(\"true\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.containerinfra.ClusterTemplate;\nimport com.pulumi.openstack.containerinfra.ClusterTemplateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var clustertemplate1 = new ClusterTemplate(\"clustertemplate1\", ClusterTemplateArgs.builder() \n .name(\"clustertemplate_1\")\n .image(\"Fedora-Atomic-27\")\n .coe(\"kubernetes\")\n .flavor(\"m1.small\")\n .masterFlavor(\"m1.medium\")\n .dnsNameserver(\"1.1.1.1\")\n .dockerStorageDriver(\"devicemapper\")\n .dockerVolumeSize(10)\n .volumeDriver(\"cinder\")\n .networkDriver(\"flannel\")\n .serverType(\"vm\")\n .masterLbEnabled(true)\n .floatingIpEnabled(false)\n .labels(Map.ofEntries(\n Map.entry(\"kube_tag\", \"1.11.1\"),\n Map.entry(\"kube_dashboard_enabled\", \"true\"),\n Map.entry(\"prometheus_monitoring\", \"true\"),\n Map.entry(\"influx_grafana_dashboard_enabled\", \"true\")\n ))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n clustertemplate1:\n type: openstack:containerinfra:ClusterTemplate\n name: clustertemplate_1\n properties:\n name: clustertemplate_1\n image: Fedora-Atomic-27\n coe: kubernetes\n flavor: m1.small\n masterFlavor: m1.medium\n dnsNameserver: 1.1.1.1\n dockerStorageDriver: devicemapper\n dockerVolumeSize: 10\n volumeDriver: cinder\n networkDriver: flannel\n serverType: vm\n masterLbEnabled: true\n floatingIpEnabled: false\n labels:\n kube_tag: 1.11.1\n kube_dashboard_enabled: 'true'\n prometheus_monitoring: 'true'\n influx_grafana_dashboard_enabled: 'true'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Attributes reference\n\nThe following attributes are exported:\n\n* `region` - See Argument Reference above.\n* `name` - See Argument Reference above.\n* `project_id` - See Argument Reference above.\n* `created_at` - The time at which cluster template was created.\n* `updated_at` - The time at which cluster template was created.\n* `apiserver_port` - See Argument Reference above.\n* `coe` - See Argument Reference above.\n* `cluster_distro` - See Argument Reference above.\n* `dns_nameserver` - See Argument Reference above.\n* `docker_storage_driver` - See Argument Reference above.\n* `docker_volume_size` - See Argument Reference above.\n* `external_network_id` - See Argument Reference above.\n* `fixed_network` - See Argument Reference above.\n* `fixed_subnet` - See Argument Reference above.\n* `flavor` - See Argument Reference above.\n* `master_flavor` - See Argument Reference above.\n* `floating_ip_enabled` - See Argument Reference above.\n* `http_proxy` - See Argument Reference above.\n* `https_proxy` - See Argument Reference above.\n* `image` - See Argument Reference above.\n* `insecure_registry` - See Argument Reference above.\n* `keypair_id` - See Argument Reference above.\n* `labels` - See Argument Reference above.\n* `links` - A list containing associated cluster template links.\n* `master_lb_enabled` - See Argument Reference above.\n* `network_driver` - See Argument Reference above.\n* `no_proxy` - See Argument Reference above.\n* `public` - See Argument Reference above.\n* `registry_enabled` - See Argument Reference above.\n* `server_type` - See Argument Reference above.\n* `tls_disabled` - See Argument Reference above.\n* `volume_driver` - See Argument Reference above.\n* `hidden` - See Argument Reference above.\n\n## Import\n\nCluster templates can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import openstack:containerinfra/clusterTemplate:ClusterTemplate clustertemplate_1 b9a45c5c-cd03-4958-82aa-b80bf93cb922\n```\n", "properties": { "apiserverPort": { "type": "integer", @@ -6620,7 +6482,7 @@ } }, "openstack:containerinfra/nodeGroup:NodeGroup": { - "description": "Manages a V1 Magnum node group resource within OpenStack.\n\n## Example Usage\n\n### Create a Nodegroup\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst nodegroup1 = new openstack.containerinfra.NodeGroup(\"nodegroup_1\", {\n name: \"nodegroup_1\",\n clusterId: \"b9a45c5c-cd03-4958-82aa-b80bf93cb922\",\n nodeCount: 5,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nnodegroup1 = openstack.containerinfra.NodeGroup(\"nodegroup_1\",\n name=\"nodegroup_1\",\n cluster_id=\"b9a45c5c-cd03-4958-82aa-b80bf93cb922\",\n node_count=5)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var nodegroup1 = new OpenStack.ContainerInfra.NodeGroup(\"nodegroup_1\", new()\n {\n Name = \"nodegroup_1\",\n ClusterId = \"b9a45c5c-cd03-4958-82aa-b80bf93cb922\",\n NodeCount = 5,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/containerinfra\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := containerinfra.NewNodeGroup(ctx, \"nodegroup_1\", \u0026containerinfra.NodeGroupArgs{\n\t\t\tName: pulumi.String(\"nodegroup_1\"),\n\t\t\tClusterId: pulumi.String(\"b9a45c5c-cd03-4958-82aa-b80bf93cb922\"),\n\t\t\tNodeCount: pulumi.Int(5),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.containerinfra.NodeGroup;\nimport com.pulumi.openstack.containerinfra.NodeGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var nodegroup1 = new NodeGroup(\"nodegroup1\", NodeGroupArgs.builder() \n .name(\"nodegroup_1\")\n .clusterId(\"b9a45c5c-cd03-4958-82aa-b80bf93cb922\")\n .nodeCount(5)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n nodegroup1:\n type: openstack:containerinfra:NodeGroup\n name: nodegroup_1\n properties:\n name: nodegroup_1\n clusterId: b9a45c5c-cd03-4958-82aa-b80bf93cb922\n nodeCount: 5\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Attributes reference\n\nThe following attributes are exported:\n\n* `region` - See Argument Reference above.\n* `name` - See Argument Reference above.\n* `project_id` - See Argument Reference above.\n* `created_at` - The time at which node group was created.\n* `updated_at` - The time at which node group was created.\n* `docker_volume_size` - See Argument Reference above.\n* `role` - See Argument Reference above.\n* `image_id` - See Argument Reference above.\n* `flavor_id` - See Argument Reference above.\n* `labels` - See Argument Reference above.\n* `node_count` - See Argument Reference above.\n* `min_node_count` - See Argument Reference above.\n* `max_node_count` - See Argument Reference above.\n* `role` - See Argument Reference above.\n\n## Import\n\nNode groups can be imported using the `id` (cluster_id/nodegroup_id), e.g.\n\n```sh\n$ pulumi import openstack:containerinfra/nodeGroup:NodeGroup nodegroup_1 b9a45c5c-cd03-4958-82aa-b80bf93cb922/ce0f9463-dd25-474b-9fe8-94de63e5e42b\n```\n", + "description": "Manages a V1 Magnum node group resource within OpenStack.\n\n## Example Usage\n\n### Create a Nodegroup\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst nodegroup1 = new openstack.containerinfra.NodeGroup(\"nodegroup_1\", {\n name: \"nodegroup_1\",\n clusterId: \"b9a45c5c-cd03-4958-82aa-b80bf93cb922\",\n nodeCount: 5,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nnodegroup1 = openstack.containerinfra.NodeGroup(\"nodegroup_1\",\n name=\"nodegroup_1\",\n cluster_id=\"b9a45c5c-cd03-4958-82aa-b80bf93cb922\",\n node_count=5)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var nodegroup1 = new OpenStack.ContainerInfra.NodeGroup(\"nodegroup_1\", new()\n {\n Name = \"nodegroup_1\",\n ClusterId = \"b9a45c5c-cd03-4958-82aa-b80bf93cb922\",\n NodeCount = 5,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/containerinfra\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := containerinfra.NewNodeGroup(ctx, \"nodegroup_1\", \u0026containerinfra.NodeGroupArgs{\n\t\t\tName: pulumi.String(\"nodegroup_1\"),\n\t\t\tClusterId: pulumi.String(\"b9a45c5c-cd03-4958-82aa-b80bf93cb922\"),\n\t\t\tNodeCount: pulumi.Int(5),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.containerinfra.NodeGroup;\nimport com.pulumi.openstack.containerinfra.NodeGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var nodegroup1 = new NodeGroup(\"nodegroup1\", NodeGroupArgs.builder() \n .name(\"nodegroup_1\")\n .clusterId(\"b9a45c5c-cd03-4958-82aa-b80bf93cb922\")\n .nodeCount(5)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n nodegroup1:\n type: openstack:containerinfra:NodeGroup\n name: nodegroup_1\n properties:\n name: nodegroup_1\n clusterId: b9a45c5c-cd03-4958-82aa-b80bf93cb922\n nodeCount: 5\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Attributes reference\n\nThe following attributes are exported:\n\n* `region` - See Argument Reference above.\n* `name` - See Argument Reference above.\n* `project_id` - See Argument Reference above.\n* `created_at` - The time at which node group was created.\n* `updated_at` - The time at which node group was created.\n* `docker_volume_size` - See Argument Reference above.\n* `role` - See Argument Reference above.\n* `image_id` - See Argument Reference above.\n* `flavor_id` - See Argument Reference above.\n* `labels` - See Argument Reference above.\n* `node_count` - See Argument Reference above.\n* `min_node_count` - See Argument Reference above.\n* `max_node_count` - See Argument Reference above.\n* `role` - See Argument Reference above.\n\n## Import\n\nNode groups can be imported using the `id` (cluster_id/nodegroup_id), e.g.\n\n```sh\n$ pulumi import openstack:containerinfra/nodeGroup:NodeGroup nodegroup_1 b9a45c5c-cd03-4958-82aa-b80bf93cb922/ce0f9463-dd25-474b-9fe8-94de63e5e42b\n```\n", "properties": { "clusterId": { "type": "string", @@ -6943,7 +6805,7 @@ } }, "openstack:database/database:Database": { - "description": "Manages a V1 DB database resource within OpenStack.\n\n## Example Usage\n\n### Database\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst mydb = new openstack.database.Database(\"mydb\", {\n name: \"mydb\",\n instanceId: basic.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nmydb = openstack.database.Database(\"mydb\",\n name=\"mydb\",\n instance_id=basic[\"id\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var mydb = new OpenStack.Database.Database(\"mydb\", new()\n {\n Name = \"mydb\",\n InstanceId = basic.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/database\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := database.NewDatabase(ctx, \"mydb\", \u0026database.DatabaseArgs{\n\t\t\tName: pulumi.String(\"mydb\"),\n\t\t\tInstanceId: pulumi.Any(basic.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.database.Database;\nimport com.pulumi.openstack.database.DatabaseArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var mydb = new Database(\"mydb\", DatabaseArgs.builder() \n .name(\"mydb\")\n .instanceId(basic.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n mydb:\n type: openstack:database:Database\n properties:\n name: mydb\n instanceId: ${basic.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nDatabases can be imported by using `instance-id/db-name`, e.g.\n\n```sh\n$ pulumi import openstack:database/database:Database mydb 7b9e3cd3-00d9-449c-b074-8439f8e274fa/mydb\n```\n", + "description": "Manages a V1 DB database resource within OpenStack.\n\n## Example Usage\n\n### Database\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst mydb = new openstack.database.Database(\"mydb\", {\n name: \"mydb\",\n instanceId: basic.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nmydb = openstack.database.Database(\"mydb\",\n name=\"mydb\",\n instance_id=basic[\"id\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var mydb = new OpenStack.Database.Database(\"mydb\", new()\n {\n Name = \"mydb\",\n InstanceId = basic.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/database\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := database.NewDatabase(ctx, \"mydb\", \u0026database.DatabaseArgs{\n\t\t\tName: pulumi.String(\"mydb\"),\n\t\t\tInstanceId: pulumi.Any(basic.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.database.Database;\nimport com.pulumi.openstack.database.DatabaseArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var mydb = new Database(\"mydb\", DatabaseArgs.builder() \n .name(\"mydb\")\n .instanceId(basic.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n mydb:\n type: openstack:database:Database\n properties:\n name: mydb\n instanceId: ${basic.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nDatabases can be imported by using `instance-id/db-name`, e.g.\n\n```sh\n$ pulumi import openstack:database/database:Database mydb 7b9e3cd3-00d9-449c-b074-8439f8e274fa/mydb\n```\n", "properties": { "instanceId": { "type": "string", @@ -7006,7 +6868,7 @@ } }, "openstack:database/instance:Instance": { - "description": "Manages a V1 DB instance resource within OpenStack.\n\n\u003e **Note:** All arguments including the instance user password will be stored\nin the raw state as plain-text. Read more about sensitive data in\nstate.\n\n## Example Usage\n\n### Instance\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst test = new openstack.database.Instance(\"test\", {\n region: \"region-test\",\n name: \"test\",\n flavorId: \"31792d21-c355-4587-9290-56c1ed0ca376\",\n size: 8,\n networks: [{\n uuid: \"c0612505-caf2-4fb0-b7cb-56a0240a2b12\",\n }],\n datastore: {\n version: \"mysql-5.7\",\n type: \"mysql\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\ntest = openstack.database.Instance(\"test\",\n region=\"region-test\",\n name=\"test\",\n flavor_id=\"31792d21-c355-4587-9290-56c1ed0ca376\",\n size=8,\n networks=[openstack.database.InstanceNetworkArgs(\n uuid=\"c0612505-caf2-4fb0-b7cb-56a0240a2b12\",\n )],\n datastore=openstack.database.InstanceDatastoreArgs(\n version=\"mysql-5.7\",\n type=\"mysql\",\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var test = new OpenStack.Database.Instance(\"test\", new()\n {\n Region = \"region-test\",\n Name = \"test\",\n FlavorId = \"31792d21-c355-4587-9290-56c1ed0ca376\",\n Size = 8,\n Networks = new[]\n {\n new OpenStack.Database.Inputs.InstanceNetworkArgs\n {\n Uuid = \"c0612505-caf2-4fb0-b7cb-56a0240a2b12\",\n },\n },\n Datastore = new OpenStack.Database.Inputs.InstanceDatastoreArgs\n {\n Version = \"mysql-5.7\",\n Type = \"mysql\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/database\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := database.NewInstance(ctx, \"test\", \u0026database.InstanceArgs{\n\t\t\tRegion: pulumi.String(\"region-test\"),\n\t\t\tName: pulumi.String(\"test\"),\n\t\t\tFlavorId: pulumi.String(\"31792d21-c355-4587-9290-56c1ed0ca376\"),\n\t\t\tSize: pulumi.Int(8),\n\t\t\tNetworks: database.InstanceNetworkArray{\n\t\t\t\t\u0026database.InstanceNetworkArgs{\n\t\t\t\t\tUuid: pulumi.String(\"c0612505-caf2-4fb0-b7cb-56a0240a2b12\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tDatastore: \u0026database.InstanceDatastoreArgs{\n\t\t\t\tVersion: pulumi.String(\"mysql-5.7\"),\n\t\t\t\tType: pulumi.String(\"mysql\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.database.Instance;\nimport com.pulumi.openstack.database.InstanceArgs;\nimport com.pulumi.openstack.database.inputs.InstanceNetworkArgs;\nimport com.pulumi.openstack.database.inputs.InstanceDatastoreArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var test = new Instance(\"test\", InstanceArgs.builder() \n .region(\"region-test\")\n .name(\"test\")\n .flavorId(\"31792d21-c355-4587-9290-56c1ed0ca376\")\n .size(8)\n .networks(InstanceNetworkArgs.builder()\n .uuid(\"c0612505-caf2-4fb0-b7cb-56a0240a2b12\")\n .build())\n .datastore(InstanceDatastoreArgs.builder()\n .version(\"mysql-5.7\")\n .type(\"mysql\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n test:\n type: openstack:database:Instance\n properties:\n region: region-test\n name: test\n flavorId: 31792d21-c355-4587-9290-56c1ed0ca376\n size: 8\n networks:\n - uuid: c0612505-caf2-4fb0-b7cb-56a0240a2b12\n datastore:\n version: mysql-5.7\n type: mysql\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Manages a V1 DB instance resource within OpenStack.\n\n\u003e **Note:** All arguments including the instance user password will be stored\nin the raw state as plain-text. Read more about sensitive data in\nstate.\n\n## Example Usage\n\n### Instance\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst test = new openstack.database.Instance(\"test\", {\n region: \"region-test\",\n name: \"test\",\n flavorId: \"31792d21-c355-4587-9290-56c1ed0ca376\",\n size: 8,\n networks: [{\n uuid: \"c0612505-caf2-4fb0-b7cb-56a0240a2b12\",\n }],\n datastore: {\n version: \"mysql-5.7\",\n type: \"mysql\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\ntest = openstack.database.Instance(\"test\",\n region=\"region-test\",\n name=\"test\",\n flavor_id=\"31792d21-c355-4587-9290-56c1ed0ca376\",\n size=8,\n networks=[openstack.database.InstanceNetworkArgs(\n uuid=\"c0612505-caf2-4fb0-b7cb-56a0240a2b12\",\n )],\n datastore=openstack.database.InstanceDatastoreArgs(\n version=\"mysql-5.7\",\n type=\"mysql\",\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var test = new OpenStack.Database.Instance(\"test\", new()\n {\n Region = \"region-test\",\n Name = \"test\",\n FlavorId = \"31792d21-c355-4587-9290-56c1ed0ca376\",\n Size = 8,\n Networks = new[]\n {\n new OpenStack.Database.Inputs.InstanceNetworkArgs\n {\n Uuid = \"c0612505-caf2-4fb0-b7cb-56a0240a2b12\",\n },\n },\n Datastore = new OpenStack.Database.Inputs.InstanceDatastoreArgs\n {\n Version = \"mysql-5.7\",\n Type = \"mysql\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/database\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := database.NewInstance(ctx, \"test\", \u0026database.InstanceArgs{\n\t\t\tRegion: pulumi.String(\"region-test\"),\n\t\t\tName: pulumi.String(\"test\"),\n\t\t\tFlavorId: pulumi.String(\"31792d21-c355-4587-9290-56c1ed0ca376\"),\n\t\t\tSize: pulumi.Int(8),\n\t\t\tNetworks: database.InstanceNetworkArray{\n\t\t\t\t\u0026database.InstanceNetworkArgs{\n\t\t\t\t\tUuid: pulumi.String(\"c0612505-caf2-4fb0-b7cb-56a0240a2b12\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tDatastore: \u0026database.InstanceDatastoreArgs{\n\t\t\t\tVersion: pulumi.String(\"mysql-5.7\"),\n\t\t\t\tType: pulumi.String(\"mysql\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.database.Instance;\nimport com.pulumi.openstack.database.InstanceArgs;\nimport com.pulumi.openstack.database.inputs.InstanceNetworkArgs;\nimport com.pulumi.openstack.database.inputs.InstanceDatastoreArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var test = new Instance(\"test\", InstanceArgs.builder() \n .region(\"region-test\")\n .name(\"test\")\n .flavorId(\"31792d21-c355-4587-9290-56c1ed0ca376\")\n .size(8)\n .networks(InstanceNetworkArgs.builder()\n .uuid(\"c0612505-caf2-4fb0-b7cb-56a0240a2b12\")\n .build())\n .datastore(InstanceDatastoreArgs.builder()\n .version(\"mysql-5.7\")\n .type(\"mysql\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n test:\n type: openstack:database:Instance\n properties:\n region: region-test\n name: test\n flavorId: 31792d21-c355-4587-9290-56c1ed0ca376\n size: 8\n networks:\n - uuid: c0612505-caf2-4fb0-b7cb-56a0240a2b12\n datastore:\n version: mysql-5.7\n type: mysql\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "properties": { "addresses": { "type": "array", @@ -7194,7 +7056,7 @@ } }, "openstack:database/user:User": { - "description": "Manages a V1 DB user resource within OpenStack.\n\n\u003e **Note:** All arguments including the database password will be stored in the\nraw state as plain-text. Read more about sensitive data in\nstate.\n\n## Example Usage\n\n### User\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst basic = new openstack.database.User(\"basic\", {\n name: \"basic\",\n instanceId: basicOpenstackDbInstanceV1.id,\n password: \"password\",\n databases: [\"testdb\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nbasic = openstack.database.User(\"basic\",\n name=\"basic\",\n instance_id=basic_openstack_db_instance_v1[\"id\"],\n password=\"password\",\n databases=[\"testdb\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var basic = new OpenStack.Database.User(\"basic\", new()\n {\n Name = \"basic\",\n InstanceId = basicOpenstackDbInstanceV1.Id,\n Password = \"password\",\n Databases = new[]\n {\n \"testdb\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/database\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := database.NewUser(ctx, \"basic\", \u0026database.UserArgs{\n\t\t\tName: pulumi.String(\"basic\"),\n\t\t\tInstanceId: pulumi.Any(basicOpenstackDbInstanceV1.Id),\n\t\t\tPassword: pulumi.String(\"password\"),\n\t\t\tDatabases: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"testdb\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.database.User;\nimport com.pulumi.openstack.database.UserArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var basic = new User(\"basic\", UserArgs.builder() \n .name(\"basic\")\n .instanceId(basicOpenstackDbInstanceV1.id())\n .password(\"password\")\n .databases(\"testdb\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n basic:\n type: openstack:database:User\n properties:\n name: basic\n instanceId: ${basicOpenstackDbInstanceV1.id}\n password: password\n databases:\n - testdb\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Manages a V1 DB user resource within OpenStack.\n\n\u003e **Note:** All arguments including the database password will be stored in the\nraw state as plain-text. Read more about sensitive data in\nstate.\n\n## Example Usage\n\n### User\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst basic = new openstack.database.User(\"basic\", {\n name: \"basic\",\n instanceId: basicOpenstackDbInstanceV1.id,\n password: \"password\",\n databases: [\"testdb\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nbasic = openstack.database.User(\"basic\",\n name=\"basic\",\n instance_id=basic_openstack_db_instance_v1[\"id\"],\n password=\"password\",\n databases=[\"testdb\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var basic = new OpenStack.Database.User(\"basic\", new()\n {\n Name = \"basic\",\n InstanceId = basicOpenstackDbInstanceV1.Id,\n Password = \"password\",\n Databases = new[]\n {\n \"testdb\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/database\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := database.NewUser(ctx, \"basic\", \u0026database.UserArgs{\n\t\t\tName: pulumi.String(\"basic\"),\n\t\t\tInstanceId: pulumi.Any(basicOpenstackDbInstanceV1.Id),\n\t\t\tPassword: pulumi.String(\"password\"),\n\t\t\tDatabases: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"testdb\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.database.User;\nimport com.pulumi.openstack.database.UserArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var basic = new User(\"basic\", UserArgs.builder() \n .name(\"basic\")\n .instanceId(basicOpenstackDbInstanceV1.id())\n .password(\"password\")\n .databases(\"testdb\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n basic:\n type: openstack:database:User\n properties:\n name: basic\n instanceId: ${basicOpenstackDbInstanceV1.id}\n password: password\n databases:\n - testdb\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "properties": { "databases": { "type": "array", @@ -7309,7 +7171,7 @@ } }, "openstack:dns/recordSet:RecordSet": { - "description": "Manages a DNS record set in the OpenStack DNS Service.\n\n## Example Usage\n\n### Automatically detect the correct network\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst exampleZone = new openstack.dns.Zone(\"example_zone\", {\n name: \"example.com.\",\n email: \"email2@example.com\",\n description: \"a zone\",\n ttl: 6000,\n type: \"PRIMARY\",\n});\nconst rsExampleCom = new openstack.dns.RecordSet(\"rs_example_com\", {\n zoneId: exampleZone.id,\n name: \"rs.example.com.\",\n description: \"An example record set\",\n ttl: 3000,\n type: \"A\",\n records: [\"10.0.0.1\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nexample_zone = openstack.dns.Zone(\"example_zone\",\n name=\"example.com.\",\n email=\"email2@example.com\",\n description=\"a zone\",\n ttl=6000,\n type=\"PRIMARY\")\nrs_example_com = openstack.dns.RecordSet(\"rs_example_com\",\n zone_id=example_zone.id,\n name=\"rs.example.com.\",\n description=\"An example record set\",\n ttl=3000,\n type=\"A\",\n records=[\"10.0.0.1\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var exampleZone = new OpenStack.Dns.Zone(\"example_zone\", new()\n {\n Name = \"example.com.\",\n Email = \"email2@example.com\",\n Description = \"a zone\",\n Ttl = 6000,\n Type = \"PRIMARY\",\n });\n\n var rsExampleCom = new OpenStack.Dns.RecordSet(\"rs_example_com\", new()\n {\n ZoneId = exampleZone.Id,\n Name = \"rs.example.com.\",\n Description = \"An example record set\",\n Ttl = 3000,\n Type = \"A\",\n Records = new[]\n {\n \"10.0.0.1\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/dns\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleZone, err := dns.NewZone(ctx, \"example_zone\", \u0026dns.ZoneArgs{\n\t\t\tName: pulumi.String(\"example.com.\"),\n\t\t\tEmail: pulumi.String(\"email2@example.com\"),\n\t\t\tDescription: pulumi.String(\"a zone\"),\n\t\t\tTtl: pulumi.Int(6000),\n\t\t\tType: pulumi.String(\"PRIMARY\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dns.NewRecordSet(ctx, \"rs_example_com\", \u0026dns.RecordSetArgs{\n\t\t\tZoneId: exampleZone.ID(),\n\t\t\tName: pulumi.String(\"rs.example.com.\"),\n\t\t\tDescription: pulumi.String(\"An example record set\"),\n\t\t\tTtl: pulumi.Int(3000),\n\t\t\tType: pulumi.String(\"A\"),\n\t\t\tRecords: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.0.1\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.dns.Zone;\nimport com.pulumi.openstack.dns.ZoneArgs;\nimport com.pulumi.openstack.dns.RecordSet;\nimport com.pulumi.openstack.dns.RecordSetArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var exampleZone = new Zone(\"exampleZone\", ZoneArgs.builder() \n .name(\"example.com.\")\n .email(\"email2@example.com\")\n .description(\"a zone\")\n .ttl(6000)\n .type(\"PRIMARY\")\n .build());\n\n var rsExampleCom = new RecordSet(\"rsExampleCom\", RecordSetArgs.builder() \n .zoneId(exampleZone.id())\n .name(\"rs.example.com.\")\n .description(\"An example record set\")\n .ttl(3000)\n .type(\"A\")\n .records(\"10.0.0.1\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n exampleZone:\n type: openstack:dns:Zone\n name: example_zone\n properties:\n name: example.com.\n email: email2@example.com\n description: a zone\n ttl: 6000\n type: PRIMARY\n rsExampleCom:\n type: openstack:dns:RecordSet\n name: rs_example_com\n properties:\n zoneId: ${exampleZone.id}\n name: rs.example.com.\n description: An example record set\n ttl: 3000\n type: A\n records:\n - 10.0.0.1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThis resource can be imported by specifying the zone ID and recordset ID,\nseparated by a forward slash.\n\n```sh\n$ pulumi import openstack:dns/recordSet:RecordSet recordset_1 zone_id/recordset_id\n```\n", + "description": "Manages a DNS record set in the OpenStack DNS Service.\n\n## Example Usage\n\n### Automatically detect the correct network\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst exampleZone = new openstack.dns.Zone(\"example_zone\", {\n name: \"example.com.\",\n email: \"email2@example.com\",\n description: \"a zone\",\n ttl: 6000,\n type: \"PRIMARY\",\n});\nconst rsExampleCom = new openstack.dns.RecordSet(\"rs_example_com\", {\n zoneId: exampleZone.id,\n name: \"rs.example.com.\",\n description: \"An example record set\",\n ttl: 3000,\n type: \"A\",\n records: [\"10.0.0.1\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nexample_zone = openstack.dns.Zone(\"example_zone\",\n name=\"example.com.\",\n email=\"email2@example.com\",\n description=\"a zone\",\n ttl=6000,\n type=\"PRIMARY\")\nrs_example_com = openstack.dns.RecordSet(\"rs_example_com\",\n zone_id=example_zone.id,\n name=\"rs.example.com.\",\n description=\"An example record set\",\n ttl=3000,\n type=\"A\",\n records=[\"10.0.0.1\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var exampleZone = new OpenStack.Dns.Zone(\"example_zone\", new()\n {\n Name = \"example.com.\",\n Email = \"email2@example.com\",\n Description = \"a zone\",\n Ttl = 6000,\n Type = \"PRIMARY\",\n });\n\n var rsExampleCom = new OpenStack.Dns.RecordSet(\"rs_example_com\", new()\n {\n ZoneId = exampleZone.Id,\n Name = \"rs.example.com.\",\n Description = \"An example record set\",\n Ttl = 3000,\n Type = \"A\",\n Records = new[]\n {\n \"10.0.0.1\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/dns\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleZone, err := dns.NewZone(ctx, \"example_zone\", \u0026dns.ZoneArgs{\n\t\t\tName: pulumi.String(\"example.com.\"),\n\t\t\tEmail: pulumi.String(\"email2@example.com\"),\n\t\t\tDescription: pulumi.String(\"a zone\"),\n\t\t\tTtl: pulumi.Int(6000),\n\t\t\tType: pulumi.String(\"PRIMARY\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dns.NewRecordSet(ctx, \"rs_example_com\", \u0026dns.RecordSetArgs{\n\t\t\tZoneId: exampleZone.ID(),\n\t\t\tName: pulumi.String(\"rs.example.com.\"),\n\t\t\tDescription: pulumi.String(\"An example record set\"),\n\t\t\tTtl: pulumi.Int(3000),\n\t\t\tType: pulumi.String(\"A\"),\n\t\t\tRecords: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.0.1\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.dns.Zone;\nimport com.pulumi.openstack.dns.ZoneArgs;\nimport com.pulumi.openstack.dns.RecordSet;\nimport com.pulumi.openstack.dns.RecordSetArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var exampleZone = new Zone(\"exampleZone\", ZoneArgs.builder() \n .name(\"example.com.\")\n .email(\"email2@example.com\")\n .description(\"a zone\")\n .ttl(6000)\n .type(\"PRIMARY\")\n .build());\n\n var rsExampleCom = new RecordSet(\"rsExampleCom\", RecordSetArgs.builder() \n .zoneId(exampleZone.id())\n .name(\"rs.example.com.\")\n .description(\"An example record set\")\n .ttl(3000)\n .type(\"A\")\n .records(\"10.0.0.1\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n exampleZone:\n type: openstack:dns:Zone\n name: example_zone\n properties:\n name: example.com.\n email: email2@example.com\n description: a zone\n ttl: 6000\n type: PRIMARY\n rsExampleCom:\n type: openstack:dns:RecordSet\n name: rs_example_com\n properties:\n zoneId: ${exampleZone.id}\n name: rs.example.com.\n description: An example record set\n ttl: 3000\n type: A\n records:\n - 10.0.0.1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThis resource can be imported by specifying the zone ID and recordset ID,\nseparated by a forward slash.\n\n```sh\n$ pulumi import openstack:dns/recordSet:RecordSet recordset_1 zone_id/recordset_id\n```\n", "properties": { "description": { "type": "string", @@ -7485,7 +7347,7 @@ } }, "openstack:dns/transferAccept:TransferAccept": { - "description": "Manages a DNS zone transfer accept in the OpenStack DNS Service.\n\n## Example Usage\n\n### Automatically detect the correct network\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst exampleZone = new openstack.dns.Zone(\"example_zone\", {\n name: \"example.com.\",\n email: \"jdoe@example.com\",\n description: \"An example zone\",\n ttl: 3000,\n type: \"PRIMARY\",\n});\nconst request1 = new openstack.dns.TransferRequest(\"request_1\", {\n zoneId: exampleZone.id,\n description: \"a transfer accept\",\n});\nconst accept1 = new openstack.dns.TransferAccept(\"accept_1\", {\n zoneTransferRequestId: request1.id,\n key: request1.key,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nexample_zone = openstack.dns.Zone(\"example_zone\",\n name=\"example.com.\",\n email=\"jdoe@example.com\",\n description=\"An example zone\",\n ttl=3000,\n type=\"PRIMARY\")\nrequest1 = openstack.dns.TransferRequest(\"request_1\",\n zone_id=example_zone.id,\n description=\"a transfer accept\")\naccept1 = openstack.dns.TransferAccept(\"accept_1\",\n zone_transfer_request_id=request1.id,\n key=request1.key)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var exampleZone = new OpenStack.Dns.Zone(\"example_zone\", new()\n {\n Name = \"example.com.\",\n Email = \"jdoe@example.com\",\n Description = \"An example zone\",\n Ttl = 3000,\n Type = \"PRIMARY\",\n });\n\n var request1 = new OpenStack.Dns.TransferRequest(\"request_1\", new()\n {\n ZoneId = exampleZone.Id,\n Description = \"a transfer accept\",\n });\n\n var accept1 = new OpenStack.Dns.TransferAccept(\"accept_1\", new()\n {\n ZoneTransferRequestId = request1.Id,\n Key = request1.Key,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/dns\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleZone, err := dns.NewZone(ctx, \"example_zone\", \u0026dns.ZoneArgs{\n\t\t\tName: pulumi.String(\"example.com.\"),\n\t\t\tEmail: pulumi.String(\"jdoe@example.com\"),\n\t\t\tDescription: pulumi.String(\"An example zone\"),\n\t\t\tTtl: pulumi.Int(3000),\n\t\t\tType: pulumi.String(\"PRIMARY\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\trequest1, err := dns.NewTransferRequest(ctx, \"request_1\", \u0026dns.TransferRequestArgs{\n\t\t\tZoneId: exampleZone.ID(),\n\t\t\tDescription: pulumi.String(\"a transfer accept\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dns.NewTransferAccept(ctx, \"accept_1\", \u0026dns.TransferAcceptArgs{\n\t\t\tZoneTransferRequestId: request1.ID(),\n\t\t\tKey: request1.Key,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.dns.Zone;\nimport com.pulumi.openstack.dns.ZoneArgs;\nimport com.pulumi.openstack.dns.TransferRequest;\nimport com.pulumi.openstack.dns.TransferRequestArgs;\nimport com.pulumi.openstack.dns.TransferAccept;\nimport com.pulumi.openstack.dns.TransferAcceptArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var exampleZone = new Zone(\"exampleZone\", ZoneArgs.builder() \n .name(\"example.com.\")\n .email(\"jdoe@example.com\")\n .description(\"An example zone\")\n .ttl(3000)\n .type(\"PRIMARY\")\n .build());\n\n var request1 = new TransferRequest(\"request1\", TransferRequestArgs.builder() \n .zoneId(exampleZone.id())\n .description(\"a transfer accept\")\n .build());\n\n var accept1 = new TransferAccept(\"accept1\", TransferAcceptArgs.builder() \n .zoneTransferRequestId(request1.id())\n .key(request1.key())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n exampleZone:\n type: openstack:dns:Zone\n name: example_zone\n properties:\n name: example.com.\n email: jdoe@example.com\n description: An example zone\n ttl: 3000\n type: PRIMARY\n request1:\n type: openstack:dns:TransferRequest\n name: request_1\n properties:\n zoneId: ${exampleZone.id}\n description: a transfer accept\n accept1:\n type: openstack:dns:TransferAccept\n name: accept_1\n properties:\n zoneTransferRequestId: ${request1.id}\n key: ${request1.key}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThis resource can be imported by specifying the transferAccept ID:\n\n```sh\n$ pulumi import openstack:dns/transferAccept:TransferAccept accept_1 accept_id\n```\n", + "description": "Manages a DNS zone transfer accept in the OpenStack DNS Service.\n\n## Example Usage\n\n### Automatically detect the correct network\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst exampleZone = new openstack.dns.Zone(\"example_zone\", {\n name: \"example.com.\",\n email: \"jdoe@example.com\",\n description: \"An example zone\",\n ttl: 3000,\n type: \"PRIMARY\",\n});\nconst request1 = new openstack.dns.TransferRequest(\"request_1\", {\n zoneId: exampleZone.id,\n description: \"a transfer accept\",\n});\nconst accept1 = new openstack.dns.TransferAccept(\"accept_1\", {\n zoneTransferRequestId: request1.id,\n key: request1.key,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nexample_zone = openstack.dns.Zone(\"example_zone\",\n name=\"example.com.\",\n email=\"jdoe@example.com\",\n description=\"An example zone\",\n ttl=3000,\n type=\"PRIMARY\")\nrequest1 = openstack.dns.TransferRequest(\"request_1\",\n zone_id=example_zone.id,\n description=\"a transfer accept\")\naccept1 = openstack.dns.TransferAccept(\"accept_1\",\n zone_transfer_request_id=request1.id,\n key=request1.key)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var exampleZone = new OpenStack.Dns.Zone(\"example_zone\", new()\n {\n Name = \"example.com.\",\n Email = \"jdoe@example.com\",\n Description = \"An example zone\",\n Ttl = 3000,\n Type = \"PRIMARY\",\n });\n\n var request1 = new OpenStack.Dns.TransferRequest(\"request_1\", new()\n {\n ZoneId = exampleZone.Id,\n Description = \"a transfer accept\",\n });\n\n var accept1 = new OpenStack.Dns.TransferAccept(\"accept_1\", new()\n {\n ZoneTransferRequestId = request1.Id,\n Key = request1.Key,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/dns\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleZone, err := dns.NewZone(ctx, \"example_zone\", \u0026dns.ZoneArgs{\n\t\t\tName: pulumi.String(\"example.com.\"),\n\t\t\tEmail: pulumi.String(\"jdoe@example.com\"),\n\t\t\tDescription: pulumi.String(\"An example zone\"),\n\t\t\tTtl: pulumi.Int(3000),\n\t\t\tType: pulumi.String(\"PRIMARY\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\trequest1, err := dns.NewTransferRequest(ctx, \"request_1\", \u0026dns.TransferRequestArgs{\n\t\t\tZoneId: exampleZone.ID(),\n\t\t\tDescription: pulumi.String(\"a transfer accept\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dns.NewTransferAccept(ctx, \"accept_1\", \u0026dns.TransferAcceptArgs{\n\t\t\tZoneTransferRequestId: request1.ID(),\n\t\t\tKey: request1.Key,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.dns.Zone;\nimport com.pulumi.openstack.dns.ZoneArgs;\nimport com.pulumi.openstack.dns.TransferRequest;\nimport com.pulumi.openstack.dns.TransferRequestArgs;\nimport com.pulumi.openstack.dns.TransferAccept;\nimport com.pulumi.openstack.dns.TransferAcceptArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var exampleZone = new Zone(\"exampleZone\", ZoneArgs.builder() \n .name(\"example.com.\")\n .email(\"jdoe@example.com\")\n .description(\"An example zone\")\n .ttl(3000)\n .type(\"PRIMARY\")\n .build());\n\n var request1 = new TransferRequest(\"request1\", TransferRequestArgs.builder() \n .zoneId(exampleZone.id())\n .description(\"a transfer accept\")\n .build());\n\n var accept1 = new TransferAccept(\"accept1\", TransferAcceptArgs.builder() \n .zoneTransferRequestId(request1.id())\n .key(request1.key())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n exampleZone:\n type: openstack:dns:Zone\n name: example_zone\n properties:\n name: example.com.\n email: jdoe@example.com\n description: An example zone\n ttl: 3000\n type: PRIMARY\n request1:\n type: openstack:dns:TransferRequest\n name: request_1\n properties:\n zoneId: ${exampleZone.id}\n description: a transfer accept\n accept1:\n type: openstack:dns:TransferAccept\n name: accept_1\n properties:\n zoneTransferRequestId: ${request1.id}\n key: ${request1.key}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThis resource can be imported by specifying the transferAccept ID:\n\n```sh\n$ pulumi import openstack:dns/transferAccept:TransferAccept accept_1 accept_id\n```\n", "properties": { "disableStatusCheck": { "type": "boolean", @@ -7586,7 +7448,7 @@ } }, "openstack:dns/transferRequest:TransferRequest": { - "description": "Manages a DNS zone transfer request in the OpenStack DNS Service.\n\n## Example Usage\n\n### Automatically detect the correct network\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst exampleZone = new openstack.dns.Zone(\"example_zone\", {\n name: \"example.com.\",\n email: \"jdoe@example.com\",\n description: \"An example zone\",\n ttl: 3000,\n type: \"PRIMARY\",\n});\nconst request1 = new openstack.dns.TransferRequest(\"request_1\", {\n zoneId: exampleZone.id,\n description: \"a transfer request\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nexample_zone = openstack.dns.Zone(\"example_zone\",\n name=\"example.com.\",\n email=\"jdoe@example.com\",\n description=\"An example zone\",\n ttl=3000,\n type=\"PRIMARY\")\nrequest1 = openstack.dns.TransferRequest(\"request_1\",\n zone_id=example_zone.id,\n description=\"a transfer request\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var exampleZone = new OpenStack.Dns.Zone(\"example_zone\", new()\n {\n Name = \"example.com.\",\n Email = \"jdoe@example.com\",\n Description = \"An example zone\",\n Ttl = 3000,\n Type = \"PRIMARY\",\n });\n\n var request1 = new OpenStack.Dns.TransferRequest(\"request_1\", new()\n {\n ZoneId = exampleZone.Id,\n Description = \"a transfer request\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/dns\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleZone, err := dns.NewZone(ctx, \"example_zone\", \u0026dns.ZoneArgs{\n\t\t\tName: pulumi.String(\"example.com.\"),\n\t\t\tEmail: pulumi.String(\"jdoe@example.com\"),\n\t\t\tDescription: pulumi.String(\"An example zone\"),\n\t\t\tTtl: pulumi.Int(3000),\n\t\t\tType: pulumi.String(\"PRIMARY\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dns.NewTransferRequest(ctx, \"request_1\", \u0026dns.TransferRequestArgs{\n\t\t\tZoneId: exampleZone.ID(),\n\t\t\tDescription: pulumi.String(\"a transfer request\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.dns.Zone;\nimport com.pulumi.openstack.dns.ZoneArgs;\nimport com.pulumi.openstack.dns.TransferRequest;\nimport com.pulumi.openstack.dns.TransferRequestArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var exampleZone = new Zone(\"exampleZone\", ZoneArgs.builder() \n .name(\"example.com.\")\n .email(\"jdoe@example.com\")\n .description(\"An example zone\")\n .ttl(3000)\n .type(\"PRIMARY\")\n .build());\n\n var request1 = new TransferRequest(\"request1\", TransferRequestArgs.builder() \n .zoneId(exampleZone.id())\n .description(\"a transfer request\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n exampleZone:\n type: openstack:dns:Zone\n name: example_zone\n properties:\n name: example.com.\n email: jdoe@example.com\n description: An example zone\n ttl: 3000\n type: PRIMARY\n request1:\n type: openstack:dns:TransferRequest\n name: request_1\n properties:\n zoneId: ${exampleZone.id}\n description: a transfer request\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThis resource can be imported by specifying the transferRequest ID:\n\n```sh\n$ pulumi import openstack:dns/transferRequest:TransferRequest request_1 request_id\n```\n", + "description": "Manages a DNS zone transfer request in the OpenStack DNS Service.\n\n## Example Usage\n\n### Automatically detect the correct network\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst exampleZone = new openstack.dns.Zone(\"example_zone\", {\n name: \"example.com.\",\n email: \"jdoe@example.com\",\n description: \"An example zone\",\n ttl: 3000,\n type: \"PRIMARY\",\n});\nconst request1 = new openstack.dns.TransferRequest(\"request_1\", {\n zoneId: exampleZone.id,\n description: \"a transfer request\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nexample_zone = openstack.dns.Zone(\"example_zone\",\n name=\"example.com.\",\n email=\"jdoe@example.com\",\n description=\"An example zone\",\n ttl=3000,\n type=\"PRIMARY\")\nrequest1 = openstack.dns.TransferRequest(\"request_1\",\n zone_id=example_zone.id,\n description=\"a transfer request\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var exampleZone = new OpenStack.Dns.Zone(\"example_zone\", new()\n {\n Name = \"example.com.\",\n Email = \"jdoe@example.com\",\n Description = \"An example zone\",\n Ttl = 3000,\n Type = \"PRIMARY\",\n });\n\n var request1 = new OpenStack.Dns.TransferRequest(\"request_1\", new()\n {\n ZoneId = exampleZone.Id,\n Description = \"a transfer request\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/dns\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleZone, err := dns.NewZone(ctx, \"example_zone\", \u0026dns.ZoneArgs{\n\t\t\tName: pulumi.String(\"example.com.\"),\n\t\t\tEmail: pulumi.String(\"jdoe@example.com\"),\n\t\t\tDescription: pulumi.String(\"An example zone\"),\n\t\t\tTtl: pulumi.Int(3000),\n\t\t\tType: pulumi.String(\"PRIMARY\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dns.NewTransferRequest(ctx, \"request_1\", \u0026dns.TransferRequestArgs{\n\t\t\tZoneId: exampleZone.ID(),\n\t\t\tDescription: pulumi.String(\"a transfer request\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.dns.Zone;\nimport com.pulumi.openstack.dns.ZoneArgs;\nimport com.pulumi.openstack.dns.TransferRequest;\nimport com.pulumi.openstack.dns.TransferRequestArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var exampleZone = new Zone(\"exampleZone\", ZoneArgs.builder() \n .name(\"example.com.\")\n .email(\"jdoe@example.com\")\n .description(\"An example zone\")\n .ttl(3000)\n .type(\"PRIMARY\")\n .build());\n\n var request1 = new TransferRequest(\"request1\", TransferRequestArgs.builder() \n .zoneId(exampleZone.id())\n .description(\"a transfer request\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n exampleZone:\n type: openstack:dns:Zone\n name: example_zone\n properties:\n name: example.com.\n email: jdoe@example.com\n description: An example zone\n ttl: 3000\n type: PRIMARY\n request1:\n type: openstack:dns:TransferRequest\n name: request_1\n properties:\n zoneId: ${exampleZone.id}\n description: a transfer request\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThis resource can be imported by specifying the transferRequest ID:\n\n```sh\n$ pulumi import openstack:dns/transferRequest:TransferRequest request_1 request_id\n```\n", "properties": { "description": { "type": "string", @@ -7708,7 +7570,7 @@ } }, "openstack:dns/zone:Zone": { - "description": "Manages a DNS zone in the OpenStack DNS Service.\n\n## Example Usage\n\n### Automatically detect the correct network\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst exampleCom = new openstack.dns.Zone(\"example_com\", {\n name: \"example.com.\",\n email: \"jdoe@example.com\",\n description: \"An example zone\",\n ttl: 3000,\n type: \"PRIMARY\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nexample_com = openstack.dns.Zone(\"example_com\",\n name=\"example.com.\",\n email=\"jdoe@example.com\",\n description=\"An example zone\",\n ttl=3000,\n type=\"PRIMARY\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var exampleCom = new OpenStack.Dns.Zone(\"example_com\", new()\n {\n Name = \"example.com.\",\n Email = \"jdoe@example.com\",\n Description = \"An example zone\",\n Ttl = 3000,\n Type = \"PRIMARY\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/dns\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := dns.NewZone(ctx, \"example_com\", \u0026dns.ZoneArgs{\n\t\t\tName: pulumi.String(\"example.com.\"),\n\t\t\tEmail: pulumi.String(\"jdoe@example.com\"),\n\t\t\tDescription: pulumi.String(\"An example zone\"),\n\t\t\tTtl: pulumi.Int(3000),\n\t\t\tType: pulumi.String(\"PRIMARY\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.dns.Zone;\nimport com.pulumi.openstack.dns.ZoneArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var exampleCom = new Zone(\"exampleCom\", ZoneArgs.builder() \n .name(\"example.com.\")\n .email(\"jdoe@example.com\")\n .description(\"An example zone\")\n .ttl(3000)\n .type(\"PRIMARY\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n exampleCom:\n type: openstack:dns:Zone\n name: example_com\n properties:\n name: example.com.\n email: jdoe@example.com\n description: An example zone\n ttl: 3000\n type: PRIMARY\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThis resource can be imported by specifying the zone ID with optional project ID:\n\n```sh\n$ pulumi import openstack:dns/zone:Zone zone_1 zone_id\n```\n\n```sh\n$ pulumi import openstack:dns/zone:Zone zone_1 zone_id/project_id\n```\n\n", + "description": "Manages a DNS zone in the OpenStack DNS Service.\n\n## Example Usage\n\n### Automatically detect the correct network\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst exampleCom = new openstack.dns.Zone(\"example_com\", {\n name: \"example.com.\",\n email: \"jdoe@example.com\",\n description: \"An example zone\",\n ttl: 3000,\n type: \"PRIMARY\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nexample_com = openstack.dns.Zone(\"example_com\",\n name=\"example.com.\",\n email=\"jdoe@example.com\",\n description=\"An example zone\",\n ttl=3000,\n type=\"PRIMARY\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var exampleCom = new OpenStack.Dns.Zone(\"example_com\", new()\n {\n Name = \"example.com.\",\n Email = \"jdoe@example.com\",\n Description = \"An example zone\",\n Ttl = 3000,\n Type = \"PRIMARY\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/dns\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := dns.NewZone(ctx, \"example_com\", \u0026dns.ZoneArgs{\n\t\t\tName: pulumi.String(\"example.com.\"),\n\t\t\tEmail: pulumi.String(\"jdoe@example.com\"),\n\t\t\tDescription: pulumi.String(\"An example zone\"),\n\t\t\tTtl: pulumi.Int(3000),\n\t\t\tType: pulumi.String(\"PRIMARY\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.dns.Zone;\nimport com.pulumi.openstack.dns.ZoneArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var exampleCom = new Zone(\"exampleCom\", ZoneArgs.builder() \n .name(\"example.com.\")\n .email(\"jdoe@example.com\")\n .description(\"An example zone\")\n .ttl(3000)\n .type(\"PRIMARY\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n exampleCom:\n type: openstack:dns:Zone\n name: example_com\n properties:\n name: example.com.\n email: jdoe@example.com\n description: An example zone\n ttl: 3000\n type: PRIMARY\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThis resource can be imported by specifying the zone ID with optional project ID:\n\n```sh\n$ pulumi import openstack:dns/zone:Zone zone_1 zone_id\n```\n\n```sh\n$ pulumi import openstack:dns/zone:Zone zone_1 zone_id/project_id\n```\n\n", "properties": { "attributes": { "type": "object", @@ -7899,7 +7761,7 @@ } }, "openstack:firewall/firewall:Firewall": { - "description": "Manages a v1 firewall resource within OpenStack.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst rule1 = new openstack.firewall.Rule(\"rule_1\", {\n name: \"my-rule-1\",\n description: \"drop TELNET traffic\",\n action: \"deny\",\n protocol: \"tcp\",\n destinationPort: \"23\",\n enabled: true,\n});\nconst rule2 = new openstack.firewall.Rule(\"rule_2\", {\n name: \"my-rule-2\",\n description: \"drop NTP traffic\",\n action: \"deny\",\n protocol: \"udp\",\n destinationPort: \"123\",\n enabled: false,\n});\nconst policy1 = new openstack.firewall.Policy(\"policy_1\", {\n name: \"my-policy\",\n rules: [\n rule1.id,\n rule2.id,\n ],\n});\nconst firewall1 = new openstack.firewall.Firewall(\"firewall_1\", {\n name: \"my-firewall\",\n policyId: policy1.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nrule1 = openstack.firewall.Rule(\"rule_1\",\n name=\"my-rule-1\",\n description=\"drop TELNET traffic\",\n action=\"deny\",\n protocol=\"tcp\",\n destination_port=\"23\",\n enabled=True)\nrule2 = openstack.firewall.Rule(\"rule_2\",\n name=\"my-rule-2\",\n description=\"drop NTP traffic\",\n action=\"deny\",\n protocol=\"udp\",\n destination_port=\"123\",\n enabled=False)\npolicy1 = openstack.firewall.Policy(\"policy_1\",\n name=\"my-policy\",\n rules=[\n rule1.id,\n rule2.id,\n ])\nfirewall1 = openstack.firewall.Firewall(\"firewall_1\",\n name=\"my-firewall\",\n policy_id=policy1.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var rule1 = new OpenStack.Firewall.Rule(\"rule_1\", new()\n {\n Name = \"my-rule-1\",\n Description = \"drop TELNET traffic\",\n Action = \"deny\",\n Protocol = \"tcp\",\n DestinationPort = \"23\",\n Enabled = true,\n });\n\n var rule2 = new OpenStack.Firewall.Rule(\"rule_2\", new()\n {\n Name = \"my-rule-2\",\n Description = \"drop NTP traffic\",\n Action = \"deny\",\n Protocol = \"udp\",\n DestinationPort = \"123\",\n Enabled = false,\n });\n\n var policy1 = new OpenStack.Firewall.Policy(\"policy_1\", new()\n {\n Name = \"my-policy\",\n Rules = new[]\n {\n rule1.Id,\n rule2.Id,\n },\n });\n\n var firewall1 = new OpenStack.Firewall.Firewall(\"firewall_1\", new()\n {\n Name = \"my-firewall\",\n PolicyId = policy1.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/firewall\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\trule1, err := firewall.NewRule(ctx, \"rule_1\", \u0026firewall.RuleArgs{\n\t\t\tName: pulumi.String(\"my-rule-1\"),\n\t\t\tDescription: pulumi.String(\"drop TELNET traffic\"),\n\t\t\tAction: pulumi.String(\"deny\"),\n\t\t\tProtocol: pulumi.String(\"tcp\"),\n\t\t\tDestinationPort: pulumi.String(\"23\"),\n\t\t\tEnabled: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\trule2, err := firewall.NewRule(ctx, \"rule_2\", \u0026firewall.RuleArgs{\n\t\t\tName: pulumi.String(\"my-rule-2\"),\n\t\t\tDescription: pulumi.String(\"drop NTP traffic\"),\n\t\t\tAction: pulumi.String(\"deny\"),\n\t\t\tProtocol: pulumi.String(\"udp\"),\n\t\t\tDestinationPort: pulumi.String(\"123\"),\n\t\t\tEnabled: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpolicy1, err := firewall.NewPolicy(ctx, \"policy_1\", \u0026firewall.PolicyArgs{\n\t\t\tName: pulumi.String(\"my-policy\"),\n\t\t\tRules: pulumi.StringArray{\n\t\t\t\trule1.ID(),\n\t\t\t\trule2.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = firewall.NewFirewall(ctx, \"firewall_1\", \u0026firewall.FirewallArgs{\n\t\t\tName: pulumi.String(\"my-firewall\"),\n\t\t\tPolicyId: policy1.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.firewall.Rule;\nimport com.pulumi.openstack.firewall.RuleArgs;\nimport com.pulumi.openstack.firewall.Policy;\nimport com.pulumi.openstack.firewall.PolicyArgs;\nimport com.pulumi.openstack.firewall.Firewall;\nimport com.pulumi.openstack.firewall.FirewallArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var rule1 = new Rule(\"rule1\", RuleArgs.builder() \n .name(\"my-rule-1\")\n .description(\"drop TELNET traffic\")\n .action(\"deny\")\n .protocol(\"tcp\")\n .destinationPort(\"23\")\n .enabled(\"true\")\n .build());\n\n var rule2 = new Rule(\"rule2\", RuleArgs.builder() \n .name(\"my-rule-2\")\n .description(\"drop NTP traffic\")\n .action(\"deny\")\n .protocol(\"udp\")\n .destinationPort(\"123\")\n .enabled(\"false\")\n .build());\n\n var policy1 = new Policy(\"policy1\", PolicyArgs.builder() \n .name(\"my-policy\")\n .rules( \n rule1.id(),\n rule2.id())\n .build());\n\n var firewall1 = new Firewall(\"firewall1\", FirewallArgs.builder() \n .name(\"my-firewall\")\n .policyId(policy1.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n rule1:\n type: openstack:firewall:Rule\n name: rule_1\n properties:\n name: my-rule-1\n description: drop TELNET traffic\n action: deny\n protocol: tcp\n destinationPort: '23'\n enabled: 'true'\n rule2:\n type: openstack:firewall:Rule\n name: rule_2\n properties:\n name: my-rule-2\n description: drop NTP traffic\n action: deny\n protocol: udp\n destinationPort: '123'\n enabled: 'false'\n policy1:\n type: openstack:firewall:Policy\n name: policy_1\n properties:\n name: my-policy\n rules:\n - ${rule1.id}\n - ${rule2.id}\n firewall1:\n type: openstack:firewall:Firewall\n name: firewall_1\n properties:\n name: my-firewall\n policyId: ${policy1.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nFirewalls can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import openstack:firewall/firewall:Firewall firewall_1 c9e39fb2-ce20-46c8-a964-25f3898c7a97\n```\n", + "description": "Manages a v1 firewall resource within OpenStack.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst rule1 = new openstack.firewall.Rule(\"rule_1\", {\n name: \"my-rule-1\",\n description: \"drop TELNET traffic\",\n action: \"deny\",\n protocol: \"tcp\",\n destinationPort: \"23\",\n enabled: true,\n});\nconst rule2 = new openstack.firewall.Rule(\"rule_2\", {\n name: \"my-rule-2\",\n description: \"drop NTP traffic\",\n action: \"deny\",\n protocol: \"udp\",\n destinationPort: \"123\",\n enabled: false,\n});\nconst policy1 = new openstack.firewall.Policy(\"policy_1\", {\n name: \"my-policy\",\n rules: [\n rule1.id,\n rule2.id,\n ],\n});\nconst firewall1 = new openstack.firewall.Firewall(\"firewall_1\", {\n name: \"my-firewall\",\n policyId: policy1.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nrule1 = openstack.firewall.Rule(\"rule_1\",\n name=\"my-rule-1\",\n description=\"drop TELNET traffic\",\n action=\"deny\",\n protocol=\"tcp\",\n destination_port=\"23\",\n enabled=True)\nrule2 = openstack.firewall.Rule(\"rule_2\",\n name=\"my-rule-2\",\n description=\"drop NTP traffic\",\n action=\"deny\",\n protocol=\"udp\",\n destination_port=\"123\",\n enabled=False)\npolicy1 = openstack.firewall.Policy(\"policy_1\",\n name=\"my-policy\",\n rules=[\n rule1.id,\n rule2.id,\n ])\nfirewall1 = openstack.firewall.Firewall(\"firewall_1\",\n name=\"my-firewall\",\n policy_id=policy1.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var rule1 = new OpenStack.Firewall.Rule(\"rule_1\", new()\n {\n Name = \"my-rule-1\",\n Description = \"drop TELNET traffic\",\n Action = \"deny\",\n Protocol = \"tcp\",\n DestinationPort = \"23\",\n Enabled = true,\n });\n\n var rule2 = new OpenStack.Firewall.Rule(\"rule_2\", new()\n {\n Name = \"my-rule-2\",\n Description = \"drop NTP traffic\",\n Action = \"deny\",\n Protocol = \"udp\",\n DestinationPort = \"123\",\n Enabled = false,\n });\n\n var policy1 = new OpenStack.Firewall.Policy(\"policy_1\", new()\n {\n Name = \"my-policy\",\n Rules = new[]\n {\n rule1.Id,\n rule2.Id,\n },\n });\n\n var firewall1 = new OpenStack.Firewall.Firewall(\"firewall_1\", new()\n {\n Name = \"my-firewall\",\n PolicyId = policy1.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/firewall\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\trule1, err := firewall.NewRule(ctx, \"rule_1\", \u0026firewall.RuleArgs{\n\t\t\tName: pulumi.String(\"my-rule-1\"),\n\t\t\tDescription: pulumi.String(\"drop TELNET traffic\"),\n\t\t\tAction: pulumi.String(\"deny\"),\n\t\t\tProtocol: pulumi.String(\"tcp\"),\n\t\t\tDestinationPort: pulumi.String(\"23\"),\n\t\t\tEnabled: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\trule2, err := firewall.NewRule(ctx, \"rule_2\", \u0026firewall.RuleArgs{\n\t\t\tName: pulumi.String(\"my-rule-2\"),\n\t\t\tDescription: pulumi.String(\"drop NTP traffic\"),\n\t\t\tAction: pulumi.String(\"deny\"),\n\t\t\tProtocol: pulumi.String(\"udp\"),\n\t\t\tDestinationPort: pulumi.String(\"123\"),\n\t\t\tEnabled: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpolicy1, err := firewall.NewPolicy(ctx, \"policy_1\", \u0026firewall.PolicyArgs{\n\t\t\tName: pulumi.String(\"my-policy\"),\n\t\t\tRules: pulumi.StringArray{\n\t\t\t\trule1.ID(),\n\t\t\t\trule2.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = firewall.NewFirewall(ctx, \"firewall_1\", \u0026firewall.FirewallArgs{\n\t\t\tName: pulumi.String(\"my-firewall\"),\n\t\t\tPolicyId: policy1.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.firewall.Rule;\nimport com.pulumi.openstack.firewall.RuleArgs;\nimport com.pulumi.openstack.firewall.Policy;\nimport com.pulumi.openstack.firewall.PolicyArgs;\nimport com.pulumi.openstack.firewall.Firewall;\nimport com.pulumi.openstack.firewall.FirewallArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var rule1 = new Rule(\"rule1\", RuleArgs.builder() \n .name(\"my-rule-1\")\n .description(\"drop TELNET traffic\")\n .action(\"deny\")\n .protocol(\"tcp\")\n .destinationPort(\"23\")\n .enabled(\"true\")\n .build());\n\n var rule2 = new Rule(\"rule2\", RuleArgs.builder() \n .name(\"my-rule-2\")\n .description(\"drop NTP traffic\")\n .action(\"deny\")\n .protocol(\"udp\")\n .destinationPort(\"123\")\n .enabled(\"false\")\n .build());\n\n var policy1 = new Policy(\"policy1\", PolicyArgs.builder() \n .name(\"my-policy\")\n .rules( \n rule1.id(),\n rule2.id())\n .build());\n\n var firewall1 = new Firewall(\"firewall1\", FirewallArgs.builder() \n .name(\"my-firewall\")\n .policyId(policy1.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n rule1:\n type: openstack:firewall:Rule\n name: rule_1\n properties:\n name: my-rule-1\n description: drop TELNET traffic\n action: deny\n protocol: tcp\n destinationPort: '23'\n enabled: 'true'\n rule2:\n type: openstack:firewall:Rule\n name: rule_2\n properties:\n name: my-rule-2\n description: drop NTP traffic\n action: deny\n protocol: udp\n destinationPort: '123'\n enabled: 'false'\n policy1:\n type: openstack:firewall:Policy\n name: policy_1\n properties:\n name: my-policy\n rules:\n - ${rule1.id}\n - ${rule2.id}\n firewall1:\n type: openstack:firewall:Firewall\n name: firewall_1\n properties:\n name: my-firewall\n policyId: ${policy1.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nFirewalls can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import openstack:firewall/firewall:Firewall firewall_1 c9e39fb2-ce20-46c8-a964-25f3898c7a97\n```\n", "properties": { "adminStateUp": { "type": "boolean", @@ -8054,7 +7916,7 @@ } }, "openstack:firewall/groupV2:GroupV2": { - "description": "Manages a v2 firewall group resource within OpenStack.\n\n\u003e **Note:** Firewall v2 has no support for OVN currently.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst rule1 = new openstack.firewall.RuleV2(\"rule_1\", {\n name: \"firewall_rule_2\",\n description: \"drop TELNET traffic\",\n action: \"deny\",\n protocol: \"tcp\",\n destinationPort: \"23\",\n enabled: true,\n});\nconst rule2 = new openstack.firewall.RuleV2(\"rule_2\", {\n name: \"firewall_rule_1\",\n description: \"drop NTP traffic\",\n action: \"deny\",\n protocol: \"udp\",\n destinationPort: \"123\",\n enabled: false,\n});\nconst policy1 = new openstack.firewall.PolicyV2(\"policy_1\", {\n name: \"firewall_ingress_policy\",\n rules: [rule1.id],\n});\nconst policy2 = new openstack.firewall.PolicyV2(\"policy_2\", {\n name: \"firewall_egress_policy\",\n rules: [rule2.id],\n});\nconst group1 = new openstack.firewall.GroupV2(\"group_1\", {\n name: \"firewall_group\",\n ingressFirewallPolicyId: policy1.id,\n egressFirewallPolicyId: policy2.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nrule1 = openstack.firewall.RuleV2(\"rule_1\",\n name=\"firewall_rule_2\",\n description=\"drop TELNET traffic\",\n action=\"deny\",\n protocol=\"tcp\",\n destination_port=\"23\",\n enabled=True)\nrule2 = openstack.firewall.RuleV2(\"rule_2\",\n name=\"firewall_rule_1\",\n description=\"drop NTP traffic\",\n action=\"deny\",\n protocol=\"udp\",\n destination_port=\"123\",\n enabled=False)\npolicy1 = openstack.firewall.PolicyV2(\"policy_1\",\n name=\"firewall_ingress_policy\",\n rules=[rule1.id])\npolicy2 = openstack.firewall.PolicyV2(\"policy_2\",\n name=\"firewall_egress_policy\",\n rules=[rule2.id])\ngroup1 = openstack.firewall.GroupV2(\"group_1\",\n name=\"firewall_group\",\n ingress_firewall_policy_id=policy1.id,\n egress_firewall_policy_id=policy2.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var rule1 = new OpenStack.Firewall.RuleV2(\"rule_1\", new()\n {\n Name = \"firewall_rule_2\",\n Description = \"drop TELNET traffic\",\n Action = \"deny\",\n Protocol = \"tcp\",\n DestinationPort = \"23\",\n Enabled = true,\n });\n\n var rule2 = new OpenStack.Firewall.RuleV2(\"rule_2\", new()\n {\n Name = \"firewall_rule_1\",\n Description = \"drop NTP traffic\",\n Action = \"deny\",\n Protocol = \"udp\",\n DestinationPort = \"123\",\n Enabled = false,\n });\n\n var policy1 = new OpenStack.Firewall.PolicyV2(\"policy_1\", new()\n {\n Name = \"firewall_ingress_policy\",\n Rules = new[]\n {\n rule1.Id,\n },\n });\n\n var policy2 = new OpenStack.Firewall.PolicyV2(\"policy_2\", new()\n {\n Name = \"firewall_egress_policy\",\n Rules = new[]\n {\n rule2.Id,\n },\n });\n\n var group1 = new OpenStack.Firewall.GroupV2(\"group_1\", new()\n {\n Name = \"firewall_group\",\n IngressFirewallPolicyId = policy1.Id,\n EgressFirewallPolicyId = policy2.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/firewall\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\trule1, err := firewall.NewRuleV2(ctx, \"rule_1\", \u0026firewall.RuleV2Args{\n\t\t\tName: pulumi.String(\"firewall_rule_2\"),\n\t\t\tDescription: pulumi.String(\"drop TELNET traffic\"),\n\t\t\tAction: pulumi.String(\"deny\"),\n\t\t\tProtocol: pulumi.String(\"tcp\"),\n\t\t\tDestinationPort: pulumi.String(\"23\"),\n\t\t\tEnabled: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\trule2, err := firewall.NewRuleV2(ctx, \"rule_2\", \u0026firewall.RuleV2Args{\n\t\t\tName: pulumi.String(\"firewall_rule_1\"),\n\t\t\tDescription: pulumi.String(\"drop NTP traffic\"),\n\t\t\tAction: pulumi.String(\"deny\"),\n\t\t\tProtocol: pulumi.String(\"udp\"),\n\t\t\tDestinationPort: pulumi.String(\"123\"),\n\t\t\tEnabled: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpolicy1, err := firewall.NewPolicyV2(ctx, \"policy_1\", \u0026firewall.PolicyV2Args{\n\t\t\tName: pulumi.String(\"firewall_ingress_policy\"),\n\t\t\tRules: pulumi.StringArray{\n\t\t\t\trule1.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpolicy2, err := firewall.NewPolicyV2(ctx, \"policy_2\", \u0026firewall.PolicyV2Args{\n\t\t\tName: pulumi.String(\"firewall_egress_policy\"),\n\t\t\tRules: pulumi.StringArray{\n\t\t\t\trule2.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = firewall.NewGroupV2(ctx, \"group_1\", \u0026firewall.GroupV2Args{\n\t\t\tName: pulumi.String(\"firewall_group\"),\n\t\t\tIngressFirewallPolicyId: policy1.ID(),\n\t\t\tEgressFirewallPolicyId: policy2.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.firewall.RuleV2;\nimport com.pulumi.openstack.firewall.RuleV2Args;\nimport com.pulumi.openstack.firewall.PolicyV2;\nimport com.pulumi.openstack.firewall.PolicyV2Args;\nimport com.pulumi.openstack.firewall.GroupV2;\nimport com.pulumi.openstack.firewall.GroupV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var rule1 = new RuleV2(\"rule1\", RuleV2Args.builder() \n .name(\"firewall_rule_2\")\n .description(\"drop TELNET traffic\")\n .action(\"deny\")\n .protocol(\"tcp\")\n .destinationPort(\"23\")\n .enabled(\"true\")\n .build());\n\n var rule2 = new RuleV2(\"rule2\", RuleV2Args.builder() \n .name(\"firewall_rule_1\")\n .description(\"drop NTP traffic\")\n .action(\"deny\")\n .protocol(\"udp\")\n .destinationPort(\"123\")\n .enabled(\"false\")\n .build());\n\n var policy1 = new PolicyV2(\"policy1\", PolicyV2Args.builder() \n .name(\"firewall_ingress_policy\")\n .rules(rule1.id())\n .build());\n\n var policy2 = new PolicyV2(\"policy2\", PolicyV2Args.builder() \n .name(\"firewall_egress_policy\")\n .rules(rule2.id())\n .build());\n\n var group1 = new GroupV2(\"group1\", GroupV2Args.builder() \n .name(\"firewall_group\")\n .ingressFirewallPolicyId(policy1.id())\n .egressFirewallPolicyId(policy2.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n rule1:\n type: openstack:firewall:RuleV2\n name: rule_1\n properties:\n name: firewall_rule_2\n description: drop TELNET traffic\n action: deny\n protocol: tcp\n destinationPort: '23'\n enabled: 'true'\n rule2:\n type: openstack:firewall:RuleV2\n name: rule_2\n properties:\n name: firewall_rule_1\n description: drop NTP traffic\n action: deny\n protocol: udp\n destinationPort: '123'\n enabled: 'false'\n policy1:\n type: openstack:firewall:PolicyV2\n name: policy_1\n properties:\n name: firewall_ingress_policy\n rules:\n - ${rule1.id}\n policy2:\n type: openstack:firewall:PolicyV2\n name: policy_2\n properties:\n name: firewall_egress_policy\n rules:\n - ${rule2.id}\n group1:\n type: openstack:firewall:GroupV2\n name: group_1\n properties:\n name: firewall_group\n ingressFirewallPolicyId: ${policy1.id}\n egressFirewallPolicyId: ${policy2.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nFirewall groups can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import openstack:firewall/groupV2:GroupV2 group_1 c9e39fb2-ce20-46c8-a964-25f3898c7a97\n```\n", + "description": "Manages a v2 firewall group resource within OpenStack.\n\n\u003e **Note:** Firewall v2 has no support for OVN currently.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst rule1 = new openstack.firewall.RuleV2(\"rule_1\", {\n name: \"firewall_rule_2\",\n description: \"drop TELNET traffic\",\n action: \"deny\",\n protocol: \"tcp\",\n destinationPort: \"23\",\n enabled: true,\n});\nconst rule2 = new openstack.firewall.RuleV2(\"rule_2\", {\n name: \"firewall_rule_1\",\n description: \"drop NTP traffic\",\n action: \"deny\",\n protocol: \"udp\",\n destinationPort: \"123\",\n enabled: false,\n});\nconst policy1 = new openstack.firewall.PolicyV2(\"policy_1\", {\n name: \"firewall_ingress_policy\",\n rules: [rule1.id],\n});\nconst policy2 = new openstack.firewall.PolicyV2(\"policy_2\", {\n name: \"firewall_egress_policy\",\n rules: [rule2.id],\n});\nconst group1 = new openstack.firewall.GroupV2(\"group_1\", {\n name: \"firewall_group\",\n ingressFirewallPolicyId: policy1.id,\n egressFirewallPolicyId: policy2.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nrule1 = openstack.firewall.RuleV2(\"rule_1\",\n name=\"firewall_rule_2\",\n description=\"drop TELNET traffic\",\n action=\"deny\",\n protocol=\"tcp\",\n destination_port=\"23\",\n enabled=True)\nrule2 = openstack.firewall.RuleV2(\"rule_2\",\n name=\"firewall_rule_1\",\n description=\"drop NTP traffic\",\n action=\"deny\",\n protocol=\"udp\",\n destination_port=\"123\",\n enabled=False)\npolicy1 = openstack.firewall.PolicyV2(\"policy_1\",\n name=\"firewall_ingress_policy\",\n rules=[rule1.id])\npolicy2 = openstack.firewall.PolicyV2(\"policy_2\",\n name=\"firewall_egress_policy\",\n rules=[rule2.id])\ngroup1 = openstack.firewall.GroupV2(\"group_1\",\n name=\"firewall_group\",\n ingress_firewall_policy_id=policy1.id,\n egress_firewall_policy_id=policy2.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var rule1 = new OpenStack.Firewall.RuleV2(\"rule_1\", new()\n {\n Name = \"firewall_rule_2\",\n Description = \"drop TELNET traffic\",\n Action = \"deny\",\n Protocol = \"tcp\",\n DestinationPort = \"23\",\n Enabled = true,\n });\n\n var rule2 = new OpenStack.Firewall.RuleV2(\"rule_2\", new()\n {\n Name = \"firewall_rule_1\",\n Description = \"drop NTP traffic\",\n Action = \"deny\",\n Protocol = \"udp\",\n DestinationPort = \"123\",\n Enabled = false,\n });\n\n var policy1 = new OpenStack.Firewall.PolicyV2(\"policy_1\", new()\n {\n Name = \"firewall_ingress_policy\",\n Rules = new[]\n {\n rule1.Id,\n },\n });\n\n var policy2 = new OpenStack.Firewall.PolicyV2(\"policy_2\", new()\n {\n Name = \"firewall_egress_policy\",\n Rules = new[]\n {\n rule2.Id,\n },\n });\n\n var group1 = new OpenStack.Firewall.GroupV2(\"group_1\", new()\n {\n Name = \"firewall_group\",\n IngressFirewallPolicyId = policy1.Id,\n EgressFirewallPolicyId = policy2.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/firewall\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\trule1, err := firewall.NewRuleV2(ctx, \"rule_1\", \u0026firewall.RuleV2Args{\n\t\t\tName: pulumi.String(\"firewall_rule_2\"),\n\t\t\tDescription: pulumi.String(\"drop TELNET traffic\"),\n\t\t\tAction: pulumi.String(\"deny\"),\n\t\t\tProtocol: pulumi.String(\"tcp\"),\n\t\t\tDestinationPort: pulumi.String(\"23\"),\n\t\t\tEnabled: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\trule2, err := firewall.NewRuleV2(ctx, \"rule_2\", \u0026firewall.RuleV2Args{\n\t\t\tName: pulumi.String(\"firewall_rule_1\"),\n\t\t\tDescription: pulumi.String(\"drop NTP traffic\"),\n\t\t\tAction: pulumi.String(\"deny\"),\n\t\t\tProtocol: pulumi.String(\"udp\"),\n\t\t\tDestinationPort: pulumi.String(\"123\"),\n\t\t\tEnabled: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpolicy1, err := firewall.NewPolicyV2(ctx, \"policy_1\", \u0026firewall.PolicyV2Args{\n\t\t\tName: pulumi.String(\"firewall_ingress_policy\"),\n\t\t\tRules: pulumi.StringArray{\n\t\t\t\trule1.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpolicy2, err := firewall.NewPolicyV2(ctx, \"policy_2\", \u0026firewall.PolicyV2Args{\n\t\t\tName: pulumi.String(\"firewall_egress_policy\"),\n\t\t\tRules: pulumi.StringArray{\n\t\t\t\trule2.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = firewall.NewGroupV2(ctx, \"group_1\", \u0026firewall.GroupV2Args{\n\t\t\tName: pulumi.String(\"firewall_group\"),\n\t\t\tIngressFirewallPolicyId: policy1.ID(),\n\t\t\tEgressFirewallPolicyId: policy2.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.firewall.RuleV2;\nimport com.pulumi.openstack.firewall.RuleV2Args;\nimport com.pulumi.openstack.firewall.PolicyV2;\nimport com.pulumi.openstack.firewall.PolicyV2Args;\nimport com.pulumi.openstack.firewall.GroupV2;\nimport com.pulumi.openstack.firewall.GroupV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var rule1 = new RuleV2(\"rule1\", RuleV2Args.builder() \n .name(\"firewall_rule_2\")\n .description(\"drop TELNET traffic\")\n .action(\"deny\")\n .protocol(\"tcp\")\n .destinationPort(\"23\")\n .enabled(\"true\")\n .build());\n\n var rule2 = new RuleV2(\"rule2\", RuleV2Args.builder() \n .name(\"firewall_rule_1\")\n .description(\"drop NTP traffic\")\n .action(\"deny\")\n .protocol(\"udp\")\n .destinationPort(\"123\")\n .enabled(\"false\")\n .build());\n\n var policy1 = new PolicyV2(\"policy1\", PolicyV2Args.builder() \n .name(\"firewall_ingress_policy\")\n .rules(rule1.id())\n .build());\n\n var policy2 = new PolicyV2(\"policy2\", PolicyV2Args.builder() \n .name(\"firewall_egress_policy\")\n .rules(rule2.id())\n .build());\n\n var group1 = new GroupV2(\"group1\", GroupV2Args.builder() \n .name(\"firewall_group\")\n .ingressFirewallPolicyId(policy1.id())\n .egressFirewallPolicyId(policy2.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n rule1:\n type: openstack:firewall:RuleV2\n name: rule_1\n properties:\n name: firewall_rule_2\n description: drop TELNET traffic\n action: deny\n protocol: tcp\n destinationPort: '23'\n enabled: 'true'\n rule2:\n type: openstack:firewall:RuleV2\n name: rule_2\n properties:\n name: firewall_rule_1\n description: drop NTP traffic\n action: deny\n protocol: udp\n destinationPort: '123'\n enabled: 'false'\n policy1:\n type: openstack:firewall:PolicyV2\n name: policy_1\n properties:\n name: firewall_ingress_policy\n rules:\n - ${rule1.id}\n policy2:\n type: openstack:firewall:PolicyV2\n name: policy_2\n properties:\n name: firewall_egress_policy\n rules:\n - ${rule2.id}\n group1:\n type: openstack:firewall:GroupV2\n name: group_1\n properties:\n name: firewall_group\n ingressFirewallPolicyId: ${policy1.id}\n egressFirewallPolicyId: ${policy2.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nFirewall groups can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import openstack:firewall/groupV2:GroupV2 group_1 c9e39fb2-ce20-46c8-a964-25f3898c7a97\n```\n", "properties": { "adminStateUp": { "type": "boolean", @@ -8217,7 +8079,7 @@ } }, "openstack:firewall/policy:Policy": { - "description": "Manages a v1 firewall policy resource within OpenStack.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst rule1 = new openstack.firewall.Rule(\"rule_1\", {\n name: \"my-rule-1\",\n description: \"drop TELNET traffic\",\n action: \"deny\",\n protocol: \"tcp\",\n destinationPort: \"23\",\n enabled: true,\n});\nconst rule2 = new openstack.firewall.Rule(\"rule_2\", {\n name: \"my-rule-2\",\n description: \"drop NTP traffic\",\n action: \"deny\",\n protocol: \"udp\",\n destinationPort: \"123\",\n enabled: false,\n});\nconst policy1 = new openstack.firewall.Policy(\"policy_1\", {\n name: \"my-policy\",\n rules: [\n rule1.id,\n rule2.id,\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nrule1 = openstack.firewall.Rule(\"rule_1\",\n name=\"my-rule-1\",\n description=\"drop TELNET traffic\",\n action=\"deny\",\n protocol=\"tcp\",\n destination_port=\"23\",\n enabled=True)\nrule2 = openstack.firewall.Rule(\"rule_2\",\n name=\"my-rule-2\",\n description=\"drop NTP traffic\",\n action=\"deny\",\n protocol=\"udp\",\n destination_port=\"123\",\n enabled=False)\npolicy1 = openstack.firewall.Policy(\"policy_1\",\n name=\"my-policy\",\n rules=[\n rule1.id,\n rule2.id,\n ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var rule1 = new OpenStack.Firewall.Rule(\"rule_1\", new()\n {\n Name = \"my-rule-1\",\n Description = \"drop TELNET traffic\",\n Action = \"deny\",\n Protocol = \"tcp\",\n DestinationPort = \"23\",\n Enabled = true,\n });\n\n var rule2 = new OpenStack.Firewall.Rule(\"rule_2\", new()\n {\n Name = \"my-rule-2\",\n Description = \"drop NTP traffic\",\n Action = \"deny\",\n Protocol = \"udp\",\n DestinationPort = \"123\",\n Enabled = false,\n });\n\n var policy1 = new OpenStack.Firewall.Policy(\"policy_1\", new()\n {\n Name = \"my-policy\",\n Rules = new[]\n {\n rule1.Id,\n rule2.Id,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/firewall\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\trule1, err := firewall.NewRule(ctx, \"rule_1\", \u0026firewall.RuleArgs{\n\t\t\tName: pulumi.String(\"my-rule-1\"),\n\t\t\tDescription: pulumi.String(\"drop TELNET traffic\"),\n\t\t\tAction: pulumi.String(\"deny\"),\n\t\t\tProtocol: pulumi.String(\"tcp\"),\n\t\t\tDestinationPort: pulumi.String(\"23\"),\n\t\t\tEnabled: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\trule2, err := firewall.NewRule(ctx, \"rule_2\", \u0026firewall.RuleArgs{\n\t\t\tName: pulumi.String(\"my-rule-2\"),\n\t\t\tDescription: pulumi.String(\"drop NTP traffic\"),\n\t\t\tAction: pulumi.String(\"deny\"),\n\t\t\tProtocol: pulumi.String(\"udp\"),\n\t\t\tDestinationPort: pulumi.String(\"123\"),\n\t\t\tEnabled: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = firewall.NewPolicy(ctx, \"policy_1\", \u0026firewall.PolicyArgs{\n\t\t\tName: pulumi.String(\"my-policy\"),\n\t\t\tRules: pulumi.StringArray{\n\t\t\t\trule1.ID(),\n\t\t\t\trule2.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.firewall.Rule;\nimport com.pulumi.openstack.firewall.RuleArgs;\nimport com.pulumi.openstack.firewall.Policy;\nimport com.pulumi.openstack.firewall.PolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var rule1 = new Rule(\"rule1\", RuleArgs.builder() \n .name(\"my-rule-1\")\n .description(\"drop TELNET traffic\")\n .action(\"deny\")\n .protocol(\"tcp\")\n .destinationPort(\"23\")\n .enabled(\"true\")\n .build());\n\n var rule2 = new Rule(\"rule2\", RuleArgs.builder() \n .name(\"my-rule-2\")\n .description(\"drop NTP traffic\")\n .action(\"deny\")\n .protocol(\"udp\")\n .destinationPort(\"123\")\n .enabled(\"false\")\n .build());\n\n var policy1 = new Policy(\"policy1\", PolicyArgs.builder() \n .name(\"my-policy\")\n .rules( \n rule1.id(),\n rule2.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n rule1:\n type: openstack:firewall:Rule\n name: rule_1\n properties:\n name: my-rule-1\n description: drop TELNET traffic\n action: deny\n protocol: tcp\n destinationPort: '23'\n enabled: 'true'\n rule2:\n type: openstack:firewall:Rule\n name: rule_2\n properties:\n name: my-rule-2\n description: drop NTP traffic\n action: deny\n protocol: udp\n destinationPort: '123'\n enabled: 'false'\n policy1:\n type: openstack:firewall:Policy\n name: policy_1\n properties:\n name: my-policy\n rules:\n - ${rule1.id}\n - ${rule2.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nFirewall Policies can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import openstack:firewall/policy:Policy policy_1 07f422e6-c596-474b-8b94-fe2c12506ce0\n```\n", + "description": "Manages a v1 firewall policy resource within OpenStack.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst rule1 = new openstack.firewall.Rule(\"rule_1\", {\n name: \"my-rule-1\",\n description: \"drop TELNET traffic\",\n action: \"deny\",\n protocol: \"tcp\",\n destinationPort: \"23\",\n enabled: true,\n});\nconst rule2 = new openstack.firewall.Rule(\"rule_2\", {\n name: \"my-rule-2\",\n description: \"drop NTP traffic\",\n action: \"deny\",\n protocol: \"udp\",\n destinationPort: \"123\",\n enabled: false,\n});\nconst policy1 = new openstack.firewall.Policy(\"policy_1\", {\n name: \"my-policy\",\n rules: [\n rule1.id,\n rule2.id,\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nrule1 = openstack.firewall.Rule(\"rule_1\",\n name=\"my-rule-1\",\n description=\"drop TELNET traffic\",\n action=\"deny\",\n protocol=\"tcp\",\n destination_port=\"23\",\n enabled=True)\nrule2 = openstack.firewall.Rule(\"rule_2\",\n name=\"my-rule-2\",\n description=\"drop NTP traffic\",\n action=\"deny\",\n protocol=\"udp\",\n destination_port=\"123\",\n enabled=False)\npolicy1 = openstack.firewall.Policy(\"policy_1\",\n name=\"my-policy\",\n rules=[\n rule1.id,\n rule2.id,\n ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var rule1 = new OpenStack.Firewall.Rule(\"rule_1\", new()\n {\n Name = \"my-rule-1\",\n Description = \"drop TELNET traffic\",\n Action = \"deny\",\n Protocol = \"tcp\",\n DestinationPort = \"23\",\n Enabled = true,\n });\n\n var rule2 = new OpenStack.Firewall.Rule(\"rule_2\", new()\n {\n Name = \"my-rule-2\",\n Description = \"drop NTP traffic\",\n Action = \"deny\",\n Protocol = \"udp\",\n DestinationPort = \"123\",\n Enabled = false,\n });\n\n var policy1 = new OpenStack.Firewall.Policy(\"policy_1\", new()\n {\n Name = \"my-policy\",\n Rules = new[]\n {\n rule1.Id,\n rule2.Id,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/firewall\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\trule1, err := firewall.NewRule(ctx, \"rule_1\", \u0026firewall.RuleArgs{\n\t\t\tName: pulumi.String(\"my-rule-1\"),\n\t\t\tDescription: pulumi.String(\"drop TELNET traffic\"),\n\t\t\tAction: pulumi.String(\"deny\"),\n\t\t\tProtocol: pulumi.String(\"tcp\"),\n\t\t\tDestinationPort: pulumi.String(\"23\"),\n\t\t\tEnabled: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\trule2, err := firewall.NewRule(ctx, \"rule_2\", \u0026firewall.RuleArgs{\n\t\t\tName: pulumi.String(\"my-rule-2\"),\n\t\t\tDescription: pulumi.String(\"drop NTP traffic\"),\n\t\t\tAction: pulumi.String(\"deny\"),\n\t\t\tProtocol: pulumi.String(\"udp\"),\n\t\t\tDestinationPort: pulumi.String(\"123\"),\n\t\t\tEnabled: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = firewall.NewPolicy(ctx, \"policy_1\", \u0026firewall.PolicyArgs{\n\t\t\tName: pulumi.String(\"my-policy\"),\n\t\t\tRules: pulumi.StringArray{\n\t\t\t\trule1.ID(),\n\t\t\t\trule2.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.firewall.Rule;\nimport com.pulumi.openstack.firewall.RuleArgs;\nimport com.pulumi.openstack.firewall.Policy;\nimport com.pulumi.openstack.firewall.PolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var rule1 = new Rule(\"rule1\", RuleArgs.builder() \n .name(\"my-rule-1\")\n .description(\"drop TELNET traffic\")\n .action(\"deny\")\n .protocol(\"tcp\")\n .destinationPort(\"23\")\n .enabled(\"true\")\n .build());\n\n var rule2 = new Rule(\"rule2\", RuleArgs.builder() \n .name(\"my-rule-2\")\n .description(\"drop NTP traffic\")\n .action(\"deny\")\n .protocol(\"udp\")\n .destinationPort(\"123\")\n .enabled(\"false\")\n .build());\n\n var policy1 = new Policy(\"policy1\", PolicyArgs.builder() \n .name(\"my-policy\")\n .rules( \n rule1.id(),\n rule2.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n rule1:\n type: openstack:firewall:Rule\n name: rule_1\n properties:\n name: my-rule-1\n description: drop TELNET traffic\n action: deny\n protocol: tcp\n destinationPort: '23'\n enabled: 'true'\n rule2:\n type: openstack:firewall:Rule\n name: rule_2\n properties:\n name: my-rule-2\n description: drop NTP traffic\n action: deny\n protocol: udp\n destinationPort: '123'\n enabled: 'false'\n policy1:\n type: openstack:firewall:Policy\n name: policy_1\n properties:\n name: my-policy\n rules:\n - ${rule1.id}\n - ${rule2.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nFirewall Policies can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import openstack:firewall/policy:Policy policy_1 07f422e6-c596-474b-8b94-fe2c12506ce0\n```\n", "properties": { "audited": { "type": "boolean", @@ -8352,7 +8214,7 @@ } }, "openstack:firewall/policyV2:PolicyV2": { - "description": "Manages a v2 firewall policy resource within OpenStack.\n\n\u003e **Note:** Firewall v2 has no support for OVN currently.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst rule1 = new openstack.firewall.RuleV2(\"rule_1\", {\n name: \"firewall_rule_1\",\n description: \"drop TELNET traffic\",\n action: \"deny\",\n protocol: \"tcp\",\n destinationPort: \"23\",\n enabled: true,\n});\nconst rule2 = new openstack.firewall.RuleV2(\"rule_2\", {\n name: \"firewall_rule_2\",\n description: \"drop NTP traffic\",\n action: \"deny\",\n protocol: \"udp\",\n destinationPort: \"123\",\n enabled: false,\n});\nconst policy1 = new openstack.firewall.PolicyV2(\"policy_1\", {\n name: \"firewall_policy\",\n rules: [\n rule1.id,\n rule2.id,\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nrule1 = openstack.firewall.RuleV2(\"rule_1\",\n name=\"firewall_rule_1\",\n description=\"drop TELNET traffic\",\n action=\"deny\",\n protocol=\"tcp\",\n destination_port=\"23\",\n enabled=True)\nrule2 = openstack.firewall.RuleV2(\"rule_2\",\n name=\"firewall_rule_2\",\n description=\"drop NTP traffic\",\n action=\"deny\",\n protocol=\"udp\",\n destination_port=\"123\",\n enabled=False)\npolicy1 = openstack.firewall.PolicyV2(\"policy_1\",\n name=\"firewall_policy\",\n rules=[\n rule1.id,\n rule2.id,\n ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var rule1 = new OpenStack.Firewall.RuleV2(\"rule_1\", new()\n {\n Name = \"firewall_rule_1\",\n Description = \"drop TELNET traffic\",\n Action = \"deny\",\n Protocol = \"tcp\",\n DestinationPort = \"23\",\n Enabled = true,\n });\n\n var rule2 = new OpenStack.Firewall.RuleV2(\"rule_2\", new()\n {\n Name = \"firewall_rule_2\",\n Description = \"drop NTP traffic\",\n Action = \"deny\",\n Protocol = \"udp\",\n DestinationPort = \"123\",\n Enabled = false,\n });\n\n var policy1 = new OpenStack.Firewall.PolicyV2(\"policy_1\", new()\n {\n Name = \"firewall_policy\",\n Rules = new[]\n {\n rule1.Id,\n rule2.Id,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/firewall\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\trule1, err := firewall.NewRuleV2(ctx, \"rule_1\", \u0026firewall.RuleV2Args{\n\t\t\tName: pulumi.String(\"firewall_rule_1\"),\n\t\t\tDescription: pulumi.String(\"drop TELNET traffic\"),\n\t\t\tAction: pulumi.String(\"deny\"),\n\t\t\tProtocol: pulumi.String(\"tcp\"),\n\t\t\tDestinationPort: pulumi.String(\"23\"),\n\t\t\tEnabled: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\trule2, err := firewall.NewRuleV2(ctx, \"rule_2\", \u0026firewall.RuleV2Args{\n\t\t\tName: pulumi.String(\"firewall_rule_2\"),\n\t\t\tDescription: pulumi.String(\"drop NTP traffic\"),\n\t\t\tAction: pulumi.String(\"deny\"),\n\t\t\tProtocol: pulumi.String(\"udp\"),\n\t\t\tDestinationPort: pulumi.String(\"123\"),\n\t\t\tEnabled: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = firewall.NewPolicyV2(ctx, \"policy_1\", \u0026firewall.PolicyV2Args{\n\t\t\tName: pulumi.String(\"firewall_policy\"),\n\t\t\tRules: pulumi.StringArray{\n\t\t\t\trule1.ID(),\n\t\t\t\trule2.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.firewall.RuleV2;\nimport com.pulumi.openstack.firewall.RuleV2Args;\nimport com.pulumi.openstack.firewall.PolicyV2;\nimport com.pulumi.openstack.firewall.PolicyV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var rule1 = new RuleV2(\"rule1\", RuleV2Args.builder() \n .name(\"firewall_rule_1\")\n .description(\"drop TELNET traffic\")\n .action(\"deny\")\n .protocol(\"tcp\")\n .destinationPort(\"23\")\n .enabled(\"true\")\n .build());\n\n var rule2 = new RuleV2(\"rule2\", RuleV2Args.builder() \n .name(\"firewall_rule_2\")\n .description(\"drop NTP traffic\")\n .action(\"deny\")\n .protocol(\"udp\")\n .destinationPort(\"123\")\n .enabled(\"false\")\n .build());\n\n var policy1 = new PolicyV2(\"policy1\", PolicyV2Args.builder() \n .name(\"firewall_policy\")\n .rules( \n rule1.id(),\n rule2.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n rule1:\n type: openstack:firewall:RuleV2\n name: rule_1\n properties:\n name: firewall_rule_1\n description: drop TELNET traffic\n action: deny\n protocol: tcp\n destinationPort: '23'\n enabled: 'true'\n rule2:\n type: openstack:firewall:RuleV2\n name: rule_2\n properties:\n name: firewall_rule_2\n description: drop NTP traffic\n action: deny\n protocol: udp\n destinationPort: '123'\n enabled: 'false'\n policy1:\n type: openstack:firewall:PolicyV2\n name: policy_1\n properties:\n name: firewall_policy\n rules:\n - ${rule1.id}\n - ${rule2.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nFirewall Policies can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import openstack:firewall/policyV2:PolicyV2 policy_1 07f422e6-c596-474b-8b94-fe2c12506ce0\n```\n", + "description": "Manages a v2 firewall policy resource within OpenStack.\n\n\u003e **Note:** Firewall v2 has no support for OVN currently.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst rule1 = new openstack.firewall.RuleV2(\"rule_1\", {\n name: \"firewall_rule_1\",\n description: \"drop TELNET traffic\",\n action: \"deny\",\n protocol: \"tcp\",\n destinationPort: \"23\",\n enabled: true,\n});\nconst rule2 = new openstack.firewall.RuleV2(\"rule_2\", {\n name: \"firewall_rule_2\",\n description: \"drop NTP traffic\",\n action: \"deny\",\n protocol: \"udp\",\n destinationPort: \"123\",\n enabled: false,\n});\nconst policy1 = new openstack.firewall.PolicyV2(\"policy_1\", {\n name: \"firewall_policy\",\n rules: [\n rule1.id,\n rule2.id,\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nrule1 = openstack.firewall.RuleV2(\"rule_1\",\n name=\"firewall_rule_1\",\n description=\"drop TELNET traffic\",\n action=\"deny\",\n protocol=\"tcp\",\n destination_port=\"23\",\n enabled=True)\nrule2 = openstack.firewall.RuleV2(\"rule_2\",\n name=\"firewall_rule_2\",\n description=\"drop NTP traffic\",\n action=\"deny\",\n protocol=\"udp\",\n destination_port=\"123\",\n enabled=False)\npolicy1 = openstack.firewall.PolicyV2(\"policy_1\",\n name=\"firewall_policy\",\n rules=[\n rule1.id,\n rule2.id,\n ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var rule1 = new OpenStack.Firewall.RuleV2(\"rule_1\", new()\n {\n Name = \"firewall_rule_1\",\n Description = \"drop TELNET traffic\",\n Action = \"deny\",\n Protocol = \"tcp\",\n DestinationPort = \"23\",\n Enabled = true,\n });\n\n var rule2 = new OpenStack.Firewall.RuleV2(\"rule_2\", new()\n {\n Name = \"firewall_rule_2\",\n Description = \"drop NTP traffic\",\n Action = \"deny\",\n Protocol = \"udp\",\n DestinationPort = \"123\",\n Enabled = false,\n });\n\n var policy1 = new OpenStack.Firewall.PolicyV2(\"policy_1\", new()\n {\n Name = \"firewall_policy\",\n Rules = new[]\n {\n rule1.Id,\n rule2.Id,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/firewall\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\trule1, err := firewall.NewRuleV2(ctx, \"rule_1\", \u0026firewall.RuleV2Args{\n\t\t\tName: pulumi.String(\"firewall_rule_1\"),\n\t\t\tDescription: pulumi.String(\"drop TELNET traffic\"),\n\t\t\tAction: pulumi.String(\"deny\"),\n\t\t\tProtocol: pulumi.String(\"tcp\"),\n\t\t\tDestinationPort: pulumi.String(\"23\"),\n\t\t\tEnabled: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\trule2, err := firewall.NewRuleV2(ctx, \"rule_2\", \u0026firewall.RuleV2Args{\n\t\t\tName: pulumi.String(\"firewall_rule_2\"),\n\t\t\tDescription: pulumi.String(\"drop NTP traffic\"),\n\t\t\tAction: pulumi.String(\"deny\"),\n\t\t\tProtocol: pulumi.String(\"udp\"),\n\t\t\tDestinationPort: pulumi.String(\"123\"),\n\t\t\tEnabled: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = firewall.NewPolicyV2(ctx, \"policy_1\", \u0026firewall.PolicyV2Args{\n\t\t\tName: pulumi.String(\"firewall_policy\"),\n\t\t\tRules: pulumi.StringArray{\n\t\t\t\trule1.ID(),\n\t\t\t\trule2.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.firewall.RuleV2;\nimport com.pulumi.openstack.firewall.RuleV2Args;\nimport com.pulumi.openstack.firewall.PolicyV2;\nimport com.pulumi.openstack.firewall.PolicyV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var rule1 = new RuleV2(\"rule1\", RuleV2Args.builder() \n .name(\"firewall_rule_1\")\n .description(\"drop TELNET traffic\")\n .action(\"deny\")\n .protocol(\"tcp\")\n .destinationPort(\"23\")\n .enabled(\"true\")\n .build());\n\n var rule2 = new RuleV2(\"rule2\", RuleV2Args.builder() \n .name(\"firewall_rule_2\")\n .description(\"drop NTP traffic\")\n .action(\"deny\")\n .protocol(\"udp\")\n .destinationPort(\"123\")\n .enabled(\"false\")\n .build());\n\n var policy1 = new PolicyV2(\"policy1\", PolicyV2Args.builder() \n .name(\"firewall_policy\")\n .rules( \n rule1.id(),\n rule2.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n rule1:\n type: openstack:firewall:RuleV2\n name: rule_1\n properties:\n name: firewall_rule_1\n description: drop TELNET traffic\n action: deny\n protocol: tcp\n destinationPort: '23'\n enabled: 'true'\n rule2:\n type: openstack:firewall:RuleV2\n name: rule_2\n properties:\n name: firewall_rule_2\n description: drop NTP traffic\n action: deny\n protocol: udp\n destinationPort: '123'\n enabled: 'false'\n policy1:\n type: openstack:firewall:PolicyV2\n name: policy_1\n properties:\n name: firewall_policy\n rules:\n - ${rule1.id}\n - ${rule2.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nFirewall Policies can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import openstack:firewall/policyV2:PolicyV2 policy_1 07f422e6-c596-474b-8b94-fe2c12506ce0\n```\n", "properties": { "audited": { "type": "boolean", @@ -8482,7 +8344,7 @@ } }, "openstack:firewall/rule:Rule": { - "description": "Manages a v1 firewall rule resource within OpenStack.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst rule1 = new openstack.firewall.Rule(\"rule_1\", {\n name: \"my_rule\",\n description: \"drop TELNET traffic\",\n action: \"deny\",\n protocol: \"tcp\",\n destinationPort: \"23\",\n enabled: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nrule1 = openstack.firewall.Rule(\"rule_1\",\n name=\"my_rule\",\n description=\"drop TELNET traffic\",\n action=\"deny\",\n protocol=\"tcp\",\n destination_port=\"23\",\n enabled=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var rule1 = new OpenStack.Firewall.Rule(\"rule_1\", new()\n {\n Name = \"my_rule\",\n Description = \"drop TELNET traffic\",\n Action = \"deny\",\n Protocol = \"tcp\",\n DestinationPort = \"23\",\n Enabled = true,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/firewall\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := firewall.NewRule(ctx, \"rule_1\", \u0026firewall.RuleArgs{\n\t\t\tName: pulumi.String(\"my_rule\"),\n\t\t\tDescription: pulumi.String(\"drop TELNET traffic\"),\n\t\t\tAction: pulumi.String(\"deny\"),\n\t\t\tProtocol: pulumi.String(\"tcp\"),\n\t\t\tDestinationPort: pulumi.String(\"23\"),\n\t\t\tEnabled: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.firewall.Rule;\nimport com.pulumi.openstack.firewall.RuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var rule1 = new Rule(\"rule1\", RuleArgs.builder() \n .name(\"my_rule\")\n .description(\"drop TELNET traffic\")\n .action(\"deny\")\n .protocol(\"tcp\")\n .destinationPort(\"23\")\n .enabled(\"true\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n rule1:\n type: openstack:firewall:Rule\n name: rule_1\n properties:\n name: my_rule\n description: drop TELNET traffic\n action: deny\n protocol: tcp\n destinationPort: '23'\n enabled: 'true'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nFirewall Rules can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import openstack:firewall/rule:Rule rule_1 8dbc0c28-e49c-463f-b712-5c5d1bbac327\n```\n", + "description": "Manages a v1 firewall rule resource within OpenStack.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst rule1 = new openstack.firewall.Rule(\"rule_1\", {\n name: \"my_rule\",\n description: \"drop TELNET traffic\",\n action: \"deny\",\n protocol: \"tcp\",\n destinationPort: \"23\",\n enabled: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nrule1 = openstack.firewall.Rule(\"rule_1\",\n name=\"my_rule\",\n description=\"drop TELNET traffic\",\n action=\"deny\",\n protocol=\"tcp\",\n destination_port=\"23\",\n enabled=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var rule1 = new OpenStack.Firewall.Rule(\"rule_1\", new()\n {\n Name = \"my_rule\",\n Description = \"drop TELNET traffic\",\n Action = \"deny\",\n Protocol = \"tcp\",\n DestinationPort = \"23\",\n Enabled = true,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/firewall\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := firewall.NewRule(ctx, \"rule_1\", \u0026firewall.RuleArgs{\n\t\t\tName: pulumi.String(\"my_rule\"),\n\t\t\tDescription: pulumi.String(\"drop TELNET traffic\"),\n\t\t\tAction: pulumi.String(\"deny\"),\n\t\t\tProtocol: pulumi.String(\"tcp\"),\n\t\t\tDestinationPort: pulumi.String(\"23\"),\n\t\t\tEnabled: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.firewall.Rule;\nimport com.pulumi.openstack.firewall.RuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var rule1 = new Rule(\"rule1\", RuleArgs.builder() \n .name(\"my_rule\")\n .description(\"drop TELNET traffic\")\n .action(\"deny\")\n .protocol(\"tcp\")\n .destinationPort(\"23\")\n .enabled(\"true\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n rule1:\n type: openstack:firewall:Rule\n name: rule_1\n properties:\n name: my_rule\n description: drop TELNET traffic\n action: deny\n protocol: tcp\n destinationPort: '23'\n enabled: 'true'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nFirewall Rules can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import openstack:firewall/rule:Rule rule_1 8dbc0c28-e49c-463f-b712-5c5d1bbac327\n```\n", "properties": { "action": { "type": "string", @@ -8676,7 +8538,7 @@ } }, "openstack:firewall/ruleV2:RuleV2": { - "description": "Manages a v2 firewall rule resource within OpenStack.\n\n\u003e **Note:** Firewall v2 has no support for OVN currently.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst rule2 = new openstack.firewall.RuleV2(\"rule_2\", {\n name: \"firewall_rule\",\n description: \"drop TELNET traffic\",\n action: \"deny\",\n protocol: \"tcp\",\n destinationPort: \"23\",\n enabled: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nrule2 = openstack.firewall.RuleV2(\"rule_2\",\n name=\"firewall_rule\",\n description=\"drop TELNET traffic\",\n action=\"deny\",\n protocol=\"tcp\",\n destination_port=\"23\",\n enabled=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var rule2 = new OpenStack.Firewall.RuleV2(\"rule_2\", new()\n {\n Name = \"firewall_rule\",\n Description = \"drop TELNET traffic\",\n Action = \"deny\",\n Protocol = \"tcp\",\n DestinationPort = \"23\",\n Enabled = true,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/firewall\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := firewall.NewRuleV2(ctx, \"rule_2\", \u0026firewall.RuleV2Args{\n\t\t\tName: pulumi.String(\"firewall_rule\"),\n\t\t\tDescription: pulumi.String(\"drop TELNET traffic\"),\n\t\t\tAction: pulumi.String(\"deny\"),\n\t\t\tProtocol: pulumi.String(\"tcp\"),\n\t\t\tDestinationPort: pulumi.String(\"23\"),\n\t\t\tEnabled: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.firewall.RuleV2;\nimport com.pulumi.openstack.firewall.RuleV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var rule2 = new RuleV2(\"rule2\", RuleV2Args.builder() \n .name(\"firewall_rule\")\n .description(\"drop TELNET traffic\")\n .action(\"deny\")\n .protocol(\"tcp\")\n .destinationPort(\"23\")\n .enabled(\"true\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n rule2:\n type: openstack:firewall:RuleV2\n name: rule_2\n properties:\n name: firewall_rule\n description: drop TELNET traffic\n action: deny\n protocol: tcp\n destinationPort: '23'\n enabled: 'true'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nFirewall Rules can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import openstack:firewall/ruleV2:RuleV2 rule_1 8dbc0c28-e49c-463f-b712-5c5d1bbac327\n```\n", + "description": "Manages a v2 firewall rule resource within OpenStack.\n\n\u003e **Note:** Firewall v2 has no support for OVN currently.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst rule2 = new openstack.firewall.RuleV2(\"rule_2\", {\n name: \"firewall_rule\",\n description: \"drop TELNET traffic\",\n action: \"deny\",\n protocol: \"tcp\",\n destinationPort: \"23\",\n enabled: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nrule2 = openstack.firewall.RuleV2(\"rule_2\",\n name=\"firewall_rule\",\n description=\"drop TELNET traffic\",\n action=\"deny\",\n protocol=\"tcp\",\n destination_port=\"23\",\n enabled=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var rule2 = new OpenStack.Firewall.RuleV2(\"rule_2\", new()\n {\n Name = \"firewall_rule\",\n Description = \"drop TELNET traffic\",\n Action = \"deny\",\n Protocol = \"tcp\",\n DestinationPort = \"23\",\n Enabled = true,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/firewall\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := firewall.NewRuleV2(ctx, \"rule_2\", \u0026firewall.RuleV2Args{\n\t\t\tName: pulumi.String(\"firewall_rule\"),\n\t\t\tDescription: pulumi.String(\"drop TELNET traffic\"),\n\t\t\tAction: pulumi.String(\"deny\"),\n\t\t\tProtocol: pulumi.String(\"tcp\"),\n\t\t\tDestinationPort: pulumi.String(\"23\"),\n\t\t\tEnabled: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.firewall.RuleV2;\nimport com.pulumi.openstack.firewall.RuleV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var rule2 = new RuleV2(\"rule2\", RuleV2Args.builder() \n .name(\"firewall_rule\")\n .description(\"drop TELNET traffic\")\n .action(\"deny\")\n .protocol(\"tcp\")\n .destinationPort(\"23\")\n .enabled(\"true\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n rule2:\n type: openstack:firewall:RuleV2\n name: rule_2\n properties:\n name: firewall_rule\n description: drop TELNET traffic\n action: deny\n protocol: tcp\n destinationPort: '23'\n enabled: 'true'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nFirewall Rules can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import openstack:firewall/ruleV2:RuleV2 rule_1 8dbc0c28-e49c-463f-b712-5c5d1bbac327\n```\n", "properties": { "action": { "type": "string", @@ -8869,7 +8731,7 @@ } }, "openstack:identity/applicationCredential:ApplicationCredential": { - "description": "Manages a V3 Application Credential resource within OpenStack Keystone.\n\n\u003e **Note:** All arguments including the application credential name and secret\nwill be stored in the raw state as plain-text. Read more about sensitive data\nin state.\n\n\u003e **Note:** An Application Credential is created within the authenticated user\nproject scope and is not visible by an admin or other accounts.\nThe Application Credential visibility is similar to\n`openstack.compute.Keypair`.\n\n## Example Usage\n\n### Predefined secret\n\nApplication credential below will have only one `swiftoperator` role.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst swift = new openstack.identity.ApplicationCredential(\"swift\", {\n name: \"swift\",\n description: \"Swift technical application credential\",\n secret: \"supersecret\",\n roles: [\"swiftoperator\"],\n expiresAt: \"2019-02-13T12:12:12Z\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nswift = openstack.identity.ApplicationCredential(\"swift\",\n name=\"swift\",\n description=\"Swift technical application credential\",\n secret=\"supersecret\",\n roles=[\"swiftoperator\"],\n expires_at=\"2019-02-13T12:12:12Z\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var swift = new OpenStack.Identity.ApplicationCredential(\"swift\", new()\n {\n Name = \"swift\",\n Description = \"Swift technical application credential\",\n Secret = \"supersecret\",\n Roles = new[]\n {\n \"swiftoperator\",\n },\n ExpiresAt = \"2019-02-13T12:12:12Z\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/identity\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := identity.NewApplicationCredential(ctx, \"swift\", \u0026identity.ApplicationCredentialArgs{\n\t\t\tName: pulumi.String(\"swift\"),\n\t\t\tDescription: pulumi.String(\"Swift technical application credential\"),\n\t\t\tSecret: pulumi.String(\"supersecret\"),\n\t\t\tRoles: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"swiftoperator\"),\n\t\t\t},\n\t\t\tExpiresAt: pulumi.String(\"2019-02-13T12:12:12Z\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.identity.ApplicationCredential;\nimport com.pulumi.openstack.identity.ApplicationCredentialArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var swift = new ApplicationCredential(\"swift\", ApplicationCredentialArgs.builder() \n .name(\"swift\")\n .description(\"Swift technical application credential\")\n .secret(\"supersecret\")\n .roles(\"swiftoperator\")\n .expiresAt(\"2019-02-13T12:12:12Z\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n swift:\n type: openstack:identity:ApplicationCredential\n properties:\n name: swift\n description: Swift technical application credential\n secret: supersecret\n roles:\n - swiftoperator\n expiresAt: 2019-02-13T12:12:12Z\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Unrestricted with autogenerated secret and unlimited TTL\n\nApplication credential below will inherit all the current user's roles.\n\n!\u003e **WARNING:** Restrictions on these Identity operations are deliberately\nimposed as a safeguard to prevent a compromised application credential from\nregenerating itself. Disabling this restriction poses an inherent added risk.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst unrestricted = new openstack.identity.ApplicationCredential(\"unrestricted\", {\n name: \"unrestricted\",\n description: \"Unrestricted application credential\",\n unrestricted: true,\n});\nexport const applicationCredentialSecret = unrestricted.secret;\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nunrestricted = openstack.identity.ApplicationCredential(\"unrestricted\",\n name=\"unrestricted\",\n description=\"Unrestricted application credential\",\n unrestricted=True)\npulumi.export(\"applicationCredentialSecret\", unrestricted.secret)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var unrestricted = new OpenStack.Identity.ApplicationCredential(\"unrestricted\", new()\n {\n Name = \"unrestricted\",\n Description = \"Unrestricted application credential\",\n Unrestricted = true,\n });\n\n return new Dictionary\u003cstring, object?\u003e\n {\n [\"applicationCredentialSecret\"] = unrestricted.Secret,\n };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/identity\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tunrestricted, err := identity.NewApplicationCredential(ctx, \"unrestricted\", \u0026identity.ApplicationCredentialArgs{\n\t\t\tName: pulumi.String(\"unrestricted\"),\n\t\t\tDescription: pulumi.String(\"Unrestricted application credential\"),\n\t\t\tUnrestricted: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"applicationCredentialSecret\", unrestricted.Secret)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.identity.ApplicationCredential;\nimport com.pulumi.openstack.identity.ApplicationCredentialArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var unrestricted = new ApplicationCredential(\"unrestricted\", ApplicationCredentialArgs.builder() \n .name(\"unrestricted\")\n .description(\"Unrestricted application credential\")\n .unrestricted(true)\n .build());\n\n ctx.export(\"applicationCredentialSecret\", unrestricted.secret());\n }\n}\n```\n```yaml\nresources:\n unrestricted:\n type: openstack:identity:ApplicationCredential\n properties:\n name: unrestricted\n description: Unrestricted application credential\n unrestricted: true\noutputs:\n applicationCredentialSecret: ${unrestricted.secret}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Application credential with access rules\n\n\u003e **Note:** Application Credential access rules are supported only in Keystone\nstarting from [Train](https://releases.openstack.org/train/highlights.html#keystone-identity-service) release.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst monitoring = new openstack.identity.ApplicationCredential(\"monitoring\", {\n name: \"monitoring\",\n expiresAt: \"2019-02-13T12:12:12Z\",\n accessRules: [\n {\n path: \"/v2.0/metrics\",\n service: \"monitoring\",\n method: \"GET\",\n },\n {\n path: \"/v2.0/metrics\",\n service: \"monitoring\",\n method: \"PUT\",\n },\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nmonitoring = openstack.identity.ApplicationCredential(\"monitoring\",\n name=\"monitoring\",\n expires_at=\"2019-02-13T12:12:12Z\",\n access_rules=[\n openstack.identity.ApplicationCredentialAccessRuleArgs(\n path=\"/v2.0/metrics\",\n service=\"monitoring\",\n method=\"GET\",\n ),\n openstack.identity.ApplicationCredentialAccessRuleArgs(\n path=\"/v2.0/metrics\",\n service=\"monitoring\",\n method=\"PUT\",\n ),\n ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var monitoring = new OpenStack.Identity.ApplicationCredential(\"monitoring\", new()\n {\n Name = \"monitoring\",\n ExpiresAt = \"2019-02-13T12:12:12Z\",\n AccessRules = new[]\n {\n new OpenStack.Identity.Inputs.ApplicationCredentialAccessRuleArgs\n {\n Path = \"/v2.0/metrics\",\n Service = \"monitoring\",\n Method = \"GET\",\n },\n new OpenStack.Identity.Inputs.ApplicationCredentialAccessRuleArgs\n {\n Path = \"/v2.0/metrics\",\n Service = \"monitoring\",\n Method = \"PUT\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/identity\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := identity.NewApplicationCredential(ctx, \"monitoring\", \u0026identity.ApplicationCredentialArgs{\n\t\t\tName: pulumi.String(\"monitoring\"),\n\t\t\tExpiresAt: pulumi.String(\"2019-02-13T12:12:12Z\"),\n\t\t\tAccessRules: identity.ApplicationCredentialAccessRuleArray{\n\t\t\t\t\u0026identity.ApplicationCredentialAccessRuleArgs{\n\t\t\t\t\tPath: pulumi.String(\"/v2.0/metrics\"),\n\t\t\t\t\tService: pulumi.String(\"monitoring\"),\n\t\t\t\t\tMethod: pulumi.String(\"GET\"),\n\t\t\t\t},\n\t\t\t\t\u0026identity.ApplicationCredentialAccessRuleArgs{\n\t\t\t\t\tPath: pulumi.String(\"/v2.0/metrics\"),\n\t\t\t\t\tService: pulumi.String(\"monitoring\"),\n\t\t\t\t\tMethod: pulumi.String(\"PUT\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.identity.ApplicationCredential;\nimport com.pulumi.openstack.identity.ApplicationCredentialArgs;\nimport com.pulumi.openstack.identity.inputs.ApplicationCredentialAccessRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var monitoring = new ApplicationCredential(\"monitoring\", ApplicationCredentialArgs.builder() \n .name(\"monitoring\")\n .expiresAt(\"2019-02-13T12:12:12Z\")\n .accessRules( \n ApplicationCredentialAccessRuleArgs.builder()\n .path(\"/v2.0/metrics\")\n .service(\"monitoring\")\n .method(\"GET\")\n .build(),\n ApplicationCredentialAccessRuleArgs.builder()\n .path(\"/v2.0/metrics\")\n .service(\"monitoring\")\n .method(\"PUT\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n monitoring:\n type: openstack:identity:ApplicationCredential\n properties:\n name: monitoring\n expiresAt: 2019-02-13T12:12:12Z\n accessRules:\n - path: /v2.0/metrics\n service: monitoring\n method: GET\n - path: /v2.0/metrics\n service: monitoring\n method: PUT\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nApplication Credentials can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import openstack:identity/applicationCredential:ApplicationCredential application_credential_1 c17304b7-0953-4738-abb0-67005882b0a0\n```\n", + "description": "Manages a V3 Application Credential resource within OpenStack Keystone.\n\n\u003e **Note:** All arguments including the application credential name and secret\nwill be stored in the raw state as plain-text. Read more about sensitive data\nin state.\n\n\u003e **Note:** An Application Credential is created within the authenticated user\nproject scope and is not visible by an admin or other accounts.\nThe Application Credential visibility is similar to\n`openstack.compute.Keypair`.\n\n## Example Usage\n\n### Predefined secret\n\nApplication credential below will have only one `swiftoperator` role.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst swift = new openstack.identity.ApplicationCredential(\"swift\", {\n name: \"swift\",\n description: \"Swift technical application credential\",\n secret: \"supersecret\",\n roles: [\"swiftoperator\"],\n expiresAt: \"2019-02-13T12:12:12Z\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nswift = openstack.identity.ApplicationCredential(\"swift\",\n name=\"swift\",\n description=\"Swift technical application credential\",\n secret=\"supersecret\",\n roles=[\"swiftoperator\"],\n expires_at=\"2019-02-13T12:12:12Z\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var swift = new OpenStack.Identity.ApplicationCredential(\"swift\", new()\n {\n Name = \"swift\",\n Description = \"Swift technical application credential\",\n Secret = \"supersecret\",\n Roles = new[]\n {\n \"swiftoperator\",\n },\n ExpiresAt = \"2019-02-13T12:12:12Z\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/identity\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := identity.NewApplicationCredential(ctx, \"swift\", \u0026identity.ApplicationCredentialArgs{\n\t\t\tName: pulumi.String(\"swift\"),\n\t\t\tDescription: pulumi.String(\"Swift technical application credential\"),\n\t\t\tSecret: pulumi.String(\"supersecret\"),\n\t\t\tRoles: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"swiftoperator\"),\n\t\t\t},\n\t\t\tExpiresAt: pulumi.String(\"2019-02-13T12:12:12Z\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.identity.ApplicationCredential;\nimport com.pulumi.openstack.identity.ApplicationCredentialArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var swift = new ApplicationCredential(\"swift\", ApplicationCredentialArgs.builder() \n .name(\"swift\")\n .description(\"Swift technical application credential\")\n .secret(\"supersecret\")\n .roles(\"swiftoperator\")\n .expiresAt(\"2019-02-13T12:12:12Z\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n swift:\n type: openstack:identity:ApplicationCredential\n properties:\n name: swift\n description: Swift technical application credential\n secret: supersecret\n roles:\n - swiftoperator\n expiresAt: 2019-02-13T12:12:12Z\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Unrestricted with autogenerated secret and unlimited TTL\n\nApplication credential below will inherit all the current user's roles.\n\n!\u003e **WARNING:** Restrictions on these Identity operations are deliberately\nimposed as a safeguard to prevent a compromised application credential from\nregenerating itself. Disabling this restriction poses an inherent added risk.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst unrestricted = new openstack.identity.ApplicationCredential(\"unrestricted\", {\n name: \"unrestricted\",\n description: \"Unrestricted application credential\",\n unrestricted: true,\n});\nexport const applicationCredentialSecret = unrestricted.secret;\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nunrestricted = openstack.identity.ApplicationCredential(\"unrestricted\",\n name=\"unrestricted\",\n description=\"Unrestricted application credential\",\n unrestricted=True)\npulumi.export(\"applicationCredentialSecret\", unrestricted.secret)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var unrestricted = new OpenStack.Identity.ApplicationCredential(\"unrestricted\", new()\n {\n Name = \"unrestricted\",\n Description = \"Unrestricted application credential\",\n Unrestricted = true,\n });\n\n return new Dictionary\u003cstring, object?\u003e\n {\n [\"applicationCredentialSecret\"] = unrestricted.Secret,\n };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/identity\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tunrestricted, err := identity.NewApplicationCredential(ctx, \"unrestricted\", \u0026identity.ApplicationCredentialArgs{\n\t\t\tName: pulumi.String(\"unrestricted\"),\n\t\t\tDescription: pulumi.String(\"Unrestricted application credential\"),\n\t\t\tUnrestricted: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"applicationCredentialSecret\", unrestricted.Secret)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.identity.ApplicationCredential;\nimport com.pulumi.openstack.identity.ApplicationCredentialArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var unrestricted = new ApplicationCredential(\"unrestricted\", ApplicationCredentialArgs.builder() \n .name(\"unrestricted\")\n .description(\"Unrestricted application credential\")\n .unrestricted(true)\n .build());\n\n ctx.export(\"applicationCredentialSecret\", unrestricted.secret());\n }\n}\n```\n```yaml\nresources:\n unrestricted:\n type: openstack:identity:ApplicationCredential\n properties:\n name: unrestricted\n description: Unrestricted application credential\n unrestricted: true\noutputs:\n applicationCredentialSecret: ${unrestricted.secret}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Application credential with access rules\n\n\u003e **Note:** Application Credential access rules are supported only in Keystone\nstarting from [Train](https://releases.openstack.org/train/highlights.html#keystone-identity-service) release.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst monitoring = new openstack.identity.ApplicationCredential(\"monitoring\", {\n name: \"monitoring\",\n expiresAt: \"2019-02-13T12:12:12Z\",\n accessRules: [\n {\n path: \"/v2.0/metrics\",\n service: \"monitoring\",\n method: \"GET\",\n },\n {\n path: \"/v2.0/metrics\",\n service: \"monitoring\",\n method: \"PUT\",\n },\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nmonitoring = openstack.identity.ApplicationCredential(\"monitoring\",\n name=\"monitoring\",\n expires_at=\"2019-02-13T12:12:12Z\",\n access_rules=[\n openstack.identity.ApplicationCredentialAccessRuleArgs(\n path=\"/v2.0/metrics\",\n service=\"monitoring\",\n method=\"GET\",\n ),\n openstack.identity.ApplicationCredentialAccessRuleArgs(\n path=\"/v2.0/metrics\",\n service=\"monitoring\",\n method=\"PUT\",\n ),\n ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var monitoring = new OpenStack.Identity.ApplicationCredential(\"monitoring\", new()\n {\n Name = \"monitoring\",\n ExpiresAt = \"2019-02-13T12:12:12Z\",\n AccessRules = new[]\n {\n new OpenStack.Identity.Inputs.ApplicationCredentialAccessRuleArgs\n {\n Path = \"/v2.0/metrics\",\n Service = \"monitoring\",\n Method = \"GET\",\n },\n new OpenStack.Identity.Inputs.ApplicationCredentialAccessRuleArgs\n {\n Path = \"/v2.0/metrics\",\n Service = \"monitoring\",\n Method = \"PUT\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/identity\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := identity.NewApplicationCredential(ctx, \"monitoring\", \u0026identity.ApplicationCredentialArgs{\n\t\t\tName: pulumi.String(\"monitoring\"),\n\t\t\tExpiresAt: pulumi.String(\"2019-02-13T12:12:12Z\"),\n\t\t\tAccessRules: identity.ApplicationCredentialAccessRuleArray{\n\t\t\t\t\u0026identity.ApplicationCredentialAccessRuleArgs{\n\t\t\t\t\tPath: pulumi.String(\"/v2.0/metrics\"),\n\t\t\t\t\tService: pulumi.String(\"monitoring\"),\n\t\t\t\t\tMethod: pulumi.String(\"GET\"),\n\t\t\t\t},\n\t\t\t\t\u0026identity.ApplicationCredentialAccessRuleArgs{\n\t\t\t\t\tPath: pulumi.String(\"/v2.0/metrics\"),\n\t\t\t\t\tService: pulumi.String(\"monitoring\"),\n\t\t\t\t\tMethod: pulumi.String(\"PUT\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.identity.ApplicationCredential;\nimport com.pulumi.openstack.identity.ApplicationCredentialArgs;\nimport com.pulumi.openstack.identity.inputs.ApplicationCredentialAccessRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var monitoring = new ApplicationCredential(\"monitoring\", ApplicationCredentialArgs.builder() \n .name(\"monitoring\")\n .expiresAt(\"2019-02-13T12:12:12Z\")\n .accessRules( \n ApplicationCredentialAccessRuleArgs.builder()\n .path(\"/v2.0/metrics\")\n .service(\"monitoring\")\n .method(\"GET\")\n .build(),\n ApplicationCredentialAccessRuleArgs.builder()\n .path(\"/v2.0/metrics\")\n .service(\"monitoring\")\n .method(\"PUT\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n monitoring:\n type: openstack:identity:ApplicationCredential\n properties:\n name: monitoring\n expiresAt: 2019-02-13T12:12:12Z\n accessRules:\n - path: /v2.0/metrics\n service: monitoring\n method: GET\n - path: /v2.0/metrics\n service: monitoring\n method: PUT\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nApplication Credentials can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import openstack:identity/applicationCredential:ApplicationCredential application_credential_1 c17304b7-0953-4738-abb0-67005882b0a0\n```\n", "properties": { "accessRules": { "type": "array", @@ -9031,7 +8893,7 @@ } }, "openstack:identity/ec2CredentialV3:Ec2CredentialV3": { - "description": "Manages a V3 EC2 Credential resource within OpenStack Keystone.\nEC2 credentials in OpenStack are used to access S3 compatible Swift/RadosGW\nendpoints or to authenticate against Keystone.\n\n\u003e **Note:** All arguments including the EC2 credential access key and secret\nwill be stored in the raw state as plain-text. Read more about sensitive data\nin state.\n\n## Example Usage\n\n### EC2 credential in current project scope\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst ec2Key1 = new openstack.identity.Ec2CredentialV3(\"ec2_key1\", {});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nec2_key1 = openstack.identity.Ec2CredentialV3(\"ec2_key1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var ec2Key1 = new OpenStack.Identity.Ec2CredentialV3(\"ec2_key1\");\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/identity\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := identity.NewEc2CredentialV3(ctx, \"ec2_key1\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.identity.Ec2CredentialV3;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var ec2Key1 = new Ec2CredentialV3(\"ec2Key1\");\n\n }\n}\n```\n```yaml\nresources:\n ec2Key1:\n type: openstack:identity:Ec2CredentialV3\n name: ec2_key1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### EC2 credential in pre-defined project scope\n\nThis allows administrative users to create EC2 credentials for a scope different\nfrom the current auth scope.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst ec2Key1 = new openstack.identity.Ec2CredentialV3(\"ec2_key1\", {projectId: \"f7ac731cc11f40efbc03a9f9e1d1d21f\"});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nec2_key1 = openstack.identity.Ec2CredentialV3(\"ec2_key1\", project_id=\"f7ac731cc11f40efbc03a9f9e1d1d21f\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var ec2Key1 = new OpenStack.Identity.Ec2CredentialV3(\"ec2_key1\", new()\n {\n ProjectId = \"f7ac731cc11f40efbc03a9f9e1d1d21f\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/identity\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := identity.NewEc2CredentialV3(ctx, \"ec2_key1\", \u0026identity.Ec2CredentialV3Args{\n\t\t\tProjectId: pulumi.String(\"f7ac731cc11f40efbc03a9f9e1d1d21f\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.identity.Ec2CredentialV3;\nimport com.pulumi.openstack.identity.Ec2CredentialV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var ec2Key1 = new Ec2CredentialV3(\"ec2Key1\", Ec2CredentialV3Args.builder() \n .projectId(\"f7ac731cc11f40efbc03a9f9e1d1d21f\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n ec2Key1:\n type: openstack:identity:Ec2CredentialV3\n name: ec2_key1\n properties:\n projectId: f7ac731cc11f40efbc03a9f9e1d1d21f\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nEC2 Credentials can be imported using the `access`, e.g.\n\n```sh\n$ pulumi import openstack:identity/ec2CredentialV3:Ec2CredentialV3 ec2_cred_1 2d0ac4a2f81b4b0f9513ee49e780647d\n```\n", + "description": "Manages a V3 EC2 Credential resource within OpenStack Keystone.\nEC2 credentials in OpenStack are used to access S3 compatible Swift/RadosGW\nendpoints or to authenticate against Keystone.\n\n\u003e **Note:** All arguments including the EC2 credential access key and secret\nwill be stored in the raw state as plain-text. Read more about sensitive data\nin state.\n\n## Example Usage\n\n### EC2 credential in current project scope\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst ec2Key1 = new openstack.identity.Ec2CredentialV3(\"ec2_key1\", {});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nec2_key1 = openstack.identity.Ec2CredentialV3(\"ec2_key1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var ec2Key1 = new OpenStack.Identity.Ec2CredentialV3(\"ec2_key1\");\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/identity\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := identity.NewEc2CredentialV3(ctx, \"ec2_key1\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.identity.Ec2CredentialV3;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var ec2Key1 = new Ec2CredentialV3(\"ec2Key1\");\n\n }\n}\n```\n```yaml\nresources:\n ec2Key1:\n type: openstack:identity:Ec2CredentialV3\n name: ec2_key1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### EC2 credential in pre-defined project scope\n\nThis allows administrative users to create EC2 credentials for a scope different\nfrom the current auth scope.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst ec2Key1 = new openstack.identity.Ec2CredentialV3(\"ec2_key1\", {projectId: \"f7ac731cc11f40efbc03a9f9e1d1d21f\"});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nec2_key1 = openstack.identity.Ec2CredentialV3(\"ec2_key1\", project_id=\"f7ac731cc11f40efbc03a9f9e1d1d21f\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var ec2Key1 = new OpenStack.Identity.Ec2CredentialV3(\"ec2_key1\", new()\n {\n ProjectId = \"f7ac731cc11f40efbc03a9f9e1d1d21f\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/identity\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := identity.NewEc2CredentialV3(ctx, \"ec2_key1\", \u0026identity.Ec2CredentialV3Args{\n\t\t\tProjectId: pulumi.String(\"f7ac731cc11f40efbc03a9f9e1d1d21f\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.identity.Ec2CredentialV3;\nimport com.pulumi.openstack.identity.Ec2CredentialV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var ec2Key1 = new Ec2CredentialV3(\"ec2Key1\", Ec2CredentialV3Args.builder() \n .projectId(\"f7ac731cc11f40efbc03a9f9e1d1d21f\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n ec2Key1:\n type: openstack:identity:Ec2CredentialV3\n name: ec2_key1\n properties:\n projectId: f7ac731cc11f40efbc03a9f9e1d1d21f\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nEC2 Credentials can be imported using the `access`, e.g.\n\n```sh\n$ pulumi import openstack:identity/ec2CredentialV3:Ec2CredentialV3 ec2_cred_1 2d0ac4a2f81b4b0f9513ee49e780647d\n```\n", "properties": { "access": { "type": "string", @@ -9123,7 +8985,7 @@ } }, "openstack:identity/endpointV3:EndpointV3": { - "description": "Manages a V3 Endpoint resource within OpenStack Keystone.\n\n\u003e **Note:** This usually requires admin privileges.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst service1 = new openstack.identity.ServiceV3(\"service_1\", {\n name: \"my-service\",\n type: \"my-service-type\",\n});\nconst endpoint1 = new openstack.identity.EndpointV3(\"endpoint_1\", {\n name: \"my-endpoint\",\n serviceId: service1.id,\n endpointRegion: service1.region,\n url: \"http://my-endpoint\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nservice1 = openstack.identity.ServiceV3(\"service_1\",\n name=\"my-service\",\n type=\"my-service-type\")\nendpoint1 = openstack.identity.EndpointV3(\"endpoint_1\",\n name=\"my-endpoint\",\n service_id=service1.id,\n endpoint_region=service1.region,\n url=\"http://my-endpoint\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var service1 = new OpenStack.Identity.ServiceV3(\"service_1\", new()\n {\n Name = \"my-service\",\n Type = \"my-service-type\",\n });\n\n var endpoint1 = new OpenStack.Identity.EndpointV3(\"endpoint_1\", new()\n {\n Name = \"my-endpoint\",\n ServiceId = service1.Id,\n EndpointRegion = service1.Region,\n Url = \"http://my-endpoint\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/identity\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tservice1, err := identity.NewServiceV3(ctx, \"service_1\", \u0026identity.ServiceV3Args{\n\t\t\tName: pulumi.String(\"my-service\"),\n\t\t\tType: pulumi.String(\"my-service-type\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = identity.NewEndpointV3(ctx, \"endpoint_1\", \u0026identity.EndpointV3Args{\n\t\t\tName: pulumi.String(\"my-endpoint\"),\n\t\t\tServiceId: service1.ID(),\n\t\t\tEndpointRegion: service1.Region,\n\t\t\tUrl: pulumi.String(\"http://my-endpoint\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.identity.ServiceV3;\nimport com.pulumi.openstack.identity.ServiceV3Args;\nimport com.pulumi.openstack.identity.EndpointV3;\nimport com.pulumi.openstack.identity.EndpointV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var service1 = new ServiceV3(\"service1\", ServiceV3Args.builder() \n .name(\"my-service\")\n .type(\"my-service-type\")\n .build());\n\n var endpoint1 = new EndpointV3(\"endpoint1\", EndpointV3Args.builder() \n .name(\"my-endpoint\")\n .serviceId(service1.id())\n .endpointRegion(service1.region())\n .url(\"http://my-endpoint\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n service1:\n type: openstack:identity:ServiceV3\n name: service_1\n properties:\n name: my-service\n type: my-service-type\n endpoint1:\n type: openstack:identity:EndpointV3\n name: endpoint_1\n properties:\n name: my-endpoint\n serviceId: ${service1.id}\n endpointRegion: ${service1.region}\n url: http://my-endpoint\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nEndpoints can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import openstack:identity/endpointV3:EndpointV3 endpoint_1 5392472b-106a-4845-90c6-7c8445f18770\n```\n", + "description": "Manages a V3 Endpoint resource within OpenStack Keystone.\n\n\u003e **Note:** This usually requires admin privileges.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst service1 = new openstack.identity.ServiceV3(\"service_1\", {\n name: \"my-service\",\n type: \"my-service-type\",\n});\nconst endpoint1 = new openstack.identity.EndpointV3(\"endpoint_1\", {\n name: \"my-endpoint\",\n serviceId: service1.id,\n endpointRegion: service1.region,\n url: \"http://my-endpoint\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nservice1 = openstack.identity.ServiceV3(\"service_1\",\n name=\"my-service\",\n type=\"my-service-type\")\nendpoint1 = openstack.identity.EndpointV3(\"endpoint_1\",\n name=\"my-endpoint\",\n service_id=service1.id,\n endpoint_region=service1.region,\n url=\"http://my-endpoint\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var service1 = new OpenStack.Identity.ServiceV3(\"service_1\", new()\n {\n Name = \"my-service\",\n Type = \"my-service-type\",\n });\n\n var endpoint1 = new OpenStack.Identity.EndpointV3(\"endpoint_1\", new()\n {\n Name = \"my-endpoint\",\n ServiceId = service1.Id,\n EndpointRegion = service1.Region,\n Url = \"http://my-endpoint\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/identity\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tservice1, err := identity.NewServiceV3(ctx, \"service_1\", \u0026identity.ServiceV3Args{\n\t\t\tName: pulumi.String(\"my-service\"),\n\t\t\tType: pulumi.String(\"my-service-type\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = identity.NewEndpointV3(ctx, \"endpoint_1\", \u0026identity.EndpointV3Args{\n\t\t\tName: pulumi.String(\"my-endpoint\"),\n\t\t\tServiceId: service1.ID(),\n\t\t\tEndpointRegion: service1.Region,\n\t\t\tUrl: pulumi.String(\"http://my-endpoint\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.identity.ServiceV3;\nimport com.pulumi.openstack.identity.ServiceV3Args;\nimport com.pulumi.openstack.identity.EndpointV3;\nimport com.pulumi.openstack.identity.EndpointV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var service1 = new ServiceV3(\"service1\", ServiceV3Args.builder() \n .name(\"my-service\")\n .type(\"my-service-type\")\n .build());\n\n var endpoint1 = new EndpointV3(\"endpoint1\", EndpointV3Args.builder() \n .name(\"my-endpoint\")\n .serviceId(service1.id())\n .endpointRegion(service1.region())\n .url(\"http://my-endpoint\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n service1:\n type: openstack:identity:ServiceV3\n name: service_1\n properties:\n name: my-service\n type: my-service-type\n endpoint1:\n type: openstack:identity:EndpointV3\n name: endpoint_1\n properties:\n name: my-endpoint\n serviceId: ${service1.id}\n endpointRegion: ${service1.region}\n url: http://my-endpoint\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nEndpoints can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import openstack:identity/endpointV3:EndpointV3 endpoint_1 5392472b-106a-4845-90c6-7c8445f18770\n```\n", "properties": { "endpointRegion": { "type": "string", @@ -9240,7 +9102,7 @@ } }, "openstack:identity/groupV3:GroupV3": { - "description": "Manages a V3 group resource within OpenStack Keystone.\n\n\u003e **Note:** You _must_ have admin privileges in your OpenStack cloud to use\nthis resource.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst group1 = new openstack.identity.GroupV3(\"group_1\", {\n name: \"group_1\",\n description: \"group 1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\ngroup1 = openstack.identity.GroupV3(\"group_1\",\n name=\"group_1\",\n description=\"group 1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var group1 = new OpenStack.Identity.GroupV3(\"group_1\", new()\n {\n Name = \"group_1\",\n Description = \"group 1\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/identity\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := identity.NewGroupV3(ctx, \"group_1\", \u0026identity.GroupV3Args{\n\t\t\tName: pulumi.String(\"group_1\"),\n\t\t\tDescription: pulumi.String(\"group 1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.identity.GroupV3;\nimport com.pulumi.openstack.identity.GroupV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var group1 = new GroupV3(\"group1\", GroupV3Args.builder() \n .name(\"group_1\")\n .description(\"group 1\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n group1:\n type: openstack:identity:GroupV3\n name: group_1\n properties:\n name: group_1\n description: group 1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\ngroups can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import openstack:identity/groupV3:GroupV3 group_1 89c60255-9bd6-460c-822a-e2b959ede9d2\n```\n", + "description": "Manages a V3 group resource within OpenStack Keystone.\n\n\u003e **Note:** You _must_ have admin privileges in your OpenStack cloud to use\nthis resource.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst group1 = new openstack.identity.GroupV3(\"group_1\", {\n name: \"group_1\",\n description: \"group 1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\ngroup1 = openstack.identity.GroupV3(\"group_1\",\n name=\"group_1\",\n description=\"group 1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var group1 = new OpenStack.Identity.GroupV3(\"group_1\", new()\n {\n Name = \"group_1\",\n Description = \"group 1\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/identity\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := identity.NewGroupV3(ctx, \"group_1\", \u0026identity.GroupV3Args{\n\t\t\tName: pulumi.String(\"group_1\"),\n\t\t\tDescription: pulumi.String(\"group 1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.identity.GroupV3;\nimport com.pulumi.openstack.identity.GroupV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var group1 = new GroupV3(\"group1\", GroupV3Args.builder() \n .name(\"group_1\")\n .description(\"group 1\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n group1:\n type: openstack:identity:GroupV3\n name: group_1\n properties:\n name: group_1\n description: group 1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\ngroups can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import openstack:identity/groupV3:GroupV3 group_1 89c60255-9bd6-460c-822a-e2b959ede9d2\n```\n", "properties": { "description": { "type": "string", @@ -9310,7 +9172,7 @@ } }, "openstack:identity/inheritRoleAssignment:InheritRoleAssignment": { - "description": "Manages a V3 Inherit Role assignment within OpenStack Keystone. This uses the\nOpenstack keystone `OS-INHERIT` api to created inherit roles within domains\nand parent projects for users and groups.\n\n\u003e **Note:** You _must_ have admin privileges in your OpenStack cloud to use\nthis resource.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst user1 = new openstack.identity.User(\"user_1\", {\n name: \"user_1\",\n domainId: \"default\",\n});\nconst role1 = new openstack.identity.Role(\"role_1\", {\n name: \"role_1\",\n domainId: \"default\",\n});\nconst roleAssignment1 = new openstack.identity.InheritRoleAssignment(\"role_assignment_1\", {\n userId: user1.id,\n domainId: \"default\",\n roleId: role1.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nuser1 = openstack.identity.User(\"user_1\",\n name=\"user_1\",\n domain_id=\"default\")\nrole1 = openstack.identity.Role(\"role_1\",\n name=\"role_1\",\n domain_id=\"default\")\nrole_assignment1 = openstack.identity.InheritRoleAssignment(\"role_assignment_1\",\n user_id=user1.id,\n domain_id=\"default\",\n role_id=role1.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var user1 = new OpenStack.Identity.User(\"user_1\", new()\n {\n Name = \"user_1\",\n DomainId = \"default\",\n });\n\n var role1 = new OpenStack.Identity.Role(\"role_1\", new()\n {\n Name = \"role_1\",\n DomainId = \"default\",\n });\n\n var roleAssignment1 = new OpenStack.Identity.InheritRoleAssignment(\"role_assignment_1\", new()\n {\n UserId = user1.Id,\n DomainId = \"default\",\n RoleId = role1.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/identity\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tuser1, err := identity.NewUser(ctx, \"user_1\", \u0026identity.UserArgs{\n\t\t\tName: pulumi.String(\"user_1\"),\n\t\t\tDomainId: pulumi.String(\"default\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\trole1, err := identity.NewRole(ctx, \"role_1\", \u0026identity.RoleArgs{\n\t\t\tName: pulumi.String(\"role_1\"),\n\t\t\tDomainId: pulumi.String(\"default\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = identity.NewInheritRoleAssignment(ctx, \"role_assignment_1\", \u0026identity.InheritRoleAssignmentArgs{\n\t\t\tUserId: user1.ID(),\n\t\t\tDomainId: pulumi.String(\"default\"),\n\t\t\tRoleId: role1.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.identity.User;\nimport com.pulumi.openstack.identity.UserArgs;\nimport com.pulumi.openstack.identity.Role;\nimport com.pulumi.openstack.identity.RoleArgs;\nimport com.pulumi.openstack.identity.InheritRoleAssignment;\nimport com.pulumi.openstack.identity.InheritRoleAssignmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var user1 = new User(\"user1\", UserArgs.builder() \n .name(\"user_1\")\n .domainId(\"default\")\n .build());\n\n var role1 = new Role(\"role1\", RoleArgs.builder() \n .name(\"role_1\")\n .domainId(\"default\")\n .build());\n\n var roleAssignment1 = new InheritRoleAssignment(\"roleAssignment1\", InheritRoleAssignmentArgs.builder() \n .userId(user1.id())\n .domainId(\"default\")\n .roleId(role1.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n user1:\n type: openstack:identity:User\n name: user_1\n properties:\n name: user_1\n domainId: default\n role1:\n type: openstack:identity:Role\n name: role_1\n properties:\n name: role_1\n domainId: default\n roleAssignment1:\n type: openstack:identity:InheritRoleAssignment\n name: role_assignment_1\n properties:\n userId: ${user1.id}\n domainId: default\n roleId: ${role1.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nInherit role assignments can be imported using a constructed id. The id should\nhave the form of `domainID/projectID/groupID/userID/roleID`. When something is\nnot used then leave blank.\n\nFor example this will import the inherit role assignment for:\nprojectID: 014395cd-89fc-4c9b-96b7-13d1ee79dad2,\nuserID: 4142e64b-1b35-44a0-9b1e-5affc7af1106,\nroleID: ea257959-eeb1-4c10-8d33-26f0409a755d\n( domainID and groupID are left blank)\n\n```sh\n$ pulumi import openstack:identity/inheritRoleAssignment:InheritRoleAssignment role_assignment_1 /014395cd-89fc-4c9b-96b7-13d1ee79dad2//4142e64b-1b35-44a0-9b1e-5affc7af1106/ea257959-eeb1-4c10-8d33-26f0409a755d\n```\n", + "description": "Manages a V3 Inherit Role assignment within OpenStack Keystone. This uses the\nOpenstack keystone `OS-INHERIT` api to created inherit roles within domains\nand parent projects for users and groups.\n\n\u003e **Note:** You _must_ have admin privileges in your OpenStack cloud to use\nthis resource.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst user1 = new openstack.identity.User(\"user_1\", {\n name: \"user_1\",\n domainId: \"default\",\n});\nconst role1 = new openstack.identity.Role(\"role_1\", {\n name: \"role_1\",\n domainId: \"default\",\n});\nconst roleAssignment1 = new openstack.identity.InheritRoleAssignment(\"role_assignment_1\", {\n userId: user1.id,\n domainId: \"default\",\n roleId: role1.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nuser1 = openstack.identity.User(\"user_1\",\n name=\"user_1\",\n domain_id=\"default\")\nrole1 = openstack.identity.Role(\"role_1\",\n name=\"role_1\",\n domain_id=\"default\")\nrole_assignment1 = openstack.identity.InheritRoleAssignment(\"role_assignment_1\",\n user_id=user1.id,\n domain_id=\"default\",\n role_id=role1.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var user1 = new OpenStack.Identity.User(\"user_1\", new()\n {\n Name = \"user_1\",\n DomainId = \"default\",\n });\n\n var role1 = new OpenStack.Identity.Role(\"role_1\", new()\n {\n Name = \"role_1\",\n DomainId = \"default\",\n });\n\n var roleAssignment1 = new OpenStack.Identity.InheritRoleAssignment(\"role_assignment_1\", new()\n {\n UserId = user1.Id,\n DomainId = \"default\",\n RoleId = role1.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/identity\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tuser1, err := identity.NewUser(ctx, \"user_1\", \u0026identity.UserArgs{\n\t\t\tName: pulumi.String(\"user_1\"),\n\t\t\tDomainId: pulumi.String(\"default\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\trole1, err := identity.NewRole(ctx, \"role_1\", \u0026identity.RoleArgs{\n\t\t\tName: pulumi.String(\"role_1\"),\n\t\t\tDomainId: pulumi.String(\"default\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = identity.NewInheritRoleAssignment(ctx, \"role_assignment_1\", \u0026identity.InheritRoleAssignmentArgs{\n\t\t\tUserId: user1.ID(),\n\t\t\tDomainId: pulumi.String(\"default\"),\n\t\t\tRoleId: role1.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.identity.User;\nimport com.pulumi.openstack.identity.UserArgs;\nimport com.pulumi.openstack.identity.Role;\nimport com.pulumi.openstack.identity.RoleArgs;\nimport com.pulumi.openstack.identity.InheritRoleAssignment;\nimport com.pulumi.openstack.identity.InheritRoleAssignmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var user1 = new User(\"user1\", UserArgs.builder() \n .name(\"user_1\")\n .domainId(\"default\")\n .build());\n\n var role1 = new Role(\"role1\", RoleArgs.builder() \n .name(\"role_1\")\n .domainId(\"default\")\n .build());\n\n var roleAssignment1 = new InheritRoleAssignment(\"roleAssignment1\", InheritRoleAssignmentArgs.builder() \n .userId(user1.id())\n .domainId(\"default\")\n .roleId(role1.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n user1:\n type: openstack:identity:User\n name: user_1\n properties:\n name: user_1\n domainId: default\n role1:\n type: openstack:identity:Role\n name: role_1\n properties:\n name: role_1\n domainId: default\n roleAssignment1:\n type: openstack:identity:InheritRoleAssignment\n name: role_assignment_1\n properties:\n userId: ${user1.id}\n domainId: default\n roleId: ${role1.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nInherit role assignments can be imported using a constructed id. The id should\nhave the form of `domainID/projectID/groupID/userID/roleID`. When something is\nnot used then leave blank.\n\nFor example this will import the inherit role assignment for:\nprojectID: 014395cd-89fc-4c9b-96b7-13d1ee79dad2,\nuserID: 4142e64b-1b35-44a0-9b1e-5affc7af1106,\nroleID: ea257959-eeb1-4c10-8d33-26f0409a755d\n( domainID and groupID are left blank)\n\n```sh\n$ pulumi import openstack:identity/inheritRoleAssignment:InheritRoleAssignment role_assignment_1 /014395cd-89fc-4c9b-96b7-13d1ee79dad2//4142e64b-1b35-44a0-9b1e-5affc7af1106/ea257959-eeb1-4c10-8d33-26f0409a755d\n```\n", "properties": { "domainId": { "type": "string", @@ -9411,7 +9273,7 @@ } }, "openstack:identity/project:Project": { - "description": "Manages a V3 Project resource within OpenStack Keystone.\n\n\u003e **Note:** You _must_ have admin privileges in your OpenStack cloud to use\nthis resource.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst project1 = new openstack.identity.Project(\"project_1\", {\n name: \"project_1\",\n description: \"A project\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nproject1 = openstack.identity.Project(\"project_1\",\n name=\"project_1\",\n description=\"A project\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var project1 = new OpenStack.Identity.Project(\"project_1\", new()\n {\n Name = \"project_1\",\n Description = \"A project\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/identity\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := identity.NewProject(ctx, \"project_1\", \u0026identity.ProjectArgs{\n\t\t\tName: pulumi.String(\"project_1\"),\n\t\t\tDescription: pulumi.String(\"A project\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.identity.Project;\nimport com.pulumi.openstack.identity.ProjectArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var project1 = new Project(\"project1\", ProjectArgs.builder() \n .name(\"project_1\")\n .description(\"A project\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n project1:\n type: openstack:identity:Project\n name: project_1\n properties:\n name: project_1\n description: A project\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nProjects can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import openstack:identity/project:Project project_1 89c60255-9bd6-460c-822a-e2b959ede9d2\n```\n", + "description": "Manages a V3 Project resource within OpenStack Keystone.\n\n\u003e **Note:** You _must_ have admin privileges in your OpenStack cloud to use\nthis resource.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst project1 = new openstack.identity.Project(\"project_1\", {\n name: \"project_1\",\n description: \"A project\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nproject1 = openstack.identity.Project(\"project_1\",\n name=\"project_1\",\n description=\"A project\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var project1 = new OpenStack.Identity.Project(\"project_1\", new()\n {\n Name = \"project_1\",\n Description = \"A project\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/identity\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := identity.NewProject(ctx, \"project_1\", \u0026identity.ProjectArgs{\n\t\t\tName: pulumi.String(\"project_1\"),\n\t\t\tDescription: pulumi.String(\"A project\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.identity.Project;\nimport com.pulumi.openstack.identity.ProjectArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var project1 = new Project(\"project1\", ProjectArgs.builder() \n .name(\"project_1\")\n .description(\"A project\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n project1:\n type: openstack:identity:Project\n name: project_1\n properties:\n name: project_1\n description: A project\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nProjects can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import openstack:identity/project:Project project_1 89c60255-9bd6-460c-822a-e2b959ede9d2\n```\n", "properties": { "description": { "type": "string", @@ -9543,7 +9405,7 @@ } }, "openstack:identity/role:Role": { - "description": "Manages a V3 Role resource within OpenStack Keystone.\n\n\u003e **Note:** You _must_ have admin privileges in your OpenStack cloud to use\nthis resource.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst role1 = new openstack.identity.Role(\"role_1\", {name: \"role_1\"});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nrole1 = openstack.identity.Role(\"role_1\", name=\"role_1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var role1 = new OpenStack.Identity.Role(\"role_1\", new()\n {\n Name = \"role_1\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/identity\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := identity.NewRole(ctx, \"role_1\", \u0026identity.RoleArgs{\n\t\t\tName: pulumi.String(\"role_1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.identity.Role;\nimport com.pulumi.openstack.identity.RoleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var role1 = new Role(\"role1\", RoleArgs.builder() \n .name(\"role_1\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n role1:\n type: openstack:identity:Role\n name: role_1\n properties:\n name: role_1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nRoles can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import openstack:identity/role:Role role_1 89c60255-9bd6-460c-822a-e2b959ede9d2\n```\n", + "description": "Manages a V3 Role resource within OpenStack Keystone.\n\n\u003e **Note:** You _must_ have admin privileges in your OpenStack cloud to use\nthis resource.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst role1 = new openstack.identity.Role(\"role_1\", {name: \"role_1\"});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nrole1 = openstack.identity.Role(\"role_1\", name=\"role_1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var role1 = new OpenStack.Identity.Role(\"role_1\", new()\n {\n Name = \"role_1\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/identity\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := identity.NewRole(ctx, \"role_1\", \u0026identity.RoleArgs{\n\t\t\tName: pulumi.String(\"role_1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.identity.Role;\nimport com.pulumi.openstack.identity.RoleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var role1 = new Role(\"role1\", RoleArgs.builder() \n .name(\"role_1\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n role1:\n type: openstack:identity:Role\n name: role_1\n properties:\n name: role_1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nRoles can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import openstack:identity/role:Role role_1 89c60255-9bd6-460c-822a-e2b959ede9d2\n```\n", "properties": { "domainId": { "type": "string", @@ -9599,7 +9461,7 @@ } }, "openstack:identity/roleAssignment:RoleAssignment": { - "description": "Manages a V3 Role assignment within OpenStack Keystone.\n\n\u003e **Note:** You _must_ have admin privileges in your OpenStack cloud to use\nthis resource.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst project1 = new openstack.identity.Project(\"project_1\", {name: \"project_1\"});\nconst user1 = new openstack.identity.User(\"user_1\", {\n name: \"user_1\",\n defaultProjectId: project1.id,\n});\nconst role1 = new openstack.identity.Role(\"role_1\", {name: \"role_1\"});\nconst roleAssignment1 = new openstack.identity.RoleAssignment(\"role_assignment_1\", {\n userId: user1.id,\n projectId: project1.id,\n roleId: role1.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nproject1 = openstack.identity.Project(\"project_1\", name=\"project_1\")\nuser1 = openstack.identity.User(\"user_1\",\n name=\"user_1\",\n default_project_id=project1.id)\nrole1 = openstack.identity.Role(\"role_1\", name=\"role_1\")\nrole_assignment1 = openstack.identity.RoleAssignment(\"role_assignment_1\",\n user_id=user1.id,\n project_id=project1.id,\n role_id=role1.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var project1 = new OpenStack.Identity.Project(\"project_1\", new()\n {\n Name = \"project_1\",\n });\n\n var user1 = new OpenStack.Identity.User(\"user_1\", new()\n {\n Name = \"user_1\",\n DefaultProjectId = project1.Id,\n });\n\n var role1 = new OpenStack.Identity.Role(\"role_1\", new()\n {\n Name = \"role_1\",\n });\n\n var roleAssignment1 = new OpenStack.Identity.RoleAssignment(\"role_assignment_1\", new()\n {\n UserId = user1.Id,\n ProjectId = project1.Id,\n RoleId = role1.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/identity\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tproject1, err := identity.NewProject(ctx, \"project_1\", \u0026identity.ProjectArgs{\n\t\t\tName: pulumi.String(\"project_1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tuser1, err := identity.NewUser(ctx, \"user_1\", \u0026identity.UserArgs{\n\t\t\tName: pulumi.String(\"user_1\"),\n\t\t\tDefaultProjectId: project1.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\trole1, err := identity.NewRole(ctx, \"role_1\", \u0026identity.RoleArgs{\n\t\t\tName: pulumi.String(\"role_1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = identity.NewRoleAssignment(ctx, \"role_assignment_1\", \u0026identity.RoleAssignmentArgs{\n\t\t\tUserId: user1.ID(),\n\t\t\tProjectId: project1.ID(),\n\t\t\tRoleId: role1.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.identity.Project;\nimport com.pulumi.openstack.identity.ProjectArgs;\nimport com.pulumi.openstack.identity.User;\nimport com.pulumi.openstack.identity.UserArgs;\nimport com.pulumi.openstack.identity.Role;\nimport com.pulumi.openstack.identity.RoleArgs;\nimport com.pulumi.openstack.identity.RoleAssignment;\nimport com.pulumi.openstack.identity.RoleAssignmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var project1 = new Project(\"project1\", ProjectArgs.builder() \n .name(\"project_1\")\n .build());\n\n var user1 = new User(\"user1\", UserArgs.builder() \n .name(\"user_1\")\n .defaultProjectId(project1.id())\n .build());\n\n var role1 = new Role(\"role1\", RoleArgs.builder() \n .name(\"role_1\")\n .build());\n\n var roleAssignment1 = new RoleAssignment(\"roleAssignment1\", RoleAssignmentArgs.builder() \n .userId(user1.id())\n .projectId(project1.id())\n .roleId(role1.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n project1:\n type: openstack:identity:Project\n name: project_1\n properties:\n name: project_1\n user1:\n type: openstack:identity:User\n name: user_1\n properties:\n name: user_1\n defaultProjectId: ${project1.id}\n role1:\n type: openstack:identity:Role\n name: role_1\n properties:\n name: role_1\n roleAssignment1:\n type: openstack:identity:RoleAssignment\n name: role_assignment_1\n properties:\n userId: ${user1.id}\n projectId: ${project1.id}\n roleId: ${role1.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nRole assignments can be imported using a constructed id. The id should have the form of\n`domainID/projectID/groupID/userID/roleID`. When something is not used then leave blank.\n\nFor example this will import the role assignment for:\nprojectID: 014395cd-89fc-4c9b-96b7-13d1ee79dad2,\nuserID: 4142e64b-1b35-44a0-9b1e-5affc7af1106,\nroleID: ea257959-eeb1-4c10-8d33-26f0409a755d\n( domainID and groupID are left blank)\n\n```sh\n$ pulumi import openstack:identity/roleAssignment:RoleAssignment role_assignment_1 /014395cd-89fc-4c9b-96b7-13d1ee79dad2//4142e64b-1b35-44a0-9b1e-5affc7af1106/ea257959-eeb1-4c10-8d33-26f0409a755d\n```\n", + "description": "Manages a V3 Role assignment within OpenStack Keystone.\n\n\u003e **Note:** You _must_ have admin privileges in your OpenStack cloud to use\nthis resource.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst project1 = new openstack.identity.Project(\"project_1\", {name: \"project_1\"});\nconst user1 = new openstack.identity.User(\"user_1\", {\n name: \"user_1\",\n defaultProjectId: project1.id,\n});\nconst role1 = new openstack.identity.Role(\"role_1\", {name: \"role_1\"});\nconst roleAssignment1 = new openstack.identity.RoleAssignment(\"role_assignment_1\", {\n userId: user1.id,\n projectId: project1.id,\n roleId: role1.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nproject1 = openstack.identity.Project(\"project_1\", name=\"project_1\")\nuser1 = openstack.identity.User(\"user_1\",\n name=\"user_1\",\n default_project_id=project1.id)\nrole1 = openstack.identity.Role(\"role_1\", name=\"role_1\")\nrole_assignment1 = openstack.identity.RoleAssignment(\"role_assignment_1\",\n user_id=user1.id,\n project_id=project1.id,\n role_id=role1.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var project1 = new OpenStack.Identity.Project(\"project_1\", new()\n {\n Name = \"project_1\",\n });\n\n var user1 = new OpenStack.Identity.User(\"user_1\", new()\n {\n Name = \"user_1\",\n DefaultProjectId = project1.Id,\n });\n\n var role1 = new OpenStack.Identity.Role(\"role_1\", new()\n {\n Name = \"role_1\",\n });\n\n var roleAssignment1 = new OpenStack.Identity.RoleAssignment(\"role_assignment_1\", new()\n {\n UserId = user1.Id,\n ProjectId = project1.Id,\n RoleId = role1.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/identity\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tproject1, err := identity.NewProject(ctx, \"project_1\", \u0026identity.ProjectArgs{\n\t\t\tName: pulumi.String(\"project_1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tuser1, err := identity.NewUser(ctx, \"user_1\", \u0026identity.UserArgs{\n\t\t\tName: pulumi.String(\"user_1\"),\n\t\t\tDefaultProjectId: project1.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\trole1, err := identity.NewRole(ctx, \"role_1\", \u0026identity.RoleArgs{\n\t\t\tName: pulumi.String(\"role_1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = identity.NewRoleAssignment(ctx, \"role_assignment_1\", \u0026identity.RoleAssignmentArgs{\n\t\t\tUserId: user1.ID(),\n\t\t\tProjectId: project1.ID(),\n\t\t\tRoleId: role1.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.identity.Project;\nimport com.pulumi.openstack.identity.ProjectArgs;\nimport com.pulumi.openstack.identity.User;\nimport com.pulumi.openstack.identity.UserArgs;\nimport com.pulumi.openstack.identity.Role;\nimport com.pulumi.openstack.identity.RoleArgs;\nimport com.pulumi.openstack.identity.RoleAssignment;\nimport com.pulumi.openstack.identity.RoleAssignmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var project1 = new Project(\"project1\", ProjectArgs.builder() \n .name(\"project_1\")\n .build());\n\n var user1 = new User(\"user1\", UserArgs.builder() \n .name(\"user_1\")\n .defaultProjectId(project1.id())\n .build());\n\n var role1 = new Role(\"role1\", RoleArgs.builder() \n .name(\"role_1\")\n .build());\n\n var roleAssignment1 = new RoleAssignment(\"roleAssignment1\", RoleAssignmentArgs.builder() \n .userId(user1.id())\n .projectId(project1.id())\n .roleId(role1.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n project1:\n type: openstack:identity:Project\n name: project_1\n properties:\n name: project_1\n user1:\n type: openstack:identity:User\n name: user_1\n properties:\n name: user_1\n defaultProjectId: ${project1.id}\n role1:\n type: openstack:identity:Role\n name: role_1\n properties:\n name: role_1\n roleAssignment1:\n type: openstack:identity:RoleAssignment\n name: role_assignment_1\n properties:\n userId: ${user1.id}\n projectId: ${project1.id}\n roleId: ${role1.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nRole assignments can be imported using a constructed id. The id should have the form of\n`domainID/projectID/groupID/userID/roleID`. When something is not used then leave blank.\n\nFor example this will import the role assignment for:\nprojectID: 014395cd-89fc-4c9b-96b7-13d1ee79dad2,\nuserID: 4142e64b-1b35-44a0-9b1e-5affc7af1106,\nroleID: ea257959-eeb1-4c10-8d33-26f0409a755d\n( domainID and groupID are left blank)\n\n```sh\n$ pulumi import openstack:identity/roleAssignment:RoleAssignment role_assignment_1 /014395cd-89fc-4c9b-96b7-13d1ee79dad2//4142e64b-1b35-44a0-9b1e-5affc7af1106/ea257959-eeb1-4c10-8d33-26f0409a755d\n```\n", "properties": { "domainId": { "type": "string", @@ -9700,7 +9562,7 @@ } }, "openstack:identity/serviceV3:ServiceV3": { - "description": "Manages a V3 Service resource within OpenStack Keystone.\n\n\u003e **Note:** This usually requires admin privileges.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst service1 = new openstack.identity.ServiceV3(\"service_1\", {\n name: \"custom\",\n type: \"custom\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nservice1 = openstack.identity.ServiceV3(\"service_1\",\n name=\"custom\",\n type=\"custom\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var service1 = new OpenStack.Identity.ServiceV3(\"service_1\", new()\n {\n Name = \"custom\",\n Type = \"custom\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/identity\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := identity.NewServiceV3(ctx, \"service_1\", \u0026identity.ServiceV3Args{\n\t\t\tName: pulumi.String(\"custom\"),\n\t\t\tType: pulumi.String(\"custom\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.identity.ServiceV3;\nimport com.pulumi.openstack.identity.ServiceV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var service1 = new ServiceV3(\"service1\", ServiceV3Args.builder() \n .name(\"custom\")\n .type(\"custom\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n service1:\n type: openstack:identity:ServiceV3\n name: service_1\n properties:\n name: custom\n type: custom\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nServices can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import openstack:identity/serviceV3:ServiceV3 service_1 6688e967-158a-496f-a224-cae3414e6b61\n```\n", + "description": "Manages a V3 Service resource within OpenStack Keystone.\n\n\u003e **Note:** This usually requires admin privileges.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst service1 = new openstack.identity.ServiceV3(\"service_1\", {\n name: \"custom\",\n type: \"custom\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nservice1 = openstack.identity.ServiceV3(\"service_1\",\n name=\"custom\",\n type=\"custom\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var service1 = new OpenStack.Identity.ServiceV3(\"service_1\", new()\n {\n Name = \"custom\",\n Type = \"custom\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/identity\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := identity.NewServiceV3(ctx, \"service_1\", \u0026identity.ServiceV3Args{\n\t\t\tName: pulumi.String(\"custom\"),\n\t\t\tType: pulumi.String(\"custom\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.identity.ServiceV3;\nimport com.pulumi.openstack.identity.ServiceV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var service1 = new ServiceV3(\"service1\", ServiceV3Args.builder() \n .name(\"custom\")\n .type(\"custom\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n service1:\n type: openstack:identity:ServiceV3\n name: service_1\n properties:\n name: custom\n type: custom\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nServices can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import openstack:identity/serviceV3:ServiceV3 service_1 6688e967-158a-496f-a224-cae3414e6b61\n```\n", "properties": { "description": { "type": "string", @@ -9783,7 +9645,7 @@ } }, "openstack:identity/user:User": { - "description": "Manages a V3 User resource within OpenStack Keystone.\n\n\u003e **Note:** All arguments including the user password will be stored in the\nraw state as plain-text. Read more about sensitive data in\nstate.\n\n\u003e **Note:** You _must_ have admin privileges in your OpenStack cloud to use\nthis resource.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst project1 = new openstack.identity.Project(\"project_1\", {name: \"project_1\"});\nconst user1 = new openstack.identity.User(\"user_1\", {\n defaultProjectId: project1.id,\n name: \"user_1\",\n description: \"A user\",\n password: \"password123\",\n ignoreChangePasswordUponFirstUse: true,\n multiFactorAuthEnabled: true,\n multiFactorAuthRules: [\n {\n rules: [\n \"password\",\n \"totp\",\n ],\n },\n {\n rules: [\"password\"],\n },\n ],\n extra: {\n email: \"user_1@foobar.com\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nproject1 = openstack.identity.Project(\"project_1\", name=\"project_1\")\nuser1 = openstack.identity.User(\"user_1\",\n default_project_id=project1.id,\n name=\"user_1\",\n description=\"A user\",\n password=\"password123\",\n ignore_change_password_upon_first_use=True,\n multi_factor_auth_enabled=True,\n multi_factor_auth_rules=[\n openstack.identity.UserMultiFactorAuthRuleArgs(\n rules=[\n \"password\",\n \"totp\",\n ],\n ),\n openstack.identity.UserMultiFactorAuthRuleArgs(\n rules=[\"password\"],\n ),\n ],\n extra={\n \"email\": \"user_1@foobar.com\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var project1 = new OpenStack.Identity.Project(\"project_1\", new()\n {\n Name = \"project_1\",\n });\n\n var user1 = new OpenStack.Identity.User(\"user_1\", new()\n {\n DefaultProjectId = project1.Id,\n Name = \"user_1\",\n Description = \"A user\",\n Password = \"password123\",\n IgnoreChangePasswordUponFirstUse = true,\n MultiFactorAuthEnabled = true,\n MultiFactorAuthRules = new[]\n {\n new OpenStack.Identity.Inputs.UserMultiFactorAuthRuleArgs\n {\n Rules = new[]\n {\n \"password\",\n \"totp\",\n },\n },\n new OpenStack.Identity.Inputs.UserMultiFactorAuthRuleArgs\n {\n Rules = new[]\n {\n \"password\",\n },\n },\n },\n Extra = \n {\n { \"email\", \"user_1@foobar.com\" },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/identity\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tproject1, err := identity.NewProject(ctx, \"project_1\", \u0026identity.ProjectArgs{\n\t\t\tName: pulumi.String(\"project_1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = identity.NewUser(ctx, \"user_1\", \u0026identity.UserArgs{\n\t\t\tDefaultProjectId: project1.ID(),\n\t\t\tName: pulumi.String(\"user_1\"),\n\t\t\tDescription: pulumi.String(\"A user\"),\n\t\t\tPassword: pulumi.String(\"password123\"),\n\t\t\tIgnoreChangePasswordUponFirstUse: pulumi.Bool(true),\n\t\t\tMultiFactorAuthEnabled: pulumi.Bool(true),\n\t\t\tMultiFactorAuthRules: identity.UserMultiFactorAuthRuleArray{\n\t\t\t\t\u0026identity.UserMultiFactorAuthRuleArgs{\n\t\t\t\t\tRules: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"password\"),\n\t\t\t\t\t\tpulumi.String(\"totp\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026identity.UserMultiFactorAuthRuleArgs{\n\t\t\t\t\tRules: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"password\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tExtra: pulumi.Map{\n\t\t\t\t\"email\": pulumi.Any(\"user_1@foobar.com\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.identity.Project;\nimport com.pulumi.openstack.identity.ProjectArgs;\nimport com.pulumi.openstack.identity.User;\nimport com.pulumi.openstack.identity.UserArgs;\nimport com.pulumi.openstack.identity.inputs.UserMultiFactorAuthRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var project1 = new Project(\"project1\", ProjectArgs.builder() \n .name(\"project_1\")\n .build());\n\n var user1 = new User(\"user1\", UserArgs.builder() \n .defaultProjectId(project1.id())\n .name(\"user_1\")\n .description(\"A user\")\n .password(\"password123\")\n .ignoreChangePasswordUponFirstUse(true)\n .multiFactorAuthEnabled(true)\n .multiFactorAuthRules( \n UserMultiFactorAuthRuleArgs.builder()\n .rules( \n \"password\",\n \"totp\")\n .build(),\n UserMultiFactorAuthRuleArgs.builder()\n .rules(\"password\")\n .build())\n .extra(Map.of(\"email\", \"user_1@foobar.com\"))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n project1:\n type: openstack:identity:Project\n name: project_1\n properties:\n name: project_1\n user1:\n type: openstack:identity:User\n name: user_1\n properties:\n defaultProjectId: ${project1.id}\n name: user_1\n description: A user\n password: password123\n ignoreChangePasswordUponFirstUse: true\n multiFactorAuthEnabled: true\n multiFactorAuthRules:\n - rules:\n - password\n - totp\n - rules:\n - password\n extra:\n email: user_1@foobar.com\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsers can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import openstack:identity/user:User user_1 89c60255-9bd6-460c-822a-e2b959ede9d2\n```\n", + "description": "Manages a V3 User resource within OpenStack Keystone.\n\n\u003e **Note:** All arguments including the user password will be stored in the\nraw state as plain-text. Read more about sensitive data in\nstate.\n\n\u003e **Note:** You _must_ have admin privileges in your OpenStack cloud to use\nthis resource.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst project1 = new openstack.identity.Project(\"project_1\", {name: \"project_1\"});\nconst user1 = new openstack.identity.User(\"user_1\", {\n defaultProjectId: project1.id,\n name: \"user_1\",\n description: \"A user\",\n password: \"password123\",\n ignoreChangePasswordUponFirstUse: true,\n multiFactorAuthEnabled: true,\n multiFactorAuthRules: [\n {\n rules: [\n \"password\",\n \"totp\",\n ],\n },\n {\n rules: [\"password\"],\n },\n ],\n extra: {\n email: \"user_1@foobar.com\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nproject1 = openstack.identity.Project(\"project_1\", name=\"project_1\")\nuser1 = openstack.identity.User(\"user_1\",\n default_project_id=project1.id,\n name=\"user_1\",\n description=\"A user\",\n password=\"password123\",\n ignore_change_password_upon_first_use=True,\n multi_factor_auth_enabled=True,\n multi_factor_auth_rules=[\n openstack.identity.UserMultiFactorAuthRuleArgs(\n rules=[\n \"password\",\n \"totp\",\n ],\n ),\n openstack.identity.UserMultiFactorAuthRuleArgs(\n rules=[\"password\"],\n ),\n ],\n extra={\n \"email\": \"user_1@foobar.com\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var project1 = new OpenStack.Identity.Project(\"project_1\", new()\n {\n Name = \"project_1\",\n });\n\n var user1 = new OpenStack.Identity.User(\"user_1\", new()\n {\n DefaultProjectId = project1.Id,\n Name = \"user_1\",\n Description = \"A user\",\n Password = \"password123\",\n IgnoreChangePasswordUponFirstUse = true,\n MultiFactorAuthEnabled = true,\n MultiFactorAuthRules = new[]\n {\n new OpenStack.Identity.Inputs.UserMultiFactorAuthRuleArgs\n {\n Rules = new[]\n {\n \"password\",\n \"totp\",\n },\n },\n new OpenStack.Identity.Inputs.UserMultiFactorAuthRuleArgs\n {\n Rules = new[]\n {\n \"password\",\n },\n },\n },\n Extra = \n {\n { \"email\", \"user_1@foobar.com\" },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/identity\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tproject1, err := identity.NewProject(ctx, \"project_1\", \u0026identity.ProjectArgs{\n\t\t\tName: pulumi.String(\"project_1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = identity.NewUser(ctx, \"user_1\", \u0026identity.UserArgs{\n\t\t\tDefaultProjectId: project1.ID(),\n\t\t\tName: pulumi.String(\"user_1\"),\n\t\t\tDescription: pulumi.String(\"A user\"),\n\t\t\tPassword: pulumi.String(\"password123\"),\n\t\t\tIgnoreChangePasswordUponFirstUse: pulumi.Bool(true),\n\t\t\tMultiFactorAuthEnabled: pulumi.Bool(true),\n\t\t\tMultiFactorAuthRules: identity.UserMultiFactorAuthRuleArray{\n\t\t\t\t\u0026identity.UserMultiFactorAuthRuleArgs{\n\t\t\t\t\tRules: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"password\"),\n\t\t\t\t\t\tpulumi.String(\"totp\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026identity.UserMultiFactorAuthRuleArgs{\n\t\t\t\t\tRules: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"password\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tExtra: pulumi.Map{\n\t\t\t\t\"email\": pulumi.Any(\"user_1@foobar.com\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.identity.Project;\nimport com.pulumi.openstack.identity.ProjectArgs;\nimport com.pulumi.openstack.identity.User;\nimport com.pulumi.openstack.identity.UserArgs;\nimport com.pulumi.openstack.identity.inputs.UserMultiFactorAuthRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var project1 = new Project(\"project1\", ProjectArgs.builder() \n .name(\"project_1\")\n .build());\n\n var user1 = new User(\"user1\", UserArgs.builder() \n .defaultProjectId(project1.id())\n .name(\"user_1\")\n .description(\"A user\")\n .password(\"password123\")\n .ignoreChangePasswordUponFirstUse(true)\n .multiFactorAuthEnabled(true)\n .multiFactorAuthRules( \n UserMultiFactorAuthRuleArgs.builder()\n .rules( \n \"password\",\n \"totp\")\n .build(),\n UserMultiFactorAuthRuleArgs.builder()\n .rules(\"password\")\n .build())\n .extra(Map.of(\"email\", \"user_1@foobar.com\"))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n project1:\n type: openstack:identity:Project\n name: project_1\n properties:\n name: project_1\n user1:\n type: openstack:identity:User\n name: user_1\n properties:\n defaultProjectId: ${project1.id}\n name: user_1\n description: A user\n password: password123\n ignoreChangePasswordUponFirstUse: true\n multiFactorAuthEnabled: true\n multiFactorAuthRules:\n - rules:\n - password\n - totp\n - rules:\n - password\n extra:\n email: user_1@foobar.com\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsers can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import openstack:identity/user:User user_1 89c60255-9bd6-460c-822a-e2b959ede9d2\n```\n", "properties": { "defaultProjectId": { "type": "string", @@ -9981,7 +9843,7 @@ } }, "openstack:identity/userMembershipV3:UserMembershipV3": { - "description": "Manages a user membership to group V3 resource within OpenStack.\n\n\u003e **Note:** You _must_ have admin privileges in your OpenStack cloud to use\nthis resource.\n\n---\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst project1 = new openstack.identity.Project(\"project_1\", {name: \"project_1\"});\nconst user1 = new openstack.identity.User(\"user_1\", {\n name: \"user_1\",\n defaultProjectId: project1.id,\n});\nconst group1 = new openstack.identity.GroupV3(\"group_1\", {\n name: \"group_1\",\n description: \"group 1\",\n});\nconst role1 = new openstack.identity.Role(\"role_1\", {name: \"role_1\"});\nconst userMembership1 = new openstack.identity.UserMembershipV3(\"user_membership_1\", {\n userId: user1.id,\n groupId: group1.id,\n});\nconst roleAssignment1 = new openstack.identity.RoleAssignment(\"role_assignment_1\", {\n groupId: group1.id,\n projectId: project1.id,\n roleId: role1.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nproject1 = openstack.identity.Project(\"project_1\", name=\"project_1\")\nuser1 = openstack.identity.User(\"user_1\",\n name=\"user_1\",\n default_project_id=project1.id)\ngroup1 = openstack.identity.GroupV3(\"group_1\",\n name=\"group_1\",\n description=\"group 1\")\nrole1 = openstack.identity.Role(\"role_1\", name=\"role_1\")\nuser_membership1 = openstack.identity.UserMembershipV3(\"user_membership_1\",\n user_id=user1.id,\n group_id=group1.id)\nrole_assignment1 = openstack.identity.RoleAssignment(\"role_assignment_1\",\n group_id=group1.id,\n project_id=project1.id,\n role_id=role1.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var project1 = new OpenStack.Identity.Project(\"project_1\", new()\n {\n Name = \"project_1\",\n });\n\n var user1 = new OpenStack.Identity.User(\"user_1\", new()\n {\n Name = \"user_1\",\n DefaultProjectId = project1.Id,\n });\n\n var group1 = new OpenStack.Identity.GroupV3(\"group_1\", new()\n {\n Name = \"group_1\",\n Description = \"group 1\",\n });\n\n var role1 = new OpenStack.Identity.Role(\"role_1\", new()\n {\n Name = \"role_1\",\n });\n\n var userMembership1 = new OpenStack.Identity.UserMembershipV3(\"user_membership_1\", new()\n {\n UserId = user1.Id,\n GroupId = group1.Id,\n });\n\n var roleAssignment1 = new OpenStack.Identity.RoleAssignment(\"role_assignment_1\", new()\n {\n GroupId = group1.Id,\n ProjectId = project1.Id,\n RoleId = role1.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/identity\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tproject1, err := identity.NewProject(ctx, \"project_1\", \u0026identity.ProjectArgs{\n\t\t\tName: pulumi.String(\"project_1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tuser1, err := identity.NewUser(ctx, \"user_1\", \u0026identity.UserArgs{\n\t\t\tName: pulumi.String(\"user_1\"),\n\t\t\tDefaultProjectId: project1.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tgroup1, err := identity.NewGroupV3(ctx, \"group_1\", \u0026identity.GroupV3Args{\n\t\t\tName: pulumi.String(\"group_1\"),\n\t\t\tDescription: pulumi.String(\"group 1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\trole1, err := identity.NewRole(ctx, \"role_1\", \u0026identity.RoleArgs{\n\t\t\tName: pulumi.String(\"role_1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = identity.NewUserMembershipV3(ctx, \"user_membership_1\", \u0026identity.UserMembershipV3Args{\n\t\t\tUserId: user1.ID(),\n\t\t\tGroupId: group1.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = identity.NewRoleAssignment(ctx, \"role_assignment_1\", \u0026identity.RoleAssignmentArgs{\n\t\t\tGroupId: group1.ID(),\n\t\t\tProjectId: project1.ID(),\n\t\t\tRoleId: role1.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.identity.Project;\nimport com.pulumi.openstack.identity.ProjectArgs;\nimport com.pulumi.openstack.identity.User;\nimport com.pulumi.openstack.identity.UserArgs;\nimport com.pulumi.openstack.identity.GroupV3;\nimport com.pulumi.openstack.identity.GroupV3Args;\nimport com.pulumi.openstack.identity.Role;\nimport com.pulumi.openstack.identity.RoleArgs;\nimport com.pulumi.openstack.identity.UserMembershipV3;\nimport com.pulumi.openstack.identity.UserMembershipV3Args;\nimport com.pulumi.openstack.identity.RoleAssignment;\nimport com.pulumi.openstack.identity.RoleAssignmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var project1 = new Project(\"project1\", ProjectArgs.builder() \n .name(\"project_1\")\n .build());\n\n var user1 = new User(\"user1\", UserArgs.builder() \n .name(\"user_1\")\n .defaultProjectId(project1.id())\n .build());\n\n var group1 = new GroupV3(\"group1\", GroupV3Args.builder() \n .name(\"group_1\")\n .description(\"group 1\")\n .build());\n\n var role1 = new Role(\"role1\", RoleArgs.builder() \n .name(\"role_1\")\n .build());\n\n var userMembership1 = new UserMembershipV3(\"userMembership1\", UserMembershipV3Args.builder() \n .userId(user1.id())\n .groupId(group1.id())\n .build());\n\n var roleAssignment1 = new RoleAssignment(\"roleAssignment1\", RoleAssignmentArgs.builder() \n .groupId(group1.id())\n .projectId(project1.id())\n .roleId(role1.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n project1:\n type: openstack:identity:Project\n name: project_1\n properties:\n name: project_1\n user1:\n type: openstack:identity:User\n name: user_1\n properties:\n name: user_1\n defaultProjectId: ${project1.id}\n group1:\n type: openstack:identity:GroupV3\n name: group_1\n properties:\n name: group_1\n description: group 1\n role1:\n type: openstack:identity:Role\n name: role_1\n properties:\n name: role_1\n userMembership1:\n type: openstack:identity:UserMembershipV3\n name: user_membership_1\n properties:\n userId: ${user1.id}\n groupId: ${group1.id}\n roleAssignment1:\n type: openstack:identity:RoleAssignment\n name: role_assignment_1\n properties:\n groupId: ${group1.id}\n projectId: ${project1.id}\n roleId: ${role1.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThis resource can be imported by specifying all two arguments, separated\nby a forward slash:\n\n```sh\n$ pulumi import openstack:identity/userMembershipV3:UserMembershipV3 user_membership_1 user_id/group_id\n```\n", + "description": "Manages a user membership to group V3 resource within OpenStack.\n\n\u003e **Note:** You _must_ have admin privileges in your OpenStack cloud to use\nthis resource.\n\n---\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst project1 = new openstack.identity.Project(\"project_1\", {name: \"project_1\"});\nconst user1 = new openstack.identity.User(\"user_1\", {\n name: \"user_1\",\n defaultProjectId: project1.id,\n});\nconst group1 = new openstack.identity.GroupV3(\"group_1\", {\n name: \"group_1\",\n description: \"group 1\",\n});\nconst role1 = new openstack.identity.Role(\"role_1\", {name: \"role_1\"});\nconst userMembership1 = new openstack.identity.UserMembershipV3(\"user_membership_1\", {\n userId: user1.id,\n groupId: group1.id,\n});\nconst roleAssignment1 = new openstack.identity.RoleAssignment(\"role_assignment_1\", {\n groupId: group1.id,\n projectId: project1.id,\n roleId: role1.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nproject1 = openstack.identity.Project(\"project_1\", name=\"project_1\")\nuser1 = openstack.identity.User(\"user_1\",\n name=\"user_1\",\n default_project_id=project1.id)\ngroup1 = openstack.identity.GroupV3(\"group_1\",\n name=\"group_1\",\n description=\"group 1\")\nrole1 = openstack.identity.Role(\"role_1\", name=\"role_1\")\nuser_membership1 = openstack.identity.UserMembershipV3(\"user_membership_1\",\n user_id=user1.id,\n group_id=group1.id)\nrole_assignment1 = openstack.identity.RoleAssignment(\"role_assignment_1\",\n group_id=group1.id,\n project_id=project1.id,\n role_id=role1.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var project1 = new OpenStack.Identity.Project(\"project_1\", new()\n {\n Name = \"project_1\",\n });\n\n var user1 = new OpenStack.Identity.User(\"user_1\", new()\n {\n Name = \"user_1\",\n DefaultProjectId = project1.Id,\n });\n\n var group1 = new OpenStack.Identity.GroupV3(\"group_1\", new()\n {\n Name = \"group_1\",\n Description = \"group 1\",\n });\n\n var role1 = new OpenStack.Identity.Role(\"role_1\", new()\n {\n Name = \"role_1\",\n });\n\n var userMembership1 = new OpenStack.Identity.UserMembershipV3(\"user_membership_1\", new()\n {\n UserId = user1.Id,\n GroupId = group1.Id,\n });\n\n var roleAssignment1 = new OpenStack.Identity.RoleAssignment(\"role_assignment_1\", new()\n {\n GroupId = group1.Id,\n ProjectId = project1.Id,\n RoleId = role1.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/identity\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tproject1, err := identity.NewProject(ctx, \"project_1\", \u0026identity.ProjectArgs{\n\t\t\tName: pulumi.String(\"project_1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tuser1, err := identity.NewUser(ctx, \"user_1\", \u0026identity.UserArgs{\n\t\t\tName: pulumi.String(\"user_1\"),\n\t\t\tDefaultProjectId: project1.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tgroup1, err := identity.NewGroupV3(ctx, \"group_1\", \u0026identity.GroupV3Args{\n\t\t\tName: pulumi.String(\"group_1\"),\n\t\t\tDescription: pulumi.String(\"group 1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\trole1, err := identity.NewRole(ctx, \"role_1\", \u0026identity.RoleArgs{\n\t\t\tName: pulumi.String(\"role_1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = identity.NewUserMembershipV3(ctx, \"user_membership_1\", \u0026identity.UserMembershipV3Args{\n\t\t\tUserId: user1.ID(),\n\t\t\tGroupId: group1.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = identity.NewRoleAssignment(ctx, \"role_assignment_1\", \u0026identity.RoleAssignmentArgs{\n\t\t\tGroupId: group1.ID(),\n\t\t\tProjectId: project1.ID(),\n\t\t\tRoleId: role1.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.identity.Project;\nimport com.pulumi.openstack.identity.ProjectArgs;\nimport com.pulumi.openstack.identity.User;\nimport com.pulumi.openstack.identity.UserArgs;\nimport com.pulumi.openstack.identity.GroupV3;\nimport com.pulumi.openstack.identity.GroupV3Args;\nimport com.pulumi.openstack.identity.Role;\nimport com.pulumi.openstack.identity.RoleArgs;\nimport com.pulumi.openstack.identity.UserMembershipV3;\nimport com.pulumi.openstack.identity.UserMembershipV3Args;\nimport com.pulumi.openstack.identity.RoleAssignment;\nimport com.pulumi.openstack.identity.RoleAssignmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var project1 = new Project(\"project1\", ProjectArgs.builder() \n .name(\"project_1\")\n .build());\n\n var user1 = new User(\"user1\", UserArgs.builder() \n .name(\"user_1\")\n .defaultProjectId(project1.id())\n .build());\n\n var group1 = new GroupV3(\"group1\", GroupV3Args.builder() \n .name(\"group_1\")\n .description(\"group 1\")\n .build());\n\n var role1 = new Role(\"role1\", RoleArgs.builder() \n .name(\"role_1\")\n .build());\n\n var userMembership1 = new UserMembershipV3(\"userMembership1\", UserMembershipV3Args.builder() \n .userId(user1.id())\n .groupId(group1.id())\n .build());\n\n var roleAssignment1 = new RoleAssignment(\"roleAssignment1\", RoleAssignmentArgs.builder() \n .groupId(group1.id())\n .projectId(project1.id())\n .roleId(role1.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n project1:\n type: openstack:identity:Project\n name: project_1\n properties:\n name: project_1\n user1:\n type: openstack:identity:User\n name: user_1\n properties:\n name: user_1\n defaultProjectId: ${project1.id}\n group1:\n type: openstack:identity:GroupV3\n name: group_1\n properties:\n name: group_1\n description: group 1\n role1:\n type: openstack:identity:Role\n name: role_1\n properties:\n name: role_1\n userMembership1:\n type: openstack:identity:UserMembershipV3\n name: user_membership_1\n properties:\n userId: ${user1.id}\n groupId: ${group1.id}\n roleAssignment1:\n type: openstack:identity:RoleAssignment\n name: role_assignment_1\n properties:\n groupId: ${group1.id}\n projectId: ${project1.id}\n roleId: ${role1.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThis resource can be imported by specifying all two arguments, separated\nby a forward slash:\n\n```sh\n$ pulumi import openstack:identity/userMembershipV3:UserMembershipV3 user_membership_1 user_id/group_id\n```\n", "properties": { "groupId": { "type": "string", @@ -10045,7 +9907,7 @@ } }, "openstack:images/image:Image": { - "description": "Manages a V2 Image resource within OpenStack Glance.\n\n\u003e **Note:** All arguments including the source image URL password will be\nstored in the raw state as plain-text. Read more about sensitive data in\nstate.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst rancheros = new openstack.images.Image(\"rancheros\", {\n name: \"RancherOS\",\n imageSourceUrl: \"https://releases.rancher.com/os/latest/rancheros-openstack.img\",\n containerFormat: \"bare\",\n diskFormat: \"qcow2\",\n properties: {\n key: \"value\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nrancheros = openstack.images.Image(\"rancheros\",\n name=\"RancherOS\",\n image_source_url=\"https://releases.rancher.com/os/latest/rancheros-openstack.img\",\n container_format=\"bare\",\n disk_format=\"qcow2\",\n properties={\n \"key\": \"value\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var rancheros = new OpenStack.Images.Image(\"rancheros\", new()\n {\n Name = \"RancherOS\",\n ImageSourceUrl = \"https://releases.rancher.com/os/latest/rancheros-openstack.img\",\n ContainerFormat = \"bare\",\n DiskFormat = \"qcow2\",\n Properties = \n {\n { \"key\", \"value\" },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/images\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := images.NewImage(ctx, \"rancheros\", \u0026images.ImageArgs{\n\t\t\tName: pulumi.String(\"RancherOS\"),\n\t\t\tImageSourceUrl: pulumi.String(\"https://releases.rancher.com/os/latest/rancheros-openstack.img\"),\n\t\t\tContainerFormat: pulumi.String(\"bare\"),\n\t\t\tDiskFormat: pulumi.String(\"qcow2\"),\n\t\t\tProperties: pulumi.Map{\n\t\t\t\t\"key\": pulumi.Any(\"value\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.images.Image;\nimport com.pulumi.openstack.images.ImageArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var rancheros = new Image(\"rancheros\", ImageArgs.builder() \n .name(\"RancherOS\")\n .imageSourceUrl(\"https://releases.rancher.com/os/latest/rancheros-openstack.img\")\n .containerFormat(\"bare\")\n .diskFormat(\"qcow2\")\n .properties(Map.of(\"key\", \"value\"))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n rancheros:\n type: openstack:images:Image\n properties:\n name: RancherOS\n imageSourceUrl: https://releases.rancher.com/os/latest/rancheros-openstack.img\n containerFormat: bare\n diskFormat: qcow2\n properties:\n key: value\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Notes\n\n### Properties\n\nThis resource supports the ability to add properties to a resource during\ncreation as well as add, update, and delete properties during an update of this\nresource.\n\nNewer versions of OpenStack are adding some read-only properties to each image.\nThese properties start with the prefix `os_`. If these properties are detected,\nthis resource will automatically reconcile these with the user-provided\nproperties.\n\nIn addition, the `direct_url` and `stores` properties are also automatically reconciled if the\nImage Service set it.\n\n## Import\n\nImages can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import openstack:images/image:Image rancheros 89c60255-9bd6-460c-822a-e2b959ede9d2\n```\n", + "description": "Manages a V2 Image resource within OpenStack Glance.\n\n\u003e **Note:** All arguments including the source image URL password will be\nstored in the raw state as plain-text. Read more about sensitive data in\nstate.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst rancheros = new openstack.images.Image(\"rancheros\", {\n name: \"RancherOS\",\n imageSourceUrl: \"https://releases.rancher.com/os/latest/rancheros-openstack.img\",\n containerFormat: \"bare\",\n diskFormat: \"qcow2\",\n properties: {\n key: \"value\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nrancheros = openstack.images.Image(\"rancheros\",\n name=\"RancherOS\",\n image_source_url=\"https://releases.rancher.com/os/latest/rancheros-openstack.img\",\n container_format=\"bare\",\n disk_format=\"qcow2\",\n properties={\n \"key\": \"value\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var rancheros = new OpenStack.Images.Image(\"rancheros\", new()\n {\n Name = \"RancherOS\",\n ImageSourceUrl = \"https://releases.rancher.com/os/latest/rancheros-openstack.img\",\n ContainerFormat = \"bare\",\n DiskFormat = \"qcow2\",\n Properties = \n {\n { \"key\", \"value\" },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/images\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := images.NewImage(ctx, \"rancheros\", \u0026images.ImageArgs{\n\t\t\tName: pulumi.String(\"RancherOS\"),\n\t\t\tImageSourceUrl: pulumi.String(\"https://releases.rancher.com/os/latest/rancheros-openstack.img\"),\n\t\t\tContainerFormat: pulumi.String(\"bare\"),\n\t\t\tDiskFormat: pulumi.String(\"qcow2\"),\n\t\t\tProperties: pulumi.Map{\n\t\t\t\t\"key\": pulumi.Any(\"value\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.images.Image;\nimport com.pulumi.openstack.images.ImageArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var rancheros = new Image(\"rancheros\", ImageArgs.builder() \n .name(\"RancherOS\")\n .imageSourceUrl(\"https://releases.rancher.com/os/latest/rancheros-openstack.img\")\n .containerFormat(\"bare\")\n .diskFormat(\"qcow2\")\n .properties(Map.of(\"key\", \"value\"))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n rancheros:\n type: openstack:images:Image\n properties:\n name: RancherOS\n imageSourceUrl: https://releases.rancher.com/os/latest/rancheros-openstack.img\n containerFormat: bare\n diskFormat: qcow2\n properties:\n key: value\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Notes\n\n### Properties\n\nThis resource supports the ability to add properties to a resource during\ncreation as well as add, update, and delete properties during an update of this\nresource.\n\nNewer versions of OpenStack are adding some read-only properties to each image.\nThese properties start with the prefix `os_`. If these properties are detected,\nthis resource will automatically reconcile these with the user-provided\nproperties.\n\nIn addition, the `direct_url` and `stores` properties are also automatically reconciled if the\nImage Service set it.\n\n## Import\n\nImages can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import openstack:images/image:Image rancheros 89c60255-9bd6-460c-822a-e2b959ede9d2\n```\n", "properties": { "checksum": { "type": "string", @@ -10156,11 +10018,6 @@ }, "description": "The tags of the image. It must be a list of strings.\nAt this time, it is not possible to delete all tags of an image.\n" }, - "updateAt": { - "type": "string", - "description": "(**Deprecated** - use `updated_at` instead)\n", - "deprecationMessage": "Use updated_at instead" - }, "updatedAt": { "type": "string", "description": "The date the image was last updated.\n" @@ -10193,7 +10050,6 @@ "schema", "sizeBytes", "status", - "updateAt", "updatedAt" ], "inputProperties": { @@ -10414,11 +10270,6 @@ }, "description": "The tags of the image. It must be a list of strings.\nAt this time, it is not possible to delete all tags of an image.\n" }, - "updateAt": { - "type": "string", - "description": "(**Deprecated** - use `updated_at` instead)\n", - "deprecationMessage": "Use updated_at instead" - }, "updatedAt": { "type": "string", "description": "The date the image was last updated.\n" @@ -10440,7 +10291,7 @@ } }, "openstack:images/imageAccess:ImageAccess": { - "description": "Manages members for the shared OpenStack Glance V2 Image within the source\nproject, which owns the Image.\n\n## Example Usage\n\n### Unprivileged user\n\nCreate a shared image and propose a membership to the\n`bed6b6cbb86a4e2d8dc2735c2f1000e4` project ID.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst rancheros = new openstack.images.Image(\"rancheros\", {\n name: \"RancherOS\",\n imageSourceUrl: \"https://releases.rancher.com/os/latest/rancheros-openstack.img\",\n containerFormat: \"bare\",\n diskFormat: \"qcow2\",\n visibility: \"shared\",\n properties: {\n key: \"value\",\n },\n});\nconst rancherosMember = new openstack.images.ImageAccess(\"rancheros_member\", {\n imageId: rancheros.id,\n memberId: \"bed6b6cbb86a4e2d8dc2735c2f1000e4\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nrancheros = openstack.images.Image(\"rancheros\",\n name=\"RancherOS\",\n image_source_url=\"https://releases.rancher.com/os/latest/rancheros-openstack.img\",\n container_format=\"bare\",\n disk_format=\"qcow2\",\n visibility=\"shared\",\n properties={\n \"key\": \"value\",\n })\nrancheros_member = openstack.images.ImageAccess(\"rancheros_member\",\n image_id=rancheros.id,\n member_id=\"bed6b6cbb86a4e2d8dc2735c2f1000e4\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var rancheros = new OpenStack.Images.Image(\"rancheros\", new()\n {\n Name = \"RancherOS\",\n ImageSourceUrl = \"https://releases.rancher.com/os/latest/rancheros-openstack.img\",\n ContainerFormat = \"bare\",\n DiskFormat = \"qcow2\",\n Visibility = \"shared\",\n Properties = \n {\n { \"key\", \"value\" },\n },\n });\n\n var rancherosMember = new OpenStack.Images.ImageAccess(\"rancheros_member\", new()\n {\n ImageId = rancheros.Id,\n MemberId = \"bed6b6cbb86a4e2d8dc2735c2f1000e4\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/images\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\trancheros, err := images.NewImage(ctx, \"rancheros\", \u0026images.ImageArgs{\n\t\t\tName: pulumi.String(\"RancherOS\"),\n\t\t\tImageSourceUrl: pulumi.String(\"https://releases.rancher.com/os/latest/rancheros-openstack.img\"),\n\t\t\tContainerFormat: pulumi.String(\"bare\"),\n\t\t\tDiskFormat: pulumi.String(\"qcow2\"),\n\t\t\tVisibility: pulumi.String(\"shared\"),\n\t\t\tProperties: pulumi.Map{\n\t\t\t\t\"key\": pulumi.Any(\"value\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = images.NewImageAccess(ctx, \"rancheros_member\", \u0026images.ImageAccessArgs{\n\t\t\tImageId: rancheros.ID(),\n\t\t\tMemberId: pulumi.String(\"bed6b6cbb86a4e2d8dc2735c2f1000e4\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.images.Image;\nimport com.pulumi.openstack.images.ImageArgs;\nimport com.pulumi.openstack.images.ImageAccess;\nimport com.pulumi.openstack.images.ImageAccessArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var rancheros = new Image(\"rancheros\", ImageArgs.builder() \n .name(\"RancherOS\")\n .imageSourceUrl(\"https://releases.rancher.com/os/latest/rancheros-openstack.img\")\n .containerFormat(\"bare\")\n .diskFormat(\"qcow2\")\n .visibility(\"shared\")\n .properties(Map.of(\"key\", \"value\"))\n .build());\n\n var rancherosMember = new ImageAccess(\"rancherosMember\", ImageAccessArgs.builder() \n .imageId(rancheros.id())\n .memberId(\"bed6b6cbb86a4e2d8dc2735c2f1000e4\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n rancheros:\n type: openstack:images:Image\n properties:\n name: RancherOS\n imageSourceUrl: https://releases.rancher.com/os/latest/rancheros-openstack.img\n containerFormat: bare\n diskFormat: qcow2\n visibility: shared\n properties:\n key: value\n rancherosMember:\n type: openstack:images:ImageAccess\n name: rancheros_member\n properties:\n imageId: ${rancheros.id}\n memberId: bed6b6cbb86a4e2d8dc2735c2f1000e4\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Privileged user\n\nCreate a shared image and set a membership to the\n`bed6b6cbb86a4e2d8dc2735c2f1000e4` project ID.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst rancheros = new openstack.images.Image(\"rancheros\", {\n name: \"RancherOS\",\n imageSourceUrl: \"https://releases.rancher.com/os/latest/rancheros-openstack.img\",\n containerFormat: \"bare\",\n diskFormat: \"qcow2\",\n visibility: \"shared\",\n properties: {\n key: \"value\",\n },\n});\nconst rancherosMember = new openstack.images.ImageAccess(\"rancheros_member\", {\n imageId: rancheros.id,\n memberId: \"bed6b6cbb86a4e2d8dc2735c2f1000e4\",\n status: \"accepted\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nrancheros = openstack.images.Image(\"rancheros\",\n name=\"RancherOS\",\n image_source_url=\"https://releases.rancher.com/os/latest/rancheros-openstack.img\",\n container_format=\"bare\",\n disk_format=\"qcow2\",\n visibility=\"shared\",\n properties={\n \"key\": \"value\",\n })\nrancheros_member = openstack.images.ImageAccess(\"rancheros_member\",\n image_id=rancheros.id,\n member_id=\"bed6b6cbb86a4e2d8dc2735c2f1000e4\",\n status=\"accepted\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var rancheros = new OpenStack.Images.Image(\"rancheros\", new()\n {\n Name = \"RancherOS\",\n ImageSourceUrl = \"https://releases.rancher.com/os/latest/rancheros-openstack.img\",\n ContainerFormat = \"bare\",\n DiskFormat = \"qcow2\",\n Visibility = \"shared\",\n Properties = \n {\n { \"key\", \"value\" },\n },\n });\n\n var rancherosMember = new OpenStack.Images.ImageAccess(\"rancheros_member\", new()\n {\n ImageId = rancheros.Id,\n MemberId = \"bed6b6cbb86a4e2d8dc2735c2f1000e4\",\n Status = \"accepted\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/images\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\trancheros, err := images.NewImage(ctx, \"rancheros\", \u0026images.ImageArgs{\n\t\t\tName: pulumi.String(\"RancherOS\"),\n\t\t\tImageSourceUrl: pulumi.String(\"https://releases.rancher.com/os/latest/rancheros-openstack.img\"),\n\t\t\tContainerFormat: pulumi.String(\"bare\"),\n\t\t\tDiskFormat: pulumi.String(\"qcow2\"),\n\t\t\tVisibility: pulumi.String(\"shared\"),\n\t\t\tProperties: pulumi.Map{\n\t\t\t\t\"key\": pulumi.Any(\"value\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = images.NewImageAccess(ctx, \"rancheros_member\", \u0026images.ImageAccessArgs{\n\t\t\tImageId: rancheros.ID(),\n\t\t\tMemberId: pulumi.String(\"bed6b6cbb86a4e2d8dc2735c2f1000e4\"),\n\t\t\tStatus: pulumi.String(\"accepted\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.images.Image;\nimport com.pulumi.openstack.images.ImageArgs;\nimport com.pulumi.openstack.images.ImageAccess;\nimport com.pulumi.openstack.images.ImageAccessArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var rancheros = new Image(\"rancheros\", ImageArgs.builder() \n .name(\"RancherOS\")\n .imageSourceUrl(\"https://releases.rancher.com/os/latest/rancheros-openstack.img\")\n .containerFormat(\"bare\")\n .diskFormat(\"qcow2\")\n .visibility(\"shared\")\n .properties(Map.of(\"key\", \"value\"))\n .build());\n\n var rancherosMember = new ImageAccess(\"rancherosMember\", ImageAccessArgs.builder() \n .imageId(rancheros.id())\n .memberId(\"bed6b6cbb86a4e2d8dc2735c2f1000e4\")\n .status(\"accepted\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n rancheros:\n type: openstack:images:Image\n properties:\n name: RancherOS\n imageSourceUrl: https://releases.rancher.com/os/latest/rancheros-openstack.img\n containerFormat: bare\n diskFormat: qcow2\n visibility: shared\n properties:\n key: value\n rancherosMember:\n type: openstack:images:ImageAccess\n name: rancheros_member\n properties:\n imageId: ${rancheros.id}\n memberId: bed6b6cbb86a4e2d8dc2735c2f1000e4\n status: accepted\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nImage access can be imported using the `image_id` and the `member_id`,\n\nseparated by a slash, e.g.\n\n```sh\n$ pulumi import openstack:images/imageAccess:ImageAccess openstack_images_image_access_v2 89c60255-9bd6-460c-822a-e2b959ede9d2/bed6b6cbb86a4e2d8dc2735c2f1000e4\n```\n\n", + "description": "Manages members for the shared OpenStack Glance V2 Image within the source\nproject, which owns the Image.\n\n## Example Usage\n\n### Unprivileged user\n\nCreate a shared image and propose a membership to the\n`bed6b6cbb86a4e2d8dc2735c2f1000e4` project ID.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst rancheros = new openstack.images.Image(\"rancheros\", {\n name: \"RancherOS\",\n imageSourceUrl: \"https://releases.rancher.com/os/latest/rancheros-openstack.img\",\n containerFormat: \"bare\",\n diskFormat: \"qcow2\",\n visibility: \"shared\",\n properties: {\n key: \"value\",\n },\n});\nconst rancherosMember = new openstack.images.ImageAccess(\"rancheros_member\", {\n imageId: rancheros.id,\n memberId: \"bed6b6cbb86a4e2d8dc2735c2f1000e4\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nrancheros = openstack.images.Image(\"rancheros\",\n name=\"RancherOS\",\n image_source_url=\"https://releases.rancher.com/os/latest/rancheros-openstack.img\",\n container_format=\"bare\",\n disk_format=\"qcow2\",\n visibility=\"shared\",\n properties={\n \"key\": \"value\",\n })\nrancheros_member = openstack.images.ImageAccess(\"rancheros_member\",\n image_id=rancheros.id,\n member_id=\"bed6b6cbb86a4e2d8dc2735c2f1000e4\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var rancheros = new OpenStack.Images.Image(\"rancheros\", new()\n {\n Name = \"RancherOS\",\n ImageSourceUrl = \"https://releases.rancher.com/os/latest/rancheros-openstack.img\",\n ContainerFormat = \"bare\",\n DiskFormat = \"qcow2\",\n Visibility = \"shared\",\n Properties = \n {\n { \"key\", \"value\" },\n },\n });\n\n var rancherosMember = new OpenStack.Images.ImageAccess(\"rancheros_member\", new()\n {\n ImageId = rancheros.Id,\n MemberId = \"bed6b6cbb86a4e2d8dc2735c2f1000e4\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/images\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\trancheros, err := images.NewImage(ctx, \"rancheros\", \u0026images.ImageArgs{\n\t\t\tName: pulumi.String(\"RancherOS\"),\n\t\t\tImageSourceUrl: pulumi.String(\"https://releases.rancher.com/os/latest/rancheros-openstack.img\"),\n\t\t\tContainerFormat: pulumi.String(\"bare\"),\n\t\t\tDiskFormat: pulumi.String(\"qcow2\"),\n\t\t\tVisibility: pulumi.String(\"shared\"),\n\t\t\tProperties: pulumi.Map{\n\t\t\t\t\"key\": pulumi.Any(\"value\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = images.NewImageAccess(ctx, \"rancheros_member\", \u0026images.ImageAccessArgs{\n\t\t\tImageId: rancheros.ID(),\n\t\t\tMemberId: pulumi.String(\"bed6b6cbb86a4e2d8dc2735c2f1000e4\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.images.Image;\nimport com.pulumi.openstack.images.ImageArgs;\nimport com.pulumi.openstack.images.ImageAccess;\nimport com.pulumi.openstack.images.ImageAccessArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var rancheros = new Image(\"rancheros\", ImageArgs.builder() \n .name(\"RancherOS\")\n .imageSourceUrl(\"https://releases.rancher.com/os/latest/rancheros-openstack.img\")\n .containerFormat(\"bare\")\n .diskFormat(\"qcow2\")\n .visibility(\"shared\")\n .properties(Map.of(\"key\", \"value\"))\n .build());\n\n var rancherosMember = new ImageAccess(\"rancherosMember\", ImageAccessArgs.builder() \n .imageId(rancheros.id())\n .memberId(\"bed6b6cbb86a4e2d8dc2735c2f1000e4\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n rancheros:\n type: openstack:images:Image\n properties:\n name: RancherOS\n imageSourceUrl: https://releases.rancher.com/os/latest/rancheros-openstack.img\n containerFormat: bare\n diskFormat: qcow2\n visibility: shared\n properties:\n key: value\n rancherosMember:\n type: openstack:images:ImageAccess\n name: rancheros_member\n properties:\n imageId: ${rancheros.id}\n memberId: bed6b6cbb86a4e2d8dc2735c2f1000e4\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Privileged user\n\nCreate a shared image and set a membership to the\n`bed6b6cbb86a4e2d8dc2735c2f1000e4` project ID.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst rancheros = new openstack.images.Image(\"rancheros\", {\n name: \"RancherOS\",\n imageSourceUrl: \"https://releases.rancher.com/os/latest/rancheros-openstack.img\",\n containerFormat: \"bare\",\n diskFormat: \"qcow2\",\n visibility: \"shared\",\n properties: {\n key: \"value\",\n },\n});\nconst rancherosMember = new openstack.images.ImageAccess(\"rancheros_member\", {\n imageId: rancheros.id,\n memberId: \"bed6b6cbb86a4e2d8dc2735c2f1000e4\",\n status: \"accepted\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nrancheros = openstack.images.Image(\"rancheros\",\n name=\"RancherOS\",\n image_source_url=\"https://releases.rancher.com/os/latest/rancheros-openstack.img\",\n container_format=\"bare\",\n disk_format=\"qcow2\",\n visibility=\"shared\",\n properties={\n \"key\": \"value\",\n })\nrancheros_member = openstack.images.ImageAccess(\"rancheros_member\",\n image_id=rancheros.id,\n member_id=\"bed6b6cbb86a4e2d8dc2735c2f1000e4\",\n status=\"accepted\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var rancheros = new OpenStack.Images.Image(\"rancheros\", new()\n {\n Name = \"RancherOS\",\n ImageSourceUrl = \"https://releases.rancher.com/os/latest/rancheros-openstack.img\",\n ContainerFormat = \"bare\",\n DiskFormat = \"qcow2\",\n Visibility = \"shared\",\n Properties = \n {\n { \"key\", \"value\" },\n },\n });\n\n var rancherosMember = new OpenStack.Images.ImageAccess(\"rancheros_member\", new()\n {\n ImageId = rancheros.Id,\n MemberId = \"bed6b6cbb86a4e2d8dc2735c2f1000e4\",\n Status = \"accepted\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/images\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\trancheros, err := images.NewImage(ctx, \"rancheros\", \u0026images.ImageArgs{\n\t\t\tName: pulumi.String(\"RancherOS\"),\n\t\t\tImageSourceUrl: pulumi.String(\"https://releases.rancher.com/os/latest/rancheros-openstack.img\"),\n\t\t\tContainerFormat: pulumi.String(\"bare\"),\n\t\t\tDiskFormat: pulumi.String(\"qcow2\"),\n\t\t\tVisibility: pulumi.String(\"shared\"),\n\t\t\tProperties: pulumi.Map{\n\t\t\t\t\"key\": pulumi.Any(\"value\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = images.NewImageAccess(ctx, \"rancheros_member\", \u0026images.ImageAccessArgs{\n\t\t\tImageId: rancheros.ID(),\n\t\t\tMemberId: pulumi.String(\"bed6b6cbb86a4e2d8dc2735c2f1000e4\"),\n\t\t\tStatus: pulumi.String(\"accepted\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.images.Image;\nimport com.pulumi.openstack.images.ImageArgs;\nimport com.pulumi.openstack.images.ImageAccess;\nimport com.pulumi.openstack.images.ImageAccessArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var rancheros = new Image(\"rancheros\", ImageArgs.builder() \n .name(\"RancherOS\")\n .imageSourceUrl(\"https://releases.rancher.com/os/latest/rancheros-openstack.img\")\n .containerFormat(\"bare\")\n .diskFormat(\"qcow2\")\n .visibility(\"shared\")\n .properties(Map.of(\"key\", \"value\"))\n .build());\n\n var rancherosMember = new ImageAccess(\"rancherosMember\", ImageAccessArgs.builder() \n .imageId(rancheros.id())\n .memberId(\"bed6b6cbb86a4e2d8dc2735c2f1000e4\")\n .status(\"accepted\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n rancheros:\n type: openstack:images:Image\n properties:\n name: RancherOS\n imageSourceUrl: https://releases.rancher.com/os/latest/rancheros-openstack.img\n containerFormat: bare\n diskFormat: qcow2\n visibility: shared\n properties:\n key: value\n rancherosMember:\n type: openstack:images:ImageAccess\n name: rancheros_member\n properties:\n imageId: ${rancheros.id}\n memberId: bed6b6cbb86a4e2d8dc2735c2f1000e4\n status: accepted\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nImage access can be imported using the `image_id` and the `member_id`,\n\nseparated by a slash, e.g.\n\n```sh\n$ pulumi import openstack:images/imageAccess:ImageAccess openstack_images_image_access_v2 89c60255-9bd6-460c-822a-e2b959ede9d2/bed6b6cbb86a4e2d8dc2735c2f1000e4\n```\n\n", "properties": { "createdAt": { "type": "string", @@ -10544,7 +10395,7 @@ } }, "openstack:images/imageAccessAccept:ImageAccessAccept": { - "description": "Manages memberships status for the shared OpenStack Glance V2 Image within the\ndestination project, which has a member proposal.\n\n## Example Usage\n\nAccept a shared image membershipship proposal within the current project.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst rancheros = openstack.images.getImage({\n name: \"RancherOS\",\n visibility: \"shared\",\n memberStatus: \"all\",\n});\nconst rancherosMember = new openstack.images.ImageAccessAccept(\"rancheros_member\", {\n imageId: rancheros.then(rancheros =\u003e rancheros.id),\n status: \"accepted\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nrancheros = openstack.images.get_image(name=\"RancherOS\",\n visibility=\"shared\",\n member_status=\"all\")\nrancheros_member = openstack.images.ImageAccessAccept(\"rancheros_member\",\n image_id=rancheros.id,\n status=\"accepted\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var rancheros = OpenStack.Images.GetImage.Invoke(new()\n {\n Name = \"RancherOS\",\n Visibility = \"shared\",\n MemberStatus = \"all\",\n });\n\n var rancherosMember = new OpenStack.Images.ImageAccessAccept(\"rancheros_member\", new()\n {\n ImageId = rancheros.Apply(getImageResult =\u003e getImageResult.Id),\n Status = \"accepted\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/images\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\trancheros, err := images.LookupImage(ctx, \u0026images.LookupImageArgs{\n\t\t\tName: pulumi.StringRef(\"RancherOS\"),\n\t\t\tVisibility: pulumi.StringRef(\"shared\"),\n\t\t\tMemberStatus: pulumi.StringRef(\"all\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = images.NewImageAccessAccept(ctx, \"rancheros_member\", \u0026images.ImageAccessAcceptArgs{\n\t\t\tImageId: pulumi.String(rancheros.Id),\n\t\t\tStatus: pulumi.String(\"accepted\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.images.ImagesFunctions;\nimport com.pulumi.openstack.images.inputs.GetImageArgs;\nimport com.pulumi.openstack.images.ImageAccessAccept;\nimport com.pulumi.openstack.images.ImageAccessAcceptArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var rancheros = ImagesFunctions.getImage(GetImageArgs.builder()\n .name(\"RancherOS\")\n .visibility(\"shared\")\n .memberStatus(\"all\")\n .build());\n\n var rancherosMember = new ImageAccessAccept(\"rancherosMember\", ImageAccessAcceptArgs.builder() \n .imageId(rancheros.applyValue(getImageResult -\u003e getImageResult.id()))\n .status(\"accepted\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n rancherosMember:\n type: openstack:images:ImageAccessAccept\n name: rancheros_member\n properties:\n imageId: ${rancheros.id}\n status: accepted\nvariables:\n rancheros:\n fn::invoke:\n Function: openstack:images:getImage\n Arguments:\n name: RancherOS\n visibility: shared\n memberStatus: all\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nImage access acceptance status can be imported using the `image_id`, e.g.\n\n```sh\n$ pulumi import openstack:images/imageAccessAccept:ImageAccessAccept openstack_images_image_access_accept_v2 89c60255-9bd6-460c-822a-e2b959ede9d2\n```\n\n", + "description": "Manages memberships status for the shared OpenStack Glance V2 Image within the\ndestination project, which has a member proposal.\n\n## Example Usage\n\nAccept a shared image membershipship proposal within the current project.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst rancheros = openstack.images.getImage({\n name: \"RancherOS\",\n visibility: \"shared\",\n memberStatus: \"all\",\n});\nconst rancherosMember = new openstack.images.ImageAccessAccept(\"rancheros_member\", {\n imageId: rancheros.then(rancheros =\u003e rancheros.id),\n status: \"accepted\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nrancheros = openstack.images.get_image(name=\"RancherOS\",\n visibility=\"shared\",\n member_status=\"all\")\nrancheros_member = openstack.images.ImageAccessAccept(\"rancheros_member\",\n image_id=rancheros.id,\n status=\"accepted\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var rancheros = OpenStack.Images.GetImage.Invoke(new()\n {\n Name = \"RancherOS\",\n Visibility = \"shared\",\n MemberStatus = \"all\",\n });\n\n var rancherosMember = new OpenStack.Images.ImageAccessAccept(\"rancheros_member\", new()\n {\n ImageId = rancheros.Apply(getImageResult =\u003e getImageResult.Id),\n Status = \"accepted\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/images\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\trancheros, err := images.LookupImage(ctx, \u0026images.LookupImageArgs{\n\t\t\tName: pulumi.StringRef(\"RancherOS\"),\n\t\t\tVisibility: pulumi.StringRef(\"shared\"),\n\t\t\tMemberStatus: pulumi.StringRef(\"all\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = images.NewImageAccessAccept(ctx, \"rancheros_member\", \u0026images.ImageAccessAcceptArgs{\n\t\t\tImageId: pulumi.String(rancheros.Id),\n\t\t\tStatus: pulumi.String(\"accepted\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.images.ImagesFunctions;\nimport com.pulumi.openstack.images.inputs.GetImageArgs;\nimport com.pulumi.openstack.images.ImageAccessAccept;\nimport com.pulumi.openstack.images.ImageAccessAcceptArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var rancheros = ImagesFunctions.getImage(GetImageArgs.builder()\n .name(\"RancherOS\")\n .visibility(\"shared\")\n .memberStatus(\"all\")\n .build());\n\n var rancherosMember = new ImageAccessAccept(\"rancherosMember\", ImageAccessAcceptArgs.builder() \n .imageId(rancheros.applyValue(getImageResult -\u003e getImageResult.id()))\n .status(\"accepted\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n rancherosMember:\n type: openstack:images:ImageAccessAccept\n name: rancheros_member\n properties:\n imageId: ${rancheros.id}\n status: accepted\nvariables:\n rancheros:\n fn::invoke:\n Function: openstack:images:getImage\n Arguments:\n name: RancherOS\n visibility: shared\n memberStatus: all\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nImage access acceptance status can be imported using the `image_id`, e.g.\n\n```sh\n$ pulumi import openstack:images/imageAccessAccept:ImageAccessAccept openstack_images_image_access_accept_v2 89c60255-9bd6-460c-822a-e2b959ede9d2\n```\n\n", "properties": { "createdAt": { "type": "string", @@ -10648,7 +10499,7 @@ } }, "openstack:keymanager/containerV1:ContainerV1": { - "description": "Manages a V1 Barbican container resource within OpenStack.\n\n## Example Usage\n\n### Simple secret\n\nThe container with the TLS certificates, which can be used by the loadbalancer HTTPS listener.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\nimport * as std from \"@pulumi/std\";\n\nconst certificate1 = new openstack.keymanager.SecretV1(\"certificate_1\", {\n name: \"certificate\",\n payload: std.file({\n input: \"cert.pem\",\n }).then(invoke =\u003e invoke.result),\n secretType: \"certificate\",\n payloadContentType: \"text/plain\",\n});\nconst privateKey1 = new openstack.keymanager.SecretV1(\"private_key_1\", {\n name: \"private_key\",\n payload: std.file({\n input: \"cert-key.pem\",\n }).then(invoke =\u003e invoke.result),\n secretType: \"private\",\n payloadContentType: \"text/plain\",\n});\nconst intermediate1 = new openstack.keymanager.SecretV1(\"intermediate_1\", {\n name: \"intermediate\",\n payload: std.file({\n input: \"intermediate-ca.pem\",\n }).then(invoke =\u003e invoke.result),\n secretType: \"certificate\",\n payloadContentType: \"text/plain\",\n});\nconst tls1 = new openstack.keymanager.ContainerV1(\"tls_1\", {\n name: \"tls\",\n type: \"certificate\",\n secretRefs: [\n {\n name: \"certificate\",\n secretRef: certificate1.secretRef,\n },\n {\n name: \"private_key\",\n secretRef: privateKey1.secretRef,\n },\n {\n name: \"intermediates\",\n secretRef: intermediate1.secretRef,\n },\n ],\n});\nconst subnet1 = openstack.networking.getSubnet({\n name: \"my-subnet\",\n});\nconst lb1 = new openstack.loadbalancer.LoadBalancer(\"lb_1\", {\n name: \"loadbalancer\",\n vipSubnetId: subnet1.then(subnet1 =\u003e subnet1.id),\n});\nconst listener1 = new openstack.loadbalancer.Listener(\"listener_1\", {\n name: \"https\",\n protocol: \"TERMINATED_HTTPS\",\n protocolPort: 443,\n loadbalancerId: lb1.id,\n defaultTlsContainerRef: tls1.containerRef,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\nimport pulumi_std as std\n\ncertificate1 = openstack.keymanager.SecretV1(\"certificate_1\",\n name=\"certificate\",\n payload=std.file(input=\"cert.pem\").result,\n secret_type=\"certificate\",\n payload_content_type=\"text/plain\")\nprivate_key1 = openstack.keymanager.SecretV1(\"private_key_1\",\n name=\"private_key\",\n payload=std.file(input=\"cert-key.pem\").result,\n secret_type=\"private\",\n payload_content_type=\"text/plain\")\nintermediate1 = openstack.keymanager.SecretV1(\"intermediate_1\",\n name=\"intermediate\",\n payload=std.file(input=\"intermediate-ca.pem\").result,\n secret_type=\"certificate\",\n payload_content_type=\"text/plain\")\ntls1 = openstack.keymanager.ContainerV1(\"tls_1\",\n name=\"tls\",\n type=\"certificate\",\n secret_refs=[\n openstack.keymanager.ContainerV1SecretRefArgs(\n name=\"certificate\",\n secret_ref=certificate1.secret_ref,\n ),\n openstack.keymanager.ContainerV1SecretRefArgs(\n name=\"private_key\",\n secret_ref=private_key1.secret_ref,\n ),\n openstack.keymanager.ContainerV1SecretRefArgs(\n name=\"intermediates\",\n secret_ref=intermediate1.secret_ref,\n ),\n ])\nsubnet1 = openstack.networking.get_subnet(name=\"my-subnet\")\nlb1 = openstack.loadbalancer.LoadBalancer(\"lb_1\",\n name=\"loadbalancer\",\n vip_subnet_id=subnet1.id)\nlistener1 = openstack.loadbalancer.Listener(\"listener_1\",\n name=\"https\",\n protocol=\"TERMINATED_HTTPS\",\n protocol_port=443,\n loadbalancer_id=lb1.id,\n default_tls_container_ref=tls1.container_ref)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var certificate1 = new OpenStack.KeyManager.SecretV1(\"certificate_1\", new()\n {\n Name = \"certificate\",\n Payload = Std.File.Invoke(new()\n {\n Input = \"cert.pem\",\n }).Apply(invoke =\u003e invoke.Result),\n SecretType = \"certificate\",\n PayloadContentType = \"text/plain\",\n });\n\n var privateKey1 = new OpenStack.KeyManager.SecretV1(\"private_key_1\", new()\n {\n Name = \"private_key\",\n Payload = Std.File.Invoke(new()\n {\n Input = \"cert-key.pem\",\n }).Apply(invoke =\u003e invoke.Result),\n SecretType = \"private\",\n PayloadContentType = \"text/plain\",\n });\n\n var intermediate1 = new OpenStack.KeyManager.SecretV1(\"intermediate_1\", new()\n {\n Name = \"intermediate\",\n Payload = Std.File.Invoke(new()\n {\n Input = \"intermediate-ca.pem\",\n }).Apply(invoke =\u003e invoke.Result),\n SecretType = \"certificate\",\n PayloadContentType = \"text/plain\",\n });\n\n var tls1 = new OpenStack.KeyManager.ContainerV1(\"tls_1\", new()\n {\n Name = \"tls\",\n Type = \"certificate\",\n SecretRefs = new[]\n {\n new OpenStack.KeyManager.Inputs.ContainerV1SecretRefArgs\n {\n Name = \"certificate\",\n SecretRef = certificate1.SecretRef,\n },\n new OpenStack.KeyManager.Inputs.ContainerV1SecretRefArgs\n {\n Name = \"private_key\",\n SecretRef = privateKey1.SecretRef,\n },\n new OpenStack.KeyManager.Inputs.ContainerV1SecretRefArgs\n {\n Name = \"intermediates\",\n SecretRef = intermediate1.SecretRef,\n },\n },\n });\n\n var subnet1 = OpenStack.Networking.GetSubnet.Invoke(new()\n {\n Name = \"my-subnet\",\n });\n\n var lb1 = new OpenStack.LoadBalancer.LoadBalancer(\"lb_1\", new()\n {\n Name = \"loadbalancer\",\n VipSubnetId = subnet1.Apply(getSubnetResult =\u003e getSubnetResult.Id),\n });\n\n var listener1 = new OpenStack.LoadBalancer.Listener(\"listener_1\", new()\n {\n Name = \"https\",\n Protocol = \"TERMINATED_HTTPS\",\n ProtocolPort = 443,\n LoadbalancerId = lb1.Id,\n DefaultTlsContainerRef = tls1.ContainerRef,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/keymanager\"\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/loadbalancer\"\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tinvokeFile, err := std.File(ctx, \u0026std.FileArgs{\n\t\t\tInput: \"cert.pem\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcertificate1, err := keymanager.NewSecretV1(ctx, \"certificate_1\", \u0026keymanager.SecretV1Args{\n\t\t\tName: pulumi.String(\"certificate\"),\n\t\t\tPayload: invokeFile.Result,\n\t\t\tSecretType: pulumi.String(\"certificate\"),\n\t\t\tPayloadContentType: pulumi.String(\"text/plain\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFile1, err := std.File(ctx, \u0026std.FileArgs{\n\t\t\tInput: \"cert-key.pem\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tprivateKey1, err := keymanager.NewSecretV1(ctx, \"private_key_1\", \u0026keymanager.SecretV1Args{\n\t\t\tName: pulumi.String(\"private_key\"),\n\t\t\tPayload: invokeFile1.Result,\n\t\t\tSecretType: pulumi.String(\"private\"),\n\t\t\tPayloadContentType: pulumi.String(\"text/plain\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFile2, err := std.File(ctx, \u0026std.FileArgs{\n\t\t\tInput: \"intermediate-ca.pem\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tintermediate1, err := keymanager.NewSecretV1(ctx, \"intermediate_1\", \u0026keymanager.SecretV1Args{\n\t\t\tName: pulumi.String(\"intermediate\"),\n\t\t\tPayload: invokeFile2.Result,\n\t\t\tSecretType: pulumi.String(\"certificate\"),\n\t\t\tPayloadContentType: pulumi.String(\"text/plain\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttls1, err := keymanager.NewContainerV1(ctx, \"tls_1\", \u0026keymanager.ContainerV1Args{\n\t\t\tName: pulumi.String(\"tls\"),\n\t\t\tType: pulumi.String(\"certificate\"),\n\t\t\tSecretRefs: keymanager.ContainerV1SecretRefArray{\n\t\t\t\t\u0026keymanager.ContainerV1SecretRefArgs{\n\t\t\t\t\tName: pulumi.String(\"certificate\"),\n\t\t\t\t\tSecretRef: certificate1.SecretRef,\n\t\t\t\t},\n\t\t\t\t\u0026keymanager.ContainerV1SecretRefArgs{\n\t\t\t\t\tName: pulumi.String(\"private_key\"),\n\t\t\t\t\tSecretRef: privateKey1.SecretRef,\n\t\t\t\t},\n\t\t\t\t\u0026keymanager.ContainerV1SecretRefArgs{\n\t\t\t\t\tName: pulumi.String(\"intermediates\"),\n\t\t\t\t\tSecretRef: intermediate1.SecretRef,\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsubnet1, err := networking.LookupSubnet(ctx, \u0026networking.LookupSubnetArgs{\n\t\t\tName: pulumi.StringRef(\"my-subnet\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tlb1, err := loadbalancer.NewLoadBalancer(ctx, \"lb_1\", \u0026loadbalancer.LoadBalancerArgs{\n\t\t\tName: pulumi.String(\"loadbalancer\"),\n\t\t\tVipSubnetId: pulumi.String(subnet1.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = loadbalancer.NewListener(ctx, \"listener_1\", \u0026loadbalancer.ListenerArgs{\n\t\t\tName: pulumi.String(\"https\"),\n\t\t\tProtocol: pulumi.String(\"TERMINATED_HTTPS\"),\n\t\t\tProtocolPort: pulumi.Int(443),\n\t\t\tLoadbalancerId: lb1.ID(),\n\t\t\tDefaultTlsContainerRef: tls1.ContainerRef,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.keymanager.SecretV1;\nimport com.pulumi.openstack.keymanager.SecretV1Args;\nimport com.pulumi.openstack.keymanager.ContainerV1;\nimport com.pulumi.openstack.keymanager.ContainerV1Args;\nimport com.pulumi.openstack.keymanager.inputs.ContainerV1SecretRefArgs;\nimport com.pulumi.openstack.networking.NetworkingFunctions;\nimport com.pulumi.openstack.networking.inputs.GetSubnetArgs;\nimport com.pulumi.openstack.loadbalancer.LoadBalancer;\nimport com.pulumi.openstack.loadbalancer.LoadBalancerArgs;\nimport com.pulumi.openstack.loadbalancer.Listener;\nimport com.pulumi.openstack.loadbalancer.ListenerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var certificate1 = new SecretV1(\"certificate1\", SecretV1Args.builder() \n .name(\"certificate\")\n .payload(StdFunctions.file(FileArgs.builder()\n .input(\"cert.pem\")\n .build()).result())\n .secretType(\"certificate\")\n .payloadContentType(\"text/plain\")\n .build());\n\n var privateKey1 = new SecretV1(\"privateKey1\", SecretV1Args.builder() \n .name(\"private_key\")\n .payload(StdFunctions.file(FileArgs.builder()\n .input(\"cert-key.pem\")\n .build()).result())\n .secretType(\"private\")\n .payloadContentType(\"text/plain\")\n .build());\n\n var intermediate1 = new SecretV1(\"intermediate1\", SecretV1Args.builder() \n .name(\"intermediate\")\n .payload(StdFunctions.file(FileArgs.builder()\n .input(\"intermediate-ca.pem\")\n .build()).result())\n .secretType(\"certificate\")\n .payloadContentType(\"text/plain\")\n .build());\n\n var tls1 = new ContainerV1(\"tls1\", ContainerV1Args.builder() \n .name(\"tls\")\n .type(\"certificate\")\n .secretRefs( \n ContainerV1SecretRefArgs.builder()\n .name(\"certificate\")\n .secretRef(certificate1.secretRef())\n .build(),\n ContainerV1SecretRefArgs.builder()\n .name(\"private_key\")\n .secretRef(privateKey1.secretRef())\n .build(),\n ContainerV1SecretRefArgs.builder()\n .name(\"intermediates\")\n .secretRef(intermediate1.secretRef())\n .build())\n .build());\n\n final var subnet1 = NetworkingFunctions.getSubnet(GetSubnetArgs.builder()\n .name(\"my-subnet\")\n .build());\n\n var lb1 = new LoadBalancer(\"lb1\", LoadBalancerArgs.builder() \n .name(\"loadbalancer\")\n .vipSubnetId(subnet1.applyValue(getSubnetResult -\u003e getSubnetResult.id()))\n .build());\n\n var listener1 = new Listener(\"listener1\", ListenerArgs.builder() \n .name(\"https\")\n .protocol(\"TERMINATED_HTTPS\")\n .protocolPort(443)\n .loadbalancerId(lb1.id())\n .defaultTlsContainerRef(tls1.containerRef())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n certificate1:\n type: openstack:keymanager:SecretV1\n name: certificate_1\n properties:\n name: certificate\n payload:\n fn::invoke:\n Function: std:file\n Arguments:\n input: cert.pem\n Return: result\n secretType: certificate\n payloadContentType: text/plain\n privateKey1:\n type: openstack:keymanager:SecretV1\n name: private_key_1\n properties:\n name: private_key\n payload:\n fn::invoke:\n Function: std:file\n Arguments:\n input: cert-key.pem\n Return: result\n secretType: private\n payloadContentType: text/plain\n intermediate1:\n type: openstack:keymanager:SecretV1\n name: intermediate_1\n properties:\n name: intermediate\n payload:\n fn::invoke:\n Function: std:file\n Arguments:\n input: intermediate-ca.pem\n Return: result\n secretType: certificate\n payloadContentType: text/plain\n tls1:\n type: openstack:keymanager:ContainerV1\n name: tls_1\n properties:\n name: tls\n type: certificate\n secretRefs:\n - name: certificate\n secretRef: ${certificate1.secretRef}\n - name: private_key\n secretRef: ${privateKey1.secretRef}\n - name: intermediates\n secretRef: ${intermediate1.secretRef}\n lb1:\n type: openstack:loadbalancer:LoadBalancer\n name: lb_1\n properties:\n name: loadbalancer\n vipSubnetId: ${subnet1.id}\n listener1:\n type: openstack:loadbalancer:Listener\n name: listener_1\n properties:\n name: https\n protocol: TERMINATED_HTTPS\n protocolPort: 443\n loadbalancerId: ${lb1.id}\n defaultTlsContainerRef: ${tls1.containerRef}\nvariables:\n subnet1:\n fn::invoke:\n Function: openstack:networking:getSubnet\n Arguments:\n name: my-subnet\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Container with the ACL\n\n\u003e **Note** Only read ACLs are supported\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst tls1 = new openstack.keymanager.ContainerV1(\"tls_1\", {\n name: \"tls\",\n type: \"certificate\",\n secretRefs: [\n {\n name: \"certificate\",\n secretRef: certificate1.secretRef,\n },\n {\n name: \"private_key\",\n secretRef: privateKey1.secretRef,\n },\n {\n name: \"intermediates\",\n secretRef: intermediate1.secretRef,\n },\n ],\n acl: {\n read: {\n projectAccess: false,\n users: [\n \"userid1\",\n \"userid2\",\n ],\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\ntls1 = openstack.keymanager.ContainerV1(\"tls_1\",\n name=\"tls\",\n type=\"certificate\",\n secret_refs=[\n openstack.keymanager.ContainerV1SecretRefArgs(\n name=\"certificate\",\n secret_ref=certificate1[\"secretRef\"],\n ),\n openstack.keymanager.ContainerV1SecretRefArgs(\n name=\"private_key\",\n secret_ref=private_key1[\"secretRef\"],\n ),\n openstack.keymanager.ContainerV1SecretRefArgs(\n name=\"intermediates\",\n secret_ref=intermediate1[\"secretRef\"],\n ),\n ],\n acl=openstack.keymanager.ContainerV1AclArgs(\n read=openstack.keymanager.ContainerV1AclReadArgs(\n project_access=False,\n users=[\n \"userid1\",\n \"userid2\",\n ],\n ),\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var tls1 = new OpenStack.KeyManager.ContainerV1(\"tls_1\", new()\n {\n Name = \"tls\",\n Type = \"certificate\",\n SecretRefs = new[]\n {\n new OpenStack.KeyManager.Inputs.ContainerV1SecretRefArgs\n {\n Name = \"certificate\",\n SecretRef = certificate1.SecretRef,\n },\n new OpenStack.KeyManager.Inputs.ContainerV1SecretRefArgs\n {\n Name = \"private_key\",\n SecretRef = privateKey1.SecretRef,\n },\n new OpenStack.KeyManager.Inputs.ContainerV1SecretRefArgs\n {\n Name = \"intermediates\",\n SecretRef = intermediate1.SecretRef,\n },\n },\n Acl = new OpenStack.KeyManager.Inputs.ContainerV1AclArgs\n {\n Read = new OpenStack.KeyManager.Inputs.ContainerV1AclReadArgs\n {\n ProjectAccess = false,\n Users = new[]\n {\n \"userid1\",\n \"userid2\",\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/keymanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := keymanager.NewContainerV1(ctx, \"tls_1\", \u0026keymanager.ContainerV1Args{\n\t\t\tName: pulumi.String(\"tls\"),\n\t\t\tType: pulumi.String(\"certificate\"),\n\t\t\tSecretRefs: keymanager.ContainerV1SecretRefArray{\n\t\t\t\t\u0026keymanager.ContainerV1SecretRefArgs{\n\t\t\t\t\tName: pulumi.String(\"certificate\"),\n\t\t\t\t\tSecretRef: pulumi.Any(certificate1.SecretRef),\n\t\t\t\t},\n\t\t\t\t\u0026keymanager.ContainerV1SecretRefArgs{\n\t\t\t\t\tName: pulumi.String(\"private_key\"),\n\t\t\t\t\tSecretRef: pulumi.Any(privateKey1.SecretRef),\n\t\t\t\t},\n\t\t\t\t\u0026keymanager.ContainerV1SecretRefArgs{\n\t\t\t\t\tName: pulumi.String(\"intermediates\"),\n\t\t\t\t\tSecretRef: pulumi.Any(intermediate1.SecretRef),\n\t\t\t\t},\n\t\t\t},\n\t\t\tAcl: \u0026keymanager.ContainerV1AclArgs{\n\t\t\t\tRead: \u0026keymanager.ContainerV1AclReadArgs{\n\t\t\t\t\tProjectAccess: pulumi.Bool(false),\n\t\t\t\t\tUsers: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"userid1\"),\n\t\t\t\t\t\tpulumi.String(\"userid2\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.keymanager.ContainerV1;\nimport com.pulumi.openstack.keymanager.ContainerV1Args;\nimport com.pulumi.openstack.keymanager.inputs.ContainerV1SecretRefArgs;\nimport com.pulumi.openstack.keymanager.inputs.ContainerV1AclArgs;\nimport com.pulumi.openstack.keymanager.inputs.ContainerV1AclReadArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var tls1 = new ContainerV1(\"tls1\", ContainerV1Args.builder() \n .name(\"tls\")\n .type(\"certificate\")\n .secretRefs( \n ContainerV1SecretRefArgs.builder()\n .name(\"certificate\")\n .secretRef(certificate1.secretRef())\n .build(),\n ContainerV1SecretRefArgs.builder()\n .name(\"private_key\")\n .secretRef(privateKey1.secretRef())\n .build(),\n ContainerV1SecretRefArgs.builder()\n .name(\"intermediates\")\n .secretRef(intermediate1.secretRef())\n .build())\n .acl(ContainerV1AclArgs.builder()\n .read(ContainerV1AclReadArgs.builder()\n .projectAccess(false)\n .users( \n \"userid1\",\n \"userid2\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n tls1:\n type: openstack:keymanager:ContainerV1\n name: tls_1\n properties:\n name: tls\n type: certificate\n secretRefs:\n - name: certificate\n secretRef: ${certificate1.secretRef}\n - name: private_key\n secretRef: ${privateKey1.secretRef}\n - name: intermediates\n secretRef: ${intermediate1.secretRef}\n acl:\n read:\n projectAccess: false\n users:\n - userid1\n - userid2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nContainers can be imported using the container id (the last part of the container reference), e.g.:\n\n```sh\n$ pulumi import openstack:keymanager/containerV1:ContainerV1 container_1 0c6cd26a-c012-4d7b-8034-057c0f1c2953\n```\n", + "description": "Manages a V1 Barbican container resource within OpenStack.\n\n## Example Usage\n\n### Simple secret\n\nThe container with the TLS certificates, which can be used by the loadbalancer HTTPS listener.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\nimport * as std from \"@pulumi/std\";\n\nconst certificate1 = new openstack.keymanager.SecretV1(\"certificate_1\", {\n name: \"certificate\",\n payload: std.file({\n input: \"cert.pem\",\n }).then(invoke =\u003e invoke.result),\n secretType: \"certificate\",\n payloadContentType: \"text/plain\",\n});\nconst privateKey1 = new openstack.keymanager.SecretV1(\"private_key_1\", {\n name: \"private_key\",\n payload: std.file({\n input: \"cert-key.pem\",\n }).then(invoke =\u003e invoke.result),\n secretType: \"private\",\n payloadContentType: \"text/plain\",\n});\nconst intermediate1 = new openstack.keymanager.SecretV1(\"intermediate_1\", {\n name: \"intermediate\",\n payload: std.file({\n input: \"intermediate-ca.pem\",\n }).then(invoke =\u003e invoke.result),\n secretType: \"certificate\",\n payloadContentType: \"text/plain\",\n});\nconst tls1 = new openstack.keymanager.ContainerV1(\"tls_1\", {\n name: \"tls\",\n type: \"certificate\",\n secretRefs: [\n {\n name: \"certificate\",\n secretRef: certificate1.secretRef,\n },\n {\n name: \"private_key\",\n secretRef: privateKey1.secretRef,\n },\n {\n name: \"intermediates\",\n secretRef: intermediate1.secretRef,\n },\n ],\n});\nconst subnet1 = openstack.networking.getSubnet({\n name: \"my-subnet\",\n});\nconst lb1 = new openstack.loadbalancer.LoadBalancer(\"lb_1\", {\n name: \"loadbalancer\",\n vipSubnetId: subnet1.then(subnet1 =\u003e subnet1.id),\n});\nconst listener1 = new openstack.loadbalancer.Listener(\"listener_1\", {\n name: \"https\",\n protocol: \"TERMINATED_HTTPS\",\n protocolPort: 443,\n loadbalancerId: lb1.id,\n defaultTlsContainerRef: tls1.containerRef,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\nimport pulumi_std as std\n\ncertificate1 = openstack.keymanager.SecretV1(\"certificate_1\",\n name=\"certificate\",\n payload=std.file(input=\"cert.pem\").result,\n secret_type=\"certificate\",\n payload_content_type=\"text/plain\")\nprivate_key1 = openstack.keymanager.SecretV1(\"private_key_1\",\n name=\"private_key\",\n payload=std.file(input=\"cert-key.pem\").result,\n secret_type=\"private\",\n payload_content_type=\"text/plain\")\nintermediate1 = openstack.keymanager.SecretV1(\"intermediate_1\",\n name=\"intermediate\",\n payload=std.file(input=\"intermediate-ca.pem\").result,\n secret_type=\"certificate\",\n payload_content_type=\"text/plain\")\ntls1 = openstack.keymanager.ContainerV1(\"tls_1\",\n name=\"tls\",\n type=\"certificate\",\n secret_refs=[\n openstack.keymanager.ContainerV1SecretRefArgs(\n name=\"certificate\",\n secret_ref=certificate1.secret_ref,\n ),\n openstack.keymanager.ContainerV1SecretRefArgs(\n name=\"private_key\",\n secret_ref=private_key1.secret_ref,\n ),\n openstack.keymanager.ContainerV1SecretRefArgs(\n name=\"intermediates\",\n secret_ref=intermediate1.secret_ref,\n ),\n ])\nsubnet1 = openstack.networking.get_subnet(name=\"my-subnet\")\nlb1 = openstack.loadbalancer.LoadBalancer(\"lb_1\",\n name=\"loadbalancer\",\n vip_subnet_id=subnet1.id)\nlistener1 = openstack.loadbalancer.Listener(\"listener_1\",\n name=\"https\",\n protocol=\"TERMINATED_HTTPS\",\n protocol_port=443,\n loadbalancer_id=lb1.id,\n default_tls_container_ref=tls1.container_ref)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var certificate1 = new OpenStack.KeyManager.SecretV1(\"certificate_1\", new()\n {\n Name = \"certificate\",\n Payload = Std.File.Invoke(new()\n {\n Input = \"cert.pem\",\n }).Apply(invoke =\u003e invoke.Result),\n SecretType = \"certificate\",\n PayloadContentType = \"text/plain\",\n });\n\n var privateKey1 = new OpenStack.KeyManager.SecretV1(\"private_key_1\", new()\n {\n Name = \"private_key\",\n Payload = Std.File.Invoke(new()\n {\n Input = \"cert-key.pem\",\n }).Apply(invoke =\u003e invoke.Result),\n SecretType = \"private\",\n PayloadContentType = \"text/plain\",\n });\n\n var intermediate1 = new OpenStack.KeyManager.SecretV1(\"intermediate_1\", new()\n {\n Name = \"intermediate\",\n Payload = Std.File.Invoke(new()\n {\n Input = \"intermediate-ca.pem\",\n }).Apply(invoke =\u003e invoke.Result),\n SecretType = \"certificate\",\n PayloadContentType = \"text/plain\",\n });\n\n var tls1 = new OpenStack.KeyManager.ContainerV1(\"tls_1\", new()\n {\n Name = \"tls\",\n Type = \"certificate\",\n SecretRefs = new[]\n {\n new OpenStack.KeyManager.Inputs.ContainerV1SecretRefArgs\n {\n Name = \"certificate\",\n SecretRef = certificate1.SecretRef,\n },\n new OpenStack.KeyManager.Inputs.ContainerV1SecretRefArgs\n {\n Name = \"private_key\",\n SecretRef = privateKey1.SecretRef,\n },\n new OpenStack.KeyManager.Inputs.ContainerV1SecretRefArgs\n {\n Name = \"intermediates\",\n SecretRef = intermediate1.SecretRef,\n },\n },\n });\n\n var subnet1 = OpenStack.Networking.GetSubnet.Invoke(new()\n {\n Name = \"my-subnet\",\n });\n\n var lb1 = new OpenStack.LoadBalancer.LoadBalancer(\"lb_1\", new()\n {\n Name = \"loadbalancer\",\n VipSubnetId = subnet1.Apply(getSubnetResult =\u003e getSubnetResult.Id),\n });\n\n var listener1 = new OpenStack.LoadBalancer.Listener(\"listener_1\", new()\n {\n Name = \"https\",\n Protocol = \"TERMINATED_HTTPS\",\n ProtocolPort = 443,\n LoadbalancerId = lb1.Id,\n DefaultTlsContainerRef = tls1.ContainerRef,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/keymanager\"\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/loadbalancer\"\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tinvokeFile, err := std.File(ctx, \u0026std.FileArgs{\n\t\t\tInput: \"cert.pem\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcertificate1, err := keymanager.NewSecretV1(ctx, \"certificate_1\", \u0026keymanager.SecretV1Args{\n\t\t\tName: pulumi.String(\"certificate\"),\n\t\t\tPayload: invokeFile.Result,\n\t\t\tSecretType: pulumi.String(\"certificate\"),\n\t\t\tPayloadContentType: pulumi.String(\"text/plain\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFile1, err := std.File(ctx, \u0026std.FileArgs{\n\t\t\tInput: \"cert-key.pem\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tprivateKey1, err := keymanager.NewSecretV1(ctx, \"private_key_1\", \u0026keymanager.SecretV1Args{\n\t\t\tName: pulumi.String(\"private_key\"),\n\t\t\tPayload: invokeFile1.Result,\n\t\t\tSecretType: pulumi.String(\"private\"),\n\t\t\tPayloadContentType: pulumi.String(\"text/plain\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFile2, err := std.File(ctx, \u0026std.FileArgs{\n\t\t\tInput: \"intermediate-ca.pem\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tintermediate1, err := keymanager.NewSecretV1(ctx, \"intermediate_1\", \u0026keymanager.SecretV1Args{\n\t\t\tName: pulumi.String(\"intermediate\"),\n\t\t\tPayload: invokeFile2.Result,\n\t\t\tSecretType: pulumi.String(\"certificate\"),\n\t\t\tPayloadContentType: pulumi.String(\"text/plain\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttls1, err := keymanager.NewContainerV1(ctx, \"tls_1\", \u0026keymanager.ContainerV1Args{\n\t\t\tName: pulumi.String(\"tls\"),\n\t\t\tType: pulumi.String(\"certificate\"),\n\t\t\tSecretRefs: keymanager.ContainerV1SecretRefArray{\n\t\t\t\t\u0026keymanager.ContainerV1SecretRefArgs{\n\t\t\t\t\tName: pulumi.String(\"certificate\"),\n\t\t\t\t\tSecretRef: certificate1.SecretRef,\n\t\t\t\t},\n\t\t\t\t\u0026keymanager.ContainerV1SecretRefArgs{\n\t\t\t\t\tName: pulumi.String(\"private_key\"),\n\t\t\t\t\tSecretRef: privateKey1.SecretRef,\n\t\t\t\t},\n\t\t\t\t\u0026keymanager.ContainerV1SecretRefArgs{\n\t\t\t\t\tName: pulumi.String(\"intermediates\"),\n\t\t\t\t\tSecretRef: intermediate1.SecretRef,\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsubnet1, err := networking.LookupSubnet(ctx, \u0026networking.LookupSubnetArgs{\n\t\t\tName: pulumi.StringRef(\"my-subnet\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tlb1, err := loadbalancer.NewLoadBalancer(ctx, \"lb_1\", \u0026loadbalancer.LoadBalancerArgs{\n\t\t\tName: pulumi.String(\"loadbalancer\"),\n\t\t\tVipSubnetId: pulumi.String(subnet1.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = loadbalancer.NewListener(ctx, \"listener_1\", \u0026loadbalancer.ListenerArgs{\n\t\t\tName: pulumi.String(\"https\"),\n\t\t\tProtocol: pulumi.String(\"TERMINATED_HTTPS\"),\n\t\t\tProtocolPort: pulumi.Int(443),\n\t\t\tLoadbalancerId: lb1.ID(),\n\t\t\tDefaultTlsContainerRef: tls1.ContainerRef,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.keymanager.SecretV1;\nimport com.pulumi.openstack.keymanager.SecretV1Args;\nimport com.pulumi.openstack.keymanager.ContainerV1;\nimport com.pulumi.openstack.keymanager.ContainerV1Args;\nimport com.pulumi.openstack.keymanager.inputs.ContainerV1SecretRefArgs;\nimport com.pulumi.openstack.networking.NetworkingFunctions;\nimport com.pulumi.openstack.networking.inputs.GetSubnetArgs;\nimport com.pulumi.openstack.loadbalancer.LoadBalancer;\nimport com.pulumi.openstack.loadbalancer.LoadBalancerArgs;\nimport com.pulumi.openstack.loadbalancer.Listener;\nimport com.pulumi.openstack.loadbalancer.ListenerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var certificate1 = new SecretV1(\"certificate1\", SecretV1Args.builder() \n .name(\"certificate\")\n .payload(StdFunctions.file(FileArgs.builder()\n .input(\"cert.pem\")\n .build()).result())\n .secretType(\"certificate\")\n .payloadContentType(\"text/plain\")\n .build());\n\n var privateKey1 = new SecretV1(\"privateKey1\", SecretV1Args.builder() \n .name(\"private_key\")\n .payload(StdFunctions.file(FileArgs.builder()\n .input(\"cert-key.pem\")\n .build()).result())\n .secretType(\"private\")\n .payloadContentType(\"text/plain\")\n .build());\n\n var intermediate1 = new SecretV1(\"intermediate1\", SecretV1Args.builder() \n .name(\"intermediate\")\n .payload(StdFunctions.file(FileArgs.builder()\n .input(\"intermediate-ca.pem\")\n .build()).result())\n .secretType(\"certificate\")\n .payloadContentType(\"text/plain\")\n .build());\n\n var tls1 = new ContainerV1(\"tls1\", ContainerV1Args.builder() \n .name(\"tls\")\n .type(\"certificate\")\n .secretRefs( \n ContainerV1SecretRefArgs.builder()\n .name(\"certificate\")\n .secretRef(certificate1.secretRef())\n .build(),\n ContainerV1SecretRefArgs.builder()\n .name(\"private_key\")\n .secretRef(privateKey1.secretRef())\n .build(),\n ContainerV1SecretRefArgs.builder()\n .name(\"intermediates\")\n .secretRef(intermediate1.secretRef())\n .build())\n .build());\n\n final var subnet1 = NetworkingFunctions.getSubnet(GetSubnetArgs.builder()\n .name(\"my-subnet\")\n .build());\n\n var lb1 = new LoadBalancer(\"lb1\", LoadBalancerArgs.builder() \n .name(\"loadbalancer\")\n .vipSubnetId(subnet1.applyValue(getSubnetResult -\u003e getSubnetResult.id()))\n .build());\n\n var listener1 = new Listener(\"listener1\", ListenerArgs.builder() \n .name(\"https\")\n .protocol(\"TERMINATED_HTTPS\")\n .protocolPort(443)\n .loadbalancerId(lb1.id())\n .defaultTlsContainerRef(tls1.containerRef())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n certificate1:\n type: openstack:keymanager:SecretV1\n name: certificate_1\n properties:\n name: certificate\n payload:\n fn::invoke:\n Function: std:file\n Arguments:\n input: cert.pem\n Return: result\n secretType: certificate\n payloadContentType: text/plain\n privateKey1:\n type: openstack:keymanager:SecretV1\n name: private_key_1\n properties:\n name: private_key\n payload:\n fn::invoke:\n Function: std:file\n Arguments:\n input: cert-key.pem\n Return: result\n secretType: private\n payloadContentType: text/plain\n intermediate1:\n type: openstack:keymanager:SecretV1\n name: intermediate_1\n properties:\n name: intermediate\n payload:\n fn::invoke:\n Function: std:file\n Arguments:\n input: intermediate-ca.pem\n Return: result\n secretType: certificate\n payloadContentType: text/plain\n tls1:\n type: openstack:keymanager:ContainerV1\n name: tls_1\n properties:\n name: tls\n type: certificate\n secretRefs:\n - name: certificate\n secretRef: ${certificate1.secretRef}\n - name: private_key\n secretRef: ${privateKey1.secretRef}\n - name: intermediates\n secretRef: ${intermediate1.secretRef}\n lb1:\n type: openstack:loadbalancer:LoadBalancer\n name: lb_1\n properties:\n name: loadbalancer\n vipSubnetId: ${subnet1.id}\n listener1:\n type: openstack:loadbalancer:Listener\n name: listener_1\n properties:\n name: https\n protocol: TERMINATED_HTTPS\n protocolPort: 443\n loadbalancerId: ${lb1.id}\n defaultTlsContainerRef: ${tls1.containerRef}\nvariables:\n subnet1:\n fn::invoke:\n Function: openstack:networking:getSubnet\n Arguments:\n name: my-subnet\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Container with the ACL\n\n\u003e **Note** Only read ACLs are supported\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst tls1 = new openstack.keymanager.ContainerV1(\"tls_1\", {\n name: \"tls\",\n type: \"certificate\",\n secretRefs: [\n {\n name: \"certificate\",\n secretRef: certificate1.secretRef,\n },\n {\n name: \"private_key\",\n secretRef: privateKey1.secretRef,\n },\n {\n name: \"intermediates\",\n secretRef: intermediate1.secretRef,\n },\n ],\n acl: {\n read: {\n projectAccess: false,\n users: [\n \"userid1\",\n \"userid2\",\n ],\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\ntls1 = openstack.keymanager.ContainerV1(\"tls_1\",\n name=\"tls\",\n type=\"certificate\",\n secret_refs=[\n openstack.keymanager.ContainerV1SecretRefArgs(\n name=\"certificate\",\n secret_ref=certificate1[\"secretRef\"],\n ),\n openstack.keymanager.ContainerV1SecretRefArgs(\n name=\"private_key\",\n secret_ref=private_key1[\"secretRef\"],\n ),\n openstack.keymanager.ContainerV1SecretRefArgs(\n name=\"intermediates\",\n secret_ref=intermediate1[\"secretRef\"],\n ),\n ],\n acl=openstack.keymanager.ContainerV1AclArgs(\n read=openstack.keymanager.ContainerV1AclReadArgs(\n project_access=False,\n users=[\n \"userid1\",\n \"userid2\",\n ],\n ),\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var tls1 = new OpenStack.KeyManager.ContainerV1(\"tls_1\", new()\n {\n Name = \"tls\",\n Type = \"certificate\",\n SecretRefs = new[]\n {\n new OpenStack.KeyManager.Inputs.ContainerV1SecretRefArgs\n {\n Name = \"certificate\",\n SecretRef = certificate1.SecretRef,\n },\n new OpenStack.KeyManager.Inputs.ContainerV1SecretRefArgs\n {\n Name = \"private_key\",\n SecretRef = privateKey1.SecretRef,\n },\n new OpenStack.KeyManager.Inputs.ContainerV1SecretRefArgs\n {\n Name = \"intermediates\",\n SecretRef = intermediate1.SecretRef,\n },\n },\n Acl = new OpenStack.KeyManager.Inputs.ContainerV1AclArgs\n {\n Read = new OpenStack.KeyManager.Inputs.ContainerV1AclReadArgs\n {\n ProjectAccess = false,\n Users = new[]\n {\n \"userid1\",\n \"userid2\",\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/keymanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := keymanager.NewContainerV1(ctx, \"tls_1\", \u0026keymanager.ContainerV1Args{\n\t\t\tName: pulumi.String(\"tls\"),\n\t\t\tType: pulumi.String(\"certificate\"),\n\t\t\tSecretRefs: keymanager.ContainerV1SecretRefArray{\n\t\t\t\t\u0026keymanager.ContainerV1SecretRefArgs{\n\t\t\t\t\tName: pulumi.String(\"certificate\"),\n\t\t\t\t\tSecretRef: pulumi.Any(certificate1.SecretRef),\n\t\t\t\t},\n\t\t\t\t\u0026keymanager.ContainerV1SecretRefArgs{\n\t\t\t\t\tName: pulumi.String(\"private_key\"),\n\t\t\t\t\tSecretRef: pulumi.Any(privateKey1.SecretRef),\n\t\t\t\t},\n\t\t\t\t\u0026keymanager.ContainerV1SecretRefArgs{\n\t\t\t\t\tName: pulumi.String(\"intermediates\"),\n\t\t\t\t\tSecretRef: pulumi.Any(intermediate1.SecretRef),\n\t\t\t\t},\n\t\t\t},\n\t\t\tAcl: \u0026keymanager.ContainerV1AclArgs{\n\t\t\t\tRead: \u0026keymanager.ContainerV1AclReadArgs{\n\t\t\t\t\tProjectAccess: pulumi.Bool(false),\n\t\t\t\t\tUsers: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"userid1\"),\n\t\t\t\t\t\tpulumi.String(\"userid2\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.keymanager.ContainerV1;\nimport com.pulumi.openstack.keymanager.ContainerV1Args;\nimport com.pulumi.openstack.keymanager.inputs.ContainerV1SecretRefArgs;\nimport com.pulumi.openstack.keymanager.inputs.ContainerV1AclArgs;\nimport com.pulumi.openstack.keymanager.inputs.ContainerV1AclReadArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var tls1 = new ContainerV1(\"tls1\", ContainerV1Args.builder() \n .name(\"tls\")\n .type(\"certificate\")\n .secretRefs( \n ContainerV1SecretRefArgs.builder()\n .name(\"certificate\")\n .secretRef(certificate1.secretRef())\n .build(),\n ContainerV1SecretRefArgs.builder()\n .name(\"private_key\")\n .secretRef(privateKey1.secretRef())\n .build(),\n ContainerV1SecretRefArgs.builder()\n .name(\"intermediates\")\n .secretRef(intermediate1.secretRef())\n .build())\n .acl(ContainerV1AclArgs.builder()\n .read(ContainerV1AclReadArgs.builder()\n .projectAccess(false)\n .users( \n \"userid1\",\n \"userid2\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n tls1:\n type: openstack:keymanager:ContainerV1\n name: tls_1\n properties:\n name: tls\n type: certificate\n secretRefs:\n - name: certificate\n secretRef: ${certificate1.secretRef}\n - name: private_key\n secretRef: ${privateKey1.secretRef}\n - name: intermediates\n secretRef: ${intermediate1.secretRef}\n acl:\n read:\n projectAccess: false\n users:\n - userid1\n - userid2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nContainers can be imported using the container id (the last part of the container reference), e.g.:\n\n```sh\n$ pulumi import openstack:keymanager/containerV1:ContainerV1 container_1 0c6cd26a-c012-4d7b-8034-057c0f1c2953\n```\n", "properties": { "acl": { "$ref": "#/types/openstack:keymanager/ContainerV1Acl:ContainerV1Acl", @@ -10805,7 +10656,7 @@ } }, "openstack:keymanager/orderV1:OrderV1": { - "description": "Manages a V1 Barbican order resource within OpenStack.\n\n## Example Usage\n\n### Symmetric key order\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst order1 = new openstack.keymanager.OrderV1(\"order_1\", {\n type: \"key\",\n meta: {\n algorithm: \"aes\",\n bitLength: 256,\n name: \"mysecret\",\n mode: \"cbc\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\norder1 = openstack.keymanager.OrderV1(\"order_1\",\n type=\"key\",\n meta=openstack.keymanager.OrderV1MetaArgs(\n algorithm=\"aes\",\n bit_length=256,\n name=\"mysecret\",\n mode=\"cbc\",\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var order1 = new OpenStack.KeyManager.OrderV1(\"order_1\", new()\n {\n Type = \"key\",\n Meta = new OpenStack.KeyManager.Inputs.OrderV1MetaArgs\n {\n Algorithm = \"aes\",\n BitLength = 256,\n Name = \"mysecret\",\n Mode = \"cbc\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/keymanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := keymanager.NewOrderV1(ctx, \"order_1\", \u0026keymanager.OrderV1Args{\n\t\t\tType: pulumi.String(\"key\"),\n\t\t\tMeta: \u0026keymanager.OrderV1MetaArgs{\n\t\t\t\tAlgorithm: pulumi.String(\"aes\"),\n\t\t\t\tBitLength: pulumi.Int(256),\n\t\t\t\tName: pulumi.String(\"mysecret\"),\n\t\t\t\tMode: pulumi.String(\"cbc\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.keymanager.OrderV1;\nimport com.pulumi.openstack.keymanager.OrderV1Args;\nimport com.pulumi.openstack.keymanager.inputs.OrderV1MetaArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var order1 = new OrderV1(\"order1\", OrderV1Args.builder() \n .type(\"key\")\n .meta(OrderV1MetaArgs.builder()\n .algorithm(\"aes\")\n .bitLength(256)\n .name(\"mysecret\")\n .mode(\"cbc\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n order1:\n type: openstack:keymanager:OrderV1\n name: order_1\n properties:\n type: key\n meta:\n algorithm: aes\n bitLength: 256\n name: mysecret\n mode: cbc\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Asymmetric key pair order\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst order1 = new openstack.keymanager.OrderV1(\"order_1\", {\n type: \"asymmetric\",\n meta: {\n algorithm: \"rsa\",\n bitLength: 4096,\n name: \"mysecret\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\norder1 = openstack.keymanager.OrderV1(\"order_1\",\n type=\"asymmetric\",\n meta=openstack.keymanager.OrderV1MetaArgs(\n algorithm=\"rsa\",\n bit_length=4096,\n name=\"mysecret\",\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var order1 = new OpenStack.KeyManager.OrderV1(\"order_1\", new()\n {\n Type = \"asymmetric\",\n Meta = new OpenStack.KeyManager.Inputs.OrderV1MetaArgs\n {\n Algorithm = \"rsa\",\n BitLength = 4096,\n Name = \"mysecret\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/keymanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := keymanager.NewOrderV1(ctx, \"order_1\", \u0026keymanager.OrderV1Args{\n\t\t\tType: pulumi.String(\"asymmetric\"),\n\t\t\tMeta: \u0026keymanager.OrderV1MetaArgs{\n\t\t\t\tAlgorithm: pulumi.String(\"rsa\"),\n\t\t\t\tBitLength: pulumi.Int(4096),\n\t\t\t\tName: pulumi.String(\"mysecret\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.keymanager.OrderV1;\nimport com.pulumi.openstack.keymanager.OrderV1Args;\nimport com.pulumi.openstack.keymanager.inputs.OrderV1MetaArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var order1 = new OrderV1(\"order1\", OrderV1Args.builder() \n .type(\"asymmetric\")\n .meta(OrderV1MetaArgs.builder()\n .algorithm(\"rsa\")\n .bitLength(4096)\n .name(\"mysecret\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n order1:\n type: openstack:keymanager:OrderV1\n name: order_1\n properties:\n type: asymmetric\n meta:\n algorithm: rsa\n bitLength: 4096\n name: mysecret\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nOrders can be imported using the order id (the last part of the order reference), e.g.:\n\n```sh\n$ pulumi import openstack:keymanager/orderV1:OrderV1 order_1 0c6cd26a-c012-4d7b-8034-057c0f1c2953\n```\n", + "description": "Manages a V1 Barbican order resource within OpenStack.\n\n## Example Usage\n\n### Symmetric key order\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst order1 = new openstack.keymanager.OrderV1(\"order_1\", {\n type: \"key\",\n meta: {\n algorithm: \"aes\",\n bitLength: 256,\n name: \"mysecret\",\n mode: \"cbc\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\norder1 = openstack.keymanager.OrderV1(\"order_1\",\n type=\"key\",\n meta=openstack.keymanager.OrderV1MetaArgs(\n algorithm=\"aes\",\n bit_length=256,\n name=\"mysecret\",\n mode=\"cbc\",\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var order1 = new OpenStack.KeyManager.OrderV1(\"order_1\", new()\n {\n Type = \"key\",\n Meta = new OpenStack.KeyManager.Inputs.OrderV1MetaArgs\n {\n Algorithm = \"aes\",\n BitLength = 256,\n Name = \"mysecret\",\n Mode = \"cbc\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/keymanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := keymanager.NewOrderV1(ctx, \"order_1\", \u0026keymanager.OrderV1Args{\n\t\t\tType: pulumi.String(\"key\"),\n\t\t\tMeta: \u0026keymanager.OrderV1MetaArgs{\n\t\t\t\tAlgorithm: pulumi.String(\"aes\"),\n\t\t\t\tBitLength: pulumi.Int(256),\n\t\t\t\tName: pulumi.String(\"mysecret\"),\n\t\t\t\tMode: pulumi.String(\"cbc\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.keymanager.OrderV1;\nimport com.pulumi.openstack.keymanager.OrderV1Args;\nimport com.pulumi.openstack.keymanager.inputs.OrderV1MetaArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var order1 = new OrderV1(\"order1\", OrderV1Args.builder() \n .type(\"key\")\n .meta(OrderV1MetaArgs.builder()\n .algorithm(\"aes\")\n .bitLength(256)\n .name(\"mysecret\")\n .mode(\"cbc\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n order1:\n type: openstack:keymanager:OrderV1\n name: order_1\n properties:\n type: key\n meta:\n algorithm: aes\n bitLength: 256\n name: mysecret\n mode: cbc\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Asymmetric key pair order\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst order1 = new openstack.keymanager.OrderV1(\"order_1\", {\n type: \"asymmetric\",\n meta: {\n algorithm: \"rsa\",\n bitLength: 4096,\n name: \"mysecret\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\norder1 = openstack.keymanager.OrderV1(\"order_1\",\n type=\"asymmetric\",\n meta=openstack.keymanager.OrderV1MetaArgs(\n algorithm=\"rsa\",\n bit_length=4096,\n name=\"mysecret\",\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var order1 = new OpenStack.KeyManager.OrderV1(\"order_1\", new()\n {\n Type = \"asymmetric\",\n Meta = new OpenStack.KeyManager.Inputs.OrderV1MetaArgs\n {\n Algorithm = \"rsa\",\n BitLength = 4096,\n Name = \"mysecret\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/keymanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := keymanager.NewOrderV1(ctx, \"order_1\", \u0026keymanager.OrderV1Args{\n\t\t\tType: pulumi.String(\"asymmetric\"),\n\t\t\tMeta: \u0026keymanager.OrderV1MetaArgs{\n\t\t\t\tAlgorithm: pulumi.String(\"rsa\"),\n\t\t\t\tBitLength: pulumi.Int(4096),\n\t\t\t\tName: pulumi.String(\"mysecret\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.keymanager.OrderV1;\nimport com.pulumi.openstack.keymanager.OrderV1Args;\nimport com.pulumi.openstack.keymanager.inputs.OrderV1MetaArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var order1 = new OrderV1(\"order1\", OrderV1Args.builder() \n .type(\"asymmetric\")\n .meta(OrderV1MetaArgs.builder()\n .algorithm(\"rsa\")\n .bitLength(4096)\n .name(\"mysecret\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n order1:\n type: openstack:keymanager:OrderV1\n name: order_1\n properties:\n type: asymmetric\n meta:\n algorithm: rsa\n bitLength: 4096\n name: mysecret\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nOrders can be imported using the order id (the last part of the order reference), e.g.:\n\n```sh\n$ pulumi import openstack:keymanager/orderV1:OrderV1 order_1 0c6cd26a-c012-4d7b-8034-057c0f1c2953\n```\n", "properties": { "containerRef": { "type": "string", @@ -10950,7 +10801,7 @@ } }, "openstack:keymanager/secretV1:SecretV1": { - "description": "## Example Usage\n\n### Simple secret\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst secret1 = new openstack.keymanager.SecretV1(\"secret_1\", {\n algorithm: \"aes\",\n bitLength: 256,\n mode: \"cbc\",\n name: \"mysecret\",\n payload: \"foobar\",\n payloadContentType: \"text/plain\",\n secretType: \"passphrase\",\n metadata: {\n key: \"foo\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nsecret1 = openstack.keymanager.SecretV1(\"secret_1\",\n algorithm=\"aes\",\n bit_length=256,\n mode=\"cbc\",\n name=\"mysecret\",\n payload=\"foobar\",\n payload_content_type=\"text/plain\",\n secret_type=\"passphrase\",\n metadata={\n \"key\": \"foo\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var secret1 = new OpenStack.KeyManager.SecretV1(\"secret_1\", new()\n {\n Algorithm = \"aes\",\n BitLength = 256,\n Mode = \"cbc\",\n Name = \"mysecret\",\n Payload = \"foobar\",\n PayloadContentType = \"text/plain\",\n SecretType = \"passphrase\",\n Metadata = \n {\n { \"key\", \"foo\" },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/keymanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := keymanager.NewSecretV1(ctx, \"secret_1\", \u0026keymanager.SecretV1Args{\n\t\t\tAlgorithm: pulumi.String(\"aes\"),\n\t\t\tBitLength: pulumi.Int(256),\n\t\t\tMode: pulumi.String(\"cbc\"),\n\t\t\tName: pulumi.String(\"mysecret\"),\n\t\t\tPayload: pulumi.String(\"foobar\"),\n\t\t\tPayloadContentType: pulumi.String(\"text/plain\"),\n\t\t\tSecretType: pulumi.String(\"passphrase\"),\n\t\t\tMetadata: pulumi.Map{\n\t\t\t\t\"key\": pulumi.Any(\"foo\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.keymanager.SecretV1;\nimport com.pulumi.openstack.keymanager.SecretV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var secret1 = new SecretV1(\"secret1\", SecretV1Args.builder() \n .algorithm(\"aes\")\n .bitLength(256)\n .mode(\"cbc\")\n .name(\"mysecret\")\n .payload(\"foobar\")\n .payloadContentType(\"text/plain\")\n .secretType(\"passphrase\")\n .metadata(Map.of(\"key\", \"foo\"))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n secret1:\n type: openstack:keymanager:SecretV1\n name: secret_1\n properties:\n algorithm: aes\n bitLength: 256\n mode: cbc\n name: mysecret\n payload: foobar\n payloadContentType: text/plain\n secretType: passphrase\n metadata:\n key: foo\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Secret with whitespaces\n\n\u003e **Note** If you want to store payload with leading or trailing whitespaces,\nit's recommended to store it in a base64 encoding. Plain text payload can also\nwork, but further addind or removing of the leading or trailing whitespaces\nwon't be detected as a state change, e.g. changing plain text payload from\n`password ` to `password` won't recreate the secret.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\nimport * as std from \"@pulumi/std\";\n\nconst secret1 = new openstack.keymanager.SecretV1(\"secret_1\", {\n name: \"password\",\n payload: std.base64encode({\n input: \"password with the whitespace at the end \",\n }).then(invoke =\u003e invoke.result),\n secretType: \"passphrase\",\n payloadContentType: \"application/octet-stream\",\n payloadContentEncoding: \"base64\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\nimport pulumi_std as std\n\nsecret1 = openstack.keymanager.SecretV1(\"secret_1\",\n name=\"password\",\n payload=std.base64encode(input=\"password with the whitespace at the end \").result,\n secret_type=\"passphrase\",\n payload_content_type=\"application/octet-stream\",\n payload_content_encoding=\"base64\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var secret1 = new OpenStack.KeyManager.SecretV1(\"secret_1\", new()\n {\n Name = \"password\",\n Payload = Std.Base64encode.Invoke(new()\n {\n Input = \"password with the whitespace at the end \",\n }).Apply(invoke =\u003e invoke.Result),\n SecretType = \"passphrase\",\n PayloadContentType = \"application/octet-stream\",\n PayloadContentEncoding = \"base64\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/keymanager\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tinvokeBase64encode, err := std.Base64encode(ctx, \u0026std.Base64encodeArgs{\n\t\t\tInput: \"password with the whitespace at the end \",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = keymanager.NewSecretV1(ctx, \"secret_1\", \u0026keymanager.SecretV1Args{\n\t\t\tName: pulumi.String(\"password\"),\n\t\t\tPayload: invokeBase64encode.Result,\n\t\t\tSecretType: pulumi.String(\"passphrase\"),\n\t\t\tPayloadContentType: pulumi.String(\"application/octet-stream\"),\n\t\t\tPayloadContentEncoding: pulumi.String(\"base64\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.keymanager.SecretV1;\nimport com.pulumi.openstack.keymanager.SecretV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var secret1 = new SecretV1(\"secret1\", SecretV1Args.builder() \n .name(\"password\")\n .payload(StdFunctions.base64encode(Base64encodeArgs.builder()\n .input(\"password with the whitespace at the end \")\n .build()).result())\n .secretType(\"passphrase\")\n .payloadContentType(\"application/octet-stream\")\n .payloadContentEncoding(\"base64\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n secret1:\n type: openstack:keymanager:SecretV1\n name: secret_1\n properties:\n name: password\n payload:\n fn::invoke:\n Function: std:base64encode\n Arguments:\n input: 'password with the whitespace at the end '\n Return: result\n secretType: passphrase\n payloadContentType: application/octet-stream\n payloadContentEncoding: base64\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Secret with the ACL\n\n\u003e **Note** Only read ACLs are supported\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\nimport * as std from \"@pulumi/std\";\n\nconst secret1 = new openstack.keymanager.SecretV1(\"secret_1\", {\n name: \"certificate\",\n payload: std.file({\n input: \"certificate.pem\",\n }).then(invoke =\u003e invoke.result),\n secretType: \"certificate\",\n payloadContentType: \"text/plain\",\n acl: {\n read: {\n projectAccess: false,\n users: [\n \"userid1\",\n \"userid2\",\n ],\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\nimport pulumi_std as std\n\nsecret1 = openstack.keymanager.SecretV1(\"secret_1\",\n name=\"certificate\",\n payload=std.file(input=\"certificate.pem\").result,\n secret_type=\"certificate\",\n payload_content_type=\"text/plain\",\n acl=openstack.keymanager.SecretV1AclArgs(\n read=openstack.keymanager.SecretV1AclReadArgs(\n project_access=False,\n users=[\n \"userid1\",\n \"userid2\",\n ],\n ),\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var secret1 = new OpenStack.KeyManager.SecretV1(\"secret_1\", new()\n {\n Name = \"certificate\",\n Payload = Std.File.Invoke(new()\n {\n Input = \"certificate.pem\",\n }).Apply(invoke =\u003e invoke.Result),\n SecretType = \"certificate\",\n PayloadContentType = \"text/plain\",\n Acl = new OpenStack.KeyManager.Inputs.SecretV1AclArgs\n {\n Read = new OpenStack.KeyManager.Inputs.SecretV1AclReadArgs\n {\n ProjectAccess = false,\n Users = new[]\n {\n \"userid1\",\n \"userid2\",\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/keymanager\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tinvokeFile, err := std.File(ctx, \u0026std.FileArgs{\n\t\t\tInput: \"certificate.pem\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = keymanager.NewSecretV1(ctx, \"secret_1\", \u0026keymanager.SecretV1Args{\n\t\t\tName: pulumi.String(\"certificate\"),\n\t\t\tPayload: invokeFile.Result,\n\t\t\tSecretType: pulumi.String(\"certificate\"),\n\t\t\tPayloadContentType: pulumi.String(\"text/plain\"),\n\t\t\tAcl: \u0026keymanager.SecretV1AclArgs{\n\t\t\t\tRead: \u0026keymanager.SecretV1AclReadArgs{\n\t\t\t\t\tProjectAccess: pulumi.Bool(false),\n\t\t\t\t\tUsers: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"userid1\"),\n\t\t\t\t\t\tpulumi.String(\"userid2\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.keymanager.SecretV1;\nimport com.pulumi.openstack.keymanager.SecretV1Args;\nimport com.pulumi.openstack.keymanager.inputs.SecretV1AclArgs;\nimport com.pulumi.openstack.keymanager.inputs.SecretV1AclReadArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var secret1 = new SecretV1(\"secret1\", SecretV1Args.builder() \n .name(\"certificate\")\n .payload(StdFunctions.file(FileArgs.builder()\n .input(\"certificate.pem\")\n .build()).result())\n .secretType(\"certificate\")\n .payloadContentType(\"text/plain\")\n .acl(SecretV1AclArgs.builder()\n .read(SecretV1AclReadArgs.builder()\n .projectAccess(false)\n .users( \n \"userid1\",\n \"userid2\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n secret1:\n type: openstack:keymanager:SecretV1\n name: secret_1\n properties:\n name: certificate\n payload:\n fn::invoke:\n Function: std:file\n Arguments:\n input: certificate.pem\n Return: result\n secretType: certificate\n payloadContentType: text/plain\n acl:\n read:\n projectAccess: false\n users:\n - userid1\n - userid2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nSecrets can be imported using the secret id (the last part of the secret reference), e.g.:\n\n```sh\n$ pulumi import openstack:keymanager/secretV1:SecretV1 secret_1 8a7a79c2-cf17-4e65-b2ae-ddc8bfcf6c74\n```\n", + "description": "## Example Usage\n\n### Simple secret\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst secret1 = new openstack.keymanager.SecretV1(\"secret_1\", {\n algorithm: \"aes\",\n bitLength: 256,\n mode: \"cbc\",\n name: \"mysecret\",\n payload: \"foobar\",\n payloadContentType: \"text/plain\",\n secretType: \"passphrase\",\n metadata: {\n key: \"foo\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nsecret1 = openstack.keymanager.SecretV1(\"secret_1\",\n algorithm=\"aes\",\n bit_length=256,\n mode=\"cbc\",\n name=\"mysecret\",\n payload=\"foobar\",\n payload_content_type=\"text/plain\",\n secret_type=\"passphrase\",\n metadata={\n \"key\": \"foo\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var secret1 = new OpenStack.KeyManager.SecretV1(\"secret_1\", new()\n {\n Algorithm = \"aes\",\n BitLength = 256,\n Mode = \"cbc\",\n Name = \"mysecret\",\n Payload = \"foobar\",\n PayloadContentType = \"text/plain\",\n SecretType = \"passphrase\",\n Metadata = \n {\n { \"key\", \"foo\" },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/keymanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := keymanager.NewSecretV1(ctx, \"secret_1\", \u0026keymanager.SecretV1Args{\n\t\t\tAlgorithm: pulumi.String(\"aes\"),\n\t\t\tBitLength: pulumi.Int(256),\n\t\t\tMode: pulumi.String(\"cbc\"),\n\t\t\tName: pulumi.String(\"mysecret\"),\n\t\t\tPayload: pulumi.String(\"foobar\"),\n\t\t\tPayloadContentType: pulumi.String(\"text/plain\"),\n\t\t\tSecretType: pulumi.String(\"passphrase\"),\n\t\t\tMetadata: pulumi.Map{\n\t\t\t\t\"key\": pulumi.Any(\"foo\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.keymanager.SecretV1;\nimport com.pulumi.openstack.keymanager.SecretV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var secret1 = new SecretV1(\"secret1\", SecretV1Args.builder() \n .algorithm(\"aes\")\n .bitLength(256)\n .mode(\"cbc\")\n .name(\"mysecret\")\n .payload(\"foobar\")\n .payloadContentType(\"text/plain\")\n .secretType(\"passphrase\")\n .metadata(Map.of(\"key\", \"foo\"))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n secret1:\n type: openstack:keymanager:SecretV1\n name: secret_1\n properties:\n algorithm: aes\n bitLength: 256\n mode: cbc\n name: mysecret\n payload: foobar\n payloadContentType: text/plain\n secretType: passphrase\n metadata:\n key: foo\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Secret with whitespaces\n\n\u003e **Note** If you want to store payload with leading or trailing whitespaces,\nit's recommended to store it in a base64 encoding. Plain text payload can also\nwork, but further addind or removing of the leading or trailing whitespaces\nwon't be detected as a state change, e.g. changing plain text payload from\n`password ` to `password` won't recreate the secret.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\nimport * as std from \"@pulumi/std\";\n\nconst secret1 = new openstack.keymanager.SecretV1(\"secret_1\", {\n name: \"password\",\n payload: std.base64encode({\n input: \"password with the whitespace at the end \",\n }).then(invoke =\u003e invoke.result),\n secretType: \"passphrase\",\n payloadContentType: \"application/octet-stream\",\n payloadContentEncoding: \"base64\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\nimport pulumi_std as std\n\nsecret1 = openstack.keymanager.SecretV1(\"secret_1\",\n name=\"password\",\n payload=std.base64encode(input=\"password with the whitespace at the end \").result,\n secret_type=\"passphrase\",\n payload_content_type=\"application/octet-stream\",\n payload_content_encoding=\"base64\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var secret1 = new OpenStack.KeyManager.SecretV1(\"secret_1\", new()\n {\n Name = \"password\",\n Payload = Std.Base64encode.Invoke(new()\n {\n Input = \"password with the whitespace at the end \",\n }).Apply(invoke =\u003e invoke.Result),\n SecretType = \"passphrase\",\n PayloadContentType = \"application/octet-stream\",\n PayloadContentEncoding = \"base64\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/keymanager\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tinvokeBase64encode, err := std.Base64encode(ctx, \u0026std.Base64encodeArgs{\n\t\t\tInput: \"password with the whitespace at the end \",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = keymanager.NewSecretV1(ctx, \"secret_1\", \u0026keymanager.SecretV1Args{\n\t\t\tName: pulumi.String(\"password\"),\n\t\t\tPayload: invokeBase64encode.Result,\n\t\t\tSecretType: pulumi.String(\"passphrase\"),\n\t\t\tPayloadContentType: pulumi.String(\"application/octet-stream\"),\n\t\t\tPayloadContentEncoding: pulumi.String(\"base64\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.keymanager.SecretV1;\nimport com.pulumi.openstack.keymanager.SecretV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var secret1 = new SecretV1(\"secret1\", SecretV1Args.builder() \n .name(\"password\")\n .payload(StdFunctions.base64encode(Base64encodeArgs.builder()\n .input(\"password with the whitespace at the end \")\n .build()).result())\n .secretType(\"passphrase\")\n .payloadContentType(\"application/octet-stream\")\n .payloadContentEncoding(\"base64\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n secret1:\n type: openstack:keymanager:SecretV1\n name: secret_1\n properties:\n name: password\n payload:\n fn::invoke:\n Function: std:base64encode\n Arguments:\n input: 'password with the whitespace at the end '\n Return: result\n secretType: passphrase\n payloadContentType: application/octet-stream\n payloadContentEncoding: base64\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Secret with the ACL\n\n\u003e **Note** Only read ACLs are supported\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\nimport * as std from \"@pulumi/std\";\n\nconst secret1 = new openstack.keymanager.SecretV1(\"secret_1\", {\n name: \"certificate\",\n payload: std.file({\n input: \"certificate.pem\",\n }).then(invoke =\u003e invoke.result),\n secretType: \"certificate\",\n payloadContentType: \"text/plain\",\n acl: {\n read: {\n projectAccess: false,\n users: [\n \"userid1\",\n \"userid2\",\n ],\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\nimport pulumi_std as std\n\nsecret1 = openstack.keymanager.SecretV1(\"secret_1\",\n name=\"certificate\",\n payload=std.file(input=\"certificate.pem\").result,\n secret_type=\"certificate\",\n payload_content_type=\"text/plain\",\n acl=openstack.keymanager.SecretV1AclArgs(\n read=openstack.keymanager.SecretV1AclReadArgs(\n project_access=False,\n users=[\n \"userid1\",\n \"userid2\",\n ],\n ),\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var secret1 = new OpenStack.KeyManager.SecretV1(\"secret_1\", new()\n {\n Name = \"certificate\",\n Payload = Std.File.Invoke(new()\n {\n Input = \"certificate.pem\",\n }).Apply(invoke =\u003e invoke.Result),\n SecretType = \"certificate\",\n PayloadContentType = \"text/plain\",\n Acl = new OpenStack.KeyManager.Inputs.SecretV1AclArgs\n {\n Read = new OpenStack.KeyManager.Inputs.SecretV1AclReadArgs\n {\n ProjectAccess = false,\n Users = new[]\n {\n \"userid1\",\n \"userid2\",\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/keymanager\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tinvokeFile, err := std.File(ctx, \u0026std.FileArgs{\n\t\t\tInput: \"certificate.pem\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = keymanager.NewSecretV1(ctx, \"secret_1\", \u0026keymanager.SecretV1Args{\n\t\t\tName: pulumi.String(\"certificate\"),\n\t\t\tPayload: invokeFile.Result,\n\t\t\tSecretType: pulumi.String(\"certificate\"),\n\t\t\tPayloadContentType: pulumi.String(\"text/plain\"),\n\t\t\tAcl: \u0026keymanager.SecretV1AclArgs{\n\t\t\t\tRead: \u0026keymanager.SecretV1AclReadArgs{\n\t\t\t\t\tProjectAccess: pulumi.Bool(false),\n\t\t\t\t\tUsers: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"userid1\"),\n\t\t\t\t\t\tpulumi.String(\"userid2\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.keymanager.SecretV1;\nimport com.pulumi.openstack.keymanager.SecretV1Args;\nimport com.pulumi.openstack.keymanager.inputs.SecretV1AclArgs;\nimport com.pulumi.openstack.keymanager.inputs.SecretV1AclReadArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var secret1 = new SecretV1(\"secret1\", SecretV1Args.builder() \n .name(\"certificate\")\n .payload(StdFunctions.file(FileArgs.builder()\n .input(\"certificate.pem\")\n .build()).result())\n .secretType(\"certificate\")\n .payloadContentType(\"text/plain\")\n .acl(SecretV1AclArgs.builder()\n .read(SecretV1AclReadArgs.builder()\n .projectAccess(false)\n .users( \n \"userid1\",\n \"userid2\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n secret1:\n type: openstack:keymanager:SecretV1\n name: secret_1\n properties:\n name: certificate\n payload:\n fn::invoke:\n Function: std:file\n Arguments:\n input: certificate.pem\n Return: result\n secretType: certificate\n payloadContentType: text/plain\n acl:\n read:\n projectAccess: false\n users:\n - userid1\n - userid2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nSecrets can be imported using the secret id (the last part of the secret reference), e.g.:\n\n```sh\n$ pulumi import openstack:keymanager/secretV1:SecretV1 secret_1 8a7a79c2-cf17-4e65-b2ae-ddc8bfcf6c74\n```\n", "properties": { "acl": { "$ref": "#/types/openstack:keymanager/SecretV1Acl:SecretV1Acl", @@ -11223,7 +11074,7 @@ } }, "openstack:loadbalancer/l7PolicyV2:L7PolicyV2": { - "description": "Manages a Load Balancer L7 Policy resource within OpenStack.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst network1 = new openstack.networking.Network(\"network_1\", {\n name: \"network_1\",\n adminStateUp: true,\n});\nconst subnet1 = new openstack.networking.Subnet(\"subnet_1\", {\n name: \"subnet_1\",\n cidr: \"192.168.199.0/24\",\n ipVersion: 4,\n networkId: network1.id,\n});\nconst loadbalancer1 = new openstack.loadbalancer.LoadBalancer(\"loadbalancer_1\", {\n name: \"loadbalancer_1\",\n vipSubnetId: subnet1.id,\n});\nconst listener1 = new openstack.loadbalancer.Listener(\"listener_1\", {\n name: \"listener_1\",\n protocol: \"HTTP\",\n protocolPort: 8080,\n loadbalancerId: loadbalancer1.id,\n});\nconst pool1 = new openstack.loadbalancer.Pool(\"pool_1\", {\n name: \"pool_1\",\n protocol: \"HTTP\",\n lbMethod: \"ROUND_ROBIN\",\n loadbalancerId: loadbalancer1.id,\n});\nconst l7policy1 = new openstack.loadbalancer.L7PolicyV2(\"l7policy_1\", {\n name: \"test\",\n action: \"REDIRECT_TO_POOL\",\n description: \"test l7 policy\",\n position: 1,\n listenerId: listener1.id,\n redirectPoolId: pool1.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nnetwork1 = openstack.networking.Network(\"network_1\",\n name=\"network_1\",\n admin_state_up=True)\nsubnet1 = openstack.networking.Subnet(\"subnet_1\",\n name=\"subnet_1\",\n cidr=\"192.168.199.0/24\",\n ip_version=4,\n network_id=network1.id)\nloadbalancer1 = openstack.loadbalancer.LoadBalancer(\"loadbalancer_1\",\n name=\"loadbalancer_1\",\n vip_subnet_id=subnet1.id)\nlistener1 = openstack.loadbalancer.Listener(\"listener_1\",\n name=\"listener_1\",\n protocol=\"HTTP\",\n protocol_port=8080,\n loadbalancer_id=loadbalancer1.id)\npool1 = openstack.loadbalancer.Pool(\"pool_1\",\n name=\"pool_1\",\n protocol=\"HTTP\",\n lb_method=\"ROUND_ROBIN\",\n loadbalancer_id=loadbalancer1.id)\nl7policy1 = openstack.loadbalancer.L7PolicyV2(\"l7policy_1\",\n name=\"test\",\n action=\"REDIRECT_TO_POOL\",\n description=\"test l7 policy\",\n position=1,\n listener_id=listener1.id,\n redirect_pool_id=pool1.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var network1 = new OpenStack.Networking.Network(\"network_1\", new()\n {\n Name = \"network_1\",\n AdminStateUp = true,\n });\n\n var subnet1 = new OpenStack.Networking.Subnet(\"subnet_1\", new()\n {\n Name = \"subnet_1\",\n Cidr = \"192.168.199.0/24\",\n IpVersion = 4,\n NetworkId = network1.Id,\n });\n\n var loadbalancer1 = new OpenStack.LoadBalancer.LoadBalancer(\"loadbalancer_1\", new()\n {\n Name = \"loadbalancer_1\",\n VipSubnetId = subnet1.Id,\n });\n\n var listener1 = new OpenStack.LoadBalancer.Listener(\"listener_1\", new()\n {\n Name = \"listener_1\",\n Protocol = \"HTTP\",\n ProtocolPort = 8080,\n LoadbalancerId = loadbalancer1.Id,\n });\n\n var pool1 = new OpenStack.LoadBalancer.Pool(\"pool_1\", new()\n {\n Name = \"pool_1\",\n Protocol = \"HTTP\",\n LbMethod = \"ROUND_ROBIN\",\n LoadbalancerId = loadbalancer1.Id,\n });\n\n var l7policy1 = new OpenStack.LoadBalancer.L7PolicyV2(\"l7policy_1\", new()\n {\n Name = \"test\",\n Action = \"REDIRECT_TO_POOL\",\n Description = \"test l7 policy\",\n Position = 1,\n ListenerId = listener1.Id,\n RedirectPoolId = pool1.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/loadbalancer\"\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tnetwork1, err := networking.NewNetwork(ctx, \"network_1\", \u0026networking.NetworkArgs{\n\t\t\tName: pulumi.String(\"network_1\"),\n\t\t\tAdminStateUp: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsubnet1, err := networking.NewSubnet(ctx, \"subnet_1\", \u0026networking.SubnetArgs{\n\t\t\tName: pulumi.String(\"subnet_1\"),\n\t\t\tCidr: pulumi.String(\"192.168.199.0/24\"),\n\t\t\tIpVersion: pulumi.Int(4),\n\t\t\tNetworkId: network1.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tloadbalancer1, err := loadbalancer.NewLoadBalancer(ctx, \"loadbalancer_1\", \u0026loadbalancer.LoadBalancerArgs{\n\t\t\tName: pulumi.String(\"loadbalancer_1\"),\n\t\t\tVipSubnetId: subnet1.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tlistener1, err := loadbalancer.NewListener(ctx, \"listener_1\", \u0026loadbalancer.ListenerArgs{\n\t\t\tName: pulumi.String(\"listener_1\"),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tProtocolPort: pulumi.Int(8080),\n\t\t\tLoadbalancerId: loadbalancer1.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpool1, err := loadbalancer.NewPool(ctx, \"pool_1\", \u0026loadbalancer.PoolArgs{\n\t\t\tName: pulumi.String(\"pool_1\"),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tLbMethod: pulumi.String(\"ROUND_ROBIN\"),\n\t\t\tLoadbalancerId: loadbalancer1.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = loadbalancer.NewL7PolicyV2(ctx, \"l7policy_1\", \u0026loadbalancer.L7PolicyV2Args{\n\t\t\tName: pulumi.String(\"test\"),\n\t\t\tAction: pulumi.String(\"REDIRECT_TO_POOL\"),\n\t\t\tDescription: pulumi.String(\"test l7 policy\"),\n\t\t\tPosition: pulumi.Int(1),\n\t\t\tListenerId: listener1.ID(),\n\t\t\tRedirectPoolId: pool1.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.Network;\nimport com.pulumi.openstack.networking.NetworkArgs;\nimport com.pulumi.openstack.networking.Subnet;\nimport com.pulumi.openstack.networking.SubnetArgs;\nimport com.pulumi.openstack.loadbalancer.LoadBalancer;\nimport com.pulumi.openstack.loadbalancer.LoadBalancerArgs;\nimport com.pulumi.openstack.loadbalancer.Listener;\nimport com.pulumi.openstack.loadbalancer.ListenerArgs;\nimport com.pulumi.openstack.loadbalancer.Pool;\nimport com.pulumi.openstack.loadbalancer.PoolArgs;\nimport com.pulumi.openstack.loadbalancer.L7PolicyV2;\nimport com.pulumi.openstack.loadbalancer.L7PolicyV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var network1 = new Network(\"network1\", NetworkArgs.builder() \n .name(\"network_1\")\n .adminStateUp(\"true\")\n .build());\n\n var subnet1 = new Subnet(\"subnet1\", SubnetArgs.builder() \n .name(\"subnet_1\")\n .cidr(\"192.168.199.0/24\")\n .ipVersion(4)\n .networkId(network1.id())\n .build());\n\n var loadbalancer1 = new LoadBalancer(\"loadbalancer1\", LoadBalancerArgs.builder() \n .name(\"loadbalancer_1\")\n .vipSubnetId(subnet1.id())\n .build());\n\n var listener1 = new Listener(\"listener1\", ListenerArgs.builder() \n .name(\"listener_1\")\n .protocol(\"HTTP\")\n .protocolPort(8080)\n .loadbalancerId(loadbalancer1.id())\n .build());\n\n var pool1 = new Pool(\"pool1\", PoolArgs.builder() \n .name(\"pool_1\")\n .protocol(\"HTTP\")\n .lbMethod(\"ROUND_ROBIN\")\n .loadbalancerId(loadbalancer1.id())\n .build());\n\n var l7policy1 = new L7PolicyV2(\"l7policy1\", L7PolicyV2Args.builder() \n .name(\"test\")\n .action(\"REDIRECT_TO_POOL\")\n .description(\"test l7 policy\")\n .position(1)\n .listenerId(listener1.id())\n .redirectPoolId(pool1.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n network1:\n type: openstack:networking:Network\n name: network_1\n properties:\n name: network_1\n adminStateUp: 'true'\n subnet1:\n type: openstack:networking:Subnet\n name: subnet_1\n properties:\n name: subnet_1\n cidr: 192.168.199.0/24\n ipVersion: 4\n networkId: ${network1.id}\n loadbalancer1:\n type: openstack:loadbalancer:LoadBalancer\n name: loadbalancer_1\n properties:\n name: loadbalancer_1\n vipSubnetId: ${subnet1.id}\n listener1:\n type: openstack:loadbalancer:Listener\n name: listener_1\n properties:\n name: listener_1\n protocol: HTTP\n protocolPort: 8080\n loadbalancerId: ${loadbalancer1.id}\n pool1:\n type: openstack:loadbalancer:Pool\n name: pool_1\n properties:\n name: pool_1\n protocol: HTTP\n lbMethod: ROUND_ROBIN\n loadbalancerId: ${loadbalancer1.id}\n l7policy1:\n type: openstack:loadbalancer:L7PolicyV2\n name: l7policy_1\n properties:\n name: test\n action: REDIRECT_TO_POOL\n description: test l7 policy\n position: 1\n listenerId: ${listener1.id}\n redirectPoolId: ${pool1.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nLoad Balancer L7 Policy can be imported using the L7 Policy ID, e.g.:\n\n```sh\n$ pulumi import openstack:loadbalancer/l7PolicyV2:L7PolicyV2 l7policy_1 8a7a79c2-cf17-4e65-b2ae-ddc8bfcf6c74\n```\n", + "description": "Manages a Load Balancer L7 Policy resource within OpenStack.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst network1 = new openstack.networking.Network(\"network_1\", {\n name: \"network_1\",\n adminStateUp: true,\n});\nconst subnet1 = new openstack.networking.Subnet(\"subnet_1\", {\n name: \"subnet_1\",\n cidr: \"192.168.199.0/24\",\n ipVersion: 4,\n networkId: network1.id,\n});\nconst loadbalancer1 = new openstack.loadbalancer.LoadBalancer(\"loadbalancer_1\", {\n name: \"loadbalancer_1\",\n vipSubnetId: subnet1.id,\n});\nconst listener1 = new openstack.loadbalancer.Listener(\"listener_1\", {\n name: \"listener_1\",\n protocol: \"HTTP\",\n protocolPort: 8080,\n loadbalancerId: loadbalancer1.id,\n});\nconst pool1 = new openstack.loadbalancer.Pool(\"pool_1\", {\n name: \"pool_1\",\n protocol: \"HTTP\",\n lbMethod: \"ROUND_ROBIN\",\n loadbalancerId: loadbalancer1.id,\n});\nconst l7policy1 = new openstack.loadbalancer.L7PolicyV2(\"l7policy_1\", {\n name: \"test\",\n action: \"REDIRECT_TO_POOL\",\n description: \"test l7 policy\",\n position: 1,\n listenerId: listener1.id,\n redirectPoolId: pool1.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nnetwork1 = openstack.networking.Network(\"network_1\",\n name=\"network_1\",\n admin_state_up=True)\nsubnet1 = openstack.networking.Subnet(\"subnet_1\",\n name=\"subnet_1\",\n cidr=\"192.168.199.0/24\",\n ip_version=4,\n network_id=network1.id)\nloadbalancer1 = openstack.loadbalancer.LoadBalancer(\"loadbalancer_1\",\n name=\"loadbalancer_1\",\n vip_subnet_id=subnet1.id)\nlistener1 = openstack.loadbalancer.Listener(\"listener_1\",\n name=\"listener_1\",\n protocol=\"HTTP\",\n protocol_port=8080,\n loadbalancer_id=loadbalancer1.id)\npool1 = openstack.loadbalancer.Pool(\"pool_1\",\n name=\"pool_1\",\n protocol=\"HTTP\",\n lb_method=\"ROUND_ROBIN\",\n loadbalancer_id=loadbalancer1.id)\nl7policy1 = openstack.loadbalancer.L7PolicyV2(\"l7policy_1\",\n name=\"test\",\n action=\"REDIRECT_TO_POOL\",\n description=\"test l7 policy\",\n position=1,\n listener_id=listener1.id,\n redirect_pool_id=pool1.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var network1 = new OpenStack.Networking.Network(\"network_1\", new()\n {\n Name = \"network_1\",\n AdminStateUp = true,\n });\n\n var subnet1 = new OpenStack.Networking.Subnet(\"subnet_1\", new()\n {\n Name = \"subnet_1\",\n Cidr = \"192.168.199.0/24\",\n IpVersion = 4,\n NetworkId = network1.Id,\n });\n\n var loadbalancer1 = new OpenStack.LoadBalancer.LoadBalancer(\"loadbalancer_1\", new()\n {\n Name = \"loadbalancer_1\",\n VipSubnetId = subnet1.Id,\n });\n\n var listener1 = new OpenStack.LoadBalancer.Listener(\"listener_1\", new()\n {\n Name = \"listener_1\",\n Protocol = \"HTTP\",\n ProtocolPort = 8080,\n LoadbalancerId = loadbalancer1.Id,\n });\n\n var pool1 = new OpenStack.LoadBalancer.Pool(\"pool_1\", new()\n {\n Name = \"pool_1\",\n Protocol = \"HTTP\",\n LbMethod = \"ROUND_ROBIN\",\n LoadbalancerId = loadbalancer1.Id,\n });\n\n var l7policy1 = new OpenStack.LoadBalancer.L7PolicyV2(\"l7policy_1\", new()\n {\n Name = \"test\",\n Action = \"REDIRECT_TO_POOL\",\n Description = \"test l7 policy\",\n Position = 1,\n ListenerId = listener1.Id,\n RedirectPoolId = pool1.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/loadbalancer\"\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tnetwork1, err := networking.NewNetwork(ctx, \"network_1\", \u0026networking.NetworkArgs{\n\t\t\tName: pulumi.String(\"network_1\"),\n\t\t\tAdminStateUp: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsubnet1, err := networking.NewSubnet(ctx, \"subnet_1\", \u0026networking.SubnetArgs{\n\t\t\tName: pulumi.String(\"subnet_1\"),\n\t\t\tCidr: pulumi.String(\"192.168.199.0/24\"),\n\t\t\tIpVersion: pulumi.Int(4),\n\t\t\tNetworkId: network1.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tloadbalancer1, err := loadbalancer.NewLoadBalancer(ctx, \"loadbalancer_1\", \u0026loadbalancer.LoadBalancerArgs{\n\t\t\tName: pulumi.String(\"loadbalancer_1\"),\n\t\t\tVipSubnetId: subnet1.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tlistener1, err := loadbalancer.NewListener(ctx, \"listener_1\", \u0026loadbalancer.ListenerArgs{\n\t\t\tName: pulumi.String(\"listener_1\"),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tProtocolPort: pulumi.Int(8080),\n\t\t\tLoadbalancerId: loadbalancer1.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpool1, err := loadbalancer.NewPool(ctx, \"pool_1\", \u0026loadbalancer.PoolArgs{\n\t\t\tName: pulumi.String(\"pool_1\"),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tLbMethod: pulumi.String(\"ROUND_ROBIN\"),\n\t\t\tLoadbalancerId: loadbalancer1.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = loadbalancer.NewL7PolicyV2(ctx, \"l7policy_1\", \u0026loadbalancer.L7PolicyV2Args{\n\t\t\tName: pulumi.String(\"test\"),\n\t\t\tAction: pulumi.String(\"REDIRECT_TO_POOL\"),\n\t\t\tDescription: pulumi.String(\"test l7 policy\"),\n\t\t\tPosition: pulumi.Int(1),\n\t\t\tListenerId: listener1.ID(),\n\t\t\tRedirectPoolId: pool1.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.Network;\nimport com.pulumi.openstack.networking.NetworkArgs;\nimport com.pulumi.openstack.networking.Subnet;\nimport com.pulumi.openstack.networking.SubnetArgs;\nimport com.pulumi.openstack.loadbalancer.LoadBalancer;\nimport com.pulumi.openstack.loadbalancer.LoadBalancerArgs;\nimport com.pulumi.openstack.loadbalancer.Listener;\nimport com.pulumi.openstack.loadbalancer.ListenerArgs;\nimport com.pulumi.openstack.loadbalancer.Pool;\nimport com.pulumi.openstack.loadbalancer.PoolArgs;\nimport com.pulumi.openstack.loadbalancer.L7PolicyV2;\nimport com.pulumi.openstack.loadbalancer.L7PolicyV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var network1 = new Network(\"network1\", NetworkArgs.builder() \n .name(\"network_1\")\n .adminStateUp(\"true\")\n .build());\n\n var subnet1 = new Subnet(\"subnet1\", SubnetArgs.builder() \n .name(\"subnet_1\")\n .cidr(\"192.168.199.0/24\")\n .ipVersion(4)\n .networkId(network1.id())\n .build());\n\n var loadbalancer1 = new LoadBalancer(\"loadbalancer1\", LoadBalancerArgs.builder() \n .name(\"loadbalancer_1\")\n .vipSubnetId(subnet1.id())\n .build());\n\n var listener1 = new Listener(\"listener1\", ListenerArgs.builder() \n .name(\"listener_1\")\n .protocol(\"HTTP\")\n .protocolPort(8080)\n .loadbalancerId(loadbalancer1.id())\n .build());\n\n var pool1 = new Pool(\"pool1\", PoolArgs.builder() \n .name(\"pool_1\")\n .protocol(\"HTTP\")\n .lbMethod(\"ROUND_ROBIN\")\n .loadbalancerId(loadbalancer1.id())\n .build());\n\n var l7policy1 = new L7PolicyV2(\"l7policy1\", L7PolicyV2Args.builder() \n .name(\"test\")\n .action(\"REDIRECT_TO_POOL\")\n .description(\"test l7 policy\")\n .position(1)\n .listenerId(listener1.id())\n .redirectPoolId(pool1.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n network1:\n type: openstack:networking:Network\n name: network_1\n properties:\n name: network_1\n adminStateUp: 'true'\n subnet1:\n type: openstack:networking:Subnet\n name: subnet_1\n properties:\n name: subnet_1\n cidr: 192.168.199.0/24\n ipVersion: 4\n networkId: ${network1.id}\n loadbalancer1:\n type: openstack:loadbalancer:LoadBalancer\n name: loadbalancer_1\n properties:\n name: loadbalancer_1\n vipSubnetId: ${subnet1.id}\n listener1:\n type: openstack:loadbalancer:Listener\n name: listener_1\n properties:\n name: listener_1\n protocol: HTTP\n protocolPort: 8080\n loadbalancerId: ${loadbalancer1.id}\n pool1:\n type: openstack:loadbalancer:Pool\n name: pool_1\n properties:\n name: pool_1\n protocol: HTTP\n lbMethod: ROUND_ROBIN\n loadbalancerId: ${loadbalancer1.id}\n l7policy1:\n type: openstack:loadbalancer:L7PolicyV2\n name: l7policy_1\n properties:\n name: test\n action: REDIRECT_TO_POOL\n description: test l7 policy\n position: 1\n listenerId: ${listener1.id}\n redirectPoolId: ${pool1.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nLoad Balancer L7 Policy can be imported using the L7 Policy ID, e.g.:\n\n```sh\n$ pulumi import openstack:loadbalancer/l7PolicyV2:L7PolicyV2 l7policy_1 8a7a79c2-cf17-4e65-b2ae-ddc8bfcf6c74\n```\n", "properties": { "action": { "type": "string", @@ -11374,7 +11225,7 @@ } }, "openstack:loadbalancer/l7RuleV2:L7RuleV2": { - "description": "Manages a V2 L7 Rule resource within OpenStack.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst network1 = new openstack.networking.Network(\"network_1\", {\n name: \"network_1\",\n adminStateUp: true,\n});\nconst subnet1 = new openstack.networking.Subnet(\"subnet_1\", {\n name: \"subnet_1\",\n cidr: \"192.168.199.0/24\",\n ipVersion: 4,\n networkId: network1.id,\n});\nconst loadbalancer1 = new openstack.loadbalancer.LoadBalancer(\"loadbalancer_1\", {\n name: \"loadbalancer_1\",\n vipSubnetId: subnet1.id,\n});\nconst listener1 = new openstack.loadbalancer.Listener(\"listener_1\", {\n name: \"listener_1\",\n protocol: \"HTTP\",\n protocolPort: 8080,\n loadbalancerId: loadbalancer1.id,\n});\nconst pool1 = new openstack.loadbalancer.Pool(\"pool_1\", {\n name: \"pool_1\",\n protocol: \"HTTP\",\n lbMethod: \"ROUND_ROBIN\",\n loadbalancerId: loadbalancer1.id,\n});\nconst l7policy1 = new openstack.loadbalancer.L7PolicyV2(\"l7policy_1\", {\n name: \"test\",\n action: \"REDIRECT_TO_URL\",\n description: \"test description\",\n position: 1,\n listenerId: listener1.id,\n redirectUrl: \"http://www.example.com\",\n});\nconst l7rule1 = new openstack.loadbalancer.L7RuleV2(\"l7rule_1\", {\n l7policyId: l7policy1.id,\n type: \"PATH\",\n compareType: \"EQUAL_TO\",\n value: \"/api\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nnetwork1 = openstack.networking.Network(\"network_1\",\n name=\"network_1\",\n admin_state_up=True)\nsubnet1 = openstack.networking.Subnet(\"subnet_1\",\n name=\"subnet_1\",\n cidr=\"192.168.199.0/24\",\n ip_version=4,\n network_id=network1.id)\nloadbalancer1 = openstack.loadbalancer.LoadBalancer(\"loadbalancer_1\",\n name=\"loadbalancer_1\",\n vip_subnet_id=subnet1.id)\nlistener1 = openstack.loadbalancer.Listener(\"listener_1\",\n name=\"listener_1\",\n protocol=\"HTTP\",\n protocol_port=8080,\n loadbalancer_id=loadbalancer1.id)\npool1 = openstack.loadbalancer.Pool(\"pool_1\",\n name=\"pool_1\",\n protocol=\"HTTP\",\n lb_method=\"ROUND_ROBIN\",\n loadbalancer_id=loadbalancer1.id)\nl7policy1 = openstack.loadbalancer.L7PolicyV2(\"l7policy_1\",\n name=\"test\",\n action=\"REDIRECT_TO_URL\",\n description=\"test description\",\n position=1,\n listener_id=listener1.id,\n redirect_url=\"http://www.example.com\")\nl7rule1 = openstack.loadbalancer.L7RuleV2(\"l7rule_1\",\n l7policy_id=l7policy1.id,\n type=\"PATH\",\n compare_type=\"EQUAL_TO\",\n value=\"/api\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var network1 = new OpenStack.Networking.Network(\"network_1\", new()\n {\n Name = \"network_1\",\n AdminStateUp = true,\n });\n\n var subnet1 = new OpenStack.Networking.Subnet(\"subnet_1\", new()\n {\n Name = \"subnet_1\",\n Cidr = \"192.168.199.0/24\",\n IpVersion = 4,\n NetworkId = network1.Id,\n });\n\n var loadbalancer1 = new OpenStack.LoadBalancer.LoadBalancer(\"loadbalancer_1\", new()\n {\n Name = \"loadbalancer_1\",\n VipSubnetId = subnet1.Id,\n });\n\n var listener1 = new OpenStack.LoadBalancer.Listener(\"listener_1\", new()\n {\n Name = \"listener_1\",\n Protocol = \"HTTP\",\n ProtocolPort = 8080,\n LoadbalancerId = loadbalancer1.Id,\n });\n\n var pool1 = new OpenStack.LoadBalancer.Pool(\"pool_1\", new()\n {\n Name = \"pool_1\",\n Protocol = \"HTTP\",\n LbMethod = \"ROUND_ROBIN\",\n LoadbalancerId = loadbalancer1.Id,\n });\n\n var l7policy1 = new OpenStack.LoadBalancer.L7PolicyV2(\"l7policy_1\", new()\n {\n Name = \"test\",\n Action = \"REDIRECT_TO_URL\",\n Description = \"test description\",\n Position = 1,\n ListenerId = listener1.Id,\n RedirectUrl = \"http://www.example.com\",\n });\n\n var l7rule1 = new OpenStack.LoadBalancer.L7RuleV2(\"l7rule_1\", new()\n {\n L7policyId = l7policy1.Id,\n Type = \"PATH\",\n CompareType = \"EQUAL_TO\",\n Value = \"/api\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/loadbalancer\"\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tnetwork1, err := networking.NewNetwork(ctx, \"network_1\", \u0026networking.NetworkArgs{\n\t\t\tName: pulumi.String(\"network_1\"),\n\t\t\tAdminStateUp: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsubnet1, err := networking.NewSubnet(ctx, \"subnet_1\", \u0026networking.SubnetArgs{\n\t\t\tName: pulumi.String(\"subnet_1\"),\n\t\t\tCidr: pulumi.String(\"192.168.199.0/24\"),\n\t\t\tIpVersion: pulumi.Int(4),\n\t\t\tNetworkId: network1.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tloadbalancer1, err := loadbalancer.NewLoadBalancer(ctx, \"loadbalancer_1\", \u0026loadbalancer.LoadBalancerArgs{\n\t\t\tName: pulumi.String(\"loadbalancer_1\"),\n\t\t\tVipSubnetId: subnet1.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tlistener1, err := loadbalancer.NewListener(ctx, \"listener_1\", \u0026loadbalancer.ListenerArgs{\n\t\t\tName: pulumi.String(\"listener_1\"),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tProtocolPort: pulumi.Int(8080),\n\t\t\tLoadbalancerId: loadbalancer1.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = loadbalancer.NewPool(ctx, \"pool_1\", \u0026loadbalancer.PoolArgs{\n\t\t\tName: pulumi.String(\"pool_1\"),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tLbMethod: pulumi.String(\"ROUND_ROBIN\"),\n\t\t\tLoadbalancerId: loadbalancer1.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tl7policy1, err := loadbalancer.NewL7PolicyV2(ctx, \"l7policy_1\", \u0026loadbalancer.L7PolicyV2Args{\n\t\t\tName: pulumi.String(\"test\"),\n\t\t\tAction: pulumi.String(\"REDIRECT_TO_URL\"),\n\t\t\tDescription: pulumi.String(\"test description\"),\n\t\t\tPosition: pulumi.Int(1),\n\t\t\tListenerId: listener1.ID(),\n\t\t\tRedirectUrl: pulumi.String(\"http://www.example.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = loadbalancer.NewL7RuleV2(ctx, \"l7rule_1\", \u0026loadbalancer.L7RuleV2Args{\n\t\t\tL7policyId: l7policy1.ID(),\n\t\t\tType: pulumi.String(\"PATH\"),\n\t\t\tCompareType: pulumi.String(\"EQUAL_TO\"),\n\t\t\tValue: pulumi.String(\"/api\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.Network;\nimport com.pulumi.openstack.networking.NetworkArgs;\nimport com.pulumi.openstack.networking.Subnet;\nimport com.pulumi.openstack.networking.SubnetArgs;\nimport com.pulumi.openstack.loadbalancer.LoadBalancer;\nimport com.pulumi.openstack.loadbalancer.LoadBalancerArgs;\nimport com.pulumi.openstack.loadbalancer.Listener;\nimport com.pulumi.openstack.loadbalancer.ListenerArgs;\nimport com.pulumi.openstack.loadbalancer.Pool;\nimport com.pulumi.openstack.loadbalancer.PoolArgs;\nimport com.pulumi.openstack.loadbalancer.L7PolicyV2;\nimport com.pulumi.openstack.loadbalancer.L7PolicyV2Args;\nimport com.pulumi.openstack.loadbalancer.L7RuleV2;\nimport com.pulumi.openstack.loadbalancer.L7RuleV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var network1 = new Network(\"network1\", NetworkArgs.builder() \n .name(\"network_1\")\n .adminStateUp(\"true\")\n .build());\n\n var subnet1 = new Subnet(\"subnet1\", SubnetArgs.builder() \n .name(\"subnet_1\")\n .cidr(\"192.168.199.0/24\")\n .ipVersion(4)\n .networkId(network1.id())\n .build());\n\n var loadbalancer1 = new LoadBalancer(\"loadbalancer1\", LoadBalancerArgs.builder() \n .name(\"loadbalancer_1\")\n .vipSubnetId(subnet1.id())\n .build());\n\n var listener1 = new Listener(\"listener1\", ListenerArgs.builder() \n .name(\"listener_1\")\n .protocol(\"HTTP\")\n .protocolPort(8080)\n .loadbalancerId(loadbalancer1.id())\n .build());\n\n var pool1 = new Pool(\"pool1\", PoolArgs.builder() \n .name(\"pool_1\")\n .protocol(\"HTTP\")\n .lbMethod(\"ROUND_ROBIN\")\n .loadbalancerId(loadbalancer1.id())\n .build());\n\n var l7policy1 = new L7PolicyV2(\"l7policy1\", L7PolicyV2Args.builder() \n .name(\"test\")\n .action(\"REDIRECT_TO_URL\")\n .description(\"test description\")\n .position(1)\n .listenerId(listener1.id())\n .redirectUrl(\"http://www.example.com\")\n .build());\n\n var l7rule1 = new L7RuleV2(\"l7rule1\", L7RuleV2Args.builder() \n .l7policyId(l7policy1.id())\n .type(\"PATH\")\n .compareType(\"EQUAL_TO\")\n .value(\"/api\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n network1:\n type: openstack:networking:Network\n name: network_1\n properties:\n name: network_1\n adminStateUp: 'true'\n subnet1:\n type: openstack:networking:Subnet\n name: subnet_1\n properties:\n name: subnet_1\n cidr: 192.168.199.0/24\n ipVersion: 4\n networkId: ${network1.id}\n loadbalancer1:\n type: openstack:loadbalancer:LoadBalancer\n name: loadbalancer_1\n properties:\n name: loadbalancer_1\n vipSubnetId: ${subnet1.id}\n listener1:\n type: openstack:loadbalancer:Listener\n name: listener_1\n properties:\n name: listener_1\n protocol: HTTP\n protocolPort: 8080\n loadbalancerId: ${loadbalancer1.id}\n pool1:\n type: openstack:loadbalancer:Pool\n name: pool_1\n properties:\n name: pool_1\n protocol: HTTP\n lbMethod: ROUND_ROBIN\n loadbalancerId: ${loadbalancer1.id}\n l7policy1:\n type: openstack:loadbalancer:L7PolicyV2\n name: l7policy_1\n properties:\n name: test\n action: REDIRECT_TO_URL\n description: test description\n position: 1\n listenerId: ${listener1.id}\n redirectUrl: http://www.example.com\n l7rule1:\n type: openstack:loadbalancer:L7RuleV2\n name: l7rule_1\n properties:\n l7policyId: ${l7policy1.id}\n type: PATH\n compareType: EQUAL_TO\n value: /api\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nLoad Balancer L7 Rule can be imported using the L7 Policy ID and L7 Rule ID\nseparated by a slash, e.g.:\n\n```sh\n$ pulumi import openstack:loadbalancer/l7RuleV2:L7RuleV2 l7rule_1 e0bd694a-abbe-450e-b329-0931fd1cc5eb/4086b0c9-b18c-4d1c-b6b8-4c56c3ad2a9e\n```\n", + "description": "Manages a V2 L7 Rule resource within OpenStack.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst network1 = new openstack.networking.Network(\"network_1\", {\n name: \"network_1\",\n adminStateUp: true,\n});\nconst subnet1 = new openstack.networking.Subnet(\"subnet_1\", {\n name: \"subnet_1\",\n cidr: \"192.168.199.0/24\",\n ipVersion: 4,\n networkId: network1.id,\n});\nconst loadbalancer1 = new openstack.loadbalancer.LoadBalancer(\"loadbalancer_1\", {\n name: \"loadbalancer_1\",\n vipSubnetId: subnet1.id,\n});\nconst listener1 = new openstack.loadbalancer.Listener(\"listener_1\", {\n name: \"listener_1\",\n protocol: \"HTTP\",\n protocolPort: 8080,\n loadbalancerId: loadbalancer1.id,\n});\nconst pool1 = new openstack.loadbalancer.Pool(\"pool_1\", {\n name: \"pool_1\",\n protocol: \"HTTP\",\n lbMethod: \"ROUND_ROBIN\",\n loadbalancerId: loadbalancer1.id,\n});\nconst l7policy1 = new openstack.loadbalancer.L7PolicyV2(\"l7policy_1\", {\n name: \"test\",\n action: \"REDIRECT_TO_URL\",\n description: \"test description\",\n position: 1,\n listenerId: listener1.id,\n redirectUrl: \"http://www.example.com\",\n});\nconst l7rule1 = new openstack.loadbalancer.L7RuleV2(\"l7rule_1\", {\n l7policyId: l7policy1.id,\n type: \"PATH\",\n compareType: \"EQUAL_TO\",\n value: \"/api\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nnetwork1 = openstack.networking.Network(\"network_1\",\n name=\"network_1\",\n admin_state_up=True)\nsubnet1 = openstack.networking.Subnet(\"subnet_1\",\n name=\"subnet_1\",\n cidr=\"192.168.199.0/24\",\n ip_version=4,\n network_id=network1.id)\nloadbalancer1 = openstack.loadbalancer.LoadBalancer(\"loadbalancer_1\",\n name=\"loadbalancer_1\",\n vip_subnet_id=subnet1.id)\nlistener1 = openstack.loadbalancer.Listener(\"listener_1\",\n name=\"listener_1\",\n protocol=\"HTTP\",\n protocol_port=8080,\n loadbalancer_id=loadbalancer1.id)\npool1 = openstack.loadbalancer.Pool(\"pool_1\",\n name=\"pool_1\",\n protocol=\"HTTP\",\n lb_method=\"ROUND_ROBIN\",\n loadbalancer_id=loadbalancer1.id)\nl7policy1 = openstack.loadbalancer.L7PolicyV2(\"l7policy_1\",\n name=\"test\",\n action=\"REDIRECT_TO_URL\",\n description=\"test description\",\n position=1,\n listener_id=listener1.id,\n redirect_url=\"http://www.example.com\")\nl7rule1 = openstack.loadbalancer.L7RuleV2(\"l7rule_1\",\n l7policy_id=l7policy1.id,\n type=\"PATH\",\n compare_type=\"EQUAL_TO\",\n value=\"/api\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var network1 = new OpenStack.Networking.Network(\"network_1\", new()\n {\n Name = \"network_1\",\n AdminStateUp = true,\n });\n\n var subnet1 = new OpenStack.Networking.Subnet(\"subnet_1\", new()\n {\n Name = \"subnet_1\",\n Cidr = \"192.168.199.0/24\",\n IpVersion = 4,\n NetworkId = network1.Id,\n });\n\n var loadbalancer1 = new OpenStack.LoadBalancer.LoadBalancer(\"loadbalancer_1\", new()\n {\n Name = \"loadbalancer_1\",\n VipSubnetId = subnet1.Id,\n });\n\n var listener1 = new OpenStack.LoadBalancer.Listener(\"listener_1\", new()\n {\n Name = \"listener_1\",\n Protocol = \"HTTP\",\n ProtocolPort = 8080,\n LoadbalancerId = loadbalancer1.Id,\n });\n\n var pool1 = new OpenStack.LoadBalancer.Pool(\"pool_1\", new()\n {\n Name = \"pool_1\",\n Protocol = \"HTTP\",\n LbMethod = \"ROUND_ROBIN\",\n LoadbalancerId = loadbalancer1.Id,\n });\n\n var l7policy1 = new OpenStack.LoadBalancer.L7PolicyV2(\"l7policy_1\", new()\n {\n Name = \"test\",\n Action = \"REDIRECT_TO_URL\",\n Description = \"test description\",\n Position = 1,\n ListenerId = listener1.Id,\n RedirectUrl = \"http://www.example.com\",\n });\n\n var l7rule1 = new OpenStack.LoadBalancer.L7RuleV2(\"l7rule_1\", new()\n {\n L7policyId = l7policy1.Id,\n Type = \"PATH\",\n CompareType = \"EQUAL_TO\",\n Value = \"/api\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/loadbalancer\"\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tnetwork1, err := networking.NewNetwork(ctx, \"network_1\", \u0026networking.NetworkArgs{\n\t\t\tName: pulumi.String(\"network_1\"),\n\t\t\tAdminStateUp: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsubnet1, err := networking.NewSubnet(ctx, \"subnet_1\", \u0026networking.SubnetArgs{\n\t\t\tName: pulumi.String(\"subnet_1\"),\n\t\t\tCidr: pulumi.String(\"192.168.199.0/24\"),\n\t\t\tIpVersion: pulumi.Int(4),\n\t\t\tNetworkId: network1.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tloadbalancer1, err := loadbalancer.NewLoadBalancer(ctx, \"loadbalancer_1\", \u0026loadbalancer.LoadBalancerArgs{\n\t\t\tName: pulumi.String(\"loadbalancer_1\"),\n\t\t\tVipSubnetId: subnet1.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tlistener1, err := loadbalancer.NewListener(ctx, \"listener_1\", \u0026loadbalancer.ListenerArgs{\n\t\t\tName: pulumi.String(\"listener_1\"),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tProtocolPort: pulumi.Int(8080),\n\t\t\tLoadbalancerId: loadbalancer1.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = loadbalancer.NewPool(ctx, \"pool_1\", \u0026loadbalancer.PoolArgs{\n\t\t\tName: pulumi.String(\"pool_1\"),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tLbMethod: pulumi.String(\"ROUND_ROBIN\"),\n\t\t\tLoadbalancerId: loadbalancer1.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tl7policy1, err := loadbalancer.NewL7PolicyV2(ctx, \"l7policy_1\", \u0026loadbalancer.L7PolicyV2Args{\n\t\t\tName: pulumi.String(\"test\"),\n\t\t\tAction: pulumi.String(\"REDIRECT_TO_URL\"),\n\t\t\tDescription: pulumi.String(\"test description\"),\n\t\t\tPosition: pulumi.Int(1),\n\t\t\tListenerId: listener1.ID(),\n\t\t\tRedirectUrl: pulumi.String(\"http://www.example.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = loadbalancer.NewL7RuleV2(ctx, \"l7rule_1\", \u0026loadbalancer.L7RuleV2Args{\n\t\t\tL7policyId: l7policy1.ID(),\n\t\t\tType: pulumi.String(\"PATH\"),\n\t\t\tCompareType: pulumi.String(\"EQUAL_TO\"),\n\t\t\tValue: pulumi.String(\"/api\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.Network;\nimport com.pulumi.openstack.networking.NetworkArgs;\nimport com.pulumi.openstack.networking.Subnet;\nimport com.pulumi.openstack.networking.SubnetArgs;\nimport com.pulumi.openstack.loadbalancer.LoadBalancer;\nimport com.pulumi.openstack.loadbalancer.LoadBalancerArgs;\nimport com.pulumi.openstack.loadbalancer.Listener;\nimport com.pulumi.openstack.loadbalancer.ListenerArgs;\nimport com.pulumi.openstack.loadbalancer.Pool;\nimport com.pulumi.openstack.loadbalancer.PoolArgs;\nimport com.pulumi.openstack.loadbalancer.L7PolicyV2;\nimport com.pulumi.openstack.loadbalancer.L7PolicyV2Args;\nimport com.pulumi.openstack.loadbalancer.L7RuleV2;\nimport com.pulumi.openstack.loadbalancer.L7RuleV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var network1 = new Network(\"network1\", NetworkArgs.builder() \n .name(\"network_1\")\n .adminStateUp(\"true\")\n .build());\n\n var subnet1 = new Subnet(\"subnet1\", SubnetArgs.builder() \n .name(\"subnet_1\")\n .cidr(\"192.168.199.0/24\")\n .ipVersion(4)\n .networkId(network1.id())\n .build());\n\n var loadbalancer1 = new LoadBalancer(\"loadbalancer1\", LoadBalancerArgs.builder() \n .name(\"loadbalancer_1\")\n .vipSubnetId(subnet1.id())\n .build());\n\n var listener1 = new Listener(\"listener1\", ListenerArgs.builder() \n .name(\"listener_1\")\n .protocol(\"HTTP\")\n .protocolPort(8080)\n .loadbalancerId(loadbalancer1.id())\n .build());\n\n var pool1 = new Pool(\"pool1\", PoolArgs.builder() \n .name(\"pool_1\")\n .protocol(\"HTTP\")\n .lbMethod(\"ROUND_ROBIN\")\n .loadbalancerId(loadbalancer1.id())\n .build());\n\n var l7policy1 = new L7PolicyV2(\"l7policy1\", L7PolicyV2Args.builder() \n .name(\"test\")\n .action(\"REDIRECT_TO_URL\")\n .description(\"test description\")\n .position(1)\n .listenerId(listener1.id())\n .redirectUrl(\"http://www.example.com\")\n .build());\n\n var l7rule1 = new L7RuleV2(\"l7rule1\", L7RuleV2Args.builder() \n .l7policyId(l7policy1.id())\n .type(\"PATH\")\n .compareType(\"EQUAL_TO\")\n .value(\"/api\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n network1:\n type: openstack:networking:Network\n name: network_1\n properties:\n name: network_1\n adminStateUp: 'true'\n subnet1:\n type: openstack:networking:Subnet\n name: subnet_1\n properties:\n name: subnet_1\n cidr: 192.168.199.0/24\n ipVersion: 4\n networkId: ${network1.id}\n loadbalancer1:\n type: openstack:loadbalancer:LoadBalancer\n name: loadbalancer_1\n properties:\n name: loadbalancer_1\n vipSubnetId: ${subnet1.id}\n listener1:\n type: openstack:loadbalancer:Listener\n name: listener_1\n properties:\n name: listener_1\n protocol: HTTP\n protocolPort: 8080\n loadbalancerId: ${loadbalancer1.id}\n pool1:\n type: openstack:loadbalancer:Pool\n name: pool_1\n properties:\n name: pool_1\n protocol: HTTP\n lbMethod: ROUND_ROBIN\n loadbalancerId: ${loadbalancer1.id}\n l7policy1:\n type: openstack:loadbalancer:L7PolicyV2\n name: l7policy_1\n properties:\n name: test\n action: REDIRECT_TO_URL\n description: test description\n position: 1\n listenerId: ${listener1.id}\n redirectUrl: http://www.example.com\n l7rule1:\n type: openstack:loadbalancer:L7RuleV2\n name: l7rule_1\n properties:\n l7policyId: ${l7policy1.id}\n type: PATH\n compareType: EQUAL_TO\n value: /api\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nLoad Balancer L7 Rule can be imported using the L7 Policy ID and L7 Rule ID\nseparated by a slash, e.g.:\n\n```sh\n$ pulumi import openstack:loadbalancer/l7RuleV2:L7RuleV2 l7rule_1 e0bd694a-abbe-450e-b329-0931fd1cc5eb/4086b0c9-b18c-4d1c-b6b8-4c56c3ad2a9e\n```\n", "properties": { "adminStateUp": { "type": "boolean", @@ -11524,7 +11375,7 @@ } }, "openstack:loadbalancer/listener:Listener": { - "description": "Manages a V2 listener resource within OpenStack.\n\n\u003e **Note:** This resource has attributes that depend on octavia minor versions.\nPlease ensure your Openstack cloud supports the required minor version.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst listener1 = new openstack.loadbalancer.Listener(\"listener_1\", {\n protocol: \"HTTP\",\n protocolPort: 8080,\n loadbalancerId: \"d9415786-5f1a-428b-b35f-2f1523e146d2\",\n insertHeaders: {\n \"X-Forwarded-For\": \"true\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nlistener1 = openstack.loadbalancer.Listener(\"listener_1\",\n protocol=\"HTTP\",\n protocol_port=8080,\n loadbalancer_id=\"d9415786-5f1a-428b-b35f-2f1523e146d2\",\n insert_headers={\n \"X-Forwarded-For\": \"true\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var listener1 = new OpenStack.LoadBalancer.Listener(\"listener_1\", new()\n {\n Protocol = \"HTTP\",\n ProtocolPort = 8080,\n LoadbalancerId = \"d9415786-5f1a-428b-b35f-2f1523e146d2\",\n InsertHeaders = \n {\n { \"X-Forwarded-For\", \"true\" },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/loadbalancer\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := loadbalancer.NewListener(ctx, \"listener_1\", \u0026loadbalancer.ListenerArgs{\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tProtocolPort: pulumi.Int(8080),\n\t\t\tLoadbalancerId: pulumi.String(\"d9415786-5f1a-428b-b35f-2f1523e146d2\"),\n\t\t\tInsertHeaders: pulumi.Map{\n\t\t\t\t\"X-Forwarded-For\": pulumi.Any(\"true\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.loadbalancer.Listener;\nimport com.pulumi.openstack.loadbalancer.ListenerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var listener1 = new Listener(\"listener1\", ListenerArgs.builder() \n .protocol(\"HTTP\")\n .protocolPort(8080)\n .loadbalancerId(\"d9415786-5f1a-428b-b35f-2f1523e146d2\")\n .insertHeaders(Map.of(\"X-Forwarded-For\", \"true\"))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n listener1:\n type: openstack:loadbalancer:Listener\n name: listener_1\n properties:\n protocol: HTTP\n protocolPort: 8080\n loadbalancerId: d9415786-5f1a-428b-b35f-2f1523e146d2\n insertHeaders:\n X-Forwarded-For: 'true'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nLoad Balancer Listener can be imported using the Listener ID, e.g.:\n\n```sh\n$ pulumi import openstack:loadbalancer/listener:Listener listener_1 b67ce64e-8b26-405d-afeb-4a078901f15a\n```\n", + "description": "Manages a V2 listener resource within OpenStack.\n\n\u003e **Note:** This resource has attributes that depend on octavia minor versions.\nPlease ensure your Openstack cloud supports the required minor version.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst listener1 = new openstack.loadbalancer.Listener(\"listener_1\", {\n protocol: \"HTTP\",\n protocolPort: 8080,\n loadbalancerId: \"d9415786-5f1a-428b-b35f-2f1523e146d2\",\n insertHeaders: {\n \"X-Forwarded-For\": \"true\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nlistener1 = openstack.loadbalancer.Listener(\"listener_1\",\n protocol=\"HTTP\",\n protocol_port=8080,\n loadbalancer_id=\"d9415786-5f1a-428b-b35f-2f1523e146d2\",\n insert_headers={\n \"X-Forwarded-For\": \"true\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var listener1 = new OpenStack.LoadBalancer.Listener(\"listener_1\", new()\n {\n Protocol = \"HTTP\",\n ProtocolPort = 8080,\n LoadbalancerId = \"d9415786-5f1a-428b-b35f-2f1523e146d2\",\n InsertHeaders = \n {\n { \"X-Forwarded-For\", \"true\" },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/loadbalancer\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := loadbalancer.NewListener(ctx, \"listener_1\", \u0026loadbalancer.ListenerArgs{\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tProtocolPort: pulumi.Int(8080),\n\t\t\tLoadbalancerId: pulumi.String(\"d9415786-5f1a-428b-b35f-2f1523e146d2\"),\n\t\t\tInsertHeaders: pulumi.Map{\n\t\t\t\t\"X-Forwarded-For\": pulumi.Any(\"true\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.loadbalancer.Listener;\nimport com.pulumi.openstack.loadbalancer.ListenerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var listener1 = new Listener(\"listener1\", ListenerArgs.builder() \n .protocol(\"HTTP\")\n .protocolPort(8080)\n .loadbalancerId(\"d9415786-5f1a-428b-b35f-2f1523e146d2\")\n .insertHeaders(Map.of(\"X-Forwarded-For\", \"true\"))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n listener1:\n type: openstack:loadbalancer:Listener\n name: listener_1\n properties:\n protocol: HTTP\n protocolPort: 8080\n loadbalancerId: d9415786-5f1a-428b-b35f-2f1523e146d2\n insertHeaders:\n X-Forwarded-For: 'true'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nLoad Balancer Listener can be imported using the Listener ID, e.g.:\n\n```sh\n$ pulumi import openstack:loadbalancer/listener:Listener listener_1 b67ce64e-8b26-405d-afeb-4a078901f15a\n```\n", "properties": { "adminStateUp": { "type": "boolean", @@ -11570,7 +11421,7 @@ }, "protocol": { "type": "string", - "description": "The protocol - can either be TCP, HTTP, HTTPS,\nTERMINATED_HTTPS, UDP (supported only in Octavia), SCTP (supported only\nin **Octavia minor version \u003e= 2.23**) or PROMETHEUS (supported only in\n**Octavia minor version \u003e=2.25**). Changing this creates a new Listener.\n" + "description": "The protocol - can either be TCP, HTTP, HTTPS,\nTERMINATED_HTTPS, UDP, SCTP (supported only in\n**Octavia minor version \u003e= 2.23**) or PROMETHEUS (supported only in\n**Octavia minor version \u003e=2.25**). Changing this creates a new Listener.\n" }, "protocolPort": { "type": "integer", @@ -11674,7 +11525,7 @@ }, "protocol": { "type": "string", - "description": "The protocol - can either be TCP, HTTP, HTTPS,\nTERMINATED_HTTPS, UDP (supported only in Octavia), SCTP (supported only\nin **Octavia minor version \u003e= 2.23**) or PROMETHEUS (supported only in\n**Octavia minor version \u003e=2.25**). Changing this creates a new Listener.\n", + "description": "The protocol - can either be TCP, HTTP, HTTPS,\nTERMINATED_HTTPS, UDP, SCTP (supported only in\n**Octavia minor version \u003e= 2.23**) or PROMETHEUS (supported only in\n**Octavia minor version \u003e=2.25**). Changing this creates a new Listener.\n", "willReplaceOnChanges": true }, "protocolPort": { @@ -11775,7 +11626,7 @@ }, "protocol": { "type": "string", - "description": "The protocol - can either be TCP, HTTP, HTTPS,\nTERMINATED_HTTPS, UDP (supported only in Octavia), SCTP (supported only\nin **Octavia minor version \u003e= 2.23**) or PROMETHEUS (supported only in\n**Octavia minor version \u003e=2.25**). Changing this creates a new Listener.\n", + "description": "The protocol - can either be TCP, HTTP, HTTPS,\nTERMINATED_HTTPS, UDP, SCTP (supported only in\n**Octavia minor version \u003e= 2.23**) or PROMETHEUS (supported only in\n**Octavia minor version \u003e=2.25**). Changing this creates a new Listener.\n", "willReplaceOnChanges": true }, "protocolPort": { @@ -11827,7 +11678,7 @@ } }, "openstack:loadbalancer/loadBalancer:LoadBalancer": { - "description": "Manages a V2 loadbalancer resource within OpenStack.\n\n\u003e **Note:** This resource has attributes that depend on octavia minor versions.\nPlease ensure your Openstack cloud supports the required minor version.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst lb1 = new openstack.loadbalancer.LoadBalancer(\"lb_1\", {vipSubnetId: \"d9415786-5f1a-428b-b35f-2f1523e146d2\"});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nlb1 = openstack.loadbalancer.LoadBalancer(\"lb_1\", vip_subnet_id=\"d9415786-5f1a-428b-b35f-2f1523e146d2\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var lb1 = new OpenStack.LoadBalancer.LoadBalancer(\"lb_1\", new()\n {\n VipSubnetId = \"d9415786-5f1a-428b-b35f-2f1523e146d2\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/loadbalancer\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := loadbalancer.NewLoadBalancer(ctx, \"lb_1\", \u0026loadbalancer.LoadBalancerArgs{\n\t\t\tVipSubnetId: pulumi.String(\"d9415786-5f1a-428b-b35f-2f1523e146d2\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.loadbalancer.LoadBalancer;\nimport com.pulumi.openstack.loadbalancer.LoadBalancerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var lb1 = new LoadBalancer(\"lb1\", LoadBalancerArgs.builder() \n .vipSubnetId(\"d9415786-5f1a-428b-b35f-2f1523e146d2\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n lb1:\n type: openstack:loadbalancer:LoadBalancer\n name: lb_1\n properties:\n vipSubnetId: d9415786-5f1a-428b-b35f-2f1523e146d2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nLoad Balancer can be imported using the Load Balancer ID, e.g.:\n\n```sh\n$ pulumi import openstack:loadbalancer/loadBalancer:LoadBalancer loadbalancer_1 19bcfdc7-c521-4a7e-9459-6750bd16df76\n```\n", + "description": "Manages a V2 loadbalancer resource within OpenStack.\n\n\u003e **Note:** This resource has attributes that depend on octavia minor versions.\nPlease ensure your Openstack cloud supports the required minor version.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst lb1 = new openstack.loadbalancer.LoadBalancer(\"lb_1\", {vipSubnetId: \"d9415786-5f1a-428b-b35f-2f1523e146d2\"});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nlb1 = openstack.loadbalancer.LoadBalancer(\"lb_1\", vip_subnet_id=\"d9415786-5f1a-428b-b35f-2f1523e146d2\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var lb1 = new OpenStack.LoadBalancer.LoadBalancer(\"lb_1\", new()\n {\n VipSubnetId = \"d9415786-5f1a-428b-b35f-2f1523e146d2\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/loadbalancer\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := loadbalancer.NewLoadBalancer(ctx, \"lb_1\", \u0026loadbalancer.LoadBalancerArgs{\n\t\t\tVipSubnetId: pulumi.String(\"d9415786-5f1a-428b-b35f-2f1523e146d2\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.loadbalancer.LoadBalancer;\nimport com.pulumi.openstack.loadbalancer.LoadBalancerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var lb1 = new LoadBalancer(\"lb1\", LoadBalancerArgs.builder() \n .vipSubnetId(\"d9415786-5f1a-428b-b35f-2f1523e146d2\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n lb1:\n type: openstack:loadbalancer:LoadBalancer\n name: lb_1\n properties:\n vipSubnetId: d9415786-5f1a-428b-b35f-2f1523e146d2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nLoad Balancer can be imported using the Load Balancer ID, e.g.:\n\n```sh\n$ pulumi import openstack:loadbalancer/loadBalancer:LoadBalancer loadbalancer_1 19bcfdc7-c521-4a7e-9459-6750bd16df76\n```\n", "properties": { "adminStateUp": { "type": "boolean", @@ -12056,7 +11907,7 @@ } }, "openstack:loadbalancer/member:Member": { - "description": "Manages a V2 member resource within OpenStack.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst member1 = new openstack.loadbalancer.Member(\"member_1\", {\n poolId: \"935685fb-a896-40f9-9ff4-ae531a3a00fe\",\n address: \"192.168.199.23\",\n protocolPort: 8080,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nmember1 = openstack.loadbalancer.Member(\"member_1\",\n pool_id=\"935685fb-a896-40f9-9ff4-ae531a3a00fe\",\n address=\"192.168.199.23\",\n protocol_port=8080)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var member1 = new OpenStack.LoadBalancer.Member(\"member_1\", new()\n {\n PoolId = \"935685fb-a896-40f9-9ff4-ae531a3a00fe\",\n Address = \"192.168.199.23\",\n ProtocolPort = 8080,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/loadbalancer\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := loadbalancer.NewMember(ctx, \"member_1\", \u0026loadbalancer.MemberArgs{\n\t\t\tPoolId: pulumi.String(\"935685fb-a896-40f9-9ff4-ae531a3a00fe\"),\n\t\t\tAddress: pulumi.String(\"192.168.199.23\"),\n\t\t\tProtocolPort: pulumi.Int(8080),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.loadbalancer.Member;\nimport com.pulumi.openstack.loadbalancer.MemberArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var member1 = new Member(\"member1\", MemberArgs.builder() \n .poolId(\"935685fb-a896-40f9-9ff4-ae531a3a00fe\")\n .address(\"192.168.199.23\")\n .protocolPort(8080)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n member1:\n type: openstack:loadbalancer:Member\n name: member_1\n properties:\n poolId: 935685fb-a896-40f9-9ff4-ae531a3a00fe\n address: 192.168.199.23\n protocolPort: 8080\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nLoad Balancer Pool Member can be imported using the Pool ID and Member ID\nseparated by a slash, e.g.:\n\n```sh\n$ pulumi import openstack:loadbalancer/member:Member member_1 c22974d2-4c95-4bcb-9819-0afc5ed303d5/9563b79c-8460-47da-8a95-2711b746510f\n```\n", + "description": "Manages a V2 member resource within OpenStack.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst member1 = new openstack.loadbalancer.Member(\"member_1\", {\n poolId: \"935685fb-a896-40f9-9ff4-ae531a3a00fe\",\n address: \"192.168.199.23\",\n protocolPort: 8080,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nmember1 = openstack.loadbalancer.Member(\"member_1\",\n pool_id=\"935685fb-a896-40f9-9ff4-ae531a3a00fe\",\n address=\"192.168.199.23\",\n protocol_port=8080)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var member1 = new OpenStack.LoadBalancer.Member(\"member_1\", new()\n {\n PoolId = \"935685fb-a896-40f9-9ff4-ae531a3a00fe\",\n Address = \"192.168.199.23\",\n ProtocolPort = 8080,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/loadbalancer\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := loadbalancer.NewMember(ctx, \"member_1\", \u0026loadbalancer.MemberArgs{\n\t\t\tPoolId: pulumi.String(\"935685fb-a896-40f9-9ff4-ae531a3a00fe\"),\n\t\t\tAddress: pulumi.String(\"192.168.199.23\"),\n\t\t\tProtocolPort: pulumi.Int(8080),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.loadbalancer.Member;\nimport com.pulumi.openstack.loadbalancer.MemberArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var member1 = new Member(\"member1\", MemberArgs.builder() \n .poolId(\"935685fb-a896-40f9-9ff4-ae531a3a00fe\")\n .address(\"192.168.199.23\")\n .protocolPort(8080)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n member1:\n type: openstack:loadbalancer:Member\n name: member_1\n properties:\n poolId: 935685fb-a896-40f9-9ff4-ae531a3a00fe\n address: 192.168.199.23\n protocolPort: 8080\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nLoad Balancer Pool Member can be imported using the Pool ID and Member ID\nseparated by a slash, e.g.:\n\n```sh\n$ pulumi import openstack:loadbalancer/member:Member member_1 c22974d2-4c95-4bcb-9819-0afc5ed303d5/9563b79c-8460-47da-8a95-2711b746510f\n```\n", "properties": { "address": { "type": "string", @@ -12239,7 +12090,7 @@ } }, "openstack:loadbalancer/memberV1:MemberV1": { - "description": "Manages a V1 load balancer member resource within OpenStack.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst member1 = new openstack.loadbalancer.MemberV1(\"member_1\", {\n poolId: \"d9415786-5f1a-428b-b35f-2f1523e146d2\",\n address: \"192.168.0.10\",\n port: 80,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nmember1 = openstack.loadbalancer.MemberV1(\"member_1\",\n pool_id=\"d9415786-5f1a-428b-b35f-2f1523e146d2\",\n address=\"192.168.0.10\",\n port=80)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var member1 = new OpenStack.LoadBalancer.MemberV1(\"member_1\", new()\n {\n PoolId = \"d9415786-5f1a-428b-b35f-2f1523e146d2\",\n Address = \"192.168.0.10\",\n Port = 80,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/loadbalancer\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := loadbalancer.NewMemberV1(ctx, \"member_1\", \u0026loadbalancer.MemberV1Args{\n\t\t\tPoolId: pulumi.String(\"d9415786-5f1a-428b-b35f-2f1523e146d2\"),\n\t\t\tAddress: pulumi.String(\"192.168.0.10\"),\n\t\t\tPort: pulumi.Int(80),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.loadbalancer.MemberV1;\nimport com.pulumi.openstack.loadbalancer.MemberV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var member1 = new MemberV1(\"member1\", MemberV1Args.builder() \n .poolId(\"d9415786-5f1a-428b-b35f-2f1523e146d2\")\n .address(\"192.168.0.10\")\n .port(80)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n member1:\n type: openstack:loadbalancer:MemberV1\n name: member_1\n properties:\n poolId: d9415786-5f1a-428b-b35f-2f1523e146d2\n address: 192.168.0.10\n port: 80\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nLoad Balancer Members can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import openstack:loadbalancer/memberV1:MemberV1 member_1 a7498676-4fe4-4243-a864-2eaaf18c73df\n```\n", + "description": "Manages a V1 load balancer member resource within OpenStack.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst member1 = new openstack.loadbalancer.MemberV1(\"member_1\", {\n poolId: \"d9415786-5f1a-428b-b35f-2f1523e146d2\",\n address: \"192.168.0.10\",\n port: 80,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nmember1 = openstack.loadbalancer.MemberV1(\"member_1\",\n pool_id=\"d9415786-5f1a-428b-b35f-2f1523e146d2\",\n address=\"192.168.0.10\",\n port=80)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var member1 = new OpenStack.LoadBalancer.MemberV1(\"member_1\", new()\n {\n PoolId = \"d9415786-5f1a-428b-b35f-2f1523e146d2\",\n Address = \"192.168.0.10\",\n Port = 80,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/loadbalancer\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := loadbalancer.NewMemberV1(ctx, \"member_1\", \u0026loadbalancer.MemberV1Args{\n\t\t\tPoolId: pulumi.String(\"d9415786-5f1a-428b-b35f-2f1523e146d2\"),\n\t\t\tAddress: pulumi.String(\"192.168.0.10\"),\n\t\t\tPort: pulumi.Int(80),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.loadbalancer.MemberV1;\nimport com.pulumi.openstack.loadbalancer.MemberV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var member1 = new MemberV1(\"member1\", MemberV1Args.builder() \n .poolId(\"d9415786-5f1a-428b-b35f-2f1523e146d2\")\n .address(\"192.168.0.10\")\n .port(80)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n member1:\n type: openstack:loadbalancer:MemberV1\n name: member_1\n properties:\n poolId: d9415786-5f1a-428b-b35f-2f1523e146d2\n address: 192.168.0.10\n port: 80\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nLoad Balancer Members can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import openstack:loadbalancer/memberV1:MemberV1 member_1 a7498676-4fe4-4243-a864-2eaaf18c73df\n```\n", "properties": { "address": { "type": "string", @@ -12356,7 +12207,7 @@ } }, "openstack:loadbalancer/members:Members": { - "description": "Manages a V2 members resource within OpenStack (batch members update).\n\n\u003e **Note:** This resource has attributes that depend on octavia minor versions.\nPlease ensure your Openstack cloud supports the required minor version.\n\n\u003e **Note:** This resource works only within Octavia API. For\nlegacy Neutron LBaaS v2 extension please use\nopenstack.loadbalancer.Member resource.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst members1 = new openstack.loadbalancer.Members(\"members_1\", {\n poolId: \"935685fb-a896-40f9-9ff4-ae531a3a00fe\",\n members: [\n {\n address: \"192.168.199.23\",\n protocolPort: 8080,\n },\n {\n address: \"192.168.199.24\",\n protocolPort: 8080,\n },\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nmembers1 = openstack.loadbalancer.Members(\"members_1\",\n pool_id=\"935685fb-a896-40f9-9ff4-ae531a3a00fe\",\n members=[\n openstack.loadbalancer.MembersMemberArgs(\n address=\"192.168.199.23\",\n protocol_port=8080,\n ),\n openstack.loadbalancer.MembersMemberArgs(\n address=\"192.168.199.24\",\n protocol_port=8080,\n ),\n ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var members1 = new OpenStack.LoadBalancer.Members(\"members_1\", new()\n {\n PoolId = \"935685fb-a896-40f9-9ff4-ae531a3a00fe\",\n MemberList = new[]\n {\n new OpenStack.LoadBalancer.Inputs.MembersMemberArgs\n {\n Address = \"192.168.199.23\",\n ProtocolPort = 8080,\n },\n new OpenStack.LoadBalancer.Inputs.MembersMemberArgs\n {\n Address = \"192.168.199.24\",\n ProtocolPort = 8080,\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/loadbalancer\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := loadbalancer.NewMembers(ctx, \"members_1\", \u0026loadbalancer.MembersArgs{\n\t\t\tPoolId: pulumi.String(\"935685fb-a896-40f9-9ff4-ae531a3a00fe\"),\n\t\t\tMembers: loadbalancer.MembersMemberArray{\n\t\t\t\t\u0026loadbalancer.MembersMemberArgs{\n\t\t\t\t\tAddress: pulumi.String(\"192.168.199.23\"),\n\t\t\t\t\tProtocolPort: pulumi.Int(8080),\n\t\t\t\t},\n\t\t\t\t\u0026loadbalancer.MembersMemberArgs{\n\t\t\t\t\tAddress: pulumi.String(\"192.168.199.24\"),\n\t\t\t\t\tProtocolPort: pulumi.Int(8080),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.loadbalancer.Members;\nimport com.pulumi.openstack.loadbalancer.MembersArgs;\nimport com.pulumi.openstack.loadbalancer.inputs.MembersMemberArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var members1 = new Members(\"members1\", MembersArgs.builder() \n .poolId(\"935685fb-a896-40f9-9ff4-ae531a3a00fe\")\n .members( \n MembersMemberArgs.builder()\n .address(\"192.168.199.23\")\n .protocolPort(8080)\n .build(),\n MembersMemberArgs.builder()\n .address(\"192.168.199.24\")\n .protocolPort(8080)\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n members1:\n type: openstack:loadbalancer:Members\n name: members_1\n properties:\n poolId: 935685fb-a896-40f9-9ff4-ae531a3a00fe\n members:\n - address: 192.168.199.23\n protocolPort: 8080\n - address: 192.168.199.24\n protocolPort: 8080\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nLoad Balancer Pool Members can be imported using the Pool ID, e.g.:\n\n```sh\n$ pulumi import openstack:loadbalancer/members:Members members_1 c22974d2-4c95-4bcb-9819-0afc5ed303d5\n```\n", + "description": "Manages a V2 members resource within OpenStack (batch members update).\n\n\u003e **Note:** This resource has attributes that depend on octavia minor versions.\nPlease ensure your Openstack cloud supports the required minor version.\n\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst members1 = new openstack.loadbalancer.Members(\"members_1\", {\n poolId: \"935685fb-a896-40f9-9ff4-ae531a3a00fe\",\n members: [\n {\n address: \"192.168.199.23\",\n protocolPort: 8080,\n },\n {\n address: \"192.168.199.24\",\n protocolPort: 8080,\n },\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nmembers1 = openstack.loadbalancer.Members(\"members_1\",\n pool_id=\"935685fb-a896-40f9-9ff4-ae531a3a00fe\",\n members=[\n openstack.loadbalancer.MembersMemberArgs(\n address=\"192.168.199.23\",\n protocol_port=8080,\n ),\n openstack.loadbalancer.MembersMemberArgs(\n address=\"192.168.199.24\",\n protocol_port=8080,\n ),\n ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var members1 = new OpenStack.LoadBalancer.Members(\"members_1\", new()\n {\n PoolId = \"935685fb-a896-40f9-9ff4-ae531a3a00fe\",\n MemberList = new[]\n {\n new OpenStack.LoadBalancer.Inputs.MembersMemberArgs\n {\n Address = \"192.168.199.23\",\n ProtocolPort = 8080,\n },\n new OpenStack.LoadBalancer.Inputs.MembersMemberArgs\n {\n Address = \"192.168.199.24\",\n ProtocolPort = 8080,\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/loadbalancer\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := loadbalancer.NewMembers(ctx, \"members_1\", \u0026loadbalancer.MembersArgs{\n\t\t\tPoolId: pulumi.String(\"935685fb-a896-40f9-9ff4-ae531a3a00fe\"),\n\t\t\tMembers: loadbalancer.MembersMemberArray{\n\t\t\t\t\u0026loadbalancer.MembersMemberArgs{\n\t\t\t\t\tAddress: pulumi.String(\"192.168.199.23\"),\n\t\t\t\t\tProtocolPort: pulumi.Int(8080),\n\t\t\t\t},\n\t\t\t\t\u0026loadbalancer.MembersMemberArgs{\n\t\t\t\t\tAddress: pulumi.String(\"192.168.199.24\"),\n\t\t\t\t\tProtocolPort: pulumi.Int(8080),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.loadbalancer.Members;\nimport com.pulumi.openstack.loadbalancer.MembersArgs;\nimport com.pulumi.openstack.loadbalancer.inputs.MembersMemberArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var members1 = new Members(\"members1\", MembersArgs.builder() \n .poolId(\"935685fb-a896-40f9-9ff4-ae531a3a00fe\")\n .members( \n MembersMemberArgs.builder()\n .address(\"192.168.199.23\")\n .protocolPort(8080)\n .build(),\n MembersMemberArgs.builder()\n .address(\"192.168.199.24\")\n .protocolPort(8080)\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n members1:\n type: openstack:loadbalancer:Members\n name: members_1\n properties:\n poolId: 935685fb-a896-40f9-9ff4-ae531a3a00fe\n members:\n - address: 192.168.199.23\n protocolPort: 8080\n - address: 192.168.199.24\n protocolPort: 8080\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nLoad Balancer Pool Members can be imported using the Pool ID, e.g.:\n\n```sh\n$ pulumi import openstack:loadbalancer/members:Members members_1 c22974d2-4c95-4bcb-9819-0afc5ed303d5\n```\n", "properties": { "members": { "type": "array", @@ -12440,7 +12291,7 @@ } }, "openstack:loadbalancer/monitor:Monitor": { - "description": "Manages a V2 monitor resource within OpenStack.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst monitor1 = new openstack.loadbalancer.Monitor(\"monitor_1\", {\n poolId: pool1.id,\n type: \"PING\",\n delay: 20,\n timeout: 10,\n maxRetries: 5,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nmonitor1 = openstack.loadbalancer.Monitor(\"monitor_1\",\n pool_id=pool1[\"id\"],\n type=\"PING\",\n delay=20,\n timeout=10,\n max_retries=5)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var monitor1 = new OpenStack.LoadBalancer.Monitor(\"monitor_1\", new()\n {\n PoolId = pool1.Id,\n Type = \"PING\",\n Delay = 20,\n Timeout = 10,\n MaxRetries = 5,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/loadbalancer\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := loadbalancer.NewMonitor(ctx, \"monitor_1\", \u0026loadbalancer.MonitorArgs{\n\t\t\tPoolId: pulumi.Any(pool1.Id),\n\t\t\tType: pulumi.String(\"PING\"),\n\t\t\tDelay: pulumi.Int(20),\n\t\t\tTimeout: pulumi.Int(10),\n\t\t\tMaxRetries: pulumi.Int(5),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.loadbalancer.Monitor;\nimport com.pulumi.openstack.loadbalancer.MonitorArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var monitor1 = new Monitor(\"monitor1\", MonitorArgs.builder() \n .poolId(pool1.id())\n .type(\"PING\")\n .delay(20)\n .timeout(10)\n .maxRetries(5)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n monitor1:\n type: openstack:loadbalancer:Monitor\n name: monitor_1\n properties:\n poolId: ${pool1.id}\n type: PING\n delay: 20\n timeout: 10\n maxRetries: 5\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nLoad Balancer Pool Monitor can be imported using the Monitor ID, e.g.:\n\n```sh\n$ pulumi import openstack:loadbalancer/monitor:Monitor monitor_1 47c26fc3-2403-427a-8c79-1589bd0533c2\n```\nIn case of using OpenContrail, the import may not work properly. If you face an issue, try to import the monitor providing its parent pool ID:\n\n```sh\n$ pulumi import openstack:loadbalancer/monitor:Monitor monitor_1 47c26fc3-2403-427a-8c79-1589bd0533c2/708bc224-0f8c-4981-ac82-97095fe051b6\n```\n", + "description": "Manages a V2 monitor resource within OpenStack.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst monitor1 = new openstack.loadbalancer.Monitor(\"monitor_1\", {\n poolId: pool1.id,\n type: \"PING\",\n delay: 20,\n timeout: 10,\n maxRetries: 5,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nmonitor1 = openstack.loadbalancer.Monitor(\"monitor_1\",\n pool_id=pool1[\"id\"],\n type=\"PING\",\n delay=20,\n timeout=10,\n max_retries=5)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var monitor1 = new OpenStack.LoadBalancer.Monitor(\"monitor_1\", new()\n {\n PoolId = pool1.Id,\n Type = \"PING\",\n Delay = 20,\n Timeout = 10,\n MaxRetries = 5,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/loadbalancer\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := loadbalancer.NewMonitor(ctx, \"monitor_1\", \u0026loadbalancer.MonitorArgs{\n\t\t\tPoolId: pulumi.Any(pool1.Id),\n\t\t\tType: pulumi.String(\"PING\"),\n\t\t\tDelay: pulumi.Int(20),\n\t\t\tTimeout: pulumi.Int(10),\n\t\t\tMaxRetries: pulumi.Int(5),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.loadbalancer.Monitor;\nimport com.pulumi.openstack.loadbalancer.MonitorArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var monitor1 = new Monitor(\"monitor1\", MonitorArgs.builder() \n .poolId(pool1.id())\n .type(\"PING\")\n .delay(20)\n .timeout(10)\n .maxRetries(5)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n monitor1:\n type: openstack:loadbalancer:Monitor\n name: monitor_1\n properties:\n poolId: ${pool1.id}\n type: PING\n delay: 20\n timeout: 10\n maxRetries: 5\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nLoad Balancer Pool Monitor can be imported using the Monitor ID, e.g.:\n\n```sh\n$ pulumi import openstack:loadbalancer/monitor:Monitor monitor_1 47c26fc3-2403-427a-8c79-1589bd0533c2\n```\nIn case of using OpenContrail, the import may not work properly. If you face an issue, try to import the monitor providing its parent pool ID:\n\n```sh\n$ pulumi import openstack:loadbalancer/monitor:Monitor monitor_1 47c26fc3-2403-427a-8c79-1589bd0533c2/708bc224-0f8c-4981-ac82-97095fe051b6\n```\n", "properties": { "adminStateUp": { "type": "boolean", @@ -12638,7 +12489,7 @@ } }, "openstack:loadbalancer/monitorV1:MonitorV1": { - "description": "Manages a V1 load balancer monitor resource within OpenStack.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst monitor1 = new openstack.loadbalancer.MonitorV1(\"monitor_1\", {\n type: \"PING\",\n delay: 30,\n timeout: 5,\n maxRetries: 3,\n adminStateUp: \"true\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nmonitor1 = openstack.loadbalancer.MonitorV1(\"monitor_1\",\n type=\"PING\",\n delay=30,\n timeout=5,\n max_retries=3,\n admin_state_up=\"true\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var monitor1 = new OpenStack.LoadBalancer.MonitorV1(\"monitor_1\", new()\n {\n Type = \"PING\",\n Delay = 30,\n Timeout = 5,\n MaxRetries = 3,\n AdminStateUp = \"true\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/loadbalancer\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := loadbalancer.NewMonitorV1(ctx, \"monitor_1\", \u0026loadbalancer.MonitorV1Args{\n\t\t\tType: pulumi.String(\"PING\"),\n\t\t\tDelay: pulumi.Int(30),\n\t\t\tTimeout: pulumi.Int(5),\n\t\t\tMaxRetries: pulumi.Int(3),\n\t\t\tAdminStateUp: pulumi.String(\"true\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.loadbalancer.MonitorV1;\nimport com.pulumi.openstack.loadbalancer.MonitorV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var monitor1 = new MonitorV1(\"monitor1\", MonitorV1Args.builder() \n .type(\"PING\")\n .delay(30)\n .timeout(5)\n .maxRetries(3)\n .adminStateUp(\"true\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n monitor1:\n type: openstack:loadbalancer:MonitorV1\n name: monitor_1\n properties:\n type: PING\n delay: 30\n timeout: 5\n maxRetries: 3\n adminStateUp: 'true'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nLoad Balancer Members can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import openstack:loadbalancer/monitorV1:MonitorV1 monitor_1 119d7530-72e9-449a-aa97-124a5ef1992c\n```\n", + "description": "Manages a V1 load balancer monitor resource within OpenStack.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst monitor1 = new openstack.loadbalancer.MonitorV1(\"monitor_1\", {\n type: \"PING\",\n delay: 30,\n timeout: 5,\n maxRetries: 3,\n adminStateUp: \"true\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nmonitor1 = openstack.loadbalancer.MonitorV1(\"monitor_1\",\n type=\"PING\",\n delay=30,\n timeout=5,\n max_retries=3,\n admin_state_up=\"true\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var monitor1 = new OpenStack.LoadBalancer.MonitorV1(\"monitor_1\", new()\n {\n Type = \"PING\",\n Delay = 30,\n Timeout = 5,\n MaxRetries = 3,\n AdminStateUp = \"true\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/loadbalancer\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := loadbalancer.NewMonitorV1(ctx, \"monitor_1\", \u0026loadbalancer.MonitorV1Args{\n\t\t\tType: pulumi.String(\"PING\"),\n\t\t\tDelay: pulumi.Int(30),\n\t\t\tTimeout: pulumi.Int(5),\n\t\t\tMaxRetries: pulumi.Int(3),\n\t\t\tAdminStateUp: pulumi.String(\"true\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.loadbalancer.MonitorV1;\nimport com.pulumi.openstack.loadbalancer.MonitorV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var monitor1 = new MonitorV1(\"monitor1\", MonitorV1Args.builder() \n .type(\"PING\")\n .delay(30)\n .timeout(5)\n .maxRetries(3)\n .adminStateUp(\"true\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n monitor1:\n type: openstack:loadbalancer:MonitorV1\n name: monitor_1\n properties:\n type: PING\n delay: 30\n timeout: 5\n maxRetries: 3\n adminStateUp: 'true'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nLoad Balancer Members can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import openstack:loadbalancer/monitorV1:MonitorV1 monitor_1 119d7530-72e9-449a-aa97-124a5ef1992c\n```\n", "properties": { "adminStateUp": { "type": "string", @@ -12792,7 +12643,7 @@ } }, "openstack:loadbalancer/pool:Pool": { - "description": "Manages a V2 pool resource within OpenStack.\n\n\u003e **Note:** This resource has attributes that depend on octavia minor versions.\nPlease ensure your Openstack cloud supports the required minor version.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst pool1 = new openstack.loadbalancer.Pool(\"pool_1\", {\n protocol: \"HTTP\",\n lbMethod: \"ROUND_ROBIN\",\n listenerId: \"d9415786-5f1a-428b-b35f-2f1523e146d2\",\n persistence: {\n type: \"APP_COOKIE\",\n cookieName: \"testCookie\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\npool1 = openstack.loadbalancer.Pool(\"pool_1\",\n protocol=\"HTTP\",\n lb_method=\"ROUND_ROBIN\",\n listener_id=\"d9415786-5f1a-428b-b35f-2f1523e146d2\",\n persistence=openstack.loadbalancer.PoolPersistenceArgs(\n type=\"APP_COOKIE\",\n cookie_name=\"testCookie\",\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var pool1 = new OpenStack.LoadBalancer.Pool(\"pool_1\", new()\n {\n Protocol = \"HTTP\",\n LbMethod = \"ROUND_ROBIN\",\n ListenerId = \"d9415786-5f1a-428b-b35f-2f1523e146d2\",\n Persistence = new OpenStack.LoadBalancer.Inputs.PoolPersistenceArgs\n {\n Type = \"APP_COOKIE\",\n CookieName = \"testCookie\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/loadbalancer\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := loadbalancer.NewPool(ctx, \"pool_1\", \u0026loadbalancer.PoolArgs{\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tLbMethod: pulumi.String(\"ROUND_ROBIN\"),\n\t\t\tListenerId: pulumi.String(\"d9415786-5f1a-428b-b35f-2f1523e146d2\"),\n\t\t\tPersistence: \u0026loadbalancer.PoolPersistenceArgs{\n\t\t\t\tType: pulumi.String(\"APP_COOKIE\"),\n\t\t\t\tCookieName: pulumi.String(\"testCookie\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.loadbalancer.Pool;\nimport com.pulumi.openstack.loadbalancer.PoolArgs;\nimport com.pulumi.openstack.loadbalancer.inputs.PoolPersistenceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var pool1 = new Pool(\"pool1\", PoolArgs.builder() \n .protocol(\"HTTP\")\n .lbMethod(\"ROUND_ROBIN\")\n .listenerId(\"d9415786-5f1a-428b-b35f-2f1523e146d2\")\n .persistence(PoolPersistenceArgs.builder()\n .type(\"APP_COOKIE\")\n .cookieName(\"testCookie\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n pool1:\n type: openstack:loadbalancer:Pool\n name: pool_1\n properties:\n protocol: HTTP\n lbMethod: ROUND_ROBIN\n listenerId: d9415786-5f1a-428b-b35f-2f1523e146d2\n persistence:\n type: APP_COOKIE\n cookieName: testCookie\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nLoad Balancer Pool can be imported using the Pool ID, e.g.:\n\n```sh\n$ pulumi import openstack:loadbalancer/pool:Pool pool_1 60ad9ee4-249a-4d60-a45b-aa60e046c513\n```\n", + "description": "Manages a V2 pool resource within OpenStack.\n\n\u003e **Note:** This resource has attributes that depend on octavia minor versions.\nPlease ensure your Openstack cloud supports the required minor version.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst pool1 = new openstack.loadbalancer.Pool(\"pool_1\", {\n protocol: \"HTTP\",\n lbMethod: \"ROUND_ROBIN\",\n listenerId: \"d9415786-5f1a-428b-b35f-2f1523e146d2\",\n persistence: {\n type: \"APP_COOKIE\",\n cookieName: \"testCookie\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\npool1 = openstack.loadbalancer.Pool(\"pool_1\",\n protocol=\"HTTP\",\n lb_method=\"ROUND_ROBIN\",\n listener_id=\"d9415786-5f1a-428b-b35f-2f1523e146d2\",\n persistence=openstack.loadbalancer.PoolPersistenceArgs(\n type=\"APP_COOKIE\",\n cookie_name=\"testCookie\",\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var pool1 = new OpenStack.LoadBalancer.Pool(\"pool_1\", new()\n {\n Protocol = \"HTTP\",\n LbMethod = \"ROUND_ROBIN\",\n ListenerId = \"d9415786-5f1a-428b-b35f-2f1523e146d2\",\n Persistence = new OpenStack.LoadBalancer.Inputs.PoolPersistenceArgs\n {\n Type = \"APP_COOKIE\",\n CookieName = \"testCookie\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/loadbalancer\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := loadbalancer.NewPool(ctx, \"pool_1\", \u0026loadbalancer.PoolArgs{\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tLbMethod: pulumi.String(\"ROUND_ROBIN\"),\n\t\t\tListenerId: pulumi.String(\"d9415786-5f1a-428b-b35f-2f1523e146d2\"),\n\t\t\tPersistence: \u0026loadbalancer.PoolPersistenceArgs{\n\t\t\t\tType: pulumi.String(\"APP_COOKIE\"),\n\t\t\t\tCookieName: pulumi.String(\"testCookie\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.loadbalancer.Pool;\nimport com.pulumi.openstack.loadbalancer.PoolArgs;\nimport com.pulumi.openstack.loadbalancer.inputs.PoolPersistenceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var pool1 = new Pool(\"pool1\", PoolArgs.builder() \n .protocol(\"HTTP\")\n .lbMethod(\"ROUND_ROBIN\")\n .listenerId(\"d9415786-5f1a-428b-b35f-2f1523e146d2\")\n .persistence(PoolPersistenceArgs.builder()\n .type(\"APP_COOKIE\")\n .cookieName(\"testCookie\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n pool1:\n type: openstack:loadbalancer:Pool\n name: pool_1\n properties:\n protocol: HTTP\n lbMethod: ROUND_ROBIN\n listenerId: d9415786-5f1a-428b-b35f-2f1523e146d2\n persistence:\n type: APP_COOKIE\n cookieName: testCookie\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nLoad Balancer Pool can be imported using the Pool ID, e.g.:\n\n```sh\n$ pulumi import openstack:loadbalancer/pool:Pool pool_1 60ad9ee4-249a-4d60-a45b-aa60e046c513\n```\n", "properties": { "adminStateUp": { "type": "boolean", @@ -12804,7 +12655,7 @@ }, "lbMethod": { "type": "string", - "description": "The load balancing algorithm to\ndistribute traffic to the pool's members. Must be one of\nROUND_ROBIN, LEAST_CONNECTIONS, SOURCE_IP, or SOURCE_IP_PORT (supported only\nin Octavia).\n" + "description": "The load balancing algorithm to\ndistribute traffic to the pool's members. Must be one of\nROUND_ROBIN, LEAST_CONNECTIONS, SOURCE_IP, or SOURCE_IP_PORT.\n" }, "listenerId": { "type": "string", @@ -12824,7 +12675,7 @@ }, "protocol": { "type": "string", - "description": "The protocol - can either be TCP, HTTP, HTTPS, PROXY,\nUDP (supported only in Octavia), PROXYV2 (**Octavia minor version \u003e= 2.22**)\nor SCTP (**Octavia minor version \u003e= 2.23**). Changing this creates a new pool.\n" + "description": "The protocol - can either be TCP, HTTP, HTTPS, PROXY,\nUDP, PROXYV2 (**Octavia minor version \u003e= 2.22**) or SCTP\n(**Octavia minor version \u003e= 2.23**). Changing this creates a new pool.\n" }, "region": { "type": "string", @@ -12854,7 +12705,7 @@ }, "lbMethod": { "type": "string", - "description": "The load balancing algorithm to\ndistribute traffic to the pool's members. Must be one of\nROUND_ROBIN, LEAST_CONNECTIONS, SOURCE_IP, or SOURCE_IP_PORT (supported only\nin Octavia).\n" + "description": "The load balancing algorithm to\ndistribute traffic to the pool's members. Must be one of\nROUND_ROBIN, LEAST_CONNECTIONS, SOURCE_IP, or SOURCE_IP_PORT.\n" }, "listenerId": { "type": "string", @@ -12877,7 +12728,7 @@ }, "protocol": { "type": "string", - "description": "The protocol - can either be TCP, HTTP, HTTPS, PROXY,\nUDP (supported only in Octavia), PROXYV2 (**Octavia minor version \u003e= 2.22**)\nor SCTP (**Octavia minor version \u003e= 2.23**). Changing this creates a new pool.\n", + "description": "The protocol - can either be TCP, HTTP, HTTPS, PROXY,\nUDP, PROXYV2 (**Octavia minor version \u003e= 2.22**) or SCTP\n(**Octavia minor version \u003e= 2.23**). Changing this creates a new pool.\n", "willReplaceOnChanges": true }, "region": { @@ -12908,7 +12759,7 @@ }, "lbMethod": { "type": "string", - "description": "The load balancing algorithm to\ndistribute traffic to the pool's members. Must be one of\nROUND_ROBIN, LEAST_CONNECTIONS, SOURCE_IP, or SOURCE_IP_PORT (supported only\nin Octavia).\n" + "description": "The load balancing algorithm to\ndistribute traffic to the pool's members. Must be one of\nROUND_ROBIN, LEAST_CONNECTIONS, SOURCE_IP, or SOURCE_IP_PORT.\n" }, "listenerId": { "type": "string", @@ -12931,7 +12782,7 @@ }, "protocol": { "type": "string", - "description": "The protocol - can either be TCP, HTTP, HTTPS, PROXY,\nUDP (supported only in Octavia), PROXYV2 (**Octavia minor version \u003e= 2.22**)\nor SCTP (**Octavia minor version \u003e= 2.23**). Changing this creates a new pool.\n", + "description": "The protocol - can either be TCP, HTTP, HTTPS, PROXY,\nUDP, PROXYV2 (**Octavia minor version \u003e= 2.22**) or SCTP\n(**Octavia minor version \u003e= 2.23**). Changing this creates a new pool.\n", "willReplaceOnChanges": true }, "region": { @@ -12949,7 +12800,7 @@ } }, "openstack:loadbalancer/poolV1:PoolV1": { - "description": "Manages a V1 load balancer pool resource within OpenStack.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst pool1 = new openstack.loadbalancer.PoolV1(\"pool_1\", {\n name: \"tf_test_lb_pool\",\n protocol: \"HTTP\",\n subnetId: \"12345\",\n lbMethod: \"ROUND_ROBIN\",\n lbProvider: \"haproxy\",\n monitorIds: [\"67890\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\npool1 = openstack.loadbalancer.PoolV1(\"pool_1\",\n name=\"tf_test_lb_pool\",\n protocol=\"HTTP\",\n subnet_id=\"12345\",\n lb_method=\"ROUND_ROBIN\",\n lb_provider=\"haproxy\",\n monitor_ids=[\"67890\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var pool1 = new OpenStack.LoadBalancer.PoolV1(\"pool_1\", new()\n {\n Name = \"tf_test_lb_pool\",\n Protocol = \"HTTP\",\n SubnetId = \"12345\",\n LbMethod = \"ROUND_ROBIN\",\n LbProvider = \"haproxy\",\n MonitorIds = new[]\n {\n \"67890\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/loadbalancer\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := loadbalancer.NewPoolV1(ctx, \"pool_1\", \u0026loadbalancer.PoolV1Args{\n\t\t\tName: pulumi.String(\"tf_test_lb_pool\"),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tSubnetId: pulumi.String(\"12345\"),\n\t\t\tLbMethod: pulumi.String(\"ROUND_ROBIN\"),\n\t\t\tLbProvider: pulumi.String(\"haproxy\"),\n\t\t\tMonitorIds: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"67890\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.loadbalancer.PoolV1;\nimport com.pulumi.openstack.loadbalancer.PoolV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var pool1 = new PoolV1(\"pool1\", PoolV1Args.builder() \n .name(\"tf_test_lb_pool\")\n .protocol(\"HTTP\")\n .subnetId(\"12345\")\n .lbMethod(\"ROUND_ROBIN\")\n .lbProvider(\"haproxy\")\n .monitorIds(\"67890\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n pool1:\n type: openstack:loadbalancer:PoolV1\n name: pool_1\n properties:\n name: tf_test_lb_pool\n protocol: HTTP\n subnetId: '12345'\n lbMethod: ROUND_ROBIN\n lbProvider: haproxy\n monitorIds:\n - '67890'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Complete Load Balancing Stack Example\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst network1 = new openstack.networking.Network(\"network_1\", {\n name: \"network_1\",\n adminStateUp: true,\n});\nconst subnet1 = new openstack.networking.Subnet(\"subnet_1\", {\n networkId: network1.id,\n cidr: \"192.168.199.0/24\",\n ipVersion: 4,\n});\nconst secgroup1 = new openstack.compute.SecGroup(\"secgroup_1\", {\n name: \"secgroup_1\",\n description: \"Rules for secgroup_1\",\n rules: [\n {\n fromPort: -1,\n toPort: -1,\n ipProtocol: \"icmp\",\n cidr: \"0.0.0.0/0\",\n },\n {\n fromPort: 80,\n toPort: 80,\n ipProtocol: \"tcp\",\n cidr: \"0.0.0.0/0\",\n },\n ],\n});\nconst instance1 = new openstack.compute.Instance(\"instance_1\", {\n name: \"instance_1\",\n securityGroups: [\n \"default\",\n secgroup1.name,\n ],\n networks: [{\n uuid: network1.id,\n }],\n});\nconst instance2 = new openstack.compute.Instance(\"instance_2\", {\n name: \"instance_2\",\n securityGroups: [\n \"default\",\n secgroup1.name,\n ],\n networks: [{\n uuid: network1.id,\n }],\n});\nconst monitor1 = new openstack.loadbalancer.MonitorV1(\"monitor_1\", {\n type: \"TCP\",\n delay: 30,\n timeout: 5,\n maxRetries: 3,\n adminStateUp: \"true\",\n});\nconst pool1 = new openstack.loadbalancer.PoolV1(\"pool_1\", {\n name: \"pool_1\",\n protocol: \"TCP\",\n subnetId: subnet1.id,\n lbMethod: \"ROUND_ROBIN\",\n monitorIds: [monitor1.id],\n});\nconst member1 = new openstack.loadbalancer.MemberV1(\"member_1\", {\n poolId: pool1.id,\n address: instance1.accessIpV4,\n port: 80,\n});\nconst member2 = new openstack.loadbalancer.MemberV1(\"member_2\", {\n poolId: pool1.id,\n address: instance2.accessIpV4,\n port: 80,\n});\nconst vip1 = new openstack.loadbalancer.Vip(\"vip_1\", {\n name: \"vip_1\",\n subnetId: subnet1.id,\n protocol: \"TCP\",\n port: 80,\n poolId: pool1.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nnetwork1 = openstack.networking.Network(\"network_1\",\n name=\"network_1\",\n admin_state_up=True)\nsubnet1 = openstack.networking.Subnet(\"subnet_1\",\n network_id=network1.id,\n cidr=\"192.168.199.0/24\",\n ip_version=4)\nsecgroup1 = openstack.compute.SecGroup(\"secgroup_1\",\n name=\"secgroup_1\",\n description=\"Rules for secgroup_1\",\n rules=[\n openstack.compute.SecGroupRuleArgs(\n from_port=-1,\n to_port=-1,\n ip_protocol=\"icmp\",\n cidr=\"0.0.0.0/0\",\n ),\n openstack.compute.SecGroupRuleArgs(\n from_port=80,\n to_port=80,\n ip_protocol=\"tcp\",\n cidr=\"0.0.0.0/0\",\n ),\n ])\ninstance1 = openstack.compute.Instance(\"instance_1\",\n name=\"instance_1\",\n security_groups=[\n \"default\",\n secgroup1.name,\n ],\n networks=[openstack.compute.InstanceNetworkArgs(\n uuid=network1.id,\n )])\ninstance2 = openstack.compute.Instance(\"instance_2\",\n name=\"instance_2\",\n security_groups=[\n \"default\",\n secgroup1.name,\n ],\n networks=[openstack.compute.InstanceNetworkArgs(\n uuid=network1.id,\n )])\nmonitor1 = openstack.loadbalancer.MonitorV1(\"monitor_1\",\n type=\"TCP\",\n delay=30,\n timeout=5,\n max_retries=3,\n admin_state_up=\"true\")\npool1 = openstack.loadbalancer.PoolV1(\"pool_1\",\n name=\"pool_1\",\n protocol=\"TCP\",\n subnet_id=subnet1.id,\n lb_method=\"ROUND_ROBIN\",\n monitor_ids=[monitor1.id])\nmember1 = openstack.loadbalancer.MemberV1(\"member_1\",\n pool_id=pool1.id,\n address=instance1.access_ip_v4,\n port=80)\nmember2 = openstack.loadbalancer.MemberV1(\"member_2\",\n pool_id=pool1.id,\n address=instance2.access_ip_v4,\n port=80)\nvip1 = openstack.loadbalancer.Vip(\"vip_1\",\n name=\"vip_1\",\n subnet_id=subnet1.id,\n protocol=\"TCP\",\n port=80,\n pool_id=pool1.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var network1 = new OpenStack.Networking.Network(\"network_1\", new()\n {\n Name = \"network_1\",\n AdminStateUp = true,\n });\n\n var subnet1 = new OpenStack.Networking.Subnet(\"subnet_1\", new()\n {\n NetworkId = network1.Id,\n Cidr = \"192.168.199.0/24\",\n IpVersion = 4,\n });\n\n var secgroup1 = new OpenStack.Compute.SecGroup(\"secgroup_1\", new()\n {\n Name = \"secgroup_1\",\n Description = \"Rules for secgroup_1\",\n Rules = new[]\n {\n new OpenStack.Compute.Inputs.SecGroupRuleArgs\n {\n FromPort = -1,\n ToPort = -1,\n IpProtocol = \"icmp\",\n Cidr = \"0.0.0.0/0\",\n },\n new OpenStack.Compute.Inputs.SecGroupRuleArgs\n {\n FromPort = 80,\n ToPort = 80,\n IpProtocol = \"tcp\",\n Cidr = \"0.0.0.0/0\",\n },\n },\n });\n\n var instance1 = new OpenStack.Compute.Instance(\"instance_1\", new()\n {\n Name = \"instance_1\",\n SecurityGroups = new[]\n {\n \"default\",\n secgroup1.Name,\n },\n Networks = new[]\n {\n new OpenStack.Compute.Inputs.InstanceNetworkArgs\n {\n Uuid = network1.Id,\n },\n },\n });\n\n var instance2 = new OpenStack.Compute.Instance(\"instance_2\", new()\n {\n Name = \"instance_2\",\n SecurityGroups = new[]\n {\n \"default\",\n secgroup1.Name,\n },\n Networks = new[]\n {\n new OpenStack.Compute.Inputs.InstanceNetworkArgs\n {\n Uuid = network1.Id,\n },\n },\n });\n\n var monitor1 = new OpenStack.LoadBalancer.MonitorV1(\"monitor_1\", new()\n {\n Type = \"TCP\",\n Delay = 30,\n Timeout = 5,\n MaxRetries = 3,\n AdminStateUp = \"true\",\n });\n\n var pool1 = new OpenStack.LoadBalancer.PoolV1(\"pool_1\", new()\n {\n Name = \"pool_1\",\n Protocol = \"TCP\",\n SubnetId = subnet1.Id,\n LbMethod = \"ROUND_ROBIN\",\n MonitorIds = new[]\n {\n monitor1.Id,\n },\n });\n\n var member1 = new OpenStack.LoadBalancer.MemberV1(\"member_1\", new()\n {\n PoolId = pool1.Id,\n Address = instance1.AccessIpV4,\n Port = 80,\n });\n\n var member2 = new OpenStack.LoadBalancer.MemberV1(\"member_2\", new()\n {\n PoolId = pool1.Id,\n Address = instance2.AccessIpV4,\n Port = 80,\n });\n\n var vip1 = new OpenStack.LoadBalancer.Vip(\"vip_1\", new()\n {\n Name = \"vip_1\",\n SubnetId = subnet1.Id,\n Protocol = \"TCP\",\n Port = 80,\n PoolId = pool1.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/compute\"\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/loadbalancer\"\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tnetwork1, err := networking.NewNetwork(ctx, \"network_1\", \u0026networking.NetworkArgs{\n\t\t\tName: pulumi.String(\"network_1\"),\n\t\t\tAdminStateUp: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsubnet1, err := networking.NewSubnet(ctx, \"subnet_1\", \u0026networking.SubnetArgs{\n\t\t\tNetworkId: network1.ID(),\n\t\t\tCidr: pulumi.String(\"192.168.199.0/24\"),\n\t\t\tIpVersion: pulumi.Int(4),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsecgroup1, err := compute.NewSecGroup(ctx, \"secgroup_1\", \u0026compute.SecGroupArgs{\n\t\t\tName: pulumi.String(\"secgroup_1\"),\n\t\t\tDescription: pulumi.String(\"Rules for secgroup_1\"),\n\t\t\tRules: compute.SecGroupRuleArray{\n\t\t\t\t\u0026compute.SecGroupRuleArgs{\n\t\t\t\t\tFromPort: -1,\n\t\t\t\t\tToPort: -1,\n\t\t\t\t\tIpProtocol: pulumi.String(\"icmp\"),\n\t\t\t\t\tCidr: pulumi.String(\"0.0.0.0/0\"),\n\t\t\t\t},\n\t\t\t\t\u0026compute.SecGroupRuleArgs{\n\t\t\t\t\tFromPort: pulumi.Int(80),\n\t\t\t\t\tToPort: pulumi.Int(80),\n\t\t\t\t\tIpProtocol: pulumi.String(\"tcp\"),\n\t\t\t\t\tCidr: pulumi.String(\"0.0.0.0/0\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinstance1, err := compute.NewInstance(ctx, \"instance_1\", \u0026compute.InstanceArgs{\n\t\t\tName: pulumi.String(\"instance_1\"),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"default\"),\n\t\t\t\tsecgroup1.Name,\n\t\t\t},\n\t\t\tNetworks: compute.InstanceNetworkArray{\n\t\t\t\t\u0026compute.InstanceNetworkArgs{\n\t\t\t\t\tUuid: network1.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinstance2, err := compute.NewInstance(ctx, \"instance_2\", \u0026compute.InstanceArgs{\n\t\t\tName: pulumi.String(\"instance_2\"),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"default\"),\n\t\t\t\tsecgroup1.Name,\n\t\t\t},\n\t\t\tNetworks: compute.InstanceNetworkArray{\n\t\t\t\t\u0026compute.InstanceNetworkArgs{\n\t\t\t\t\tUuid: network1.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmonitor1, err := loadbalancer.NewMonitorV1(ctx, \"monitor_1\", \u0026loadbalancer.MonitorV1Args{\n\t\t\tType: pulumi.String(\"TCP\"),\n\t\t\tDelay: pulumi.Int(30),\n\t\t\tTimeout: pulumi.Int(5),\n\t\t\tMaxRetries: pulumi.Int(3),\n\t\t\tAdminStateUp: pulumi.String(\"true\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpool1, err := loadbalancer.NewPoolV1(ctx, \"pool_1\", \u0026loadbalancer.PoolV1Args{\n\t\t\tName: pulumi.String(\"pool_1\"),\n\t\t\tProtocol: pulumi.String(\"TCP\"),\n\t\t\tSubnetId: subnet1.ID(),\n\t\t\tLbMethod: pulumi.String(\"ROUND_ROBIN\"),\n\t\t\tMonitorIds: pulumi.StringArray{\n\t\t\t\tmonitor1.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = loadbalancer.NewMemberV1(ctx, \"member_1\", \u0026loadbalancer.MemberV1Args{\n\t\t\tPoolId: pool1.ID(),\n\t\t\tAddress: instance1.AccessIpV4,\n\t\t\tPort: pulumi.Int(80),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = loadbalancer.NewMemberV1(ctx, \"member_2\", \u0026loadbalancer.MemberV1Args{\n\t\t\tPoolId: pool1.ID(),\n\t\t\tAddress: instance2.AccessIpV4,\n\t\t\tPort: pulumi.Int(80),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = loadbalancer.NewVip(ctx, \"vip_1\", \u0026loadbalancer.VipArgs{\n\t\t\tName: pulumi.String(\"vip_1\"),\n\t\t\tSubnetId: subnet1.ID(),\n\t\t\tProtocol: pulumi.String(\"TCP\"),\n\t\t\tPort: pulumi.Int(80),\n\t\t\tPoolId: pool1.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Notes\n\nThe `member` block is deprecated in favor of the `openstack.loadbalancer.MemberV1` resource.\n\n## Import\n\nLoad Balancer Pools can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import openstack:loadbalancer/poolV1:PoolV1 pool_1 b255e6ba-02ad-43e6-8951-3428ca26b713\n```\n", + "description": "Manages a V1 load balancer pool resource within OpenStack.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst pool1 = new openstack.loadbalancer.PoolV1(\"pool_1\", {\n name: \"tf_test_lb_pool\",\n protocol: \"HTTP\",\n subnetId: \"12345\",\n lbMethod: \"ROUND_ROBIN\",\n lbProvider: \"haproxy\",\n monitorIds: [\"67890\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\npool1 = openstack.loadbalancer.PoolV1(\"pool_1\",\n name=\"tf_test_lb_pool\",\n protocol=\"HTTP\",\n subnet_id=\"12345\",\n lb_method=\"ROUND_ROBIN\",\n lb_provider=\"haproxy\",\n monitor_ids=[\"67890\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var pool1 = new OpenStack.LoadBalancer.PoolV1(\"pool_1\", new()\n {\n Name = \"tf_test_lb_pool\",\n Protocol = \"HTTP\",\n SubnetId = \"12345\",\n LbMethod = \"ROUND_ROBIN\",\n LbProvider = \"haproxy\",\n MonitorIds = new[]\n {\n \"67890\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/loadbalancer\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := loadbalancer.NewPoolV1(ctx, \"pool_1\", \u0026loadbalancer.PoolV1Args{\n\t\t\tName: pulumi.String(\"tf_test_lb_pool\"),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tSubnetId: pulumi.String(\"12345\"),\n\t\t\tLbMethod: pulumi.String(\"ROUND_ROBIN\"),\n\t\t\tLbProvider: pulumi.String(\"haproxy\"),\n\t\t\tMonitorIds: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"67890\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.loadbalancer.PoolV1;\nimport com.pulumi.openstack.loadbalancer.PoolV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var pool1 = new PoolV1(\"pool1\", PoolV1Args.builder() \n .name(\"tf_test_lb_pool\")\n .protocol(\"HTTP\")\n .subnetId(\"12345\")\n .lbMethod(\"ROUND_ROBIN\")\n .lbProvider(\"haproxy\")\n .monitorIds(\"67890\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n pool1:\n type: openstack:loadbalancer:PoolV1\n name: pool_1\n properties:\n name: tf_test_lb_pool\n protocol: HTTP\n subnetId: '12345'\n lbMethod: ROUND_ROBIN\n lbProvider: haproxy\n monitorIds:\n - '67890'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Complete Load Balancing Stack Example\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst network1 = new openstack.networking.Network(\"network_1\", {\n name: \"network_1\",\n adminStateUp: true,\n});\nconst subnet1 = new openstack.networking.Subnet(\"subnet_1\", {\n networkId: network1.id,\n cidr: \"192.168.199.0/24\",\n ipVersion: 4,\n});\nconst secgroup1 = new openstack.compute.SecGroup(\"secgroup_1\", {\n name: \"secgroup_1\",\n description: \"Rules for secgroup_1\",\n rules: [\n {\n fromPort: -1,\n toPort: -1,\n ipProtocol: \"icmp\",\n cidr: \"0.0.0.0/0\",\n },\n {\n fromPort: 80,\n toPort: 80,\n ipProtocol: \"tcp\",\n cidr: \"0.0.0.0/0\",\n },\n ],\n});\nconst instance1 = new openstack.compute.Instance(\"instance_1\", {\n name: \"instance_1\",\n securityGroups: [\n \"default\",\n secgroup1.name,\n ],\n networks: [{\n uuid: network1.id,\n }],\n});\nconst instance2 = new openstack.compute.Instance(\"instance_2\", {\n name: \"instance_2\",\n securityGroups: [\n \"default\",\n secgroup1.name,\n ],\n networks: [{\n uuid: network1.id,\n }],\n});\nconst monitor1 = new openstack.loadbalancer.MonitorV1(\"monitor_1\", {\n type: \"TCP\",\n delay: 30,\n timeout: 5,\n maxRetries: 3,\n adminStateUp: \"true\",\n});\nconst pool1 = new openstack.loadbalancer.PoolV1(\"pool_1\", {\n name: \"pool_1\",\n protocol: \"TCP\",\n subnetId: subnet1.id,\n lbMethod: \"ROUND_ROBIN\",\n monitorIds: [monitor1.id],\n});\nconst member1 = new openstack.loadbalancer.MemberV1(\"member_1\", {\n poolId: pool1.id,\n address: instance1.accessIpV4,\n port: 80,\n});\nconst member2 = new openstack.loadbalancer.MemberV1(\"member_2\", {\n poolId: pool1.id,\n address: instance2.accessIpV4,\n port: 80,\n});\nconst vip1 = new openstack.loadbalancer.Vip(\"vip_1\", {\n name: \"vip_1\",\n subnetId: subnet1.id,\n protocol: \"TCP\",\n port: 80,\n poolId: pool1.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nnetwork1 = openstack.networking.Network(\"network_1\",\n name=\"network_1\",\n admin_state_up=True)\nsubnet1 = openstack.networking.Subnet(\"subnet_1\",\n network_id=network1.id,\n cidr=\"192.168.199.0/24\",\n ip_version=4)\nsecgroup1 = openstack.compute.SecGroup(\"secgroup_1\",\n name=\"secgroup_1\",\n description=\"Rules for secgroup_1\",\n rules=[\n openstack.compute.SecGroupRuleArgs(\n from_port=-1,\n to_port=-1,\n ip_protocol=\"icmp\",\n cidr=\"0.0.0.0/0\",\n ),\n openstack.compute.SecGroupRuleArgs(\n from_port=80,\n to_port=80,\n ip_protocol=\"tcp\",\n cidr=\"0.0.0.0/0\",\n ),\n ])\ninstance1 = openstack.compute.Instance(\"instance_1\",\n name=\"instance_1\",\n security_groups=[\n \"default\",\n secgroup1.name,\n ],\n networks=[openstack.compute.InstanceNetworkArgs(\n uuid=network1.id,\n )])\ninstance2 = openstack.compute.Instance(\"instance_2\",\n name=\"instance_2\",\n security_groups=[\n \"default\",\n secgroup1.name,\n ],\n networks=[openstack.compute.InstanceNetworkArgs(\n uuid=network1.id,\n )])\nmonitor1 = openstack.loadbalancer.MonitorV1(\"monitor_1\",\n type=\"TCP\",\n delay=30,\n timeout=5,\n max_retries=3,\n admin_state_up=\"true\")\npool1 = openstack.loadbalancer.PoolV1(\"pool_1\",\n name=\"pool_1\",\n protocol=\"TCP\",\n subnet_id=subnet1.id,\n lb_method=\"ROUND_ROBIN\",\n monitor_ids=[monitor1.id])\nmember1 = openstack.loadbalancer.MemberV1(\"member_1\",\n pool_id=pool1.id,\n address=instance1.access_ip_v4,\n port=80)\nmember2 = openstack.loadbalancer.MemberV1(\"member_2\",\n pool_id=pool1.id,\n address=instance2.access_ip_v4,\n port=80)\nvip1 = openstack.loadbalancer.Vip(\"vip_1\",\n name=\"vip_1\",\n subnet_id=subnet1.id,\n protocol=\"TCP\",\n port=80,\n pool_id=pool1.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var network1 = new OpenStack.Networking.Network(\"network_1\", new()\n {\n Name = \"network_1\",\n AdminStateUp = true,\n });\n\n var subnet1 = new OpenStack.Networking.Subnet(\"subnet_1\", new()\n {\n NetworkId = network1.Id,\n Cidr = \"192.168.199.0/24\",\n IpVersion = 4,\n });\n\n var secgroup1 = new OpenStack.Compute.SecGroup(\"secgroup_1\", new()\n {\n Name = \"secgroup_1\",\n Description = \"Rules for secgroup_1\",\n Rules = new[]\n {\n new OpenStack.Compute.Inputs.SecGroupRuleArgs\n {\n FromPort = -1,\n ToPort = -1,\n IpProtocol = \"icmp\",\n Cidr = \"0.0.0.0/0\",\n },\n new OpenStack.Compute.Inputs.SecGroupRuleArgs\n {\n FromPort = 80,\n ToPort = 80,\n IpProtocol = \"tcp\",\n Cidr = \"0.0.0.0/0\",\n },\n },\n });\n\n var instance1 = new OpenStack.Compute.Instance(\"instance_1\", new()\n {\n Name = \"instance_1\",\n SecurityGroups = new[]\n {\n \"default\",\n secgroup1.Name,\n },\n Networks = new[]\n {\n new OpenStack.Compute.Inputs.InstanceNetworkArgs\n {\n Uuid = network1.Id,\n },\n },\n });\n\n var instance2 = new OpenStack.Compute.Instance(\"instance_2\", new()\n {\n Name = \"instance_2\",\n SecurityGroups = new[]\n {\n \"default\",\n secgroup1.Name,\n },\n Networks = new[]\n {\n new OpenStack.Compute.Inputs.InstanceNetworkArgs\n {\n Uuid = network1.Id,\n },\n },\n });\n\n var monitor1 = new OpenStack.LoadBalancer.MonitorV1(\"monitor_1\", new()\n {\n Type = \"TCP\",\n Delay = 30,\n Timeout = 5,\n MaxRetries = 3,\n AdminStateUp = \"true\",\n });\n\n var pool1 = new OpenStack.LoadBalancer.PoolV1(\"pool_1\", new()\n {\n Name = \"pool_1\",\n Protocol = \"TCP\",\n SubnetId = subnet1.Id,\n LbMethod = \"ROUND_ROBIN\",\n MonitorIds = new[]\n {\n monitor1.Id,\n },\n });\n\n var member1 = new OpenStack.LoadBalancer.MemberV1(\"member_1\", new()\n {\n PoolId = pool1.Id,\n Address = instance1.AccessIpV4,\n Port = 80,\n });\n\n var member2 = new OpenStack.LoadBalancer.MemberV1(\"member_2\", new()\n {\n PoolId = pool1.Id,\n Address = instance2.AccessIpV4,\n Port = 80,\n });\n\n var vip1 = new OpenStack.LoadBalancer.Vip(\"vip_1\", new()\n {\n Name = \"vip_1\",\n SubnetId = subnet1.Id,\n Protocol = \"TCP\",\n Port = 80,\n PoolId = pool1.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/compute\"\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/loadbalancer\"\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tnetwork1, err := networking.NewNetwork(ctx, \"network_1\", \u0026networking.NetworkArgs{\n\t\t\tName: pulumi.String(\"network_1\"),\n\t\t\tAdminStateUp: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsubnet1, err := networking.NewSubnet(ctx, \"subnet_1\", \u0026networking.SubnetArgs{\n\t\t\tNetworkId: network1.ID(),\n\t\t\tCidr: pulumi.String(\"192.168.199.0/24\"),\n\t\t\tIpVersion: pulumi.Int(4),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsecgroup1, err := compute.NewSecGroup(ctx, \"secgroup_1\", \u0026compute.SecGroupArgs{\n\t\t\tName: pulumi.String(\"secgroup_1\"),\n\t\t\tDescription: pulumi.String(\"Rules for secgroup_1\"),\n\t\t\tRules: compute.SecGroupRuleArray{\n\t\t\t\t\u0026compute.SecGroupRuleArgs{\n\t\t\t\t\tFromPort: -1,\n\t\t\t\t\tToPort: -1,\n\t\t\t\t\tIpProtocol: pulumi.String(\"icmp\"),\n\t\t\t\t\tCidr: pulumi.String(\"0.0.0.0/0\"),\n\t\t\t\t},\n\t\t\t\t\u0026compute.SecGroupRuleArgs{\n\t\t\t\t\tFromPort: pulumi.Int(80),\n\t\t\t\t\tToPort: pulumi.Int(80),\n\t\t\t\t\tIpProtocol: pulumi.String(\"tcp\"),\n\t\t\t\t\tCidr: pulumi.String(\"0.0.0.0/0\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinstance1, err := compute.NewInstance(ctx, \"instance_1\", \u0026compute.InstanceArgs{\n\t\t\tName: pulumi.String(\"instance_1\"),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"default\"),\n\t\t\t\tsecgroup1.Name,\n\t\t\t},\n\t\t\tNetworks: compute.InstanceNetworkArray{\n\t\t\t\t\u0026compute.InstanceNetworkArgs{\n\t\t\t\t\tUuid: network1.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinstance2, err := compute.NewInstance(ctx, \"instance_2\", \u0026compute.InstanceArgs{\n\t\t\tName: pulumi.String(\"instance_2\"),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"default\"),\n\t\t\t\tsecgroup1.Name,\n\t\t\t},\n\t\t\tNetworks: compute.InstanceNetworkArray{\n\t\t\t\t\u0026compute.InstanceNetworkArgs{\n\t\t\t\t\tUuid: network1.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmonitor1, err := loadbalancer.NewMonitorV1(ctx, \"monitor_1\", \u0026loadbalancer.MonitorV1Args{\n\t\t\tType: pulumi.String(\"TCP\"),\n\t\t\tDelay: pulumi.Int(30),\n\t\t\tTimeout: pulumi.Int(5),\n\t\t\tMaxRetries: pulumi.Int(3),\n\t\t\tAdminStateUp: pulumi.String(\"true\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpool1, err := loadbalancer.NewPoolV1(ctx, \"pool_1\", \u0026loadbalancer.PoolV1Args{\n\t\t\tName: pulumi.String(\"pool_1\"),\n\t\t\tProtocol: pulumi.String(\"TCP\"),\n\t\t\tSubnetId: subnet1.ID(),\n\t\t\tLbMethod: pulumi.String(\"ROUND_ROBIN\"),\n\t\t\tMonitorIds: pulumi.StringArray{\n\t\t\t\tmonitor1.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = loadbalancer.NewMemberV1(ctx, \"member_1\", \u0026loadbalancer.MemberV1Args{\n\t\t\tPoolId: pool1.ID(),\n\t\t\tAddress: instance1.AccessIpV4,\n\t\t\tPort: pulumi.Int(80),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = loadbalancer.NewMemberV1(ctx, \"member_2\", \u0026loadbalancer.MemberV1Args{\n\t\t\tPoolId: pool1.ID(),\n\t\t\tAddress: instance2.AccessIpV4,\n\t\t\tPort: pulumi.Int(80),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = loadbalancer.NewVip(ctx, \"vip_1\", \u0026loadbalancer.VipArgs{\n\t\t\tName: pulumi.String(\"vip_1\"),\n\t\t\tSubnetId: subnet1.ID(),\n\t\t\tProtocol: pulumi.String(\"TCP\"),\n\t\t\tPort: pulumi.Int(80),\n\t\t\tPoolId: pool1.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nLoad Balancer Pools can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import openstack:loadbalancer/poolV1:PoolV1 pool_1 b255e6ba-02ad-43e6-8951-3428ca26b713\n```\n", "properties": { "lbMethod": { "type": "string", @@ -12959,14 +12810,6 @@ "type": "string", "description": "The backend load balancing provider. For example:\n`haproxy`, `F5`, etc.\n" }, - "members": { - "type": "array", - "items": { - "type": "string" - }, - "description": "An existing node to add to the pool. Changing this\nupdates the members of the pool. The member object structure is documented\nbelow. Please note that the `member` block is deprecated in favor of the\n`openstack.loadbalancer.MemberV1` resource.\n", - "deprecationMessage": "Use openstack.loadbalancer.MemberV1 instead" - }, "monitorIds": { "type": "array", "items": { @@ -13014,14 +12857,6 @@ "description": "The backend load balancing provider. For example:\n`haproxy`, `F5`, etc.\n", "willReplaceOnChanges": true }, - "members": { - "type": "array", - "items": { - "type": "string" - }, - "description": "An existing node to add to the pool. Changing this\nupdates the members of the pool. The member object structure is documented\nbelow. Please note that the `member` block is deprecated in favor of the\n`openstack.loadbalancer.MemberV1` resource.\n", - "deprecationMessage": "Use openstack.loadbalancer.MemberV1 instead" - }, "monitorIds": { "type": "array", "items": { @@ -13071,14 +12906,6 @@ "description": "The backend load balancing provider. For example:\n`haproxy`, `F5`, etc.\n", "willReplaceOnChanges": true }, - "members": { - "type": "array", - "items": { - "type": "string" - }, - "description": "An existing node to add to the pool. Changing this\nupdates the members of the pool. The member object structure is documented\nbelow. Please note that the `member` block is deprecated in favor of the\n`openstack.loadbalancer.MemberV1` resource.\n", - "deprecationMessage": "Use openstack.loadbalancer.MemberV1 instead" - }, "monitorIds": { "type": "array", "items": { @@ -13115,7 +12942,7 @@ } }, "openstack:loadbalancer/quota:Quota": { - "description": "Manages a V2 load balancer quota resource within OpenStack.\n\n\u003e **Note:** This usually requires admin privileges.\n\n\u003e **Note:** This resource is only available for Octavia.\n\n\u003e **Note:** This resource has a no-op deletion so no actual actions will be done against the OpenStack\n API in case of delete call.\n\n\u003e **Note:** This resource has all-in creation so all optional quota arguments that were not specified are\n created with zero value.\n\n\u003e **Note:** This resource has attributes that depend on octavia minor versions.\nPlease ensure your Openstack cloud supports the required minor version.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst project1 = new openstack.identity.Project(\"project_1\", {name: \"project_1\"});\nconst quota1 = new openstack.loadbalancer.Quota(\"quota_1\", {\n projectId: project1.id,\n loadbalancer: 6,\n listener: 7,\n member: 8,\n pool: 9,\n healthMonitor: 10,\n l7Policy: 11,\n l7Rule: 12,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nproject1 = openstack.identity.Project(\"project_1\", name=\"project_1\")\nquota1 = openstack.loadbalancer.Quota(\"quota_1\",\n project_id=project1.id,\n loadbalancer=6,\n listener=7,\n member=8,\n pool=9,\n health_monitor=10,\n l7_policy=11,\n l7_rule=12)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var project1 = new OpenStack.Identity.Project(\"project_1\", new()\n {\n Name = \"project_1\",\n });\n\n var quota1 = new OpenStack.LoadBalancer.Quota(\"quota_1\", new()\n {\n ProjectId = project1.Id,\n Loadbalancer = 6,\n Listener = 7,\n Member = 8,\n Pool = 9,\n HealthMonitor = 10,\n L7Policy = 11,\n L7Rule = 12,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/identity\"\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/loadbalancer\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tproject1, err := identity.NewProject(ctx, \"project_1\", \u0026identity.ProjectArgs{\n\t\t\tName: pulumi.String(\"project_1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = loadbalancer.NewQuota(ctx, \"quota_1\", \u0026loadbalancer.QuotaArgs{\n\t\t\tProjectId: project1.ID(),\n\t\t\tLoadbalancer: pulumi.Int(6),\n\t\t\tListener: pulumi.Int(7),\n\t\t\tMember: pulumi.Int(8),\n\t\t\tPool: pulumi.Int(9),\n\t\t\tHealthMonitor: pulumi.Int(10),\n\t\t\tL7Policy: pulumi.Int(11),\n\t\t\tL7Rule: pulumi.Int(12),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.identity.Project;\nimport com.pulumi.openstack.identity.ProjectArgs;\nimport com.pulumi.openstack.loadbalancer.Quota;\nimport com.pulumi.openstack.loadbalancer.QuotaArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var project1 = new Project(\"project1\", ProjectArgs.builder() \n .name(\"project_1\")\n .build());\n\n var quota1 = new Quota(\"quota1\", QuotaArgs.builder() \n .projectId(project1.id())\n .loadbalancer(6)\n .listener(7)\n .member(8)\n .pool(9)\n .healthMonitor(10)\n .l7Policy(11)\n .l7Rule(12)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n project1:\n type: openstack:identity:Project\n name: project_1\n properties:\n name: project_1\n quota1:\n type: openstack:loadbalancer:Quota\n name: quota_1\n properties:\n projectId: ${project1.id}\n loadbalancer: 6\n listener: 7\n member: 8\n pool: 9\n healthMonitor: 10\n l7Policy: 11\n l7Rule: 12\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nQuotas can be imported using the `project_id/region_name`, where region_name is the\none defined is the Openstack credentials that are in use. E.g.\n\n```sh\n$ pulumi import openstack:loadbalancer/quota:Quota quota_1 2a0f2240-c5e6-41de-896d-e80d97428d6b/region_1\n```\n", + "description": "Manages a V2 load balancer quota resource within OpenStack.\n\n\u003e **Note:** This usually requires admin privileges.\n\n\u003e **Note:** This resource has a no-op deletion so no actual actions will be done against the OpenStack\n API in case of delete call.\n\n\u003e **Note:** This resource has all-in creation so all optional quota arguments that were not specified are\n created with zero value.\n\n\u003e **Note:** This resource has attributes that depend on octavia minor versions.\nPlease ensure your Openstack cloud supports the required minor version.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst project1 = new openstack.identity.Project(\"project_1\", {name: \"project_1\"});\nconst quota1 = new openstack.loadbalancer.Quota(\"quota_1\", {\n projectId: project1.id,\n loadbalancer: 6,\n listener: 7,\n member: 8,\n pool: 9,\n healthMonitor: 10,\n l7Policy: 11,\n l7Rule: 12,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nproject1 = openstack.identity.Project(\"project_1\", name=\"project_1\")\nquota1 = openstack.loadbalancer.Quota(\"quota_1\",\n project_id=project1.id,\n loadbalancer=6,\n listener=7,\n member=8,\n pool=9,\n health_monitor=10,\n l7_policy=11,\n l7_rule=12)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var project1 = new OpenStack.Identity.Project(\"project_1\", new()\n {\n Name = \"project_1\",\n });\n\n var quota1 = new OpenStack.LoadBalancer.Quota(\"quota_1\", new()\n {\n ProjectId = project1.Id,\n Loadbalancer = 6,\n Listener = 7,\n Member = 8,\n Pool = 9,\n HealthMonitor = 10,\n L7Policy = 11,\n L7Rule = 12,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/identity\"\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/loadbalancer\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tproject1, err := identity.NewProject(ctx, \"project_1\", \u0026identity.ProjectArgs{\n\t\t\tName: pulumi.String(\"project_1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = loadbalancer.NewQuota(ctx, \"quota_1\", \u0026loadbalancer.QuotaArgs{\n\t\t\tProjectId: project1.ID(),\n\t\t\tLoadbalancer: pulumi.Int(6),\n\t\t\tListener: pulumi.Int(7),\n\t\t\tMember: pulumi.Int(8),\n\t\t\tPool: pulumi.Int(9),\n\t\t\tHealthMonitor: pulumi.Int(10),\n\t\t\tL7Policy: pulumi.Int(11),\n\t\t\tL7Rule: pulumi.Int(12),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.identity.Project;\nimport com.pulumi.openstack.identity.ProjectArgs;\nimport com.pulumi.openstack.loadbalancer.Quota;\nimport com.pulumi.openstack.loadbalancer.QuotaArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var project1 = new Project(\"project1\", ProjectArgs.builder() \n .name(\"project_1\")\n .build());\n\n var quota1 = new Quota(\"quota1\", QuotaArgs.builder() \n .projectId(project1.id())\n .loadbalancer(6)\n .listener(7)\n .member(8)\n .pool(9)\n .healthMonitor(10)\n .l7Policy(11)\n .l7Rule(12)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n project1:\n type: openstack:identity:Project\n name: project_1\n properties:\n name: project_1\n quota1:\n type: openstack:loadbalancer:Quota\n name: quota_1\n properties:\n projectId: ${project1.id}\n loadbalancer: 6\n listener: 7\n member: 8\n pool: 9\n healthMonitor: 10\n l7Policy: 11\n l7Rule: 12\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nQuotas can be imported using the `project_id/region_name`, where region_name is the\none defined is the Openstack credentials that are in use. E.g.\n\n```sh\n$ pulumi import openstack:loadbalancer/quota:Quota quota_1 2a0f2240-c5e6-41de-896d-e80d97428d6b/region_1\n```\n", "properties": { "healthMonitor": { "type": "integer", @@ -13254,7 +13081,7 @@ } }, "openstack:loadbalancer/vip:Vip": { - "description": "Manages a V1 load balancer vip resource within OpenStack.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst vip1 = new openstack.loadbalancer.Vip(\"vip_1\", {\n name: \"tf_test_lb_vip\",\n subnetId: \"12345\",\n protocol: \"HTTP\",\n port: 80,\n poolId: \"67890\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nvip1 = openstack.loadbalancer.Vip(\"vip_1\",\n name=\"tf_test_lb_vip\",\n subnet_id=\"12345\",\n protocol=\"HTTP\",\n port=80,\n pool_id=\"67890\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var vip1 = new OpenStack.LoadBalancer.Vip(\"vip_1\", new()\n {\n Name = \"tf_test_lb_vip\",\n SubnetId = \"12345\",\n Protocol = \"HTTP\",\n Port = 80,\n PoolId = \"67890\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/loadbalancer\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := loadbalancer.NewVip(ctx, \"vip_1\", \u0026loadbalancer.VipArgs{\n\t\t\tName: pulumi.String(\"tf_test_lb_vip\"),\n\t\t\tSubnetId: pulumi.String(\"12345\"),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tPort: pulumi.Int(80),\n\t\t\tPoolId: pulumi.String(\"67890\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.loadbalancer.Vip;\nimport com.pulumi.openstack.loadbalancer.VipArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var vip1 = new Vip(\"vip1\", VipArgs.builder() \n .name(\"tf_test_lb_vip\")\n .subnetId(\"12345\")\n .protocol(\"HTTP\")\n .port(80)\n .poolId(\"67890\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n vip1:\n type: openstack:loadbalancer:Vip\n name: vip_1\n properties:\n name: tf_test_lb_vip\n subnetId: '12345'\n protocol: HTTP\n port: 80\n poolId: '67890'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nLoad Balancer VIPs can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import openstack:loadbalancer/vip:Vip vip_1 50e16b26-89c1-475e-a492-76167182511e\n```\n", + "description": "Manages a V1 load balancer vip resource within OpenStack.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst vip1 = new openstack.loadbalancer.Vip(\"vip_1\", {\n name: \"tf_test_lb_vip\",\n subnetId: \"12345\",\n protocol: \"HTTP\",\n port: 80,\n poolId: \"67890\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nvip1 = openstack.loadbalancer.Vip(\"vip_1\",\n name=\"tf_test_lb_vip\",\n subnet_id=\"12345\",\n protocol=\"HTTP\",\n port=80,\n pool_id=\"67890\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var vip1 = new OpenStack.LoadBalancer.Vip(\"vip_1\", new()\n {\n Name = \"tf_test_lb_vip\",\n SubnetId = \"12345\",\n Protocol = \"HTTP\",\n Port = 80,\n PoolId = \"67890\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/loadbalancer\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := loadbalancer.NewVip(ctx, \"vip_1\", \u0026loadbalancer.VipArgs{\n\t\t\tName: pulumi.String(\"tf_test_lb_vip\"),\n\t\t\tSubnetId: pulumi.String(\"12345\"),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tPort: pulumi.Int(80),\n\t\t\tPoolId: pulumi.String(\"67890\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.loadbalancer.Vip;\nimport com.pulumi.openstack.loadbalancer.VipArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var vip1 = new Vip(\"vip1\", VipArgs.builder() \n .name(\"tf_test_lb_vip\")\n .subnetId(\"12345\")\n .protocol(\"HTTP\")\n .port(80)\n .poolId(\"67890\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n vip1:\n type: openstack:loadbalancer:Vip\n name: vip_1\n properties:\n name: tf_test_lb_vip\n subnetId: '12345'\n protocol: HTTP\n port: 80\n poolId: '67890'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nLoad Balancer VIPs can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import openstack:loadbalancer/vip:Vip vip_1 50e16b26-89c1-475e-a492-76167182511e\n```\n", "properties": { "address": { "type": "string", @@ -13472,7 +13299,7 @@ } }, "openstack:networking/addressScope:AddressScope": { - "description": "Manages a V2 Neutron addressscope resource within OpenStack.\n\n## Example Usage\n\n### Create an Address-scope\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst addressscope1 = new openstack.networking.AddressScope(\"addressscope_1\", {\n name: \"addressscope_1\",\n ipVersion: 6,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\naddressscope1 = openstack.networking.AddressScope(\"addressscope_1\",\n name=\"addressscope_1\",\n ip_version=6)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var addressscope1 = new OpenStack.Networking.AddressScope(\"addressscope_1\", new()\n {\n Name = \"addressscope_1\",\n IpVersion = 6,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := networking.NewAddressScope(ctx, \"addressscope_1\", \u0026networking.AddressScopeArgs{\n\t\t\tName: pulumi.String(\"addressscope_1\"),\n\t\t\tIpVersion: pulumi.Int(6),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.AddressScope;\nimport com.pulumi.openstack.networking.AddressScopeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var addressscope1 = new AddressScope(\"addressscope1\", AddressScopeArgs.builder() \n .name(\"addressscope_1\")\n .ipVersion(6)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n addressscope1:\n type: openstack:networking:AddressScope\n name: addressscope_1\n properties:\n name: addressscope_1\n ipVersion: 6\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Create a Subnet Pool from an Address-scope\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst addressscope1 = new openstack.networking.AddressScope(\"addressscope_1\", {\n name: \"addressscope_1\",\n ipVersion: 6,\n});\nconst subnetpool1 = new openstack.networking.SubnetPool(\"subnetpool_1\", {\n name: \"subnetpool_1\",\n prefixes: [\n \"fdf7:b13d:dead:beef::/64\",\n \"fd65:86cc:a334:39b7::/64\",\n ],\n addressScopeId: addressscope1.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\naddressscope1 = openstack.networking.AddressScope(\"addressscope_1\",\n name=\"addressscope_1\",\n ip_version=6)\nsubnetpool1 = openstack.networking.SubnetPool(\"subnetpool_1\",\n name=\"subnetpool_1\",\n prefixes=[\n \"fdf7:b13d:dead:beef::/64\",\n \"fd65:86cc:a334:39b7::/64\",\n ],\n address_scope_id=addressscope1.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var addressscope1 = new OpenStack.Networking.AddressScope(\"addressscope_1\", new()\n {\n Name = \"addressscope_1\",\n IpVersion = 6,\n });\n\n var subnetpool1 = new OpenStack.Networking.SubnetPool(\"subnetpool_1\", new()\n {\n Name = \"subnetpool_1\",\n Prefixes = new[]\n {\n \"fdf7:b13d:dead:beef::/64\",\n \"fd65:86cc:a334:39b7::/64\",\n },\n AddressScopeId = addressscope1.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\taddressscope1, err := networking.NewAddressScope(ctx, \"addressscope_1\", \u0026networking.AddressScopeArgs{\n\t\t\tName: pulumi.String(\"addressscope_1\"),\n\t\t\tIpVersion: pulumi.Int(6),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = networking.NewSubnetPool(ctx, \"subnetpool_1\", \u0026networking.SubnetPoolArgs{\n\t\t\tName: pulumi.String(\"subnetpool_1\"),\n\t\t\tPrefixes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"fdf7:b13d:dead:beef::/64\"),\n\t\t\t\tpulumi.String(\"fd65:86cc:a334:39b7::/64\"),\n\t\t\t},\n\t\t\tAddressScopeId: addressscope1.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.AddressScope;\nimport com.pulumi.openstack.networking.AddressScopeArgs;\nimport com.pulumi.openstack.networking.SubnetPool;\nimport com.pulumi.openstack.networking.SubnetPoolArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var addressscope1 = new AddressScope(\"addressscope1\", AddressScopeArgs.builder() \n .name(\"addressscope_1\")\n .ipVersion(6)\n .build());\n\n var subnetpool1 = new SubnetPool(\"subnetpool1\", SubnetPoolArgs.builder() \n .name(\"subnetpool_1\")\n .prefixes( \n \"fdf7:b13d:dead:beef::/64\",\n \"fd65:86cc:a334:39b7::/64\")\n .addressScopeId(addressscope1.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n addressscope1:\n type: openstack:networking:AddressScope\n name: addressscope_1\n properties:\n name: addressscope_1\n ipVersion: 6\n subnetpool1:\n type: openstack:networking:SubnetPool\n name: subnetpool_1\n properties:\n name: subnetpool_1\n prefixes:\n - fdf7:b13d:dead:beef::/64\n - fd65:86cc:a334:39b7::/64\n addressScopeId: ${addressscope1.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nAddress-scopes can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import openstack:networking/addressScope:AddressScope addressscope_1 9cc35860-522a-4d35-974d-51d4b011801e\n```\n", + "description": "Manages a V2 Neutron addressscope resource within OpenStack.\n\n## Example Usage\n\n### Create an Address-scope\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst addressscope1 = new openstack.networking.AddressScope(\"addressscope_1\", {\n name: \"addressscope_1\",\n ipVersion: 6,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\naddressscope1 = openstack.networking.AddressScope(\"addressscope_1\",\n name=\"addressscope_1\",\n ip_version=6)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var addressscope1 = new OpenStack.Networking.AddressScope(\"addressscope_1\", new()\n {\n Name = \"addressscope_1\",\n IpVersion = 6,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := networking.NewAddressScope(ctx, \"addressscope_1\", \u0026networking.AddressScopeArgs{\n\t\t\tName: pulumi.String(\"addressscope_1\"),\n\t\t\tIpVersion: pulumi.Int(6),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.AddressScope;\nimport com.pulumi.openstack.networking.AddressScopeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var addressscope1 = new AddressScope(\"addressscope1\", AddressScopeArgs.builder() \n .name(\"addressscope_1\")\n .ipVersion(6)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n addressscope1:\n type: openstack:networking:AddressScope\n name: addressscope_1\n properties:\n name: addressscope_1\n ipVersion: 6\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Create a Subnet Pool from an Address-scope\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst addressscope1 = new openstack.networking.AddressScope(\"addressscope_1\", {\n name: \"addressscope_1\",\n ipVersion: 6,\n});\nconst subnetpool1 = new openstack.networking.SubnetPool(\"subnetpool_1\", {\n name: \"subnetpool_1\",\n prefixes: [\n \"fdf7:b13d:dead:beef::/64\",\n \"fd65:86cc:a334:39b7::/64\",\n ],\n addressScopeId: addressscope1.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\naddressscope1 = openstack.networking.AddressScope(\"addressscope_1\",\n name=\"addressscope_1\",\n ip_version=6)\nsubnetpool1 = openstack.networking.SubnetPool(\"subnetpool_1\",\n name=\"subnetpool_1\",\n prefixes=[\n \"fdf7:b13d:dead:beef::/64\",\n \"fd65:86cc:a334:39b7::/64\",\n ],\n address_scope_id=addressscope1.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var addressscope1 = new OpenStack.Networking.AddressScope(\"addressscope_1\", new()\n {\n Name = \"addressscope_1\",\n IpVersion = 6,\n });\n\n var subnetpool1 = new OpenStack.Networking.SubnetPool(\"subnetpool_1\", new()\n {\n Name = \"subnetpool_1\",\n Prefixes = new[]\n {\n \"fdf7:b13d:dead:beef::/64\",\n \"fd65:86cc:a334:39b7::/64\",\n },\n AddressScopeId = addressscope1.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\taddressscope1, err := networking.NewAddressScope(ctx, \"addressscope_1\", \u0026networking.AddressScopeArgs{\n\t\t\tName: pulumi.String(\"addressscope_1\"),\n\t\t\tIpVersion: pulumi.Int(6),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = networking.NewSubnetPool(ctx, \"subnetpool_1\", \u0026networking.SubnetPoolArgs{\n\t\t\tName: pulumi.String(\"subnetpool_1\"),\n\t\t\tPrefixes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"fdf7:b13d:dead:beef::/64\"),\n\t\t\t\tpulumi.String(\"fd65:86cc:a334:39b7::/64\"),\n\t\t\t},\n\t\t\tAddressScopeId: addressscope1.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.AddressScope;\nimport com.pulumi.openstack.networking.AddressScopeArgs;\nimport com.pulumi.openstack.networking.SubnetPool;\nimport com.pulumi.openstack.networking.SubnetPoolArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var addressscope1 = new AddressScope(\"addressscope1\", AddressScopeArgs.builder() \n .name(\"addressscope_1\")\n .ipVersion(6)\n .build());\n\n var subnetpool1 = new SubnetPool(\"subnetpool1\", SubnetPoolArgs.builder() \n .name(\"subnetpool_1\")\n .prefixes( \n \"fdf7:b13d:dead:beef::/64\",\n \"fd65:86cc:a334:39b7::/64\")\n .addressScopeId(addressscope1.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n addressscope1:\n type: openstack:networking:AddressScope\n name: addressscope_1\n properties:\n name: addressscope_1\n ipVersion: 6\n subnetpool1:\n type: openstack:networking:SubnetPool\n name: subnetpool_1\n properties:\n name: subnetpool_1\n prefixes:\n - fdf7:b13d:dead:beef::/64\n - fd65:86cc:a334:39b7::/64\n addressScopeId: ${addressscope1.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nAddress-scopes can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import openstack:networking/addressScope:AddressScope addressscope_1 9cc35860-522a-4d35-974d-51d4b011801e\n```\n", "properties": { "ipVersion": { "type": "integer", @@ -13796,7 +13623,7 @@ } }, "openstack:networking/floatingIpAssociate:FloatingIpAssociate": { - "description": "Associates a floating IP to a port. This is useful for situations\nwhere you have a pre-allocated floating IP or are unable to use the\n`openstack.networking.FloatingIp` resource to create a floating IP.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst port1 = new openstack.networking.Port(\"port_1\", {networkId: \"a5bbd213-e1d3-49b6-aed1-9df60ea94b9a\"});\nconst fip1 = new openstack.networking.FloatingIpAssociate(\"fip_1\", {\n floatingIp: \"1.2.3.4\",\n portId: port1.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nport1 = openstack.networking.Port(\"port_1\", network_id=\"a5bbd213-e1d3-49b6-aed1-9df60ea94b9a\")\nfip1 = openstack.networking.FloatingIpAssociate(\"fip_1\",\n floating_ip=\"1.2.3.4\",\n port_id=port1.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var port1 = new OpenStack.Networking.Port(\"port_1\", new()\n {\n NetworkId = \"a5bbd213-e1d3-49b6-aed1-9df60ea94b9a\",\n });\n\n var fip1 = new OpenStack.Networking.FloatingIpAssociate(\"fip_1\", new()\n {\n FloatingIp = \"1.2.3.4\",\n PortId = port1.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tport1, err := networking.NewPort(ctx, \"port_1\", \u0026networking.PortArgs{\n\t\t\tNetworkId: pulumi.String(\"a5bbd213-e1d3-49b6-aed1-9df60ea94b9a\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = networking.NewFloatingIpAssociate(ctx, \"fip_1\", \u0026networking.FloatingIpAssociateArgs{\n\t\t\tFloatingIp: pulumi.String(\"1.2.3.4\"),\n\t\t\tPortId: port1.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.Port;\nimport com.pulumi.openstack.networking.PortArgs;\nimport com.pulumi.openstack.networking.FloatingIpAssociate;\nimport com.pulumi.openstack.networking.FloatingIpAssociateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var port1 = new Port(\"port1\", PortArgs.builder() \n .networkId(\"a5bbd213-e1d3-49b6-aed1-9df60ea94b9a\")\n .build());\n\n var fip1 = new FloatingIpAssociate(\"fip1\", FloatingIpAssociateArgs.builder() \n .floatingIp(\"1.2.3.4\")\n .portId(port1.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n port1:\n type: openstack:networking:Port\n name: port_1\n properties:\n networkId: a5bbd213-e1d3-49b6-aed1-9df60ea94b9a\n fip1:\n type: openstack:networking:FloatingIpAssociate\n name: fip_1\n properties:\n floatingIp: 1.2.3.4\n portId: ${port1.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nFloating IP associations can be imported using the `id` of the floating IP, e.g.\n\n```sh\n$ pulumi import openstack:networking/floatingIpAssociate:FloatingIpAssociate fip 2c7f39f3-702b-48d1-940c-b50384177ee1\n```\n", + "description": "Associates a floating IP to a port. This is useful for situations\nwhere you have a pre-allocated floating IP or are unable to use the\n`openstack.networking.FloatingIp` resource to create a floating IP.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst port1 = new openstack.networking.Port(\"port_1\", {networkId: \"a5bbd213-e1d3-49b6-aed1-9df60ea94b9a\"});\nconst fip1 = new openstack.networking.FloatingIpAssociate(\"fip_1\", {\n floatingIp: \"1.2.3.4\",\n portId: port1.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nport1 = openstack.networking.Port(\"port_1\", network_id=\"a5bbd213-e1d3-49b6-aed1-9df60ea94b9a\")\nfip1 = openstack.networking.FloatingIpAssociate(\"fip_1\",\n floating_ip=\"1.2.3.4\",\n port_id=port1.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var port1 = new OpenStack.Networking.Port(\"port_1\", new()\n {\n NetworkId = \"a5bbd213-e1d3-49b6-aed1-9df60ea94b9a\",\n });\n\n var fip1 = new OpenStack.Networking.FloatingIpAssociate(\"fip_1\", new()\n {\n FloatingIp = \"1.2.3.4\",\n PortId = port1.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tport1, err := networking.NewPort(ctx, \"port_1\", \u0026networking.PortArgs{\n\t\t\tNetworkId: pulumi.String(\"a5bbd213-e1d3-49b6-aed1-9df60ea94b9a\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = networking.NewFloatingIpAssociate(ctx, \"fip_1\", \u0026networking.FloatingIpAssociateArgs{\n\t\t\tFloatingIp: pulumi.String(\"1.2.3.4\"),\n\t\t\tPortId: port1.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.Port;\nimport com.pulumi.openstack.networking.PortArgs;\nimport com.pulumi.openstack.networking.FloatingIpAssociate;\nimport com.pulumi.openstack.networking.FloatingIpAssociateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var port1 = new Port(\"port1\", PortArgs.builder() \n .networkId(\"a5bbd213-e1d3-49b6-aed1-9df60ea94b9a\")\n .build());\n\n var fip1 = new FloatingIpAssociate(\"fip1\", FloatingIpAssociateArgs.builder() \n .floatingIp(\"1.2.3.4\")\n .portId(port1.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n port1:\n type: openstack:networking:Port\n name: port_1\n properties:\n networkId: a5bbd213-e1d3-49b6-aed1-9df60ea94b9a\n fip1:\n type: openstack:networking:FloatingIpAssociate\n name: fip_1\n properties:\n floatingIp: 1.2.3.4\n portId: ${port1.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nFloating IP associations can be imported using the `id` of the floating IP, e.g.\n\n```sh\n$ pulumi import openstack:networking/floatingIpAssociate:FloatingIpAssociate fip 2c7f39f3-702b-48d1-940c-b50384177ee1\n```\n", "properties": { "fixedIp": { "type": "string" @@ -13868,7 +13695,7 @@ } }, "openstack:networking/network:Network": { - "description": "Manages a V2 Neutron network resource within OpenStack.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst network1 = new openstack.networking.Network(\"network_1\", {\n name: \"network_1\",\n adminStateUp: true,\n});\nconst subnet1 = new openstack.networking.Subnet(\"subnet_1\", {\n name: \"subnet_1\",\n networkId: network1.id,\n cidr: \"192.168.199.0/24\",\n ipVersion: 4,\n});\nconst secgroup1 = new openstack.compute.SecGroup(\"secgroup_1\", {\n name: \"secgroup_1\",\n description: \"a security group\",\n rules: [{\n fromPort: 22,\n toPort: 22,\n ipProtocol: \"tcp\",\n cidr: \"0.0.0.0/0\",\n }],\n});\nconst port1 = new openstack.networking.Port(\"port_1\", {\n name: \"port_1\",\n networkId: network1.id,\n adminStateUp: true,\n securityGroupIds: [secgroup1.id],\n fixedIps: [{\n subnetId: subnet1.id,\n ipAddress: \"192.168.199.10\",\n }],\n});\nconst instance1 = new openstack.compute.Instance(\"instance_1\", {\n name: \"instance_1\",\n securityGroups: [secgroup1.name],\n networks: [{\n port: port1.id,\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nnetwork1 = openstack.networking.Network(\"network_1\",\n name=\"network_1\",\n admin_state_up=True)\nsubnet1 = openstack.networking.Subnet(\"subnet_1\",\n name=\"subnet_1\",\n network_id=network1.id,\n cidr=\"192.168.199.0/24\",\n ip_version=4)\nsecgroup1 = openstack.compute.SecGroup(\"secgroup_1\",\n name=\"secgroup_1\",\n description=\"a security group\",\n rules=[openstack.compute.SecGroupRuleArgs(\n from_port=22,\n to_port=22,\n ip_protocol=\"tcp\",\n cidr=\"0.0.0.0/0\",\n )])\nport1 = openstack.networking.Port(\"port_1\",\n name=\"port_1\",\n network_id=network1.id,\n admin_state_up=True,\n security_group_ids=[secgroup1.id],\n fixed_ips=[openstack.networking.PortFixedIpArgs(\n subnet_id=subnet1.id,\n ip_address=\"192.168.199.10\",\n )])\ninstance1 = openstack.compute.Instance(\"instance_1\",\n name=\"instance_1\",\n security_groups=[secgroup1.name],\n networks=[openstack.compute.InstanceNetworkArgs(\n port=port1.id,\n )])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var network1 = new OpenStack.Networking.Network(\"network_1\", new()\n {\n Name = \"network_1\",\n AdminStateUp = true,\n });\n\n var subnet1 = new OpenStack.Networking.Subnet(\"subnet_1\", new()\n {\n Name = \"subnet_1\",\n NetworkId = network1.Id,\n Cidr = \"192.168.199.0/24\",\n IpVersion = 4,\n });\n\n var secgroup1 = new OpenStack.Compute.SecGroup(\"secgroup_1\", new()\n {\n Name = \"secgroup_1\",\n Description = \"a security group\",\n Rules = new[]\n {\n new OpenStack.Compute.Inputs.SecGroupRuleArgs\n {\n FromPort = 22,\n ToPort = 22,\n IpProtocol = \"tcp\",\n Cidr = \"0.0.0.0/0\",\n },\n },\n });\n\n var port1 = new OpenStack.Networking.Port(\"port_1\", new()\n {\n Name = \"port_1\",\n NetworkId = network1.Id,\n AdminStateUp = true,\n SecurityGroupIds = new[]\n {\n secgroup1.Id,\n },\n FixedIps = new[]\n {\n new OpenStack.Networking.Inputs.PortFixedIpArgs\n {\n SubnetId = subnet1.Id,\n IpAddress = \"192.168.199.10\",\n },\n },\n });\n\n var instance1 = new OpenStack.Compute.Instance(\"instance_1\", new()\n {\n Name = \"instance_1\",\n SecurityGroups = new[]\n {\n secgroup1.Name,\n },\n Networks = new[]\n {\n new OpenStack.Compute.Inputs.InstanceNetworkArgs\n {\n Port = port1.Id,\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/compute\"\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tnetwork1, err := networking.NewNetwork(ctx, \"network_1\", \u0026networking.NetworkArgs{\n\t\t\tName: pulumi.String(\"network_1\"),\n\t\t\tAdminStateUp: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsubnet1, err := networking.NewSubnet(ctx, \"subnet_1\", \u0026networking.SubnetArgs{\n\t\t\tName: pulumi.String(\"subnet_1\"),\n\t\t\tNetworkId: network1.ID(),\n\t\t\tCidr: pulumi.String(\"192.168.199.0/24\"),\n\t\t\tIpVersion: pulumi.Int(4),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsecgroup1, err := compute.NewSecGroup(ctx, \"secgroup_1\", \u0026compute.SecGroupArgs{\n\t\t\tName: pulumi.String(\"secgroup_1\"),\n\t\t\tDescription: pulumi.String(\"a security group\"),\n\t\t\tRules: compute.SecGroupRuleArray{\n\t\t\t\t\u0026compute.SecGroupRuleArgs{\n\t\t\t\t\tFromPort: pulumi.Int(22),\n\t\t\t\t\tToPort: pulumi.Int(22),\n\t\t\t\t\tIpProtocol: pulumi.String(\"tcp\"),\n\t\t\t\t\tCidr: pulumi.String(\"0.0.0.0/0\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tport1, err := networking.NewPort(ctx, \"port_1\", \u0026networking.PortArgs{\n\t\t\tName: pulumi.String(\"port_1\"),\n\t\t\tNetworkId: network1.ID(),\n\t\t\tAdminStateUp: pulumi.Bool(true),\n\t\t\tSecurityGroupIds: pulumi.StringArray{\n\t\t\t\tsecgroup1.ID(),\n\t\t\t},\n\t\t\tFixedIps: networking.PortFixedIpArray{\n\t\t\t\t\u0026networking.PortFixedIpArgs{\n\t\t\t\t\tSubnetId: subnet1.ID(),\n\t\t\t\t\tIpAddress: pulumi.String(\"192.168.199.10\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewInstance(ctx, \"instance_1\", \u0026compute.InstanceArgs{\n\t\t\tName: pulumi.String(\"instance_1\"),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\tsecgroup1.Name,\n\t\t\t},\n\t\t\tNetworks: compute.InstanceNetworkArray{\n\t\t\t\t\u0026compute.InstanceNetworkArgs{\n\t\t\t\t\tPort: port1.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.Network;\nimport com.pulumi.openstack.networking.NetworkArgs;\nimport com.pulumi.openstack.networking.Subnet;\nimport com.pulumi.openstack.networking.SubnetArgs;\nimport com.pulumi.openstack.compute.SecGroup;\nimport com.pulumi.openstack.compute.SecGroupArgs;\nimport com.pulumi.openstack.compute.inputs.SecGroupRuleArgs;\nimport com.pulumi.openstack.networking.Port;\nimport com.pulumi.openstack.networking.PortArgs;\nimport com.pulumi.openstack.networking.inputs.PortFixedIpArgs;\nimport com.pulumi.openstack.compute.Instance;\nimport com.pulumi.openstack.compute.InstanceArgs;\nimport com.pulumi.openstack.compute.inputs.InstanceNetworkArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var network1 = new Network(\"network1\", NetworkArgs.builder() \n .name(\"network_1\")\n .adminStateUp(\"true\")\n .build());\n\n var subnet1 = new Subnet(\"subnet1\", SubnetArgs.builder() \n .name(\"subnet_1\")\n .networkId(network1.id())\n .cidr(\"192.168.199.0/24\")\n .ipVersion(4)\n .build());\n\n var secgroup1 = new SecGroup(\"secgroup1\", SecGroupArgs.builder() \n .name(\"secgroup_1\")\n .description(\"a security group\")\n .rules(SecGroupRuleArgs.builder()\n .fromPort(22)\n .toPort(22)\n .ipProtocol(\"tcp\")\n .cidr(\"0.0.0.0/0\")\n .build())\n .build());\n\n var port1 = new Port(\"port1\", PortArgs.builder() \n .name(\"port_1\")\n .networkId(network1.id())\n .adminStateUp(\"true\")\n .securityGroupIds(secgroup1.id())\n .fixedIps(PortFixedIpArgs.builder()\n .subnetId(subnet1.id())\n .ipAddress(\"192.168.199.10\")\n .build())\n .build());\n\n var instance1 = new Instance(\"instance1\", InstanceArgs.builder() \n .name(\"instance_1\")\n .securityGroups(secgroup1.name())\n .networks(InstanceNetworkArgs.builder()\n .port(port1.id())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n network1:\n type: openstack:networking:Network\n name: network_1\n properties:\n name: network_1\n adminStateUp: 'true'\n subnet1:\n type: openstack:networking:Subnet\n name: subnet_1\n properties:\n name: subnet_1\n networkId: ${network1.id}\n cidr: 192.168.199.0/24\n ipVersion: 4\n secgroup1:\n type: openstack:compute:SecGroup\n name: secgroup_1\n properties:\n name: secgroup_1\n description: a security group\n rules:\n - fromPort: 22\n toPort: 22\n ipProtocol: tcp\n cidr: 0.0.0.0/0\n port1:\n type: openstack:networking:Port\n name: port_1\n properties:\n name: port_1\n networkId: ${network1.id}\n adminStateUp: 'true'\n securityGroupIds:\n - ${secgroup1.id}\n fixedIps:\n - subnetId: ${subnet1.id}\n ipAddress: 192.168.199.10\n instance1:\n type: openstack:compute:Instance\n name: instance_1\n properties:\n name: instance_1\n securityGroups:\n - ${secgroup1.name}\n networks:\n - port: ${port1.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nNetworks can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import openstack:networking/network:Network network_1 d90ce693-5ccf-4136-a0ed-152ce412b6b9\n```\n", + "description": "Manages a V2 Neutron network resource within OpenStack.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst network1 = new openstack.networking.Network(\"network_1\", {\n name: \"network_1\",\n adminStateUp: true,\n});\nconst subnet1 = new openstack.networking.Subnet(\"subnet_1\", {\n name: \"subnet_1\",\n networkId: network1.id,\n cidr: \"192.168.199.0/24\",\n ipVersion: 4,\n});\nconst secgroup1 = new openstack.compute.SecGroup(\"secgroup_1\", {\n name: \"secgroup_1\",\n description: \"a security group\",\n rules: [{\n fromPort: 22,\n toPort: 22,\n ipProtocol: \"tcp\",\n cidr: \"0.0.0.0/0\",\n }],\n});\nconst port1 = new openstack.networking.Port(\"port_1\", {\n name: \"port_1\",\n networkId: network1.id,\n adminStateUp: true,\n securityGroupIds: [secgroup1.id],\n fixedIps: [{\n subnetId: subnet1.id,\n ipAddress: \"192.168.199.10\",\n }],\n});\nconst instance1 = new openstack.compute.Instance(\"instance_1\", {\n name: \"instance_1\",\n securityGroups: [secgroup1.name],\n networks: [{\n port: port1.id,\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nnetwork1 = openstack.networking.Network(\"network_1\",\n name=\"network_1\",\n admin_state_up=True)\nsubnet1 = openstack.networking.Subnet(\"subnet_1\",\n name=\"subnet_1\",\n network_id=network1.id,\n cidr=\"192.168.199.0/24\",\n ip_version=4)\nsecgroup1 = openstack.compute.SecGroup(\"secgroup_1\",\n name=\"secgroup_1\",\n description=\"a security group\",\n rules=[openstack.compute.SecGroupRuleArgs(\n from_port=22,\n to_port=22,\n ip_protocol=\"tcp\",\n cidr=\"0.0.0.0/0\",\n )])\nport1 = openstack.networking.Port(\"port_1\",\n name=\"port_1\",\n network_id=network1.id,\n admin_state_up=True,\n security_group_ids=[secgroup1.id],\n fixed_ips=[openstack.networking.PortFixedIpArgs(\n subnet_id=subnet1.id,\n ip_address=\"192.168.199.10\",\n )])\ninstance1 = openstack.compute.Instance(\"instance_1\",\n name=\"instance_1\",\n security_groups=[secgroup1.name],\n networks=[openstack.compute.InstanceNetworkArgs(\n port=port1.id,\n )])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var network1 = new OpenStack.Networking.Network(\"network_1\", new()\n {\n Name = \"network_1\",\n AdminStateUp = true,\n });\n\n var subnet1 = new OpenStack.Networking.Subnet(\"subnet_1\", new()\n {\n Name = \"subnet_1\",\n NetworkId = network1.Id,\n Cidr = \"192.168.199.0/24\",\n IpVersion = 4,\n });\n\n var secgroup1 = new OpenStack.Compute.SecGroup(\"secgroup_1\", new()\n {\n Name = \"secgroup_1\",\n Description = \"a security group\",\n Rules = new[]\n {\n new OpenStack.Compute.Inputs.SecGroupRuleArgs\n {\n FromPort = 22,\n ToPort = 22,\n IpProtocol = \"tcp\",\n Cidr = \"0.0.0.0/0\",\n },\n },\n });\n\n var port1 = new OpenStack.Networking.Port(\"port_1\", new()\n {\n Name = \"port_1\",\n NetworkId = network1.Id,\n AdminStateUp = true,\n SecurityGroupIds = new[]\n {\n secgroup1.Id,\n },\n FixedIps = new[]\n {\n new OpenStack.Networking.Inputs.PortFixedIpArgs\n {\n SubnetId = subnet1.Id,\n IpAddress = \"192.168.199.10\",\n },\n },\n });\n\n var instance1 = new OpenStack.Compute.Instance(\"instance_1\", new()\n {\n Name = \"instance_1\",\n SecurityGroups = new[]\n {\n secgroup1.Name,\n },\n Networks = new[]\n {\n new OpenStack.Compute.Inputs.InstanceNetworkArgs\n {\n Port = port1.Id,\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/compute\"\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tnetwork1, err := networking.NewNetwork(ctx, \"network_1\", \u0026networking.NetworkArgs{\n\t\t\tName: pulumi.String(\"network_1\"),\n\t\t\tAdminStateUp: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsubnet1, err := networking.NewSubnet(ctx, \"subnet_1\", \u0026networking.SubnetArgs{\n\t\t\tName: pulumi.String(\"subnet_1\"),\n\t\t\tNetworkId: network1.ID(),\n\t\t\tCidr: pulumi.String(\"192.168.199.0/24\"),\n\t\t\tIpVersion: pulumi.Int(4),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsecgroup1, err := compute.NewSecGroup(ctx, \"secgroup_1\", \u0026compute.SecGroupArgs{\n\t\t\tName: pulumi.String(\"secgroup_1\"),\n\t\t\tDescription: pulumi.String(\"a security group\"),\n\t\t\tRules: compute.SecGroupRuleArray{\n\t\t\t\t\u0026compute.SecGroupRuleArgs{\n\t\t\t\t\tFromPort: pulumi.Int(22),\n\t\t\t\t\tToPort: pulumi.Int(22),\n\t\t\t\t\tIpProtocol: pulumi.String(\"tcp\"),\n\t\t\t\t\tCidr: pulumi.String(\"0.0.0.0/0\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tport1, err := networking.NewPort(ctx, \"port_1\", \u0026networking.PortArgs{\n\t\t\tName: pulumi.String(\"port_1\"),\n\t\t\tNetworkId: network1.ID(),\n\t\t\tAdminStateUp: pulumi.Bool(true),\n\t\t\tSecurityGroupIds: pulumi.StringArray{\n\t\t\t\tsecgroup1.ID(),\n\t\t\t},\n\t\t\tFixedIps: networking.PortFixedIpArray{\n\t\t\t\t\u0026networking.PortFixedIpArgs{\n\t\t\t\t\tSubnetId: subnet1.ID(),\n\t\t\t\t\tIpAddress: pulumi.String(\"192.168.199.10\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewInstance(ctx, \"instance_1\", \u0026compute.InstanceArgs{\n\t\t\tName: pulumi.String(\"instance_1\"),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\tsecgroup1.Name,\n\t\t\t},\n\t\t\tNetworks: compute.InstanceNetworkArray{\n\t\t\t\t\u0026compute.InstanceNetworkArgs{\n\t\t\t\t\tPort: port1.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.Network;\nimport com.pulumi.openstack.networking.NetworkArgs;\nimport com.pulumi.openstack.networking.Subnet;\nimport com.pulumi.openstack.networking.SubnetArgs;\nimport com.pulumi.openstack.compute.SecGroup;\nimport com.pulumi.openstack.compute.SecGroupArgs;\nimport com.pulumi.openstack.compute.inputs.SecGroupRuleArgs;\nimport com.pulumi.openstack.networking.Port;\nimport com.pulumi.openstack.networking.PortArgs;\nimport com.pulumi.openstack.networking.inputs.PortFixedIpArgs;\nimport com.pulumi.openstack.compute.Instance;\nimport com.pulumi.openstack.compute.InstanceArgs;\nimport com.pulumi.openstack.compute.inputs.InstanceNetworkArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var network1 = new Network(\"network1\", NetworkArgs.builder() \n .name(\"network_1\")\n .adminStateUp(\"true\")\n .build());\n\n var subnet1 = new Subnet(\"subnet1\", SubnetArgs.builder() \n .name(\"subnet_1\")\n .networkId(network1.id())\n .cidr(\"192.168.199.0/24\")\n .ipVersion(4)\n .build());\n\n var secgroup1 = new SecGroup(\"secgroup1\", SecGroupArgs.builder() \n .name(\"secgroup_1\")\n .description(\"a security group\")\n .rules(SecGroupRuleArgs.builder()\n .fromPort(22)\n .toPort(22)\n .ipProtocol(\"tcp\")\n .cidr(\"0.0.0.0/0\")\n .build())\n .build());\n\n var port1 = new Port(\"port1\", PortArgs.builder() \n .name(\"port_1\")\n .networkId(network1.id())\n .adminStateUp(\"true\")\n .securityGroupIds(secgroup1.id())\n .fixedIps(PortFixedIpArgs.builder()\n .subnetId(subnet1.id())\n .ipAddress(\"192.168.199.10\")\n .build())\n .build());\n\n var instance1 = new Instance(\"instance1\", InstanceArgs.builder() \n .name(\"instance_1\")\n .securityGroups(secgroup1.name())\n .networks(InstanceNetworkArgs.builder()\n .port(port1.id())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n network1:\n type: openstack:networking:Network\n name: network_1\n properties:\n name: network_1\n adminStateUp: 'true'\n subnet1:\n type: openstack:networking:Subnet\n name: subnet_1\n properties:\n name: subnet_1\n networkId: ${network1.id}\n cidr: 192.168.199.0/24\n ipVersion: 4\n secgroup1:\n type: openstack:compute:SecGroup\n name: secgroup_1\n properties:\n name: secgroup_1\n description: a security group\n rules:\n - fromPort: 22\n toPort: 22\n ipProtocol: tcp\n cidr: 0.0.0.0/0\n port1:\n type: openstack:networking:Port\n name: port_1\n properties:\n name: port_1\n networkId: ${network1.id}\n adminStateUp: 'true'\n securityGroupIds:\n - ${secgroup1.id}\n fixedIps:\n - subnetId: ${subnet1.id}\n ipAddress: 192.168.199.10\n instance1:\n type: openstack:compute:Instance\n name: instance_1\n properties:\n name: instance_1\n securityGroups:\n - ${secgroup1.name}\n networks:\n - port: ${port1.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nNetworks can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import openstack:networking/network:Network network_1 d90ce693-5ccf-4136-a0ed-152ce412b6b9\n```\n", "properties": { "adminStateUp": { "type": "boolean", @@ -14149,7 +13976,7 @@ } }, "openstack:networking/port:Port": { - "description": "Manages a V2 port resource within OpenStack.\n\n\u003e **Note:** Ports do not get an IP if the network they are attached\nto does not have a subnet. If you create the subnet resource in the\nsame run as the port, make sure to use `fixed_ip.subnet_id` or \n`depends_on` to enforce the subnet resource creation before the port\ncreation is triggered. More info here\n\n## Example Usage\n\n### Simple port\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst network1 = new openstack.networking.Network(\"network_1\", {\n name: \"network_1\",\n adminStateUp: true,\n});\nconst port1 = new openstack.networking.Port(\"port_1\", {\n name: \"port_1\",\n networkId: network1.id,\n adminStateUp: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nnetwork1 = openstack.networking.Network(\"network_1\",\n name=\"network_1\",\n admin_state_up=True)\nport1 = openstack.networking.Port(\"port_1\",\n name=\"port_1\",\n network_id=network1.id,\n admin_state_up=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var network1 = new OpenStack.Networking.Network(\"network_1\", new()\n {\n Name = \"network_1\",\n AdminStateUp = true,\n });\n\n var port1 = new OpenStack.Networking.Port(\"port_1\", new()\n {\n Name = \"port_1\",\n NetworkId = network1.Id,\n AdminStateUp = true,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tnetwork1, err := networking.NewNetwork(ctx, \"network_1\", \u0026networking.NetworkArgs{\n\t\t\tName: pulumi.String(\"network_1\"),\n\t\t\tAdminStateUp: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = networking.NewPort(ctx, \"port_1\", \u0026networking.PortArgs{\n\t\t\tName: pulumi.String(\"port_1\"),\n\t\t\tNetworkId: network1.ID(),\n\t\t\tAdminStateUp: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.Network;\nimport com.pulumi.openstack.networking.NetworkArgs;\nimport com.pulumi.openstack.networking.Port;\nimport com.pulumi.openstack.networking.PortArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var network1 = new Network(\"network1\", NetworkArgs.builder() \n .name(\"network_1\")\n .adminStateUp(\"true\")\n .build());\n\n var port1 = new Port(\"port1\", PortArgs.builder() \n .name(\"port_1\")\n .networkId(network1.id())\n .adminStateUp(\"true\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n network1:\n type: openstack:networking:Network\n name: network_1\n properties:\n name: network_1\n adminStateUp: 'true'\n port1:\n type: openstack:networking:Port\n name: port_1\n properties:\n name: port_1\n networkId: ${network1.id}\n adminStateUp: 'true'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Port defining fixed_ip.subnet_id\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst network1 = new openstack.networking.Network(\"network_1\", {\n name: \"network_1\",\n adminStateUp: true,\n});\nconst subnet1 = new openstack.networking.Subnet(\"subnet_1\", {\n name: \"subnet_1\",\n networkId: network1.id,\n cidr: \"192.168.199.0/24\",\n});\nconst port1 = new openstack.networking.Port(\"port_1\", {\n name: \"port_1\",\n networkId: network1.id,\n adminStateUp: true,\n fixedIps: [{\n subnetId: subnet1.id,\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nnetwork1 = openstack.networking.Network(\"network_1\",\n name=\"network_1\",\n admin_state_up=True)\nsubnet1 = openstack.networking.Subnet(\"subnet_1\",\n name=\"subnet_1\",\n network_id=network1.id,\n cidr=\"192.168.199.0/24\")\nport1 = openstack.networking.Port(\"port_1\",\n name=\"port_1\",\n network_id=network1.id,\n admin_state_up=True,\n fixed_ips=[openstack.networking.PortFixedIpArgs(\n subnet_id=subnet1.id,\n )])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var network1 = new OpenStack.Networking.Network(\"network_1\", new()\n {\n Name = \"network_1\",\n AdminStateUp = true,\n });\n\n var subnet1 = new OpenStack.Networking.Subnet(\"subnet_1\", new()\n {\n Name = \"subnet_1\",\n NetworkId = network1.Id,\n Cidr = \"192.168.199.0/24\",\n });\n\n var port1 = new OpenStack.Networking.Port(\"port_1\", new()\n {\n Name = \"port_1\",\n NetworkId = network1.Id,\n AdminStateUp = true,\n FixedIps = new[]\n {\n new OpenStack.Networking.Inputs.PortFixedIpArgs\n {\n SubnetId = subnet1.Id,\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tnetwork1, err := networking.NewNetwork(ctx, \"network_1\", \u0026networking.NetworkArgs{\n\t\t\tName: pulumi.String(\"network_1\"),\n\t\t\tAdminStateUp: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsubnet1, err := networking.NewSubnet(ctx, \"subnet_1\", \u0026networking.SubnetArgs{\n\t\t\tName: pulumi.String(\"subnet_1\"),\n\t\t\tNetworkId: network1.ID(),\n\t\t\tCidr: pulumi.String(\"192.168.199.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = networking.NewPort(ctx, \"port_1\", \u0026networking.PortArgs{\n\t\t\tName: pulumi.String(\"port_1\"),\n\t\t\tNetworkId: network1.ID(),\n\t\t\tAdminStateUp: pulumi.Bool(true),\n\t\t\tFixedIps: networking.PortFixedIpArray{\n\t\t\t\t\u0026networking.PortFixedIpArgs{\n\t\t\t\t\tSubnetId: subnet1.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.Network;\nimport com.pulumi.openstack.networking.NetworkArgs;\nimport com.pulumi.openstack.networking.Subnet;\nimport com.pulumi.openstack.networking.SubnetArgs;\nimport com.pulumi.openstack.networking.Port;\nimport com.pulumi.openstack.networking.PortArgs;\nimport com.pulumi.openstack.networking.inputs.PortFixedIpArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var network1 = new Network(\"network1\", NetworkArgs.builder() \n .name(\"network_1\")\n .adminStateUp(\"true\")\n .build());\n\n var subnet1 = new Subnet(\"subnet1\", SubnetArgs.builder() \n .name(\"subnet_1\")\n .networkId(network1.id())\n .cidr(\"192.168.199.0/24\")\n .build());\n\n var port1 = new Port(\"port1\", PortArgs.builder() \n .name(\"port_1\")\n .networkId(network1.id())\n .adminStateUp(\"true\")\n .fixedIps(PortFixedIpArgs.builder()\n .subnetId(subnet1.id())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n network1:\n type: openstack:networking:Network\n name: network_1\n properties:\n name: network_1\n adminStateUp: 'true'\n subnet1:\n type: openstack:networking:Subnet\n name: subnet_1\n properties:\n name: subnet_1\n networkId: ${network1.id}\n cidr: 192.168.199.0/24\n port1:\n type: openstack:networking:Port\n name: port_1\n properties:\n name: port_1\n networkId: ${network1.id}\n adminStateUp: 'true'\n fixedIps:\n - subnetId: ${subnet1.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Port with physical binding information\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst network1 = new openstack.networking.Network(\"network_1\", {\n name: \"network_1\",\n adminStateUp: true,\n});\nconst port1 = new openstack.networking.Port(\"port_1\", {\n name: \"port_1\",\n networkId: network1.id,\n deviceId: \"cdf70fcf-c161-4f24-9c70-96b3f5a54b71\",\n deviceOwner: \"baremetal:none\",\n adminStateUp: true,\n binding: {\n hostId: \"b080b9cf-46e0-4ce8-ad47-0fd4accc872b\",\n vnicType: \"baremetal\",\n profile: `{\n \"local_link_information\": [\n {\n \"switch_info\": \"info1\",\n \"port_id\": \"Ethernet3/4\",\n \"switch_id\": \"12:34:56:78:9A:BC\"\n },\n {\n \"switch_info\": \"info2\",\n \"port_id\": \"Ethernet3/4\",\n \"switch_id\": \"12:34:56:78:9A:BD\"\n }\n ],\n \"vlan_type\": \"allowed\"\n}\n`,\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nnetwork1 = openstack.networking.Network(\"network_1\",\n name=\"network_1\",\n admin_state_up=True)\nport1 = openstack.networking.Port(\"port_1\",\n name=\"port_1\",\n network_id=network1.id,\n device_id=\"cdf70fcf-c161-4f24-9c70-96b3f5a54b71\",\n device_owner=\"baremetal:none\",\n admin_state_up=True,\n binding=openstack.networking.PortBindingArgs(\n host_id=\"b080b9cf-46e0-4ce8-ad47-0fd4accc872b\",\n vnic_type=\"baremetal\",\n profile=\"\"\"{\n \"local_link_information\": [\n {\n \"switch_info\": \"info1\",\n \"port_id\": \"Ethernet3/4\",\n \"switch_id\": \"12:34:56:78:9A:BC\"\n },\n {\n \"switch_info\": \"info2\",\n \"port_id\": \"Ethernet3/4\",\n \"switch_id\": \"12:34:56:78:9A:BD\"\n }\n ],\n \"vlan_type\": \"allowed\"\n}\n\"\"\",\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var network1 = new OpenStack.Networking.Network(\"network_1\", new()\n {\n Name = \"network_1\",\n AdminStateUp = true,\n });\n\n var port1 = new OpenStack.Networking.Port(\"port_1\", new()\n {\n Name = \"port_1\",\n NetworkId = network1.Id,\n DeviceId = \"cdf70fcf-c161-4f24-9c70-96b3f5a54b71\",\n DeviceOwner = \"baremetal:none\",\n AdminStateUp = true,\n Binding = new OpenStack.Networking.Inputs.PortBindingArgs\n {\n HostId = \"b080b9cf-46e0-4ce8-ad47-0fd4accc872b\",\n VnicType = \"baremetal\",\n Profile = @\"{\n \"\"local_link_information\"\": [\n {\n \"\"switch_info\"\": \"\"info1\"\",\n \"\"port_id\"\": \"\"Ethernet3/4\"\",\n \"\"switch_id\"\": \"\"12:34:56:78:9A:BC\"\"\n },\n {\n \"\"switch_info\"\": \"\"info2\"\",\n \"\"port_id\"\": \"\"Ethernet3/4\"\",\n \"\"switch_id\"\": \"\"12:34:56:78:9A:BD\"\"\n }\n ],\n \"\"vlan_type\"\": \"\"allowed\"\"\n}\n\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tnetwork1, err := networking.NewNetwork(ctx, \"network_1\", \u0026networking.NetworkArgs{\n\t\t\tName: pulumi.String(\"network_1\"),\n\t\t\tAdminStateUp: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = networking.NewPort(ctx, \"port_1\", \u0026networking.PortArgs{\n\t\t\tName: pulumi.String(\"port_1\"),\n\t\t\tNetworkId: network1.ID(),\n\t\t\tDeviceId: pulumi.String(\"cdf70fcf-c161-4f24-9c70-96b3f5a54b71\"),\n\t\t\tDeviceOwner: pulumi.String(\"baremetal:none\"),\n\t\t\tAdminStateUp: pulumi.Bool(true),\n\t\t\tBinding: \u0026networking.PortBindingArgs{\n\t\t\t\tHostId: pulumi.String(\"b080b9cf-46e0-4ce8-ad47-0fd4accc872b\"),\n\t\t\t\tVnicType: pulumi.String(\"baremetal\"),\n\t\t\t\tProfile: pulumi.String(`{\n \"local_link_information\": [\n {\n \"switch_info\": \"info1\",\n \"port_id\": \"Ethernet3/4\",\n \"switch_id\": \"12:34:56:78:9A:BC\"\n },\n {\n \"switch_info\": \"info2\",\n \"port_id\": \"Ethernet3/4\",\n \"switch_id\": \"12:34:56:78:9A:BD\"\n }\n ],\n \"vlan_type\": \"allowed\"\n}\n`),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.Network;\nimport com.pulumi.openstack.networking.NetworkArgs;\nimport com.pulumi.openstack.networking.Port;\nimport com.pulumi.openstack.networking.PortArgs;\nimport com.pulumi.openstack.networking.inputs.PortBindingArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var network1 = new Network(\"network1\", NetworkArgs.builder() \n .name(\"network_1\")\n .adminStateUp(\"true\")\n .build());\n\n var port1 = new Port(\"port1\", PortArgs.builder() \n .name(\"port_1\")\n .networkId(network1.id())\n .deviceId(\"cdf70fcf-c161-4f24-9c70-96b3f5a54b71\")\n .deviceOwner(\"baremetal:none\")\n .adminStateUp(\"true\")\n .binding(PortBindingArgs.builder()\n .hostId(\"b080b9cf-46e0-4ce8-ad47-0fd4accc872b\")\n .vnicType(\"baremetal\")\n .profile(\"\"\"\n{\n \"local_link_information\": [\n {\n \"switch_info\": \"info1\",\n \"port_id\": \"Ethernet3/4\",\n \"switch_id\": \"12:34:56:78:9A:BC\"\n },\n {\n \"switch_info\": \"info2\",\n \"port_id\": \"Ethernet3/4\",\n \"switch_id\": \"12:34:56:78:9A:BD\"\n }\n ],\n \"vlan_type\": \"allowed\"\n}\n \"\"\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n network1:\n type: openstack:networking:Network\n name: network_1\n properties:\n name: network_1\n adminStateUp: 'true'\n port1:\n type: openstack:networking:Port\n name: port_1\n properties:\n name: port_1\n networkId: ${network1.id}\n deviceId: cdf70fcf-c161-4f24-9c70-96b3f5a54b71\n deviceOwner: baremetal:none\n adminStateUp: 'true'\n binding:\n hostId: b080b9cf-46e0-4ce8-ad47-0fd4accc872b\n vnicType: baremetal\n profile: |\n {\n \"local_link_information\": [\n {\n \"switch_info\": \"info1\",\n \"port_id\": \"Ethernet3/4\",\n \"switch_id\": \"12:34:56:78:9A:BC\"\n },\n {\n \"switch_info\": \"info2\",\n \"port_id\": \"Ethernet3/4\",\n \"switch_id\": \"12:34:56:78:9A:BD\"\n }\n ],\n \"vlan_type\": \"allowed\"\n }\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Notes\n\n### Ports and Instances\n\nThere are some notes to consider when connecting Instances to networks using\nPorts. Please see the `openstack.compute.Instance` documentation for further\ndocumentation.\n\n## Import\n\nPorts can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import openstack:networking/port:Port port_1 eae26a3e-1c33-4cc1-9c31-0cd729c438a1\n```\n", + "description": "Manages a V2 port resource within OpenStack.\n\n\u003e **Note:** Ports do not get an IP if the network they are attached\nto does not have a subnet. If you create the subnet resource in the\nsame run as the port, make sure to use `fixed_ip.subnet_id` or \n`depends_on` to enforce the subnet resource creation before the port\ncreation is triggered. More info here\n\n## Example Usage\n\n### Simple port\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst network1 = new openstack.networking.Network(\"network_1\", {\n name: \"network_1\",\n adminStateUp: true,\n});\nconst port1 = new openstack.networking.Port(\"port_1\", {\n name: \"port_1\",\n networkId: network1.id,\n adminStateUp: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nnetwork1 = openstack.networking.Network(\"network_1\",\n name=\"network_1\",\n admin_state_up=True)\nport1 = openstack.networking.Port(\"port_1\",\n name=\"port_1\",\n network_id=network1.id,\n admin_state_up=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var network1 = new OpenStack.Networking.Network(\"network_1\", new()\n {\n Name = \"network_1\",\n AdminStateUp = true,\n });\n\n var port1 = new OpenStack.Networking.Port(\"port_1\", new()\n {\n Name = \"port_1\",\n NetworkId = network1.Id,\n AdminStateUp = true,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tnetwork1, err := networking.NewNetwork(ctx, \"network_1\", \u0026networking.NetworkArgs{\n\t\t\tName: pulumi.String(\"network_1\"),\n\t\t\tAdminStateUp: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = networking.NewPort(ctx, \"port_1\", \u0026networking.PortArgs{\n\t\t\tName: pulumi.String(\"port_1\"),\n\t\t\tNetworkId: network1.ID(),\n\t\t\tAdminStateUp: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.Network;\nimport com.pulumi.openstack.networking.NetworkArgs;\nimport com.pulumi.openstack.networking.Port;\nimport com.pulumi.openstack.networking.PortArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var network1 = new Network(\"network1\", NetworkArgs.builder() \n .name(\"network_1\")\n .adminStateUp(\"true\")\n .build());\n\n var port1 = new Port(\"port1\", PortArgs.builder() \n .name(\"port_1\")\n .networkId(network1.id())\n .adminStateUp(\"true\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n network1:\n type: openstack:networking:Network\n name: network_1\n properties:\n name: network_1\n adminStateUp: 'true'\n port1:\n type: openstack:networking:Port\n name: port_1\n properties:\n name: port_1\n networkId: ${network1.id}\n adminStateUp: 'true'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Port defining fixed_ip.subnet_id\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst network1 = new openstack.networking.Network(\"network_1\", {\n name: \"network_1\",\n adminStateUp: true,\n});\nconst subnet1 = new openstack.networking.Subnet(\"subnet_1\", {\n name: \"subnet_1\",\n networkId: network1.id,\n cidr: \"192.168.199.0/24\",\n});\nconst port1 = new openstack.networking.Port(\"port_1\", {\n name: \"port_1\",\n networkId: network1.id,\n adminStateUp: true,\n fixedIps: [{\n subnetId: subnet1.id,\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nnetwork1 = openstack.networking.Network(\"network_1\",\n name=\"network_1\",\n admin_state_up=True)\nsubnet1 = openstack.networking.Subnet(\"subnet_1\",\n name=\"subnet_1\",\n network_id=network1.id,\n cidr=\"192.168.199.0/24\")\nport1 = openstack.networking.Port(\"port_1\",\n name=\"port_1\",\n network_id=network1.id,\n admin_state_up=True,\n fixed_ips=[openstack.networking.PortFixedIpArgs(\n subnet_id=subnet1.id,\n )])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var network1 = new OpenStack.Networking.Network(\"network_1\", new()\n {\n Name = \"network_1\",\n AdminStateUp = true,\n });\n\n var subnet1 = new OpenStack.Networking.Subnet(\"subnet_1\", new()\n {\n Name = \"subnet_1\",\n NetworkId = network1.Id,\n Cidr = \"192.168.199.0/24\",\n });\n\n var port1 = new OpenStack.Networking.Port(\"port_1\", new()\n {\n Name = \"port_1\",\n NetworkId = network1.Id,\n AdminStateUp = true,\n FixedIps = new[]\n {\n new OpenStack.Networking.Inputs.PortFixedIpArgs\n {\n SubnetId = subnet1.Id,\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tnetwork1, err := networking.NewNetwork(ctx, \"network_1\", \u0026networking.NetworkArgs{\n\t\t\tName: pulumi.String(\"network_1\"),\n\t\t\tAdminStateUp: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsubnet1, err := networking.NewSubnet(ctx, \"subnet_1\", \u0026networking.SubnetArgs{\n\t\t\tName: pulumi.String(\"subnet_1\"),\n\t\t\tNetworkId: network1.ID(),\n\t\t\tCidr: pulumi.String(\"192.168.199.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = networking.NewPort(ctx, \"port_1\", \u0026networking.PortArgs{\n\t\t\tName: pulumi.String(\"port_1\"),\n\t\t\tNetworkId: network1.ID(),\n\t\t\tAdminStateUp: pulumi.Bool(true),\n\t\t\tFixedIps: networking.PortFixedIpArray{\n\t\t\t\t\u0026networking.PortFixedIpArgs{\n\t\t\t\t\tSubnetId: subnet1.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.Network;\nimport com.pulumi.openstack.networking.NetworkArgs;\nimport com.pulumi.openstack.networking.Subnet;\nimport com.pulumi.openstack.networking.SubnetArgs;\nimport com.pulumi.openstack.networking.Port;\nimport com.pulumi.openstack.networking.PortArgs;\nimport com.pulumi.openstack.networking.inputs.PortFixedIpArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var network1 = new Network(\"network1\", NetworkArgs.builder() \n .name(\"network_1\")\n .adminStateUp(\"true\")\n .build());\n\n var subnet1 = new Subnet(\"subnet1\", SubnetArgs.builder() \n .name(\"subnet_1\")\n .networkId(network1.id())\n .cidr(\"192.168.199.0/24\")\n .build());\n\n var port1 = new Port(\"port1\", PortArgs.builder() \n .name(\"port_1\")\n .networkId(network1.id())\n .adminStateUp(\"true\")\n .fixedIps(PortFixedIpArgs.builder()\n .subnetId(subnet1.id())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n network1:\n type: openstack:networking:Network\n name: network_1\n properties:\n name: network_1\n adminStateUp: 'true'\n subnet1:\n type: openstack:networking:Subnet\n name: subnet_1\n properties:\n name: subnet_1\n networkId: ${network1.id}\n cidr: 192.168.199.0/24\n port1:\n type: openstack:networking:Port\n name: port_1\n properties:\n name: port_1\n networkId: ${network1.id}\n adminStateUp: 'true'\n fixedIps:\n - subnetId: ${subnet1.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Port with physical binding information\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst network1 = new openstack.networking.Network(\"network_1\", {\n name: \"network_1\",\n adminStateUp: true,\n});\nconst port1 = new openstack.networking.Port(\"port_1\", {\n name: \"port_1\",\n networkId: network1.id,\n deviceId: \"cdf70fcf-c161-4f24-9c70-96b3f5a54b71\",\n deviceOwner: \"baremetal:none\",\n adminStateUp: true,\n binding: {\n hostId: \"b080b9cf-46e0-4ce8-ad47-0fd4accc872b\",\n vnicType: \"baremetal\",\n profile: `{\n \"local_link_information\": [\n {\n \"switch_info\": \"info1\",\n \"port_id\": \"Ethernet3/4\",\n \"switch_id\": \"12:34:56:78:9A:BC\"\n },\n {\n \"switch_info\": \"info2\",\n \"port_id\": \"Ethernet3/4\",\n \"switch_id\": \"12:34:56:78:9A:BD\"\n }\n ],\n \"vlan_type\": \"allowed\"\n}\n`,\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nnetwork1 = openstack.networking.Network(\"network_1\",\n name=\"network_1\",\n admin_state_up=True)\nport1 = openstack.networking.Port(\"port_1\",\n name=\"port_1\",\n network_id=network1.id,\n device_id=\"cdf70fcf-c161-4f24-9c70-96b3f5a54b71\",\n device_owner=\"baremetal:none\",\n admin_state_up=True,\n binding=openstack.networking.PortBindingArgs(\n host_id=\"b080b9cf-46e0-4ce8-ad47-0fd4accc872b\",\n vnic_type=\"baremetal\",\n profile=\"\"\"{\n \"local_link_information\": [\n {\n \"switch_info\": \"info1\",\n \"port_id\": \"Ethernet3/4\",\n \"switch_id\": \"12:34:56:78:9A:BC\"\n },\n {\n \"switch_info\": \"info2\",\n \"port_id\": \"Ethernet3/4\",\n \"switch_id\": \"12:34:56:78:9A:BD\"\n }\n ],\n \"vlan_type\": \"allowed\"\n}\n\"\"\",\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var network1 = new OpenStack.Networking.Network(\"network_1\", new()\n {\n Name = \"network_1\",\n AdminStateUp = true,\n });\n\n var port1 = new OpenStack.Networking.Port(\"port_1\", new()\n {\n Name = \"port_1\",\n NetworkId = network1.Id,\n DeviceId = \"cdf70fcf-c161-4f24-9c70-96b3f5a54b71\",\n DeviceOwner = \"baremetal:none\",\n AdminStateUp = true,\n Binding = new OpenStack.Networking.Inputs.PortBindingArgs\n {\n HostId = \"b080b9cf-46e0-4ce8-ad47-0fd4accc872b\",\n VnicType = \"baremetal\",\n Profile = @\"{\n \"\"local_link_information\"\": [\n {\n \"\"switch_info\"\": \"\"info1\"\",\n \"\"port_id\"\": \"\"Ethernet3/4\"\",\n \"\"switch_id\"\": \"\"12:34:56:78:9A:BC\"\"\n },\n {\n \"\"switch_info\"\": \"\"info2\"\",\n \"\"port_id\"\": \"\"Ethernet3/4\"\",\n \"\"switch_id\"\": \"\"12:34:56:78:9A:BD\"\"\n }\n ],\n \"\"vlan_type\"\": \"\"allowed\"\"\n}\n\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tnetwork1, err := networking.NewNetwork(ctx, \"network_1\", \u0026networking.NetworkArgs{\n\t\t\tName: pulumi.String(\"network_1\"),\n\t\t\tAdminStateUp: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = networking.NewPort(ctx, \"port_1\", \u0026networking.PortArgs{\n\t\t\tName: pulumi.String(\"port_1\"),\n\t\t\tNetworkId: network1.ID(),\n\t\t\tDeviceId: pulumi.String(\"cdf70fcf-c161-4f24-9c70-96b3f5a54b71\"),\n\t\t\tDeviceOwner: pulumi.String(\"baremetal:none\"),\n\t\t\tAdminStateUp: pulumi.Bool(true),\n\t\t\tBinding: \u0026networking.PortBindingArgs{\n\t\t\t\tHostId: pulumi.String(\"b080b9cf-46e0-4ce8-ad47-0fd4accc872b\"),\n\t\t\t\tVnicType: pulumi.String(\"baremetal\"),\n\t\t\t\tProfile: pulumi.String(`{\n \"local_link_information\": [\n {\n \"switch_info\": \"info1\",\n \"port_id\": \"Ethernet3/4\",\n \"switch_id\": \"12:34:56:78:9A:BC\"\n },\n {\n \"switch_info\": \"info2\",\n \"port_id\": \"Ethernet3/4\",\n \"switch_id\": \"12:34:56:78:9A:BD\"\n }\n ],\n \"vlan_type\": \"allowed\"\n}\n`),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.Network;\nimport com.pulumi.openstack.networking.NetworkArgs;\nimport com.pulumi.openstack.networking.Port;\nimport com.pulumi.openstack.networking.PortArgs;\nimport com.pulumi.openstack.networking.inputs.PortBindingArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var network1 = new Network(\"network1\", NetworkArgs.builder() \n .name(\"network_1\")\n .adminStateUp(\"true\")\n .build());\n\n var port1 = new Port(\"port1\", PortArgs.builder() \n .name(\"port_1\")\n .networkId(network1.id())\n .deviceId(\"cdf70fcf-c161-4f24-9c70-96b3f5a54b71\")\n .deviceOwner(\"baremetal:none\")\n .adminStateUp(\"true\")\n .binding(PortBindingArgs.builder()\n .hostId(\"b080b9cf-46e0-4ce8-ad47-0fd4accc872b\")\n .vnicType(\"baremetal\")\n .profile(\"\"\"\n{\n \"local_link_information\": [\n {\n \"switch_info\": \"info1\",\n \"port_id\": \"Ethernet3/4\",\n \"switch_id\": \"12:34:56:78:9A:BC\"\n },\n {\n \"switch_info\": \"info2\",\n \"port_id\": \"Ethernet3/4\",\n \"switch_id\": \"12:34:56:78:9A:BD\"\n }\n ],\n \"vlan_type\": \"allowed\"\n}\n \"\"\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n network1:\n type: openstack:networking:Network\n name: network_1\n properties:\n name: network_1\n adminStateUp: 'true'\n port1:\n type: openstack:networking:Port\n name: port_1\n properties:\n name: port_1\n networkId: ${network1.id}\n deviceId: cdf70fcf-c161-4f24-9c70-96b3f5a54b71\n deviceOwner: baremetal:none\n adminStateUp: 'true'\n binding:\n hostId: b080b9cf-46e0-4ce8-ad47-0fd4accc872b\n vnicType: baremetal\n profile: |\n {\n \"local_link_information\": [\n {\n \"switch_info\": \"info1\",\n \"port_id\": \"Ethernet3/4\",\n \"switch_id\": \"12:34:56:78:9A:BC\"\n },\n {\n \"switch_info\": \"info2\",\n \"port_id\": \"Ethernet3/4\",\n \"switch_id\": \"12:34:56:78:9A:BD\"\n }\n ],\n \"vlan_type\": \"allowed\"\n }\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Notes\n\n### Ports and Instances\n\nThere are some notes to consider when connecting Instances to networks using\nPorts. Please see the `openstack.compute.Instance` documentation for further\ndocumentation.\n\n## Import\n\nPorts can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import openstack:networking/port:Port port_1 eae26a3e-1c33-4cc1-9c31-0cd729c438a1\n```\n", "properties": { "adminStateUp": { "type": "boolean", @@ -14565,7 +14392,7 @@ } }, "openstack:networking/portForwardingV2:PortForwardingV2": { - "description": "Manages a V2 portforwarding resource within OpenStack.\n\n## Example Usage\n\n### Simple portforwarding\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst pf1 = new openstack.networking.PortForwardingV2(\"pf_1\", {\n floatingipId: \"7a52eb59-7d47-415d-a884-046666a6fbae\",\n externalPort: 7233,\n internalPort: 25,\n internalPortId: \"b930d7f6-ceb7-40a0-8b81-a425dd994ccf\",\n protocol: \"tcp\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\npf1 = openstack.networking.PortForwardingV2(\"pf_1\",\n floatingip_id=\"7a52eb59-7d47-415d-a884-046666a6fbae\",\n external_port=7233,\n internal_port=25,\n internal_port_id=\"b930d7f6-ceb7-40a0-8b81-a425dd994ccf\",\n protocol=\"tcp\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var pf1 = new OpenStack.Networking.PortForwardingV2(\"pf_1\", new()\n {\n FloatingipId = \"7a52eb59-7d47-415d-a884-046666a6fbae\",\n ExternalPort = 7233,\n InternalPort = 25,\n InternalPortId = \"b930d7f6-ceb7-40a0-8b81-a425dd994ccf\",\n Protocol = \"tcp\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := networking.NewPortForwardingV2(ctx, \"pf_1\", \u0026networking.PortForwardingV2Args{\n\t\t\tFloatingipId: pulumi.String(\"7a52eb59-7d47-415d-a884-046666a6fbae\"),\n\t\t\tExternalPort: pulumi.Int(7233),\n\t\t\tInternalPort: pulumi.Int(25),\n\t\t\tInternalPortId: pulumi.String(\"b930d7f6-ceb7-40a0-8b81-a425dd994ccf\"),\n\t\t\tProtocol: pulumi.String(\"tcp\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.PortForwardingV2;\nimport com.pulumi.openstack.networking.PortForwardingV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var pf1 = new PortForwardingV2(\"pf1\", PortForwardingV2Args.builder() \n .floatingipId(\"7a52eb59-7d47-415d-a884-046666a6fbae\")\n .externalPort(7233)\n .internalPort(25)\n .internalPortId(\"b930d7f6-ceb7-40a0-8b81-a425dd994ccf\")\n .protocol(\"tcp\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n pf1:\n type: openstack:networking:PortForwardingV2\n name: pf_1\n properties:\n floatingipId: 7a52eb59-7d47-415d-a884-046666a6fbae\n externalPort: 7233\n internalPort: 25\n internalPortId: b930d7f6-ceb7-40a0-8b81-a425dd994ccf\n protocol: tcp\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Manages a V2 portforwarding resource within OpenStack.\n\n## Example Usage\n\n### Simple portforwarding\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst pf1 = new openstack.networking.PortForwardingV2(\"pf_1\", {\n floatingipId: \"7a52eb59-7d47-415d-a884-046666a6fbae\",\n externalPort: 7233,\n internalPort: 25,\n internalPortId: \"b930d7f6-ceb7-40a0-8b81-a425dd994ccf\",\n protocol: \"tcp\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\npf1 = openstack.networking.PortForwardingV2(\"pf_1\",\n floatingip_id=\"7a52eb59-7d47-415d-a884-046666a6fbae\",\n external_port=7233,\n internal_port=25,\n internal_port_id=\"b930d7f6-ceb7-40a0-8b81-a425dd994ccf\",\n protocol=\"tcp\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var pf1 = new OpenStack.Networking.PortForwardingV2(\"pf_1\", new()\n {\n FloatingipId = \"7a52eb59-7d47-415d-a884-046666a6fbae\",\n ExternalPort = 7233,\n InternalPort = 25,\n InternalPortId = \"b930d7f6-ceb7-40a0-8b81-a425dd994ccf\",\n Protocol = \"tcp\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := networking.NewPortForwardingV2(ctx, \"pf_1\", \u0026networking.PortForwardingV2Args{\n\t\t\tFloatingipId: pulumi.String(\"7a52eb59-7d47-415d-a884-046666a6fbae\"),\n\t\t\tExternalPort: pulumi.Int(7233),\n\t\t\tInternalPort: pulumi.Int(25),\n\t\t\tInternalPortId: pulumi.String(\"b930d7f6-ceb7-40a0-8b81-a425dd994ccf\"),\n\t\t\tProtocol: pulumi.String(\"tcp\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.PortForwardingV2;\nimport com.pulumi.openstack.networking.PortForwardingV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var pf1 = new PortForwardingV2(\"pf1\", PortForwardingV2Args.builder() \n .floatingipId(\"7a52eb59-7d47-415d-a884-046666a6fbae\")\n .externalPort(7233)\n .internalPort(25)\n .internalPortId(\"b930d7f6-ceb7-40a0-8b81-a425dd994ccf\")\n .protocol(\"tcp\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n pf1:\n type: openstack:networking:PortForwardingV2\n name: pf_1\n properties:\n floatingipId: 7a52eb59-7d47-415d-a884-046666a6fbae\n externalPort: 7233\n internalPort: 25\n internalPortId: b930d7f6-ceb7-40a0-8b81-a425dd994ccf\n protocol: tcp\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "properties": { "description": { "type": "string", @@ -14695,7 +14522,7 @@ } }, "openstack:networking/portSecGroupAssociate:PortSecGroupAssociate": { - "description": "## Example Usage\n\n### Append a security group to an existing port\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst systemPort = openstack.networking.getPort({\n fixedIp: \"10.0.0.10\",\n});\nconst secgroup = openstack.networking.getSecGroup({\n name: \"secgroup\",\n});\nconst port1 = new openstack.networking.PortSecGroupAssociate(\"port_1\", {\n portId: systemPort.then(systemPort =\u003e systemPort.id),\n securityGroupIds: [secgroup.then(secgroup =\u003e secgroup.id)],\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nsystem_port = openstack.networking.get_port(fixed_ip=\"10.0.0.10\")\nsecgroup = openstack.networking.get_sec_group(name=\"secgroup\")\nport1 = openstack.networking.PortSecGroupAssociate(\"port_1\",\n port_id=system_port.id,\n security_group_ids=[secgroup.id])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var systemPort = OpenStack.Networking.GetPort.Invoke(new()\n {\n FixedIp = \"10.0.0.10\",\n });\n\n var secgroup = OpenStack.Networking.GetSecGroup.Invoke(new()\n {\n Name = \"secgroup\",\n });\n\n var port1 = new OpenStack.Networking.PortSecGroupAssociate(\"port_1\", new()\n {\n PortId = systemPort.Apply(getPortResult =\u003e getPortResult.Id),\n SecurityGroupIds = new[]\n {\n secgroup.Apply(getSecGroupResult =\u003e getSecGroupResult.Id),\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tsystemPort, err := networking.LookupPort(ctx, \u0026networking.LookupPortArgs{\n\t\t\tFixedIp: pulumi.StringRef(\"10.0.0.10\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsecgroup, err := networking.LookupSecGroup(ctx, \u0026networking.LookupSecGroupArgs{\n\t\t\tName: pulumi.StringRef(\"secgroup\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = networking.NewPortSecGroupAssociate(ctx, \"port_1\", \u0026networking.PortSecGroupAssociateArgs{\n\t\t\tPortId: pulumi.String(systemPort.Id),\n\t\t\tSecurityGroupIds: pulumi.StringArray{\n\t\t\t\tpulumi.String(secgroup.Id),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.NetworkingFunctions;\nimport com.pulumi.openstack.networking.inputs.GetPortArgs;\nimport com.pulumi.openstack.networking.inputs.GetSecGroupArgs;\nimport com.pulumi.openstack.networking.PortSecGroupAssociate;\nimport com.pulumi.openstack.networking.PortSecGroupAssociateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var systemPort = NetworkingFunctions.getPort(GetPortArgs.builder()\n .fixedIp(\"10.0.0.10\")\n .build());\n\n final var secgroup = NetworkingFunctions.getSecGroup(GetSecGroupArgs.builder()\n .name(\"secgroup\")\n .build());\n\n var port1 = new PortSecGroupAssociate(\"port1\", PortSecGroupAssociateArgs.builder() \n .portId(systemPort.applyValue(getPortResult -\u003e getPortResult.id()))\n .securityGroupIds(secgroup.applyValue(getSecGroupResult -\u003e getSecGroupResult.id()))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n port1:\n type: openstack:networking:PortSecGroupAssociate\n name: port_1\n properties:\n portId: ${systemPort.id}\n securityGroupIds:\n - ${secgroup.id}\nvariables:\n systemPort:\n fn::invoke:\n Function: openstack:networking:getPort\n Arguments:\n fixedIp: 10.0.0.10\n secgroup:\n fn::invoke:\n Function: openstack:networking:getSecGroup\n Arguments:\n name: secgroup\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Enforce a security group to an existing port\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst systemPort = openstack.networking.getPort({\n fixedIp: \"10.0.0.10\",\n});\nconst secgroup = openstack.networking.getSecGroup({\n name: \"secgroup\",\n});\nconst port1 = new openstack.networking.PortSecGroupAssociate(\"port_1\", {\n portId: systemPort.then(systemPort =\u003e systemPort.id),\n enforce: true,\n securityGroupIds: [secgroup.then(secgroup =\u003e secgroup.id)],\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nsystem_port = openstack.networking.get_port(fixed_ip=\"10.0.0.10\")\nsecgroup = openstack.networking.get_sec_group(name=\"secgroup\")\nport1 = openstack.networking.PortSecGroupAssociate(\"port_1\",\n port_id=system_port.id,\n enforce=True,\n security_group_ids=[secgroup.id])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var systemPort = OpenStack.Networking.GetPort.Invoke(new()\n {\n FixedIp = \"10.0.0.10\",\n });\n\n var secgroup = OpenStack.Networking.GetSecGroup.Invoke(new()\n {\n Name = \"secgroup\",\n });\n\n var port1 = new OpenStack.Networking.PortSecGroupAssociate(\"port_1\", new()\n {\n PortId = systemPort.Apply(getPortResult =\u003e getPortResult.Id),\n Enforce = true,\n SecurityGroupIds = new[]\n {\n secgroup.Apply(getSecGroupResult =\u003e getSecGroupResult.Id),\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tsystemPort, err := networking.LookupPort(ctx, \u0026networking.LookupPortArgs{\n\t\t\tFixedIp: pulumi.StringRef(\"10.0.0.10\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsecgroup, err := networking.LookupSecGroup(ctx, \u0026networking.LookupSecGroupArgs{\n\t\t\tName: pulumi.StringRef(\"secgroup\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = networking.NewPortSecGroupAssociate(ctx, \"port_1\", \u0026networking.PortSecGroupAssociateArgs{\n\t\t\tPortId: pulumi.String(systemPort.Id),\n\t\t\tEnforce: pulumi.Bool(true),\n\t\t\tSecurityGroupIds: pulumi.StringArray{\n\t\t\t\tpulumi.String(secgroup.Id),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.NetworkingFunctions;\nimport com.pulumi.openstack.networking.inputs.GetPortArgs;\nimport com.pulumi.openstack.networking.inputs.GetSecGroupArgs;\nimport com.pulumi.openstack.networking.PortSecGroupAssociate;\nimport com.pulumi.openstack.networking.PortSecGroupAssociateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var systemPort = NetworkingFunctions.getPort(GetPortArgs.builder()\n .fixedIp(\"10.0.0.10\")\n .build());\n\n final var secgroup = NetworkingFunctions.getSecGroup(GetSecGroupArgs.builder()\n .name(\"secgroup\")\n .build());\n\n var port1 = new PortSecGroupAssociate(\"port1\", PortSecGroupAssociateArgs.builder() \n .portId(systemPort.applyValue(getPortResult -\u003e getPortResult.id()))\n .enforce(\"true\")\n .securityGroupIds(secgroup.applyValue(getSecGroupResult -\u003e getSecGroupResult.id()))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n port1:\n type: openstack:networking:PortSecGroupAssociate\n name: port_1\n properties:\n portId: ${systemPort.id}\n enforce: 'true'\n securityGroupIds:\n - ${secgroup.id}\nvariables:\n systemPort:\n fn::invoke:\n Function: openstack:networking:getPort\n Arguments:\n fixedIp: 10.0.0.10\n secgroup:\n fn::invoke:\n Function: openstack:networking:getSecGroup\n Arguments:\n name: secgroup\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Remove all security groups from an existing port\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst systemPort = openstack.networking.getPort({\n fixedIp: \"10.0.0.10\",\n});\nconst port1 = new openstack.networking.PortSecGroupAssociate(\"port_1\", {\n portId: systemPort.then(systemPort =\u003e systemPort.id),\n enforce: true,\n securityGroupIds: [],\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nsystem_port = openstack.networking.get_port(fixed_ip=\"10.0.0.10\")\nport1 = openstack.networking.PortSecGroupAssociate(\"port_1\",\n port_id=system_port.id,\n enforce=True,\n security_group_ids=[])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var systemPort = OpenStack.Networking.GetPort.Invoke(new()\n {\n FixedIp = \"10.0.0.10\",\n });\n\n var port1 = new OpenStack.Networking.PortSecGroupAssociate(\"port_1\", new()\n {\n PortId = systemPort.Apply(getPortResult =\u003e getPortResult.Id),\n Enforce = true,\n SecurityGroupIds = new[] {},\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tsystemPort, err := networking.LookupPort(ctx, \u0026networking.LookupPortArgs{\n\t\t\tFixedIp: pulumi.StringRef(\"10.0.0.10\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = networking.NewPortSecGroupAssociate(ctx, \"port_1\", \u0026networking.PortSecGroupAssociateArgs{\n\t\t\tPortId: pulumi.String(systemPort.Id),\n\t\t\tEnforce: pulumi.Bool(true),\n\t\t\tSecurityGroupIds: pulumi.StringArray{},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.NetworkingFunctions;\nimport com.pulumi.openstack.networking.inputs.GetPortArgs;\nimport com.pulumi.openstack.networking.PortSecGroupAssociate;\nimport com.pulumi.openstack.networking.PortSecGroupAssociateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var systemPort = NetworkingFunctions.getPort(GetPortArgs.builder()\n .fixedIp(\"10.0.0.10\")\n .build());\n\n var port1 = new PortSecGroupAssociate(\"port1\", PortSecGroupAssociateArgs.builder() \n .portId(systemPort.applyValue(getPortResult -\u003e getPortResult.id()))\n .enforce(\"true\")\n .securityGroupIds()\n .build());\n\n }\n}\n```\n```yaml\nresources:\n port1:\n type: openstack:networking:PortSecGroupAssociate\n name: port_1\n properties:\n portId: ${systemPort.id}\n enforce: 'true'\n securityGroupIds: []\nvariables:\n systemPort:\n fn::invoke:\n Function: openstack:networking:getPort\n Arguments:\n fixedIp: 10.0.0.10\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nPort security group association can be imported using the `id` of the port, e.g.\n\n```sh\n$ pulumi import openstack:networking/portSecGroupAssociate:PortSecGroupAssociate port_1 eae26a3e-1c33-4cc1-9c31-0cd729c438a1\n```\n", + "description": "## Example Usage\n\n### Append a security group to an existing port\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst systemPort = openstack.networking.getPort({\n fixedIp: \"10.0.0.10\",\n});\nconst secgroup = openstack.networking.getSecGroup({\n name: \"secgroup\",\n});\nconst port1 = new openstack.networking.PortSecGroupAssociate(\"port_1\", {\n portId: systemPort.then(systemPort =\u003e systemPort.id),\n securityGroupIds: [secgroup.then(secgroup =\u003e secgroup.id)],\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nsystem_port = openstack.networking.get_port(fixed_ip=\"10.0.0.10\")\nsecgroup = openstack.networking.get_sec_group(name=\"secgroup\")\nport1 = openstack.networking.PortSecGroupAssociate(\"port_1\",\n port_id=system_port.id,\n security_group_ids=[secgroup.id])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var systemPort = OpenStack.Networking.GetPort.Invoke(new()\n {\n FixedIp = \"10.0.0.10\",\n });\n\n var secgroup = OpenStack.Networking.GetSecGroup.Invoke(new()\n {\n Name = \"secgroup\",\n });\n\n var port1 = new OpenStack.Networking.PortSecGroupAssociate(\"port_1\", new()\n {\n PortId = systemPort.Apply(getPortResult =\u003e getPortResult.Id),\n SecurityGroupIds = new[]\n {\n secgroup.Apply(getSecGroupResult =\u003e getSecGroupResult.Id),\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tsystemPort, err := networking.LookupPort(ctx, \u0026networking.LookupPortArgs{\n\t\t\tFixedIp: pulumi.StringRef(\"10.0.0.10\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsecgroup, err := networking.LookupSecGroup(ctx, \u0026networking.LookupSecGroupArgs{\n\t\t\tName: pulumi.StringRef(\"secgroup\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = networking.NewPortSecGroupAssociate(ctx, \"port_1\", \u0026networking.PortSecGroupAssociateArgs{\n\t\t\tPortId: pulumi.String(systemPort.Id),\n\t\t\tSecurityGroupIds: pulumi.StringArray{\n\t\t\t\tpulumi.String(secgroup.Id),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.NetworkingFunctions;\nimport com.pulumi.openstack.networking.inputs.GetPortArgs;\nimport com.pulumi.openstack.networking.inputs.GetSecGroupArgs;\nimport com.pulumi.openstack.networking.PortSecGroupAssociate;\nimport com.pulumi.openstack.networking.PortSecGroupAssociateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var systemPort = NetworkingFunctions.getPort(GetPortArgs.builder()\n .fixedIp(\"10.0.0.10\")\n .build());\n\n final var secgroup = NetworkingFunctions.getSecGroup(GetSecGroupArgs.builder()\n .name(\"secgroup\")\n .build());\n\n var port1 = new PortSecGroupAssociate(\"port1\", PortSecGroupAssociateArgs.builder() \n .portId(systemPort.applyValue(getPortResult -\u003e getPortResult.id()))\n .securityGroupIds(secgroup.applyValue(getSecGroupResult -\u003e getSecGroupResult.id()))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n port1:\n type: openstack:networking:PortSecGroupAssociate\n name: port_1\n properties:\n portId: ${systemPort.id}\n securityGroupIds:\n - ${secgroup.id}\nvariables:\n systemPort:\n fn::invoke:\n Function: openstack:networking:getPort\n Arguments:\n fixedIp: 10.0.0.10\n secgroup:\n fn::invoke:\n Function: openstack:networking:getSecGroup\n Arguments:\n name: secgroup\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Enforce a security group to an existing port\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst systemPort = openstack.networking.getPort({\n fixedIp: \"10.0.0.10\",\n});\nconst secgroup = openstack.networking.getSecGroup({\n name: \"secgroup\",\n});\nconst port1 = new openstack.networking.PortSecGroupAssociate(\"port_1\", {\n portId: systemPort.then(systemPort =\u003e systemPort.id),\n enforce: true,\n securityGroupIds: [secgroup.then(secgroup =\u003e secgroup.id)],\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nsystem_port = openstack.networking.get_port(fixed_ip=\"10.0.0.10\")\nsecgroup = openstack.networking.get_sec_group(name=\"secgroup\")\nport1 = openstack.networking.PortSecGroupAssociate(\"port_1\",\n port_id=system_port.id,\n enforce=True,\n security_group_ids=[secgroup.id])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var systemPort = OpenStack.Networking.GetPort.Invoke(new()\n {\n FixedIp = \"10.0.0.10\",\n });\n\n var secgroup = OpenStack.Networking.GetSecGroup.Invoke(new()\n {\n Name = \"secgroup\",\n });\n\n var port1 = new OpenStack.Networking.PortSecGroupAssociate(\"port_1\", new()\n {\n PortId = systemPort.Apply(getPortResult =\u003e getPortResult.Id),\n Enforce = true,\n SecurityGroupIds = new[]\n {\n secgroup.Apply(getSecGroupResult =\u003e getSecGroupResult.Id),\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tsystemPort, err := networking.LookupPort(ctx, \u0026networking.LookupPortArgs{\n\t\t\tFixedIp: pulumi.StringRef(\"10.0.0.10\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsecgroup, err := networking.LookupSecGroup(ctx, \u0026networking.LookupSecGroupArgs{\n\t\t\tName: pulumi.StringRef(\"secgroup\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = networking.NewPortSecGroupAssociate(ctx, \"port_1\", \u0026networking.PortSecGroupAssociateArgs{\n\t\t\tPortId: pulumi.String(systemPort.Id),\n\t\t\tEnforce: pulumi.Bool(true),\n\t\t\tSecurityGroupIds: pulumi.StringArray{\n\t\t\t\tpulumi.String(secgroup.Id),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.NetworkingFunctions;\nimport com.pulumi.openstack.networking.inputs.GetPortArgs;\nimport com.pulumi.openstack.networking.inputs.GetSecGroupArgs;\nimport com.pulumi.openstack.networking.PortSecGroupAssociate;\nimport com.pulumi.openstack.networking.PortSecGroupAssociateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var systemPort = NetworkingFunctions.getPort(GetPortArgs.builder()\n .fixedIp(\"10.0.0.10\")\n .build());\n\n final var secgroup = NetworkingFunctions.getSecGroup(GetSecGroupArgs.builder()\n .name(\"secgroup\")\n .build());\n\n var port1 = new PortSecGroupAssociate(\"port1\", PortSecGroupAssociateArgs.builder() \n .portId(systemPort.applyValue(getPortResult -\u003e getPortResult.id()))\n .enforce(\"true\")\n .securityGroupIds(secgroup.applyValue(getSecGroupResult -\u003e getSecGroupResult.id()))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n port1:\n type: openstack:networking:PortSecGroupAssociate\n name: port_1\n properties:\n portId: ${systemPort.id}\n enforce: 'true'\n securityGroupIds:\n - ${secgroup.id}\nvariables:\n systemPort:\n fn::invoke:\n Function: openstack:networking:getPort\n Arguments:\n fixedIp: 10.0.0.10\n secgroup:\n fn::invoke:\n Function: openstack:networking:getSecGroup\n Arguments:\n name: secgroup\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Remove all security groups from an existing port\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst systemPort = openstack.networking.getPort({\n fixedIp: \"10.0.0.10\",\n});\nconst port1 = new openstack.networking.PortSecGroupAssociate(\"port_1\", {\n portId: systemPort.then(systemPort =\u003e systemPort.id),\n enforce: true,\n securityGroupIds: [],\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nsystem_port = openstack.networking.get_port(fixed_ip=\"10.0.0.10\")\nport1 = openstack.networking.PortSecGroupAssociate(\"port_1\",\n port_id=system_port.id,\n enforce=True,\n security_group_ids=[])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var systemPort = OpenStack.Networking.GetPort.Invoke(new()\n {\n FixedIp = \"10.0.0.10\",\n });\n\n var port1 = new OpenStack.Networking.PortSecGroupAssociate(\"port_1\", new()\n {\n PortId = systemPort.Apply(getPortResult =\u003e getPortResult.Id),\n Enforce = true,\n SecurityGroupIds = new[] {},\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tsystemPort, err := networking.LookupPort(ctx, \u0026networking.LookupPortArgs{\n\t\t\tFixedIp: pulumi.StringRef(\"10.0.0.10\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = networking.NewPortSecGroupAssociate(ctx, \"port_1\", \u0026networking.PortSecGroupAssociateArgs{\n\t\t\tPortId: pulumi.String(systemPort.Id),\n\t\t\tEnforce: pulumi.Bool(true),\n\t\t\tSecurityGroupIds: pulumi.StringArray{},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.NetworkingFunctions;\nimport com.pulumi.openstack.networking.inputs.GetPortArgs;\nimport com.pulumi.openstack.networking.PortSecGroupAssociate;\nimport com.pulumi.openstack.networking.PortSecGroupAssociateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var systemPort = NetworkingFunctions.getPort(GetPortArgs.builder()\n .fixedIp(\"10.0.0.10\")\n .build());\n\n var port1 = new PortSecGroupAssociate(\"port1\", PortSecGroupAssociateArgs.builder() \n .portId(systemPort.applyValue(getPortResult -\u003e getPortResult.id()))\n .enforce(\"true\")\n .securityGroupIds()\n .build());\n\n }\n}\n```\n```yaml\nresources:\n port1:\n type: openstack:networking:PortSecGroupAssociate\n name: port_1\n properties:\n portId: ${systemPort.id}\n enforce: 'true'\n securityGroupIds: []\nvariables:\n systemPort:\n fn::invoke:\n Function: openstack:networking:getPort\n Arguments:\n fixedIp: 10.0.0.10\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nPort security group association can be imported using the `id` of the port, e.g.\n\n```sh\n$ pulumi import openstack:networking/portSecGroupAssociate:PortSecGroupAssociate port_1 eae26a3e-1c33-4cc1-9c31-0cd729c438a1\n```\n", "properties": { "allSecurityGroupIds": { "type": "array", @@ -14793,7 +14620,7 @@ } }, "openstack:networking/qosBandwidthLimitRule:QosBandwidthLimitRule": { - "description": "Manages a V2 Neutron QoS bandwidth limit rule resource within OpenStack.\n\n## Example Usage\n\n### Create a QoS Policy with some bandwidth limit rule\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst qosPolicy1 = new openstack.networking.QosPolicy(\"qos_policy_1\", {\n name: \"qos_policy_1\",\n description: \"bw_limit\",\n});\nconst bwLimitRule1 = new openstack.networking.QosBandwidthLimitRule(\"bw_limit_rule_1\", {\n qosPolicyId: qosPolicy1.id,\n maxKbps: 3000,\n maxBurstKbps: 300,\n direction: \"egress\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nqos_policy1 = openstack.networking.QosPolicy(\"qos_policy_1\",\n name=\"qos_policy_1\",\n description=\"bw_limit\")\nbw_limit_rule1 = openstack.networking.QosBandwidthLimitRule(\"bw_limit_rule_1\",\n qos_policy_id=qos_policy1.id,\n max_kbps=3000,\n max_burst_kbps=300,\n direction=\"egress\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var qosPolicy1 = new OpenStack.Networking.QosPolicy(\"qos_policy_1\", new()\n {\n Name = \"qos_policy_1\",\n Description = \"bw_limit\",\n });\n\n var bwLimitRule1 = new OpenStack.Networking.QosBandwidthLimitRule(\"bw_limit_rule_1\", new()\n {\n QosPolicyId = qosPolicy1.Id,\n MaxKbps = 3000,\n MaxBurstKbps = 300,\n Direction = \"egress\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tqosPolicy1, err := networking.NewQosPolicy(ctx, \"qos_policy_1\", \u0026networking.QosPolicyArgs{\n\t\t\tName: pulumi.String(\"qos_policy_1\"),\n\t\t\tDescription: pulumi.String(\"bw_limit\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = networking.NewQosBandwidthLimitRule(ctx, \"bw_limit_rule_1\", \u0026networking.QosBandwidthLimitRuleArgs{\n\t\t\tQosPolicyId: qosPolicy1.ID(),\n\t\t\tMaxKbps: pulumi.Int(3000),\n\t\t\tMaxBurstKbps: pulumi.Int(300),\n\t\t\tDirection: pulumi.String(\"egress\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.QosPolicy;\nimport com.pulumi.openstack.networking.QosPolicyArgs;\nimport com.pulumi.openstack.networking.QosBandwidthLimitRule;\nimport com.pulumi.openstack.networking.QosBandwidthLimitRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var qosPolicy1 = new QosPolicy(\"qosPolicy1\", QosPolicyArgs.builder() \n .name(\"qos_policy_1\")\n .description(\"bw_limit\")\n .build());\n\n var bwLimitRule1 = new QosBandwidthLimitRule(\"bwLimitRule1\", QosBandwidthLimitRuleArgs.builder() \n .qosPolicyId(qosPolicy1.id())\n .maxKbps(3000)\n .maxBurstKbps(300)\n .direction(\"egress\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n qosPolicy1:\n type: openstack:networking:QosPolicy\n name: qos_policy_1\n properties:\n name: qos_policy_1\n description: bw_limit\n bwLimitRule1:\n type: openstack:networking:QosBandwidthLimitRule\n name: bw_limit_rule_1\n properties:\n qosPolicyId: ${qosPolicy1.id}\n maxKbps: 3000\n maxBurstKbps: 300\n direction: egress\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nQoS bandwidth limit rules can be imported using the `qos_policy_id/bandwidth_limit_rule` format, e.g.\n\n```sh\n$ pulumi import openstack:networking/qosBandwidthLimitRule:QosBandwidthLimitRule bw_limit_rule_1 d6ae28ce-fcb5-4180-aa62-d260a27e09ae/46dfb556-b92f-48ce-94c5-9a9e2140de94\n```\n", + "description": "Manages a V2 Neutron QoS bandwidth limit rule resource within OpenStack.\n\n## Example Usage\n\n### Create a QoS Policy with some bandwidth limit rule\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst qosPolicy1 = new openstack.networking.QosPolicy(\"qos_policy_1\", {\n name: \"qos_policy_1\",\n description: \"bw_limit\",\n});\nconst bwLimitRule1 = new openstack.networking.QosBandwidthLimitRule(\"bw_limit_rule_1\", {\n qosPolicyId: qosPolicy1.id,\n maxKbps: 3000,\n maxBurstKbps: 300,\n direction: \"egress\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nqos_policy1 = openstack.networking.QosPolicy(\"qos_policy_1\",\n name=\"qos_policy_1\",\n description=\"bw_limit\")\nbw_limit_rule1 = openstack.networking.QosBandwidthLimitRule(\"bw_limit_rule_1\",\n qos_policy_id=qos_policy1.id,\n max_kbps=3000,\n max_burst_kbps=300,\n direction=\"egress\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var qosPolicy1 = new OpenStack.Networking.QosPolicy(\"qos_policy_1\", new()\n {\n Name = \"qos_policy_1\",\n Description = \"bw_limit\",\n });\n\n var bwLimitRule1 = new OpenStack.Networking.QosBandwidthLimitRule(\"bw_limit_rule_1\", new()\n {\n QosPolicyId = qosPolicy1.Id,\n MaxKbps = 3000,\n MaxBurstKbps = 300,\n Direction = \"egress\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tqosPolicy1, err := networking.NewQosPolicy(ctx, \"qos_policy_1\", \u0026networking.QosPolicyArgs{\n\t\t\tName: pulumi.String(\"qos_policy_1\"),\n\t\t\tDescription: pulumi.String(\"bw_limit\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = networking.NewQosBandwidthLimitRule(ctx, \"bw_limit_rule_1\", \u0026networking.QosBandwidthLimitRuleArgs{\n\t\t\tQosPolicyId: qosPolicy1.ID(),\n\t\t\tMaxKbps: pulumi.Int(3000),\n\t\t\tMaxBurstKbps: pulumi.Int(300),\n\t\t\tDirection: pulumi.String(\"egress\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.QosPolicy;\nimport com.pulumi.openstack.networking.QosPolicyArgs;\nimport com.pulumi.openstack.networking.QosBandwidthLimitRule;\nimport com.pulumi.openstack.networking.QosBandwidthLimitRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var qosPolicy1 = new QosPolicy(\"qosPolicy1\", QosPolicyArgs.builder() \n .name(\"qos_policy_1\")\n .description(\"bw_limit\")\n .build());\n\n var bwLimitRule1 = new QosBandwidthLimitRule(\"bwLimitRule1\", QosBandwidthLimitRuleArgs.builder() \n .qosPolicyId(qosPolicy1.id())\n .maxKbps(3000)\n .maxBurstKbps(300)\n .direction(\"egress\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n qosPolicy1:\n type: openstack:networking:QosPolicy\n name: qos_policy_1\n properties:\n name: qos_policy_1\n description: bw_limit\n bwLimitRule1:\n type: openstack:networking:QosBandwidthLimitRule\n name: bw_limit_rule_1\n properties:\n qosPolicyId: ${qosPolicy1.id}\n maxKbps: 3000\n maxBurstKbps: 300\n direction: egress\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nQoS bandwidth limit rules can be imported using the `qos_policy_id/bandwidth_limit_rule` format, e.g.\n\n```sh\n$ pulumi import openstack:networking/qosBandwidthLimitRule:QosBandwidthLimitRule bw_limit_rule_1 d6ae28ce-fcb5-4180-aa62-d260a27e09ae/46dfb556-b92f-48ce-94c5-9a9e2140de94\n```\n", "properties": { "direction": { "type": "string", @@ -14879,7 +14706,7 @@ } }, "openstack:networking/qosDscpMarkingRule:QosDscpMarkingRule": { - "description": "Manages a V2 Neutron QoS DSCP marking rule resource within OpenStack.\n\n## Example Usage\n\n### Create a QoS Policy with some DSCP marking rule\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst qosPolicy1 = new openstack.networking.QosPolicy(\"qos_policy_1\", {\n name: \"qos_policy_1\",\n description: \"dscp_mark\",\n});\nconst dscpMarkingRule1 = new openstack.networking.QosDscpMarkingRule(\"dscp_marking_rule_1\", {\n qosPolicyId: qosPolicy1.id,\n dscpMark: 26,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nqos_policy1 = openstack.networking.QosPolicy(\"qos_policy_1\",\n name=\"qos_policy_1\",\n description=\"dscp_mark\")\ndscp_marking_rule1 = openstack.networking.QosDscpMarkingRule(\"dscp_marking_rule_1\",\n qos_policy_id=qos_policy1.id,\n dscp_mark=26)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var qosPolicy1 = new OpenStack.Networking.QosPolicy(\"qos_policy_1\", new()\n {\n Name = \"qos_policy_1\",\n Description = \"dscp_mark\",\n });\n\n var dscpMarkingRule1 = new OpenStack.Networking.QosDscpMarkingRule(\"dscp_marking_rule_1\", new()\n {\n QosPolicyId = qosPolicy1.Id,\n DscpMark = 26,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tqosPolicy1, err := networking.NewQosPolicy(ctx, \"qos_policy_1\", \u0026networking.QosPolicyArgs{\n\t\t\tName: pulumi.String(\"qos_policy_1\"),\n\t\t\tDescription: pulumi.String(\"dscp_mark\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = networking.NewQosDscpMarkingRule(ctx, \"dscp_marking_rule_1\", \u0026networking.QosDscpMarkingRuleArgs{\n\t\t\tQosPolicyId: qosPolicy1.ID(),\n\t\t\tDscpMark: pulumi.Int(26),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.QosPolicy;\nimport com.pulumi.openstack.networking.QosPolicyArgs;\nimport com.pulumi.openstack.networking.QosDscpMarkingRule;\nimport com.pulumi.openstack.networking.QosDscpMarkingRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var qosPolicy1 = new QosPolicy(\"qosPolicy1\", QosPolicyArgs.builder() \n .name(\"qos_policy_1\")\n .description(\"dscp_mark\")\n .build());\n\n var dscpMarkingRule1 = new QosDscpMarkingRule(\"dscpMarkingRule1\", QosDscpMarkingRuleArgs.builder() \n .qosPolicyId(qosPolicy1.id())\n .dscpMark(26)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n qosPolicy1:\n type: openstack:networking:QosPolicy\n name: qos_policy_1\n properties:\n name: qos_policy_1\n description: dscp_mark\n dscpMarkingRule1:\n type: openstack:networking:QosDscpMarkingRule\n name: dscp_marking_rule_1\n properties:\n qosPolicyId: ${qosPolicy1.id}\n dscpMark: 26\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nQoS DSCP marking rules can be imported using the `qos_policy_id/dscp_marking_rule_id` format, e.g.\n\n```sh\n$ pulumi import openstack:networking/qosDscpMarkingRule:QosDscpMarkingRule dscp_marking_rule_1 d6ae28ce-fcb5-4180-aa62-d260a27e09ae/46dfb556-b92f-48ce-94c5-9a9e2140de94\n```\n", + "description": "Manages a V2 Neutron QoS DSCP marking rule resource within OpenStack.\n\n## Example Usage\n\n### Create a QoS Policy with some DSCP marking rule\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst qosPolicy1 = new openstack.networking.QosPolicy(\"qos_policy_1\", {\n name: \"qos_policy_1\",\n description: \"dscp_mark\",\n});\nconst dscpMarkingRule1 = new openstack.networking.QosDscpMarkingRule(\"dscp_marking_rule_1\", {\n qosPolicyId: qosPolicy1.id,\n dscpMark: 26,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nqos_policy1 = openstack.networking.QosPolicy(\"qos_policy_1\",\n name=\"qos_policy_1\",\n description=\"dscp_mark\")\ndscp_marking_rule1 = openstack.networking.QosDscpMarkingRule(\"dscp_marking_rule_1\",\n qos_policy_id=qos_policy1.id,\n dscp_mark=26)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var qosPolicy1 = new OpenStack.Networking.QosPolicy(\"qos_policy_1\", new()\n {\n Name = \"qos_policy_1\",\n Description = \"dscp_mark\",\n });\n\n var dscpMarkingRule1 = new OpenStack.Networking.QosDscpMarkingRule(\"dscp_marking_rule_1\", new()\n {\n QosPolicyId = qosPolicy1.Id,\n DscpMark = 26,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tqosPolicy1, err := networking.NewQosPolicy(ctx, \"qos_policy_1\", \u0026networking.QosPolicyArgs{\n\t\t\tName: pulumi.String(\"qos_policy_1\"),\n\t\t\tDescription: pulumi.String(\"dscp_mark\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = networking.NewQosDscpMarkingRule(ctx, \"dscp_marking_rule_1\", \u0026networking.QosDscpMarkingRuleArgs{\n\t\t\tQosPolicyId: qosPolicy1.ID(),\n\t\t\tDscpMark: pulumi.Int(26),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.QosPolicy;\nimport com.pulumi.openstack.networking.QosPolicyArgs;\nimport com.pulumi.openstack.networking.QosDscpMarkingRule;\nimport com.pulumi.openstack.networking.QosDscpMarkingRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var qosPolicy1 = new QosPolicy(\"qosPolicy1\", QosPolicyArgs.builder() \n .name(\"qos_policy_1\")\n .description(\"dscp_mark\")\n .build());\n\n var dscpMarkingRule1 = new QosDscpMarkingRule(\"dscpMarkingRule1\", QosDscpMarkingRuleArgs.builder() \n .qosPolicyId(qosPolicy1.id())\n .dscpMark(26)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n qosPolicy1:\n type: openstack:networking:QosPolicy\n name: qos_policy_1\n properties:\n name: qos_policy_1\n description: dscp_mark\n dscpMarkingRule1:\n type: openstack:networking:QosDscpMarkingRule\n name: dscp_marking_rule_1\n properties:\n qosPolicyId: ${qosPolicy1.id}\n dscpMark: 26\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nQoS DSCP marking rules can be imported using the `qos_policy_id/dscp_marking_rule_id` format, e.g.\n\n```sh\n$ pulumi import openstack:networking/qosDscpMarkingRule:QosDscpMarkingRule dscp_marking_rule_1 d6ae28ce-fcb5-4180-aa62-d260a27e09ae/46dfb556-b92f-48ce-94c5-9a9e2140de94\n```\n", "properties": { "dscpMark": { "type": "integer", @@ -14941,7 +14768,7 @@ } }, "openstack:networking/qosMinimumBandwidthRule:QosMinimumBandwidthRule": { - "description": "Manages a V2 Neutron QoS minimum bandwidth rule resource within OpenStack.\n\n## Example Usage\n\n### Create a QoS Policy with some minimum bandwidth rule\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst qosPolicy1 = new openstack.networking.QosPolicy(\"qos_policy_1\", {\n name: \"qos_policy_1\",\n description: \"min_kbps\",\n});\nconst minimumBandwidthRule1 = new openstack.networking.QosMinimumBandwidthRule(\"minimum_bandwidth_rule_1\", {\n qosPolicyId: qosPolicy1.id,\n minKbps: 200,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nqos_policy1 = openstack.networking.QosPolicy(\"qos_policy_1\",\n name=\"qos_policy_1\",\n description=\"min_kbps\")\nminimum_bandwidth_rule1 = openstack.networking.QosMinimumBandwidthRule(\"minimum_bandwidth_rule_1\",\n qos_policy_id=qos_policy1.id,\n min_kbps=200)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var qosPolicy1 = new OpenStack.Networking.QosPolicy(\"qos_policy_1\", new()\n {\n Name = \"qos_policy_1\",\n Description = \"min_kbps\",\n });\n\n var minimumBandwidthRule1 = new OpenStack.Networking.QosMinimumBandwidthRule(\"minimum_bandwidth_rule_1\", new()\n {\n QosPolicyId = qosPolicy1.Id,\n MinKbps = 200,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tqosPolicy1, err := networking.NewQosPolicy(ctx, \"qos_policy_1\", \u0026networking.QosPolicyArgs{\n\t\t\tName: pulumi.String(\"qos_policy_1\"),\n\t\t\tDescription: pulumi.String(\"min_kbps\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = networking.NewQosMinimumBandwidthRule(ctx, \"minimum_bandwidth_rule_1\", \u0026networking.QosMinimumBandwidthRuleArgs{\n\t\t\tQosPolicyId: qosPolicy1.ID(),\n\t\t\tMinKbps: pulumi.Int(200),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.QosPolicy;\nimport com.pulumi.openstack.networking.QosPolicyArgs;\nimport com.pulumi.openstack.networking.QosMinimumBandwidthRule;\nimport com.pulumi.openstack.networking.QosMinimumBandwidthRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var qosPolicy1 = new QosPolicy(\"qosPolicy1\", QosPolicyArgs.builder() \n .name(\"qos_policy_1\")\n .description(\"min_kbps\")\n .build());\n\n var minimumBandwidthRule1 = new QosMinimumBandwidthRule(\"minimumBandwidthRule1\", QosMinimumBandwidthRuleArgs.builder() \n .qosPolicyId(qosPolicy1.id())\n .minKbps(200)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n qosPolicy1:\n type: openstack:networking:QosPolicy\n name: qos_policy_1\n properties:\n name: qos_policy_1\n description: min_kbps\n minimumBandwidthRule1:\n type: openstack:networking:QosMinimumBandwidthRule\n name: minimum_bandwidth_rule_1\n properties:\n qosPolicyId: ${qosPolicy1.id}\n minKbps: 200\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nQoS minimum bandwidth rules can be imported using the `qos_policy_id/minimum_bandwidth_rule_id` format, e.g.\n\n```sh\n$ pulumi import openstack:networking/qosMinimumBandwidthRule:QosMinimumBandwidthRule minimum_bandwidth_rule_1 d6ae28ce-fcb5-4180-aa62-d260a27e09ae/46dfb556-b92f-48ce-94c5-9a9e2140de94\n```\n", + "description": "Manages a V2 Neutron QoS minimum bandwidth rule resource within OpenStack.\n\n## Example Usage\n\n### Create a QoS Policy with some minimum bandwidth rule\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst qosPolicy1 = new openstack.networking.QosPolicy(\"qos_policy_1\", {\n name: \"qos_policy_1\",\n description: \"min_kbps\",\n});\nconst minimumBandwidthRule1 = new openstack.networking.QosMinimumBandwidthRule(\"minimum_bandwidth_rule_1\", {\n qosPolicyId: qosPolicy1.id,\n minKbps: 200,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nqos_policy1 = openstack.networking.QosPolicy(\"qos_policy_1\",\n name=\"qos_policy_1\",\n description=\"min_kbps\")\nminimum_bandwidth_rule1 = openstack.networking.QosMinimumBandwidthRule(\"minimum_bandwidth_rule_1\",\n qos_policy_id=qos_policy1.id,\n min_kbps=200)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var qosPolicy1 = new OpenStack.Networking.QosPolicy(\"qos_policy_1\", new()\n {\n Name = \"qos_policy_1\",\n Description = \"min_kbps\",\n });\n\n var minimumBandwidthRule1 = new OpenStack.Networking.QosMinimumBandwidthRule(\"minimum_bandwidth_rule_1\", new()\n {\n QosPolicyId = qosPolicy1.Id,\n MinKbps = 200,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tqosPolicy1, err := networking.NewQosPolicy(ctx, \"qos_policy_1\", \u0026networking.QosPolicyArgs{\n\t\t\tName: pulumi.String(\"qos_policy_1\"),\n\t\t\tDescription: pulumi.String(\"min_kbps\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = networking.NewQosMinimumBandwidthRule(ctx, \"minimum_bandwidth_rule_1\", \u0026networking.QosMinimumBandwidthRuleArgs{\n\t\t\tQosPolicyId: qosPolicy1.ID(),\n\t\t\tMinKbps: pulumi.Int(200),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.QosPolicy;\nimport com.pulumi.openstack.networking.QosPolicyArgs;\nimport com.pulumi.openstack.networking.QosMinimumBandwidthRule;\nimport com.pulumi.openstack.networking.QosMinimumBandwidthRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var qosPolicy1 = new QosPolicy(\"qosPolicy1\", QosPolicyArgs.builder() \n .name(\"qos_policy_1\")\n .description(\"min_kbps\")\n .build());\n\n var minimumBandwidthRule1 = new QosMinimumBandwidthRule(\"minimumBandwidthRule1\", QosMinimumBandwidthRuleArgs.builder() \n .qosPolicyId(qosPolicy1.id())\n .minKbps(200)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n qosPolicy1:\n type: openstack:networking:QosPolicy\n name: qos_policy_1\n properties:\n name: qos_policy_1\n description: min_kbps\n minimumBandwidthRule1:\n type: openstack:networking:QosMinimumBandwidthRule\n name: minimum_bandwidth_rule_1\n properties:\n qosPolicyId: ${qosPolicy1.id}\n minKbps: 200\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nQoS minimum bandwidth rules can be imported using the `qos_policy_id/minimum_bandwidth_rule_id` format, e.g.\n\n```sh\n$ pulumi import openstack:networking/qosMinimumBandwidthRule:QosMinimumBandwidthRule minimum_bandwidth_rule_1 d6ae28ce-fcb5-4180-aa62-d260a27e09ae/46dfb556-b92f-48ce-94c5-9a9e2140de94\n```\n", "properties": { "direction": { "type": "string", @@ -15015,7 +14842,7 @@ } }, "openstack:networking/qosPolicy:QosPolicy": { - "description": "Manages a V2 Neutron QoS policy resource within OpenStack.\n\n## Example Usage\n\n### Create a QoS Policy\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst qosPolicy1 = new openstack.networking.QosPolicy(\"qos_policy_1\", {\n name: \"qos_policy_1\",\n description: \"bw_limit\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nqos_policy1 = openstack.networking.QosPolicy(\"qos_policy_1\",\n name=\"qos_policy_1\",\n description=\"bw_limit\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var qosPolicy1 = new OpenStack.Networking.QosPolicy(\"qos_policy_1\", new()\n {\n Name = \"qos_policy_1\",\n Description = \"bw_limit\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := networking.NewQosPolicy(ctx, \"qos_policy_1\", \u0026networking.QosPolicyArgs{\n\t\t\tName: pulumi.String(\"qos_policy_1\"),\n\t\t\tDescription: pulumi.String(\"bw_limit\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.QosPolicy;\nimport com.pulumi.openstack.networking.QosPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var qosPolicy1 = new QosPolicy(\"qosPolicy1\", QosPolicyArgs.builder() \n .name(\"qos_policy_1\")\n .description(\"bw_limit\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n qosPolicy1:\n type: openstack:networking:QosPolicy\n name: qos_policy_1\n properties:\n name: qos_policy_1\n description: bw_limit\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nQoS Policies can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import openstack:networking/qosPolicy:QosPolicy qos_policy_1 d6ae28ce-fcb5-4180-aa62-d260a27e09ae\n```\n", + "description": "Manages a V2 Neutron QoS policy resource within OpenStack.\n\n## Example Usage\n\n### Create a QoS Policy\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst qosPolicy1 = new openstack.networking.QosPolicy(\"qos_policy_1\", {\n name: \"qos_policy_1\",\n description: \"bw_limit\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nqos_policy1 = openstack.networking.QosPolicy(\"qos_policy_1\",\n name=\"qos_policy_1\",\n description=\"bw_limit\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var qosPolicy1 = new OpenStack.Networking.QosPolicy(\"qos_policy_1\", new()\n {\n Name = \"qos_policy_1\",\n Description = \"bw_limit\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := networking.NewQosPolicy(ctx, \"qos_policy_1\", \u0026networking.QosPolicyArgs{\n\t\t\tName: pulumi.String(\"qos_policy_1\"),\n\t\t\tDescription: pulumi.String(\"bw_limit\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.QosPolicy;\nimport com.pulumi.openstack.networking.QosPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var qosPolicy1 = new QosPolicy(\"qosPolicy1\", QosPolicyArgs.builder() \n .name(\"qos_policy_1\")\n .description(\"bw_limit\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n qosPolicy1:\n type: openstack:networking:QosPolicy\n name: qos_policy_1\n properties:\n name: qos_policy_1\n description: bw_limit\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nQoS Policies can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import openstack:networking/qosPolicy:QosPolicy qos_policy_1 d6ae28ce-fcb5-4180-aa62-d260a27e09ae\n```\n", "properties": { "allTags": { "type": "array", @@ -15360,7 +15187,7 @@ } }, "openstack:networking/rbacPolicyV2:RbacPolicyV2": { - "description": "The RBAC policy resource contains functionality for working with Neutron RBAC\nPolicies. Role-Based Access Control (RBAC) policy framework enables both\noperators and users to grant access to resources for specific projects.\n\nSharing an object with a specific project is accomplished by creating a\npolicy entry that permits the target project the `access_as_shared` action\non that object.\n\nTo make a network available as an external network for specific projects\nrather than all projects, use the `access_as_external` action.\nIf a network is marked as external during creation, it now implicitly creates\na wildcard RBAC policy granting everyone access to preserve previous behavior\nbefore this feature was added.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst network1 = new openstack.networking.Network(\"network_1\", {\n name: \"network_1\",\n adminStateUp: true,\n});\nconst rbacPolicy1 = new openstack.networking.RbacPolicyV2(\"rbac_policy_1\", {\n action: \"access_as_shared\",\n objectId: network1.id,\n objectType: \"network\",\n targetTenant: \"20415a973c9e45d3917f078950644697\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nnetwork1 = openstack.networking.Network(\"network_1\",\n name=\"network_1\",\n admin_state_up=True)\nrbac_policy1 = openstack.networking.RbacPolicyV2(\"rbac_policy_1\",\n action=\"access_as_shared\",\n object_id=network1.id,\n object_type=\"network\",\n target_tenant=\"20415a973c9e45d3917f078950644697\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var network1 = new OpenStack.Networking.Network(\"network_1\", new()\n {\n Name = \"network_1\",\n AdminStateUp = true,\n });\n\n var rbacPolicy1 = new OpenStack.Networking.RbacPolicyV2(\"rbac_policy_1\", new()\n {\n Action = \"access_as_shared\",\n ObjectId = network1.Id,\n ObjectType = \"network\",\n TargetTenant = \"20415a973c9e45d3917f078950644697\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tnetwork1, err := networking.NewNetwork(ctx, \"network_1\", \u0026networking.NetworkArgs{\n\t\t\tName: pulumi.String(\"network_1\"),\n\t\t\tAdminStateUp: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = networking.NewRbacPolicyV2(ctx, \"rbac_policy_1\", \u0026networking.RbacPolicyV2Args{\n\t\t\tAction: pulumi.String(\"access_as_shared\"),\n\t\t\tObjectId: network1.ID(),\n\t\t\tObjectType: pulumi.String(\"network\"),\n\t\t\tTargetTenant: pulumi.String(\"20415a973c9e45d3917f078950644697\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.Network;\nimport com.pulumi.openstack.networking.NetworkArgs;\nimport com.pulumi.openstack.networking.RbacPolicyV2;\nimport com.pulumi.openstack.networking.RbacPolicyV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var network1 = new Network(\"network1\", NetworkArgs.builder() \n .name(\"network_1\")\n .adminStateUp(\"true\")\n .build());\n\n var rbacPolicy1 = new RbacPolicyV2(\"rbacPolicy1\", RbacPolicyV2Args.builder() \n .action(\"access_as_shared\")\n .objectId(network1.id())\n .objectType(\"network\")\n .targetTenant(\"20415a973c9e45d3917f078950644697\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n network1:\n type: openstack:networking:Network\n name: network_1\n properties:\n name: network_1\n adminStateUp: 'true'\n rbacPolicy1:\n type: openstack:networking:RbacPolicyV2\n name: rbac_policy_1\n properties:\n action: access_as_shared\n objectId: ${network1.id}\n objectType: network\n targetTenant: 20415a973c9e45d3917f078950644697\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nRBAC policies can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import openstack:networking/rbacPolicyV2:RbacPolicyV2 rbac_policy_1 eae26a3e-1c33-4cc1-9c31-0cd729c438a1\n```\n", + "description": "The RBAC policy resource contains functionality for working with Neutron RBAC\nPolicies. Role-Based Access Control (RBAC) policy framework enables both\noperators and users to grant access to resources for specific projects.\n\nSharing an object with a specific project is accomplished by creating a\npolicy entry that permits the target project the `access_as_shared` action\non that object.\n\nTo make a network available as an external network for specific projects\nrather than all projects, use the `access_as_external` action.\nIf a network is marked as external during creation, it now implicitly creates\na wildcard RBAC policy granting everyone access to preserve previous behavior\nbefore this feature was added.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst network1 = new openstack.networking.Network(\"network_1\", {\n name: \"network_1\",\n adminStateUp: true,\n});\nconst rbacPolicy1 = new openstack.networking.RbacPolicyV2(\"rbac_policy_1\", {\n action: \"access_as_shared\",\n objectId: network1.id,\n objectType: \"network\",\n targetTenant: \"20415a973c9e45d3917f078950644697\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nnetwork1 = openstack.networking.Network(\"network_1\",\n name=\"network_1\",\n admin_state_up=True)\nrbac_policy1 = openstack.networking.RbacPolicyV2(\"rbac_policy_1\",\n action=\"access_as_shared\",\n object_id=network1.id,\n object_type=\"network\",\n target_tenant=\"20415a973c9e45d3917f078950644697\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var network1 = new OpenStack.Networking.Network(\"network_1\", new()\n {\n Name = \"network_1\",\n AdminStateUp = true,\n });\n\n var rbacPolicy1 = new OpenStack.Networking.RbacPolicyV2(\"rbac_policy_1\", new()\n {\n Action = \"access_as_shared\",\n ObjectId = network1.Id,\n ObjectType = \"network\",\n TargetTenant = \"20415a973c9e45d3917f078950644697\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tnetwork1, err := networking.NewNetwork(ctx, \"network_1\", \u0026networking.NetworkArgs{\n\t\t\tName: pulumi.String(\"network_1\"),\n\t\t\tAdminStateUp: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = networking.NewRbacPolicyV2(ctx, \"rbac_policy_1\", \u0026networking.RbacPolicyV2Args{\n\t\t\tAction: pulumi.String(\"access_as_shared\"),\n\t\t\tObjectId: network1.ID(),\n\t\t\tObjectType: pulumi.String(\"network\"),\n\t\t\tTargetTenant: pulumi.String(\"20415a973c9e45d3917f078950644697\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.Network;\nimport com.pulumi.openstack.networking.NetworkArgs;\nimport com.pulumi.openstack.networking.RbacPolicyV2;\nimport com.pulumi.openstack.networking.RbacPolicyV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var network1 = new Network(\"network1\", NetworkArgs.builder() \n .name(\"network_1\")\n .adminStateUp(\"true\")\n .build());\n\n var rbacPolicy1 = new RbacPolicyV2(\"rbacPolicy1\", RbacPolicyV2Args.builder() \n .action(\"access_as_shared\")\n .objectId(network1.id())\n .objectType(\"network\")\n .targetTenant(\"20415a973c9e45d3917f078950644697\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n network1:\n type: openstack:networking:Network\n name: network_1\n properties:\n name: network_1\n adminStateUp: 'true'\n rbacPolicy1:\n type: openstack:networking:RbacPolicyV2\n name: rbac_policy_1\n properties:\n action: access_as_shared\n objectId: ${network1.id}\n objectType: network\n targetTenant: 20415a973c9e45d3917f078950644697\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nRBAC policies can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import openstack:networking/rbacPolicyV2:RbacPolicyV2 rbac_policy_1 eae26a3e-1c33-4cc1-9c31-0cd729c438a1\n```\n", "properties": { "action": { "type": "string", @@ -15461,7 +15288,7 @@ } }, "openstack:networking/router:Router": { - "description": "Manages a V2 router resource within OpenStack.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst router1 = new openstack.networking.Router(\"router_1\", {\n name: \"my_router\",\n adminStateUp: true,\n externalNetworkId: \"f67f0d72-0ddf-11e4-9d95-e1f29f417e2f\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nrouter1 = openstack.networking.Router(\"router_1\",\n name=\"my_router\",\n admin_state_up=True,\n external_network_id=\"f67f0d72-0ddf-11e4-9d95-e1f29f417e2f\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var router1 = new OpenStack.Networking.Router(\"router_1\", new()\n {\n Name = \"my_router\",\n AdminStateUp = true,\n ExternalNetworkId = \"f67f0d72-0ddf-11e4-9d95-e1f29f417e2f\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := networking.NewRouter(ctx, \"router_1\", \u0026networking.RouterArgs{\n\t\t\tName: pulumi.String(\"my_router\"),\n\t\t\tAdminStateUp: pulumi.Bool(true),\n\t\t\tExternalNetworkId: pulumi.String(\"f67f0d72-0ddf-11e4-9d95-e1f29f417e2f\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.Router;\nimport com.pulumi.openstack.networking.RouterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var router1 = new Router(\"router1\", RouterArgs.builder() \n .name(\"my_router\")\n .adminStateUp(true)\n .externalNetworkId(\"f67f0d72-0ddf-11e4-9d95-e1f29f417e2f\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n router1:\n type: openstack:networking:Router\n name: router_1\n properties:\n name: my_router\n adminStateUp: true\n externalNetworkId: f67f0d72-0ddf-11e4-9d95-e1f29f417e2f\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nRouters can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import openstack:networking/router:Router router_1 014395cd-89fc-4c9b-96b7-13d1ee79dad2\n```\n", + "description": "Manages a V2 router resource within OpenStack.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst router1 = new openstack.networking.Router(\"router_1\", {\n name: \"my_router\",\n adminStateUp: true,\n externalNetworkId: \"f67f0d72-0ddf-11e4-9d95-e1f29f417e2f\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nrouter1 = openstack.networking.Router(\"router_1\",\n name=\"my_router\",\n admin_state_up=True,\n external_network_id=\"f67f0d72-0ddf-11e4-9d95-e1f29f417e2f\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var router1 = new OpenStack.Networking.Router(\"router_1\", new()\n {\n Name = \"my_router\",\n AdminStateUp = true,\n ExternalNetworkId = \"f67f0d72-0ddf-11e4-9d95-e1f29f417e2f\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := networking.NewRouter(ctx, \"router_1\", \u0026networking.RouterArgs{\n\t\t\tName: pulumi.String(\"my_router\"),\n\t\t\tAdminStateUp: pulumi.Bool(true),\n\t\t\tExternalNetworkId: pulumi.String(\"f67f0d72-0ddf-11e4-9d95-e1f29f417e2f\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.Router;\nimport com.pulumi.openstack.networking.RouterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var router1 = new Router(\"router1\", RouterArgs.builder() \n .name(\"my_router\")\n .adminStateUp(true)\n .externalNetworkId(\"f67f0d72-0ddf-11e4-9d95-e1f29f417e2f\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n router1:\n type: openstack:networking:Router\n name: router_1\n properties:\n name: my_router\n adminStateUp: true\n externalNetworkId: f67f0d72-0ddf-11e4-9d95-e1f29f417e2f\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nRouters can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import openstack:networking/router:Router router_1 014395cd-89fc-4c9b-96b7-13d1ee79dad2\n```\n", "properties": { "adminStateUp": { "type": "boolean", @@ -15500,11 +15327,6 @@ }, "description": "An external fixed IP for the router. This\ncan be repeated. The structure is described below. An `external_network_id`\nhas to be set in order to set this property. Changing this updates the\nexternal fixed IPs of the router.\n" }, - "externalGateway": { - "type": "string", - "description": "The\nnetwork UUID of an external gateway for the router. A router with an\nexternal gateway is required if any compute instances or load balancers\nwill be using floating IPs. Changing this updates the external gateway\nof an existing router.\n", - "deprecationMessage": "use external_network_id instead" - }, "externalNetworkId": { "type": "string", "description": "The network UUID of an external gateway\nfor the router. A router with an external gateway is required if any\ncompute instances or load balancers will be using floating IPs. Changing\nthis updates the external gateway of the router.\n" @@ -15554,7 +15376,6 @@ "distributed", "enableSnat", "externalFixedIps", - "externalGateway", "externalNetworkId", "name", "region", @@ -15593,11 +15414,6 @@ }, "description": "An external fixed IP for the router. This\ncan be repeated. The structure is described below. An `external_network_id`\nhas to be set in order to set this property. Changing this updates the\nexternal fixed IPs of the router.\n" }, - "externalGateway": { - "type": "string", - "description": "The\nnetwork UUID of an external gateway for the router. A router with an\nexternal gateway is required if any compute instances or load balancers\nwill be using floating IPs. Changing this updates the external gateway\nof an existing router.\n", - "deprecationMessage": "use external_network_id instead" - }, "externalNetworkId": { "type": "string", "description": "The network UUID of an external gateway\nfor the router. A router with an external gateway is required if any\ncompute instances or load balancers will be using floating IPs. Changing\nthis updates the external gateway of the router.\n" @@ -15685,11 +15501,6 @@ }, "description": "An external fixed IP for the router. This\ncan be repeated. The structure is described below. An `external_network_id`\nhas to be set in order to set this property. Changing this updates the\nexternal fixed IPs of the router.\n" }, - "externalGateway": { - "type": "string", - "description": "The\nnetwork UUID of an external gateway for the router. A router with an\nexternal gateway is required if any compute instances or load balancers\nwill be using floating IPs. Changing this updates the external gateway\nof an existing router.\n", - "deprecationMessage": "use external_network_id instead" - }, "externalNetworkId": { "type": "string", "description": "The network UUID of an external gateway\nfor the router. A router with an external gateway is required if any\ncompute instances or load balancers will be using floating IPs. Changing\nthis updates the external gateway of the router.\n" @@ -15739,7 +15550,7 @@ } }, "openstack:networking/routerInterface:RouterInterface": { - "description": "Manages a V2 router interface resource within OpenStack.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst network1 = new openstack.networking.Network(\"network_1\", {\n name: \"tf_test_network\",\n adminStateUp: true,\n});\nconst subnet1 = new openstack.networking.Subnet(\"subnet_1\", {\n networkId: network1.id,\n cidr: \"192.168.199.0/24\",\n ipVersion: 4,\n});\nconst router1 = new openstack.networking.Router(\"router_1\", {\n name: \"my_router\",\n externalNetworkId: \"f67f0d72-0ddf-11e4-9d95-e1f29f417e2f\",\n});\nconst routerInterface1 = new openstack.networking.RouterInterface(\"router_interface_1\", {\n routerId: router1.id,\n subnetId: subnet1.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nnetwork1 = openstack.networking.Network(\"network_1\",\n name=\"tf_test_network\",\n admin_state_up=True)\nsubnet1 = openstack.networking.Subnet(\"subnet_1\",\n network_id=network1.id,\n cidr=\"192.168.199.0/24\",\n ip_version=4)\nrouter1 = openstack.networking.Router(\"router_1\",\n name=\"my_router\",\n external_network_id=\"f67f0d72-0ddf-11e4-9d95-e1f29f417e2f\")\nrouter_interface1 = openstack.networking.RouterInterface(\"router_interface_1\",\n router_id=router1.id,\n subnet_id=subnet1.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var network1 = new OpenStack.Networking.Network(\"network_1\", new()\n {\n Name = \"tf_test_network\",\n AdminStateUp = true,\n });\n\n var subnet1 = new OpenStack.Networking.Subnet(\"subnet_1\", new()\n {\n NetworkId = network1.Id,\n Cidr = \"192.168.199.0/24\",\n IpVersion = 4,\n });\n\n var router1 = new OpenStack.Networking.Router(\"router_1\", new()\n {\n Name = \"my_router\",\n ExternalNetworkId = \"f67f0d72-0ddf-11e4-9d95-e1f29f417e2f\",\n });\n\n var routerInterface1 = new OpenStack.Networking.RouterInterface(\"router_interface_1\", new()\n {\n RouterId = router1.Id,\n SubnetId = subnet1.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tnetwork1, err := networking.NewNetwork(ctx, \"network_1\", \u0026networking.NetworkArgs{\n\t\t\tName: pulumi.String(\"tf_test_network\"),\n\t\t\tAdminStateUp: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsubnet1, err := networking.NewSubnet(ctx, \"subnet_1\", \u0026networking.SubnetArgs{\n\t\t\tNetworkId: network1.ID(),\n\t\t\tCidr: pulumi.String(\"192.168.199.0/24\"),\n\t\t\tIpVersion: pulumi.Int(4),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\trouter1, err := networking.NewRouter(ctx, \"router_1\", \u0026networking.RouterArgs{\n\t\t\tName: pulumi.String(\"my_router\"),\n\t\t\tExternalNetworkId: pulumi.String(\"f67f0d72-0ddf-11e4-9d95-e1f29f417e2f\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = networking.NewRouterInterface(ctx, \"router_interface_1\", \u0026networking.RouterInterfaceArgs{\n\t\t\tRouterId: router1.ID(),\n\t\t\tSubnetId: subnet1.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.Network;\nimport com.pulumi.openstack.networking.NetworkArgs;\nimport com.pulumi.openstack.networking.Subnet;\nimport com.pulumi.openstack.networking.SubnetArgs;\nimport com.pulumi.openstack.networking.Router;\nimport com.pulumi.openstack.networking.RouterArgs;\nimport com.pulumi.openstack.networking.RouterInterface;\nimport com.pulumi.openstack.networking.RouterInterfaceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var network1 = new Network(\"network1\", NetworkArgs.builder() \n .name(\"tf_test_network\")\n .adminStateUp(\"true\")\n .build());\n\n var subnet1 = new Subnet(\"subnet1\", SubnetArgs.builder() \n .networkId(network1.id())\n .cidr(\"192.168.199.0/24\")\n .ipVersion(4)\n .build());\n\n var router1 = new Router(\"router1\", RouterArgs.builder() \n .name(\"my_router\")\n .externalNetworkId(\"f67f0d72-0ddf-11e4-9d95-e1f29f417e2f\")\n .build());\n\n var routerInterface1 = new RouterInterface(\"routerInterface1\", RouterInterfaceArgs.builder() \n .routerId(router1.id())\n .subnetId(subnet1.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n network1:\n type: openstack:networking:Network\n name: network_1\n properties:\n name: tf_test_network\n adminStateUp: 'true'\n subnet1:\n type: openstack:networking:Subnet\n name: subnet_1\n properties:\n networkId: ${network1.id}\n cidr: 192.168.199.0/24\n ipVersion: 4\n router1:\n type: openstack:networking:Router\n name: router_1\n properties:\n name: my_router\n externalNetworkId: f67f0d72-0ddf-11e4-9d95-e1f29f417e2f\n routerInterface1:\n type: openstack:networking:RouterInterface\n name: router_interface_1\n properties:\n routerId: ${router1.id}\n subnetId: ${subnet1.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nRouter Interfaces can be imported using the port `id`, e.g.\n\n$ openstack port list --router \u003crouter name or id\u003e\n\n```sh\n$ pulumi import openstack:networking/routerInterface:RouterInterface int_1 port_id\n```\n\n", + "description": "Manages a V2 router interface resource within OpenStack.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst network1 = new openstack.networking.Network(\"network_1\", {\n name: \"tf_test_network\",\n adminStateUp: true,\n});\nconst subnet1 = new openstack.networking.Subnet(\"subnet_1\", {\n networkId: network1.id,\n cidr: \"192.168.199.0/24\",\n ipVersion: 4,\n});\nconst router1 = new openstack.networking.Router(\"router_1\", {\n name: \"my_router\",\n externalNetworkId: \"f67f0d72-0ddf-11e4-9d95-e1f29f417e2f\",\n});\nconst routerInterface1 = new openstack.networking.RouterInterface(\"router_interface_1\", {\n routerId: router1.id,\n subnetId: subnet1.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nnetwork1 = openstack.networking.Network(\"network_1\",\n name=\"tf_test_network\",\n admin_state_up=True)\nsubnet1 = openstack.networking.Subnet(\"subnet_1\",\n network_id=network1.id,\n cidr=\"192.168.199.0/24\",\n ip_version=4)\nrouter1 = openstack.networking.Router(\"router_1\",\n name=\"my_router\",\n external_network_id=\"f67f0d72-0ddf-11e4-9d95-e1f29f417e2f\")\nrouter_interface1 = openstack.networking.RouterInterface(\"router_interface_1\",\n router_id=router1.id,\n subnet_id=subnet1.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var network1 = new OpenStack.Networking.Network(\"network_1\", new()\n {\n Name = \"tf_test_network\",\n AdminStateUp = true,\n });\n\n var subnet1 = new OpenStack.Networking.Subnet(\"subnet_1\", new()\n {\n NetworkId = network1.Id,\n Cidr = \"192.168.199.0/24\",\n IpVersion = 4,\n });\n\n var router1 = new OpenStack.Networking.Router(\"router_1\", new()\n {\n Name = \"my_router\",\n ExternalNetworkId = \"f67f0d72-0ddf-11e4-9d95-e1f29f417e2f\",\n });\n\n var routerInterface1 = new OpenStack.Networking.RouterInterface(\"router_interface_1\", new()\n {\n RouterId = router1.Id,\n SubnetId = subnet1.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tnetwork1, err := networking.NewNetwork(ctx, \"network_1\", \u0026networking.NetworkArgs{\n\t\t\tName: pulumi.String(\"tf_test_network\"),\n\t\t\tAdminStateUp: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsubnet1, err := networking.NewSubnet(ctx, \"subnet_1\", \u0026networking.SubnetArgs{\n\t\t\tNetworkId: network1.ID(),\n\t\t\tCidr: pulumi.String(\"192.168.199.0/24\"),\n\t\t\tIpVersion: pulumi.Int(4),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\trouter1, err := networking.NewRouter(ctx, \"router_1\", \u0026networking.RouterArgs{\n\t\t\tName: pulumi.String(\"my_router\"),\n\t\t\tExternalNetworkId: pulumi.String(\"f67f0d72-0ddf-11e4-9d95-e1f29f417e2f\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = networking.NewRouterInterface(ctx, \"router_interface_1\", \u0026networking.RouterInterfaceArgs{\n\t\t\tRouterId: router1.ID(),\n\t\t\tSubnetId: subnet1.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.Network;\nimport com.pulumi.openstack.networking.NetworkArgs;\nimport com.pulumi.openstack.networking.Subnet;\nimport com.pulumi.openstack.networking.SubnetArgs;\nimport com.pulumi.openstack.networking.Router;\nimport com.pulumi.openstack.networking.RouterArgs;\nimport com.pulumi.openstack.networking.RouterInterface;\nimport com.pulumi.openstack.networking.RouterInterfaceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var network1 = new Network(\"network1\", NetworkArgs.builder() \n .name(\"tf_test_network\")\n .adminStateUp(\"true\")\n .build());\n\n var subnet1 = new Subnet(\"subnet1\", SubnetArgs.builder() \n .networkId(network1.id())\n .cidr(\"192.168.199.0/24\")\n .ipVersion(4)\n .build());\n\n var router1 = new Router(\"router1\", RouterArgs.builder() \n .name(\"my_router\")\n .externalNetworkId(\"f67f0d72-0ddf-11e4-9d95-e1f29f417e2f\")\n .build());\n\n var routerInterface1 = new RouterInterface(\"routerInterface1\", RouterInterfaceArgs.builder() \n .routerId(router1.id())\n .subnetId(subnet1.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n network1:\n type: openstack:networking:Network\n name: network_1\n properties:\n name: tf_test_network\n adminStateUp: 'true'\n subnet1:\n type: openstack:networking:Subnet\n name: subnet_1\n properties:\n networkId: ${network1.id}\n cidr: 192.168.199.0/24\n ipVersion: 4\n router1:\n type: openstack:networking:Router\n name: router_1\n properties:\n name: my_router\n externalNetworkId: f67f0d72-0ddf-11e4-9d95-e1f29f417e2f\n routerInterface1:\n type: openstack:networking:RouterInterface\n name: router_interface_1\n properties:\n routerId: ${router1.id}\n subnetId: ${subnet1.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nRouter Interfaces can be imported using the port `id`, e.g.\n\n$ openstack port list --router \u003crouter name or id\u003e\n\n```sh\n$ pulumi import openstack:networking/routerInterface:RouterInterface int_1 port_id\n```\n\n", "properties": { "forceDestroy": { "type": "boolean", @@ -15829,7 +15640,7 @@ } }, "openstack:networking/routerRoute:RouterRoute": { - "description": "Creates a routing entry on a OpenStack V2 router.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst router1 = new openstack.networking.Router(\"router_1\", {\n name: \"router_1\",\n adminStateUp: true,\n});\nconst network1 = new openstack.networking.Network(\"network_1\", {\n name: \"network_1\",\n adminStateUp: true,\n});\nconst subnet1 = new openstack.networking.Subnet(\"subnet_1\", {\n networkId: network1.id,\n cidr: \"192.168.199.0/24\",\n ipVersion: 4,\n});\nconst int1 = new openstack.networking.RouterInterface(\"int_1\", {\n routerId: router1.id,\n subnetId: subnet1.id,\n});\nconst routerRoute1 = new openstack.networking.RouterRoute(\"router_route_1\", {\n routerId: router1.id,\n destinationCidr: \"10.0.1.0/24\",\n nextHop: \"192.168.199.254\",\n}, {\n dependsOn: [int1],\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nrouter1 = openstack.networking.Router(\"router_1\",\n name=\"router_1\",\n admin_state_up=True)\nnetwork1 = openstack.networking.Network(\"network_1\",\n name=\"network_1\",\n admin_state_up=True)\nsubnet1 = openstack.networking.Subnet(\"subnet_1\",\n network_id=network1.id,\n cidr=\"192.168.199.0/24\",\n ip_version=4)\nint1 = openstack.networking.RouterInterface(\"int_1\",\n router_id=router1.id,\n subnet_id=subnet1.id)\nrouter_route1 = openstack.networking.RouterRoute(\"router_route_1\",\n router_id=router1.id,\n destination_cidr=\"10.0.1.0/24\",\n next_hop=\"192.168.199.254\",\n opts=pulumi.ResourceOptions(depends_on=[int1]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var router1 = new OpenStack.Networking.Router(\"router_1\", new()\n {\n Name = \"router_1\",\n AdminStateUp = true,\n });\n\n var network1 = new OpenStack.Networking.Network(\"network_1\", new()\n {\n Name = \"network_1\",\n AdminStateUp = true,\n });\n\n var subnet1 = new OpenStack.Networking.Subnet(\"subnet_1\", new()\n {\n NetworkId = network1.Id,\n Cidr = \"192.168.199.0/24\",\n IpVersion = 4,\n });\n\n var int1 = new OpenStack.Networking.RouterInterface(\"int_1\", new()\n {\n RouterId = router1.Id,\n SubnetId = subnet1.Id,\n });\n\n var routerRoute1 = new OpenStack.Networking.RouterRoute(\"router_route_1\", new()\n {\n RouterId = router1.Id,\n DestinationCidr = \"10.0.1.0/24\",\n NextHop = \"192.168.199.254\",\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n int1,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\trouter1, err := networking.NewRouter(ctx, \"router_1\", \u0026networking.RouterArgs{\n\t\t\tName: pulumi.String(\"router_1\"),\n\t\t\tAdminStateUp: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tnetwork1, err := networking.NewNetwork(ctx, \"network_1\", \u0026networking.NetworkArgs{\n\t\t\tName: pulumi.String(\"network_1\"),\n\t\t\tAdminStateUp: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsubnet1, err := networking.NewSubnet(ctx, \"subnet_1\", \u0026networking.SubnetArgs{\n\t\t\tNetworkId: network1.ID(),\n\t\t\tCidr: pulumi.String(\"192.168.199.0/24\"),\n\t\t\tIpVersion: pulumi.Int(4),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tint1, err := networking.NewRouterInterface(ctx, \"int_1\", \u0026networking.RouterInterfaceArgs{\n\t\t\tRouterId: router1.ID(),\n\t\t\tSubnetId: subnet1.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = networking.NewRouterRoute(ctx, \"router_route_1\", \u0026networking.RouterRouteArgs{\n\t\t\tRouterId: router1.ID(),\n\t\t\tDestinationCidr: pulumi.String(\"10.0.1.0/24\"),\n\t\t\tNextHop: pulumi.String(\"192.168.199.254\"),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tint1,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.Router;\nimport com.pulumi.openstack.networking.RouterArgs;\nimport com.pulumi.openstack.networking.Network;\nimport com.pulumi.openstack.networking.NetworkArgs;\nimport com.pulumi.openstack.networking.Subnet;\nimport com.pulumi.openstack.networking.SubnetArgs;\nimport com.pulumi.openstack.networking.RouterInterface;\nimport com.pulumi.openstack.networking.RouterInterfaceArgs;\nimport com.pulumi.openstack.networking.RouterRoute;\nimport com.pulumi.openstack.networking.RouterRouteArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var router1 = new Router(\"router1\", RouterArgs.builder() \n .name(\"router_1\")\n .adminStateUp(\"true\")\n .build());\n\n var network1 = new Network(\"network1\", NetworkArgs.builder() \n .name(\"network_1\")\n .adminStateUp(\"true\")\n .build());\n\n var subnet1 = new Subnet(\"subnet1\", SubnetArgs.builder() \n .networkId(network1.id())\n .cidr(\"192.168.199.0/24\")\n .ipVersion(4)\n .build());\n\n var int1 = new RouterInterface(\"int1\", RouterInterfaceArgs.builder() \n .routerId(router1.id())\n .subnetId(subnet1.id())\n .build());\n\n var routerRoute1 = new RouterRoute(\"routerRoute1\", RouterRouteArgs.builder() \n .routerId(router1.id())\n .destinationCidr(\"10.0.1.0/24\")\n .nextHop(\"192.168.199.254\")\n .build(), CustomResourceOptions.builder()\n .dependsOn(int1)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n router1:\n type: openstack:networking:Router\n name: router_1\n properties:\n name: router_1\n adminStateUp: 'true'\n network1:\n type: openstack:networking:Network\n name: network_1\n properties:\n name: network_1\n adminStateUp: 'true'\n subnet1:\n type: openstack:networking:Subnet\n name: subnet_1\n properties:\n networkId: ${network1.id}\n cidr: 192.168.199.0/24\n ipVersion: 4\n int1:\n type: openstack:networking:RouterInterface\n name: int_1\n properties:\n routerId: ${router1.id}\n subnetId: ${subnet1.id}\n routerRoute1:\n type: openstack:networking:RouterRoute\n name: router_route_1\n properties:\n routerId: ${router1.id}\n destinationCidr: 10.0.1.0/24\n nextHop: 192.168.199.254\n options:\n dependson:\n - ${int1}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Notes\n\nThe `next_hop` IP address must be directly reachable from the router at the ``openstack.networking.RouterRoute``\nresource creation time. You can ensure that by explicitly specifying a dependency on the ``openstack.networking.RouterInterface``\nresource that connects the next hop to the router, as in the example above.\n\n## Import\n\nRouting entries can be imported using a combined ID using the following format: `\u003crouter_id\u003e-route-\u003cdestination_cidr\u003e-\u003cnext_hop\u003e`\n\n```sh\n$ pulumi import openstack:networking/routerRoute:RouterRoute router_route_1 686fe248-386c-4f70-9f6c-281607dad079-route-10.0.1.0/24-192.168.199.25\n```\n", + "description": "Creates a routing entry on a OpenStack V2 router.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst router1 = new openstack.networking.Router(\"router_1\", {\n name: \"router_1\",\n adminStateUp: true,\n});\nconst network1 = new openstack.networking.Network(\"network_1\", {\n name: \"network_1\",\n adminStateUp: true,\n});\nconst subnet1 = new openstack.networking.Subnet(\"subnet_1\", {\n networkId: network1.id,\n cidr: \"192.168.199.0/24\",\n ipVersion: 4,\n});\nconst int1 = new openstack.networking.RouterInterface(\"int_1\", {\n routerId: router1.id,\n subnetId: subnet1.id,\n});\nconst routerRoute1 = new openstack.networking.RouterRoute(\"router_route_1\", {\n routerId: router1.id,\n destinationCidr: \"10.0.1.0/24\",\n nextHop: \"192.168.199.254\",\n}, {\n dependsOn: [int1],\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nrouter1 = openstack.networking.Router(\"router_1\",\n name=\"router_1\",\n admin_state_up=True)\nnetwork1 = openstack.networking.Network(\"network_1\",\n name=\"network_1\",\n admin_state_up=True)\nsubnet1 = openstack.networking.Subnet(\"subnet_1\",\n network_id=network1.id,\n cidr=\"192.168.199.0/24\",\n ip_version=4)\nint1 = openstack.networking.RouterInterface(\"int_1\",\n router_id=router1.id,\n subnet_id=subnet1.id)\nrouter_route1 = openstack.networking.RouterRoute(\"router_route_1\",\n router_id=router1.id,\n destination_cidr=\"10.0.1.0/24\",\n next_hop=\"192.168.199.254\",\n opts=pulumi.ResourceOptions(depends_on=[int1]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var router1 = new OpenStack.Networking.Router(\"router_1\", new()\n {\n Name = \"router_1\",\n AdminStateUp = true,\n });\n\n var network1 = new OpenStack.Networking.Network(\"network_1\", new()\n {\n Name = \"network_1\",\n AdminStateUp = true,\n });\n\n var subnet1 = new OpenStack.Networking.Subnet(\"subnet_1\", new()\n {\n NetworkId = network1.Id,\n Cidr = \"192.168.199.0/24\",\n IpVersion = 4,\n });\n\n var int1 = new OpenStack.Networking.RouterInterface(\"int_1\", new()\n {\n RouterId = router1.Id,\n SubnetId = subnet1.Id,\n });\n\n var routerRoute1 = new OpenStack.Networking.RouterRoute(\"router_route_1\", new()\n {\n RouterId = router1.Id,\n DestinationCidr = \"10.0.1.0/24\",\n NextHop = \"192.168.199.254\",\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n int1,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\trouter1, err := networking.NewRouter(ctx, \"router_1\", \u0026networking.RouterArgs{\n\t\t\tName: pulumi.String(\"router_1\"),\n\t\t\tAdminStateUp: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tnetwork1, err := networking.NewNetwork(ctx, \"network_1\", \u0026networking.NetworkArgs{\n\t\t\tName: pulumi.String(\"network_1\"),\n\t\t\tAdminStateUp: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsubnet1, err := networking.NewSubnet(ctx, \"subnet_1\", \u0026networking.SubnetArgs{\n\t\t\tNetworkId: network1.ID(),\n\t\t\tCidr: pulumi.String(\"192.168.199.0/24\"),\n\t\t\tIpVersion: pulumi.Int(4),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tint1, err := networking.NewRouterInterface(ctx, \"int_1\", \u0026networking.RouterInterfaceArgs{\n\t\t\tRouterId: router1.ID(),\n\t\t\tSubnetId: subnet1.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = networking.NewRouterRoute(ctx, \"router_route_1\", \u0026networking.RouterRouteArgs{\n\t\t\tRouterId: router1.ID(),\n\t\t\tDestinationCidr: pulumi.String(\"10.0.1.0/24\"),\n\t\t\tNextHop: pulumi.String(\"192.168.199.254\"),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tint1,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.Router;\nimport com.pulumi.openstack.networking.RouterArgs;\nimport com.pulumi.openstack.networking.Network;\nimport com.pulumi.openstack.networking.NetworkArgs;\nimport com.pulumi.openstack.networking.Subnet;\nimport com.pulumi.openstack.networking.SubnetArgs;\nimport com.pulumi.openstack.networking.RouterInterface;\nimport com.pulumi.openstack.networking.RouterInterfaceArgs;\nimport com.pulumi.openstack.networking.RouterRoute;\nimport com.pulumi.openstack.networking.RouterRouteArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var router1 = new Router(\"router1\", RouterArgs.builder() \n .name(\"router_1\")\n .adminStateUp(\"true\")\n .build());\n\n var network1 = new Network(\"network1\", NetworkArgs.builder() \n .name(\"network_1\")\n .adminStateUp(\"true\")\n .build());\n\n var subnet1 = new Subnet(\"subnet1\", SubnetArgs.builder() \n .networkId(network1.id())\n .cidr(\"192.168.199.0/24\")\n .ipVersion(4)\n .build());\n\n var int1 = new RouterInterface(\"int1\", RouterInterfaceArgs.builder() \n .routerId(router1.id())\n .subnetId(subnet1.id())\n .build());\n\n var routerRoute1 = new RouterRoute(\"routerRoute1\", RouterRouteArgs.builder() \n .routerId(router1.id())\n .destinationCidr(\"10.0.1.0/24\")\n .nextHop(\"192.168.199.254\")\n .build(), CustomResourceOptions.builder()\n .dependsOn(int1)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n router1:\n type: openstack:networking:Router\n name: router_1\n properties:\n name: router_1\n adminStateUp: 'true'\n network1:\n type: openstack:networking:Network\n name: network_1\n properties:\n name: network_1\n adminStateUp: 'true'\n subnet1:\n type: openstack:networking:Subnet\n name: subnet_1\n properties:\n networkId: ${network1.id}\n cidr: 192.168.199.0/24\n ipVersion: 4\n int1:\n type: openstack:networking:RouterInterface\n name: int_1\n properties:\n routerId: ${router1.id}\n subnetId: ${subnet1.id}\n routerRoute1:\n type: openstack:networking:RouterRoute\n name: router_route_1\n properties:\n routerId: ${router1.id}\n destinationCidr: 10.0.1.0/24\n nextHop: 192.168.199.254\n options:\n dependson:\n - ${int1}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Notes\n\nThe `next_hop` IP address must be directly reachable from the router at the ``openstack.networking.RouterRoute``\nresource creation time. You can ensure that by explicitly specifying a dependency on the ``openstack.networking.RouterInterface``\nresource that connects the next hop to the router, as in the example above.\n\n## Import\n\nRouting entries can be imported using a combined ID using the following format: `\u003crouter_id\u003e-route-\u003cdestination_cidr\u003e-\u003cnext_hop\u003e`\n\n```sh\n$ pulumi import openstack:networking/routerRoute:RouterRoute router_route_1 686fe248-386c-4f70-9f6c-281607dad079-route-10.0.1.0/24-192.168.199.25\n```\n", "properties": { "destinationCidr": { "type": "string", @@ -16030,7 +15841,7 @@ } }, "openstack:networking/secGroupRule:SecGroupRule": { - "description": "Manages a V2 neutron security group rule resource within OpenStack.\nUnlike Nova security groups, neutron separates the group from the rules\nand also allows an admin to target a specific tenant_id.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst secgroup1 = new openstack.networking.SecGroup(\"secgroup_1\", {\n name: \"secgroup_1\",\n description: \"My neutron security group\",\n});\nconst secgroupRule1 = new openstack.networking.SecGroupRule(\"secgroup_rule_1\", {\n direction: \"ingress\",\n ethertype: \"IPv4\",\n protocol: \"tcp\",\n portRangeMin: 22,\n portRangeMax: 22,\n remoteIpPrefix: \"0.0.0.0/0\",\n securityGroupId: secgroup1.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nsecgroup1 = openstack.networking.SecGroup(\"secgroup_1\",\n name=\"secgroup_1\",\n description=\"My neutron security group\")\nsecgroup_rule1 = openstack.networking.SecGroupRule(\"secgroup_rule_1\",\n direction=\"ingress\",\n ethertype=\"IPv4\",\n protocol=\"tcp\",\n port_range_min=22,\n port_range_max=22,\n remote_ip_prefix=\"0.0.0.0/0\",\n security_group_id=secgroup1.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var secgroup1 = new OpenStack.Networking.SecGroup(\"secgroup_1\", new()\n {\n Name = \"secgroup_1\",\n Description = \"My neutron security group\",\n });\n\n var secgroupRule1 = new OpenStack.Networking.SecGroupRule(\"secgroup_rule_1\", new()\n {\n Direction = \"ingress\",\n Ethertype = \"IPv4\",\n Protocol = \"tcp\",\n PortRangeMin = 22,\n PortRangeMax = 22,\n RemoteIpPrefix = \"0.0.0.0/0\",\n SecurityGroupId = secgroup1.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tsecgroup1, err := networking.NewSecGroup(ctx, \"secgroup_1\", \u0026networking.SecGroupArgs{\n\t\t\tName: pulumi.String(\"secgroup_1\"),\n\t\t\tDescription: pulumi.String(\"My neutron security group\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = networking.NewSecGroupRule(ctx, \"secgroup_rule_1\", \u0026networking.SecGroupRuleArgs{\n\t\t\tDirection: pulumi.String(\"ingress\"),\n\t\t\tEthertype: pulumi.String(\"IPv4\"),\n\t\t\tProtocol: pulumi.String(\"tcp\"),\n\t\t\tPortRangeMin: pulumi.Int(22),\n\t\t\tPortRangeMax: pulumi.Int(22),\n\t\t\tRemoteIpPrefix: pulumi.String(\"0.0.0.0/0\"),\n\t\t\tSecurityGroupId: secgroup1.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.SecGroup;\nimport com.pulumi.openstack.networking.SecGroupArgs;\nimport com.pulumi.openstack.networking.SecGroupRule;\nimport com.pulumi.openstack.networking.SecGroupRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var secgroup1 = new SecGroup(\"secgroup1\", SecGroupArgs.builder() \n .name(\"secgroup_1\")\n .description(\"My neutron security group\")\n .build());\n\n var secgroupRule1 = new SecGroupRule(\"secgroupRule1\", SecGroupRuleArgs.builder() \n .direction(\"ingress\")\n .ethertype(\"IPv4\")\n .protocol(\"tcp\")\n .portRangeMin(22)\n .portRangeMax(22)\n .remoteIpPrefix(\"0.0.0.0/0\")\n .securityGroupId(secgroup1.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n secgroup1:\n type: openstack:networking:SecGroup\n name: secgroup_1\n properties:\n name: secgroup_1\n description: My neutron security group\n secgroupRule1:\n type: openstack:networking:SecGroupRule\n name: secgroup_rule_1\n properties:\n direction: ingress\n ethertype: IPv4\n protocol: tcp\n portRangeMin: 22\n portRangeMax: 22\n remoteIpPrefix: 0.0.0.0/0\n securityGroupId: ${secgroup1.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\u003e **Note:** To expose the full port-range 1:65535, use `0` for `port_range_min`\nand `port_range_max`.\n\n## Import\n\nSecurity Group Rules can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import openstack:networking/secGroupRule:SecGroupRule secgroup_rule_1 aeb68ee3-6e9d-4256-955c-9584a6212745\n```\n", + "description": "Manages a V2 neutron security group rule resource within OpenStack.\nUnlike Nova security groups, neutron separates the group from the rules\nand also allows an admin to target a specific tenant_id.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst secgroup1 = new openstack.networking.SecGroup(\"secgroup_1\", {\n name: \"secgroup_1\",\n description: \"My neutron security group\",\n});\nconst secgroupRule1 = new openstack.networking.SecGroupRule(\"secgroup_rule_1\", {\n direction: \"ingress\",\n ethertype: \"IPv4\",\n protocol: \"tcp\",\n portRangeMin: 22,\n portRangeMax: 22,\n remoteIpPrefix: \"0.0.0.0/0\",\n securityGroupId: secgroup1.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nsecgroup1 = openstack.networking.SecGroup(\"secgroup_1\",\n name=\"secgroup_1\",\n description=\"My neutron security group\")\nsecgroup_rule1 = openstack.networking.SecGroupRule(\"secgroup_rule_1\",\n direction=\"ingress\",\n ethertype=\"IPv4\",\n protocol=\"tcp\",\n port_range_min=22,\n port_range_max=22,\n remote_ip_prefix=\"0.0.0.0/0\",\n security_group_id=secgroup1.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var secgroup1 = new OpenStack.Networking.SecGroup(\"secgroup_1\", new()\n {\n Name = \"secgroup_1\",\n Description = \"My neutron security group\",\n });\n\n var secgroupRule1 = new OpenStack.Networking.SecGroupRule(\"secgroup_rule_1\", new()\n {\n Direction = \"ingress\",\n Ethertype = \"IPv4\",\n Protocol = \"tcp\",\n PortRangeMin = 22,\n PortRangeMax = 22,\n RemoteIpPrefix = \"0.0.0.0/0\",\n SecurityGroupId = secgroup1.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tsecgroup1, err := networking.NewSecGroup(ctx, \"secgroup_1\", \u0026networking.SecGroupArgs{\n\t\t\tName: pulumi.String(\"secgroup_1\"),\n\t\t\tDescription: pulumi.String(\"My neutron security group\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = networking.NewSecGroupRule(ctx, \"secgroup_rule_1\", \u0026networking.SecGroupRuleArgs{\n\t\t\tDirection: pulumi.String(\"ingress\"),\n\t\t\tEthertype: pulumi.String(\"IPv4\"),\n\t\t\tProtocol: pulumi.String(\"tcp\"),\n\t\t\tPortRangeMin: pulumi.Int(22),\n\t\t\tPortRangeMax: pulumi.Int(22),\n\t\t\tRemoteIpPrefix: pulumi.String(\"0.0.0.0/0\"),\n\t\t\tSecurityGroupId: secgroup1.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.SecGroup;\nimport com.pulumi.openstack.networking.SecGroupArgs;\nimport com.pulumi.openstack.networking.SecGroupRule;\nimport com.pulumi.openstack.networking.SecGroupRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var secgroup1 = new SecGroup(\"secgroup1\", SecGroupArgs.builder() \n .name(\"secgroup_1\")\n .description(\"My neutron security group\")\n .build());\n\n var secgroupRule1 = new SecGroupRule(\"secgroupRule1\", SecGroupRuleArgs.builder() \n .direction(\"ingress\")\n .ethertype(\"IPv4\")\n .protocol(\"tcp\")\n .portRangeMin(22)\n .portRangeMax(22)\n .remoteIpPrefix(\"0.0.0.0/0\")\n .securityGroupId(secgroup1.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n secgroup1:\n type: openstack:networking:SecGroup\n name: secgroup_1\n properties:\n name: secgroup_1\n description: My neutron security group\n secgroupRule1:\n type: openstack:networking:SecGroupRule\n name: secgroup_rule_1\n properties:\n direction: ingress\n ethertype: IPv4\n protocol: tcp\n portRangeMin: 22\n portRangeMax: 22\n remoteIpPrefix: 0.0.0.0/0\n securityGroupId: ${secgroup1.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\u003e **Note:** To expose the full port-range 1:65535, use `0` for `port_range_min`\nand `port_range_max`.\n\n## Import\n\nSecurity Group Rules can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import openstack:networking/secGroupRule:SecGroupRule secgroup_rule_1 aeb68ee3-6e9d-4256-955c-9584a6212745\n```\n", "properties": { "description": { "type": "string", @@ -16214,7 +16025,7 @@ } }, "openstack:networking/subnet:Subnet": { - "description": "Manages a V2 Neutron subnet resource within OpenStack.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst network1 = new openstack.networking.Network(\"network_1\", {\n name: \"tf_test_network\",\n adminStateUp: true,\n});\nconst subnet1 = new openstack.networking.Subnet(\"subnet_1\", {\n networkId: network1.id,\n cidr: \"192.168.199.0/24\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nnetwork1 = openstack.networking.Network(\"network_1\",\n name=\"tf_test_network\",\n admin_state_up=True)\nsubnet1 = openstack.networking.Subnet(\"subnet_1\",\n network_id=network1.id,\n cidr=\"192.168.199.0/24\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var network1 = new OpenStack.Networking.Network(\"network_1\", new()\n {\n Name = \"tf_test_network\",\n AdminStateUp = true,\n });\n\n var subnet1 = new OpenStack.Networking.Subnet(\"subnet_1\", new()\n {\n NetworkId = network1.Id,\n Cidr = \"192.168.199.0/24\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tnetwork1, err := networking.NewNetwork(ctx, \"network_1\", \u0026networking.NetworkArgs{\n\t\t\tName: pulumi.String(\"tf_test_network\"),\n\t\t\tAdminStateUp: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = networking.NewSubnet(ctx, \"subnet_1\", \u0026networking.SubnetArgs{\n\t\t\tNetworkId: network1.ID(),\n\t\t\tCidr: pulumi.String(\"192.168.199.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.Network;\nimport com.pulumi.openstack.networking.NetworkArgs;\nimport com.pulumi.openstack.networking.Subnet;\nimport com.pulumi.openstack.networking.SubnetArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var network1 = new Network(\"network1\", NetworkArgs.builder() \n .name(\"tf_test_network\")\n .adminStateUp(\"true\")\n .build());\n\n var subnet1 = new Subnet(\"subnet1\", SubnetArgs.builder() \n .networkId(network1.id())\n .cidr(\"192.168.199.0/24\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n network1:\n type: openstack:networking:Network\n name: network_1\n properties:\n name: tf_test_network\n adminStateUp: 'true'\n subnet1:\n type: openstack:networking:Subnet\n name: subnet_1\n properties:\n networkId: ${network1.id}\n cidr: 192.168.199.0/24\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nSubnets can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import openstack:networking/subnet:Subnet subnet_1 da4faf16-5546-41e4-8330-4d0002b74048\n```\n", + "description": "Manages a V2 Neutron subnet resource within OpenStack.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst network1 = new openstack.networking.Network(\"network_1\", {\n name: \"tf_test_network\",\n adminStateUp: true,\n});\nconst subnet1 = new openstack.networking.Subnet(\"subnet_1\", {\n networkId: network1.id,\n cidr: \"192.168.199.0/24\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nnetwork1 = openstack.networking.Network(\"network_1\",\n name=\"tf_test_network\",\n admin_state_up=True)\nsubnet1 = openstack.networking.Subnet(\"subnet_1\",\n network_id=network1.id,\n cidr=\"192.168.199.0/24\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var network1 = new OpenStack.Networking.Network(\"network_1\", new()\n {\n Name = \"tf_test_network\",\n AdminStateUp = true,\n });\n\n var subnet1 = new OpenStack.Networking.Subnet(\"subnet_1\", new()\n {\n NetworkId = network1.Id,\n Cidr = \"192.168.199.0/24\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tnetwork1, err := networking.NewNetwork(ctx, \"network_1\", \u0026networking.NetworkArgs{\n\t\t\tName: pulumi.String(\"tf_test_network\"),\n\t\t\tAdminStateUp: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = networking.NewSubnet(ctx, \"subnet_1\", \u0026networking.SubnetArgs{\n\t\t\tNetworkId: network1.ID(),\n\t\t\tCidr: pulumi.String(\"192.168.199.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.Network;\nimport com.pulumi.openstack.networking.NetworkArgs;\nimport com.pulumi.openstack.networking.Subnet;\nimport com.pulumi.openstack.networking.SubnetArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var network1 = new Network(\"network1\", NetworkArgs.builder() \n .name(\"tf_test_network\")\n .adminStateUp(\"true\")\n .build());\n\n var subnet1 = new Subnet(\"subnet1\", SubnetArgs.builder() \n .networkId(network1.id())\n .cidr(\"192.168.199.0/24\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n network1:\n type: openstack:networking:Network\n name: network_1\n properties:\n name: tf_test_network\n adminStateUp: 'true'\n subnet1:\n type: openstack:networking:Subnet\n name: subnet_1\n properties:\n networkId: ${network1.id}\n cidr: 192.168.199.0/24\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nSubnets can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import openstack:networking/subnet:Subnet subnet_1 da4faf16-5546-41e4-8330-4d0002b74048\n```\n", "properties": { "allTags": { "type": "array", @@ -16230,14 +16041,6 @@ }, "description": "A block declaring the start and end range of\nthe IP addresses available for use with DHCP in this subnet. Multiple\n`allocation_pool` blocks can be declared, providing the subnet with more\nthan one range of IP addresses to use with DHCP. However, each IP range\nmust be from the same CIDR that the subnet is part of.\nThe `allocation_pool` block is documented below.\n" }, - "allocationPoolsCollection": { - "type": "array", - "items": { - "$ref": "#/types/openstack:networking/SubnetAllocationPoolsCollection:SubnetAllocationPoolsCollection" - }, - "description": "A block declaring the start and end range of the IP addresses available for\nuse with DHCP in this subnet.\nThe `allocation_pools` block is documented below.\n", - "deprecationMessage": "use allocation_pool instead" - }, "cidr": { "type": "string", "description": "CIDR representing IP range for this subnet, based on IP\nversion. You can omit this option if you are creating a subnet from a\nsubnet pool.\n" @@ -16261,14 +16064,6 @@ "type": "string", "description": "Default gateway used by devices in this subnet.\nLeaving this blank and not setting `no_gateway` will cause a default\ngateway of `.1` to be used. Changing this updates the gateway IP of the\nexisting subnet.\n" }, - "hostRoutes": { - "type": "array", - "items": { - "$ref": "#/types/openstack:networking/SubnetHostRoute:SubnetHostRoute" - }, - "description": "(**Deprecated** - use `openstack.networking.SubnetRoute`\ninstead) An array of routes that should be used by devices\nwith IPs from this subnet (not including local subnet route). The host_route\nobject structure is documented below. Changing this updates the host routes\nfor the existing subnet.\n", - "deprecationMessage": "Use openstack.networking.SubnetRoute instead" - }, "ipVersion": { "type": "integer", "description": "IP version, either 4 (default) or 6. Changing this creates a\nnew subnet.\n" @@ -16334,7 +16129,6 @@ "required": [ "allTags", "allocationPools", - "allocationPoolsCollection", "cidr", "gatewayIp", "ipv6AddressMode", @@ -16353,14 +16147,6 @@ }, "description": "A block declaring the start and end range of\nthe IP addresses available for use with DHCP in this subnet. Multiple\n`allocation_pool` blocks can be declared, providing the subnet with more\nthan one range of IP addresses to use with DHCP. However, each IP range\nmust be from the same CIDR that the subnet is part of.\nThe `allocation_pool` block is documented below.\n" }, - "allocationPoolsCollection": { - "type": "array", - "items": { - "$ref": "#/types/openstack:networking/SubnetAllocationPoolsCollection:SubnetAllocationPoolsCollection" - }, - "description": "A block declaring the start and end range of the IP addresses available for\nuse with DHCP in this subnet.\nThe `allocation_pools` block is documented below.\n", - "deprecationMessage": "use allocation_pool instead" - }, "cidr": { "type": "string", "description": "CIDR representing IP range for this subnet, based on IP\nversion. You can omit this option if you are creating a subnet from a\nsubnet pool.\n", @@ -16385,14 +16171,6 @@ "type": "string", "description": "Default gateway used by devices in this subnet.\nLeaving this blank and not setting `no_gateway` will cause a default\ngateway of `.1` to be used. Changing this updates the gateway IP of the\nexisting subnet.\n" }, - "hostRoutes": { - "type": "array", - "items": { - "$ref": "#/types/openstack:networking/SubnetHostRoute:SubnetHostRoute" - }, - "description": "(**Deprecated** - use `openstack.networking.SubnetRoute`\ninstead) An array of routes that should be used by devices\nwith IPs from this subnet (not including local subnet route). The host_route\nobject structure is documented below. Changing this updates the host routes\nfor the existing subnet.\n", - "deprecationMessage": "Use openstack.networking.SubnetRoute instead" - }, "ipVersion": { "type": "integer", "description": "IP version, either 4 (default) or 6. Changing this creates a\nnew subnet.\n", @@ -16484,14 +16262,6 @@ }, "description": "A block declaring the start and end range of\nthe IP addresses available for use with DHCP in this subnet. Multiple\n`allocation_pool` blocks can be declared, providing the subnet with more\nthan one range of IP addresses to use with DHCP. However, each IP range\nmust be from the same CIDR that the subnet is part of.\nThe `allocation_pool` block is documented below.\n" }, - "allocationPoolsCollection": { - "type": "array", - "items": { - "$ref": "#/types/openstack:networking/SubnetAllocationPoolsCollection:SubnetAllocationPoolsCollection" - }, - "description": "A block declaring the start and end range of the IP addresses available for\nuse with DHCP in this subnet.\nThe `allocation_pools` block is documented below.\n", - "deprecationMessage": "use allocation_pool instead" - }, "cidr": { "type": "string", "description": "CIDR representing IP range for this subnet, based on IP\nversion. You can omit this option if you are creating a subnet from a\nsubnet pool.\n", @@ -16516,14 +16286,6 @@ "type": "string", "description": "Default gateway used by devices in this subnet.\nLeaving this blank and not setting `no_gateway` will cause a default\ngateway of `.1` to be used. Changing this updates the gateway IP of the\nexisting subnet.\n" }, - "hostRoutes": { - "type": "array", - "items": { - "$ref": "#/types/openstack:networking/SubnetHostRoute:SubnetHostRoute" - }, - "description": "(**Deprecated** - use `openstack.networking.SubnetRoute`\ninstead) An array of routes that should be used by devices\nwith IPs from this subnet (not including local subnet route). The host_route\nobject structure is documented below. Changing this updates the host routes\nfor the existing subnet.\n", - "deprecationMessage": "Use openstack.networking.SubnetRoute instead" - }, "ipVersion": { "type": "integer", "description": "IP version, either 4 (default) or 6. Changing this creates a\nnew subnet.\n", @@ -16599,7 +16361,7 @@ } }, "openstack:networking/subnetPool:SubnetPool": { - "description": "Manages a V2 Neutron subnetpool resource within OpenStack.\n\n## Example Usage\n\n### Create a Subnet Pool\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst subnetpool1 = new openstack.networking.SubnetPool(\"subnetpool_1\", {\n name: \"subnetpool_1\",\n ipVersion: 6,\n prefixes: [\n \"fdf7:b13d:dead:beef::/64\",\n \"fd65:86cc:a334:39b7::/64\",\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nsubnetpool1 = openstack.networking.SubnetPool(\"subnetpool_1\",\n name=\"subnetpool_1\",\n ip_version=6,\n prefixes=[\n \"fdf7:b13d:dead:beef::/64\",\n \"fd65:86cc:a334:39b7::/64\",\n ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var subnetpool1 = new OpenStack.Networking.SubnetPool(\"subnetpool_1\", new()\n {\n Name = \"subnetpool_1\",\n IpVersion = 6,\n Prefixes = new[]\n {\n \"fdf7:b13d:dead:beef::/64\",\n \"fd65:86cc:a334:39b7::/64\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := networking.NewSubnetPool(ctx, \"subnetpool_1\", \u0026networking.SubnetPoolArgs{\n\t\t\tName: pulumi.String(\"subnetpool_1\"),\n\t\t\tIpVersion: pulumi.Int(6),\n\t\t\tPrefixes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"fdf7:b13d:dead:beef::/64\"),\n\t\t\t\tpulumi.String(\"fd65:86cc:a334:39b7::/64\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.SubnetPool;\nimport com.pulumi.openstack.networking.SubnetPoolArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var subnetpool1 = new SubnetPool(\"subnetpool1\", SubnetPoolArgs.builder() \n .name(\"subnetpool_1\")\n .ipVersion(6)\n .prefixes( \n \"fdf7:b13d:dead:beef::/64\",\n \"fd65:86cc:a334:39b7::/64\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n subnetpool1:\n type: openstack:networking:SubnetPool\n name: subnetpool_1\n properties:\n name: subnetpool_1\n ipVersion: 6\n prefixes:\n - fdf7:b13d:dead:beef::/64\n - fd65:86cc:a334:39b7::/64\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Create a Subnet from a Subnet Pool\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst network1 = new openstack.networking.Network(\"network_1\", {\n name: \"network_1\",\n adminStateUp: true,\n});\nconst subnetpool1 = new openstack.networking.SubnetPool(\"subnetpool_1\", {\n name: \"subnetpool_1\",\n prefixes: [\"10.11.12.0/24\"],\n});\nconst subnet1 = new openstack.networking.Subnet(\"subnet_1\", {\n name: \"subnet_1\",\n cidr: \"10.11.12.0/25\",\n networkId: network1.id,\n subnetpoolId: subnetpool1.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nnetwork1 = openstack.networking.Network(\"network_1\",\n name=\"network_1\",\n admin_state_up=True)\nsubnetpool1 = openstack.networking.SubnetPool(\"subnetpool_1\",\n name=\"subnetpool_1\",\n prefixes=[\"10.11.12.0/24\"])\nsubnet1 = openstack.networking.Subnet(\"subnet_1\",\n name=\"subnet_1\",\n cidr=\"10.11.12.0/25\",\n network_id=network1.id,\n subnetpool_id=subnetpool1.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var network1 = new OpenStack.Networking.Network(\"network_1\", new()\n {\n Name = \"network_1\",\n AdminStateUp = true,\n });\n\n var subnetpool1 = new OpenStack.Networking.SubnetPool(\"subnetpool_1\", new()\n {\n Name = \"subnetpool_1\",\n Prefixes = new[]\n {\n \"10.11.12.0/24\",\n },\n });\n\n var subnet1 = new OpenStack.Networking.Subnet(\"subnet_1\", new()\n {\n Name = \"subnet_1\",\n Cidr = \"10.11.12.0/25\",\n NetworkId = network1.Id,\n SubnetpoolId = subnetpool1.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tnetwork1, err := networking.NewNetwork(ctx, \"network_1\", \u0026networking.NetworkArgs{\n\t\t\tName: pulumi.String(\"network_1\"),\n\t\t\tAdminStateUp: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsubnetpool1, err := networking.NewSubnetPool(ctx, \"subnetpool_1\", \u0026networking.SubnetPoolArgs{\n\t\t\tName: pulumi.String(\"subnetpool_1\"),\n\t\t\tPrefixes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.11.12.0/24\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = networking.NewSubnet(ctx, \"subnet_1\", \u0026networking.SubnetArgs{\n\t\t\tName: pulumi.String(\"subnet_1\"),\n\t\t\tCidr: pulumi.String(\"10.11.12.0/25\"),\n\t\t\tNetworkId: network1.ID(),\n\t\t\tSubnetpoolId: subnetpool1.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.Network;\nimport com.pulumi.openstack.networking.NetworkArgs;\nimport com.pulumi.openstack.networking.SubnetPool;\nimport com.pulumi.openstack.networking.SubnetPoolArgs;\nimport com.pulumi.openstack.networking.Subnet;\nimport com.pulumi.openstack.networking.SubnetArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var network1 = new Network(\"network1\", NetworkArgs.builder() \n .name(\"network_1\")\n .adminStateUp(\"true\")\n .build());\n\n var subnetpool1 = new SubnetPool(\"subnetpool1\", SubnetPoolArgs.builder() \n .name(\"subnetpool_1\")\n .prefixes(\"10.11.12.0/24\")\n .build());\n\n var subnet1 = new Subnet(\"subnet1\", SubnetArgs.builder() \n .name(\"subnet_1\")\n .cidr(\"10.11.12.0/25\")\n .networkId(network1.id())\n .subnetpoolId(subnetpool1.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n network1:\n type: openstack:networking:Network\n name: network_1\n properties:\n name: network_1\n adminStateUp: 'true'\n subnetpool1:\n type: openstack:networking:SubnetPool\n name: subnetpool_1\n properties:\n name: subnetpool_1\n prefixes:\n - 10.11.12.0/24\n subnet1:\n type: openstack:networking:Subnet\n name: subnet_1\n properties:\n name: subnet_1\n cidr: 10.11.12.0/25\n networkId: ${network1.id}\n subnetpoolId: ${subnetpool1.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nSubnetpools can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import openstack:networking/subnetPool:SubnetPool subnetpool_1 832cb7f3-59fe-40cf-8f64-8350ffc03272\n```\n", + "description": "Manages a V2 Neutron subnetpool resource within OpenStack.\n\n## Example Usage\n\n### Create a Subnet Pool\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst subnetpool1 = new openstack.networking.SubnetPool(\"subnetpool_1\", {\n name: \"subnetpool_1\",\n ipVersion: 6,\n prefixes: [\n \"fdf7:b13d:dead:beef::/64\",\n \"fd65:86cc:a334:39b7::/64\",\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nsubnetpool1 = openstack.networking.SubnetPool(\"subnetpool_1\",\n name=\"subnetpool_1\",\n ip_version=6,\n prefixes=[\n \"fdf7:b13d:dead:beef::/64\",\n \"fd65:86cc:a334:39b7::/64\",\n ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var subnetpool1 = new OpenStack.Networking.SubnetPool(\"subnetpool_1\", new()\n {\n Name = \"subnetpool_1\",\n IpVersion = 6,\n Prefixes = new[]\n {\n \"fdf7:b13d:dead:beef::/64\",\n \"fd65:86cc:a334:39b7::/64\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := networking.NewSubnetPool(ctx, \"subnetpool_1\", \u0026networking.SubnetPoolArgs{\n\t\t\tName: pulumi.String(\"subnetpool_1\"),\n\t\t\tIpVersion: pulumi.Int(6),\n\t\t\tPrefixes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"fdf7:b13d:dead:beef::/64\"),\n\t\t\t\tpulumi.String(\"fd65:86cc:a334:39b7::/64\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.SubnetPool;\nimport com.pulumi.openstack.networking.SubnetPoolArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var subnetpool1 = new SubnetPool(\"subnetpool1\", SubnetPoolArgs.builder() \n .name(\"subnetpool_1\")\n .ipVersion(6)\n .prefixes( \n \"fdf7:b13d:dead:beef::/64\",\n \"fd65:86cc:a334:39b7::/64\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n subnetpool1:\n type: openstack:networking:SubnetPool\n name: subnetpool_1\n properties:\n name: subnetpool_1\n ipVersion: 6\n prefixes:\n - fdf7:b13d:dead:beef::/64\n - fd65:86cc:a334:39b7::/64\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Create a Subnet from a Subnet Pool\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst network1 = new openstack.networking.Network(\"network_1\", {\n name: \"network_1\",\n adminStateUp: true,\n});\nconst subnetpool1 = new openstack.networking.SubnetPool(\"subnetpool_1\", {\n name: \"subnetpool_1\",\n prefixes: [\"10.11.12.0/24\"],\n});\nconst subnet1 = new openstack.networking.Subnet(\"subnet_1\", {\n name: \"subnet_1\",\n cidr: \"10.11.12.0/25\",\n networkId: network1.id,\n subnetpoolId: subnetpool1.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nnetwork1 = openstack.networking.Network(\"network_1\",\n name=\"network_1\",\n admin_state_up=True)\nsubnetpool1 = openstack.networking.SubnetPool(\"subnetpool_1\",\n name=\"subnetpool_1\",\n prefixes=[\"10.11.12.0/24\"])\nsubnet1 = openstack.networking.Subnet(\"subnet_1\",\n name=\"subnet_1\",\n cidr=\"10.11.12.0/25\",\n network_id=network1.id,\n subnetpool_id=subnetpool1.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var network1 = new OpenStack.Networking.Network(\"network_1\", new()\n {\n Name = \"network_1\",\n AdminStateUp = true,\n });\n\n var subnetpool1 = new OpenStack.Networking.SubnetPool(\"subnetpool_1\", new()\n {\n Name = \"subnetpool_1\",\n Prefixes = new[]\n {\n \"10.11.12.0/24\",\n },\n });\n\n var subnet1 = new OpenStack.Networking.Subnet(\"subnet_1\", new()\n {\n Name = \"subnet_1\",\n Cidr = \"10.11.12.0/25\",\n NetworkId = network1.Id,\n SubnetpoolId = subnetpool1.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tnetwork1, err := networking.NewNetwork(ctx, \"network_1\", \u0026networking.NetworkArgs{\n\t\t\tName: pulumi.String(\"network_1\"),\n\t\t\tAdminStateUp: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsubnetpool1, err := networking.NewSubnetPool(ctx, \"subnetpool_1\", \u0026networking.SubnetPoolArgs{\n\t\t\tName: pulumi.String(\"subnetpool_1\"),\n\t\t\tPrefixes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.11.12.0/24\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = networking.NewSubnet(ctx, \"subnet_1\", \u0026networking.SubnetArgs{\n\t\t\tName: pulumi.String(\"subnet_1\"),\n\t\t\tCidr: pulumi.String(\"10.11.12.0/25\"),\n\t\t\tNetworkId: network1.ID(),\n\t\t\tSubnetpoolId: subnetpool1.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.Network;\nimport com.pulumi.openstack.networking.NetworkArgs;\nimport com.pulumi.openstack.networking.SubnetPool;\nimport com.pulumi.openstack.networking.SubnetPoolArgs;\nimport com.pulumi.openstack.networking.Subnet;\nimport com.pulumi.openstack.networking.SubnetArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var network1 = new Network(\"network1\", NetworkArgs.builder() \n .name(\"network_1\")\n .adminStateUp(\"true\")\n .build());\n\n var subnetpool1 = new SubnetPool(\"subnetpool1\", SubnetPoolArgs.builder() \n .name(\"subnetpool_1\")\n .prefixes(\"10.11.12.0/24\")\n .build());\n\n var subnet1 = new Subnet(\"subnet1\", SubnetArgs.builder() \n .name(\"subnet_1\")\n .cidr(\"10.11.12.0/25\")\n .networkId(network1.id())\n .subnetpoolId(subnetpool1.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n network1:\n type: openstack:networking:Network\n name: network_1\n properties:\n name: network_1\n adminStateUp: 'true'\n subnetpool1:\n type: openstack:networking:SubnetPool\n name: subnetpool_1\n properties:\n name: subnetpool_1\n prefixes:\n - 10.11.12.0/24\n subnet1:\n type: openstack:networking:Subnet\n name: subnet_1\n properties:\n name: subnet_1\n cidr: 10.11.12.0/25\n networkId: ${network1.id}\n subnetpoolId: ${subnetpool1.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nSubnetpools can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import openstack:networking/subnetPool:SubnetPool subnetpool_1 832cb7f3-59fe-40cf-8f64-8350ffc03272\n```\n", "properties": { "addressScopeId": { "type": "string", @@ -16880,7 +16642,7 @@ } }, "openstack:networking/subnetRoute:SubnetRoute": { - "description": "Creates a routing entry on a OpenStack V2 subnet.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst router1 = new openstack.networking.Router(\"router_1\", {\n name: \"router_1\",\n adminStateUp: true,\n});\nconst network1 = new openstack.networking.Network(\"network_1\", {\n name: \"network_1\",\n adminStateUp: true,\n});\nconst subnet1 = new openstack.networking.Subnet(\"subnet_1\", {\n networkId: network1.id,\n cidr: \"192.168.199.0/24\",\n ipVersion: 4,\n});\nconst subnetRoute1 = new openstack.networking.SubnetRoute(\"subnet_route_1\", {\n subnetId: subnet1.id,\n destinationCidr: \"10.0.1.0/24\",\n nextHop: \"192.168.199.254\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nrouter1 = openstack.networking.Router(\"router_1\",\n name=\"router_1\",\n admin_state_up=True)\nnetwork1 = openstack.networking.Network(\"network_1\",\n name=\"network_1\",\n admin_state_up=True)\nsubnet1 = openstack.networking.Subnet(\"subnet_1\",\n network_id=network1.id,\n cidr=\"192.168.199.0/24\",\n ip_version=4)\nsubnet_route1 = openstack.networking.SubnetRoute(\"subnet_route_1\",\n subnet_id=subnet1.id,\n destination_cidr=\"10.0.1.0/24\",\n next_hop=\"192.168.199.254\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var router1 = new OpenStack.Networking.Router(\"router_1\", new()\n {\n Name = \"router_1\",\n AdminStateUp = true,\n });\n\n var network1 = new OpenStack.Networking.Network(\"network_1\", new()\n {\n Name = \"network_1\",\n AdminStateUp = true,\n });\n\n var subnet1 = new OpenStack.Networking.Subnet(\"subnet_1\", new()\n {\n NetworkId = network1.Id,\n Cidr = \"192.168.199.0/24\",\n IpVersion = 4,\n });\n\n var subnetRoute1 = new OpenStack.Networking.SubnetRoute(\"subnet_route_1\", new()\n {\n SubnetId = subnet1.Id,\n DestinationCidr = \"10.0.1.0/24\",\n NextHop = \"192.168.199.254\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := networking.NewRouter(ctx, \"router_1\", \u0026networking.RouterArgs{\n\t\t\tName: pulumi.String(\"router_1\"),\n\t\t\tAdminStateUp: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tnetwork1, err := networking.NewNetwork(ctx, \"network_1\", \u0026networking.NetworkArgs{\n\t\t\tName: pulumi.String(\"network_1\"),\n\t\t\tAdminStateUp: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsubnet1, err := networking.NewSubnet(ctx, \"subnet_1\", \u0026networking.SubnetArgs{\n\t\t\tNetworkId: network1.ID(),\n\t\t\tCidr: pulumi.String(\"192.168.199.0/24\"),\n\t\t\tIpVersion: pulumi.Int(4),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = networking.NewSubnetRoute(ctx, \"subnet_route_1\", \u0026networking.SubnetRouteArgs{\n\t\t\tSubnetId: subnet1.ID(),\n\t\t\tDestinationCidr: pulumi.String(\"10.0.1.0/24\"),\n\t\t\tNextHop: pulumi.String(\"192.168.199.254\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.Router;\nimport com.pulumi.openstack.networking.RouterArgs;\nimport com.pulumi.openstack.networking.Network;\nimport com.pulumi.openstack.networking.NetworkArgs;\nimport com.pulumi.openstack.networking.Subnet;\nimport com.pulumi.openstack.networking.SubnetArgs;\nimport com.pulumi.openstack.networking.SubnetRoute;\nimport com.pulumi.openstack.networking.SubnetRouteArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var router1 = new Router(\"router1\", RouterArgs.builder() \n .name(\"router_1\")\n .adminStateUp(\"true\")\n .build());\n\n var network1 = new Network(\"network1\", NetworkArgs.builder() \n .name(\"network_1\")\n .adminStateUp(\"true\")\n .build());\n\n var subnet1 = new Subnet(\"subnet1\", SubnetArgs.builder() \n .networkId(network1.id())\n .cidr(\"192.168.199.0/24\")\n .ipVersion(4)\n .build());\n\n var subnetRoute1 = new SubnetRoute(\"subnetRoute1\", SubnetRouteArgs.builder() \n .subnetId(subnet1.id())\n .destinationCidr(\"10.0.1.0/24\")\n .nextHop(\"192.168.199.254\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n router1:\n type: openstack:networking:Router\n name: router_1\n properties:\n name: router_1\n adminStateUp: 'true'\n network1:\n type: openstack:networking:Network\n name: network_1\n properties:\n name: network_1\n adminStateUp: 'true'\n subnet1:\n type: openstack:networking:Subnet\n name: subnet_1\n properties:\n networkId: ${network1.id}\n cidr: 192.168.199.0/24\n ipVersion: 4\n subnetRoute1:\n type: openstack:networking:SubnetRoute\n name: subnet_route_1\n properties:\n subnetId: ${subnet1.id}\n destinationCidr: 10.0.1.0/24\n nextHop: 192.168.199.254\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nRouting entries can be imported using a combined ID using the following format: `\u003csubnet_id\u003e-route-\u003cdestination_cidr\u003e-\u003cnext_hop\u003e`\n\n```sh\n$ pulumi import openstack:networking/subnetRoute:SubnetRoute subnet_route_1 686fe248-386c-4f70-9f6c-281607dad079-route-10.0.1.0/24-192.168.199.25\n```\n", + "description": "Creates a routing entry on a OpenStack V2 subnet.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst router1 = new openstack.networking.Router(\"router_1\", {\n name: \"router_1\",\n adminStateUp: true,\n});\nconst network1 = new openstack.networking.Network(\"network_1\", {\n name: \"network_1\",\n adminStateUp: true,\n});\nconst subnet1 = new openstack.networking.Subnet(\"subnet_1\", {\n networkId: network1.id,\n cidr: \"192.168.199.0/24\",\n ipVersion: 4,\n});\nconst subnetRoute1 = new openstack.networking.SubnetRoute(\"subnet_route_1\", {\n subnetId: subnet1.id,\n destinationCidr: \"10.0.1.0/24\",\n nextHop: \"192.168.199.254\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nrouter1 = openstack.networking.Router(\"router_1\",\n name=\"router_1\",\n admin_state_up=True)\nnetwork1 = openstack.networking.Network(\"network_1\",\n name=\"network_1\",\n admin_state_up=True)\nsubnet1 = openstack.networking.Subnet(\"subnet_1\",\n network_id=network1.id,\n cidr=\"192.168.199.0/24\",\n ip_version=4)\nsubnet_route1 = openstack.networking.SubnetRoute(\"subnet_route_1\",\n subnet_id=subnet1.id,\n destination_cidr=\"10.0.1.0/24\",\n next_hop=\"192.168.199.254\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var router1 = new OpenStack.Networking.Router(\"router_1\", new()\n {\n Name = \"router_1\",\n AdminStateUp = true,\n });\n\n var network1 = new OpenStack.Networking.Network(\"network_1\", new()\n {\n Name = \"network_1\",\n AdminStateUp = true,\n });\n\n var subnet1 = new OpenStack.Networking.Subnet(\"subnet_1\", new()\n {\n NetworkId = network1.Id,\n Cidr = \"192.168.199.0/24\",\n IpVersion = 4,\n });\n\n var subnetRoute1 = new OpenStack.Networking.SubnetRoute(\"subnet_route_1\", new()\n {\n SubnetId = subnet1.Id,\n DestinationCidr = \"10.0.1.0/24\",\n NextHop = \"192.168.199.254\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := networking.NewRouter(ctx, \"router_1\", \u0026networking.RouterArgs{\n\t\t\tName: pulumi.String(\"router_1\"),\n\t\t\tAdminStateUp: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tnetwork1, err := networking.NewNetwork(ctx, \"network_1\", \u0026networking.NetworkArgs{\n\t\t\tName: pulumi.String(\"network_1\"),\n\t\t\tAdminStateUp: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsubnet1, err := networking.NewSubnet(ctx, \"subnet_1\", \u0026networking.SubnetArgs{\n\t\t\tNetworkId: network1.ID(),\n\t\t\tCidr: pulumi.String(\"192.168.199.0/24\"),\n\t\t\tIpVersion: pulumi.Int(4),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = networking.NewSubnetRoute(ctx, \"subnet_route_1\", \u0026networking.SubnetRouteArgs{\n\t\t\tSubnetId: subnet1.ID(),\n\t\t\tDestinationCidr: pulumi.String(\"10.0.1.0/24\"),\n\t\t\tNextHop: pulumi.String(\"192.168.199.254\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.Router;\nimport com.pulumi.openstack.networking.RouterArgs;\nimport com.pulumi.openstack.networking.Network;\nimport com.pulumi.openstack.networking.NetworkArgs;\nimport com.pulumi.openstack.networking.Subnet;\nimport com.pulumi.openstack.networking.SubnetArgs;\nimport com.pulumi.openstack.networking.SubnetRoute;\nimport com.pulumi.openstack.networking.SubnetRouteArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var router1 = new Router(\"router1\", RouterArgs.builder() \n .name(\"router_1\")\n .adminStateUp(\"true\")\n .build());\n\n var network1 = new Network(\"network1\", NetworkArgs.builder() \n .name(\"network_1\")\n .adminStateUp(\"true\")\n .build());\n\n var subnet1 = new Subnet(\"subnet1\", SubnetArgs.builder() \n .networkId(network1.id())\n .cidr(\"192.168.199.0/24\")\n .ipVersion(4)\n .build());\n\n var subnetRoute1 = new SubnetRoute(\"subnetRoute1\", SubnetRouteArgs.builder() \n .subnetId(subnet1.id())\n .destinationCidr(\"10.0.1.0/24\")\n .nextHop(\"192.168.199.254\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n router1:\n type: openstack:networking:Router\n name: router_1\n properties:\n name: router_1\n adminStateUp: 'true'\n network1:\n type: openstack:networking:Network\n name: network_1\n properties:\n name: network_1\n adminStateUp: 'true'\n subnet1:\n type: openstack:networking:Subnet\n name: subnet_1\n properties:\n networkId: ${network1.id}\n cidr: 192.168.199.0/24\n ipVersion: 4\n subnetRoute1:\n type: openstack:networking:SubnetRoute\n name: subnet_route_1\n properties:\n subnetId: ${subnet1.id}\n destinationCidr: 10.0.1.0/24\n nextHop: 192.168.199.254\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nRouting entries can be imported using a combined ID using the following format: `\u003csubnet_id\u003e-route-\u003cdestination_cidr\u003e-\u003cnext_hop\u003e`\n\n```sh\n$ pulumi import openstack:networking/subnetRoute:SubnetRoute subnet_route_1 686fe248-386c-4f70-9f6c-281607dad079-route-10.0.1.0/24-192.168.199.25\n```\n", "properties": { "destinationCidr": { "type": "string", @@ -16960,7 +16722,7 @@ } }, "openstack:networking/trunk:Trunk": { - "description": "Manages a networking V2 trunk resource within OpenStack.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst network1 = new openstack.networking.Network(\"network_1\", {\n name: \"network_1\",\n adminStateUp: true,\n});\nconst subnet1 = new openstack.networking.Subnet(\"subnet_1\", {\n name: \"subnet_1\",\n networkId: network1.id,\n cidr: \"192.168.1.0/24\",\n ipVersion: 4,\n enableDhcp: true,\n noGateway: true,\n});\nconst parentPort1 = new openstack.networking.Port(\"parent_port_1\", {\n name: \"parent_port_1\",\n networkId: network1.id,\n adminStateUp: true,\n}, {\n dependsOn: [subnet1],\n});\nconst subport1 = new openstack.networking.Port(\"subport_1\", {\n name: \"subport_1\",\n networkId: network1.id,\n adminStateUp: true,\n}, {\n dependsOn: [subnet1],\n});\nconst trunk1 = new openstack.networking.Trunk(\"trunk_1\", {\n name: \"trunk_1\",\n adminStateUp: true,\n portId: parentPort1.id,\n subPorts: [{\n portId: subport1.id,\n segmentationId: 1,\n segmentationType: \"vlan\",\n }],\n});\nconst instance1 = new openstack.compute.Instance(\"instance_1\", {\n name: \"instance_1\",\n securityGroups: [\"default\"],\n networks: [{\n port: trunk1.portId,\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nnetwork1 = openstack.networking.Network(\"network_1\",\n name=\"network_1\",\n admin_state_up=True)\nsubnet1 = openstack.networking.Subnet(\"subnet_1\",\n name=\"subnet_1\",\n network_id=network1.id,\n cidr=\"192.168.1.0/24\",\n ip_version=4,\n enable_dhcp=True,\n no_gateway=True)\nparent_port1 = openstack.networking.Port(\"parent_port_1\",\n name=\"parent_port_1\",\n network_id=network1.id,\n admin_state_up=True,\n opts=pulumi.ResourceOptions(depends_on=[subnet1]))\nsubport1 = openstack.networking.Port(\"subport_1\",\n name=\"subport_1\",\n network_id=network1.id,\n admin_state_up=True,\n opts=pulumi.ResourceOptions(depends_on=[subnet1]))\ntrunk1 = openstack.networking.Trunk(\"trunk_1\",\n name=\"trunk_1\",\n admin_state_up=True,\n port_id=parent_port1.id,\n sub_ports=[openstack.networking.TrunkSubPortArgs(\n port_id=subport1.id,\n segmentation_id=1,\n segmentation_type=\"vlan\",\n )])\ninstance1 = openstack.compute.Instance(\"instance_1\",\n name=\"instance_1\",\n security_groups=[\"default\"],\n networks=[openstack.compute.InstanceNetworkArgs(\n port=trunk1.port_id,\n )])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var network1 = new OpenStack.Networking.Network(\"network_1\", new()\n {\n Name = \"network_1\",\n AdminStateUp = true,\n });\n\n var subnet1 = new OpenStack.Networking.Subnet(\"subnet_1\", new()\n {\n Name = \"subnet_1\",\n NetworkId = network1.Id,\n Cidr = \"192.168.1.0/24\",\n IpVersion = 4,\n EnableDhcp = true,\n NoGateway = true,\n });\n\n var parentPort1 = new OpenStack.Networking.Port(\"parent_port_1\", new()\n {\n Name = \"parent_port_1\",\n NetworkId = network1.Id,\n AdminStateUp = true,\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n subnet1,\n },\n });\n\n var subport1 = new OpenStack.Networking.Port(\"subport_1\", new()\n {\n Name = \"subport_1\",\n NetworkId = network1.Id,\n AdminStateUp = true,\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n subnet1,\n },\n });\n\n var trunk1 = new OpenStack.Networking.Trunk(\"trunk_1\", new()\n {\n Name = \"trunk_1\",\n AdminStateUp = true,\n PortId = parentPort1.Id,\n SubPorts = new[]\n {\n new OpenStack.Networking.Inputs.TrunkSubPortArgs\n {\n PortId = subport1.Id,\n SegmentationId = 1,\n SegmentationType = \"vlan\",\n },\n },\n });\n\n var instance1 = new OpenStack.Compute.Instance(\"instance_1\", new()\n {\n Name = \"instance_1\",\n SecurityGroups = new[]\n {\n \"default\",\n },\n Networks = new[]\n {\n new OpenStack.Compute.Inputs.InstanceNetworkArgs\n {\n Port = trunk1.PortId,\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/compute\"\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tnetwork1, err := networking.NewNetwork(ctx, \"network_1\", \u0026networking.NetworkArgs{\n\t\t\tName: pulumi.String(\"network_1\"),\n\t\t\tAdminStateUp: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsubnet1, err := networking.NewSubnet(ctx, \"subnet_1\", \u0026networking.SubnetArgs{\n\t\t\tName: pulumi.String(\"subnet_1\"),\n\t\t\tNetworkId: network1.ID(),\n\t\t\tCidr: pulumi.String(\"192.168.1.0/24\"),\n\t\t\tIpVersion: pulumi.Int(4),\n\t\t\tEnableDhcp: pulumi.Bool(true),\n\t\t\tNoGateway: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tparentPort1, err := networking.NewPort(ctx, \"parent_port_1\", \u0026networking.PortArgs{\n\t\t\tName: pulumi.String(\"parent_port_1\"),\n\t\t\tNetworkId: network1.ID(),\n\t\t\tAdminStateUp: pulumi.Bool(true),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tsubnet1,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsubport1, err := networking.NewPort(ctx, \"subport_1\", \u0026networking.PortArgs{\n\t\t\tName: pulumi.String(\"subport_1\"),\n\t\t\tNetworkId: network1.ID(),\n\t\t\tAdminStateUp: pulumi.Bool(true),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tsubnet1,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttrunk1, err := networking.NewTrunk(ctx, \"trunk_1\", \u0026networking.TrunkArgs{\n\t\t\tName: pulumi.String(\"trunk_1\"),\n\t\t\tAdminStateUp: pulumi.Bool(true),\n\t\t\tPortId: parentPort1.ID(),\n\t\t\tSubPorts: networking.TrunkSubPortArray{\n\t\t\t\t\u0026networking.TrunkSubPortArgs{\n\t\t\t\t\tPortId: subport1.ID(),\n\t\t\t\t\tSegmentationId: pulumi.Int(1),\n\t\t\t\t\tSegmentationType: pulumi.String(\"vlan\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewInstance(ctx, \"instance_1\", \u0026compute.InstanceArgs{\n\t\t\tName: pulumi.String(\"instance_1\"),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"default\"),\n\t\t\t},\n\t\t\tNetworks: compute.InstanceNetworkArray{\n\t\t\t\t\u0026compute.InstanceNetworkArgs{\n\t\t\t\t\tPort: trunk1.PortId,\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.Network;\nimport com.pulumi.openstack.networking.NetworkArgs;\nimport com.pulumi.openstack.networking.Subnet;\nimport com.pulumi.openstack.networking.SubnetArgs;\nimport com.pulumi.openstack.networking.Port;\nimport com.pulumi.openstack.networking.PortArgs;\nimport com.pulumi.openstack.networking.Trunk;\nimport com.pulumi.openstack.networking.TrunkArgs;\nimport com.pulumi.openstack.networking.inputs.TrunkSubPortArgs;\nimport com.pulumi.openstack.compute.Instance;\nimport com.pulumi.openstack.compute.InstanceArgs;\nimport com.pulumi.openstack.compute.inputs.InstanceNetworkArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var network1 = new Network(\"network1\", NetworkArgs.builder() \n .name(\"network_1\")\n .adminStateUp(\"true\")\n .build());\n\n var subnet1 = new Subnet(\"subnet1\", SubnetArgs.builder() \n .name(\"subnet_1\")\n .networkId(network1.id())\n .cidr(\"192.168.1.0/24\")\n .ipVersion(4)\n .enableDhcp(true)\n .noGateway(true)\n .build());\n\n var parentPort1 = new Port(\"parentPort1\", PortArgs.builder() \n .name(\"parent_port_1\")\n .networkId(network1.id())\n .adminStateUp(\"true\")\n .build(), CustomResourceOptions.builder()\n .dependsOn(subnet1)\n .build());\n\n var subport1 = new Port(\"subport1\", PortArgs.builder() \n .name(\"subport_1\")\n .networkId(network1.id())\n .adminStateUp(\"true\")\n .build(), CustomResourceOptions.builder()\n .dependsOn(subnet1)\n .build());\n\n var trunk1 = new Trunk(\"trunk1\", TrunkArgs.builder() \n .name(\"trunk_1\")\n .adminStateUp(\"true\")\n .portId(parentPort1.id())\n .subPorts(TrunkSubPortArgs.builder()\n .portId(subport1.id())\n .segmentationId(1)\n .segmentationType(\"vlan\")\n .build())\n .build());\n\n var instance1 = new Instance(\"instance1\", InstanceArgs.builder() \n .name(\"instance_1\")\n .securityGroups(\"default\")\n .networks(InstanceNetworkArgs.builder()\n .port(trunk1.portId())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n network1:\n type: openstack:networking:Network\n name: network_1\n properties:\n name: network_1\n adminStateUp: 'true'\n subnet1:\n type: openstack:networking:Subnet\n name: subnet_1\n properties:\n name: subnet_1\n networkId: ${network1.id}\n cidr: 192.168.1.0/24\n ipVersion: 4\n enableDhcp: true\n noGateway: true\n parentPort1:\n type: openstack:networking:Port\n name: parent_port_1\n properties:\n name: parent_port_1\n networkId: ${network1.id}\n adminStateUp: 'true'\n options:\n dependson:\n - ${subnet1}\n subport1:\n type: openstack:networking:Port\n name: subport_1\n properties:\n name: subport_1\n networkId: ${network1.id}\n adminStateUp: 'true'\n options:\n dependson:\n - ${subnet1}\n trunk1:\n type: openstack:networking:Trunk\n name: trunk_1\n properties:\n name: trunk_1\n adminStateUp: 'true'\n portId: ${parentPort1.id}\n subPorts:\n - portId: ${subport1.id}\n segmentationId: 1\n segmentationType: vlan\n instance1:\n type: openstack:compute:Instance\n name: instance_1\n properties:\n name: instance_1\n securityGroups:\n - default\n networks:\n - port: ${trunk1.portId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Manages a networking V2 trunk resource within OpenStack.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst network1 = new openstack.networking.Network(\"network_1\", {\n name: \"network_1\",\n adminStateUp: true,\n});\nconst subnet1 = new openstack.networking.Subnet(\"subnet_1\", {\n name: \"subnet_1\",\n networkId: network1.id,\n cidr: \"192.168.1.0/24\",\n ipVersion: 4,\n enableDhcp: true,\n noGateway: true,\n});\nconst parentPort1 = new openstack.networking.Port(\"parent_port_1\", {\n name: \"parent_port_1\",\n networkId: network1.id,\n adminStateUp: true,\n}, {\n dependsOn: [subnet1],\n});\nconst subport1 = new openstack.networking.Port(\"subport_1\", {\n name: \"subport_1\",\n networkId: network1.id,\n adminStateUp: true,\n}, {\n dependsOn: [subnet1],\n});\nconst trunk1 = new openstack.networking.Trunk(\"trunk_1\", {\n name: \"trunk_1\",\n adminStateUp: true,\n portId: parentPort1.id,\n subPorts: [{\n portId: subport1.id,\n segmentationId: 1,\n segmentationType: \"vlan\",\n }],\n});\nconst instance1 = new openstack.compute.Instance(\"instance_1\", {\n name: \"instance_1\",\n securityGroups: [\"default\"],\n networks: [{\n port: trunk1.portId,\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nnetwork1 = openstack.networking.Network(\"network_1\",\n name=\"network_1\",\n admin_state_up=True)\nsubnet1 = openstack.networking.Subnet(\"subnet_1\",\n name=\"subnet_1\",\n network_id=network1.id,\n cidr=\"192.168.1.0/24\",\n ip_version=4,\n enable_dhcp=True,\n no_gateway=True)\nparent_port1 = openstack.networking.Port(\"parent_port_1\",\n name=\"parent_port_1\",\n network_id=network1.id,\n admin_state_up=True,\n opts=pulumi.ResourceOptions(depends_on=[subnet1]))\nsubport1 = openstack.networking.Port(\"subport_1\",\n name=\"subport_1\",\n network_id=network1.id,\n admin_state_up=True,\n opts=pulumi.ResourceOptions(depends_on=[subnet1]))\ntrunk1 = openstack.networking.Trunk(\"trunk_1\",\n name=\"trunk_1\",\n admin_state_up=True,\n port_id=parent_port1.id,\n sub_ports=[openstack.networking.TrunkSubPortArgs(\n port_id=subport1.id,\n segmentation_id=1,\n segmentation_type=\"vlan\",\n )])\ninstance1 = openstack.compute.Instance(\"instance_1\",\n name=\"instance_1\",\n security_groups=[\"default\"],\n networks=[openstack.compute.InstanceNetworkArgs(\n port=trunk1.port_id,\n )])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var network1 = new OpenStack.Networking.Network(\"network_1\", new()\n {\n Name = \"network_1\",\n AdminStateUp = true,\n });\n\n var subnet1 = new OpenStack.Networking.Subnet(\"subnet_1\", new()\n {\n Name = \"subnet_1\",\n NetworkId = network1.Id,\n Cidr = \"192.168.1.0/24\",\n IpVersion = 4,\n EnableDhcp = true,\n NoGateway = true,\n });\n\n var parentPort1 = new OpenStack.Networking.Port(\"parent_port_1\", new()\n {\n Name = \"parent_port_1\",\n NetworkId = network1.Id,\n AdminStateUp = true,\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n subnet1,\n },\n });\n\n var subport1 = new OpenStack.Networking.Port(\"subport_1\", new()\n {\n Name = \"subport_1\",\n NetworkId = network1.Id,\n AdminStateUp = true,\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n subnet1,\n },\n });\n\n var trunk1 = new OpenStack.Networking.Trunk(\"trunk_1\", new()\n {\n Name = \"trunk_1\",\n AdminStateUp = true,\n PortId = parentPort1.Id,\n SubPorts = new[]\n {\n new OpenStack.Networking.Inputs.TrunkSubPortArgs\n {\n PortId = subport1.Id,\n SegmentationId = 1,\n SegmentationType = \"vlan\",\n },\n },\n });\n\n var instance1 = new OpenStack.Compute.Instance(\"instance_1\", new()\n {\n Name = \"instance_1\",\n SecurityGroups = new[]\n {\n \"default\",\n },\n Networks = new[]\n {\n new OpenStack.Compute.Inputs.InstanceNetworkArgs\n {\n Port = trunk1.PortId,\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/compute\"\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tnetwork1, err := networking.NewNetwork(ctx, \"network_1\", \u0026networking.NetworkArgs{\n\t\t\tName: pulumi.String(\"network_1\"),\n\t\t\tAdminStateUp: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsubnet1, err := networking.NewSubnet(ctx, \"subnet_1\", \u0026networking.SubnetArgs{\n\t\t\tName: pulumi.String(\"subnet_1\"),\n\t\t\tNetworkId: network1.ID(),\n\t\t\tCidr: pulumi.String(\"192.168.1.0/24\"),\n\t\t\tIpVersion: pulumi.Int(4),\n\t\t\tEnableDhcp: pulumi.Bool(true),\n\t\t\tNoGateway: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tparentPort1, err := networking.NewPort(ctx, \"parent_port_1\", \u0026networking.PortArgs{\n\t\t\tName: pulumi.String(\"parent_port_1\"),\n\t\t\tNetworkId: network1.ID(),\n\t\t\tAdminStateUp: pulumi.Bool(true),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tsubnet1,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsubport1, err := networking.NewPort(ctx, \"subport_1\", \u0026networking.PortArgs{\n\t\t\tName: pulumi.String(\"subport_1\"),\n\t\t\tNetworkId: network1.ID(),\n\t\t\tAdminStateUp: pulumi.Bool(true),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tsubnet1,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttrunk1, err := networking.NewTrunk(ctx, \"trunk_1\", \u0026networking.TrunkArgs{\n\t\t\tName: pulumi.String(\"trunk_1\"),\n\t\t\tAdminStateUp: pulumi.Bool(true),\n\t\t\tPortId: parentPort1.ID(),\n\t\t\tSubPorts: networking.TrunkSubPortArray{\n\t\t\t\t\u0026networking.TrunkSubPortArgs{\n\t\t\t\t\tPortId: subport1.ID(),\n\t\t\t\t\tSegmentationId: pulumi.Int(1),\n\t\t\t\t\tSegmentationType: pulumi.String(\"vlan\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewInstance(ctx, \"instance_1\", \u0026compute.InstanceArgs{\n\t\t\tName: pulumi.String(\"instance_1\"),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"default\"),\n\t\t\t},\n\t\t\tNetworks: compute.InstanceNetworkArray{\n\t\t\t\t\u0026compute.InstanceNetworkArgs{\n\t\t\t\t\tPort: trunk1.PortId,\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.Network;\nimport com.pulumi.openstack.networking.NetworkArgs;\nimport com.pulumi.openstack.networking.Subnet;\nimport com.pulumi.openstack.networking.SubnetArgs;\nimport com.pulumi.openstack.networking.Port;\nimport com.pulumi.openstack.networking.PortArgs;\nimport com.pulumi.openstack.networking.Trunk;\nimport com.pulumi.openstack.networking.TrunkArgs;\nimport com.pulumi.openstack.networking.inputs.TrunkSubPortArgs;\nimport com.pulumi.openstack.compute.Instance;\nimport com.pulumi.openstack.compute.InstanceArgs;\nimport com.pulumi.openstack.compute.inputs.InstanceNetworkArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var network1 = new Network(\"network1\", NetworkArgs.builder() \n .name(\"network_1\")\n .adminStateUp(\"true\")\n .build());\n\n var subnet1 = new Subnet(\"subnet1\", SubnetArgs.builder() \n .name(\"subnet_1\")\n .networkId(network1.id())\n .cidr(\"192.168.1.0/24\")\n .ipVersion(4)\n .enableDhcp(true)\n .noGateway(true)\n .build());\n\n var parentPort1 = new Port(\"parentPort1\", PortArgs.builder() \n .name(\"parent_port_1\")\n .networkId(network1.id())\n .adminStateUp(\"true\")\n .build(), CustomResourceOptions.builder()\n .dependsOn(subnet1)\n .build());\n\n var subport1 = new Port(\"subport1\", PortArgs.builder() \n .name(\"subport_1\")\n .networkId(network1.id())\n .adminStateUp(\"true\")\n .build(), CustomResourceOptions.builder()\n .dependsOn(subnet1)\n .build());\n\n var trunk1 = new Trunk(\"trunk1\", TrunkArgs.builder() \n .name(\"trunk_1\")\n .adminStateUp(\"true\")\n .portId(parentPort1.id())\n .subPorts(TrunkSubPortArgs.builder()\n .portId(subport1.id())\n .segmentationId(1)\n .segmentationType(\"vlan\")\n .build())\n .build());\n\n var instance1 = new Instance(\"instance1\", InstanceArgs.builder() \n .name(\"instance_1\")\n .securityGroups(\"default\")\n .networks(InstanceNetworkArgs.builder()\n .port(trunk1.portId())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n network1:\n type: openstack:networking:Network\n name: network_1\n properties:\n name: network_1\n adminStateUp: 'true'\n subnet1:\n type: openstack:networking:Subnet\n name: subnet_1\n properties:\n name: subnet_1\n networkId: ${network1.id}\n cidr: 192.168.1.0/24\n ipVersion: 4\n enableDhcp: true\n noGateway: true\n parentPort1:\n type: openstack:networking:Port\n name: parent_port_1\n properties:\n name: parent_port_1\n networkId: ${network1.id}\n adminStateUp: 'true'\n options:\n dependson:\n - ${subnet1}\n subport1:\n type: openstack:networking:Port\n name: subport_1\n properties:\n name: subport_1\n networkId: ${network1.id}\n adminStateUp: 'true'\n options:\n dependson:\n - ${subnet1}\n trunk1:\n type: openstack:networking:Trunk\n name: trunk_1\n properties:\n name: trunk_1\n adminStateUp: 'true'\n portId: ${parentPort1.id}\n subPorts:\n - portId: ${subport1.id}\n segmentationId: 1\n segmentationType: vlan\n instance1:\n type: openstack:compute:Instance\n name: instance_1\n properties:\n name: instance_1\n securityGroups:\n - default\n networks:\n - port: ${trunk1.portId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "properties": { "adminStateUp": { "type": "boolean", @@ -17117,7 +16879,7 @@ } }, "openstack:objectstorage/container:Container": { - "description": "Manages a V1 container resource within OpenStack.\n\n## Example Usage\n\n### Basic Container\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst container1 = new openstack.objectstorage.Container(\"container_1\", {\n region: \"RegionOne\",\n name: \"tf-test-container-1\",\n metadata: {\n test: \"true\",\n },\n contentType: \"application/json\",\n versioning: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\ncontainer1 = openstack.objectstorage.Container(\"container_1\",\n region=\"RegionOne\",\n name=\"tf-test-container-1\",\n metadata={\n \"test\": \"true\",\n },\n content_type=\"application/json\",\n versioning=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var container1 = new OpenStack.ObjectStorage.Container(\"container_1\", new()\n {\n Region = \"RegionOne\",\n Name = \"tf-test-container-1\",\n Metadata = \n {\n { \"test\", \"true\" },\n },\n ContentType = \"application/json\",\n Versioning = true,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/objectstorage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := objectstorage.NewContainer(ctx, \"container_1\", \u0026objectstorage.ContainerArgs{\n\t\t\tRegion: pulumi.String(\"RegionOne\"),\n\t\t\tName: pulumi.String(\"tf-test-container-1\"),\n\t\t\tMetadata: pulumi.Map{\n\t\t\t\t\"test\": pulumi.Any(\"true\"),\n\t\t\t},\n\t\t\tContentType: pulumi.String(\"application/json\"),\n\t\t\tVersioning: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.objectstorage.Container;\nimport com.pulumi.openstack.objectstorage.ContainerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var container1 = new Container(\"container1\", ContainerArgs.builder() \n .region(\"RegionOne\")\n .name(\"tf-test-container-1\")\n .metadata(Map.of(\"test\", \"true\"))\n .contentType(\"application/json\")\n .versioning(true)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n container1:\n type: openstack:objectstorage:Container\n name: container_1\n properties:\n region: RegionOne\n name: tf-test-container-1\n metadata:\n test: 'true'\n contentType: application/json\n versioning: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Basic Container with legacy versioning\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst container1 = new openstack.objectstorage.Container(\"container_1\", {\n region: \"RegionOne\",\n name: \"tf-test-container-1\",\n metadata: {\n test: \"true\",\n },\n contentType: \"application/json\",\n versioningLegacy: {\n type: \"versions\",\n location: \"tf-test-container-versions\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\ncontainer1 = openstack.objectstorage.Container(\"container_1\",\n region=\"RegionOne\",\n name=\"tf-test-container-1\",\n metadata={\n \"test\": \"true\",\n },\n content_type=\"application/json\",\n versioning_legacy=openstack.objectstorage.ContainerVersioningLegacyArgs(\n type=\"versions\",\n location=\"tf-test-container-versions\",\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var container1 = new OpenStack.ObjectStorage.Container(\"container_1\", new()\n {\n Region = \"RegionOne\",\n Name = \"tf-test-container-1\",\n Metadata = \n {\n { \"test\", \"true\" },\n },\n ContentType = \"application/json\",\n VersioningLegacy = new OpenStack.ObjectStorage.Inputs.ContainerVersioningLegacyArgs\n {\n Type = \"versions\",\n Location = \"tf-test-container-versions\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/objectstorage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := objectstorage.NewContainer(ctx, \"container_1\", \u0026objectstorage.ContainerArgs{\n\t\t\tRegion: pulumi.String(\"RegionOne\"),\n\t\t\tName: pulumi.String(\"tf-test-container-1\"),\n\t\t\tMetadata: pulumi.Map{\n\t\t\t\t\"test\": pulumi.Any(\"true\"),\n\t\t\t},\n\t\t\tContentType: pulumi.String(\"application/json\"),\n\t\t\tVersioningLegacy: \u0026objectstorage.ContainerVersioningLegacyArgs{\n\t\t\t\tType: pulumi.String(\"versions\"),\n\t\t\t\tLocation: pulumi.String(\"tf-test-container-versions\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.objectstorage.Container;\nimport com.pulumi.openstack.objectstorage.ContainerArgs;\nimport com.pulumi.openstack.objectstorage.inputs.ContainerVersioningLegacyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var container1 = new Container(\"container1\", ContainerArgs.builder() \n .region(\"RegionOne\")\n .name(\"tf-test-container-1\")\n .metadata(Map.of(\"test\", \"true\"))\n .contentType(\"application/json\")\n .versioningLegacy(ContainerVersioningLegacyArgs.builder()\n .type(\"versions\")\n .location(\"tf-test-container-versions\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n container1:\n type: openstack:objectstorage:Container\n name: container_1\n properties:\n region: RegionOne\n name: tf-test-container-1\n metadata:\n test: 'true'\n contentType: application/json\n versioningLegacy:\n type: versions\n location: tf-test-container-versions\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Global Read Access\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\n// Requires that a user know the object name they are attempting to download\nconst container1 = new openstack.objectstorage.Container(\"container_1\", {\n region: \"RegionOne\",\n name: \"tf-test-container-1\",\n containerRead: \".r:*\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\n# Requires that a user know the object name they are attempting to download\ncontainer1 = openstack.objectstorage.Container(\"container_1\",\n region=\"RegionOne\",\n name=\"tf-test-container-1\",\n container_read=\".r:*\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n // Requires that a user know the object name they are attempting to download\n var container1 = new OpenStack.ObjectStorage.Container(\"container_1\", new()\n {\n Region = \"RegionOne\",\n Name = \"tf-test-container-1\",\n ContainerRead = \".r:*\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/objectstorage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Requires that a user know the object name they are attempting to download\n\t\t_, err := objectstorage.NewContainer(ctx, \"container_1\", \u0026objectstorage.ContainerArgs{\n\t\t\tRegion: pulumi.String(\"RegionOne\"),\n\t\t\tName: pulumi.String(\"tf-test-container-1\"),\n\t\t\tContainerRead: pulumi.String(\".r:*\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.objectstorage.Container;\nimport com.pulumi.openstack.objectstorage.ContainerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n // Requires that a user know the object name they are attempting to download\n var container1 = new Container(\"container1\", ContainerArgs.builder() \n .region(\"RegionOne\")\n .name(\"tf-test-container-1\")\n .containerRead(\".r:*\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n # Requires that a user know the object name they are attempting to download\n container1:\n type: openstack:objectstorage:Container\n name: container_1\n properties:\n region: RegionOne\n name: tf-test-container-1\n containerRead: .r:*\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Global Read and List Access\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\n// Any user can read any object, and list all objects in the container\nconst container1 = new openstack.objectstorage.Container(\"container_1\", {\n region: \"RegionOne\",\n name: \"tf-test-container-1\",\n containerRead: \".r:*,.rlistings\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\n# Any user can read any object, and list all objects in the container\ncontainer1 = openstack.objectstorage.Container(\"container_1\",\n region=\"RegionOne\",\n name=\"tf-test-container-1\",\n container_read=\".r:*,.rlistings\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n // Any user can read any object, and list all objects in the container\n var container1 = new OpenStack.ObjectStorage.Container(\"container_1\", new()\n {\n Region = \"RegionOne\",\n Name = \"tf-test-container-1\",\n ContainerRead = \".r:*,.rlistings\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/objectstorage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Any user can read any object, and list all objects in the container\n\t\t_, err := objectstorage.NewContainer(ctx, \"container_1\", \u0026objectstorage.ContainerArgs{\n\t\t\tRegion: pulumi.String(\"RegionOne\"),\n\t\t\tName: pulumi.String(\"tf-test-container-1\"),\n\t\t\tContainerRead: pulumi.String(\".r:*,.rlistings\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.objectstorage.Container;\nimport com.pulumi.openstack.objectstorage.ContainerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n // Any user can read any object, and list all objects in the container\n var container1 = new Container(\"container1\", ContainerArgs.builder() \n .region(\"RegionOne\")\n .name(\"tf-test-container-1\")\n .containerRead(\".r:*,.rlistings\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n # Any user can read any object, and list all objects in the container\n container1:\n type: openstack:objectstorage:Container\n name: container_1\n properties:\n region: RegionOne\n name: tf-test-container-1\n containerRead: .r:*,.rlistings\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Write-Only Access for a User\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst current = openstack.identity.getAuthScope({\n name: \"current\",\n});\n// The named user can only upload objects, not read objects or list the container\nconst container1 = new openstack.objectstorage.Container(\"container_1\", {\n region: \"RegionOne\",\n name: \"tf-test-container-1\",\n containerRead: `.r:-${username}`,\n containerWrite: current.then(current =\u003e `${current.projectId}:${username}`),\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\ncurrent = openstack.identity.get_auth_scope(name=\"current\")\n# The named user can only upload objects, not read objects or list the container\ncontainer1 = openstack.objectstorage.Container(\"container_1\",\n region=\"RegionOne\",\n name=\"tf-test-container-1\",\n container_read=f\".r:-{username}\",\n container_write=f\"{current.project_id}:{username}\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var current = OpenStack.Identity.GetAuthScope.Invoke(new()\n {\n Name = \"current\",\n });\n\n // The named user can only upload objects, not read objects or list the container\n var container1 = new OpenStack.ObjectStorage.Container(\"container_1\", new()\n {\n Region = \"RegionOne\",\n Name = \"tf-test-container-1\",\n ContainerRead = $\".r:-{username}\",\n ContainerWrite = $\"{current.Apply(getAuthScopeResult =\u003e getAuthScopeResult.ProjectId)}:{username}\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/identity\"\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/objectstorage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := identity.GetAuthScope(ctx, \u0026identity.GetAuthScopeArgs{\n\t\t\tName: \"current\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// The named user can only upload objects, not read objects or list the container\n\t\t_, err = objectstorage.NewContainer(ctx, \"container_1\", \u0026objectstorage.ContainerArgs{\n\t\t\tRegion: pulumi.String(\"RegionOne\"),\n\t\t\tName: pulumi.String(\"tf-test-container-1\"),\n\t\t\tContainerRead: pulumi.String(fmt.Sprintf(\".r:-%v\", username)),\n\t\t\tContainerWrite: pulumi.String(fmt.Sprintf(\"%v:%v\", current.ProjectId, username)),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.identity.IdentityFunctions;\nimport com.pulumi.openstack.identity.inputs.GetAuthScopeArgs;\nimport com.pulumi.openstack.objectstorage.Container;\nimport com.pulumi.openstack.objectstorage.ContainerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var current = IdentityFunctions.getAuthScope(GetAuthScopeArgs.builder()\n .name(\"current\")\n .build());\n\n // The named user can only upload objects, not read objects or list the container\n var container1 = new Container(\"container1\", ContainerArgs.builder() \n .region(\"RegionOne\")\n .name(\"tf-test-container-1\")\n .containerRead(String.format(\".r:-%s\", username))\n .containerWrite(String.format(\"%s:%s\", current.applyValue(getAuthScopeResult -\u003e getAuthScopeResult.projectId()),username))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n # The named user can only upload objects, not read objects or list the container\n container1:\n type: openstack:objectstorage:Container\n name: container_1\n properties:\n region: RegionOne\n name: tf-test-container-1\n containerRead: .r:-${username}\n containerWrite: ${current.projectId}:${username}\nvariables:\n current:\n fn::invoke:\n Function: openstack:identity:getAuthScope\n Arguments:\n name: current\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThis resource can be imported by specifying the name of the container:\n\nSome attributes can't be imported :\n* `force_destroy`\n* `content_type`\n* `metadata`\n* `container_sync_to`\n* `container_sync_key`\n\nSo you'll have to `pulumi preview` and `pulumi up` after the import to fix those missing attributes.\n\n```sh\n$ pulumi import openstack:objectstorage/container:Container container_1 container_name\n```\n", + "description": "Manages a V1 container resource within OpenStack.\n\n## Example Usage\n\n### Basic Container\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst container1 = new openstack.objectstorage.Container(\"container_1\", {\n region: \"RegionOne\",\n name: \"tf-test-container-1\",\n metadata: {\n test: \"true\",\n },\n contentType: \"application/json\",\n versioning: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\ncontainer1 = openstack.objectstorage.Container(\"container_1\",\n region=\"RegionOne\",\n name=\"tf-test-container-1\",\n metadata={\n \"test\": \"true\",\n },\n content_type=\"application/json\",\n versioning=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var container1 = new OpenStack.ObjectStorage.Container(\"container_1\", new()\n {\n Region = \"RegionOne\",\n Name = \"tf-test-container-1\",\n Metadata = \n {\n { \"test\", \"true\" },\n },\n ContentType = \"application/json\",\n Versioning = true,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/objectstorage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := objectstorage.NewContainer(ctx, \"container_1\", \u0026objectstorage.ContainerArgs{\n\t\t\tRegion: pulumi.String(\"RegionOne\"),\n\t\t\tName: pulumi.String(\"tf-test-container-1\"),\n\t\t\tMetadata: pulumi.Map{\n\t\t\t\t\"test\": pulumi.Any(\"true\"),\n\t\t\t},\n\t\t\tContentType: pulumi.String(\"application/json\"),\n\t\t\tVersioning: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.objectstorage.Container;\nimport com.pulumi.openstack.objectstorage.ContainerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var container1 = new Container(\"container1\", ContainerArgs.builder() \n .region(\"RegionOne\")\n .name(\"tf-test-container-1\")\n .metadata(Map.of(\"test\", \"true\"))\n .contentType(\"application/json\")\n .versioning(true)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n container1:\n type: openstack:objectstorage:Container\n name: container_1\n properties:\n region: RegionOne\n name: tf-test-container-1\n metadata:\n test: 'true'\n contentType: application/json\n versioning: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Basic Container with legacy versioning\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst container1 = new openstack.objectstorage.Container(\"container_1\", {\n region: \"RegionOne\",\n name: \"tf-test-container-1\",\n metadata: {\n test: \"true\",\n },\n contentType: \"application/json\",\n versioningLegacy: {\n type: \"versions\",\n location: \"tf-test-container-versions\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\ncontainer1 = openstack.objectstorage.Container(\"container_1\",\n region=\"RegionOne\",\n name=\"tf-test-container-1\",\n metadata={\n \"test\": \"true\",\n },\n content_type=\"application/json\",\n versioning_legacy=openstack.objectstorage.ContainerVersioningLegacyArgs(\n type=\"versions\",\n location=\"tf-test-container-versions\",\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var container1 = new OpenStack.ObjectStorage.Container(\"container_1\", new()\n {\n Region = \"RegionOne\",\n Name = \"tf-test-container-1\",\n Metadata = \n {\n { \"test\", \"true\" },\n },\n ContentType = \"application/json\",\n VersioningLegacy = new OpenStack.ObjectStorage.Inputs.ContainerVersioningLegacyArgs\n {\n Type = \"versions\",\n Location = \"tf-test-container-versions\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/objectstorage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := objectstorage.NewContainer(ctx, \"container_1\", \u0026objectstorage.ContainerArgs{\n\t\t\tRegion: pulumi.String(\"RegionOne\"),\n\t\t\tName: pulumi.String(\"tf-test-container-1\"),\n\t\t\tMetadata: pulumi.Map{\n\t\t\t\t\"test\": pulumi.Any(\"true\"),\n\t\t\t},\n\t\t\tContentType: pulumi.String(\"application/json\"),\n\t\t\tVersioningLegacy: \u0026objectstorage.ContainerVersioningLegacyArgs{\n\t\t\t\tType: pulumi.String(\"versions\"),\n\t\t\t\tLocation: pulumi.String(\"tf-test-container-versions\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.objectstorage.Container;\nimport com.pulumi.openstack.objectstorage.ContainerArgs;\nimport com.pulumi.openstack.objectstorage.inputs.ContainerVersioningLegacyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var container1 = new Container(\"container1\", ContainerArgs.builder() \n .region(\"RegionOne\")\n .name(\"tf-test-container-1\")\n .metadata(Map.of(\"test\", \"true\"))\n .contentType(\"application/json\")\n .versioningLegacy(ContainerVersioningLegacyArgs.builder()\n .type(\"versions\")\n .location(\"tf-test-container-versions\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n container1:\n type: openstack:objectstorage:Container\n name: container_1\n properties:\n region: RegionOne\n name: tf-test-container-1\n metadata:\n test: 'true'\n contentType: application/json\n versioningLegacy:\n type: versions\n location: tf-test-container-versions\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Global Read Access\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\n// Requires that a user know the object name they are attempting to download\nconst container1 = new openstack.objectstorage.Container(\"container_1\", {\n region: \"RegionOne\",\n name: \"tf-test-container-1\",\n containerRead: \".r:*\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\n# Requires that a user know the object name they are attempting to download\ncontainer1 = openstack.objectstorage.Container(\"container_1\",\n region=\"RegionOne\",\n name=\"tf-test-container-1\",\n container_read=\".r:*\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n // Requires that a user know the object name they are attempting to download\n var container1 = new OpenStack.ObjectStorage.Container(\"container_1\", new()\n {\n Region = \"RegionOne\",\n Name = \"tf-test-container-1\",\n ContainerRead = \".r:*\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/objectstorage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Requires that a user know the object name they are attempting to download\n\t\t_, err := objectstorage.NewContainer(ctx, \"container_1\", \u0026objectstorage.ContainerArgs{\n\t\t\tRegion: pulumi.String(\"RegionOne\"),\n\t\t\tName: pulumi.String(\"tf-test-container-1\"),\n\t\t\tContainerRead: pulumi.String(\".r:*\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.objectstorage.Container;\nimport com.pulumi.openstack.objectstorage.ContainerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n // Requires that a user know the object name they are attempting to download\n var container1 = new Container(\"container1\", ContainerArgs.builder() \n .region(\"RegionOne\")\n .name(\"tf-test-container-1\")\n .containerRead(\".r:*\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n # Requires that a user know the object name they are attempting to download\n container1:\n type: openstack:objectstorage:Container\n name: container_1\n properties:\n region: RegionOne\n name: tf-test-container-1\n containerRead: .r:*\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Global Read and List Access\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\n// Any user can read any object, and list all objects in the container\nconst container1 = new openstack.objectstorage.Container(\"container_1\", {\n region: \"RegionOne\",\n name: \"tf-test-container-1\",\n containerRead: \".r:*,.rlistings\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\n# Any user can read any object, and list all objects in the container\ncontainer1 = openstack.objectstorage.Container(\"container_1\",\n region=\"RegionOne\",\n name=\"tf-test-container-1\",\n container_read=\".r:*,.rlistings\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n // Any user can read any object, and list all objects in the container\n var container1 = new OpenStack.ObjectStorage.Container(\"container_1\", new()\n {\n Region = \"RegionOne\",\n Name = \"tf-test-container-1\",\n ContainerRead = \".r:*,.rlistings\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/objectstorage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Any user can read any object, and list all objects in the container\n\t\t_, err := objectstorage.NewContainer(ctx, \"container_1\", \u0026objectstorage.ContainerArgs{\n\t\t\tRegion: pulumi.String(\"RegionOne\"),\n\t\t\tName: pulumi.String(\"tf-test-container-1\"),\n\t\t\tContainerRead: pulumi.String(\".r:*,.rlistings\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.objectstorage.Container;\nimport com.pulumi.openstack.objectstorage.ContainerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n // Any user can read any object, and list all objects in the container\n var container1 = new Container(\"container1\", ContainerArgs.builder() \n .region(\"RegionOne\")\n .name(\"tf-test-container-1\")\n .containerRead(\".r:*,.rlistings\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n # Any user can read any object, and list all objects in the container\n container1:\n type: openstack:objectstorage:Container\n name: container_1\n properties:\n region: RegionOne\n name: tf-test-container-1\n containerRead: .r:*,.rlistings\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Write-Only Access for a User\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst current = openstack.identity.getAuthScope({\n name: \"current\",\n});\n// The named user can only upload objects, not read objects or list the container\nconst container1 = new openstack.objectstorage.Container(\"container_1\", {\n region: \"RegionOne\",\n name: \"tf-test-container-1\",\n containerRead: `.r:-${username}`,\n containerWrite: current.then(current =\u003e `${current.projectId}:${username}`),\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\ncurrent = openstack.identity.get_auth_scope(name=\"current\")\n# The named user can only upload objects, not read objects or list the container\ncontainer1 = openstack.objectstorage.Container(\"container_1\",\n region=\"RegionOne\",\n name=\"tf-test-container-1\",\n container_read=f\".r:-{username}\",\n container_write=f\"{current.project_id}:{username}\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var current = OpenStack.Identity.GetAuthScope.Invoke(new()\n {\n Name = \"current\",\n });\n\n // The named user can only upload objects, not read objects or list the container\n var container1 = new OpenStack.ObjectStorage.Container(\"container_1\", new()\n {\n Region = \"RegionOne\",\n Name = \"tf-test-container-1\",\n ContainerRead = $\".r:-{username}\",\n ContainerWrite = $\"{current.Apply(getAuthScopeResult =\u003e getAuthScopeResult.ProjectId)}:{username}\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/identity\"\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/objectstorage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := identity.GetAuthScope(ctx, \u0026identity.GetAuthScopeArgs{\n\t\t\tName: \"current\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// The named user can only upload objects, not read objects or list the container\n\t\t_, err = objectstorage.NewContainer(ctx, \"container_1\", \u0026objectstorage.ContainerArgs{\n\t\t\tRegion: pulumi.String(\"RegionOne\"),\n\t\t\tName: pulumi.String(\"tf-test-container-1\"),\n\t\t\tContainerRead: pulumi.String(fmt.Sprintf(\".r:-%v\", username)),\n\t\t\tContainerWrite: pulumi.String(fmt.Sprintf(\"%v:%v\", current.ProjectId, username)),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.identity.IdentityFunctions;\nimport com.pulumi.openstack.identity.inputs.GetAuthScopeArgs;\nimport com.pulumi.openstack.objectstorage.Container;\nimport com.pulumi.openstack.objectstorage.ContainerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var current = IdentityFunctions.getAuthScope(GetAuthScopeArgs.builder()\n .name(\"current\")\n .build());\n\n // The named user can only upload objects, not read objects or list the container\n var container1 = new Container(\"container1\", ContainerArgs.builder() \n .region(\"RegionOne\")\n .name(\"tf-test-container-1\")\n .containerRead(String.format(\".r:-%s\", username))\n .containerWrite(String.format(\"%s:%s\", current.applyValue(getAuthScopeResult -\u003e getAuthScopeResult.projectId()),username))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n # The named user can only upload objects, not read objects or list the container\n container1:\n type: openstack:objectstorage:Container\n name: container_1\n properties:\n region: RegionOne\n name: tf-test-container-1\n containerRead: .r:-${username}\n containerWrite: ${current.projectId}:${username}\nvariables:\n current:\n fn::invoke:\n Function: openstack:identity:getAuthScope\n Arguments:\n name: current\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThis resource can be imported by specifying the name of the container:\n\nSome attributes can't be imported :\n* `force_destroy`\n* `content_type`\n* `metadata`\n* `container_sync_to`\n* `container_sync_key`\n\nSo you'll have to `pulumi preview` and `pulumi up` after the import to fix those missing attributes.\n\n```sh\n$ pulumi import openstack:objectstorage/container:Container container_1 container_name\n```\n", "properties": { "containerRead": { "type": "string", @@ -17295,7 +17057,7 @@ } }, "openstack:objectstorage/containerObject:ContainerObject": { - "description": "Manages a V1 container object resource within OpenStack.\n\n## Example Usage\n\n### Example with simple content\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst container1 = new openstack.objectstorage.Container(\"container_1\", {\n region: \"RegionOne\",\n name: \"tf-test-container-1\",\n metadata: [{\n test: \"true\",\n }],\n contentType: \"application/json\",\n});\nconst doc1 = new openstack.objectstorage.ContainerObject(\"doc_1\", {\n region: \"RegionOne\",\n containerName: container1.name,\n name: \"test/default.json\",\n metadata: [{\n test: \"true\",\n }],\n contentType: \"application/json\",\n content: ` {\n \"foo\" : \"bar\"\n }\n`,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\ncontainer1 = openstack.objectstorage.Container(\"container_1\",\n region=\"RegionOne\",\n name=\"tf-test-container-1\",\n metadata=[{\n \"test\": \"true\",\n }],\n content_type=\"application/json\")\ndoc1 = openstack.objectstorage.ContainerObject(\"doc_1\",\n region=\"RegionOne\",\n container_name=container1.name,\n name=\"test/default.json\",\n metadata=[{\n \"test\": \"true\",\n }],\n content_type=\"application/json\",\n content=\"\"\" {\n \"foo\" : \"bar\"\n }\n\"\"\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var container1 = new OpenStack.ObjectStorage.Container(\"container_1\", new()\n {\n Region = \"RegionOne\",\n Name = \"tf-test-container-1\",\n Metadata = new[]\n {\n new Dictionary\u003cstring, object?\u003e\n {\n [\"test\"] = \"true\",\n },\n },\n ContentType = \"application/json\",\n });\n\n var doc1 = new OpenStack.ObjectStorage.ContainerObject(\"doc_1\", new()\n {\n Region = \"RegionOne\",\n ContainerName = container1.Name,\n Name = \"test/default.json\",\n Metadata = new[]\n {\n new Dictionary\u003cstring, object?\u003e\n {\n [\"test\"] = \"true\",\n },\n },\n ContentType = \"application/json\",\n Content = @\" {\n \"\"foo\"\" : \"\"bar\"\"\n }\n\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/objectstorage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcontainer1, err := objectstorage.NewContainer(ctx, \"container_1\", \u0026objectstorage.ContainerArgs{\n\t\t\tRegion: pulumi.String(\"RegionOne\"),\n\t\t\tName: pulumi.String(\"tf-test-container-1\"),\n\t\t\tMetadata: pulumi.Map{\n\t\t\t\tpulumi.Any(map[string]interface{}{\n\t\t\t\t\t\"test\": \"true\",\n\t\t\t\t}),\n\t\t\t},\n\t\t\tContentType: pulumi.String(\"application/json\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = objectstorage.NewContainerObject(ctx, \"doc_1\", \u0026objectstorage.ContainerObjectArgs{\n\t\t\tRegion: pulumi.String(\"RegionOne\"),\n\t\t\tContainerName: container1.Name,\n\t\t\tName: pulumi.String(\"test/default.json\"),\n\t\t\tMetadata: pulumi.Map{\n\t\t\t\tpulumi.Any(map[string]interface{}{\n\t\t\t\t\t\"test\": \"true\",\n\t\t\t\t}),\n\t\t\t},\n\t\t\tContentType: pulumi.String(\"application/json\"),\n\t\t\tContent: pulumi.String(\" {\\n \\\"foo\\\" : \\\"bar\\\"\\n }\\n\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.objectstorage.Container;\nimport com.pulumi.openstack.objectstorage.ContainerArgs;\nimport com.pulumi.openstack.objectstorage.ContainerObject;\nimport com.pulumi.openstack.objectstorage.ContainerObjectArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var container1 = new Container(\"container1\", ContainerArgs.builder() \n .region(\"RegionOne\")\n .name(\"tf-test-container-1\")\n .metadata(Map.of(\"test\", \"true\"))\n .contentType(\"application/json\")\n .build());\n\n var doc1 = new ContainerObject(\"doc1\", ContainerObjectArgs.builder() \n .region(\"RegionOne\")\n .containerName(container1.name())\n .name(\"test/default.json\")\n .metadata(Map.of(\"test\", \"true\"))\n .contentType(\"application/json\")\n .content(\"\"\"\n {\n \"foo\" : \"bar\"\n }\n \"\"\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n container1:\n type: openstack:objectstorage:Container\n name: container_1\n properties:\n region: RegionOne\n name: tf-test-container-1\n metadata:\n - test: 'true'\n contentType: application/json\n doc1:\n type: openstack:objectstorage:ContainerObject\n name: doc_1\n properties:\n region: RegionOne\n containerName: ${container1.name}\n name: test/default.json\n metadata:\n - test: 'true'\n contentType: application/json\n content: |2\n {\n \"foo\" : \"bar\"\n }\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Example with content from file\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst container1 = new openstack.objectstorage.Container(\"container_1\", {\n region: \"RegionOne\",\n name: \"tf-test-container-1\",\n metadata: [{\n test: \"true\",\n }],\n contentType: \"application/json\",\n});\nconst doc1 = new openstack.objectstorage.ContainerObject(\"doc_1\", {\n region: \"RegionOne\",\n containerName: container1.name,\n name: \"test/default.json\",\n metadata: [{\n test: \"true\",\n }],\n contentType: \"application/json\",\n source: \"./default.json\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\ncontainer1 = openstack.objectstorage.Container(\"container_1\",\n region=\"RegionOne\",\n name=\"tf-test-container-1\",\n metadata=[{\n \"test\": \"true\",\n }],\n content_type=\"application/json\")\ndoc1 = openstack.objectstorage.ContainerObject(\"doc_1\",\n region=\"RegionOne\",\n container_name=container1.name,\n name=\"test/default.json\",\n metadata=[{\n \"test\": \"true\",\n }],\n content_type=\"application/json\",\n source=\"./default.json\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var container1 = new OpenStack.ObjectStorage.Container(\"container_1\", new()\n {\n Region = \"RegionOne\",\n Name = \"tf-test-container-1\",\n Metadata = new[]\n {\n new Dictionary\u003cstring, object?\u003e\n {\n [\"test\"] = \"true\",\n },\n },\n ContentType = \"application/json\",\n });\n\n var doc1 = new OpenStack.ObjectStorage.ContainerObject(\"doc_1\", new()\n {\n Region = \"RegionOne\",\n ContainerName = container1.Name,\n Name = \"test/default.json\",\n Metadata = new[]\n {\n new Dictionary\u003cstring, object?\u003e\n {\n [\"test\"] = \"true\",\n },\n },\n ContentType = \"application/json\",\n Source = \"./default.json\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/objectstorage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcontainer1, err := objectstorage.NewContainer(ctx, \"container_1\", \u0026objectstorage.ContainerArgs{\n\t\t\tRegion: pulumi.String(\"RegionOne\"),\n\t\t\tName: pulumi.String(\"tf-test-container-1\"),\n\t\t\tMetadata: pulumi.Map{\n\t\t\t\tpulumi.Any(map[string]interface{}{\n\t\t\t\t\t\"test\": \"true\",\n\t\t\t\t}),\n\t\t\t},\n\t\t\tContentType: pulumi.String(\"application/json\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = objectstorage.NewContainerObject(ctx, \"doc_1\", \u0026objectstorage.ContainerObjectArgs{\n\t\t\tRegion: pulumi.String(\"RegionOne\"),\n\t\t\tContainerName: container1.Name,\n\t\t\tName: pulumi.String(\"test/default.json\"),\n\t\t\tMetadata: pulumi.Map{\n\t\t\t\tpulumi.Any(map[string]interface{}{\n\t\t\t\t\t\"test\": \"true\",\n\t\t\t\t}),\n\t\t\t},\n\t\t\tContentType: pulumi.String(\"application/json\"),\n\t\t\tSource: pulumi.String(\"./default.json\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.objectstorage.Container;\nimport com.pulumi.openstack.objectstorage.ContainerArgs;\nimport com.pulumi.openstack.objectstorage.ContainerObject;\nimport com.pulumi.openstack.objectstorage.ContainerObjectArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var container1 = new Container(\"container1\", ContainerArgs.builder() \n .region(\"RegionOne\")\n .name(\"tf-test-container-1\")\n .metadata(Map.of(\"test\", \"true\"))\n .contentType(\"application/json\")\n .build());\n\n var doc1 = new ContainerObject(\"doc1\", ContainerObjectArgs.builder() \n .region(\"RegionOne\")\n .containerName(container1.name())\n .name(\"test/default.json\")\n .metadata(Map.of(\"test\", \"true\"))\n .contentType(\"application/json\")\n .source(\"./default.json\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n container1:\n type: openstack:objectstorage:Container\n name: container_1\n properties:\n region: RegionOne\n name: tf-test-container-1\n metadata:\n - test: 'true'\n contentType: application/json\n doc1:\n type: openstack:objectstorage:ContainerObject\n name: doc_1\n properties:\n region: RegionOne\n containerName: ${container1.name}\n name: test/default.json\n metadata:\n - test: 'true'\n contentType: application/json\n source: ./default.json\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Manages a V1 container object resource within OpenStack.\n\n## Example Usage\n\n### Example with simple content\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst container1 = new openstack.objectstorage.Container(\"container_1\", {\n region: \"RegionOne\",\n name: \"tf-test-container-1\",\n metadata: [{\n test: \"true\",\n }],\n contentType: \"application/json\",\n});\nconst doc1 = new openstack.objectstorage.ContainerObject(\"doc_1\", {\n region: \"RegionOne\",\n containerName: container1.name,\n name: \"test/default.json\",\n metadata: [{\n test: \"true\",\n }],\n contentType: \"application/json\",\n content: ` {\n \"foo\" : \"bar\"\n }\n`,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\ncontainer1 = openstack.objectstorage.Container(\"container_1\",\n region=\"RegionOne\",\n name=\"tf-test-container-1\",\n metadata=[{\n \"test\": \"true\",\n }],\n content_type=\"application/json\")\ndoc1 = openstack.objectstorage.ContainerObject(\"doc_1\",\n region=\"RegionOne\",\n container_name=container1.name,\n name=\"test/default.json\",\n metadata=[{\n \"test\": \"true\",\n }],\n content_type=\"application/json\",\n content=\"\"\" {\n \"foo\" : \"bar\"\n }\n\"\"\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var container1 = new OpenStack.ObjectStorage.Container(\"container_1\", new()\n {\n Region = \"RegionOne\",\n Name = \"tf-test-container-1\",\n Metadata = new[]\n {\n new Dictionary\u003cstring, object?\u003e\n {\n [\"test\"] = \"true\",\n },\n },\n ContentType = \"application/json\",\n });\n\n var doc1 = new OpenStack.ObjectStorage.ContainerObject(\"doc_1\", new()\n {\n Region = \"RegionOne\",\n ContainerName = container1.Name,\n Name = \"test/default.json\",\n Metadata = new[]\n {\n new Dictionary\u003cstring, object?\u003e\n {\n [\"test\"] = \"true\",\n },\n },\n ContentType = \"application/json\",\n Content = @\" {\n \"\"foo\"\" : \"\"bar\"\"\n }\n\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/objectstorage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcontainer1, err := objectstorage.NewContainer(ctx, \"container_1\", \u0026objectstorage.ContainerArgs{\n\t\t\tRegion: pulumi.String(\"RegionOne\"),\n\t\t\tName: pulumi.String(\"tf-test-container-1\"),\n\t\t\tMetadata: pulumi.Map{\n\t\t\t\tpulumi.Any(map[string]interface{}{\n\t\t\t\t\t\"test\": \"true\",\n\t\t\t\t}),\n\t\t\t},\n\t\t\tContentType: pulumi.String(\"application/json\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = objectstorage.NewContainerObject(ctx, \"doc_1\", \u0026objectstorage.ContainerObjectArgs{\n\t\t\tRegion: pulumi.String(\"RegionOne\"),\n\t\t\tContainerName: container1.Name,\n\t\t\tName: pulumi.String(\"test/default.json\"),\n\t\t\tMetadata: pulumi.Map{\n\t\t\t\tpulumi.Any(map[string]interface{}{\n\t\t\t\t\t\"test\": \"true\",\n\t\t\t\t}),\n\t\t\t},\n\t\t\tContentType: pulumi.String(\"application/json\"),\n\t\t\tContent: pulumi.String(\" {\\n \\\"foo\\\" : \\\"bar\\\"\\n }\\n\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.objectstorage.Container;\nimport com.pulumi.openstack.objectstorage.ContainerArgs;\nimport com.pulumi.openstack.objectstorage.ContainerObject;\nimport com.pulumi.openstack.objectstorage.ContainerObjectArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var container1 = new Container(\"container1\", ContainerArgs.builder() \n .region(\"RegionOne\")\n .name(\"tf-test-container-1\")\n .metadata(Map.of(\"test\", \"true\"))\n .contentType(\"application/json\")\n .build());\n\n var doc1 = new ContainerObject(\"doc1\", ContainerObjectArgs.builder() \n .region(\"RegionOne\")\n .containerName(container1.name())\n .name(\"test/default.json\")\n .metadata(Map.of(\"test\", \"true\"))\n .contentType(\"application/json\")\n .content(\"\"\"\n {\n \"foo\" : \"bar\"\n }\n \"\"\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n container1:\n type: openstack:objectstorage:Container\n name: container_1\n properties:\n region: RegionOne\n name: tf-test-container-1\n metadata:\n - test: 'true'\n contentType: application/json\n doc1:\n type: openstack:objectstorage:ContainerObject\n name: doc_1\n properties:\n region: RegionOne\n containerName: ${container1.name}\n name: test/default.json\n metadata:\n - test: 'true'\n contentType: application/json\n content: |2\n {\n \"foo\" : \"bar\"\n }\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Example with content from file\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst container1 = new openstack.objectstorage.Container(\"container_1\", {\n region: \"RegionOne\",\n name: \"tf-test-container-1\",\n metadata: [{\n test: \"true\",\n }],\n contentType: \"application/json\",\n});\nconst doc1 = new openstack.objectstorage.ContainerObject(\"doc_1\", {\n region: \"RegionOne\",\n containerName: container1.name,\n name: \"test/default.json\",\n metadata: [{\n test: \"true\",\n }],\n contentType: \"application/json\",\n source: \"./default.json\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\ncontainer1 = openstack.objectstorage.Container(\"container_1\",\n region=\"RegionOne\",\n name=\"tf-test-container-1\",\n metadata=[{\n \"test\": \"true\",\n }],\n content_type=\"application/json\")\ndoc1 = openstack.objectstorage.ContainerObject(\"doc_1\",\n region=\"RegionOne\",\n container_name=container1.name,\n name=\"test/default.json\",\n metadata=[{\n \"test\": \"true\",\n }],\n content_type=\"application/json\",\n source=\"./default.json\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var container1 = new OpenStack.ObjectStorage.Container(\"container_1\", new()\n {\n Region = \"RegionOne\",\n Name = \"tf-test-container-1\",\n Metadata = new[]\n {\n new Dictionary\u003cstring, object?\u003e\n {\n [\"test\"] = \"true\",\n },\n },\n ContentType = \"application/json\",\n });\n\n var doc1 = new OpenStack.ObjectStorage.ContainerObject(\"doc_1\", new()\n {\n Region = \"RegionOne\",\n ContainerName = container1.Name,\n Name = \"test/default.json\",\n Metadata = new[]\n {\n new Dictionary\u003cstring, object?\u003e\n {\n [\"test\"] = \"true\",\n },\n },\n ContentType = \"application/json\",\n Source = \"./default.json\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/objectstorage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcontainer1, err := objectstorage.NewContainer(ctx, \"container_1\", \u0026objectstorage.ContainerArgs{\n\t\t\tRegion: pulumi.String(\"RegionOne\"),\n\t\t\tName: pulumi.String(\"tf-test-container-1\"),\n\t\t\tMetadata: pulumi.Map{\n\t\t\t\tpulumi.Any(map[string]interface{}{\n\t\t\t\t\t\"test\": \"true\",\n\t\t\t\t}),\n\t\t\t},\n\t\t\tContentType: pulumi.String(\"application/json\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = objectstorage.NewContainerObject(ctx, \"doc_1\", \u0026objectstorage.ContainerObjectArgs{\n\t\t\tRegion: pulumi.String(\"RegionOne\"),\n\t\t\tContainerName: container1.Name,\n\t\t\tName: pulumi.String(\"test/default.json\"),\n\t\t\tMetadata: pulumi.Map{\n\t\t\t\tpulumi.Any(map[string]interface{}{\n\t\t\t\t\t\"test\": \"true\",\n\t\t\t\t}),\n\t\t\t},\n\t\t\tContentType: pulumi.String(\"application/json\"),\n\t\t\tSource: pulumi.String(\"./default.json\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.objectstorage.Container;\nimport com.pulumi.openstack.objectstorage.ContainerArgs;\nimport com.pulumi.openstack.objectstorage.ContainerObject;\nimport com.pulumi.openstack.objectstorage.ContainerObjectArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var container1 = new Container(\"container1\", ContainerArgs.builder() \n .region(\"RegionOne\")\n .name(\"tf-test-container-1\")\n .metadata(Map.of(\"test\", \"true\"))\n .contentType(\"application/json\")\n .build());\n\n var doc1 = new ContainerObject(\"doc1\", ContainerObjectArgs.builder() \n .region(\"RegionOne\")\n .containerName(container1.name())\n .name(\"test/default.json\")\n .metadata(Map.of(\"test\", \"true\"))\n .contentType(\"application/json\")\n .source(\"./default.json\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n container1:\n type: openstack:objectstorage:Container\n name: container_1\n properties:\n region: RegionOne\n name: tf-test-container-1\n metadata:\n - test: 'true'\n contentType: application/json\n doc1:\n type: openstack:objectstorage:ContainerObject\n name: doc_1\n properties:\n region: RegionOne\n containerName: ${container1.name}\n name: test/default.json\n metadata:\n - test: 'true'\n contentType: application/json\n source: ./default.json\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "properties": { "containerName": { "type": "string", @@ -17550,7 +17312,7 @@ } }, "openstack:objectstorage/tempUrl:TempUrl": { - "description": "Use this resource to generate an OpenStack Object Storage temporary URL.\n\nThe temporary URL will be valid for as long as TTL is set to (in seconds).\nOnce the URL has expired, it will no longer be valid, but the resource\nwill remain in place. If you wish to automatically regenerate a URL, set\nthe `regenerate` argument to `true`. This will create a new resource with\na new ID and URL.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst container1 = new openstack.objectstorage.Container(\"container_1\", {\n name: \"test\",\n metadata: {\n \"Temp-URL-Key\": \"testkey\",\n },\n});\nconst object1 = new openstack.objectstorage.ContainerObject(\"object_1\", {\n containerName: container1.name,\n name: \"test\",\n content: \"Hello, world!\",\n});\nconst objTempurl = new openstack.objectstorage.TempUrl(\"obj_tempurl\", {\n container: container1.name,\n object: object1.name,\n method: \"post\",\n ttl: 20,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\ncontainer1 = openstack.objectstorage.Container(\"container_1\",\n name=\"test\",\n metadata={\n \"Temp-URL-Key\": \"testkey\",\n })\nobject1 = openstack.objectstorage.ContainerObject(\"object_1\",\n container_name=container1.name,\n name=\"test\",\n content=\"Hello, world!\")\nobj_tempurl = openstack.objectstorage.TempUrl(\"obj_tempurl\",\n container=container1.name,\n object=object1.name,\n method=\"post\",\n ttl=20)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var container1 = new OpenStack.ObjectStorage.Container(\"container_1\", new()\n {\n Name = \"test\",\n Metadata = \n {\n { \"Temp-URL-Key\", \"testkey\" },\n },\n });\n\n var object1 = new OpenStack.ObjectStorage.ContainerObject(\"object_1\", new()\n {\n ContainerName = container1.Name,\n Name = \"test\",\n Content = \"Hello, world!\",\n });\n\n var objTempurl = new OpenStack.ObjectStorage.TempUrl(\"obj_tempurl\", new()\n {\n Container = container1.Name,\n Object = object1.Name,\n Method = \"post\",\n Ttl = 20,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/objectstorage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcontainer1, err := objectstorage.NewContainer(ctx, \"container_1\", \u0026objectstorage.ContainerArgs{\n\t\t\tName: pulumi.String(\"test\"),\n\t\t\tMetadata: pulumi.Map{\n\t\t\t\t\"Temp-URL-Key\": pulumi.Any(\"testkey\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tobject1, err := objectstorage.NewContainerObject(ctx, \"object_1\", \u0026objectstorage.ContainerObjectArgs{\n\t\t\tContainerName: container1.Name,\n\t\t\tName: pulumi.String(\"test\"),\n\t\t\tContent: pulumi.String(\"Hello, world!\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = objectstorage.NewTempUrl(ctx, \"obj_tempurl\", \u0026objectstorage.TempUrlArgs{\n\t\t\tContainer: container1.Name,\n\t\t\tObject: object1.Name,\n\t\t\tMethod: pulumi.String(\"post\"),\n\t\t\tTtl: pulumi.Int(20),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.objectstorage.Container;\nimport com.pulumi.openstack.objectstorage.ContainerArgs;\nimport com.pulumi.openstack.objectstorage.ContainerObject;\nimport com.pulumi.openstack.objectstorage.ContainerObjectArgs;\nimport com.pulumi.openstack.objectstorage.TempUrl;\nimport com.pulumi.openstack.objectstorage.TempUrlArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var container1 = new Container(\"container1\", ContainerArgs.builder() \n .name(\"test\")\n .metadata(Map.of(\"Temp-URL-Key\", \"testkey\"))\n .build());\n\n var object1 = new ContainerObject(\"object1\", ContainerObjectArgs.builder() \n .containerName(container1.name())\n .name(\"test\")\n .content(\"Hello, world!\")\n .build());\n\n var objTempurl = new TempUrl(\"objTempurl\", TempUrlArgs.builder() \n .container(container1.name())\n .object(object1.name())\n .method(\"post\")\n .ttl(20)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n container1:\n type: openstack:objectstorage:Container\n name: container_1\n properties:\n name: test\n metadata:\n Temp-URL-Key: testkey\n object1:\n type: openstack:objectstorage:ContainerObject\n name: object_1\n properties:\n containerName: ${container1.name}\n name: test\n content: Hello, world!\n objTempurl:\n type: openstack:objectstorage:TempUrl\n name: obj_tempurl\n properties:\n container: ${container1.name}\n object: ${object1.name}\n method: post\n ttl: 20\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Use this resource to generate an OpenStack Object Storage temporary URL.\n\nThe temporary URL will be valid for as long as TTL is set to (in seconds).\nOnce the URL has expired, it will no longer be valid, but the resource\nwill remain in place. If you wish to automatically regenerate a URL, set\nthe `regenerate` argument to `true`. This will create a new resource with\na new ID and URL.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst container1 = new openstack.objectstorage.Container(\"container_1\", {\n name: \"test\",\n metadata: {\n \"Temp-URL-Key\": \"testkey\",\n },\n});\nconst object1 = new openstack.objectstorage.ContainerObject(\"object_1\", {\n containerName: container1.name,\n name: \"test\",\n content: \"Hello, world!\",\n});\nconst objTempurl = new openstack.objectstorage.TempUrl(\"obj_tempurl\", {\n container: container1.name,\n object: object1.name,\n method: \"post\",\n ttl: 20,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\ncontainer1 = openstack.objectstorage.Container(\"container_1\",\n name=\"test\",\n metadata={\n \"Temp-URL-Key\": \"testkey\",\n })\nobject1 = openstack.objectstorage.ContainerObject(\"object_1\",\n container_name=container1.name,\n name=\"test\",\n content=\"Hello, world!\")\nobj_tempurl = openstack.objectstorage.TempUrl(\"obj_tempurl\",\n container=container1.name,\n object=object1.name,\n method=\"post\",\n ttl=20)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var container1 = new OpenStack.ObjectStorage.Container(\"container_1\", new()\n {\n Name = \"test\",\n Metadata = \n {\n { \"Temp-URL-Key\", \"testkey\" },\n },\n });\n\n var object1 = new OpenStack.ObjectStorage.ContainerObject(\"object_1\", new()\n {\n ContainerName = container1.Name,\n Name = \"test\",\n Content = \"Hello, world!\",\n });\n\n var objTempurl = new OpenStack.ObjectStorage.TempUrl(\"obj_tempurl\", new()\n {\n Container = container1.Name,\n Object = object1.Name,\n Method = \"post\",\n Ttl = 20,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/objectstorage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcontainer1, err := objectstorage.NewContainer(ctx, \"container_1\", \u0026objectstorage.ContainerArgs{\n\t\t\tName: pulumi.String(\"test\"),\n\t\t\tMetadata: pulumi.Map{\n\t\t\t\t\"Temp-URL-Key\": pulumi.Any(\"testkey\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tobject1, err := objectstorage.NewContainerObject(ctx, \"object_1\", \u0026objectstorage.ContainerObjectArgs{\n\t\t\tContainerName: container1.Name,\n\t\t\tName: pulumi.String(\"test\"),\n\t\t\tContent: pulumi.String(\"Hello, world!\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = objectstorage.NewTempUrl(ctx, \"obj_tempurl\", \u0026objectstorage.TempUrlArgs{\n\t\t\tContainer: container1.Name,\n\t\t\tObject: object1.Name,\n\t\t\tMethod: pulumi.String(\"post\"),\n\t\t\tTtl: pulumi.Int(20),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.objectstorage.Container;\nimport com.pulumi.openstack.objectstorage.ContainerArgs;\nimport com.pulumi.openstack.objectstorage.ContainerObject;\nimport com.pulumi.openstack.objectstorage.ContainerObjectArgs;\nimport com.pulumi.openstack.objectstorage.TempUrl;\nimport com.pulumi.openstack.objectstorage.TempUrlArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var container1 = new Container(\"container1\", ContainerArgs.builder() \n .name(\"test\")\n .metadata(Map.of(\"Temp-URL-Key\", \"testkey\"))\n .build());\n\n var object1 = new ContainerObject(\"object1\", ContainerObjectArgs.builder() \n .containerName(container1.name())\n .name(\"test\")\n .content(\"Hello, world!\")\n .build());\n\n var objTempurl = new TempUrl(\"objTempurl\", TempUrlArgs.builder() \n .container(container1.name())\n .object(object1.name())\n .method(\"post\")\n .ttl(20)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n container1:\n type: openstack:objectstorage:Container\n name: container_1\n properties:\n name: test\n metadata:\n Temp-URL-Key: testkey\n object1:\n type: openstack:objectstorage:ContainerObject\n name: object_1\n properties:\n containerName: ${container1.name}\n name: test\n content: Hello, world!\n objTempurl:\n type: openstack:objectstorage:TempUrl\n name: obj_tempurl\n properties:\n container: ${container1.name}\n object: ${object1.name}\n method: post\n ttl: 20\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "properties": { "container": { "type": "string", @@ -17680,7 +17442,7 @@ } }, "openstack:orchestration/stackV1:StackV1": { - "description": "Manages a V1 stack resource within OpenStack.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst stack1 = new openstack.orchestration.StackV1(\"stack_1\", {\n name: \"stack_1\",\n parameters: {\n length: 4,\n },\n templateOpts: {\n Bin: `heat_template_version: 2013-05-23\nparameters:\n length:\n type: number\nresources:\n test_res:\n type: OS::Heat::TestResource\n random:\n type: OS::Heat::RandomString\n properties:\n length: {get_param: length}\n`,\n },\n environmentOpts: {\n Bin: \"\\n\",\n },\n disableRollback: true,\n timeout: 30,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nstack1 = openstack.orchestration.StackV1(\"stack_1\",\n name=\"stack_1\",\n parameters={\n \"length\": 4,\n },\n template_opts={\n \"Bin\": \"\"\"heat_template_version: 2013-05-23\nparameters:\n length:\n type: number\nresources:\n test_res:\n type: OS::Heat::TestResource\n random:\n type: OS::Heat::RandomString\n properties:\n length: {get_param: length}\n\"\"\",\n },\n environment_opts={\n \"Bin\": \"\\n\",\n },\n disable_rollback=True,\n timeout=30)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var stack1 = new OpenStack.Orchestration.StackV1(\"stack_1\", new()\n {\n Name = \"stack_1\",\n Parameters = \n {\n { \"length\", 4 },\n },\n TemplateOpts = \n {\n { \"Bin\", @\"heat_template_version: 2013-05-23\nparameters:\n length:\n type: number\nresources:\n test_res:\n type: OS::Heat::TestResource\n random:\n type: OS::Heat::RandomString\n properties:\n length: {get_param: length}\n\" },\n },\n EnvironmentOpts = \n {\n { \"Bin\", @\"\n\" },\n },\n DisableRollback = true,\n Timeout = 30,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/orchestration\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := orchestration.NewStackV1(ctx, \"stack_1\", \u0026orchestration.StackV1Args{\n\t\t\tName: pulumi.String(\"stack_1\"),\n\t\t\tParameters: pulumi.Map{\n\t\t\t\t\"length\": pulumi.Any(4),\n\t\t\t},\n\t\t\tTemplateOpts: pulumi.Map{\n\t\t\t\t\"Bin\": pulumi.Any(`heat_template_version: 2013-05-23\nparameters:\n length:\n type: number\nresources:\n test_res:\n type: OS::Heat::TestResource\n random:\n type: OS::Heat::RandomString\n properties:\n length: {get_param: length}\n`),\n\t\t\t},\n\t\t\tEnvironmentOpts: pulumi.Map{\n\t\t\t\t\"Bin\": pulumi.Any(\"\\n\"),\n\t\t\t},\n\t\t\tDisableRollback: pulumi.Bool(true),\n\t\t\tTimeout: pulumi.Int(30),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.orchestration.StackV1;\nimport com.pulumi.openstack.orchestration.StackV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var stack1 = new StackV1(\"stack1\", StackV1Args.builder() \n .name(\"stack_1\")\n .parameters(Map.of(\"length\", 4))\n .templateOpts(Map.of(\"Bin\", \"\"\"\nheat_template_version: 2013-05-23\nparameters:\n length:\n type: number\nresources:\n test_res:\n type: OS::Heat::TestResource\n random:\n type: OS::Heat::RandomString\n properties:\n length: {get_param: length}\n \"\"\"))\n .environmentOpts(Map.of(\"Bin\", \"\"\"\n\n \"\"\"))\n .disableRollback(true)\n .timeout(30)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n stack1:\n type: openstack:orchestration:StackV1\n name: stack_1\n properties:\n name: stack_1\n parameters:\n length: 4\n templateOpts:\n Bin: |\n heat_template_version: 2013-05-23\n parameters:\n length:\n type: number\n resources:\n test_res:\n type: OS::Heat::TestResource\n random:\n type: OS::Heat::RandomString\n properties:\n length: {get_param: length}\n environmentOpts:\n Bin: |2+\n disableRollback: true\n timeout: 30\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nstacks can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import openstack:orchestration/stackV1:StackV1 stack_1 ea257959-eeb1-4c10-8d33-26f0409a755d\n```\n", + "description": "Manages a V1 stack resource within OpenStack.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst stack1 = new openstack.orchestration.StackV1(\"stack_1\", {\n name: \"stack_1\",\n parameters: {\n length: 4,\n },\n templateOpts: {\n Bin: `heat_template_version: 2013-05-23\nparameters:\n length:\n type: number\nresources:\n test_res:\n type: OS::Heat::TestResource\n random:\n type: OS::Heat::RandomString\n properties:\n length: {get_param: length}\n`,\n },\n environmentOpts: {\n Bin: \"\\n\",\n },\n disableRollback: true,\n timeout: 30,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nstack1 = openstack.orchestration.StackV1(\"stack_1\",\n name=\"stack_1\",\n parameters={\n \"length\": 4,\n },\n template_opts={\n \"Bin\": \"\"\"heat_template_version: 2013-05-23\nparameters:\n length:\n type: number\nresources:\n test_res:\n type: OS::Heat::TestResource\n random:\n type: OS::Heat::RandomString\n properties:\n length: {get_param: length}\n\"\"\",\n },\n environment_opts={\n \"Bin\": \"\\n\",\n },\n disable_rollback=True,\n timeout=30)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var stack1 = new OpenStack.Orchestration.StackV1(\"stack_1\", new()\n {\n Name = \"stack_1\",\n Parameters = \n {\n { \"length\", 4 },\n },\n TemplateOpts = \n {\n { \"Bin\", @\"heat_template_version: 2013-05-23\nparameters:\n length:\n type: number\nresources:\n test_res:\n type: OS::Heat::TestResource\n random:\n type: OS::Heat::RandomString\n properties:\n length: {get_param: length}\n\" },\n },\n EnvironmentOpts = \n {\n { \"Bin\", @\"\n\" },\n },\n DisableRollback = true,\n Timeout = 30,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/orchestration\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := orchestration.NewStackV1(ctx, \"stack_1\", \u0026orchestration.StackV1Args{\n\t\t\tName: pulumi.String(\"stack_1\"),\n\t\t\tParameters: pulumi.Map{\n\t\t\t\t\"length\": pulumi.Any(4),\n\t\t\t},\n\t\t\tTemplateOpts: pulumi.Map{\n\t\t\t\t\"Bin\": pulumi.Any(`heat_template_version: 2013-05-23\nparameters:\n length:\n type: number\nresources:\n test_res:\n type: OS::Heat::TestResource\n random:\n type: OS::Heat::RandomString\n properties:\n length: {get_param: length}\n`),\n\t\t\t},\n\t\t\tEnvironmentOpts: pulumi.Map{\n\t\t\t\t\"Bin\": pulumi.Any(\"\\n\"),\n\t\t\t},\n\t\t\tDisableRollback: pulumi.Bool(true),\n\t\t\tTimeout: pulumi.Int(30),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.orchestration.StackV1;\nimport com.pulumi.openstack.orchestration.StackV1Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var stack1 = new StackV1(\"stack1\", StackV1Args.builder() \n .name(\"stack_1\")\n .parameters(Map.of(\"length\", 4))\n .templateOpts(Map.of(\"Bin\", \"\"\"\nheat_template_version: 2013-05-23\nparameters:\n length:\n type: number\nresources:\n test_res:\n type: OS::Heat::TestResource\n random:\n type: OS::Heat::RandomString\n properties:\n length: {get_param: length}\n \"\"\"))\n .environmentOpts(Map.of(\"Bin\", \"\"\"\n\n \"\"\"))\n .disableRollback(true)\n .timeout(30)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n stack1:\n type: openstack:orchestration:StackV1\n name: stack_1\n properties:\n name: stack_1\n parameters:\n length: 4\n templateOpts:\n Bin: |\n heat_template_version: 2013-05-23\n parameters:\n length:\n type: number\n resources:\n test_res:\n type: OS::Heat::TestResource\n random:\n type: OS::Heat::RandomString\n properties:\n length: {get_param: length}\n environmentOpts:\n Bin: |2+\n disableRollback: true\n timeout: 30\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nstacks can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import openstack:orchestration/stackV1:StackV1 stack_1 ea257959-eeb1-4c10-8d33-26f0409a755d\n```\n", "properties": { "StackOutputs": { "type": "array", @@ -17984,7 +17746,7 @@ } }, "openstack:sharedfilesystem/securityService:SecurityService": { - "description": "Use this resource to configure a security service.\n\n\u003e **Note:** All arguments including the security service password will be\nstored in the raw state as plain-text. [Read more about sensitive data in\nstate](https://www.terraform.io/docs/state/sensitive-data.html).\n\nA security service stores configuration information for clients for\nauthentication and authorization (AuthN/AuthZ). For example, a share server\nwill be the client for an existing service such as LDAP, Kerberos, or\nMicrosoft Active Directory.\n\nMinimum supported Manila microversion is 2.7.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst securityservice1 = new openstack.sharedfilesystem.SecurityService(\"securityservice_1\", {\n name: \"security\",\n description: \"created by terraform\",\n type: \"active_directory\",\n server: \"192.168.199.10\",\n dnsIp: \"192.168.199.10\",\n domain: \"example.com\",\n ou: \"CN=Computers,DC=example,DC=com\",\n user: \"joinDomainUser\",\n password: \"s8cret\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nsecurityservice1 = openstack.sharedfilesystem.SecurityService(\"securityservice_1\",\n name=\"security\",\n description=\"created by terraform\",\n type=\"active_directory\",\n server=\"192.168.199.10\",\n dns_ip=\"192.168.199.10\",\n domain=\"example.com\",\n ou=\"CN=Computers,DC=example,DC=com\",\n user=\"joinDomainUser\",\n password=\"s8cret\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var securityservice1 = new OpenStack.SharedFileSystem.SecurityService(\"securityservice_1\", new()\n {\n Name = \"security\",\n Description = \"created by terraform\",\n Type = \"active_directory\",\n Server = \"192.168.199.10\",\n DnsIp = \"192.168.199.10\",\n Domain = \"example.com\",\n Ou = \"CN=Computers,DC=example,DC=com\",\n User = \"joinDomainUser\",\n Password = \"s8cret\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/sharedfilesystem\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := sharedfilesystem.NewSecurityService(ctx, \"securityservice_1\", \u0026sharedfilesystem.SecurityServiceArgs{\n\t\t\tName: pulumi.String(\"security\"),\n\t\t\tDescription: pulumi.String(\"created by terraform\"),\n\t\t\tType: pulumi.String(\"active_directory\"),\n\t\t\tServer: pulumi.String(\"192.168.199.10\"),\n\t\t\tDnsIp: pulumi.String(\"192.168.199.10\"),\n\t\t\tDomain: pulumi.String(\"example.com\"),\n\t\t\tOu: pulumi.String(\"CN=Computers,DC=example,DC=com\"),\n\t\t\tUser: pulumi.String(\"joinDomainUser\"),\n\t\t\tPassword: pulumi.String(\"s8cret\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.sharedfilesystem.SecurityService;\nimport com.pulumi.openstack.sharedfilesystem.SecurityServiceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var securityservice1 = new SecurityService(\"securityservice1\", SecurityServiceArgs.builder() \n .name(\"security\")\n .description(\"created by terraform\")\n .type(\"active_directory\")\n .server(\"192.168.199.10\")\n .dnsIp(\"192.168.199.10\")\n .domain(\"example.com\")\n .ou(\"CN=Computers,DC=example,DC=com\")\n .user(\"joinDomainUser\")\n .password(\"s8cret\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n securityservice1:\n type: openstack:sharedfilesystem:SecurityService\n name: securityservice_1\n properties:\n name: security\n description: created by terraform\n type: active_directory\n server: 192.168.199.10\n dnsIp: 192.168.199.10\n domain: example.com\n ou: CN=Computers,DC=example,DC=com\n user: joinDomainUser\n password: s8cret\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThis resource can be imported by specifying the ID of the security service:\n\n```sh\n$ pulumi import openstack:sharedfilesystem/securityService:SecurityService securityservice_1 id\n```\n", + "description": "Use this resource to configure a security service.\n\n\u003e **Note:** All arguments including the security service password will be\nstored in the raw state as plain-text. [Read more about sensitive data in\nstate](https://www.terraform.io/docs/state/sensitive-data.html).\n\nA security service stores configuration information for clients for\nauthentication and authorization (AuthN/AuthZ). For example, a share server\nwill be the client for an existing service such as LDAP, Kerberos, or\nMicrosoft Active Directory.\n\nMinimum supported Manila microversion is 2.7.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst securityservice1 = new openstack.sharedfilesystem.SecurityService(\"securityservice_1\", {\n name: \"security\",\n description: \"created by terraform\",\n type: \"active_directory\",\n server: \"192.168.199.10\",\n dnsIp: \"192.168.199.10\",\n domain: \"example.com\",\n ou: \"CN=Computers,DC=example,DC=com\",\n user: \"joinDomainUser\",\n password: \"s8cret\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nsecurityservice1 = openstack.sharedfilesystem.SecurityService(\"securityservice_1\",\n name=\"security\",\n description=\"created by terraform\",\n type=\"active_directory\",\n server=\"192.168.199.10\",\n dns_ip=\"192.168.199.10\",\n domain=\"example.com\",\n ou=\"CN=Computers,DC=example,DC=com\",\n user=\"joinDomainUser\",\n password=\"s8cret\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var securityservice1 = new OpenStack.SharedFileSystem.SecurityService(\"securityservice_1\", new()\n {\n Name = \"security\",\n Description = \"created by terraform\",\n Type = \"active_directory\",\n Server = \"192.168.199.10\",\n DnsIp = \"192.168.199.10\",\n Domain = \"example.com\",\n Ou = \"CN=Computers,DC=example,DC=com\",\n User = \"joinDomainUser\",\n Password = \"s8cret\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/sharedfilesystem\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := sharedfilesystem.NewSecurityService(ctx, \"securityservice_1\", \u0026sharedfilesystem.SecurityServiceArgs{\n\t\t\tName: pulumi.String(\"security\"),\n\t\t\tDescription: pulumi.String(\"created by terraform\"),\n\t\t\tType: pulumi.String(\"active_directory\"),\n\t\t\tServer: pulumi.String(\"192.168.199.10\"),\n\t\t\tDnsIp: pulumi.String(\"192.168.199.10\"),\n\t\t\tDomain: pulumi.String(\"example.com\"),\n\t\t\tOu: pulumi.String(\"CN=Computers,DC=example,DC=com\"),\n\t\t\tUser: pulumi.String(\"joinDomainUser\"),\n\t\t\tPassword: pulumi.String(\"s8cret\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.sharedfilesystem.SecurityService;\nimport com.pulumi.openstack.sharedfilesystem.SecurityServiceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var securityservice1 = new SecurityService(\"securityservice1\", SecurityServiceArgs.builder() \n .name(\"security\")\n .description(\"created by terraform\")\n .type(\"active_directory\")\n .server(\"192.168.199.10\")\n .dnsIp(\"192.168.199.10\")\n .domain(\"example.com\")\n .ou(\"CN=Computers,DC=example,DC=com\")\n .user(\"joinDomainUser\")\n .password(\"s8cret\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n securityservice1:\n type: openstack:sharedfilesystem:SecurityService\n name: securityservice_1\n properties:\n name: security\n description: created by terraform\n type: active_directory\n server: 192.168.199.10\n dnsIp: 192.168.199.10\n domain: example.com\n ou: CN=Computers,DC=example,DC=com\n user: joinDomainUser\n password: s8cret\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThis resource can be imported by specifying the ID of the security service:\n\n```sh\n$ pulumi import openstack:sharedfilesystem/securityService:SecurityService securityservice_1 id\n```\n", "properties": { "description": { "type": "string", @@ -18139,7 +17901,7 @@ } }, "openstack:sharedfilesystem/share:Share": { - "description": "Use this resource to configure a share.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst network1 = new openstack.networking.Network(\"network_1\", {\n name: \"network_1\",\n adminStateUp: true,\n});\nconst subnet1 = new openstack.networking.Subnet(\"subnet_1\", {\n name: \"subnet_1\",\n cidr: \"192.168.199.0/24\",\n ipVersion: 4,\n networkId: network1.id,\n});\nconst sharenetwork1 = new openstack.sharedfilesystem.ShareNetwork(\"sharenetwork_1\", {\n name: \"test_sharenetwork\",\n description: \"test share network with security services\",\n neutronNetId: network1.id,\n neutronSubnetId: subnet1.id,\n});\nconst share1 = new openstack.sharedfilesystem.Share(\"share_1\", {\n name: \"nfs_share\",\n description: \"test share description\",\n shareProto: \"NFS\",\n size: 1,\n shareNetworkId: sharenetwork1.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nnetwork1 = openstack.networking.Network(\"network_1\",\n name=\"network_1\",\n admin_state_up=True)\nsubnet1 = openstack.networking.Subnet(\"subnet_1\",\n name=\"subnet_1\",\n cidr=\"192.168.199.0/24\",\n ip_version=4,\n network_id=network1.id)\nsharenetwork1 = openstack.sharedfilesystem.ShareNetwork(\"sharenetwork_1\",\n name=\"test_sharenetwork\",\n description=\"test share network with security services\",\n neutron_net_id=network1.id,\n neutron_subnet_id=subnet1.id)\nshare1 = openstack.sharedfilesystem.Share(\"share_1\",\n name=\"nfs_share\",\n description=\"test share description\",\n share_proto=\"NFS\",\n size=1,\n share_network_id=sharenetwork1.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var network1 = new OpenStack.Networking.Network(\"network_1\", new()\n {\n Name = \"network_1\",\n AdminStateUp = true,\n });\n\n var subnet1 = new OpenStack.Networking.Subnet(\"subnet_1\", new()\n {\n Name = \"subnet_1\",\n Cidr = \"192.168.199.0/24\",\n IpVersion = 4,\n NetworkId = network1.Id,\n });\n\n var sharenetwork1 = new OpenStack.SharedFileSystem.ShareNetwork(\"sharenetwork_1\", new()\n {\n Name = \"test_sharenetwork\",\n Description = \"test share network with security services\",\n NeutronNetId = network1.Id,\n NeutronSubnetId = subnet1.Id,\n });\n\n var share1 = new OpenStack.SharedFileSystem.Share(\"share_1\", new()\n {\n Name = \"nfs_share\",\n Description = \"test share description\",\n ShareProto = \"NFS\",\n Size = 1,\n ShareNetworkId = sharenetwork1.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/sharedfilesystem\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tnetwork1, err := networking.NewNetwork(ctx, \"network_1\", \u0026networking.NetworkArgs{\n\t\t\tName: pulumi.String(\"network_1\"),\n\t\t\tAdminStateUp: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsubnet1, err := networking.NewSubnet(ctx, \"subnet_1\", \u0026networking.SubnetArgs{\n\t\t\tName: pulumi.String(\"subnet_1\"),\n\t\t\tCidr: pulumi.String(\"192.168.199.0/24\"),\n\t\t\tIpVersion: pulumi.Int(4),\n\t\t\tNetworkId: network1.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsharenetwork1, err := sharedfilesystem.NewShareNetwork(ctx, \"sharenetwork_1\", \u0026sharedfilesystem.ShareNetworkArgs{\n\t\t\tName: pulumi.String(\"test_sharenetwork\"),\n\t\t\tDescription: pulumi.String(\"test share network with security services\"),\n\t\t\tNeutronNetId: network1.ID(),\n\t\t\tNeutronSubnetId: subnet1.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sharedfilesystem.NewShare(ctx, \"share_1\", \u0026sharedfilesystem.ShareArgs{\n\t\t\tName: pulumi.String(\"nfs_share\"),\n\t\t\tDescription: pulumi.String(\"test share description\"),\n\t\t\tShareProto: pulumi.String(\"NFS\"),\n\t\t\tSize: pulumi.Int(1),\n\t\t\tShareNetworkId: sharenetwork1.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.Network;\nimport com.pulumi.openstack.networking.NetworkArgs;\nimport com.pulumi.openstack.networking.Subnet;\nimport com.pulumi.openstack.networking.SubnetArgs;\nimport com.pulumi.openstack.sharedfilesystem.ShareNetwork;\nimport com.pulumi.openstack.sharedfilesystem.ShareNetworkArgs;\nimport com.pulumi.openstack.sharedfilesystem.Share;\nimport com.pulumi.openstack.sharedfilesystem.ShareArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var network1 = new Network(\"network1\", NetworkArgs.builder() \n .name(\"network_1\")\n .adminStateUp(\"true\")\n .build());\n\n var subnet1 = new Subnet(\"subnet1\", SubnetArgs.builder() \n .name(\"subnet_1\")\n .cidr(\"192.168.199.0/24\")\n .ipVersion(4)\n .networkId(network1.id())\n .build());\n\n var sharenetwork1 = new ShareNetwork(\"sharenetwork1\", ShareNetworkArgs.builder() \n .name(\"test_sharenetwork\")\n .description(\"test share network with security services\")\n .neutronNetId(network1.id())\n .neutronSubnetId(subnet1.id())\n .build());\n\n var share1 = new Share(\"share1\", ShareArgs.builder() \n .name(\"nfs_share\")\n .description(\"test share description\")\n .shareProto(\"NFS\")\n .size(1)\n .shareNetworkId(sharenetwork1.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n network1:\n type: openstack:networking:Network\n name: network_1\n properties:\n name: network_1\n adminStateUp: 'true'\n subnet1:\n type: openstack:networking:Subnet\n name: subnet_1\n properties:\n name: subnet_1\n cidr: 192.168.199.0/24\n ipVersion: 4\n networkId: ${network1.id}\n sharenetwork1:\n type: openstack:sharedfilesystem:ShareNetwork\n name: sharenetwork_1\n properties:\n name: test_sharenetwork\n description: test share network with security services\n neutronNetId: ${network1.id}\n neutronSubnetId: ${subnet1.id}\n share1:\n type: openstack:sharedfilesystem:Share\n name: share_1\n properties:\n name: nfs_share\n description: test share description\n shareProto: NFS\n size: 1\n shareNetworkId: ${sharenetwork1.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThis resource can be imported by specifying the ID of the share:\n\n```sh\n$ pulumi import openstack:sharedfilesystem/share:Share share_1 id\n```\n", + "description": "Use this resource to configure a share.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst network1 = new openstack.networking.Network(\"network_1\", {\n name: \"network_1\",\n adminStateUp: true,\n});\nconst subnet1 = new openstack.networking.Subnet(\"subnet_1\", {\n name: \"subnet_1\",\n cidr: \"192.168.199.0/24\",\n ipVersion: 4,\n networkId: network1.id,\n});\nconst sharenetwork1 = new openstack.sharedfilesystem.ShareNetwork(\"sharenetwork_1\", {\n name: \"test_sharenetwork\",\n description: \"test share network with security services\",\n neutronNetId: network1.id,\n neutronSubnetId: subnet1.id,\n});\nconst share1 = new openstack.sharedfilesystem.Share(\"share_1\", {\n name: \"nfs_share\",\n description: \"test share description\",\n shareProto: \"NFS\",\n size: 1,\n shareNetworkId: sharenetwork1.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nnetwork1 = openstack.networking.Network(\"network_1\",\n name=\"network_1\",\n admin_state_up=True)\nsubnet1 = openstack.networking.Subnet(\"subnet_1\",\n name=\"subnet_1\",\n cidr=\"192.168.199.0/24\",\n ip_version=4,\n network_id=network1.id)\nsharenetwork1 = openstack.sharedfilesystem.ShareNetwork(\"sharenetwork_1\",\n name=\"test_sharenetwork\",\n description=\"test share network with security services\",\n neutron_net_id=network1.id,\n neutron_subnet_id=subnet1.id)\nshare1 = openstack.sharedfilesystem.Share(\"share_1\",\n name=\"nfs_share\",\n description=\"test share description\",\n share_proto=\"NFS\",\n size=1,\n share_network_id=sharenetwork1.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var network1 = new OpenStack.Networking.Network(\"network_1\", new()\n {\n Name = \"network_1\",\n AdminStateUp = true,\n });\n\n var subnet1 = new OpenStack.Networking.Subnet(\"subnet_1\", new()\n {\n Name = \"subnet_1\",\n Cidr = \"192.168.199.0/24\",\n IpVersion = 4,\n NetworkId = network1.Id,\n });\n\n var sharenetwork1 = new OpenStack.SharedFileSystem.ShareNetwork(\"sharenetwork_1\", new()\n {\n Name = \"test_sharenetwork\",\n Description = \"test share network with security services\",\n NeutronNetId = network1.Id,\n NeutronSubnetId = subnet1.Id,\n });\n\n var share1 = new OpenStack.SharedFileSystem.Share(\"share_1\", new()\n {\n Name = \"nfs_share\",\n Description = \"test share description\",\n ShareProto = \"NFS\",\n Size = 1,\n ShareNetworkId = sharenetwork1.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/sharedfilesystem\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tnetwork1, err := networking.NewNetwork(ctx, \"network_1\", \u0026networking.NetworkArgs{\n\t\t\tName: pulumi.String(\"network_1\"),\n\t\t\tAdminStateUp: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsubnet1, err := networking.NewSubnet(ctx, \"subnet_1\", \u0026networking.SubnetArgs{\n\t\t\tName: pulumi.String(\"subnet_1\"),\n\t\t\tCidr: pulumi.String(\"192.168.199.0/24\"),\n\t\t\tIpVersion: pulumi.Int(4),\n\t\t\tNetworkId: network1.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsharenetwork1, err := sharedfilesystem.NewShareNetwork(ctx, \"sharenetwork_1\", \u0026sharedfilesystem.ShareNetworkArgs{\n\t\t\tName: pulumi.String(\"test_sharenetwork\"),\n\t\t\tDescription: pulumi.String(\"test share network with security services\"),\n\t\t\tNeutronNetId: network1.ID(),\n\t\t\tNeutronSubnetId: subnet1.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sharedfilesystem.NewShare(ctx, \"share_1\", \u0026sharedfilesystem.ShareArgs{\n\t\t\tName: pulumi.String(\"nfs_share\"),\n\t\t\tDescription: pulumi.String(\"test share description\"),\n\t\t\tShareProto: pulumi.String(\"NFS\"),\n\t\t\tSize: pulumi.Int(1),\n\t\t\tShareNetworkId: sharenetwork1.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.Network;\nimport com.pulumi.openstack.networking.NetworkArgs;\nimport com.pulumi.openstack.networking.Subnet;\nimport com.pulumi.openstack.networking.SubnetArgs;\nimport com.pulumi.openstack.sharedfilesystem.ShareNetwork;\nimport com.pulumi.openstack.sharedfilesystem.ShareNetworkArgs;\nimport com.pulumi.openstack.sharedfilesystem.Share;\nimport com.pulumi.openstack.sharedfilesystem.ShareArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var network1 = new Network(\"network1\", NetworkArgs.builder() \n .name(\"network_1\")\n .adminStateUp(\"true\")\n .build());\n\n var subnet1 = new Subnet(\"subnet1\", SubnetArgs.builder() \n .name(\"subnet_1\")\n .cidr(\"192.168.199.0/24\")\n .ipVersion(4)\n .networkId(network1.id())\n .build());\n\n var sharenetwork1 = new ShareNetwork(\"sharenetwork1\", ShareNetworkArgs.builder() \n .name(\"test_sharenetwork\")\n .description(\"test share network with security services\")\n .neutronNetId(network1.id())\n .neutronSubnetId(subnet1.id())\n .build());\n\n var share1 = new Share(\"share1\", ShareArgs.builder() \n .name(\"nfs_share\")\n .description(\"test share description\")\n .shareProto(\"NFS\")\n .size(1)\n .shareNetworkId(sharenetwork1.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n network1:\n type: openstack:networking:Network\n name: network_1\n properties:\n name: network_1\n adminStateUp: 'true'\n subnet1:\n type: openstack:networking:Subnet\n name: subnet_1\n properties:\n name: subnet_1\n cidr: 192.168.199.0/24\n ipVersion: 4\n networkId: ${network1.id}\n sharenetwork1:\n type: openstack:sharedfilesystem:ShareNetwork\n name: sharenetwork_1\n properties:\n name: test_sharenetwork\n description: test share network with security services\n neutronNetId: ${network1.id}\n neutronSubnetId: ${subnet1.id}\n share1:\n type: openstack:sharedfilesystem:Share\n name: share_1\n properties:\n name: nfs_share\n description: test share description\n shareProto: NFS\n size: 1\n shareNetworkId: ${sharenetwork1.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThis resource can be imported by specifying the ID of the share:\n\n```sh\n$ pulumi import openstack:sharedfilesystem/share:Share share_1 id\n```\n", "properties": { "allMetadata": { "type": "object", @@ -18393,7 +18155,7 @@ } }, "openstack:sharedfilesystem/shareAccess:ShareAccess": { - "description": "## Example Usage\n\n### NFS\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst network1 = new openstack.networking.Network(\"network_1\", {\n name: \"network_1\",\n adminStateUp: true,\n});\nconst subnet1 = new openstack.networking.Subnet(\"subnet_1\", {\n name: \"subnet_1\",\n cidr: \"192.168.199.0/24\",\n ipVersion: 4,\n networkId: network1.id,\n});\nconst sharenetwork1 = new openstack.sharedfilesystem.ShareNetwork(\"sharenetwork_1\", {\n name: \"test_sharenetwork\",\n description: \"test share network with security services\",\n neutronNetId: network1.id,\n neutronSubnetId: subnet1.id,\n});\nconst share1 = new openstack.sharedfilesystem.Share(\"share_1\", {\n name: \"nfs_share\",\n description: \"test share description\",\n shareProto: \"NFS\",\n size: 1,\n shareNetworkId: sharenetwork1.id,\n});\nconst shareAccess1 = new openstack.sharedfilesystem.ShareAccess(\"share_access_1\", {\n shareId: share1.id,\n accessType: \"ip\",\n accessTo: \"192.168.199.10\",\n accessLevel: \"rw\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nnetwork1 = openstack.networking.Network(\"network_1\",\n name=\"network_1\",\n admin_state_up=True)\nsubnet1 = openstack.networking.Subnet(\"subnet_1\",\n name=\"subnet_1\",\n cidr=\"192.168.199.0/24\",\n ip_version=4,\n network_id=network1.id)\nsharenetwork1 = openstack.sharedfilesystem.ShareNetwork(\"sharenetwork_1\",\n name=\"test_sharenetwork\",\n description=\"test share network with security services\",\n neutron_net_id=network1.id,\n neutron_subnet_id=subnet1.id)\nshare1 = openstack.sharedfilesystem.Share(\"share_1\",\n name=\"nfs_share\",\n description=\"test share description\",\n share_proto=\"NFS\",\n size=1,\n share_network_id=sharenetwork1.id)\nshare_access1 = openstack.sharedfilesystem.ShareAccess(\"share_access_1\",\n share_id=share1.id,\n access_type=\"ip\",\n access_to=\"192.168.199.10\",\n access_level=\"rw\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var network1 = new OpenStack.Networking.Network(\"network_1\", new()\n {\n Name = \"network_1\",\n AdminStateUp = true,\n });\n\n var subnet1 = new OpenStack.Networking.Subnet(\"subnet_1\", new()\n {\n Name = \"subnet_1\",\n Cidr = \"192.168.199.0/24\",\n IpVersion = 4,\n NetworkId = network1.Id,\n });\n\n var sharenetwork1 = new OpenStack.SharedFileSystem.ShareNetwork(\"sharenetwork_1\", new()\n {\n Name = \"test_sharenetwork\",\n Description = \"test share network with security services\",\n NeutronNetId = network1.Id,\n NeutronSubnetId = subnet1.Id,\n });\n\n var share1 = new OpenStack.SharedFileSystem.Share(\"share_1\", new()\n {\n Name = \"nfs_share\",\n Description = \"test share description\",\n ShareProto = \"NFS\",\n Size = 1,\n ShareNetworkId = sharenetwork1.Id,\n });\n\n var shareAccess1 = new OpenStack.SharedFileSystem.ShareAccess(\"share_access_1\", new()\n {\n ShareId = share1.Id,\n AccessType = \"ip\",\n AccessTo = \"192.168.199.10\",\n AccessLevel = \"rw\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/sharedfilesystem\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tnetwork1, err := networking.NewNetwork(ctx, \"network_1\", \u0026networking.NetworkArgs{\n\t\t\tName: pulumi.String(\"network_1\"),\n\t\t\tAdminStateUp: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsubnet1, err := networking.NewSubnet(ctx, \"subnet_1\", \u0026networking.SubnetArgs{\n\t\t\tName: pulumi.String(\"subnet_1\"),\n\t\t\tCidr: pulumi.String(\"192.168.199.0/24\"),\n\t\t\tIpVersion: pulumi.Int(4),\n\t\t\tNetworkId: network1.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsharenetwork1, err := sharedfilesystem.NewShareNetwork(ctx, \"sharenetwork_1\", \u0026sharedfilesystem.ShareNetworkArgs{\n\t\t\tName: pulumi.String(\"test_sharenetwork\"),\n\t\t\tDescription: pulumi.String(\"test share network with security services\"),\n\t\t\tNeutronNetId: network1.ID(),\n\t\t\tNeutronSubnetId: subnet1.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tshare1, err := sharedfilesystem.NewShare(ctx, \"share_1\", \u0026sharedfilesystem.ShareArgs{\n\t\t\tName: pulumi.String(\"nfs_share\"),\n\t\t\tDescription: pulumi.String(\"test share description\"),\n\t\t\tShareProto: pulumi.String(\"NFS\"),\n\t\t\tSize: pulumi.Int(1),\n\t\t\tShareNetworkId: sharenetwork1.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sharedfilesystem.NewShareAccess(ctx, \"share_access_1\", \u0026sharedfilesystem.ShareAccessArgs{\n\t\t\tShareId: share1.ID(),\n\t\t\tAccessType: pulumi.String(\"ip\"),\n\t\t\tAccessTo: pulumi.String(\"192.168.199.10\"),\n\t\t\tAccessLevel: pulumi.String(\"rw\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.Network;\nimport com.pulumi.openstack.networking.NetworkArgs;\nimport com.pulumi.openstack.networking.Subnet;\nimport com.pulumi.openstack.networking.SubnetArgs;\nimport com.pulumi.openstack.sharedfilesystem.ShareNetwork;\nimport com.pulumi.openstack.sharedfilesystem.ShareNetworkArgs;\nimport com.pulumi.openstack.sharedfilesystem.Share;\nimport com.pulumi.openstack.sharedfilesystem.ShareArgs;\nimport com.pulumi.openstack.sharedfilesystem.ShareAccess;\nimport com.pulumi.openstack.sharedfilesystem.ShareAccessArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var network1 = new Network(\"network1\", NetworkArgs.builder() \n .name(\"network_1\")\n .adminStateUp(\"true\")\n .build());\n\n var subnet1 = new Subnet(\"subnet1\", SubnetArgs.builder() \n .name(\"subnet_1\")\n .cidr(\"192.168.199.0/24\")\n .ipVersion(4)\n .networkId(network1.id())\n .build());\n\n var sharenetwork1 = new ShareNetwork(\"sharenetwork1\", ShareNetworkArgs.builder() \n .name(\"test_sharenetwork\")\n .description(\"test share network with security services\")\n .neutronNetId(network1.id())\n .neutronSubnetId(subnet1.id())\n .build());\n\n var share1 = new Share(\"share1\", ShareArgs.builder() \n .name(\"nfs_share\")\n .description(\"test share description\")\n .shareProto(\"NFS\")\n .size(1)\n .shareNetworkId(sharenetwork1.id())\n .build());\n\n var shareAccess1 = new ShareAccess(\"shareAccess1\", ShareAccessArgs.builder() \n .shareId(share1.id())\n .accessType(\"ip\")\n .accessTo(\"192.168.199.10\")\n .accessLevel(\"rw\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n network1:\n type: openstack:networking:Network\n name: network_1\n properties:\n name: network_1\n adminStateUp: 'true'\n subnet1:\n type: openstack:networking:Subnet\n name: subnet_1\n properties:\n name: subnet_1\n cidr: 192.168.199.0/24\n ipVersion: 4\n networkId: ${network1.id}\n sharenetwork1:\n type: openstack:sharedfilesystem:ShareNetwork\n name: sharenetwork_1\n properties:\n name: test_sharenetwork\n description: test share network with security services\n neutronNetId: ${network1.id}\n neutronSubnetId: ${subnet1.id}\n share1:\n type: openstack:sharedfilesystem:Share\n name: share_1\n properties:\n name: nfs_share\n description: test share description\n shareProto: NFS\n size: 1\n shareNetworkId: ${sharenetwork1.id}\n shareAccess1:\n type: openstack:sharedfilesystem:ShareAccess\n name: share_access_1\n properties:\n shareId: ${share1.id}\n accessType: ip\n accessTo: 192.168.199.10\n accessLevel: rw\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### CIFS\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst network1 = new openstack.networking.Network(\"network_1\", {\n name: \"network_1\",\n adminStateUp: true,\n});\nconst subnet1 = new openstack.networking.Subnet(\"subnet_1\", {\n name: \"subnet_1\",\n cidr: \"192.168.199.0/24\",\n ipVersion: 4,\n networkId: network1.id,\n});\nconst securityservice1 = new openstack.sharedfilesystem.SecurityService(\"securityservice_1\", {\n name: \"security\",\n description: \"created by terraform\",\n type: \"active_directory\",\n server: \"192.168.199.10\",\n dnsIp: \"192.168.199.10\",\n domain: \"example.com\",\n ou: \"CN=Computers,DC=example,DC=com\",\n user: \"joinDomainUser\",\n password: \"s8cret\",\n});\nconst sharenetwork1 = new openstack.sharedfilesystem.ShareNetwork(\"sharenetwork_1\", {\n name: \"test_sharenetwork_secure\",\n description: \"share the secure love\",\n neutronNetId: network1.id,\n neutronSubnetId: subnet1.id,\n securityServiceIds: [securityservice1.id],\n});\nconst share1 = new openstack.sharedfilesystem.Share(\"share_1\", {\n name: \"cifs_share\",\n shareProto: \"CIFS\",\n size: 1,\n shareNetworkId: sharenetwork1.id,\n});\nconst shareAccess1 = new openstack.sharedfilesystem.ShareAccess(\"share_access_1\", {\n shareId: share1.id,\n accessType: \"user\",\n accessTo: \"windows\",\n accessLevel: \"ro\",\n});\nconst shareAccess2 = new openstack.sharedfilesystem.ShareAccess(\"share_access_2\", {\n shareId: share1.id,\n accessType: \"user\",\n accessTo: \"linux\",\n accessLevel: \"rw\",\n});\nexport const exportLocations = share1.exportLocations;\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nnetwork1 = openstack.networking.Network(\"network_1\",\n name=\"network_1\",\n admin_state_up=True)\nsubnet1 = openstack.networking.Subnet(\"subnet_1\",\n name=\"subnet_1\",\n cidr=\"192.168.199.0/24\",\n ip_version=4,\n network_id=network1.id)\nsecurityservice1 = openstack.sharedfilesystem.SecurityService(\"securityservice_1\",\n name=\"security\",\n description=\"created by terraform\",\n type=\"active_directory\",\n server=\"192.168.199.10\",\n dns_ip=\"192.168.199.10\",\n domain=\"example.com\",\n ou=\"CN=Computers,DC=example,DC=com\",\n user=\"joinDomainUser\",\n password=\"s8cret\")\nsharenetwork1 = openstack.sharedfilesystem.ShareNetwork(\"sharenetwork_1\",\n name=\"test_sharenetwork_secure\",\n description=\"share the secure love\",\n neutron_net_id=network1.id,\n neutron_subnet_id=subnet1.id,\n security_service_ids=[securityservice1.id])\nshare1 = openstack.sharedfilesystem.Share(\"share_1\",\n name=\"cifs_share\",\n share_proto=\"CIFS\",\n size=1,\n share_network_id=sharenetwork1.id)\nshare_access1 = openstack.sharedfilesystem.ShareAccess(\"share_access_1\",\n share_id=share1.id,\n access_type=\"user\",\n access_to=\"windows\",\n access_level=\"ro\")\nshare_access2 = openstack.sharedfilesystem.ShareAccess(\"share_access_2\",\n share_id=share1.id,\n access_type=\"user\",\n access_to=\"linux\",\n access_level=\"rw\")\npulumi.export(\"exportLocations\", share1.export_locations)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var network1 = new OpenStack.Networking.Network(\"network_1\", new()\n {\n Name = \"network_1\",\n AdminStateUp = true,\n });\n\n var subnet1 = new OpenStack.Networking.Subnet(\"subnet_1\", new()\n {\n Name = \"subnet_1\",\n Cidr = \"192.168.199.0/24\",\n IpVersion = 4,\n NetworkId = network1.Id,\n });\n\n var securityservice1 = new OpenStack.SharedFileSystem.SecurityService(\"securityservice_1\", new()\n {\n Name = \"security\",\n Description = \"created by terraform\",\n Type = \"active_directory\",\n Server = \"192.168.199.10\",\n DnsIp = \"192.168.199.10\",\n Domain = \"example.com\",\n Ou = \"CN=Computers,DC=example,DC=com\",\n User = \"joinDomainUser\",\n Password = \"s8cret\",\n });\n\n var sharenetwork1 = new OpenStack.SharedFileSystem.ShareNetwork(\"sharenetwork_1\", new()\n {\n Name = \"test_sharenetwork_secure\",\n Description = \"share the secure love\",\n NeutronNetId = network1.Id,\n NeutronSubnetId = subnet1.Id,\n SecurityServiceIds = new[]\n {\n securityservice1.Id,\n },\n });\n\n var share1 = new OpenStack.SharedFileSystem.Share(\"share_1\", new()\n {\n Name = \"cifs_share\",\n ShareProto = \"CIFS\",\n Size = 1,\n ShareNetworkId = sharenetwork1.Id,\n });\n\n var shareAccess1 = new OpenStack.SharedFileSystem.ShareAccess(\"share_access_1\", new()\n {\n ShareId = share1.Id,\n AccessType = \"user\",\n AccessTo = \"windows\",\n AccessLevel = \"ro\",\n });\n\n var shareAccess2 = new OpenStack.SharedFileSystem.ShareAccess(\"share_access_2\", new()\n {\n ShareId = share1.Id,\n AccessType = \"user\",\n AccessTo = \"linux\",\n AccessLevel = \"rw\",\n });\n\n return new Dictionary\u003cstring, object?\u003e\n {\n [\"exportLocations\"] = share1.ExportLocations,\n };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/sharedfilesystem\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tnetwork1, err := networking.NewNetwork(ctx, \"network_1\", \u0026networking.NetworkArgs{\n\t\t\tName: pulumi.String(\"network_1\"),\n\t\t\tAdminStateUp: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsubnet1, err := networking.NewSubnet(ctx, \"subnet_1\", \u0026networking.SubnetArgs{\n\t\t\tName: pulumi.String(\"subnet_1\"),\n\t\t\tCidr: pulumi.String(\"192.168.199.0/24\"),\n\t\t\tIpVersion: pulumi.Int(4),\n\t\t\tNetworkId: network1.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsecurityservice1, err := sharedfilesystem.NewSecurityService(ctx, \"securityservice_1\", \u0026sharedfilesystem.SecurityServiceArgs{\n\t\t\tName: pulumi.String(\"security\"),\n\t\t\tDescription: pulumi.String(\"created by terraform\"),\n\t\t\tType: pulumi.String(\"active_directory\"),\n\t\t\tServer: pulumi.String(\"192.168.199.10\"),\n\t\t\tDnsIp: pulumi.String(\"192.168.199.10\"),\n\t\t\tDomain: pulumi.String(\"example.com\"),\n\t\t\tOu: pulumi.String(\"CN=Computers,DC=example,DC=com\"),\n\t\t\tUser: pulumi.String(\"joinDomainUser\"),\n\t\t\tPassword: pulumi.String(\"s8cret\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsharenetwork1, err := sharedfilesystem.NewShareNetwork(ctx, \"sharenetwork_1\", \u0026sharedfilesystem.ShareNetworkArgs{\n\t\t\tName: pulumi.String(\"test_sharenetwork_secure\"),\n\t\t\tDescription: pulumi.String(\"share the secure love\"),\n\t\t\tNeutronNetId: network1.ID(),\n\t\t\tNeutronSubnetId: subnet1.ID(),\n\t\t\tSecurityServiceIds: pulumi.StringArray{\n\t\t\t\tsecurityservice1.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tshare1, err := sharedfilesystem.NewShare(ctx, \"share_1\", \u0026sharedfilesystem.ShareArgs{\n\t\t\tName: pulumi.String(\"cifs_share\"),\n\t\t\tShareProto: pulumi.String(\"CIFS\"),\n\t\t\tSize: pulumi.Int(1),\n\t\t\tShareNetworkId: sharenetwork1.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sharedfilesystem.NewShareAccess(ctx, \"share_access_1\", \u0026sharedfilesystem.ShareAccessArgs{\n\t\t\tShareId: share1.ID(),\n\t\t\tAccessType: pulumi.String(\"user\"),\n\t\t\tAccessTo: pulumi.String(\"windows\"),\n\t\t\tAccessLevel: pulumi.String(\"ro\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sharedfilesystem.NewShareAccess(ctx, \"share_access_2\", \u0026sharedfilesystem.ShareAccessArgs{\n\t\t\tShareId: share1.ID(),\n\t\t\tAccessType: pulumi.String(\"user\"),\n\t\t\tAccessTo: pulumi.String(\"linux\"),\n\t\t\tAccessLevel: pulumi.String(\"rw\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"exportLocations\", share1.ExportLocations)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.Network;\nimport com.pulumi.openstack.networking.NetworkArgs;\nimport com.pulumi.openstack.networking.Subnet;\nimport com.pulumi.openstack.networking.SubnetArgs;\nimport com.pulumi.openstack.sharedfilesystem.SecurityService;\nimport com.pulumi.openstack.sharedfilesystem.SecurityServiceArgs;\nimport com.pulumi.openstack.sharedfilesystem.ShareNetwork;\nimport com.pulumi.openstack.sharedfilesystem.ShareNetworkArgs;\nimport com.pulumi.openstack.sharedfilesystem.Share;\nimport com.pulumi.openstack.sharedfilesystem.ShareArgs;\nimport com.pulumi.openstack.sharedfilesystem.ShareAccess;\nimport com.pulumi.openstack.sharedfilesystem.ShareAccessArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var network1 = new Network(\"network1\", NetworkArgs.builder() \n .name(\"network_1\")\n .adminStateUp(\"true\")\n .build());\n\n var subnet1 = new Subnet(\"subnet1\", SubnetArgs.builder() \n .name(\"subnet_1\")\n .cidr(\"192.168.199.0/24\")\n .ipVersion(4)\n .networkId(network1.id())\n .build());\n\n var securityservice1 = new SecurityService(\"securityservice1\", SecurityServiceArgs.builder() \n .name(\"security\")\n .description(\"created by terraform\")\n .type(\"active_directory\")\n .server(\"192.168.199.10\")\n .dnsIp(\"192.168.199.10\")\n .domain(\"example.com\")\n .ou(\"CN=Computers,DC=example,DC=com\")\n .user(\"joinDomainUser\")\n .password(\"s8cret\")\n .build());\n\n var sharenetwork1 = new ShareNetwork(\"sharenetwork1\", ShareNetworkArgs.builder() \n .name(\"test_sharenetwork_secure\")\n .description(\"share the secure love\")\n .neutronNetId(network1.id())\n .neutronSubnetId(subnet1.id())\n .securityServiceIds(securityservice1.id())\n .build());\n\n var share1 = new Share(\"share1\", ShareArgs.builder() \n .name(\"cifs_share\")\n .shareProto(\"CIFS\")\n .size(1)\n .shareNetworkId(sharenetwork1.id())\n .build());\n\n var shareAccess1 = new ShareAccess(\"shareAccess1\", ShareAccessArgs.builder() \n .shareId(share1.id())\n .accessType(\"user\")\n .accessTo(\"windows\")\n .accessLevel(\"ro\")\n .build());\n\n var shareAccess2 = new ShareAccess(\"shareAccess2\", ShareAccessArgs.builder() \n .shareId(share1.id())\n .accessType(\"user\")\n .accessTo(\"linux\")\n .accessLevel(\"rw\")\n .build());\n\n ctx.export(\"exportLocations\", share1.exportLocations());\n }\n}\n```\n```yaml\nresources:\n network1:\n type: openstack:networking:Network\n name: network_1\n properties:\n name: network_1\n adminStateUp: 'true'\n subnet1:\n type: openstack:networking:Subnet\n name: subnet_1\n properties:\n name: subnet_1\n cidr: 192.168.199.0/24\n ipVersion: 4\n networkId: ${network1.id}\n securityservice1:\n type: openstack:sharedfilesystem:SecurityService\n name: securityservice_1\n properties:\n name: security\n description: created by terraform\n type: active_directory\n server: 192.168.199.10\n dnsIp: 192.168.199.10\n domain: example.com\n ou: CN=Computers,DC=example,DC=com\n user: joinDomainUser\n password: s8cret\n sharenetwork1:\n type: openstack:sharedfilesystem:ShareNetwork\n name: sharenetwork_1\n properties:\n name: test_sharenetwork_secure\n description: share the secure love\n neutronNetId: ${network1.id}\n neutronSubnetId: ${subnet1.id}\n securityServiceIds:\n - ${securityservice1.id}\n share1:\n type: openstack:sharedfilesystem:Share\n name: share_1\n properties:\n name: cifs_share\n shareProto: CIFS\n size: 1\n shareNetworkId: ${sharenetwork1.id}\n shareAccess1:\n type: openstack:sharedfilesystem:ShareAccess\n name: share_access_1\n properties:\n shareId: ${share1.id}\n accessType: user\n accessTo: windows\n accessLevel: ro\n shareAccess2:\n type: openstack:sharedfilesystem:ShareAccess\n name: share_access_2\n properties:\n shareId: ${share1.id}\n accessType: user\n accessTo: linux\n accessLevel: rw\noutputs:\n exportLocations: ${share1.exportLocations}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThis resource can be imported by specifying the ID of the share and the ID of the\nshare access, separated by a slash, e.g.:\n\n```sh\n$ pulumi import openstack:sharedfilesystem/shareAccess:ShareAccess share_access_1 share_id/share_access_id\n```\n", + "description": "## Example Usage\n\n### NFS\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst network1 = new openstack.networking.Network(\"network_1\", {\n name: \"network_1\",\n adminStateUp: true,\n});\nconst subnet1 = new openstack.networking.Subnet(\"subnet_1\", {\n name: \"subnet_1\",\n cidr: \"192.168.199.0/24\",\n ipVersion: 4,\n networkId: network1.id,\n});\nconst sharenetwork1 = new openstack.sharedfilesystem.ShareNetwork(\"sharenetwork_1\", {\n name: \"test_sharenetwork\",\n description: \"test share network with security services\",\n neutronNetId: network1.id,\n neutronSubnetId: subnet1.id,\n});\nconst share1 = new openstack.sharedfilesystem.Share(\"share_1\", {\n name: \"nfs_share\",\n description: \"test share description\",\n shareProto: \"NFS\",\n size: 1,\n shareNetworkId: sharenetwork1.id,\n});\nconst shareAccess1 = new openstack.sharedfilesystem.ShareAccess(\"share_access_1\", {\n shareId: share1.id,\n accessType: \"ip\",\n accessTo: \"192.168.199.10\",\n accessLevel: \"rw\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nnetwork1 = openstack.networking.Network(\"network_1\",\n name=\"network_1\",\n admin_state_up=True)\nsubnet1 = openstack.networking.Subnet(\"subnet_1\",\n name=\"subnet_1\",\n cidr=\"192.168.199.0/24\",\n ip_version=4,\n network_id=network1.id)\nsharenetwork1 = openstack.sharedfilesystem.ShareNetwork(\"sharenetwork_1\",\n name=\"test_sharenetwork\",\n description=\"test share network with security services\",\n neutron_net_id=network1.id,\n neutron_subnet_id=subnet1.id)\nshare1 = openstack.sharedfilesystem.Share(\"share_1\",\n name=\"nfs_share\",\n description=\"test share description\",\n share_proto=\"NFS\",\n size=1,\n share_network_id=sharenetwork1.id)\nshare_access1 = openstack.sharedfilesystem.ShareAccess(\"share_access_1\",\n share_id=share1.id,\n access_type=\"ip\",\n access_to=\"192.168.199.10\",\n access_level=\"rw\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var network1 = new OpenStack.Networking.Network(\"network_1\", new()\n {\n Name = \"network_1\",\n AdminStateUp = true,\n });\n\n var subnet1 = new OpenStack.Networking.Subnet(\"subnet_1\", new()\n {\n Name = \"subnet_1\",\n Cidr = \"192.168.199.0/24\",\n IpVersion = 4,\n NetworkId = network1.Id,\n });\n\n var sharenetwork1 = new OpenStack.SharedFileSystem.ShareNetwork(\"sharenetwork_1\", new()\n {\n Name = \"test_sharenetwork\",\n Description = \"test share network with security services\",\n NeutronNetId = network1.Id,\n NeutronSubnetId = subnet1.Id,\n });\n\n var share1 = new OpenStack.SharedFileSystem.Share(\"share_1\", new()\n {\n Name = \"nfs_share\",\n Description = \"test share description\",\n ShareProto = \"NFS\",\n Size = 1,\n ShareNetworkId = sharenetwork1.Id,\n });\n\n var shareAccess1 = new OpenStack.SharedFileSystem.ShareAccess(\"share_access_1\", new()\n {\n ShareId = share1.Id,\n AccessType = \"ip\",\n AccessTo = \"192.168.199.10\",\n AccessLevel = \"rw\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/sharedfilesystem\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tnetwork1, err := networking.NewNetwork(ctx, \"network_1\", \u0026networking.NetworkArgs{\n\t\t\tName: pulumi.String(\"network_1\"),\n\t\t\tAdminStateUp: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsubnet1, err := networking.NewSubnet(ctx, \"subnet_1\", \u0026networking.SubnetArgs{\n\t\t\tName: pulumi.String(\"subnet_1\"),\n\t\t\tCidr: pulumi.String(\"192.168.199.0/24\"),\n\t\t\tIpVersion: pulumi.Int(4),\n\t\t\tNetworkId: network1.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsharenetwork1, err := sharedfilesystem.NewShareNetwork(ctx, \"sharenetwork_1\", \u0026sharedfilesystem.ShareNetworkArgs{\n\t\t\tName: pulumi.String(\"test_sharenetwork\"),\n\t\t\tDescription: pulumi.String(\"test share network with security services\"),\n\t\t\tNeutronNetId: network1.ID(),\n\t\t\tNeutronSubnetId: subnet1.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tshare1, err := sharedfilesystem.NewShare(ctx, \"share_1\", \u0026sharedfilesystem.ShareArgs{\n\t\t\tName: pulumi.String(\"nfs_share\"),\n\t\t\tDescription: pulumi.String(\"test share description\"),\n\t\t\tShareProto: pulumi.String(\"NFS\"),\n\t\t\tSize: pulumi.Int(1),\n\t\t\tShareNetworkId: sharenetwork1.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sharedfilesystem.NewShareAccess(ctx, \"share_access_1\", \u0026sharedfilesystem.ShareAccessArgs{\n\t\t\tShareId: share1.ID(),\n\t\t\tAccessType: pulumi.String(\"ip\"),\n\t\t\tAccessTo: pulumi.String(\"192.168.199.10\"),\n\t\t\tAccessLevel: pulumi.String(\"rw\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.Network;\nimport com.pulumi.openstack.networking.NetworkArgs;\nimport com.pulumi.openstack.networking.Subnet;\nimport com.pulumi.openstack.networking.SubnetArgs;\nimport com.pulumi.openstack.sharedfilesystem.ShareNetwork;\nimport com.pulumi.openstack.sharedfilesystem.ShareNetworkArgs;\nimport com.pulumi.openstack.sharedfilesystem.Share;\nimport com.pulumi.openstack.sharedfilesystem.ShareArgs;\nimport com.pulumi.openstack.sharedfilesystem.ShareAccess;\nimport com.pulumi.openstack.sharedfilesystem.ShareAccessArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var network1 = new Network(\"network1\", NetworkArgs.builder() \n .name(\"network_1\")\n .adminStateUp(\"true\")\n .build());\n\n var subnet1 = new Subnet(\"subnet1\", SubnetArgs.builder() \n .name(\"subnet_1\")\n .cidr(\"192.168.199.0/24\")\n .ipVersion(4)\n .networkId(network1.id())\n .build());\n\n var sharenetwork1 = new ShareNetwork(\"sharenetwork1\", ShareNetworkArgs.builder() \n .name(\"test_sharenetwork\")\n .description(\"test share network with security services\")\n .neutronNetId(network1.id())\n .neutronSubnetId(subnet1.id())\n .build());\n\n var share1 = new Share(\"share1\", ShareArgs.builder() \n .name(\"nfs_share\")\n .description(\"test share description\")\n .shareProto(\"NFS\")\n .size(1)\n .shareNetworkId(sharenetwork1.id())\n .build());\n\n var shareAccess1 = new ShareAccess(\"shareAccess1\", ShareAccessArgs.builder() \n .shareId(share1.id())\n .accessType(\"ip\")\n .accessTo(\"192.168.199.10\")\n .accessLevel(\"rw\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n network1:\n type: openstack:networking:Network\n name: network_1\n properties:\n name: network_1\n adminStateUp: 'true'\n subnet1:\n type: openstack:networking:Subnet\n name: subnet_1\n properties:\n name: subnet_1\n cidr: 192.168.199.0/24\n ipVersion: 4\n networkId: ${network1.id}\n sharenetwork1:\n type: openstack:sharedfilesystem:ShareNetwork\n name: sharenetwork_1\n properties:\n name: test_sharenetwork\n description: test share network with security services\n neutronNetId: ${network1.id}\n neutronSubnetId: ${subnet1.id}\n share1:\n type: openstack:sharedfilesystem:Share\n name: share_1\n properties:\n name: nfs_share\n description: test share description\n shareProto: NFS\n size: 1\n shareNetworkId: ${sharenetwork1.id}\n shareAccess1:\n type: openstack:sharedfilesystem:ShareAccess\n name: share_access_1\n properties:\n shareId: ${share1.id}\n accessType: ip\n accessTo: 192.168.199.10\n accessLevel: rw\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### CIFS\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst network1 = new openstack.networking.Network(\"network_1\", {\n name: \"network_1\",\n adminStateUp: true,\n});\nconst subnet1 = new openstack.networking.Subnet(\"subnet_1\", {\n name: \"subnet_1\",\n cidr: \"192.168.199.0/24\",\n ipVersion: 4,\n networkId: network1.id,\n});\nconst securityservice1 = new openstack.sharedfilesystem.SecurityService(\"securityservice_1\", {\n name: \"security\",\n description: \"created by terraform\",\n type: \"active_directory\",\n server: \"192.168.199.10\",\n dnsIp: \"192.168.199.10\",\n domain: \"example.com\",\n ou: \"CN=Computers,DC=example,DC=com\",\n user: \"joinDomainUser\",\n password: \"s8cret\",\n});\nconst sharenetwork1 = new openstack.sharedfilesystem.ShareNetwork(\"sharenetwork_1\", {\n name: \"test_sharenetwork_secure\",\n description: \"share the secure love\",\n neutronNetId: network1.id,\n neutronSubnetId: subnet1.id,\n securityServiceIds: [securityservice1.id],\n});\nconst share1 = new openstack.sharedfilesystem.Share(\"share_1\", {\n name: \"cifs_share\",\n shareProto: \"CIFS\",\n size: 1,\n shareNetworkId: sharenetwork1.id,\n});\nconst shareAccess1 = new openstack.sharedfilesystem.ShareAccess(\"share_access_1\", {\n shareId: share1.id,\n accessType: \"user\",\n accessTo: \"windows\",\n accessLevel: \"ro\",\n});\nconst shareAccess2 = new openstack.sharedfilesystem.ShareAccess(\"share_access_2\", {\n shareId: share1.id,\n accessType: \"user\",\n accessTo: \"linux\",\n accessLevel: \"rw\",\n});\nexport const exportLocations = share1.exportLocations;\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nnetwork1 = openstack.networking.Network(\"network_1\",\n name=\"network_1\",\n admin_state_up=True)\nsubnet1 = openstack.networking.Subnet(\"subnet_1\",\n name=\"subnet_1\",\n cidr=\"192.168.199.0/24\",\n ip_version=4,\n network_id=network1.id)\nsecurityservice1 = openstack.sharedfilesystem.SecurityService(\"securityservice_1\",\n name=\"security\",\n description=\"created by terraform\",\n type=\"active_directory\",\n server=\"192.168.199.10\",\n dns_ip=\"192.168.199.10\",\n domain=\"example.com\",\n ou=\"CN=Computers,DC=example,DC=com\",\n user=\"joinDomainUser\",\n password=\"s8cret\")\nsharenetwork1 = openstack.sharedfilesystem.ShareNetwork(\"sharenetwork_1\",\n name=\"test_sharenetwork_secure\",\n description=\"share the secure love\",\n neutron_net_id=network1.id,\n neutron_subnet_id=subnet1.id,\n security_service_ids=[securityservice1.id])\nshare1 = openstack.sharedfilesystem.Share(\"share_1\",\n name=\"cifs_share\",\n share_proto=\"CIFS\",\n size=1,\n share_network_id=sharenetwork1.id)\nshare_access1 = openstack.sharedfilesystem.ShareAccess(\"share_access_1\",\n share_id=share1.id,\n access_type=\"user\",\n access_to=\"windows\",\n access_level=\"ro\")\nshare_access2 = openstack.sharedfilesystem.ShareAccess(\"share_access_2\",\n share_id=share1.id,\n access_type=\"user\",\n access_to=\"linux\",\n access_level=\"rw\")\npulumi.export(\"exportLocations\", share1.export_locations)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var network1 = new OpenStack.Networking.Network(\"network_1\", new()\n {\n Name = \"network_1\",\n AdminStateUp = true,\n });\n\n var subnet1 = new OpenStack.Networking.Subnet(\"subnet_1\", new()\n {\n Name = \"subnet_1\",\n Cidr = \"192.168.199.0/24\",\n IpVersion = 4,\n NetworkId = network1.Id,\n });\n\n var securityservice1 = new OpenStack.SharedFileSystem.SecurityService(\"securityservice_1\", new()\n {\n Name = \"security\",\n Description = \"created by terraform\",\n Type = \"active_directory\",\n Server = \"192.168.199.10\",\n DnsIp = \"192.168.199.10\",\n Domain = \"example.com\",\n Ou = \"CN=Computers,DC=example,DC=com\",\n User = \"joinDomainUser\",\n Password = \"s8cret\",\n });\n\n var sharenetwork1 = new OpenStack.SharedFileSystem.ShareNetwork(\"sharenetwork_1\", new()\n {\n Name = \"test_sharenetwork_secure\",\n Description = \"share the secure love\",\n NeutronNetId = network1.Id,\n NeutronSubnetId = subnet1.Id,\n SecurityServiceIds = new[]\n {\n securityservice1.Id,\n },\n });\n\n var share1 = new OpenStack.SharedFileSystem.Share(\"share_1\", new()\n {\n Name = \"cifs_share\",\n ShareProto = \"CIFS\",\n Size = 1,\n ShareNetworkId = sharenetwork1.Id,\n });\n\n var shareAccess1 = new OpenStack.SharedFileSystem.ShareAccess(\"share_access_1\", new()\n {\n ShareId = share1.Id,\n AccessType = \"user\",\n AccessTo = \"windows\",\n AccessLevel = \"ro\",\n });\n\n var shareAccess2 = new OpenStack.SharedFileSystem.ShareAccess(\"share_access_2\", new()\n {\n ShareId = share1.Id,\n AccessType = \"user\",\n AccessTo = \"linux\",\n AccessLevel = \"rw\",\n });\n\n return new Dictionary\u003cstring, object?\u003e\n {\n [\"exportLocations\"] = share1.ExportLocations,\n };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/sharedfilesystem\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tnetwork1, err := networking.NewNetwork(ctx, \"network_1\", \u0026networking.NetworkArgs{\n\t\t\tName: pulumi.String(\"network_1\"),\n\t\t\tAdminStateUp: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsubnet1, err := networking.NewSubnet(ctx, \"subnet_1\", \u0026networking.SubnetArgs{\n\t\t\tName: pulumi.String(\"subnet_1\"),\n\t\t\tCidr: pulumi.String(\"192.168.199.0/24\"),\n\t\t\tIpVersion: pulumi.Int(4),\n\t\t\tNetworkId: network1.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsecurityservice1, err := sharedfilesystem.NewSecurityService(ctx, \"securityservice_1\", \u0026sharedfilesystem.SecurityServiceArgs{\n\t\t\tName: pulumi.String(\"security\"),\n\t\t\tDescription: pulumi.String(\"created by terraform\"),\n\t\t\tType: pulumi.String(\"active_directory\"),\n\t\t\tServer: pulumi.String(\"192.168.199.10\"),\n\t\t\tDnsIp: pulumi.String(\"192.168.199.10\"),\n\t\t\tDomain: pulumi.String(\"example.com\"),\n\t\t\tOu: pulumi.String(\"CN=Computers,DC=example,DC=com\"),\n\t\t\tUser: pulumi.String(\"joinDomainUser\"),\n\t\t\tPassword: pulumi.String(\"s8cret\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsharenetwork1, err := sharedfilesystem.NewShareNetwork(ctx, \"sharenetwork_1\", \u0026sharedfilesystem.ShareNetworkArgs{\n\t\t\tName: pulumi.String(\"test_sharenetwork_secure\"),\n\t\t\tDescription: pulumi.String(\"share the secure love\"),\n\t\t\tNeutronNetId: network1.ID(),\n\t\t\tNeutronSubnetId: subnet1.ID(),\n\t\t\tSecurityServiceIds: pulumi.StringArray{\n\t\t\t\tsecurityservice1.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tshare1, err := sharedfilesystem.NewShare(ctx, \"share_1\", \u0026sharedfilesystem.ShareArgs{\n\t\t\tName: pulumi.String(\"cifs_share\"),\n\t\t\tShareProto: pulumi.String(\"CIFS\"),\n\t\t\tSize: pulumi.Int(1),\n\t\t\tShareNetworkId: sharenetwork1.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sharedfilesystem.NewShareAccess(ctx, \"share_access_1\", \u0026sharedfilesystem.ShareAccessArgs{\n\t\t\tShareId: share1.ID(),\n\t\t\tAccessType: pulumi.String(\"user\"),\n\t\t\tAccessTo: pulumi.String(\"windows\"),\n\t\t\tAccessLevel: pulumi.String(\"ro\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sharedfilesystem.NewShareAccess(ctx, \"share_access_2\", \u0026sharedfilesystem.ShareAccessArgs{\n\t\t\tShareId: share1.ID(),\n\t\t\tAccessType: pulumi.String(\"user\"),\n\t\t\tAccessTo: pulumi.String(\"linux\"),\n\t\t\tAccessLevel: pulumi.String(\"rw\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"exportLocations\", share1.ExportLocations)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.Network;\nimport com.pulumi.openstack.networking.NetworkArgs;\nimport com.pulumi.openstack.networking.Subnet;\nimport com.pulumi.openstack.networking.SubnetArgs;\nimport com.pulumi.openstack.sharedfilesystem.SecurityService;\nimport com.pulumi.openstack.sharedfilesystem.SecurityServiceArgs;\nimport com.pulumi.openstack.sharedfilesystem.ShareNetwork;\nimport com.pulumi.openstack.sharedfilesystem.ShareNetworkArgs;\nimport com.pulumi.openstack.sharedfilesystem.Share;\nimport com.pulumi.openstack.sharedfilesystem.ShareArgs;\nimport com.pulumi.openstack.sharedfilesystem.ShareAccess;\nimport com.pulumi.openstack.sharedfilesystem.ShareAccessArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var network1 = new Network(\"network1\", NetworkArgs.builder() \n .name(\"network_1\")\n .adminStateUp(\"true\")\n .build());\n\n var subnet1 = new Subnet(\"subnet1\", SubnetArgs.builder() \n .name(\"subnet_1\")\n .cidr(\"192.168.199.0/24\")\n .ipVersion(4)\n .networkId(network1.id())\n .build());\n\n var securityservice1 = new SecurityService(\"securityservice1\", SecurityServiceArgs.builder() \n .name(\"security\")\n .description(\"created by terraform\")\n .type(\"active_directory\")\n .server(\"192.168.199.10\")\n .dnsIp(\"192.168.199.10\")\n .domain(\"example.com\")\n .ou(\"CN=Computers,DC=example,DC=com\")\n .user(\"joinDomainUser\")\n .password(\"s8cret\")\n .build());\n\n var sharenetwork1 = new ShareNetwork(\"sharenetwork1\", ShareNetworkArgs.builder() \n .name(\"test_sharenetwork_secure\")\n .description(\"share the secure love\")\n .neutronNetId(network1.id())\n .neutronSubnetId(subnet1.id())\n .securityServiceIds(securityservice1.id())\n .build());\n\n var share1 = new Share(\"share1\", ShareArgs.builder() \n .name(\"cifs_share\")\n .shareProto(\"CIFS\")\n .size(1)\n .shareNetworkId(sharenetwork1.id())\n .build());\n\n var shareAccess1 = new ShareAccess(\"shareAccess1\", ShareAccessArgs.builder() \n .shareId(share1.id())\n .accessType(\"user\")\n .accessTo(\"windows\")\n .accessLevel(\"ro\")\n .build());\n\n var shareAccess2 = new ShareAccess(\"shareAccess2\", ShareAccessArgs.builder() \n .shareId(share1.id())\n .accessType(\"user\")\n .accessTo(\"linux\")\n .accessLevel(\"rw\")\n .build());\n\n ctx.export(\"exportLocations\", share1.exportLocations());\n }\n}\n```\n```yaml\nresources:\n network1:\n type: openstack:networking:Network\n name: network_1\n properties:\n name: network_1\n adminStateUp: 'true'\n subnet1:\n type: openstack:networking:Subnet\n name: subnet_1\n properties:\n name: subnet_1\n cidr: 192.168.199.0/24\n ipVersion: 4\n networkId: ${network1.id}\n securityservice1:\n type: openstack:sharedfilesystem:SecurityService\n name: securityservice_1\n properties:\n name: security\n description: created by terraform\n type: active_directory\n server: 192.168.199.10\n dnsIp: 192.168.199.10\n domain: example.com\n ou: CN=Computers,DC=example,DC=com\n user: joinDomainUser\n password: s8cret\n sharenetwork1:\n type: openstack:sharedfilesystem:ShareNetwork\n name: sharenetwork_1\n properties:\n name: test_sharenetwork_secure\n description: share the secure love\n neutronNetId: ${network1.id}\n neutronSubnetId: ${subnet1.id}\n securityServiceIds:\n - ${securityservice1.id}\n share1:\n type: openstack:sharedfilesystem:Share\n name: share_1\n properties:\n name: cifs_share\n shareProto: CIFS\n size: 1\n shareNetworkId: ${sharenetwork1.id}\n shareAccess1:\n type: openstack:sharedfilesystem:ShareAccess\n name: share_access_1\n properties:\n shareId: ${share1.id}\n accessType: user\n accessTo: windows\n accessLevel: ro\n shareAccess2:\n type: openstack:sharedfilesystem:ShareAccess\n name: share_access_2\n properties:\n shareId: ${share1.id}\n accessType: user\n accessTo: linux\n accessLevel: rw\noutputs:\n exportLocations: ${share1.exportLocations}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThis resource can be imported by specifying the ID of the share and the ID of the\nshare access, separated by a slash, e.g.:\n\n```sh\n$ pulumi import openstack:sharedfilesystem/shareAccess:ShareAccess share_access_1 share_id/share_access_id\n```\n", "properties": { "accessKey": { "type": "string", @@ -18509,7 +18271,7 @@ } }, "openstack:sharedfilesystem/shareNetwork:ShareNetwork": { - "description": "Use this resource to configure a share network.\n\nA share network stores network information that share servers can use when\nshares are created.\n\n## Example Usage\n\n### Basic share network\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst network1 = new openstack.networking.Network(\"network_1\", {\n name: \"network_1\",\n adminStateUp: true,\n});\nconst subnet1 = new openstack.networking.Subnet(\"subnet_1\", {\n name: \"subnet_1\",\n cidr: \"192.168.199.0/24\",\n ipVersion: 4,\n networkId: network1.id,\n});\nconst sharenetwork1 = new openstack.sharedfilesystem.ShareNetwork(\"sharenetwork_1\", {\n name: \"test_sharenetwork\",\n description: \"test share network\",\n neutronNetId: network1.id,\n neutronSubnetId: subnet1.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nnetwork1 = openstack.networking.Network(\"network_1\",\n name=\"network_1\",\n admin_state_up=True)\nsubnet1 = openstack.networking.Subnet(\"subnet_1\",\n name=\"subnet_1\",\n cidr=\"192.168.199.0/24\",\n ip_version=4,\n network_id=network1.id)\nsharenetwork1 = openstack.sharedfilesystem.ShareNetwork(\"sharenetwork_1\",\n name=\"test_sharenetwork\",\n description=\"test share network\",\n neutron_net_id=network1.id,\n neutron_subnet_id=subnet1.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var network1 = new OpenStack.Networking.Network(\"network_1\", new()\n {\n Name = \"network_1\",\n AdminStateUp = true,\n });\n\n var subnet1 = new OpenStack.Networking.Subnet(\"subnet_1\", new()\n {\n Name = \"subnet_1\",\n Cidr = \"192.168.199.0/24\",\n IpVersion = 4,\n NetworkId = network1.Id,\n });\n\n var sharenetwork1 = new OpenStack.SharedFileSystem.ShareNetwork(\"sharenetwork_1\", new()\n {\n Name = \"test_sharenetwork\",\n Description = \"test share network\",\n NeutronNetId = network1.Id,\n NeutronSubnetId = subnet1.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/sharedfilesystem\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tnetwork1, err := networking.NewNetwork(ctx, \"network_1\", \u0026networking.NetworkArgs{\n\t\t\tName: pulumi.String(\"network_1\"),\n\t\t\tAdminStateUp: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsubnet1, err := networking.NewSubnet(ctx, \"subnet_1\", \u0026networking.SubnetArgs{\n\t\t\tName: pulumi.String(\"subnet_1\"),\n\t\t\tCidr: pulumi.String(\"192.168.199.0/24\"),\n\t\t\tIpVersion: pulumi.Int(4),\n\t\t\tNetworkId: network1.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sharedfilesystem.NewShareNetwork(ctx, \"sharenetwork_1\", \u0026sharedfilesystem.ShareNetworkArgs{\n\t\t\tName: pulumi.String(\"test_sharenetwork\"),\n\t\t\tDescription: pulumi.String(\"test share network\"),\n\t\t\tNeutronNetId: network1.ID(),\n\t\t\tNeutronSubnetId: subnet1.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.Network;\nimport com.pulumi.openstack.networking.NetworkArgs;\nimport com.pulumi.openstack.networking.Subnet;\nimport com.pulumi.openstack.networking.SubnetArgs;\nimport com.pulumi.openstack.sharedfilesystem.ShareNetwork;\nimport com.pulumi.openstack.sharedfilesystem.ShareNetworkArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var network1 = new Network(\"network1\", NetworkArgs.builder() \n .name(\"network_1\")\n .adminStateUp(\"true\")\n .build());\n\n var subnet1 = new Subnet(\"subnet1\", SubnetArgs.builder() \n .name(\"subnet_1\")\n .cidr(\"192.168.199.0/24\")\n .ipVersion(4)\n .networkId(network1.id())\n .build());\n\n var sharenetwork1 = new ShareNetwork(\"sharenetwork1\", ShareNetworkArgs.builder() \n .name(\"test_sharenetwork\")\n .description(\"test share network\")\n .neutronNetId(network1.id())\n .neutronSubnetId(subnet1.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n network1:\n type: openstack:networking:Network\n name: network_1\n properties:\n name: network_1\n adminStateUp: 'true'\n subnet1:\n type: openstack:networking:Subnet\n name: subnet_1\n properties:\n name: subnet_1\n cidr: 192.168.199.0/24\n ipVersion: 4\n networkId: ${network1.id}\n sharenetwork1:\n type: openstack:sharedfilesystem:ShareNetwork\n name: sharenetwork_1\n properties:\n name: test_sharenetwork\n description: test share network\n neutronNetId: ${network1.id}\n neutronSubnetId: ${subnet1.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Share network with associated security services\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst network1 = new openstack.networking.Network(\"network_1\", {\n name: \"network_1\",\n adminStateUp: true,\n});\nconst subnet1 = new openstack.networking.Subnet(\"subnet_1\", {\n name: \"subnet_1\",\n cidr: \"192.168.199.0/24\",\n ipVersion: 4,\n networkId: network1.id,\n});\nconst securityservice1 = new openstack.sharedfilesystem.SecurityService(\"securityservice_1\", {\n name: \"security\",\n description: \"created by terraform\",\n type: \"active_directory\",\n server: \"192.168.199.10\",\n dnsIp: \"192.168.199.10\",\n domain: \"example.com\",\n ou: \"CN=Computers,DC=example,DC=com\",\n user: \"joinDomainUser\",\n password: \"s8cret\",\n});\nconst sharenetwork1 = new openstack.sharedfilesystem.ShareNetwork(\"sharenetwork_1\", {\n name: \"test_sharenetwork\",\n description: \"test share network with security services\",\n neutronNetId: network1.id,\n neutronSubnetId: subnet1.id,\n securityServiceIds: [securityservice1.id],\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nnetwork1 = openstack.networking.Network(\"network_1\",\n name=\"network_1\",\n admin_state_up=True)\nsubnet1 = openstack.networking.Subnet(\"subnet_1\",\n name=\"subnet_1\",\n cidr=\"192.168.199.0/24\",\n ip_version=4,\n network_id=network1.id)\nsecurityservice1 = openstack.sharedfilesystem.SecurityService(\"securityservice_1\",\n name=\"security\",\n description=\"created by terraform\",\n type=\"active_directory\",\n server=\"192.168.199.10\",\n dns_ip=\"192.168.199.10\",\n domain=\"example.com\",\n ou=\"CN=Computers,DC=example,DC=com\",\n user=\"joinDomainUser\",\n password=\"s8cret\")\nsharenetwork1 = openstack.sharedfilesystem.ShareNetwork(\"sharenetwork_1\",\n name=\"test_sharenetwork\",\n description=\"test share network with security services\",\n neutron_net_id=network1.id,\n neutron_subnet_id=subnet1.id,\n security_service_ids=[securityservice1.id])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var network1 = new OpenStack.Networking.Network(\"network_1\", new()\n {\n Name = \"network_1\",\n AdminStateUp = true,\n });\n\n var subnet1 = new OpenStack.Networking.Subnet(\"subnet_1\", new()\n {\n Name = \"subnet_1\",\n Cidr = \"192.168.199.0/24\",\n IpVersion = 4,\n NetworkId = network1.Id,\n });\n\n var securityservice1 = new OpenStack.SharedFileSystem.SecurityService(\"securityservice_1\", new()\n {\n Name = \"security\",\n Description = \"created by terraform\",\n Type = \"active_directory\",\n Server = \"192.168.199.10\",\n DnsIp = \"192.168.199.10\",\n Domain = \"example.com\",\n Ou = \"CN=Computers,DC=example,DC=com\",\n User = \"joinDomainUser\",\n Password = \"s8cret\",\n });\n\n var sharenetwork1 = new OpenStack.SharedFileSystem.ShareNetwork(\"sharenetwork_1\", new()\n {\n Name = \"test_sharenetwork\",\n Description = \"test share network with security services\",\n NeutronNetId = network1.Id,\n NeutronSubnetId = subnet1.Id,\n SecurityServiceIds = new[]\n {\n securityservice1.Id,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/sharedfilesystem\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tnetwork1, err := networking.NewNetwork(ctx, \"network_1\", \u0026networking.NetworkArgs{\n\t\t\tName: pulumi.String(\"network_1\"),\n\t\t\tAdminStateUp: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsubnet1, err := networking.NewSubnet(ctx, \"subnet_1\", \u0026networking.SubnetArgs{\n\t\t\tName: pulumi.String(\"subnet_1\"),\n\t\t\tCidr: pulumi.String(\"192.168.199.0/24\"),\n\t\t\tIpVersion: pulumi.Int(4),\n\t\t\tNetworkId: network1.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsecurityservice1, err := sharedfilesystem.NewSecurityService(ctx, \"securityservice_1\", \u0026sharedfilesystem.SecurityServiceArgs{\n\t\t\tName: pulumi.String(\"security\"),\n\t\t\tDescription: pulumi.String(\"created by terraform\"),\n\t\t\tType: pulumi.String(\"active_directory\"),\n\t\t\tServer: pulumi.String(\"192.168.199.10\"),\n\t\t\tDnsIp: pulumi.String(\"192.168.199.10\"),\n\t\t\tDomain: pulumi.String(\"example.com\"),\n\t\t\tOu: pulumi.String(\"CN=Computers,DC=example,DC=com\"),\n\t\t\tUser: pulumi.String(\"joinDomainUser\"),\n\t\t\tPassword: pulumi.String(\"s8cret\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sharedfilesystem.NewShareNetwork(ctx, \"sharenetwork_1\", \u0026sharedfilesystem.ShareNetworkArgs{\n\t\t\tName: pulumi.String(\"test_sharenetwork\"),\n\t\t\tDescription: pulumi.String(\"test share network with security services\"),\n\t\t\tNeutronNetId: network1.ID(),\n\t\t\tNeutronSubnetId: subnet1.ID(),\n\t\t\tSecurityServiceIds: pulumi.StringArray{\n\t\t\t\tsecurityservice1.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.Network;\nimport com.pulumi.openstack.networking.NetworkArgs;\nimport com.pulumi.openstack.networking.Subnet;\nimport com.pulumi.openstack.networking.SubnetArgs;\nimport com.pulumi.openstack.sharedfilesystem.SecurityService;\nimport com.pulumi.openstack.sharedfilesystem.SecurityServiceArgs;\nimport com.pulumi.openstack.sharedfilesystem.ShareNetwork;\nimport com.pulumi.openstack.sharedfilesystem.ShareNetworkArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var network1 = new Network(\"network1\", NetworkArgs.builder() \n .name(\"network_1\")\n .adminStateUp(\"true\")\n .build());\n\n var subnet1 = new Subnet(\"subnet1\", SubnetArgs.builder() \n .name(\"subnet_1\")\n .cidr(\"192.168.199.0/24\")\n .ipVersion(4)\n .networkId(network1.id())\n .build());\n\n var securityservice1 = new SecurityService(\"securityservice1\", SecurityServiceArgs.builder() \n .name(\"security\")\n .description(\"created by terraform\")\n .type(\"active_directory\")\n .server(\"192.168.199.10\")\n .dnsIp(\"192.168.199.10\")\n .domain(\"example.com\")\n .ou(\"CN=Computers,DC=example,DC=com\")\n .user(\"joinDomainUser\")\n .password(\"s8cret\")\n .build());\n\n var sharenetwork1 = new ShareNetwork(\"sharenetwork1\", ShareNetworkArgs.builder() \n .name(\"test_sharenetwork\")\n .description(\"test share network with security services\")\n .neutronNetId(network1.id())\n .neutronSubnetId(subnet1.id())\n .securityServiceIds(securityservice1.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n network1:\n type: openstack:networking:Network\n name: network_1\n properties:\n name: network_1\n adminStateUp: 'true'\n subnet1:\n type: openstack:networking:Subnet\n name: subnet_1\n properties:\n name: subnet_1\n cidr: 192.168.199.0/24\n ipVersion: 4\n networkId: ${network1.id}\n securityservice1:\n type: openstack:sharedfilesystem:SecurityService\n name: securityservice_1\n properties:\n name: security\n description: created by terraform\n type: active_directory\n server: 192.168.199.10\n dnsIp: 192.168.199.10\n domain: example.com\n ou: CN=Computers,DC=example,DC=com\n user: joinDomainUser\n password: s8cret\n sharenetwork1:\n type: openstack:sharedfilesystem:ShareNetwork\n name: sharenetwork_1\n properties:\n name: test_sharenetwork\n description: test share network with security services\n neutronNetId: ${network1.id}\n neutronSubnetId: ${subnet1.id}\n securityServiceIds:\n - ${securityservice1.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThis resource can be imported by specifying the ID of the share network:\n\n```sh\n$ pulumi import openstack:sharedfilesystem/shareNetwork:ShareNetwork sharenetwork_1 id\n```\n", + "description": "Use this resource to configure a share network.\n\nA share network stores network information that share servers can use when\nshares are created.\n\n## Example Usage\n\n### Basic share network\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst network1 = new openstack.networking.Network(\"network_1\", {\n name: \"network_1\",\n adminStateUp: true,\n});\nconst subnet1 = new openstack.networking.Subnet(\"subnet_1\", {\n name: \"subnet_1\",\n cidr: \"192.168.199.0/24\",\n ipVersion: 4,\n networkId: network1.id,\n});\nconst sharenetwork1 = new openstack.sharedfilesystem.ShareNetwork(\"sharenetwork_1\", {\n name: \"test_sharenetwork\",\n description: \"test share network\",\n neutronNetId: network1.id,\n neutronSubnetId: subnet1.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nnetwork1 = openstack.networking.Network(\"network_1\",\n name=\"network_1\",\n admin_state_up=True)\nsubnet1 = openstack.networking.Subnet(\"subnet_1\",\n name=\"subnet_1\",\n cidr=\"192.168.199.0/24\",\n ip_version=4,\n network_id=network1.id)\nsharenetwork1 = openstack.sharedfilesystem.ShareNetwork(\"sharenetwork_1\",\n name=\"test_sharenetwork\",\n description=\"test share network\",\n neutron_net_id=network1.id,\n neutron_subnet_id=subnet1.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var network1 = new OpenStack.Networking.Network(\"network_1\", new()\n {\n Name = \"network_1\",\n AdminStateUp = true,\n });\n\n var subnet1 = new OpenStack.Networking.Subnet(\"subnet_1\", new()\n {\n Name = \"subnet_1\",\n Cidr = \"192.168.199.0/24\",\n IpVersion = 4,\n NetworkId = network1.Id,\n });\n\n var sharenetwork1 = new OpenStack.SharedFileSystem.ShareNetwork(\"sharenetwork_1\", new()\n {\n Name = \"test_sharenetwork\",\n Description = \"test share network\",\n NeutronNetId = network1.Id,\n NeutronSubnetId = subnet1.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/sharedfilesystem\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tnetwork1, err := networking.NewNetwork(ctx, \"network_1\", \u0026networking.NetworkArgs{\n\t\t\tName: pulumi.String(\"network_1\"),\n\t\t\tAdminStateUp: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsubnet1, err := networking.NewSubnet(ctx, \"subnet_1\", \u0026networking.SubnetArgs{\n\t\t\tName: pulumi.String(\"subnet_1\"),\n\t\t\tCidr: pulumi.String(\"192.168.199.0/24\"),\n\t\t\tIpVersion: pulumi.Int(4),\n\t\t\tNetworkId: network1.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sharedfilesystem.NewShareNetwork(ctx, \"sharenetwork_1\", \u0026sharedfilesystem.ShareNetworkArgs{\n\t\t\tName: pulumi.String(\"test_sharenetwork\"),\n\t\t\tDescription: pulumi.String(\"test share network\"),\n\t\t\tNeutronNetId: network1.ID(),\n\t\t\tNeutronSubnetId: subnet1.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.Network;\nimport com.pulumi.openstack.networking.NetworkArgs;\nimport com.pulumi.openstack.networking.Subnet;\nimport com.pulumi.openstack.networking.SubnetArgs;\nimport com.pulumi.openstack.sharedfilesystem.ShareNetwork;\nimport com.pulumi.openstack.sharedfilesystem.ShareNetworkArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var network1 = new Network(\"network1\", NetworkArgs.builder() \n .name(\"network_1\")\n .adminStateUp(\"true\")\n .build());\n\n var subnet1 = new Subnet(\"subnet1\", SubnetArgs.builder() \n .name(\"subnet_1\")\n .cidr(\"192.168.199.0/24\")\n .ipVersion(4)\n .networkId(network1.id())\n .build());\n\n var sharenetwork1 = new ShareNetwork(\"sharenetwork1\", ShareNetworkArgs.builder() \n .name(\"test_sharenetwork\")\n .description(\"test share network\")\n .neutronNetId(network1.id())\n .neutronSubnetId(subnet1.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n network1:\n type: openstack:networking:Network\n name: network_1\n properties:\n name: network_1\n adminStateUp: 'true'\n subnet1:\n type: openstack:networking:Subnet\n name: subnet_1\n properties:\n name: subnet_1\n cidr: 192.168.199.0/24\n ipVersion: 4\n networkId: ${network1.id}\n sharenetwork1:\n type: openstack:sharedfilesystem:ShareNetwork\n name: sharenetwork_1\n properties:\n name: test_sharenetwork\n description: test share network\n neutronNetId: ${network1.id}\n neutronSubnetId: ${subnet1.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Share network with associated security services\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst network1 = new openstack.networking.Network(\"network_1\", {\n name: \"network_1\",\n adminStateUp: true,\n});\nconst subnet1 = new openstack.networking.Subnet(\"subnet_1\", {\n name: \"subnet_1\",\n cidr: \"192.168.199.0/24\",\n ipVersion: 4,\n networkId: network1.id,\n});\nconst securityservice1 = new openstack.sharedfilesystem.SecurityService(\"securityservice_1\", {\n name: \"security\",\n description: \"created by terraform\",\n type: \"active_directory\",\n server: \"192.168.199.10\",\n dnsIp: \"192.168.199.10\",\n domain: \"example.com\",\n ou: \"CN=Computers,DC=example,DC=com\",\n user: \"joinDomainUser\",\n password: \"s8cret\",\n});\nconst sharenetwork1 = new openstack.sharedfilesystem.ShareNetwork(\"sharenetwork_1\", {\n name: \"test_sharenetwork\",\n description: \"test share network with security services\",\n neutronNetId: network1.id,\n neutronSubnetId: subnet1.id,\n securityServiceIds: [securityservice1.id],\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nnetwork1 = openstack.networking.Network(\"network_1\",\n name=\"network_1\",\n admin_state_up=True)\nsubnet1 = openstack.networking.Subnet(\"subnet_1\",\n name=\"subnet_1\",\n cidr=\"192.168.199.0/24\",\n ip_version=4,\n network_id=network1.id)\nsecurityservice1 = openstack.sharedfilesystem.SecurityService(\"securityservice_1\",\n name=\"security\",\n description=\"created by terraform\",\n type=\"active_directory\",\n server=\"192.168.199.10\",\n dns_ip=\"192.168.199.10\",\n domain=\"example.com\",\n ou=\"CN=Computers,DC=example,DC=com\",\n user=\"joinDomainUser\",\n password=\"s8cret\")\nsharenetwork1 = openstack.sharedfilesystem.ShareNetwork(\"sharenetwork_1\",\n name=\"test_sharenetwork\",\n description=\"test share network with security services\",\n neutron_net_id=network1.id,\n neutron_subnet_id=subnet1.id,\n security_service_ids=[securityservice1.id])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var network1 = new OpenStack.Networking.Network(\"network_1\", new()\n {\n Name = \"network_1\",\n AdminStateUp = true,\n });\n\n var subnet1 = new OpenStack.Networking.Subnet(\"subnet_1\", new()\n {\n Name = \"subnet_1\",\n Cidr = \"192.168.199.0/24\",\n IpVersion = 4,\n NetworkId = network1.Id,\n });\n\n var securityservice1 = new OpenStack.SharedFileSystem.SecurityService(\"securityservice_1\", new()\n {\n Name = \"security\",\n Description = \"created by terraform\",\n Type = \"active_directory\",\n Server = \"192.168.199.10\",\n DnsIp = \"192.168.199.10\",\n Domain = \"example.com\",\n Ou = \"CN=Computers,DC=example,DC=com\",\n User = \"joinDomainUser\",\n Password = \"s8cret\",\n });\n\n var sharenetwork1 = new OpenStack.SharedFileSystem.ShareNetwork(\"sharenetwork_1\", new()\n {\n Name = \"test_sharenetwork\",\n Description = \"test share network with security services\",\n NeutronNetId = network1.Id,\n NeutronSubnetId = subnet1.Id,\n SecurityServiceIds = new[]\n {\n securityservice1.Id,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/sharedfilesystem\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tnetwork1, err := networking.NewNetwork(ctx, \"network_1\", \u0026networking.NetworkArgs{\n\t\t\tName: pulumi.String(\"network_1\"),\n\t\t\tAdminStateUp: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsubnet1, err := networking.NewSubnet(ctx, \"subnet_1\", \u0026networking.SubnetArgs{\n\t\t\tName: pulumi.String(\"subnet_1\"),\n\t\t\tCidr: pulumi.String(\"192.168.199.0/24\"),\n\t\t\tIpVersion: pulumi.Int(4),\n\t\t\tNetworkId: network1.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsecurityservice1, err := sharedfilesystem.NewSecurityService(ctx, \"securityservice_1\", \u0026sharedfilesystem.SecurityServiceArgs{\n\t\t\tName: pulumi.String(\"security\"),\n\t\t\tDescription: pulumi.String(\"created by terraform\"),\n\t\t\tType: pulumi.String(\"active_directory\"),\n\t\t\tServer: pulumi.String(\"192.168.199.10\"),\n\t\t\tDnsIp: pulumi.String(\"192.168.199.10\"),\n\t\t\tDomain: pulumi.String(\"example.com\"),\n\t\t\tOu: pulumi.String(\"CN=Computers,DC=example,DC=com\"),\n\t\t\tUser: pulumi.String(\"joinDomainUser\"),\n\t\t\tPassword: pulumi.String(\"s8cret\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sharedfilesystem.NewShareNetwork(ctx, \"sharenetwork_1\", \u0026sharedfilesystem.ShareNetworkArgs{\n\t\t\tName: pulumi.String(\"test_sharenetwork\"),\n\t\t\tDescription: pulumi.String(\"test share network with security services\"),\n\t\t\tNeutronNetId: network1.ID(),\n\t\t\tNeutronSubnetId: subnet1.ID(),\n\t\t\tSecurityServiceIds: pulumi.StringArray{\n\t\t\t\tsecurityservice1.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.Network;\nimport com.pulumi.openstack.networking.NetworkArgs;\nimport com.pulumi.openstack.networking.Subnet;\nimport com.pulumi.openstack.networking.SubnetArgs;\nimport com.pulumi.openstack.sharedfilesystem.SecurityService;\nimport com.pulumi.openstack.sharedfilesystem.SecurityServiceArgs;\nimport com.pulumi.openstack.sharedfilesystem.ShareNetwork;\nimport com.pulumi.openstack.sharedfilesystem.ShareNetworkArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var network1 = new Network(\"network1\", NetworkArgs.builder() \n .name(\"network_1\")\n .adminStateUp(\"true\")\n .build());\n\n var subnet1 = new Subnet(\"subnet1\", SubnetArgs.builder() \n .name(\"subnet_1\")\n .cidr(\"192.168.199.0/24\")\n .ipVersion(4)\n .networkId(network1.id())\n .build());\n\n var securityservice1 = new SecurityService(\"securityservice1\", SecurityServiceArgs.builder() \n .name(\"security\")\n .description(\"created by terraform\")\n .type(\"active_directory\")\n .server(\"192.168.199.10\")\n .dnsIp(\"192.168.199.10\")\n .domain(\"example.com\")\n .ou(\"CN=Computers,DC=example,DC=com\")\n .user(\"joinDomainUser\")\n .password(\"s8cret\")\n .build());\n\n var sharenetwork1 = new ShareNetwork(\"sharenetwork1\", ShareNetworkArgs.builder() \n .name(\"test_sharenetwork\")\n .description(\"test share network with security services\")\n .neutronNetId(network1.id())\n .neutronSubnetId(subnet1.id())\n .securityServiceIds(securityservice1.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n network1:\n type: openstack:networking:Network\n name: network_1\n properties:\n name: network_1\n adminStateUp: 'true'\n subnet1:\n type: openstack:networking:Subnet\n name: subnet_1\n properties:\n name: subnet_1\n cidr: 192.168.199.0/24\n ipVersion: 4\n networkId: ${network1.id}\n securityservice1:\n type: openstack:sharedfilesystem:SecurityService\n name: securityservice_1\n properties:\n name: security\n description: created by terraform\n type: active_directory\n server: 192.168.199.10\n dnsIp: 192.168.199.10\n domain: example.com\n ou: CN=Computers,DC=example,DC=com\n user: joinDomainUser\n password: s8cret\n sharenetwork1:\n type: openstack:sharedfilesystem:ShareNetwork\n name: sharenetwork_1\n properties:\n name: test_sharenetwork\n description: test share network with security services\n neutronNetId: ${network1.id}\n neutronSubnetId: ${subnet1.id}\n securityServiceIds:\n - ${securityservice1.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThis resource can be imported by specifying the ID of the share network:\n\n```sh\n$ pulumi import openstack:sharedfilesystem/shareNetwork:ShareNetwork sharenetwork_1 id\n```\n", "properties": { "cidr": { "type": "string", @@ -18660,7 +18422,7 @@ } }, "openstack:vpnaas/endpointGroup:EndpointGroup": { - "description": "Manages a V2 Neutron Endpoint Group resource within OpenStack.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst group1 = new openstack.vpnaas.EndpointGroup(\"group_1\", {\n name: \"Group 1\",\n type: \"cidr\",\n endpoints: [\n \"10.2.0.0/24\",\n \"10.3.0.0/24\",\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\ngroup1 = openstack.vpnaas.EndpointGroup(\"group_1\",\n name=\"Group 1\",\n type=\"cidr\",\n endpoints=[\n \"10.2.0.0/24\",\n \"10.3.0.0/24\",\n ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var group1 = new OpenStack.VPNaaS.EndpointGroup(\"group_1\", new()\n {\n Name = \"Group 1\",\n Type = \"cidr\",\n Endpoints = new[]\n {\n \"10.2.0.0/24\",\n \"10.3.0.0/24\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/vpnaas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := vpnaas.NewEndpointGroup(ctx, \"group_1\", \u0026vpnaas.EndpointGroupArgs{\n\t\t\tName: pulumi.String(\"Group 1\"),\n\t\t\tType: pulumi.String(\"cidr\"),\n\t\t\tEndpoints: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.2.0.0/24\"),\n\t\t\t\tpulumi.String(\"10.3.0.0/24\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.vpnaas.EndpointGroup;\nimport com.pulumi.openstack.vpnaas.EndpointGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var group1 = new EndpointGroup(\"group1\", EndpointGroupArgs.builder() \n .name(\"Group 1\")\n .type(\"cidr\")\n .endpoints( \n \"10.2.0.0/24\",\n \"10.3.0.0/24\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n group1:\n type: openstack:vpnaas:EndpointGroup\n name: group_1\n properties:\n name: Group 1\n type: cidr\n endpoints:\n - 10.2.0.0/24\n - 10.3.0.0/24\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nGroups can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import openstack:vpnaas/endpointGroup:EndpointGroup group_1 832cb7f3-59fe-40cf-8f64-8350ffc03272\n```\n", + "description": "Manages a V2 Neutron Endpoint Group resource within OpenStack.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst group1 = new openstack.vpnaas.EndpointGroup(\"group_1\", {\n name: \"Group 1\",\n type: \"cidr\",\n endpoints: [\n \"10.2.0.0/24\",\n \"10.3.0.0/24\",\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\ngroup1 = openstack.vpnaas.EndpointGroup(\"group_1\",\n name=\"Group 1\",\n type=\"cidr\",\n endpoints=[\n \"10.2.0.0/24\",\n \"10.3.0.0/24\",\n ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var group1 = new OpenStack.VPNaaS.EndpointGroup(\"group_1\", new()\n {\n Name = \"Group 1\",\n Type = \"cidr\",\n Endpoints = new[]\n {\n \"10.2.0.0/24\",\n \"10.3.0.0/24\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/vpnaas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := vpnaas.NewEndpointGroup(ctx, \"group_1\", \u0026vpnaas.EndpointGroupArgs{\n\t\t\tName: pulumi.String(\"Group 1\"),\n\t\t\tType: pulumi.String(\"cidr\"),\n\t\t\tEndpoints: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.2.0.0/24\"),\n\t\t\t\tpulumi.String(\"10.3.0.0/24\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.vpnaas.EndpointGroup;\nimport com.pulumi.openstack.vpnaas.EndpointGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var group1 = new EndpointGroup(\"group1\", EndpointGroupArgs.builder() \n .name(\"Group 1\")\n .type(\"cidr\")\n .endpoints( \n \"10.2.0.0/24\",\n \"10.3.0.0/24\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n group1:\n type: openstack:vpnaas:EndpointGroup\n name: group_1\n properties:\n name: Group 1\n type: cidr\n endpoints:\n - 10.2.0.0/24\n - 10.3.0.0/24\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nGroups can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import openstack:vpnaas/endpointGroup:EndpointGroup group_1 832cb7f3-59fe-40cf-8f64-8350ffc03272\n```\n", "properties": { "description": { "type": "string", @@ -18791,7 +18553,7 @@ } }, "openstack:vpnaas/ikePolicy:IkePolicy": { - "description": "Manages a V2 Neutron IKE policy resource within OpenStack.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst policy1 = new openstack.vpnaas.IkePolicy(\"policy_1\", {name: \"my_policy\"});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\npolicy1 = openstack.vpnaas.IkePolicy(\"policy_1\", name=\"my_policy\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var policy1 = new OpenStack.VPNaaS.IkePolicy(\"policy_1\", new()\n {\n Name = \"my_policy\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/vpnaas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := vpnaas.NewIkePolicy(ctx, \"policy_1\", \u0026vpnaas.IkePolicyArgs{\n\t\t\tName: pulumi.String(\"my_policy\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.vpnaas.IkePolicy;\nimport com.pulumi.openstack.vpnaas.IkePolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var policy1 = new IkePolicy(\"policy1\", IkePolicyArgs.builder() \n .name(\"my_policy\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n policy1:\n type: openstack:vpnaas:IkePolicy\n name: policy_1\n properties:\n name: my_policy\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nServices can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import openstack:vpnaas/ikePolicy:IkePolicy policy_1 832cb7f3-59fe-40cf-8f64-8350ffc03272\n```\n", + "description": "Manages a V2 Neutron IKE policy resource within OpenStack.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst policy1 = new openstack.vpnaas.IkePolicy(\"policy_1\", {name: \"my_policy\"});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\npolicy1 = openstack.vpnaas.IkePolicy(\"policy_1\", name=\"my_policy\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var policy1 = new OpenStack.VPNaaS.IkePolicy(\"policy_1\", new()\n {\n Name = \"my_policy\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/vpnaas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := vpnaas.NewIkePolicy(ctx, \"policy_1\", \u0026vpnaas.IkePolicyArgs{\n\t\t\tName: pulumi.String(\"my_policy\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.vpnaas.IkePolicy;\nimport com.pulumi.openstack.vpnaas.IkePolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var policy1 = new IkePolicy(\"policy1\", IkePolicyArgs.builder() \n .name(\"my_policy\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n policy1:\n type: openstack:vpnaas:IkePolicy\n name: policy_1\n properties:\n name: my_policy\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nServices can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import openstack:vpnaas/ikePolicy:IkePolicy policy_1 832cb7f3-59fe-40cf-8f64-8350ffc03272\n```\n", "properties": { "authAlgorithm": { "type": "string", @@ -18807,7 +18569,7 @@ }, "ikeVersion": { "type": "string", - "description": "The IKE mode. A valid value is v1 or v2. Default is v1.\nChanging this updates the existing policy.\n" + "description": "The IKE version. A valid value is v1 or v2. Default is v1.\nChanging this updates the existing policy.\n" }, "lifetimes": { "type": "array", @@ -18865,7 +18627,7 @@ }, "ikeVersion": { "type": "string", - "description": "The IKE mode. A valid value is v1 or v2. Default is v1.\nChanging this updates the existing policy.\n" + "description": "The IKE version. A valid value is v1 or v2. Default is v1.\nChanging this updates the existing policy.\n" }, "lifetimes": { "type": "array", @@ -18922,7 +18684,7 @@ }, "ikeVersion": { "type": "string", - "description": "The IKE mode. A valid value is v1 or v2. Default is v1.\nChanging this updates the existing policy.\n" + "description": "The IKE version. A valid value is v1 or v2. Default is v1.\nChanging this updates the existing policy.\n" }, "lifetimes": { "type": "array", @@ -18966,7 +18728,7 @@ } }, "openstack:vpnaas/ipSecPolicy:IpSecPolicy": { - "description": "Manages a V2 Neutron IPSec policy resource within OpenStack.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst policy1 = new openstack.vpnaas.IpSecPolicy(\"policy_1\", {name: \"my_policy\"});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\npolicy1 = openstack.vpnaas.IpSecPolicy(\"policy_1\", name=\"my_policy\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var policy1 = new OpenStack.VPNaaS.IpSecPolicy(\"policy_1\", new()\n {\n Name = \"my_policy\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/vpnaas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := vpnaas.NewIpSecPolicy(ctx, \"policy_1\", \u0026vpnaas.IpSecPolicyArgs{\n\t\t\tName: pulumi.String(\"my_policy\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.vpnaas.IpSecPolicy;\nimport com.pulumi.openstack.vpnaas.IpSecPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var policy1 = new IpSecPolicy(\"policy1\", IpSecPolicyArgs.builder() \n .name(\"my_policy\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n policy1:\n type: openstack:vpnaas:IpSecPolicy\n name: policy_1\n properties:\n name: my_policy\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nPolicies can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import openstack:vpnaas/ipSecPolicy:IpSecPolicy policy_1 832cb7f3-59fe-40cf-8f64-8350ffc03272\n```\n", + "description": "Manages a V2 Neutron IPSec policy resource within OpenStack.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst policy1 = new openstack.vpnaas.IpSecPolicy(\"policy_1\", {name: \"my_policy\"});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\npolicy1 = openstack.vpnaas.IpSecPolicy(\"policy_1\", name=\"my_policy\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var policy1 = new OpenStack.VPNaaS.IpSecPolicy(\"policy_1\", new()\n {\n Name = \"my_policy\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/vpnaas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := vpnaas.NewIpSecPolicy(ctx, \"policy_1\", \u0026vpnaas.IpSecPolicyArgs{\n\t\t\tName: pulumi.String(\"my_policy\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.vpnaas.IpSecPolicy;\nimport com.pulumi.openstack.vpnaas.IpSecPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var policy1 = new IpSecPolicy(\"policy1\", IpSecPolicyArgs.builder() \n .name(\"my_policy\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n policy1:\n type: openstack:vpnaas:IpSecPolicy\n name: policy_1\n properties:\n name: my_policy\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nPolicies can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import openstack:vpnaas/ipSecPolicy:IpSecPolicy policy_1 832cb7f3-59fe-40cf-8f64-8350ffc03272\n```\n", "properties": { "authAlgorithm": { "type": "string", @@ -19146,7 +18908,7 @@ } }, "openstack:vpnaas/service:Service": { - "description": "Manages a V2 Neutron VPN service resource within OpenStack.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst service1 = new openstack.vpnaas.Service(\"service_1\", {\n name: \"my_service\",\n routerId: \"14a75700-fc03-4602-9294-26ee44f366b3\",\n adminStateUp: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nservice1 = openstack.vpnaas.Service(\"service_1\",\n name=\"my_service\",\n router_id=\"14a75700-fc03-4602-9294-26ee44f366b3\",\n admin_state_up=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var service1 = new OpenStack.VPNaaS.Service(\"service_1\", new()\n {\n Name = \"my_service\",\n RouterId = \"14a75700-fc03-4602-9294-26ee44f366b3\",\n AdminStateUp = true,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/vpnaas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := vpnaas.NewService(ctx, \"service_1\", \u0026vpnaas.ServiceArgs{\n\t\t\tName: pulumi.String(\"my_service\"),\n\t\t\tRouterId: pulumi.String(\"14a75700-fc03-4602-9294-26ee44f366b3\"),\n\t\t\tAdminStateUp: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.vpnaas.Service;\nimport com.pulumi.openstack.vpnaas.ServiceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var service1 = new Service(\"service1\", ServiceArgs.builder() \n .name(\"my_service\")\n .routerId(\"14a75700-fc03-4602-9294-26ee44f366b3\")\n .adminStateUp(\"true\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n service1:\n type: openstack:vpnaas:Service\n name: service_1\n properties:\n name: my_service\n routerId: 14a75700-fc03-4602-9294-26ee44f366b3\n adminStateUp: 'true'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nServices can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import openstack:vpnaas/service:Service service_1 832cb7f3-59fe-40cf-8f64-8350ffc03272\n```\n", + "description": "Manages a V2 Neutron VPN service resource within OpenStack.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst service1 = new openstack.vpnaas.Service(\"service_1\", {\n name: \"my_service\",\n routerId: \"14a75700-fc03-4602-9294-26ee44f366b3\",\n adminStateUp: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nservice1 = openstack.vpnaas.Service(\"service_1\",\n name=\"my_service\",\n router_id=\"14a75700-fc03-4602-9294-26ee44f366b3\",\n admin_state_up=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var service1 = new OpenStack.VPNaaS.Service(\"service_1\", new()\n {\n Name = \"my_service\",\n RouterId = \"14a75700-fc03-4602-9294-26ee44f366b3\",\n AdminStateUp = true,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/vpnaas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := vpnaas.NewService(ctx, \"service_1\", \u0026vpnaas.ServiceArgs{\n\t\t\tName: pulumi.String(\"my_service\"),\n\t\t\tRouterId: pulumi.String(\"14a75700-fc03-4602-9294-26ee44f366b3\"),\n\t\t\tAdminStateUp: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.vpnaas.Service;\nimport com.pulumi.openstack.vpnaas.ServiceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var service1 = new Service(\"service1\", ServiceArgs.builder() \n .name(\"my_service\")\n .routerId(\"14a75700-fc03-4602-9294-26ee44f366b3\")\n .adminStateUp(\"true\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n service1:\n type: openstack:vpnaas:Service\n name: service_1\n properties:\n name: my_service\n routerId: 14a75700-fc03-4602-9294-26ee44f366b3\n adminStateUp: 'true'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nServices can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import openstack:vpnaas/service:Service service_1 832cb7f3-59fe-40cf-8f64-8350ffc03272\n```\n", "properties": { "adminStateUp": { "type": "boolean", @@ -19310,7 +19072,7 @@ } }, "openstack:vpnaas/siteConnection:SiteConnection": { - "description": "Manages a V2 Neutron IPSec site connection resource within OpenStack.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst conn1 = new openstack.vpnaas.SiteConnection(\"conn_1\", {\n name: \"connection_1\",\n ikepolicyId: policy2.id,\n ipsecpolicyId: policy1.id,\n vpnserviceId: service1.id,\n psk: \"secret\",\n peerAddress: \"192.168.10.1\",\n localEpGroupId: group2.id,\n peerEpGroupId: group1.id,\n dpds: [{\n action: \"restart\",\n timeout: 42,\n interval: 21,\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nconn1 = openstack.vpnaas.SiteConnection(\"conn_1\",\n name=\"connection_1\",\n ikepolicy_id=policy2[\"id\"],\n ipsecpolicy_id=policy1[\"id\"],\n vpnservice_id=service1[\"id\"],\n psk=\"secret\",\n peer_address=\"192.168.10.1\",\n local_ep_group_id=group2[\"id\"],\n peer_ep_group_id=group1[\"id\"],\n dpds=[openstack.vpnaas.SiteConnectionDpdArgs(\n action=\"restart\",\n timeout=42,\n interval=21,\n )])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var conn1 = new OpenStack.VPNaaS.SiteConnection(\"conn_1\", new()\n {\n Name = \"connection_1\",\n IkepolicyId = policy2.Id,\n IpsecpolicyId = policy1.Id,\n VpnserviceId = service1.Id,\n Psk = \"secret\",\n PeerAddress = \"192.168.10.1\",\n LocalEpGroupId = group2.Id,\n PeerEpGroupId = group1.Id,\n Dpds = new[]\n {\n new OpenStack.VPNaaS.Inputs.SiteConnectionDpdArgs\n {\n Action = \"restart\",\n Timeout = 42,\n Interval = 21,\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/vpnaas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := vpnaas.NewSiteConnection(ctx, \"conn_1\", \u0026vpnaas.SiteConnectionArgs{\n\t\t\tName: pulumi.String(\"connection_1\"),\n\t\t\tIkepolicyId: pulumi.Any(policy2.Id),\n\t\t\tIpsecpolicyId: pulumi.Any(policy1.Id),\n\t\t\tVpnserviceId: pulumi.Any(service1.Id),\n\t\t\tPsk: pulumi.String(\"secret\"),\n\t\t\tPeerAddress: pulumi.String(\"192.168.10.1\"),\n\t\t\tLocalEpGroupId: pulumi.Any(group2.Id),\n\t\t\tPeerEpGroupId: pulumi.Any(group1.Id),\n\t\t\tDpds: vpnaas.SiteConnectionDpdArray{\n\t\t\t\t\u0026vpnaas.SiteConnectionDpdArgs{\n\t\t\t\t\tAction: pulumi.String(\"restart\"),\n\t\t\t\t\tTimeout: pulumi.Int(42),\n\t\t\t\t\tInterval: pulumi.Int(21),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.vpnaas.SiteConnection;\nimport com.pulumi.openstack.vpnaas.SiteConnectionArgs;\nimport com.pulumi.openstack.vpnaas.inputs.SiteConnectionDpdArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var conn1 = new SiteConnection(\"conn1\", SiteConnectionArgs.builder() \n .name(\"connection_1\")\n .ikepolicyId(policy2.id())\n .ipsecpolicyId(policy1.id())\n .vpnserviceId(service1.id())\n .psk(\"secret\")\n .peerAddress(\"192.168.10.1\")\n .localEpGroupId(group2.id())\n .peerEpGroupId(group1.id())\n .dpds(SiteConnectionDpdArgs.builder()\n .action(\"restart\")\n .timeout(42)\n .interval(21)\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n conn1:\n type: openstack:vpnaas:SiteConnection\n name: conn_1\n properties:\n name: connection_1\n ikepolicyId: ${policy2.id}\n ipsecpolicyId: ${policy1.id}\n vpnserviceId: ${service1.id}\n psk: secret\n peerAddress: 192.168.10.1\n localEpGroupId: ${group2.id}\n peerEpGroupId: ${group1.id}\n dpds:\n - action: restart\n timeout: 42\n interval: 21\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nSite Connections can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import openstack:vpnaas/siteConnection:SiteConnection conn_1 832cb7f3-59fe-40cf-8f64-8350ffc03272\n```\n", + "description": "Manages a V2 Neutron IPSec site connection resource within OpenStack.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst conn1 = new openstack.vpnaas.SiteConnection(\"conn_1\", {\n name: \"connection_1\",\n ikepolicyId: policy2.id,\n ipsecpolicyId: policy1.id,\n vpnserviceId: service1.id,\n psk: \"secret\",\n peerAddress: \"192.168.10.1\",\n localEpGroupId: group2.id,\n peerEpGroupId: group1.id,\n dpds: [{\n action: \"restart\",\n timeout: 42,\n interval: 21,\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nconn1 = openstack.vpnaas.SiteConnection(\"conn_1\",\n name=\"connection_1\",\n ikepolicy_id=policy2[\"id\"],\n ipsecpolicy_id=policy1[\"id\"],\n vpnservice_id=service1[\"id\"],\n psk=\"secret\",\n peer_address=\"192.168.10.1\",\n local_ep_group_id=group2[\"id\"],\n peer_ep_group_id=group1[\"id\"],\n dpds=[openstack.vpnaas.SiteConnectionDpdArgs(\n action=\"restart\",\n timeout=42,\n interval=21,\n )])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var conn1 = new OpenStack.VPNaaS.SiteConnection(\"conn_1\", new()\n {\n Name = \"connection_1\",\n IkepolicyId = policy2.Id,\n IpsecpolicyId = policy1.Id,\n VpnserviceId = service1.Id,\n Psk = \"secret\",\n PeerAddress = \"192.168.10.1\",\n LocalEpGroupId = group2.Id,\n PeerEpGroupId = group1.Id,\n Dpds = new[]\n {\n new OpenStack.VPNaaS.Inputs.SiteConnectionDpdArgs\n {\n Action = \"restart\",\n Timeout = 42,\n Interval = 21,\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/vpnaas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := vpnaas.NewSiteConnection(ctx, \"conn_1\", \u0026vpnaas.SiteConnectionArgs{\n\t\t\tName: pulumi.String(\"connection_1\"),\n\t\t\tIkepolicyId: pulumi.Any(policy2.Id),\n\t\t\tIpsecpolicyId: pulumi.Any(policy1.Id),\n\t\t\tVpnserviceId: pulumi.Any(service1.Id),\n\t\t\tPsk: pulumi.String(\"secret\"),\n\t\t\tPeerAddress: pulumi.String(\"192.168.10.1\"),\n\t\t\tLocalEpGroupId: pulumi.Any(group2.Id),\n\t\t\tPeerEpGroupId: pulumi.Any(group1.Id),\n\t\t\tDpds: vpnaas.SiteConnectionDpdArray{\n\t\t\t\t\u0026vpnaas.SiteConnectionDpdArgs{\n\t\t\t\t\tAction: pulumi.String(\"restart\"),\n\t\t\t\t\tTimeout: pulumi.Int(42),\n\t\t\t\t\tInterval: pulumi.Int(21),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.vpnaas.SiteConnection;\nimport com.pulumi.openstack.vpnaas.SiteConnectionArgs;\nimport com.pulumi.openstack.vpnaas.inputs.SiteConnectionDpdArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var conn1 = new SiteConnection(\"conn1\", SiteConnectionArgs.builder() \n .name(\"connection_1\")\n .ikepolicyId(policy2.id())\n .ipsecpolicyId(policy1.id())\n .vpnserviceId(service1.id())\n .psk(\"secret\")\n .peerAddress(\"192.168.10.1\")\n .localEpGroupId(group2.id())\n .peerEpGroupId(group1.id())\n .dpds(SiteConnectionDpdArgs.builder()\n .action(\"restart\")\n .timeout(42)\n .interval(21)\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n conn1:\n type: openstack:vpnaas:SiteConnection\n name: conn_1\n properties:\n name: connection_1\n ikepolicyId: ${policy2.id}\n ipsecpolicyId: ${policy1.id}\n vpnserviceId: ${service1.id}\n psk: secret\n peerAddress: 192.168.10.1\n localEpGroupId: ${group2.id}\n peerEpGroupId: ${group1.id}\n dpds:\n - action: restart\n timeout: 42\n interval: 21\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nSite Connections can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import openstack:vpnaas/siteConnection:SiteConnection conn_1 832cb7f3-59fe-40cf-8f64-8350ffc03272\n```\n", "properties": { "adminStateUp": { "type": "boolean", @@ -19614,7 +19376,7 @@ }, "functions": { "openstack:blockstorage/getAvailabilityZonesV3:getAvailabilityZonesV3": { - "description": "Use this data source to get a list of Block Storage availability zones from OpenStack\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst zones = openstack.blockstorage.getAvailabilityZonesV3({});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nzones = openstack.blockstorage.get_availability_zones_v3()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var zones = OpenStack.BlockStorage.GetAvailabilityZonesV3.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/blockstorage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := blockstorage.GetAvailabilityZonesV3(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.blockstorage.BlockstorageFunctions;\nimport com.pulumi.openstack.blockstorage.inputs.GetAvailabilityZonesV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var zones = BlockstorageFunctions.getAvailabilityZonesV3();\n\n }\n}\n```\n```yaml\nvariables:\n zones:\n fn::invoke:\n Function: openstack:blockstorage:getAvailabilityZonesV3\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Use this data source to get a list of Block Storage availability zones from OpenStack\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst zones = openstack.blockstorage.getAvailabilityZonesV3({});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nzones = openstack.blockstorage.get_availability_zones_v3()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var zones = OpenStack.BlockStorage.GetAvailabilityZonesV3.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/blockstorage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := blockstorage.GetAvailabilityZonesV3(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.blockstorage.BlockstorageFunctions;\nimport com.pulumi.openstack.blockstorage.inputs.GetAvailabilityZonesV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var zones = BlockstorageFunctions.getAvailabilityZonesV3();\n\n }\n}\n```\n```yaml\nvariables:\n zones:\n fn::invoke:\n Function: openstack:blockstorage:getAvailabilityZonesV3\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "inputs": { "description": "A collection of arguments for invoking getAvailabilityZonesV3.\n", "properties": { @@ -19661,7 +19423,7 @@ } }, "openstack:blockstorage/getQuotasetV3:getQuotasetV3": { - "description": "Use this data source to get the blockstorage quotaset v3 of an OpenStack project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst quota = openstack.blockstorage.getQuotasetV3({\n projectId: \"2e367a3d29f94fd988e6ec54e305ec9d\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nquota = openstack.blockstorage.get_quotaset_v3(project_id=\"2e367a3d29f94fd988e6ec54e305ec9d\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var quota = OpenStack.BlockStorage.GetQuotasetV3.Invoke(new()\n {\n ProjectId = \"2e367a3d29f94fd988e6ec54e305ec9d\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/blockstorage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := blockstorage.GetQuotasetV3(ctx, \u0026blockstorage.GetQuotasetV3Args{\n\t\t\tProjectId: \"2e367a3d29f94fd988e6ec54e305ec9d\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.blockstorage.BlockstorageFunctions;\nimport com.pulumi.openstack.blockstorage.inputs.GetQuotasetV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var quota = BlockstorageFunctions.getQuotasetV3(GetQuotasetV3Args.builder()\n .projectId(\"2e367a3d29f94fd988e6ec54e305ec9d\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n quota:\n fn::invoke:\n Function: openstack:blockstorage:getQuotasetV3\n Arguments:\n projectId: 2e367a3d29f94fd988e6ec54e305ec9d\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Use this data source to get the blockstorage quotaset v3 of an OpenStack project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst quota = openstack.blockstorage.getQuotasetV3({\n projectId: \"2e367a3d29f94fd988e6ec54e305ec9d\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nquota = openstack.blockstorage.get_quotaset_v3(project_id=\"2e367a3d29f94fd988e6ec54e305ec9d\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var quota = OpenStack.BlockStorage.GetQuotasetV3.Invoke(new()\n {\n ProjectId = \"2e367a3d29f94fd988e6ec54e305ec9d\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/blockstorage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := blockstorage.GetQuotasetV3(ctx, \u0026blockstorage.GetQuotasetV3Args{\n\t\t\tProjectId: \"2e367a3d29f94fd988e6ec54e305ec9d\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.blockstorage.BlockstorageFunctions;\nimport com.pulumi.openstack.blockstorage.inputs.GetQuotasetV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var quota = BlockstorageFunctions.getQuotasetV3(GetQuotasetV3Args.builder()\n .projectId(\"2e367a3d29f94fd988e6ec54e305ec9d\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n quota:\n fn::invoke:\n Function: openstack:blockstorage:getQuotasetV3\n Arguments:\n projectId: 2e367a3d29f94fd988e6ec54e305ec9d\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "inputs": { "description": "A collection of arguments for invoking getQuotasetV3.\n", "properties": { @@ -19749,7 +19511,7 @@ } }, "openstack:blockstorage/getSnapshotV2:getSnapshotV2": { - "description": "Use this data source to get information about an existing snapshot.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst snapshot1 = openstack.blockstorage.getSnapshotV2({\n name: \"snapshot_1\",\n mostRecent: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nsnapshot1 = openstack.blockstorage.get_snapshot_v2(name=\"snapshot_1\",\n most_recent=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var snapshot1 = OpenStack.BlockStorage.GetSnapshotV2.Invoke(new()\n {\n Name = \"snapshot_1\",\n MostRecent = true,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/blockstorage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := blockstorage.GetSnapshotV2(ctx, \u0026blockstorage.GetSnapshotV2Args{\n\t\t\tName: pulumi.StringRef(\"snapshot_1\"),\n\t\t\tMostRecent: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.blockstorage.BlockstorageFunctions;\nimport com.pulumi.openstack.blockstorage.inputs.GetSnapshotV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var snapshot1 = BlockstorageFunctions.getSnapshotV2(GetSnapshotV2Args.builder()\n .name(\"snapshot_1\")\n .mostRecent(true)\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n snapshot1:\n fn::invoke:\n Function: openstack:blockstorage:getSnapshotV2\n Arguments:\n name: snapshot_1\n mostRecent: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Use this data source to get information about an existing snapshot.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst snapshot1 = openstack.blockstorage.getSnapshotV2({\n name: \"snapshot_1\",\n mostRecent: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nsnapshot1 = openstack.blockstorage.get_snapshot_v2(name=\"snapshot_1\",\n most_recent=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var snapshot1 = OpenStack.BlockStorage.GetSnapshotV2.Invoke(new()\n {\n Name = \"snapshot_1\",\n MostRecent = true,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/blockstorage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := blockstorage.GetSnapshotV2(ctx, \u0026blockstorage.GetSnapshotV2Args{\n\t\t\tName: pulumi.StringRef(\"snapshot_1\"),\n\t\t\tMostRecent: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.blockstorage.BlockstorageFunctions;\nimport com.pulumi.openstack.blockstorage.inputs.GetSnapshotV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var snapshot1 = BlockstorageFunctions.getSnapshotV2(GetSnapshotV2Args.builder()\n .name(\"snapshot_1\")\n .mostRecent(true)\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n snapshot1:\n fn::invoke:\n Function: openstack:blockstorage:getSnapshotV2\n Arguments:\n name: snapshot_1\n mostRecent: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "inputs": { "description": "A collection of arguments for invoking getSnapshotV2.\n", "properties": { @@ -19832,7 +19594,7 @@ } }, "openstack:blockstorage/getSnapshotV3:getSnapshotV3": { - "description": "Use this data source to get information about an existing snapshot.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst snapshot1 = openstack.blockstorage.getSnapshotV3({\n name: \"snapshot_1\",\n mostRecent: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nsnapshot1 = openstack.blockstorage.get_snapshot_v3(name=\"snapshot_1\",\n most_recent=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var snapshot1 = OpenStack.BlockStorage.GetSnapshotV3.Invoke(new()\n {\n Name = \"snapshot_1\",\n MostRecent = true,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/blockstorage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := blockstorage.GetSnapshotV3(ctx, \u0026blockstorage.GetSnapshotV3Args{\n\t\t\tName: pulumi.StringRef(\"snapshot_1\"),\n\t\t\tMostRecent: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.blockstorage.BlockstorageFunctions;\nimport com.pulumi.openstack.blockstorage.inputs.GetSnapshotV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var snapshot1 = BlockstorageFunctions.getSnapshotV3(GetSnapshotV3Args.builder()\n .name(\"snapshot_1\")\n .mostRecent(true)\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n snapshot1:\n fn::invoke:\n Function: openstack:blockstorage:getSnapshotV3\n Arguments:\n name: snapshot_1\n mostRecent: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Use this data source to get information about an existing snapshot.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst snapshot1 = openstack.blockstorage.getSnapshotV3({\n name: \"snapshot_1\",\n mostRecent: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nsnapshot1 = openstack.blockstorage.get_snapshot_v3(name=\"snapshot_1\",\n most_recent=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var snapshot1 = OpenStack.BlockStorage.GetSnapshotV3.Invoke(new()\n {\n Name = \"snapshot_1\",\n MostRecent = true,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/blockstorage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := blockstorage.GetSnapshotV3(ctx, \u0026blockstorage.GetSnapshotV3Args{\n\t\t\tName: pulumi.StringRef(\"snapshot_1\"),\n\t\t\tMostRecent: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.blockstorage.BlockstorageFunctions;\nimport com.pulumi.openstack.blockstorage.inputs.GetSnapshotV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var snapshot1 = BlockstorageFunctions.getSnapshotV3(GetSnapshotV3Args.builder()\n .name(\"snapshot_1\")\n .mostRecent(true)\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n snapshot1:\n fn::invoke:\n Function: openstack:blockstorage:getSnapshotV3\n Arguments:\n name: snapshot_1\n mostRecent: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "inputs": { "description": "A collection of arguments for invoking getSnapshotV3.\n", "properties": { @@ -19915,7 +19677,7 @@ } }, "openstack:blockstorage/getVolumeV2:getVolumeV2": { - "description": "Use this data source to get information about an existing volume.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst volume1 = openstack.blockstorage.getVolumeV2({\n name: \"volume_1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nvolume1 = openstack.blockstorage.get_volume_v2(name=\"volume_1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var volume1 = OpenStack.BlockStorage.GetVolumeV2.Invoke(new()\n {\n Name = \"volume_1\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/blockstorage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := blockstorage.LookupVolumeV2(ctx, \u0026blockstorage.LookupVolumeV2Args{\n\t\t\tName: pulumi.StringRef(\"volume_1\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.blockstorage.BlockstorageFunctions;\nimport com.pulumi.openstack.blockstorage.inputs.GetVolumeV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var volume1 = BlockstorageFunctions.getVolumeV2(GetVolumeV2Args.builder()\n .name(\"volume_1\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n volume1:\n fn::invoke:\n Function: openstack:blockstorage:getVolumeV2\n Arguments:\n name: volume_1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Use this data source to get information about an existing volume.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst volume1 = openstack.blockstorage.getVolumeV2({\n name: \"volume_1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nvolume1 = openstack.blockstorage.get_volume_v2(name=\"volume_1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var volume1 = OpenStack.BlockStorage.GetVolumeV2.Invoke(new()\n {\n Name = \"volume_1\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/blockstorage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := blockstorage.LookupVolumeV2(ctx, \u0026blockstorage.LookupVolumeV2Args{\n\t\t\tName: pulumi.StringRef(\"volume_1\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.blockstorage.BlockstorageFunctions;\nimport com.pulumi.openstack.blockstorage.inputs.GetVolumeV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var volume1 = BlockstorageFunctions.getVolumeV2(GetVolumeV2Args.builder()\n .name(\"volume_1\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n volume1:\n fn::invoke:\n Function: openstack:blockstorage:getVolumeV2\n Arguments:\n name: volume_1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "inputs": { "description": "A collection of arguments for invoking getVolumeV2.\n", "properties": { @@ -20007,7 +19769,7 @@ } }, "openstack:blockstorage/getVolumeV3:getVolumeV3": { - "description": "Use this data source to get information about an existing volume.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst volume1 = openstack.blockstorage.getVolumeV3({\n name: \"volume_1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nvolume1 = openstack.blockstorage.get_volume_v3(name=\"volume_1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var volume1 = OpenStack.BlockStorage.GetVolumeV3.Invoke(new()\n {\n Name = \"volume_1\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/blockstorage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := blockstorage.GetVolumeV3(ctx, \u0026blockstorage.GetVolumeV3Args{\n\t\t\tName: pulumi.StringRef(\"volume_1\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.blockstorage.BlockstorageFunctions;\nimport com.pulumi.openstack.blockstorage.inputs.GetVolumeV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var volume1 = BlockstorageFunctions.getVolumeV3(GetVolumeV3Args.builder()\n .name(\"volume_1\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n volume1:\n fn::invoke:\n Function: openstack:blockstorage:getVolumeV3\n Arguments:\n name: volume_1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Use this data source to get information about an existing volume.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst volume1 = openstack.blockstorage.getVolumeV3({\n name: \"volume_1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nvolume1 = openstack.blockstorage.get_volume_v3(name=\"volume_1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var volume1 = OpenStack.BlockStorage.GetVolumeV3.Invoke(new()\n {\n Name = \"volume_1\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/blockstorage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := blockstorage.GetVolumeV3(ctx, \u0026blockstorage.GetVolumeV3Args{\n\t\t\tName: pulumi.StringRef(\"volume_1\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.blockstorage.BlockstorageFunctions;\nimport com.pulumi.openstack.blockstorage.inputs.GetVolumeV3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var volume1 = BlockstorageFunctions.getVolumeV3(GetVolumeV3Args.builder()\n .name(\"volume_1\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n volume1:\n fn::invoke:\n Function: openstack:blockstorage:getVolumeV3\n Arguments:\n name: volume_1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "inputs": { "description": "A collection of arguments for invoking getVolumeV3.\n", "properties": { @@ -20074,10 +19836,6 @@ "description": "See Argument Reference above.\n", "type": "object" }, - "multiattach": { - "description": "Indicates if the volume can be attached to more then one server.\n", - "type": "boolean" - }, "name": { "description": "See Argument Reference above.\n", "type": "string" @@ -20108,7 +19866,6 @@ "bootable", "host", "metadata", - "multiattach", "name", "region", "size", @@ -20121,7 +19878,7 @@ } }, "openstack:compute/getAggregateV2:getAggregateV2": { - "description": "Use this data source to get information about host aggregates\nby name.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst test = openstack.compute.getAggregateV2({\n name: \"test\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\ntest = openstack.compute.get_aggregate_v2(name=\"test\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var test = OpenStack.Compute.GetAggregateV2.Invoke(new()\n {\n Name = \"test\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := compute.LookupAggregateV2(ctx, \u0026compute.LookupAggregateV2Args{\n\t\t\tName: \"test\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.compute.ComputeFunctions;\nimport com.pulumi.openstack.compute.inputs.GetAggregateV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var test = ComputeFunctions.getAggregateV2(GetAggregateV2Args.builder()\n .name(\"test\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n test:\n fn::invoke:\n Function: openstack:compute:getAggregateV2\n Arguments:\n name: test\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Use this data source to get information about host aggregates\nby name.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst test = openstack.compute.getAggregateV2({\n name: \"test\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\ntest = openstack.compute.get_aggregate_v2(name=\"test\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var test = OpenStack.Compute.GetAggregateV2.Invoke(new()\n {\n Name = \"test\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := compute.LookupAggregateV2(ctx, \u0026compute.LookupAggregateV2Args{\n\t\t\tName: \"test\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.compute.ComputeFunctions;\nimport com.pulumi.openstack.compute.inputs.GetAggregateV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var test = ComputeFunctions.getAggregateV2(GetAggregateV2Args.builder()\n .name(\"test\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n test:\n fn::invoke:\n Function: openstack:compute:getAggregateV2\n Arguments:\n name: test\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "inputs": { "description": "A collection of arguments for invoking getAggregateV2.\n", "properties": { @@ -20190,7 +19947,7 @@ } }, "openstack:compute/getAvailabilityZones:getAvailabilityZones": { - "description": "Use this data source to get a list of availability zones from OpenStack\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst zones = openstack.compute.getAvailabilityZones({});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nzones = openstack.compute.get_availability_zones()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var zones = OpenStack.Compute.GetAvailabilityZones.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := compute.GetAvailabilityZones(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.compute.ComputeFunctions;\nimport com.pulumi.openstack.compute.inputs.GetAvailabilityZonesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var zones = ComputeFunctions.getAvailabilityZones();\n\n }\n}\n```\n```yaml\nvariables:\n zones:\n fn::invoke:\n Function: openstack:compute:getAvailabilityZones\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Use this data source to get a list of availability zones from OpenStack\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst zones = openstack.compute.getAvailabilityZones({});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nzones = openstack.compute.get_availability_zones()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var zones = OpenStack.Compute.GetAvailabilityZones.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := compute.GetAvailabilityZones(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.compute.ComputeFunctions;\nimport com.pulumi.openstack.compute.inputs.GetAvailabilityZonesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var zones = ComputeFunctions.getAvailabilityZones();\n\n }\n}\n```\n```yaml\nvariables:\n zones:\n fn::invoke:\n Function: openstack:compute:getAvailabilityZones\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "inputs": { "description": "A collection of arguments for invoking getAvailabilityZones.\n", "properties": { @@ -20235,7 +19992,7 @@ } }, "openstack:compute/getFlavor:getFlavor": { - "description": "Use this data source to get the ID of an available OpenStack flavor.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst small = openstack.compute.getFlavor({\n vcpus: 1,\n ram: 512,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nsmall = openstack.compute.get_flavor(vcpus=1,\n ram=512)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var small = OpenStack.Compute.GetFlavor.Invoke(new()\n {\n Vcpus = 1,\n Ram = 512,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := compute.LookupFlavor(ctx, \u0026compute.LookupFlavorArgs{\n\t\t\tVcpus: pulumi.IntRef(1),\n\t\t\tRam: pulumi.IntRef(512),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.compute.ComputeFunctions;\nimport com.pulumi.openstack.compute.inputs.GetFlavorArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var small = ComputeFunctions.getFlavor(GetFlavorArgs.builder()\n .vcpus(1)\n .ram(512)\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n small:\n fn::invoke:\n Function: openstack:compute:getFlavor\n Arguments:\n vcpus: 1\n ram: 512\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Use this data source to get the ID of an available OpenStack flavor.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst small = openstack.compute.getFlavor({\n vcpus: 1,\n ram: 512,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nsmall = openstack.compute.get_flavor(vcpus=1,\n ram=512)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var small = OpenStack.Compute.GetFlavor.Invoke(new()\n {\n Vcpus = 1,\n Ram = 512,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := compute.LookupFlavor(ctx, \u0026compute.LookupFlavorArgs{\n\t\t\tVcpus: pulumi.IntRef(1),\n\t\t\tRam: pulumi.IntRef(512),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.compute.ComputeFunctions;\nimport com.pulumi.openstack.compute.inputs.GetFlavorArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var small = ComputeFunctions.getFlavor(GetFlavorArgs.builder()\n .vcpus(1)\n .ram(512)\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n small:\n fn::invoke:\n Function: openstack:compute:getFlavor\n Arguments:\n vcpus: 1\n ram: 512\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "inputs": { "description": "A collection of arguments for invoking getFlavor.\n", "properties": { @@ -20362,7 +20119,7 @@ } }, "openstack:compute/getHypervisorV2:getHypervisorV2": { - "description": "Use this data source to get information about hypervisors\nby hostname.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst host01 = openstack.compute.getHypervisorV2({\n hostname: \"host01\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nhost01 = openstack.compute.get_hypervisor_v2(hostname=\"host01\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var host01 = OpenStack.Compute.GetHypervisorV2.Invoke(new()\n {\n Hostname = \"host01\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := compute.GetHypervisorV2(ctx, \u0026compute.GetHypervisorV2Args{\n\t\t\tHostname: \"host01\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.compute.ComputeFunctions;\nimport com.pulumi.openstack.compute.inputs.GetHypervisorV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var host01 = ComputeFunctions.getHypervisorV2(GetHypervisorV2Args.builder()\n .hostname(\"host01\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n host01:\n fn::invoke:\n Function: openstack:compute:getHypervisorV2\n Arguments:\n hostname: host01\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Use this data source to get information about hypervisors\nby hostname.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst host01 = openstack.compute.getHypervisorV2({\n hostname: \"host01\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nhost01 = openstack.compute.get_hypervisor_v2(hostname=\"host01\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var host01 = OpenStack.Compute.GetHypervisorV2.Invoke(new()\n {\n Hostname = \"host01\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := compute.GetHypervisorV2(ctx, \u0026compute.GetHypervisorV2Args{\n\t\t\tHostname: \"host01\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.compute.ComputeFunctions;\nimport com.pulumi.openstack.compute.inputs.GetHypervisorV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var host01 = ComputeFunctions.getHypervisorV2(GetHypervisorV2Args.builder()\n .hostname(\"host01\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n host01:\n fn::invoke:\n Function: openstack:compute:getHypervisorV2\n Arguments:\n hostname: host01\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "inputs": { "description": "A collection of arguments for invoking getHypervisorV2.\n", "properties": { @@ -20431,7 +20188,7 @@ } }, "openstack:compute/getInstanceV2:getInstanceV2": { - "description": "Use this data source to get the details of a running server\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst instance = openstack.compute.getInstanceV2({\n id: \"2ba26dc6-a12d-4889-8f25-794ea5bf4453\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\ninstance = openstack.compute.get_instance_v2(id=\"2ba26dc6-a12d-4889-8f25-794ea5bf4453\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var instance = OpenStack.Compute.GetInstanceV2.Invoke(new()\n {\n Id = \"2ba26dc6-a12d-4889-8f25-794ea5bf4453\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := compute.GetInstanceV2(ctx, \u0026compute.GetInstanceV2Args{\n\t\t\tId: \"2ba26dc6-a12d-4889-8f25-794ea5bf4453\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.compute.ComputeFunctions;\nimport com.pulumi.openstack.compute.inputs.GetInstanceV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var instance = ComputeFunctions.getInstanceV2(GetInstanceV2Args.builder()\n .id(\"2ba26dc6-a12d-4889-8f25-794ea5bf4453\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n instance:\n fn::invoke:\n Function: openstack:compute:getInstanceV2\n Arguments:\n id: 2ba26dc6-a12d-4889-8f25-794ea5bf4453\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Use this data source to get the details of a running server\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst instance = openstack.compute.getInstanceV2({\n id: \"2ba26dc6-a12d-4889-8f25-794ea5bf4453\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\ninstance = openstack.compute.get_instance_v2(id=\"2ba26dc6-a12d-4889-8f25-794ea5bf4453\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var instance = OpenStack.Compute.GetInstanceV2.Invoke(new()\n {\n Id = \"2ba26dc6-a12d-4889-8f25-794ea5bf4453\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := compute.GetInstanceV2(ctx, \u0026compute.GetInstanceV2Args{\n\t\t\tId: \"2ba26dc6-a12d-4889-8f25-794ea5bf4453\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.compute.ComputeFunctions;\nimport com.pulumi.openstack.compute.inputs.GetInstanceV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var instance = ComputeFunctions.getInstanceV2(GetInstanceV2Args.builder()\n .id(\"2ba26dc6-a12d-4889-8f25-794ea5bf4453\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n instance:\n fn::invoke:\n Function: openstack:compute:getInstanceV2\n Arguments:\n id: 2ba26dc6-a12d-4889-8f25-794ea5bf4453\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "inputs": { "description": "A collection of arguments for invoking getInstanceV2.\n", "properties": { @@ -20573,7 +20330,7 @@ } }, "openstack:compute/getKeypair:getKeypair": { - "description": "Use this data source to get the ID and public key of an OpenStack keypair.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst kp = openstack.compute.getKeypair({\n name: \"sand\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nkp = openstack.compute.get_keypair(name=\"sand\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var kp = OpenStack.Compute.GetKeypair.Invoke(new()\n {\n Name = \"sand\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := compute.LookupKeypair(ctx, \u0026compute.LookupKeypairArgs{\n\t\t\tName: \"sand\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.compute.ComputeFunctions;\nimport com.pulumi.openstack.compute.inputs.GetKeypairArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var kp = ComputeFunctions.getKeypair(GetKeypairArgs.builder()\n .name(\"sand\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n kp:\n fn::invoke:\n Function: openstack:compute:getKeypair\n Arguments:\n name: sand\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Use this data source to get the ID and public key of an OpenStack keypair.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst kp = openstack.compute.getKeypair({\n name: \"sand\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nkp = openstack.compute.get_keypair(name=\"sand\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var kp = OpenStack.Compute.GetKeypair.Invoke(new()\n {\n Name = \"sand\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := compute.LookupKeypair(ctx, \u0026compute.LookupKeypairArgs{\n\t\t\tName: \"sand\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.compute.ComputeFunctions;\nimport com.pulumi.openstack.compute.inputs.GetKeypairArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var kp = ComputeFunctions.getKeypair(GetKeypairArgs.builder()\n .name(\"sand\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n kp:\n fn::invoke:\n Function: openstack:compute:getKeypair\n Arguments:\n name: sand\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "inputs": { "description": "A collection of arguments for invoking getKeypair.\n", "properties": { @@ -20635,7 +20392,7 @@ } }, "openstack:compute/getLimitsV2:getLimitsV2": { - "description": "Use this data source to get the compute limits of an OpenStack project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst limits = openstack.compute.getLimitsV2({\n projectId: \"2e367a3d29f94fd988e6ec54e305ec9d\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nlimits = openstack.compute.get_limits_v2(project_id=\"2e367a3d29f94fd988e6ec54e305ec9d\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var limits = OpenStack.Compute.GetLimitsV2.Invoke(new()\n {\n ProjectId = \"2e367a3d29f94fd988e6ec54e305ec9d\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := compute.GetLimitsV2(ctx, \u0026compute.GetLimitsV2Args{\n\t\t\tProjectId: \"2e367a3d29f94fd988e6ec54e305ec9d\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.compute.ComputeFunctions;\nimport com.pulumi.openstack.compute.inputs.GetLimitsV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var limits = ComputeFunctions.getLimitsV2(GetLimitsV2Args.builder()\n .projectId(\"2e367a3d29f94fd988e6ec54e305ec9d\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n limits:\n fn::invoke:\n Function: openstack:compute:getLimitsV2\n Arguments:\n projectId: 2e367a3d29f94fd988e6ec54e305ec9d\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Use this data source to get the compute limits of an OpenStack project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst limits = openstack.compute.getLimitsV2({\n projectId: \"2e367a3d29f94fd988e6ec54e305ec9d\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nlimits = openstack.compute.get_limits_v2(project_id=\"2e367a3d29f94fd988e6ec54e305ec9d\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var limits = OpenStack.Compute.GetLimitsV2.Invoke(new()\n {\n ProjectId = \"2e367a3d29f94fd988e6ec54e305ec9d\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := compute.GetLimitsV2(ctx, \u0026compute.GetLimitsV2Args{\n\t\t\tProjectId: \"2e367a3d29f94fd988e6ec54e305ec9d\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.compute.ComputeFunctions;\nimport com.pulumi.openstack.compute.inputs.GetLimitsV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var limits = ComputeFunctions.getLimitsV2(GetLimitsV2Args.builder()\n .projectId(\"2e367a3d29f94fd988e6ec54e305ec9d\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n limits:\n fn::invoke:\n Function: openstack:compute:getLimitsV2\n Arguments:\n projectId: 2e367a3d29f94fd988e6ec54e305ec9d\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "inputs": { "description": "A collection of arguments for invoking getLimitsV2.\n", "properties": { @@ -20775,7 +20532,7 @@ } }, "openstack:compute/getQuotaSetV2:getQuotaSetV2": { - "description": "Use this data source to get the compute quotaset of an OpenStack project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst quota = openstack.compute.getQuotaSetV2({\n projectId: \"2e367a3d29f94fd988e6ec54e305ec9d\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nquota = openstack.compute.get_quota_set_v2(project_id=\"2e367a3d29f94fd988e6ec54e305ec9d\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var quota = OpenStack.Compute.GetQuotaSetV2.Invoke(new()\n {\n ProjectId = \"2e367a3d29f94fd988e6ec54e305ec9d\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := compute.LookupQuotaSetV2(ctx, \u0026compute.LookupQuotaSetV2Args{\n\t\t\tProjectId: \"2e367a3d29f94fd988e6ec54e305ec9d\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.compute.ComputeFunctions;\nimport com.pulumi.openstack.compute.inputs.GetQuotaSetV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var quota = ComputeFunctions.getQuotaSetV2(GetQuotaSetV2Args.builder()\n .projectId(\"2e367a3d29f94fd988e6ec54e305ec9d\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n quota:\n fn::invoke:\n Function: openstack:compute:getQuotaSetV2\n Arguments:\n projectId: 2e367a3d29f94fd988e6ec54e305ec9d\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Use this data source to get the compute quotaset of an OpenStack project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst quota = openstack.compute.getQuotaSetV2({\n projectId: \"2e367a3d29f94fd988e6ec54e305ec9d\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nquota = openstack.compute.get_quota_set_v2(project_id=\"2e367a3d29f94fd988e6ec54e305ec9d\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var quota = OpenStack.Compute.GetQuotaSetV2.Invoke(new()\n {\n ProjectId = \"2e367a3d29f94fd988e6ec54e305ec9d\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := compute.LookupQuotaSetV2(ctx, \u0026compute.LookupQuotaSetV2Args{\n\t\t\tProjectId: \"2e367a3d29f94fd988e6ec54e305ec9d\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.compute.ComputeFunctions;\nimport com.pulumi.openstack.compute.inputs.GetQuotaSetV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var quota = ComputeFunctions.getQuotaSetV2(GetQuotaSetV2Args.builder()\n .projectId(\"2e367a3d29f94fd988e6ec54e305ec9d\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n quota:\n fn::invoke:\n Function: openstack:compute:getQuotaSetV2\n Arguments:\n projectId: 2e367a3d29f94fd988e6ec54e305ec9d\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "inputs": { "description": "A collection of arguments for invoking getQuotaSetV2.\n", "properties": { @@ -20890,7 +20647,7 @@ } }, "openstack:containerinfra/getCluster:getCluster": { - "description": "Use this data source to get the ID of an available OpenStack Magnum cluster.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst cluster1 = openstack.containerinfra.getCluster({\n name: \"cluster_1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\ncluster1 = openstack.containerinfra.get_cluster(name=\"cluster_1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var cluster1 = OpenStack.ContainerInfra.GetCluster.Invoke(new()\n {\n Name = \"cluster_1\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/containerinfra\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := containerinfra.LookupCluster(ctx, \u0026containerinfra.LookupClusterArgs{\n\t\t\tName: \"cluster_1\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.containerinfra.ContainerinfraFunctions;\nimport com.pulumi.openstack.containerinfra.inputs.GetClusterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var cluster1 = ContainerinfraFunctions.getCluster(GetClusterArgs.builder()\n .name(\"cluster_1\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n cluster1:\n fn::invoke:\n Function: openstack:containerinfra:getCluster\n Arguments:\n name: cluster_1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Use this data source to get the ID of an available OpenStack Magnum cluster.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst cluster1 = openstack.containerinfra.getCluster({\n name: \"cluster_1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\ncluster1 = openstack.containerinfra.get_cluster(name=\"cluster_1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var cluster1 = OpenStack.ContainerInfra.GetCluster.Invoke(new()\n {\n Name = \"cluster_1\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/containerinfra\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := containerinfra.LookupCluster(ctx, \u0026containerinfra.LookupClusterArgs{\n\t\t\tName: \"cluster_1\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.containerinfra.ContainerinfraFunctions;\nimport com.pulumi.openstack.containerinfra.inputs.GetClusterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var cluster1 = ContainerinfraFunctions.getCluster(GetClusterArgs.builder()\n .name(\"cluster_1\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n cluster1:\n fn::invoke:\n Function: openstack:containerinfra:getCluster\n Arguments:\n name: cluster_1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "inputs": { "description": "A collection of arguments for invoking getCluster.\n", "properties": { @@ -21064,7 +20821,7 @@ } }, "openstack:containerinfra/getClusterTemplate:getClusterTemplate": { - "description": "Use this data source to get the ID of an available OpenStack Magnum cluster\ntemplate.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst clustertemplate1 = openstack.containerinfra.getClusterTemplate({\n name: \"clustertemplate_1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nclustertemplate1 = openstack.containerinfra.get_cluster_template(name=\"clustertemplate_1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var clustertemplate1 = OpenStack.ContainerInfra.GetClusterTemplate.Invoke(new()\n {\n Name = \"clustertemplate_1\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/containerinfra\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := containerinfra.LookupClusterTemplate(ctx, \u0026containerinfra.LookupClusterTemplateArgs{\n\t\t\tName: \"clustertemplate_1\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.containerinfra.ContainerinfraFunctions;\nimport com.pulumi.openstack.containerinfra.inputs.GetClusterTemplateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var clustertemplate1 = ContainerinfraFunctions.getClusterTemplate(GetClusterTemplateArgs.builder()\n .name(\"clustertemplate_1\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n clustertemplate1:\n fn::invoke:\n Function: openstack:containerinfra:getClusterTemplate\n Arguments:\n name: clustertemplate_1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Use this data source to get the ID of an available OpenStack Magnum cluster\ntemplate.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst clustertemplate1 = openstack.containerinfra.getClusterTemplate({\n name: \"clustertemplate_1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nclustertemplate1 = openstack.containerinfra.get_cluster_template(name=\"clustertemplate_1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var clustertemplate1 = OpenStack.ContainerInfra.GetClusterTemplate.Invoke(new()\n {\n Name = \"clustertemplate_1\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/containerinfra\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := containerinfra.LookupClusterTemplate(ctx, \u0026containerinfra.LookupClusterTemplateArgs{\n\t\t\tName: \"clustertemplate_1\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.containerinfra.ContainerinfraFunctions;\nimport com.pulumi.openstack.containerinfra.inputs.GetClusterTemplateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var clustertemplate1 = ContainerinfraFunctions.getClusterTemplate(GetClusterTemplateArgs.builder()\n .name(\"clustertemplate_1\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n clustertemplate1:\n fn::invoke:\n Function: openstack:containerinfra:getClusterTemplate\n Arguments:\n name: clustertemplate_1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "inputs": { "description": "A collection of arguments for invoking getClusterTemplate.\n", "properties": { @@ -21265,7 +21022,7 @@ } }, "openstack:containerinfra/getNodeGroup:getNodeGroup": { - "description": "Use this data source to get information of an available OpenStack Magnum node group.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst nodegroup1 = openstack.containerinfra.getNodeGroup({\n clusterId: \"cluster_1\",\n name: \"nodegroup_1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nnodegroup1 = openstack.containerinfra.get_node_group(cluster_id=\"cluster_1\",\n name=\"nodegroup_1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var nodegroup1 = OpenStack.ContainerInfra.GetNodeGroup.Invoke(new()\n {\n ClusterId = \"cluster_1\",\n Name = \"nodegroup_1\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/containerinfra\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := containerinfra.LookupNodeGroup(ctx, \u0026containerinfra.LookupNodeGroupArgs{\n\t\t\tClusterId: \"cluster_1\",\n\t\t\tName: pulumi.StringRef(\"nodegroup_1\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.containerinfra.ContainerinfraFunctions;\nimport com.pulumi.openstack.containerinfra.inputs.GetNodeGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var nodegroup1 = ContainerinfraFunctions.getNodeGroup(GetNodeGroupArgs.builder()\n .clusterId(\"cluster_1\")\n .name(\"nodegroup_1\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n nodegroup1:\n fn::invoke:\n Function: openstack:containerinfra:getNodeGroup\n Arguments:\n clusterId: cluster_1\n name: nodegroup_1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Use this data source to get information of an available OpenStack Magnum node group.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst nodegroup1 = openstack.containerinfra.getNodeGroup({\n clusterId: \"cluster_1\",\n name: \"nodegroup_1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nnodegroup1 = openstack.containerinfra.get_node_group(cluster_id=\"cluster_1\",\n name=\"nodegroup_1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var nodegroup1 = OpenStack.ContainerInfra.GetNodeGroup.Invoke(new()\n {\n ClusterId = \"cluster_1\",\n Name = \"nodegroup_1\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/containerinfra\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := containerinfra.LookupNodeGroup(ctx, \u0026containerinfra.LookupNodeGroupArgs{\n\t\t\tClusterId: \"cluster_1\",\n\t\t\tName: pulumi.StringRef(\"nodegroup_1\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.containerinfra.ContainerinfraFunctions;\nimport com.pulumi.openstack.containerinfra.inputs.GetNodeGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var nodegroup1 = ContainerinfraFunctions.getNodeGroup(GetNodeGroupArgs.builder()\n .clusterId(\"cluster_1\")\n .name(\"nodegroup_1\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n nodegroup1:\n fn::invoke:\n Function: openstack:containerinfra:getNodeGroup\n Arguments:\n clusterId: cluster_1\n name: nodegroup_1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "inputs": { "description": "A collection of arguments for invoking getNodeGroup.\n", "properties": { @@ -21374,7 +21131,7 @@ } }, "openstack:dns/getDnsZone:getDnsZone": { - "description": "Use this data source to get the ID of an available OpenStack DNS zone.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst zone1 = openstack.dns.getDnsZone({\n name: \"example.com\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nzone1 = openstack.dns.get_dns_zone(name=\"example.com\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var zone1 = OpenStack.Dns.GetDnsZone.Invoke(new()\n {\n Name = \"example.com\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/dns\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := dns.GetDnsZone(ctx, \u0026dns.GetDnsZoneArgs{\n\t\t\tName: pulumi.StringRef(\"example.com\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.dns.DnsFunctions;\nimport com.pulumi.openstack.dns.inputs.GetDnsZoneArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var zone1 = DnsFunctions.getDnsZone(GetDnsZoneArgs.builder()\n .name(\"example.com\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n zone1:\n fn::invoke:\n Function: openstack:dns:getDnsZone\n Arguments:\n name: example.com\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Use this data source to get the ID of an available OpenStack DNS zone.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst zone1 = openstack.dns.getDnsZone({\n name: \"example.com\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nzone1 = openstack.dns.get_dns_zone(name=\"example.com\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var zone1 = OpenStack.Dns.GetDnsZone.Invoke(new()\n {\n Name = \"example.com\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/dns\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := dns.GetDnsZone(ctx, \u0026dns.GetDnsZoneArgs{\n\t\t\tName: pulumi.StringRef(\"example.com\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.dns.DnsFunctions;\nimport com.pulumi.openstack.dns.inputs.GetDnsZoneArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var zone1 = DnsFunctions.getDnsZone(GetDnsZoneArgs.builder()\n .name(\"example.com\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n zone1:\n fn::invoke:\n Function: openstack:dns:getDnsZone\n Arguments:\n name: example.com\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "inputs": { "description": "A collection of arguments for invoking getDnsZone.\n", "properties": { @@ -21553,7 +21310,7 @@ } }, "openstack:firewall/getPolicy:getPolicy": { - "description": "Use this data source to get firewall policy information of an available OpenStack firewall policy.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst policy = openstack.firewall.getPolicy({\n name: \"tf_test_policy\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\npolicy = openstack.firewall.get_policy(name=\"tf_test_policy\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var policy = OpenStack.Firewall.GetPolicy.Invoke(new()\n {\n Name = \"tf_test_policy\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/firewall\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := firewall.LookupPolicy(ctx, \u0026firewall.LookupPolicyArgs{\n\t\t\tName: pulumi.StringRef(\"tf_test_policy\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.firewall.FirewallFunctions;\nimport com.pulumi.openstack.firewall.inputs.GetPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var policy = FirewallFunctions.getPolicy(GetPolicyArgs.builder()\n .name(\"tf_test_policy\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n policy:\n fn::invoke:\n Function: openstack:firewall:getPolicy\n Arguments:\n name: tf_test_policy\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Use this data source to get firewall policy information of an available OpenStack firewall policy.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst policy = openstack.firewall.getPolicy({\n name: \"tf_test_policy\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\npolicy = openstack.firewall.get_policy(name=\"tf_test_policy\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var policy = OpenStack.Firewall.GetPolicy.Invoke(new()\n {\n Name = \"tf_test_policy\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/firewall\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := firewall.LookupPolicy(ctx, \u0026firewall.LookupPolicyArgs{\n\t\t\tName: pulumi.StringRef(\"tf_test_policy\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.firewall.FirewallFunctions;\nimport com.pulumi.openstack.firewall.inputs.GetPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var policy = FirewallFunctions.getPolicy(GetPolicyArgs.builder()\n .name(\"tf_test_policy\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n policy:\n fn::invoke:\n Function: openstack:firewall:getPolicy\n Arguments:\n name: tf_test_policy\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "inputs": { "description": "A collection of arguments for invoking getPolicy.\n", "properties": { @@ -21758,7 +21515,7 @@ } }, "openstack:identity/getEndpoint:getEndpoint": { - "description": "Use this data source to get the ID of an OpenStack endpoint.\n\n\u003e **Note:** This usually requires admin privileges.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst endpoint1 = openstack.identity.getEndpoint({\n serviceName: \"demo\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nendpoint1 = openstack.identity.get_endpoint(service_name=\"demo\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var endpoint1 = OpenStack.Identity.GetEndpoint.Invoke(new()\n {\n ServiceName = \"demo\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/identity\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := identity.GetEndpoint(ctx, \u0026identity.GetEndpointArgs{\n\t\t\tServiceName: pulumi.StringRef(\"demo\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.identity.IdentityFunctions;\nimport com.pulumi.openstack.identity.inputs.GetEndpointArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var endpoint1 = IdentityFunctions.getEndpoint(GetEndpointArgs.builder()\n .serviceName(\"demo\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n endpoint1:\n fn::invoke:\n Function: openstack:identity:getEndpoint\n Arguments:\n serviceName: demo\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Use this data source to get the ID of an OpenStack endpoint.\n\n\u003e **Note:** This usually requires admin privileges.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst endpoint1 = openstack.identity.getEndpoint({\n serviceName: \"demo\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nendpoint1 = openstack.identity.get_endpoint(service_name=\"demo\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var endpoint1 = OpenStack.Identity.GetEndpoint.Invoke(new()\n {\n ServiceName = \"demo\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/identity\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := identity.GetEndpoint(ctx, \u0026identity.GetEndpointArgs{\n\t\t\tServiceName: pulumi.StringRef(\"demo\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.identity.IdentityFunctions;\nimport com.pulumi.openstack.identity.inputs.GetEndpointArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var endpoint1 = IdentityFunctions.getEndpoint(GetEndpointArgs.builder()\n .serviceName(\"demo\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n endpoint1:\n fn::invoke:\n Function: openstack:identity:getEndpoint\n Arguments:\n serviceName: demo\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "inputs": { "description": "A collection of arguments for invoking getEndpoint.\n", "properties": { @@ -21843,7 +21600,7 @@ } }, "openstack:identity/getGroup:getGroup": { - "description": "Use this data source to get the ID of an OpenStack group.\n\n\u003e **Note:** You _must_ have admin privileges in your OpenStack cloud to use\nthis resource.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst admins = openstack.identity.getGroup({\n name: \"admins\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nadmins = openstack.identity.get_group(name=\"admins\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var admins = OpenStack.Identity.GetGroup.Invoke(new()\n {\n Name = \"admins\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/identity\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := identity.GetGroup(ctx, \u0026identity.GetGroupArgs{\n\t\t\tName: \"admins\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.identity.IdentityFunctions;\nimport com.pulumi.openstack.identity.inputs.GetGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var admins = IdentityFunctions.getGroup(GetGroupArgs.builder()\n .name(\"admins\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n admins:\n fn::invoke:\n Function: openstack:identity:getGroup\n Arguments:\n name: admins\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Use this data source to get the ID of an OpenStack group.\n\n\u003e **Note:** You _must_ have admin privileges in your OpenStack cloud to use\nthis resource.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst admins = openstack.identity.getGroup({\n name: \"admins\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nadmins = openstack.identity.get_group(name=\"admins\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var admins = OpenStack.Identity.GetGroup.Invoke(new()\n {\n Name = \"admins\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/identity\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := identity.GetGroup(ctx, \u0026identity.GetGroupArgs{\n\t\t\tName: \"admins\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.identity.IdentityFunctions;\nimport com.pulumi.openstack.identity.inputs.GetGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var admins = IdentityFunctions.getGroup(GetGroupArgs.builder()\n .name(\"admins\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n admins:\n fn::invoke:\n Function: openstack:identity:getGroup\n Arguments:\n name: admins\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "inputs": { "description": "A collection of arguments for invoking getGroup.\n", "properties": { @@ -21901,7 +21658,7 @@ } }, "openstack:identity/getProject:getProject": { - "description": "Use this data source to get the ID of an OpenStack project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst project1 = openstack.identity.getProject({\n name: \"demo\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nproject1 = openstack.identity.get_project(name=\"demo\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var project1 = OpenStack.Identity.GetProject.Invoke(new()\n {\n Name = \"demo\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/identity\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := identity.LookupProject(ctx, \u0026identity.LookupProjectArgs{\n\t\t\tName: pulumi.StringRef(\"demo\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.identity.IdentityFunctions;\nimport com.pulumi.openstack.identity.inputs.GetProjectArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var project1 = IdentityFunctions.getProject(GetProjectArgs.builder()\n .name(\"demo\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n project1:\n fn::invoke:\n Function: openstack:identity:getProject\n Arguments:\n name: demo\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Use this data source to get the ID of an OpenStack project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst project1 = openstack.identity.getProject({\n name: \"demo\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nproject1 = openstack.identity.get_project(name=\"demo\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var project1 = OpenStack.Identity.GetProject.Invoke(new()\n {\n Name = \"demo\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/identity\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := identity.LookupProject(ctx, \u0026identity.LookupProjectArgs{\n\t\t\tName: pulumi.StringRef(\"demo\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.identity.IdentityFunctions;\nimport com.pulumi.openstack.identity.inputs.GetProjectArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var project1 = IdentityFunctions.getProject(GetProjectArgs.builder()\n .name(\"demo\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n project1:\n fn::invoke:\n Function: openstack:identity:getProject\n Arguments:\n name: demo\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "inputs": { "description": "A collection of arguments for invoking getProject.\n", "properties": { @@ -21996,7 +21753,7 @@ } }, "openstack:identity/getRole:getRole": { - "description": "Use this data source to get the ID of an OpenStack role.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst admin = openstack.identity.getRole({\n name: \"admin\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nadmin = openstack.identity.get_role(name=\"admin\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var admin = OpenStack.Identity.GetRole.Invoke(new()\n {\n Name = \"admin\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/identity\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := identity.LookupRole(ctx, \u0026identity.LookupRoleArgs{\n\t\t\tName: \"admin\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.identity.IdentityFunctions;\nimport com.pulumi.openstack.identity.inputs.GetRoleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var admin = IdentityFunctions.getRole(GetRoleArgs.builder()\n .name(\"admin\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n admin:\n fn::invoke:\n Function: openstack:identity:getRole\n Arguments:\n name: admin\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Use this data source to get the ID of an OpenStack role.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst admin = openstack.identity.getRole({\n name: \"admin\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nadmin = openstack.identity.get_role(name=\"admin\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var admin = OpenStack.Identity.GetRole.Invoke(new()\n {\n Name = \"admin\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/identity\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := identity.LookupRole(ctx, \u0026identity.LookupRoleArgs{\n\t\t\tName: \"admin\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.identity.IdentityFunctions;\nimport com.pulumi.openstack.identity.inputs.GetRoleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var admin = IdentityFunctions.getRole(GetRoleArgs.builder()\n .name(\"admin\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n admin:\n fn::invoke:\n Function: openstack:identity:getRole\n Arguments:\n name: admin\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "inputs": { "description": "A collection of arguments for invoking getRole.\n", "properties": { @@ -22049,7 +21806,7 @@ } }, "openstack:identity/getService:getService": { - "description": "Use this data source to get the ID of an OpenStack service.\n\n\u003e **Note:** This usually requires admin privileges.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst service1 = openstack.identity.getService({\n name: \"keystone\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nservice1 = openstack.identity.get_service(name=\"keystone\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var service1 = OpenStack.Identity.GetService.Invoke(new()\n {\n Name = \"keystone\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/identity\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := identity.GetService(ctx, \u0026identity.GetServiceArgs{\n\t\t\tName: pulumi.StringRef(\"keystone\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.identity.IdentityFunctions;\nimport com.pulumi.openstack.identity.inputs.GetServiceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var service1 = IdentityFunctions.getService(GetServiceArgs.builder()\n .name(\"keystone\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n service1:\n fn::invoke:\n Function: openstack:identity:getService\n Arguments:\n name: keystone\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Use this data source to get the ID of an OpenStack service.\n\n\u003e **Note:** This usually requires admin privileges.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst service1 = openstack.identity.getService({\n name: \"keystone\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nservice1 = openstack.identity.get_service(name=\"keystone\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var service1 = OpenStack.Identity.GetService.Invoke(new()\n {\n Name = \"keystone\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/identity\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := identity.GetService(ctx, \u0026identity.GetServiceArgs{\n\t\t\tName: pulumi.StringRef(\"keystone\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.identity.IdentityFunctions;\nimport com.pulumi.openstack.identity.inputs.GetServiceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var service1 = IdentityFunctions.getService(GetServiceArgs.builder()\n .name(\"keystone\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n service1:\n fn::invoke:\n Function: openstack:identity:getService\n Arguments:\n name: keystone\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "inputs": { "description": "A collection of arguments for invoking getService.\n", "properties": { @@ -22110,7 +21867,7 @@ } }, "openstack:identity/getUser:getUser": { - "description": "Use this data source to get the ID of an OpenStack user.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst user1 = openstack.identity.getUser({\n name: \"user_1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nuser1 = openstack.identity.get_user(name=\"user_1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var user1 = OpenStack.Identity.GetUser.Invoke(new()\n {\n Name = \"user_1\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/identity\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := identity.LookupUser(ctx, \u0026identity.LookupUserArgs{\n\t\t\tName: pulumi.StringRef(\"user_1\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.identity.IdentityFunctions;\nimport com.pulumi.openstack.identity.inputs.GetUserArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var user1 = IdentityFunctions.getUser(GetUserArgs.builder()\n .name(\"user_1\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n user1:\n fn::invoke:\n Function: openstack:identity:getUser\n Arguments:\n name: user_1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Use this data source to get the ID of an OpenStack user.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst user1 = openstack.identity.getUser({\n name: \"user_1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nuser1 = openstack.identity.get_user(name=\"user_1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var user1 = OpenStack.Identity.GetUser.Invoke(new()\n {\n Name = \"user_1\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/identity\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := identity.LookupUser(ctx, \u0026identity.LookupUserArgs{\n\t\t\tName: pulumi.StringRef(\"user_1\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.identity.IdentityFunctions;\nimport com.pulumi.openstack.identity.inputs.GetUserArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var user1 = IdentityFunctions.getUser(GetUserArgs.builder()\n .name(\"user_1\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n user1:\n fn::invoke:\n Function: openstack:identity:getUser\n Arguments:\n name: user_1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "inputs": { "description": "A collection of arguments for invoking getUser.\n", "properties": { @@ -22209,7 +21966,7 @@ } }, "openstack:images/getImage:getImage": { - "description": "Use this data source to get the ID of an available OpenStack image.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst ubuntu = openstack.images.getImage({\n name: \"Ubuntu 16.04\",\n mostRecent: true,\n properties: {\n key: \"value\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nubuntu = openstack.images.get_image(name=\"Ubuntu 16.04\",\n most_recent=True,\n properties={\n \"key\": \"value\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var ubuntu = OpenStack.Images.GetImage.Invoke(new()\n {\n Name = \"Ubuntu 16.04\",\n MostRecent = true,\n Properties = \n {\n { \"key\", \"value\" },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/images\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := images.LookupImage(ctx, \u0026images.LookupImageArgs{\n\t\t\tName: pulumi.StringRef(\"Ubuntu 16.04\"),\n\t\t\tMostRecent: pulumi.BoolRef(true),\n\t\t\tProperties: map[string]interface{}{\n\t\t\t\t\"key\": \"value\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.images.ImagesFunctions;\nimport com.pulumi.openstack.images.inputs.GetImageArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var ubuntu = ImagesFunctions.getImage(GetImageArgs.builder()\n .name(\"Ubuntu 16.04\")\n .mostRecent(true)\n .properties(Map.of(\"key\", \"value\"))\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n ubuntu:\n fn::invoke:\n Function: openstack:images:getImage\n Arguments:\n name: Ubuntu 16.04\n mostRecent: true\n properties:\n key: value\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Use this data source to get the ID of an available OpenStack image.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst ubuntu = openstack.images.getImage({\n name: \"Ubuntu 16.04\",\n mostRecent: true,\n properties: {\n key: \"value\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nubuntu = openstack.images.get_image(name=\"Ubuntu 16.04\",\n most_recent=True,\n properties={\n \"key\": \"value\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var ubuntu = OpenStack.Images.GetImage.Invoke(new()\n {\n Name = \"Ubuntu 16.04\",\n MostRecent = true,\n Properties = \n {\n { \"key\", \"value\" },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/images\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := images.LookupImage(ctx, \u0026images.LookupImageArgs{\n\t\t\tName: pulumi.StringRef(\"Ubuntu 16.04\"),\n\t\t\tMostRecent: pulumi.BoolRef(true),\n\t\t\tProperties: map[string]interface{}{\n\t\t\t\t\"key\": \"value\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.images.ImagesFunctions;\nimport com.pulumi.openstack.images.inputs.GetImageArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var ubuntu = ImagesFunctions.getImage(GetImageArgs.builder()\n .name(\"Ubuntu 16.04\")\n .mostRecent(true)\n .properties(Map.of(\"key\", \"value\"))\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n ubuntu:\n fn::invoke:\n Function: openstack:images:getImage\n Arguments:\n name: Ubuntu 16.04\n mostRecent: true\n properties:\n key: value\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "inputs": { "description": "A collection of arguments for invoking getImage.\n", "properties": { @@ -22265,14 +22022,9 @@ "description": "The minimum size (in bytes) of the image to return.\n", "willReplaceOnChanges": true }, - "sortDirection": { - "type": "string", - "description": "Order the results in either `asc` or `desc`.\n", - "willReplaceOnChanges": true - }, - "sortKey": { + "sort": { "type": "string", - "description": "Sort images based on a certain key. Defaults to `name`.\n", + "description": "Sorts the response by one or more attribute and sort\ndirection combinations. You can also set multiple sort keys and directions.\nDefault direction is `desc`. Use the comma (,) character to separate\nmultiple values. For example expression `sort = \"name:asc,status\"`\nsorts ascending by name and descending by status.\n", "willReplaceOnChanges": true }, "tag": { @@ -22383,10 +22135,7 @@ "sizeMin": { "type": "integer" }, - "sortDirection": { - "type": "string" - }, - "sortKey": { + "sort": { "type": "string" }, "tag": { @@ -22428,7 +22177,7 @@ } }, "openstack:images/getImageIds:getImageIds": { - "description": "Use this data source to get a list of Openstack Image IDs matching the\nspecified criteria.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst images = openstack.images.getImageIds({\n nameRegex: \"^Ubuntu 16\\\\.04.*-amd64\",\n sort: \"updated_at\",\n properties: {\n key: \"value\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nimages = openstack.images.get_image_ids(name_regex=\"^Ubuntu 16\\\\.04.*-amd64\",\n sort=\"updated_at\",\n properties={\n \"key\": \"value\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var images = OpenStack.Images.GetImageIds.Invoke(new()\n {\n NameRegex = \"^Ubuntu 16\\\\.04.*-amd64\",\n Sort = \"updated_at\",\n Properties = \n {\n { \"key\", \"value\" },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/images\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := images.GetImageIds(ctx, \u0026images.GetImageIdsArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^Ubuntu 16\\\\.04.*-amd64\"),\n\t\t\tSort: pulumi.StringRef(\"updated_at\"),\n\t\t\tProperties: map[string]interface{}{\n\t\t\t\t\"key\": \"value\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.images.ImagesFunctions;\nimport com.pulumi.openstack.images.inputs.GetImageIdsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var images = ImagesFunctions.getImageIds(GetImageIdsArgs.builder()\n .nameRegex(\"^Ubuntu 16\\\\.04.*-amd64\")\n .sort(\"updated_at\")\n .properties(Map.of(\"key\", \"value\"))\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n images:\n fn::invoke:\n Function: openstack:images:getImageIds\n Arguments:\n nameRegex: ^Ubuntu 16\\.04.*-amd64\n sort: updated_at\n properties:\n key: value\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Use this data source to get a list of Openstack Image IDs matching the\nspecified criteria.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst images = openstack.images.getImageIds({\n nameRegex: \"^Ubuntu 16\\\\.04.*-amd64\",\n sort: \"updated_at\",\n properties: {\n key: \"value\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nimages = openstack.images.get_image_ids(name_regex=\"^Ubuntu 16\\\\.04.*-amd64\",\n sort=\"updated_at\",\n properties={\n \"key\": \"value\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var images = OpenStack.Images.GetImageIds.Invoke(new()\n {\n NameRegex = \"^Ubuntu 16\\\\.04.*-amd64\",\n Sort = \"updated_at\",\n Properties = \n {\n { \"key\", \"value\" },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/images\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := images.GetImageIds(ctx, \u0026images.GetImageIdsArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^Ubuntu 16\\\\.04.*-amd64\"),\n\t\t\tSort: pulumi.StringRef(\"updated_at\"),\n\t\t\tProperties: map[string]interface{}{\n\t\t\t\t\"key\": \"value\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.images.ImagesFunctions;\nimport com.pulumi.openstack.images.inputs.GetImageIdsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var images = ImagesFunctions.getImageIds(GetImageIdsArgs.builder()\n .nameRegex(\"^Ubuntu 16\\\\.04.*-amd64\")\n .sort(\"updated_at\")\n .properties(Map.of(\"key\", \"value\"))\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n images:\n fn::invoke:\n Function: openstack:images:getImageIds\n Arguments:\n nameRegex: ^Ubuntu 16\\.04.*-amd64\n sort: updated_at\n properties:\n key: value\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "inputs": { "description": "A collection of arguments for invoking getImageIds.\n", "properties": { @@ -22477,19 +22226,7 @@ }, "sort": { "type": "string", - "description": "Sorts the response by one or more attribute and sort\ndirection combinations. You can also set multiple sort keys and directions.\nDefault direction is `desc`. Use the comma (,) character to separate\nmultiple values. For example expression `sort = \"name:asc,status\"`\nsorts ascending by name and descending by status. `sort` cannot be used\nsimultaneously with `sort_key`. If both are present in a configuration\nthen only `sort` will be used.\n", - "willReplaceOnChanges": true - }, - "sortDirection": { - "type": "string", - "description": "Order the results in either `asc` or `desc`.\nCan be applied only with `sort_key`. Defaults to `asc`\n", - "deprecationMessage": "Use option 'sort' instead.", - "willReplaceOnChanges": true - }, - "sortKey": { - "type": "string", - "description": "Sort images based on a certain key. Defaults to\n`name`. `sort_key` cannot be used simultaneously with `sort`. If both\nare present in a configuration then only `sort` will be used.\n", - "deprecationMessage": "Use option 'sort' instead.", + "description": "Sorts the response by one or more attribute and sort\ndirection combinations. You can also set multiple sort keys and directions.\nDefault direction is `desc`. Use the comma (,) character to separate\nmultiple values. For example expression `sort = \"name:asc,status\"`\nsorts ascending by name and descending by status.\n", "willReplaceOnChanges": true }, "tag": { @@ -22555,14 +22292,6 @@ "sort": { "type": "string" }, - "sortDirection": { - "deprecationMessage": "Use option 'sort' instead.", - "type": "string" - }, - "sortKey": { - "deprecationMessage": "Use option 'sort' instead.", - "type": "string" - }, "tag": { "type": "string" }, @@ -22585,7 +22314,7 @@ } }, "openstack:index/getFwGroupV2:getFwGroupV2": { - "description": "Use this data source to get information of an available OpenStack firewall group v2.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst group = openstack.getFwGroupV2({\n name: \"tf_test_group\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\ngroup = openstack.get_fw_group_v2(name=\"tf_test_group\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @group = OpenStack.GetFwGroupV2.Invoke(new()\n {\n Name = \"tf_test_group\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := openstack.GetFwGroupV2(ctx, \u0026openstack.GetFwGroupV2Args{\n\t\t\tName: pulumi.StringRef(\"tf_test_group\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.OpenstackFunctions;\nimport com.pulumi.openstack.inputs.GetFwGroupV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var group = OpenstackFunctions.getFwGroupV2(GetFwGroupV2Args.builder()\n .name(\"tf_test_group\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n group:\n fn::invoke:\n Function: openstack:getFwGroupV2\n Arguments:\n name: tf_test_group\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Use this data source to get information of an available OpenStack firewall group v2.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst group = openstack.getFwGroupV2({\n name: \"tf_test_group\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\ngroup = openstack.get_fw_group_v2(name=\"tf_test_group\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @group = OpenStack.GetFwGroupV2.Invoke(new()\n {\n Name = \"tf_test_group\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := openstack.GetFwGroupV2(ctx, \u0026openstack.GetFwGroupV2Args{\n\t\t\tName: pulumi.StringRef(\"tf_test_group\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.OpenstackFunctions;\nimport com.pulumi.openstack.inputs.GetFwGroupV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var group = OpenstackFunctions.getFwGroupV2(GetFwGroupV2Args.builder()\n .name(\"tf_test_group\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n group:\n fn::invoke:\n Function: openstack:getFwGroupV2\n Arguments:\n name: tf_test_group\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "inputs": { "description": "A collection of arguments for invoking getFwGroupV2.\n", "properties": { @@ -22709,7 +22438,7 @@ } }, "openstack:index/getFwPolicyV2:getFwPolicyV2": { - "description": "Use this data source to get information of an available OpenStack firewall policy v2.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst policy = openstack.getFwPolicyV2({\n name: \"tf_test_policy\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\npolicy = openstack.get_fw_policy_v2(name=\"tf_test_policy\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var policy = OpenStack.GetFwPolicyV2.Invoke(new()\n {\n Name = \"tf_test_policy\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := openstack.GetFwPolicyV2(ctx, \u0026openstack.GetFwPolicyV2Args{\n\t\t\tName: pulumi.StringRef(\"tf_test_policy\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.OpenstackFunctions;\nimport com.pulumi.openstack.inputs.GetFwPolicyV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var policy = OpenstackFunctions.getFwPolicyV2(GetFwPolicyV2Args.builder()\n .name(\"tf_test_policy\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n policy:\n fn::invoke:\n Function: openstack:getFwPolicyV2\n Arguments:\n name: tf_test_policy\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Use this data source to get information of an available OpenStack firewall policy v2.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst policy = openstack.getFwPolicyV2({\n name: \"tf_test_policy\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\npolicy = openstack.get_fw_policy_v2(name=\"tf_test_policy\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var policy = OpenStack.GetFwPolicyV2.Invoke(new()\n {\n Name = \"tf_test_policy\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := openstack.GetFwPolicyV2(ctx, \u0026openstack.GetFwPolicyV2Args{\n\t\t\tName: pulumi.StringRef(\"tf_test_policy\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.OpenstackFunctions;\nimport com.pulumi.openstack.inputs.GetFwPolicyV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var policy = OpenstackFunctions.getFwPolicyV2(GetFwPolicyV2Args.builder()\n .name(\"tf_test_policy\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n policy:\n fn::invoke:\n Function: openstack:getFwPolicyV2\n Arguments:\n name: tf_test_policy\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "inputs": { "description": "A collection of arguments for invoking getFwPolicyV2.\n", "properties": { @@ -22808,7 +22537,7 @@ } }, "openstack:index/getFwRuleV2:getFwRuleV2": { - "description": "Use this data source to get information of an available OpenStack firewall rule v2.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst rule = openstack.getFwRuleV2({\n name: \"tf_test_rule\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nrule = openstack.get_fw_rule_v2(name=\"tf_test_rule\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var rule = OpenStack.GetFwRuleV2.Invoke(new()\n {\n Name = \"tf_test_rule\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := openstack.GetFwRuleV2(ctx, \u0026openstack.GetFwRuleV2Args{\n\t\t\tName: pulumi.StringRef(\"tf_test_rule\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.OpenstackFunctions;\nimport com.pulumi.openstack.inputs.GetFwRuleV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var rule = OpenstackFunctions.getFwRuleV2(GetFwRuleV2Args.builder()\n .name(\"tf_test_rule\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n rule:\n fn::invoke:\n Function: openstack:getFwRuleV2\n Arguments:\n name: tf_test_rule\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Use this data source to get information of an available OpenStack firewall rule v2.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst rule = openstack.getFwRuleV2({\n name: \"tf_test_rule\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nrule = openstack.get_fw_rule_v2(name=\"tf_test_rule\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var rule = OpenStack.GetFwRuleV2.Invoke(new()\n {\n Name = \"tf_test_rule\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := openstack.GetFwRuleV2(ctx, \u0026openstack.GetFwRuleV2Args{\n\t\t\tName: pulumi.StringRef(\"tf_test_rule\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.OpenstackFunctions;\nimport com.pulumi.openstack.inputs.GetFwRuleV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var rule = OpenstackFunctions.getFwRuleV2(GetFwRuleV2Args.builder()\n .name(\"tf_test_rule\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n rule:\n fn::invoke:\n Function: openstack:getFwRuleV2\n Arguments:\n name: tf_test_rule\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "inputs": { "description": "A collection of arguments for invoking getFwRuleV2.\n", "properties": { @@ -22971,7 +22700,7 @@ } }, "openstack:keymanager/getContainer:getContainer": { - "description": "Use this data source to get the ID of an available Barbican container.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst example = openstack.keymanager.getContainer({\n name: \"my_container\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nexample = openstack.keymanager.get_container(name=\"my_container\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = OpenStack.KeyManager.GetContainer.Invoke(new()\n {\n Name = \"my_container\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/keymanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := keymanager.GetContainer(ctx, \u0026keymanager.GetContainerArgs{\n\t\t\tName: pulumi.StringRef(\"my_container\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.keymanager.KeymanagerFunctions;\nimport com.pulumi.openstack.keymanager.inputs.GetContainerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var example = KeymanagerFunctions.getContainer(GetContainerArgs.builder()\n .name(\"my_container\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n example:\n fn::invoke:\n Function: openstack:keymanager:getContainer\n Arguments:\n name: my_container\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Use this data source to get the ID of an available Barbican container.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst example = openstack.keymanager.getContainer({\n name: \"my_container\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nexample = openstack.keymanager.get_container(name=\"my_container\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = OpenStack.KeyManager.GetContainer.Invoke(new()\n {\n Name = \"my_container\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/keymanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := keymanager.GetContainer(ctx, \u0026keymanager.GetContainerArgs{\n\t\t\tName: pulumi.StringRef(\"my_container\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.keymanager.KeymanagerFunctions;\nimport com.pulumi.openstack.keymanager.inputs.GetContainerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var example = KeymanagerFunctions.getContainer(GetContainerArgs.builder()\n .name(\"my_container\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n example:\n fn::invoke:\n Function: openstack:keymanager:getContainer\n Arguments:\n name: my_container\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "inputs": { "description": "A collection of arguments for invoking getContainer.\n", "properties": { @@ -23063,7 +22792,7 @@ } }, "openstack:keymanager/getSecret:getSecret": { - "description": "## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst example = openstack.keymanager.getSecret({\n mode: \"cbc\",\n secretType: \"passphrase\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nexample = openstack.keymanager.get_secret(mode=\"cbc\",\n secret_type=\"passphrase\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = OpenStack.KeyManager.GetSecret.Invoke(new()\n {\n Mode = \"cbc\",\n SecretType = \"passphrase\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/keymanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := keymanager.GetSecret(ctx, \u0026keymanager.GetSecretArgs{\n\t\t\tMode: pulumi.StringRef(\"cbc\"),\n\t\t\tSecretType: pulumi.StringRef(\"passphrase\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.keymanager.KeymanagerFunctions;\nimport com.pulumi.openstack.keymanager.inputs.GetSecretArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var example = KeymanagerFunctions.getSecret(GetSecretArgs.builder()\n .mode(\"cbc\")\n .secretType(\"passphrase\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n example:\n fn::invoke:\n Function: openstack:keymanager:getSecret\n Arguments:\n mode: cbc\n secretType: passphrase\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Date Filters\n\nThe values for the `expiration_filter`, `created_at_filter`, and\n`updated_at_filter` parameters are comma-separated lists of time stamps in\nRFC3339 format. The time stamps can be prefixed with any of these comparison\noperators: *gt:* (greater-than), *gte:* (greater-than-or-equal), *lt:*\n(less-than), *lte:* (less-than-or-equal).\n\nFor example, to get a passphrase a Secret with CBC moda, that will expire in\nJanuary of 2020:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst dateFilterExample = openstack.keymanager.getSecret({\n mode: \"cbc\",\n secretType: \"passphrase\",\n expirationFilter: \"gt:2020-01-01T00:00:00Z\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\ndate_filter_example = openstack.keymanager.get_secret(mode=\"cbc\",\n secret_type=\"passphrase\",\n expiration_filter=\"gt:2020-01-01T00:00:00Z\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var dateFilterExample = OpenStack.KeyManager.GetSecret.Invoke(new()\n {\n Mode = \"cbc\",\n SecretType = \"passphrase\",\n ExpirationFilter = \"gt:2020-01-01T00:00:00Z\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/keymanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := keymanager.GetSecret(ctx, \u0026keymanager.GetSecretArgs{\n\t\t\tMode: pulumi.StringRef(\"cbc\"),\n\t\t\tSecretType: pulumi.StringRef(\"passphrase\"),\n\t\t\tExpirationFilter: pulumi.StringRef(\"gt:2020-01-01T00:00:00Z\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.keymanager.KeymanagerFunctions;\nimport com.pulumi.openstack.keymanager.inputs.GetSecretArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var dateFilterExample = KeymanagerFunctions.getSecret(GetSecretArgs.builder()\n .mode(\"cbc\")\n .secretType(\"passphrase\")\n .expirationFilter(\"gt:2020-01-01T00:00:00Z\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n dateFilterExample:\n fn::invoke:\n Function: openstack:keymanager:getSecret\n Arguments:\n mode: cbc\n secretType: passphrase\n expirationFilter: gt:2020-01-01T00:00:00Z\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst example = openstack.keymanager.getSecret({\n mode: \"cbc\",\n secretType: \"passphrase\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nexample = openstack.keymanager.get_secret(mode=\"cbc\",\n secret_type=\"passphrase\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = OpenStack.KeyManager.GetSecret.Invoke(new()\n {\n Mode = \"cbc\",\n SecretType = \"passphrase\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/keymanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := keymanager.GetSecret(ctx, \u0026keymanager.GetSecretArgs{\n\t\t\tMode: pulumi.StringRef(\"cbc\"),\n\t\t\tSecretType: pulumi.StringRef(\"passphrase\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.keymanager.KeymanagerFunctions;\nimport com.pulumi.openstack.keymanager.inputs.GetSecretArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var example = KeymanagerFunctions.getSecret(GetSecretArgs.builder()\n .mode(\"cbc\")\n .secretType(\"passphrase\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n example:\n fn::invoke:\n Function: openstack:keymanager:getSecret\n Arguments:\n mode: cbc\n secretType: passphrase\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Date Filters\n\nThe values for the `expiration_filter`, `created_at_filter`, and\n`updated_at_filter` parameters are comma-separated lists of time stamps in\nRFC3339 format. The time stamps can be prefixed with any of these comparison\noperators: *gt:* (greater-than), *gte:* (greater-than-or-equal), *lt:*\n(less-than), *lte:* (less-than-or-equal).\n\nFor example, to get a passphrase a Secret with CBC moda, that will expire in\nJanuary of 2020:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst dateFilterExample = openstack.keymanager.getSecret({\n mode: \"cbc\",\n secretType: \"passphrase\",\n expirationFilter: \"gt:2020-01-01T00:00:00Z\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\ndate_filter_example = openstack.keymanager.get_secret(mode=\"cbc\",\n secret_type=\"passphrase\",\n expiration_filter=\"gt:2020-01-01T00:00:00Z\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var dateFilterExample = OpenStack.KeyManager.GetSecret.Invoke(new()\n {\n Mode = \"cbc\",\n SecretType = \"passphrase\",\n ExpirationFilter = \"gt:2020-01-01T00:00:00Z\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/keymanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := keymanager.GetSecret(ctx, \u0026keymanager.GetSecretArgs{\n\t\t\tMode: pulumi.StringRef(\"cbc\"),\n\t\t\tSecretType: pulumi.StringRef(\"passphrase\"),\n\t\t\tExpirationFilter: pulumi.StringRef(\"gt:2020-01-01T00:00:00Z\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.keymanager.KeymanagerFunctions;\nimport com.pulumi.openstack.keymanager.inputs.GetSecretArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var dateFilterExample = KeymanagerFunctions.getSecret(GetSecretArgs.builder()\n .mode(\"cbc\")\n .secretType(\"passphrase\")\n .expirationFilter(\"gt:2020-01-01T00:00:00Z\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n dateFilterExample:\n fn::invoke:\n Function: openstack:keymanager:getSecret\n Arguments:\n mode: cbc\n secretType: passphrase\n expirationFilter: gt:2020-01-01T00:00:00Z\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "inputs": { "description": "A collection of arguments for invoking getSecret.\n", "properties": { @@ -23234,8 +22963,63 @@ "type": "object" } }, + "openstack:loadbalancer/getFlavorV2:getFlavorV2": { + "inputs": { + "description": "A collection of arguments for invoking getFlavorV2.\n", + "properties": { + "flavorId": { + "type": "string", + "willReplaceOnChanges": true + }, + "name": { + "type": "string", + "willReplaceOnChanges": true + }, + "region": { + "type": "string" + } + }, + "type": "object" + }, + "outputs": { + "description": "A collection of values returned by getFlavorV2.\n", + "properties": { + "description": { + "type": "string" + }, + "enabled": { + "type": "boolean" + }, + "flavorId": { + "type": "string" + }, + "flavorProfileId": { + "type": "string" + }, + "id": { + "description": "The provider-assigned unique ID for this managed resource.\n", + "type": "string" + }, + "name": { + "type": "string" + }, + "region": { + "type": "string" + } + }, + "required": [ + "description", + "enabled", + "flavorId", + "flavorProfileId", + "name", + "id" + ], + "type": "object" + } + }, "openstack:networking/getAddressScope:getAddressScope": { - "description": "Use this data source to get the ID of an available OpenStack address-scope.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst publicAddressscope = openstack.networking.getAddressScope({\n name: \"public_addressscope\",\n shared: true,\n ipVersion: 4,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\npublic_addressscope = openstack.networking.get_address_scope(name=\"public_addressscope\",\n shared=True,\n ip_version=4)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var publicAddressscope = OpenStack.Networking.GetAddressScope.Invoke(new()\n {\n Name = \"public_addressscope\",\n Shared = true,\n IpVersion = 4,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := networking.LookupAddressScope(ctx, \u0026networking.LookupAddressScopeArgs{\n\t\t\tName: pulumi.StringRef(\"public_addressscope\"),\n\t\t\tShared: pulumi.BoolRef(true),\n\t\t\tIpVersion: pulumi.IntRef(4),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.NetworkingFunctions;\nimport com.pulumi.openstack.networking.inputs.GetAddressScopeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var publicAddressscope = NetworkingFunctions.getAddressScope(GetAddressScopeArgs.builder()\n .name(\"public_addressscope\")\n .shared(true)\n .ipVersion(4)\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n publicAddressscope:\n fn::invoke:\n Function: openstack:networking:getAddressScope\n Arguments:\n name: public_addressscope\n shared: true\n ipVersion: 4\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Use this data source to get the ID of an available OpenStack address-scope.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst publicAddressscope = openstack.networking.getAddressScope({\n name: \"public_addressscope\",\n shared: true,\n ipVersion: 4,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\npublic_addressscope = openstack.networking.get_address_scope(name=\"public_addressscope\",\n shared=True,\n ip_version=4)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var publicAddressscope = OpenStack.Networking.GetAddressScope.Invoke(new()\n {\n Name = \"public_addressscope\",\n Shared = true,\n IpVersion = 4,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := networking.LookupAddressScope(ctx, \u0026networking.LookupAddressScopeArgs{\n\t\t\tName: pulumi.StringRef(\"public_addressscope\"),\n\t\t\tShared: pulumi.BoolRef(true),\n\t\t\tIpVersion: pulumi.IntRef(4),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.NetworkingFunctions;\nimport com.pulumi.openstack.networking.inputs.GetAddressScopeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var publicAddressscope = NetworkingFunctions.getAddressScope(GetAddressScopeArgs.builder()\n .name(\"public_addressscope\")\n .shared(true)\n .ipVersion(4)\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n publicAddressscope:\n fn::invoke:\n Function: openstack:networking:getAddressScope\n Arguments:\n name: public_addressscope\n shared: true\n ipVersion: 4\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "inputs": { "description": "A collection of arguments for invoking getAddressScope.\n", "properties": { @@ -23296,7 +23080,7 @@ } }, "openstack:networking/getFloatingIp:getFloatingIp": { - "description": "Use this data source to get the ID of an available OpenStack floating IP.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst floatingip1 = openstack.networking.getFloatingIp({\n address: \"192.168.0.4\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nfloatingip1 = openstack.networking.get_floating_ip(address=\"192.168.0.4\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var floatingip1 = OpenStack.Networking.GetFloatingIp.Invoke(new()\n {\n Address = \"192.168.0.4\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := networking.LookupFloatingIp(ctx, \u0026networking.LookupFloatingIpArgs{\n\t\t\tAddress: pulumi.StringRef(\"192.168.0.4\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.NetworkingFunctions;\nimport com.pulumi.openstack.networking.inputs.GetFloatingIpArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var floatingip1 = NetworkingFunctions.getFloatingIp(GetFloatingIpArgs.builder()\n .address(\"192.168.0.4\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n floatingip1:\n fn::invoke:\n Function: openstack:networking:getFloatingIp\n Arguments:\n address: 192.168.0.4\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Use this data source to get the ID of an available OpenStack floating IP.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst floatingip1 = openstack.networking.getFloatingIp({\n address: \"192.168.0.4\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nfloatingip1 = openstack.networking.get_floating_ip(address=\"192.168.0.4\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var floatingip1 = OpenStack.Networking.GetFloatingIp.Invoke(new()\n {\n Address = \"192.168.0.4\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := networking.LookupFloatingIp(ctx, \u0026networking.LookupFloatingIpArgs{\n\t\t\tAddress: pulumi.StringRef(\"192.168.0.4\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.NetworkingFunctions;\nimport com.pulumi.openstack.networking.inputs.GetFloatingIpArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var floatingip1 = NetworkingFunctions.getFloatingIp(GetFloatingIpArgs.builder()\n .address(\"192.168.0.4\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n floatingip1:\n fn::invoke:\n Function: openstack:networking:getFloatingIp\n Arguments:\n address: 192.168.0.4\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "inputs": { "description": "A collection of arguments for invoking getFloatingIp.\n", "properties": { @@ -23314,7 +23098,7 @@ }, "pool": { "type": "string", - "description": "The name of the pool from which the floating IP belongs to.\n" + "description": "The ID of the network from which the floating IP belongs to.\n" }, "portId": { "type": "string", @@ -23405,7 +23189,7 @@ } }, "openstack:networking/getNetwork:getNetwork": { - "description": "Use this data source to get the ID of an available OpenStack network.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst network = openstack.networking.getNetwork({\n name: \"tf_test_network\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nnetwork = openstack.networking.get_network(name=\"tf_test_network\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var network = OpenStack.Networking.GetNetwork.Invoke(new()\n {\n Name = \"tf_test_network\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := networking.LookupNetwork(ctx, \u0026networking.LookupNetworkArgs{\n\t\t\tName: pulumi.StringRef(\"tf_test_network\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.NetworkingFunctions;\nimport com.pulumi.openstack.networking.inputs.GetNetworkArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var network = NetworkingFunctions.getNetwork(GetNetworkArgs.builder()\n .name(\"tf_test_network\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n network:\n fn::invoke:\n Function: openstack:networking:getNetwork\n Arguments:\n name: tf_test_network\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Use this data source to get the ID of an available OpenStack network.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst network = openstack.networking.getNetwork({\n name: \"tf_test_network\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nnetwork = openstack.networking.get_network(name=\"tf_test_network\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var network = OpenStack.Networking.GetNetwork.Invoke(new()\n {\n Name = \"tf_test_network\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := networking.LookupNetwork(ctx, \u0026networking.LookupNetworkArgs{\n\t\t\tName: pulumi.StringRef(\"tf_test_network\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.NetworkingFunctions;\nimport com.pulumi.openstack.networking.inputs.GetNetworkArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var network = NetworkingFunctions.getNetwork(GetNetworkArgs.builder()\n .name(\"tf_test_network\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n network:\n fn::invoke:\n Function: openstack:networking:getNetwork\n Arguments:\n name: tf_test_network\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "inputs": { "description": "A collection of arguments for invoking getNetwork.\n", "properties": { @@ -23565,7 +23349,7 @@ } }, "openstack:networking/getPort:getPort": { - "description": "Use this data source to get the ID of an available OpenStack port.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst port1 = openstack.networking.getPort({\n name: \"port_1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nport1 = openstack.networking.get_port(name=\"port_1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var port1 = OpenStack.Networking.GetPort.Invoke(new()\n {\n Name = \"port_1\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := networking.LookupPort(ctx, \u0026networking.LookupPortArgs{\n\t\t\tName: pulumi.StringRef(\"port_1\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.NetworkingFunctions;\nimport com.pulumi.openstack.networking.inputs.GetPortArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var port1 = NetworkingFunctions.getPort(GetPortArgs.builder()\n .name(\"port_1\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n port1:\n fn::invoke:\n Function: openstack:networking:getPort\n Arguments:\n name: port_1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Use this data source to get the ID of an available OpenStack port.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst port1 = openstack.networking.getPort({\n name: \"port_1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nport1 = openstack.networking.get_port(name=\"port_1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var port1 = OpenStack.Networking.GetPort.Invoke(new()\n {\n Name = \"port_1\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := networking.LookupPort(ctx, \u0026networking.LookupPortArgs{\n\t\t\tName: pulumi.StringRef(\"port_1\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.NetworkingFunctions;\nimport com.pulumi.openstack.networking.inputs.GetPortArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var port1 = NetworkingFunctions.getPort(GetPortArgs.builder()\n .name(\"port_1\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n port1:\n fn::invoke:\n Function: openstack:networking:getPort\n Arguments:\n name: port_1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "inputs": { "description": "A collection of arguments for invoking getPort.\n", "properties": { @@ -23781,7 +23565,7 @@ } }, "openstack:networking/getPortIds:getPortIds": { - "description": "Use this data source to get a list of Openstack Port IDs matching the\nspecified criteria.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst ports = openstack.networking.getPortIds({\n name: \"port\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nports = openstack.networking.get_port_ids(name=\"port\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var ports = OpenStack.Networking.GetPortIds.Invoke(new()\n {\n Name = \"port\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := networking.GetPortIds(ctx, \u0026networking.GetPortIdsArgs{\n\t\t\tName: pulumi.StringRef(\"port\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.NetworkingFunctions;\nimport com.pulumi.openstack.networking.inputs.GetPortIdsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var ports = NetworkingFunctions.getPortIds(GetPortIdsArgs.builder()\n .name(\"port\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n ports:\n fn::invoke:\n Function: openstack:networking:getPortIds\n Arguments:\n name: port\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Use this data source to get a list of Openstack Port IDs matching the\nspecified criteria.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst ports = openstack.networking.getPortIds({\n name: \"port\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nports = openstack.networking.get_port_ids(name=\"port\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var ports = OpenStack.Networking.GetPortIds.Invoke(new()\n {\n Name = \"port\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := networking.GetPortIds(ctx, \u0026networking.GetPortIdsArgs{\n\t\t\tName: pulumi.StringRef(\"port\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.NetworkingFunctions;\nimport com.pulumi.openstack.networking.inputs.GetPortIdsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var ports = NetworkingFunctions.getPortIds(GetPortIdsArgs.builder()\n .name(\"port\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n ports:\n fn::invoke:\n Function: openstack:networking:getPortIds\n Arguments:\n name: port\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "inputs": { "description": "A collection of arguments for invoking getPortIds.\n", "properties": { @@ -23956,7 +23740,7 @@ } }, "openstack:networking/getQosBandwidthLimitRule:getQosBandwidthLimitRule": { - "description": "Use this data source to get the ID of an available OpenStack QoS bandwidth limit rule.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst qosBandwidthLimitRule1 = openstack.networking.getQosBandwidthLimitRule({\n maxKbps: 300,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nqos_bandwidth_limit_rule1 = openstack.networking.get_qos_bandwidth_limit_rule(max_kbps=300)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var qosBandwidthLimitRule1 = OpenStack.Networking.GetQosBandwidthLimitRule.Invoke(new()\n {\n MaxKbps = 300,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := networking.LookupQosBandwidthLimitRule(ctx, \u0026networking.LookupQosBandwidthLimitRuleArgs{\n\t\t\tMaxKbps: pulumi.IntRef(300),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.NetworkingFunctions;\nimport com.pulumi.openstack.networking.inputs.GetQosBandwidthLimitRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var qosBandwidthLimitRule1 = NetworkingFunctions.getQosBandwidthLimitRule(GetQosBandwidthLimitRuleArgs.builder()\n .maxKbps(300)\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n qosBandwidthLimitRule1:\n fn::invoke:\n Function: openstack:networking:getQosBandwidthLimitRule\n Arguments:\n maxKbps: 300\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Use this data source to get the ID of an available OpenStack QoS bandwidth limit rule.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst qosBandwidthLimitRule1 = openstack.networking.getQosBandwidthLimitRule({\n maxKbps: 300,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nqos_bandwidth_limit_rule1 = openstack.networking.get_qos_bandwidth_limit_rule(max_kbps=300)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var qosBandwidthLimitRule1 = OpenStack.Networking.GetQosBandwidthLimitRule.Invoke(new()\n {\n MaxKbps = 300,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := networking.LookupQosBandwidthLimitRule(ctx, \u0026networking.LookupQosBandwidthLimitRuleArgs{\n\t\t\tMaxKbps: pulumi.IntRef(300),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.NetworkingFunctions;\nimport com.pulumi.openstack.networking.inputs.GetQosBandwidthLimitRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var qosBandwidthLimitRule1 = NetworkingFunctions.getQosBandwidthLimitRule(GetQosBandwidthLimitRuleArgs.builder()\n .maxKbps(300)\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n qosBandwidthLimitRule1:\n fn::invoke:\n Function: openstack:networking:getQosBandwidthLimitRule\n Arguments:\n maxKbps: 300\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "inputs": { "description": "A collection of arguments for invoking getQosBandwidthLimitRule.\n", "properties": { @@ -24024,7 +23808,7 @@ } }, "openstack:networking/getQosDscpMarkingRule:getQosDscpMarkingRule": { - "description": "Use this data source to get the ID of an available OpenStack QoS DSCP marking rule.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst qosDscpMarkingRule1 = openstack.networking.getQosDscpMarkingRule({\n dscpMark: 26,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nqos_dscp_marking_rule1 = openstack.networking.get_qos_dscp_marking_rule(dscp_mark=26)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var qosDscpMarkingRule1 = OpenStack.Networking.GetQosDscpMarkingRule.Invoke(new()\n {\n DscpMark = 26,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := networking.LookupQosDscpMarkingRule(ctx, \u0026networking.LookupQosDscpMarkingRuleArgs{\n\t\t\tDscpMark: pulumi.IntRef(26),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.NetworkingFunctions;\nimport com.pulumi.openstack.networking.inputs.GetQosDscpMarkingRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var qosDscpMarkingRule1 = NetworkingFunctions.getQosDscpMarkingRule(GetQosDscpMarkingRuleArgs.builder()\n .dscpMark(26)\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n qosDscpMarkingRule1:\n fn::invoke:\n Function: openstack:networking:getQosDscpMarkingRule\n Arguments:\n dscpMark: 26\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Use this data source to get the ID of an available OpenStack QoS DSCP marking rule.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst qosDscpMarkingRule1 = openstack.networking.getQosDscpMarkingRule({\n dscpMark: 26,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nqos_dscp_marking_rule1 = openstack.networking.get_qos_dscp_marking_rule(dscp_mark=26)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var qosDscpMarkingRule1 = OpenStack.Networking.GetQosDscpMarkingRule.Invoke(new()\n {\n DscpMark = 26,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := networking.LookupQosDscpMarkingRule(ctx, \u0026networking.LookupQosDscpMarkingRuleArgs{\n\t\t\tDscpMark: pulumi.IntRef(26),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.NetworkingFunctions;\nimport com.pulumi.openstack.networking.inputs.GetQosDscpMarkingRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var qosDscpMarkingRule1 = NetworkingFunctions.getQosDscpMarkingRule(GetQosDscpMarkingRuleArgs.builder()\n .dscpMark(26)\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n qosDscpMarkingRule1:\n fn::invoke:\n Function: openstack:networking:getQosDscpMarkingRule\n Arguments:\n dscpMark: 26\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "inputs": { "description": "A collection of arguments for invoking getQosDscpMarkingRule.\n", "properties": { @@ -24078,7 +23862,7 @@ } }, "openstack:networking/getQosMinimumBandwidthRule:getQosMinimumBandwidthRule": { - "description": "Use this data source to get the ID of an available OpenStack QoS minimum bandwidth rule.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst qosMinBwRule1 = openstack.networking.getQosMinimumBandwidthRule({\n minKbps: 2000,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nqos_min_bw_rule1 = openstack.networking.get_qos_minimum_bandwidth_rule(min_kbps=2000)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var qosMinBwRule1 = OpenStack.Networking.GetQosMinimumBandwidthRule.Invoke(new()\n {\n MinKbps = 2000,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := networking.LookupQosMinimumBandwidthRule(ctx, \u0026networking.LookupQosMinimumBandwidthRuleArgs{\n\t\t\tMinKbps: pulumi.IntRef(2000),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.NetworkingFunctions;\nimport com.pulumi.openstack.networking.inputs.GetQosMinimumBandwidthRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var qosMinBwRule1 = NetworkingFunctions.getQosMinimumBandwidthRule(GetQosMinimumBandwidthRuleArgs.builder()\n .minKbps(2000)\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n qosMinBwRule1:\n fn::invoke:\n Function: openstack:networking:getQosMinimumBandwidthRule\n Arguments:\n minKbps: 2000\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Use this data source to get the ID of an available OpenStack QoS minimum bandwidth rule.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst qosMinBwRule1 = openstack.networking.getQosMinimumBandwidthRule({\n minKbps: 2000,\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nqos_min_bw_rule1 = openstack.networking.get_qos_minimum_bandwidth_rule(min_kbps=2000)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var qosMinBwRule1 = OpenStack.Networking.GetQosMinimumBandwidthRule.Invoke(new()\n {\n MinKbps = 2000,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := networking.LookupQosMinimumBandwidthRule(ctx, \u0026networking.LookupQosMinimumBandwidthRuleArgs{\n\t\t\tMinKbps: pulumi.IntRef(2000),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.NetworkingFunctions;\nimport com.pulumi.openstack.networking.inputs.GetQosMinimumBandwidthRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var qosMinBwRule1 = NetworkingFunctions.getQosMinimumBandwidthRule(GetQosMinimumBandwidthRuleArgs.builder()\n .minKbps(2000)\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n qosMinBwRule1:\n fn::invoke:\n Function: openstack:networking:getQosMinimumBandwidthRule\n Arguments:\n minKbps: 2000\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "inputs": { "description": "A collection of arguments for invoking getQosMinimumBandwidthRule.\n", "properties": { @@ -24139,7 +23923,7 @@ } }, "openstack:networking/getQosPolicy:getQosPolicy": { - "description": "Use this data source to get the ID of an available OpenStack QoS policy.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst qosPolicy1 = openstack.networking.getQosPolicy({\n name: \"qos_policy_1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nqos_policy1 = openstack.networking.get_qos_policy(name=\"qos_policy_1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var qosPolicy1 = OpenStack.Networking.GetQosPolicy.Invoke(new()\n {\n Name = \"qos_policy_1\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := networking.LookupQosPolicy(ctx, \u0026networking.LookupQosPolicyArgs{\n\t\t\tName: pulumi.StringRef(\"qos_policy_1\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.NetworkingFunctions;\nimport com.pulumi.openstack.networking.inputs.GetQosPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var qosPolicy1 = NetworkingFunctions.getQosPolicy(GetQosPolicyArgs.builder()\n .name(\"qos_policy_1\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n qosPolicy1:\n fn::invoke:\n Function: openstack:networking:getQosPolicy\n Arguments:\n name: qos_policy_1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Use this data source to get the ID of an available OpenStack QoS policy.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst qosPolicy1 = openstack.networking.getQosPolicy({\n name: \"qos_policy_1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nqos_policy1 = openstack.networking.get_qos_policy(name=\"qos_policy_1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var qosPolicy1 = OpenStack.Networking.GetQosPolicy.Invoke(new()\n {\n Name = \"qos_policy_1\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := networking.LookupQosPolicy(ctx, \u0026networking.LookupQosPolicyArgs{\n\t\t\tName: pulumi.StringRef(\"qos_policy_1\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.NetworkingFunctions;\nimport com.pulumi.openstack.networking.inputs.GetQosPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var qosPolicy1 = NetworkingFunctions.getQosPolicy(GetQosPolicyArgs.builder()\n .name(\"qos_policy_1\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n qosPolicy1:\n fn::invoke:\n Function: openstack:networking:getQosPolicy\n Arguments:\n name: qos_policy_1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "inputs": { "description": "A collection of arguments for invoking getQosPolicy.\n", "properties": { @@ -24252,7 +24036,7 @@ } }, "openstack:networking/getQuotaV2:getQuotaV2": { - "description": "Use this data source to get the networking quota of an OpenStack project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst quota = openstack.networking.getQuotaV2({\n projectId: \"2e367a3d29f94fd988e6ec54e305ec9d\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nquota = openstack.networking.get_quota_v2(project_id=\"2e367a3d29f94fd988e6ec54e305ec9d\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var quota = OpenStack.Networking.GetQuotaV2.Invoke(new()\n {\n ProjectId = \"2e367a3d29f94fd988e6ec54e305ec9d\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := networking.LookupQuotaV2(ctx, \u0026networking.LookupQuotaV2Args{\n\t\t\tProjectId: \"2e367a3d29f94fd988e6ec54e305ec9d\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.NetworkingFunctions;\nimport com.pulumi.openstack.networking.inputs.GetQuotaV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var quota = NetworkingFunctions.getQuotaV2(GetQuotaV2Args.builder()\n .projectId(\"2e367a3d29f94fd988e6ec54e305ec9d\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n quota:\n fn::invoke:\n Function: openstack:networking:getQuotaV2\n Arguments:\n projectId: 2e367a3d29f94fd988e6ec54e305ec9d\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Use this data source to get the networking quota of an OpenStack project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst quota = openstack.networking.getQuotaV2({\n projectId: \"2e367a3d29f94fd988e6ec54e305ec9d\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nquota = openstack.networking.get_quota_v2(project_id=\"2e367a3d29f94fd988e6ec54e305ec9d\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var quota = OpenStack.Networking.GetQuotaV2.Invoke(new()\n {\n ProjectId = \"2e367a3d29f94fd988e6ec54e305ec9d\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := networking.LookupQuotaV2(ctx, \u0026networking.LookupQuotaV2Args{\n\t\t\tProjectId: \"2e367a3d29f94fd988e6ec54e305ec9d\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.NetworkingFunctions;\nimport com.pulumi.openstack.networking.inputs.GetQuotaV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var quota = NetworkingFunctions.getQuotaV2(GetQuotaV2Args.builder()\n .projectId(\"2e367a3d29f94fd988e6ec54e305ec9d\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n quota:\n fn::invoke:\n Function: openstack:networking:getQuotaV2\n Arguments:\n projectId: 2e367a3d29f94fd988e6ec54e305ec9d\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "inputs": { "description": "A collection of arguments for invoking getQuotaV2.\n", "properties": { @@ -24341,7 +24125,7 @@ } }, "openstack:networking/getRouter:getRouter": { - "description": "Use this data source to get the ID of an available OpenStack router.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst router = openstack.networking.getRouter({\n name: \"router_1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nrouter = openstack.networking.get_router(name=\"router_1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var router = OpenStack.Networking.GetRouter.Invoke(new()\n {\n Name = \"router_1\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := networking.LookupRouter(ctx, \u0026networking.LookupRouterArgs{\n\t\t\tName: pulumi.StringRef(\"router_1\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.NetworkingFunctions;\nimport com.pulumi.openstack.networking.inputs.GetRouterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var router = NetworkingFunctions.getRouter(GetRouterArgs.builder()\n .name(\"router_1\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n router:\n fn::invoke:\n Function: openstack:networking:getRouter\n Arguments:\n name: router_1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Use this data source to get the ID of an available OpenStack router.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst router = openstack.networking.getRouter({\n name: \"router_1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nrouter = openstack.networking.get_router(name=\"router_1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var router = OpenStack.Networking.GetRouter.Invoke(new()\n {\n Name = \"router_1\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := networking.LookupRouter(ctx, \u0026networking.LookupRouterArgs{\n\t\t\tName: pulumi.StringRef(\"router_1\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.NetworkingFunctions;\nimport com.pulumi.openstack.networking.inputs.GetRouterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var router = NetworkingFunctions.getRouter(GetRouterArgs.builder()\n .name(\"router_1\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n router:\n fn::invoke:\n Function: openstack:networking:getRouter\n Arguments:\n name: router_1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "inputs": { "description": "A collection of arguments for invoking getRouter.\n", "properties": { @@ -24470,7 +24254,7 @@ } }, "openstack:networking/getSecGroup:getSecGroup": { - "description": "Use this data source to get the ID of an available OpenStack security group.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst secgroup = openstack.networking.getSecGroup({\n name: \"tf_test_secgroup\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nsecgroup = openstack.networking.get_sec_group(name=\"tf_test_secgroup\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var secgroup = OpenStack.Networking.GetSecGroup.Invoke(new()\n {\n Name = \"tf_test_secgroup\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := networking.LookupSecGroup(ctx, \u0026networking.LookupSecGroupArgs{\n\t\t\tName: pulumi.StringRef(\"tf_test_secgroup\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.NetworkingFunctions;\nimport com.pulumi.openstack.networking.inputs.GetSecGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var secgroup = NetworkingFunctions.getSecGroup(GetSecGroupArgs.builder()\n .name(\"tf_test_secgroup\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n secgroup:\n fn::invoke:\n Function: openstack:networking:getSecGroup\n Arguments:\n name: tf_test_secgroup\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Use this data source to get the ID of an available OpenStack security group.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst secgroup = openstack.networking.getSecGroup({\n name: \"tf_test_secgroup\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nsecgroup = openstack.networking.get_sec_group(name=\"tf_test_secgroup\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var secgroup = OpenStack.Networking.GetSecGroup.Invoke(new()\n {\n Name = \"tf_test_secgroup\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := networking.LookupSecGroup(ctx, \u0026networking.LookupSecGroupArgs{\n\t\t\tName: pulumi.StringRef(\"tf_test_secgroup\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.NetworkingFunctions;\nimport com.pulumi.openstack.networking.inputs.GetSecGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var secgroup = NetworkingFunctions.getSecGroup(GetSecGroupArgs.builder()\n .name(\"tf_test_secgroup\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n secgroup:\n fn::invoke:\n Function: openstack:networking:getSecGroup\n Arguments:\n name: tf_test_secgroup\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "inputs": { "description": "A collection of arguments for invoking getSecGroup.\n", "properties": { @@ -24555,7 +24339,7 @@ } }, "openstack:networking/getSubnet:getSubnet": { - "description": "Use this data source to get the ID of an available OpenStack subnet.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst subnet1 = openstack.networking.getSubnet({\n name: \"subnet_1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nsubnet1 = openstack.networking.get_subnet(name=\"subnet_1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var subnet1 = OpenStack.Networking.GetSubnet.Invoke(new()\n {\n Name = \"subnet_1\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := networking.LookupSubnet(ctx, \u0026networking.LookupSubnetArgs{\n\t\t\tName: pulumi.StringRef(\"subnet_1\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.NetworkingFunctions;\nimport com.pulumi.openstack.networking.inputs.GetSubnetArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var subnet1 = NetworkingFunctions.getSubnet(GetSubnetArgs.builder()\n .name(\"subnet_1\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n subnet1:\n fn::invoke:\n Function: openstack:networking:getSubnet\n Arguments:\n name: subnet_1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Use this data source to get the ID of an available OpenStack subnet.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst subnet1 = openstack.networking.getSubnet({\n name: \"subnet_1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nsubnet1 = openstack.networking.get_subnet(name=\"subnet_1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var subnet1 = OpenStack.Networking.GetSubnet.Invoke(new()\n {\n Name = \"subnet_1\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := networking.LookupSubnet(ctx, \u0026networking.LookupSubnetArgs{\n\t\t\tName: pulumi.StringRef(\"subnet_1\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.NetworkingFunctions;\nimport com.pulumi.openstack.networking.inputs.GetSubnetArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var subnet1 = NetworkingFunctions.getSubnet(GetSubnetArgs.builder()\n .name(\"subnet_1\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n subnet1:\n fn::invoke:\n Function: openstack:networking:getSubnet\n Arguments:\n name: subnet_1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "inputs": { "description": "A collection of arguments for invoking getSubnet.\n", "properties": { @@ -24567,10 +24351,6 @@ "type": "string", "description": "Human-readable description of the subnet.\n" }, - "dhcpDisabled": { - "type": "boolean", - "deprecationMessage": "use dhcp_enabled instead" - }, "dhcpEnabled": { "type": "boolean", "description": "If the subnet has DHCP enabled.\n" @@ -24651,10 +24431,6 @@ "description": { "type": "string" }, - "dhcpDisabled": { - "deprecationMessage": "use dhcp_enabled instead", - "type": "boolean" - }, "dhcpEnabled": { "type": "boolean" }, @@ -24750,7 +24526,7 @@ } }, "openstack:networking/getSubnetIdsV2:getSubnetIdsV2": { - "description": "Use this data source to get a list of Openstack Subnet IDs matching the\nspecified criteria.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst subnets = openstack.networking.getSubnetIdsV2({\n nameRegex: \"public\",\n tags: [\"public\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nsubnets = openstack.networking.get_subnet_ids_v2(name_regex=\"public\",\n tags=[\"public\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var subnets = OpenStack.Networking.GetSubnetIdsV2.Invoke(new()\n {\n NameRegex = \"public\",\n Tags = new[]\n {\n \"public\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := networking.GetSubnetIdsV2(ctx, \u0026networking.GetSubnetIdsV2Args{\n\t\t\tNameRegex: pulumi.StringRef(\"public\"),\n\t\t\tTags: []string{\n\t\t\t\t\"public\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.NetworkingFunctions;\nimport com.pulumi.openstack.networking.inputs.GetSubnetIdsV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var subnets = NetworkingFunctions.getSubnetIdsV2(GetSubnetIdsV2Args.builder()\n .nameRegex(\"public\")\n .tags(\"public\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n subnets:\n fn::invoke:\n Function: openstack:networking:getSubnetIdsV2\n Arguments:\n nameRegex: public\n tags:\n - public\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Use this data source to get a list of Openstack Subnet IDs matching the\nspecified criteria.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst subnets = openstack.networking.getSubnetIdsV2({\n nameRegex: \"public\",\n tags: [\"public\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nsubnets = openstack.networking.get_subnet_ids_v2(name_regex=\"public\",\n tags=[\"public\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var subnets = OpenStack.Networking.GetSubnetIdsV2.Invoke(new()\n {\n NameRegex = \"public\",\n Tags = new[]\n {\n \"public\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := networking.GetSubnetIdsV2(ctx, \u0026networking.GetSubnetIdsV2Args{\n\t\t\tNameRegex: pulumi.StringRef(\"public\"),\n\t\t\tTags: []string{\n\t\t\t\t\"public\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.NetworkingFunctions;\nimport com.pulumi.openstack.networking.inputs.GetSubnetIdsV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var subnets = NetworkingFunctions.getSubnetIdsV2(GetSubnetIdsV2Args.builder()\n .nameRegex(\"public\")\n .tags(\"public\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n subnets:\n fn::invoke:\n Function: openstack:networking:getSubnetIdsV2\n Arguments:\n nameRegex: public\n tags:\n - public\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "inputs": { "description": "A collection of arguments for invoking getSubnetIdsV2.\n", "properties": { @@ -24911,7 +24687,7 @@ } }, "openstack:networking/getSubnetPool:getSubnetPool": { - "description": "Use this data source to get the ID of an available OpenStack subnetpool.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst subnetpool1 = openstack.networking.getSubnetPool({\n name: \"subnetpool_1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nsubnetpool1 = openstack.networking.get_subnet_pool(name=\"subnetpool_1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var subnetpool1 = OpenStack.Networking.GetSubnetPool.Invoke(new()\n {\n Name = \"subnetpool_1\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := networking.LookupSubnetPool(ctx, \u0026networking.LookupSubnetPoolArgs{\n\t\t\tName: pulumi.StringRef(\"subnetpool_1\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.NetworkingFunctions;\nimport com.pulumi.openstack.networking.inputs.GetSubnetPoolArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var subnetpool1 = NetworkingFunctions.getSubnetPool(GetSubnetPoolArgs.builder()\n .name(\"subnetpool_1\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n subnetpool1:\n fn::invoke:\n Function: openstack:networking:getSubnetPool\n Arguments:\n name: subnetpool_1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Use this data source to get the ID of an available OpenStack subnetpool.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst subnetpool1 = openstack.networking.getSubnetPool({\n name: \"subnetpool_1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nsubnetpool1 = openstack.networking.get_subnet_pool(name=\"subnetpool_1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var subnetpool1 = OpenStack.Networking.GetSubnetPool.Invoke(new()\n {\n Name = \"subnetpool_1\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := networking.LookupSubnetPool(ctx, \u0026networking.LookupSubnetPoolArgs{\n\t\t\tName: pulumi.StringRef(\"subnetpool_1\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.NetworkingFunctions;\nimport com.pulumi.openstack.networking.inputs.GetSubnetPoolArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var subnetpool1 = NetworkingFunctions.getSubnetPool(GetSubnetPoolArgs.builder()\n .name(\"subnetpool_1\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n subnetpool1:\n fn::invoke:\n Function: openstack:networking:getSubnetPool\n Arguments:\n name: subnetpool_1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "inputs": { "description": "A collection of arguments for invoking getSubnetPool.\n", "properties": { @@ -25087,7 +24863,7 @@ } }, "openstack:networking/getTrunk:getTrunk": { - "description": "Use this data source to get the ID of an available OpenStack trunk.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst trunk1 = openstack.networking.getTrunk({\n name: \"trunk_1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\ntrunk1 = openstack.networking.get_trunk(name=\"trunk_1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var trunk1 = OpenStack.Networking.GetTrunk.Invoke(new()\n {\n Name = \"trunk_1\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := networking.LookupTrunk(ctx, \u0026networking.LookupTrunkArgs{\n\t\t\tName: pulumi.StringRef(\"trunk_1\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.NetworkingFunctions;\nimport com.pulumi.openstack.networking.inputs.GetTrunkArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var trunk1 = NetworkingFunctions.getTrunk(GetTrunkArgs.builder()\n .name(\"trunk_1\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n trunk1:\n fn::invoke:\n Function: openstack:networking:getTrunk\n Arguments:\n name: trunk_1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Use this data source to get the ID of an available OpenStack trunk.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst trunk1 = openstack.networking.getTrunk({\n name: \"trunk_1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\ntrunk1 = openstack.networking.get_trunk(name=\"trunk_1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var trunk1 = OpenStack.Networking.GetTrunk.Invoke(new()\n {\n Name = \"trunk_1\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := networking.LookupTrunk(ctx, \u0026networking.LookupTrunkArgs{\n\t\t\tName: pulumi.StringRef(\"trunk_1\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.networking.NetworkingFunctions;\nimport com.pulumi.openstack.networking.inputs.GetTrunkArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var trunk1 = NetworkingFunctions.getTrunk(GetTrunkArgs.builder()\n .name(\"trunk_1\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n trunk1:\n fn::invoke:\n Function: openstack:networking:getTrunk\n Arguments:\n name: trunk_1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "inputs": { "description": "A collection of arguments for invoking getTrunk.\n", "properties": { @@ -25197,7 +24973,7 @@ } }, "openstack:sharedfilesystem/getAvailbilityZones:getAvailbilityZones": { - "description": "Use this data source to get a list of Shared File System availability zones\nfrom OpenStack\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst zones = openstack.sharedfilesystem.getAvailbilityZones({});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nzones = openstack.sharedfilesystem.get_availbility_zones()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var zones = OpenStack.SharedFileSystem.GetAvailbilityZones.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/sharedfilesystem\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := sharedfilesystem.GetAvailbilityZones(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.sharedfilesystem.SharedfilesystemFunctions;\nimport com.pulumi.openstack.sharedfilesystem.inputs.GetAvailbilityZonesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var zones = SharedfilesystemFunctions.getAvailbilityZones();\n\n }\n}\n```\n```yaml\nvariables:\n zones:\n fn::invoke:\n Function: openstack:sharedfilesystem:getAvailbilityZones\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Use this data source to get a list of Shared File System availability zones\nfrom OpenStack\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst zones = openstack.sharedfilesystem.getAvailbilityZones({});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nzones = openstack.sharedfilesystem.get_availbility_zones()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var zones = OpenStack.SharedFileSystem.GetAvailbilityZones.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/sharedfilesystem\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := sharedfilesystem.GetAvailbilityZones(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.sharedfilesystem.SharedfilesystemFunctions;\nimport com.pulumi.openstack.sharedfilesystem.inputs.GetAvailbilityZonesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var zones = SharedfilesystemFunctions.getAvailbilityZones();\n\n }\n}\n```\n```yaml\nvariables:\n zones:\n fn::invoke:\n Function: openstack:sharedfilesystem:getAvailbilityZones\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "inputs": { "description": "A collection of arguments for invoking getAvailbilityZones.\n", "properties": { @@ -25236,7 +25012,7 @@ } }, "openstack:sharedfilesystem/getShare:getShare": { - "description": "Use this data source to get the ID of an available Shared File System share.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst share1 = openstack.sharedfilesystem.getShare({\n name: \"share_1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nshare1 = openstack.sharedfilesystem.get_share(name=\"share_1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var share1 = OpenStack.SharedFileSystem.GetShare.Invoke(new()\n {\n Name = \"share_1\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/sharedfilesystem\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := sharedfilesystem.LookupShare(ctx, \u0026sharedfilesystem.LookupShareArgs{\n\t\t\tName: pulumi.StringRef(\"share_1\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.sharedfilesystem.SharedfilesystemFunctions;\nimport com.pulumi.openstack.sharedfilesystem.inputs.GetShareArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var share1 = SharedfilesystemFunctions.getShare(GetShareArgs.builder()\n .name(\"share_1\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n share1:\n fn::invoke:\n Function: openstack:sharedfilesystem:getShare\n Arguments:\n name: share_1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Use this data source to get the ID of an available Shared File System share.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst share1 = openstack.sharedfilesystem.getShare({\n name: \"share_1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nshare1 = openstack.sharedfilesystem.get_share(name=\"share_1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var share1 = OpenStack.SharedFileSystem.GetShare.Invoke(new()\n {\n Name = \"share_1\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/sharedfilesystem\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := sharedfilesystem.LookupShare(ctx, \u0026sharedfilesystem.LookupShareArgs{\n\t\t\tName: pulumi.StringRef(\"share_1\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.sharedfilesystem.SharedfilesystemFunctions;\nimport com.pulumi.openstack.sharedfilesystem.inputs.GetShareArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var share1 = SharedfilesystemFunctions.getShare(GetShareArgs.builder()\n .name(\"share_1\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n share1:\n fn::invoke:\n Function: openstack:sharedfilesystem:getShare\n Arguments:\n name: share_1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "inputs": { "description": "A collection of arguments for invoking getShare.\n", "properties": { @@ -25372,7 +25148,7 @@ } }, "openstack:sharedfilesystem/getShareNetwork:getShareNetwork": { - "description": "Use this data source to get the ID of an available Shared File System share network.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst sharenetwork1 = openstack.sharedfilesystem.getShareNetwork({\n name: \"sharenetwork_1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nsharenetwork1 = openstack.sharedfilesystem.get_share_network(name=\"sharenetwork_1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var sharenetwork1 = OpenStack.SharedFileSystem.GetShareNetwork.Invoke(new()\n {\n Name = \"sharenetwork_1\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/sharedfilesystem\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := sharedfilesystem.LookupShareNetwork(ctx, \u0026sharedfilesystem.LookupShareNetworkArgs{\n\t\t\tName: pulumi.StringRef(\"sharenetwork_1\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.sharedfilesystem.SharedfilesystemFunctions;\nimport com.pulumi.openstack.sharedfilesystem.inputs.GetShareNetworkArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var sharenetwork1 = SharedfilesystemFunctions.getShareNetwork(GetShareNetworkArgs.builder()\n .name(\"sharenetwork_1\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n sharenetwork1:\n fn::invoke:\n Function: openstack:sharedfilesystem:getShareNetwork\n Arguments:\n name: sharenetwork_1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Use this data source to get the ID of an available Shared File System share network.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst sharenetwork1 = openstack.sharedfilesystem.getShareNetwork({\n name: \"sharenetwork_1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nsharenetwork1 = openstack.sharedfilesystem.get_share_network(name=\"sharenetwork_1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var sharenetwork1 = OpenStack.SharedFileSystem.GetShareNetwork.Invoke(new()\n {\n Name = \"sharenetwork_1\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/sharedfilesystem\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := sharedfilesystem.LookupShareNetwork(ctx, \u0026sharedfilesystem.LookupShareNetworkArgs{\n\t\t\tName: pulumi.StringRef(\"sharenetwork_1\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.sharedfilesystem.SharedfilesystemFunctions;\nimport com.pulumi.openstack.sharedfilesystem.inputs.GetShareNetworkArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var sharenetwork1 = SharedfilesystemFunctions.getShareNetwork(GetShareNetworkArgs.builder()\n .name(\"sharenetwork_1\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n sharenetwork1:\n fn::invoke:\n Function: openstack:sharedfilesystem:getShareNetwork\n Arguments:\n name: sharenetwork_1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "inputs": { "description": "A collection of arguments for invoking getShareNetwork.\n", "properties": { @@ -25492,7 +25268,7 @@ } }, "openstack:sharedfilesystem/getSnapshot:getSnapshot": { - "description": "Use this data source to get the ID of an available Shared File System snapshot.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst snapshot1 = openstack.sharedfilesystem.getSnapshot({\n name: \"snapshot_1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nsnapshot1 = openstack.sharedfilesystem.get_snapshot(name=\"snapshot_1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var snapshot1 = OpenStack.SharedFileSystem.GetSnapshot.Invoke(new()\n {\n Name = \"snapshot_1\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/sharedfilesystem\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := sharedfilesystem.GetSnapshot(ctx, \u0026sharedfilesystem.GetSnapshotArgs{\n\t\t\tName: pulumi.StringRef(\"snapshot_1\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.sharedfilesystem.SharedfilesystemFunctions;\nimport com.pulumi.openstack.sharedfilesystem.inputs.GetSnapshotArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var snapshot1 = SharedfilesystemFunctions.getSnapshot(GetSnapshotArgs.builder()\n .name(\"snapshot_1\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n snapshot1:\n fn::invoke:\n Function: openstack:sharedfilesystem:getSnapshot\n Arguments:\n name: snapshot_1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Use this data source to get the ID of an available Shared File System snapshot.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as openstack from \"@pulumi/openstack\";\n\nconst snapshot1 = openstack.sharedfilesystem.getSnapshot({\n name: \"snapshot_1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_openstack as openstack\n\nsnapshot1 = openstack.sharedfilesystem.get_snapshot(name=\"snapshot_1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing OpenStack = Pulumi.OpenStack;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var snapshot1 = OpenStack.SharedFileSystem.GetSnapshot.Invoke(new()\n {\n Name = \"snapshot_1\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/sharedfilesystem\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := sharedfilesystem.GetSnapshot(ctx, \u0026sharedfilesystem.GetSnapshotArgs{\n\t\t\tName: pulumi.StringRef(\"snapshot_1\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.openstack.sharedfilesystem.SharedfilesystemFunctions;\nimport com.pulumi.openstack.sharedfilesystem.inputs.GetSnapshotArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var snapshot1 = SharedfilesystemFunctions.getSnapshot(GetSnapshotArgs.builder()\n .name(\"snapshot_1\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n snapshot1:\n fn::invoke:\n Function: openstack:sharedfilesystem:getSnapshot\n Arguments:\n name: snapshot_1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "inputs": { "description": "A collection of arguments for invoking getSnapshot.\n", "properties": { diff --git a/provider/cmd/pulumi-tfgen-openstack/main.go b/provider/cmd/pulumi-tfgen-openstack/main.go index 60e06ef64..78469b56a 100644 --- a/provider/cmd/pulumi-tfgen-openstack/main.go +++ b/provider/cmd/pulumi-tfgen-openstack/main.go @@ -17,8 +17,8 @@ package main import ( "github.com/pulumi/pulumi-terraform-bridge/v3/pkg/tfgen" - openstack "github.com/pulumi/pulumi-openstack/provider/v3" - "github.com/pulumi/pulumi-openstack/provider/v3/pkg/version" + openstack "github.com/pulumi/pulumi-openstack/provider/v4" + "github.com/pulumi/pulumi-openstack/provider/v4/pkg/version" ) func main() { diff --git a/provider/go.mod b/provider/go.mod index 64deaa423..4d8a84f4d 100644 --- a/provider/go.mod +++ b/provider/go.mod @@ -1,11 +1,11 @@ -module github.com/pulumi/pulumi-openstack/provider/v3 +module github.com/pulumi/pulumi-openstack/provider/v4 go 1.21 require ( github.com/pulumi/pulumi-terraform-bridge/v3 v3.82.0 github.com/pulumi/pulumi/sdk/v3 v3.114.0 - github.com/terraform-provider-openstack/terraform-provider-openstack v1.54.1 + github.com/terraform-provider-openstack/terraform-provider-openstack v1.54.2-0.20240516112058-eff4f37baab4 ) replace ( @@ -100,7 +100,7 @@ require ( github.com/google/wire v0.6.0 // indirect github.com/googleapis/enterprise-certificate-proxy v0.3.2 // indirect github.com/googleapis/gax-go/v2 v2.12.2 // indirect - github.com/gophercloud/gophercloud v1.8.0 // indirect + github.com/gophercloud/gophercloud v1.9.0 // indirect github.com/gophercloud/utils v0.0.0-20230324070755-05e9e7f5ea4d // indirect github.com/gorilla/mux v1.8.0 // indirect github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645 // indirect diff --git a/provider/go.sum b/provider/go.sum index b452f6386..05985daf4 100644 --- a/provider/go.sum +++ b/provider/go.sum @@ -2103,8 +2103,8 @@ github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8 github.com/gophercloud/gophercloud v0.24.0/go.mod h1:Q8fZtyi5zZxPS/j9aj3sSxtvj41AdQMDwyo1myduD5c= github.com/gophercloud/gophercloud v0.25.0/go.mod h1:Q8fZtyi5zZxPS/j9aj3sSxtvj41AdQMDwyo1myduD5c= github.com/gophercloud/gophercloud v1.1.1/go.mod h1:aAVqcocTSXh2vYFZ1JTvx4EQmfgzxRcNupUfxZbBNDM= -github.com/gophercloud/gophercloud v1.8.0 h1:TM3Jawprb2NrdOnvcHhWJalmKmAmOGgfZElM/3oBYCk= -github.com/gophercloud/gophercloud v1.8.0/go.mod h1:aAVqcocTSXh2vYFZ1JTvx4EQmfgzxRcNupUfxZbBNDM= +github.com/gophercloud/gophercloud v1.9.0 h1:zKvmHOmHuaZlnx9d2DJpEgbMxrGt/+CJ/bKOKQh9Xzo= +github.com/gophercloud/gophercloud v1.9.0/go.mod h1:aAVqcocTSXh2vYFZ1JTvx4EQmfgzxRcNupUfxZbBNDM= github.com/gophercloud/utils v0.0.0-20230324070755-05e9e7f5ea4d h1:AfRlf5NnsYsHIW5nNxhYp+99Bmj/fLeOYwD5Z4CMlzw= github.com/gophercloud/utils v0.0.0-20230324070755-05e9e7f5ea4d/go.mod h1:z4Dey7xsTUXgcB1C8elMvGRKTjV1ez0eoYQlMrduG1g= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= @@ -2970,8 +2970,8 @@ github.com/syndtr/gocapability v0.0.0-20180916011248-d98352740cb2/go.mod h1:hkRG github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= github.com/tchap/go-patricia v2.2.6+incompatible/go.mod h1:bmLyhP68RS6kStMGxByiQ23RP/odRBOTVjwp2cDyi6I= github.com/tedsuo/ifrit v0.0.0-20180802180643-bea94bb476cc/go.mod h1:eyZnKCc955uh98WQvzOm0dgAeLnf2O0Rz0LPoC5ze+0= -github.com/terraform-provider-openstack/terraform-provider-openstack v1.54.1 h1:M5KvCjQf2eBkd8N24FTGCu7cGoPoBi/N0FG90WjMpPo= -github.com/terraform-provider-openstack/terraform-provider-openstack v1.54.1/go.mod h1:F142rYNEJIEEQ4WNGvFcRpl5qKPMwrF5xvZF5zhe3b4= +github.com/terraform-provider-openstack/terraform-provider-openstack v1.54.2-0.20240516112058-eff4f37baab4 h1:l3OE4jRv38b25zBDCUnmXLt4QWRV9uUjvq3yYjwA9gQ= +github.com/terraform-provider-openstack/terraform-provider-openstack v1.54.2-0.20240516112058-eff4f37baab4/go.mod h1:kXmkWzYw3JnqD5dRF+cxwOqrpW6Ao8OFvFF1FcUNaLs= github.com/texttheater/golang-levenshtein v1.0.1 h1:+cRNoVrfiwufQPhoMzB6N0Yf/Mqajr6t1lOv8GyGE2U= github.com/texttheater/golang-levenshtein v1.0.1/go.mod h1:PYAKrbF5sAiq9wd+H82hs7gNaen0CplQ9uvm6+enD/8= github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= diff --git a/provider/resources.go b/provider/resources.go index 4e52a5616..9ebcd1b6b 100644 --- a/provider/resources.go +++ b/provider/resources.go @@ -30,7 +30,7 @@ import ( shimv2 "github.com/pulumi/pulumi-terraform-bridge/v3/pkg/tfshim/sdk-v2" "github.com/pulumi/pulumi/sdk/v3/go/common/tokens" - "github.com/pulumi/pulumi-openstack/provider/v3/pkg/version" + "github.com/pulumi/pulumi-openstack/provider/v4/pkg/version" ) // all of the OpenStack token components used below. @@ -232,9 +232,6 @@ func Provider() tfbridge.ProviderInfo { "allocation_pool": { Name: "allocationPools", }, - "allocation_pools": { - Name: "allocationPoolsCollection", - }, }, }, "openstack_networking_subnet_route_v2": {Tok: openstackResource(networkingMod, "SubnetRoute")}, diff --git a/sdk/dotnet/BlockStorage/GetVolumeV3.cs b/sdk/dotnet/BlockStorage/GetVolumeV3.cs index 037264822..eb4175ca2 100644 --- a/sdk/dotnet/BlockStorage/GetVolumeV3.cs +++ b/sdk/dotnet/BlockStorage/GetVolumeV3.cs @@ -202,10 +202,6 @@ public sealed class GetVolumeV3Result /// public readonly ImmutableDictionary Metadata; /// - /// Indicates if the volume can be attached to more then one server. - /// - public readonly bool Multiattach; - /// /// See Argument Reference above. /// public readonly string Name; @@ -242,8 +238,6 @@ private GetVolumeV3Result( ImmutableDictionary metadata, - bool multiattach, - string name, string region, @@ -261,7 +255,6 @@ private GetVolumeV3Result( Host = host; Id = id; Metadata = metadata; - Multiattach = multiattach; Name = name; Region = region; Size = size; diff --git a/sdk/dotnet/BlockStorage/Volume.cs b/sdk/dotnet/BlockStorage/Volume.cs index 7b43da464..06aed1151 100644 --- a/sdk/dotnet/BlockStorage/Volume.cs +++ b/sdk/dotnet/BlockStorage/Volume.cs @@ -104,12 +104,6 @@ public partial class Volume : global::Pulumi.CustomResource [Output("metadata")] public Output> Metadata { get; private set; } = null!; - /// - /// (Optional) Allow the volume to be attached to more than one Compute instance. - /// - [Output("multiattach")] - public Output Multiattach { get; private set; } = null!; - /// /// A unique name for the volume. Changing this updates the /// volume's name. @@ -271,12 +265,6 @@ public InputMap Metadata set => _metadata = value; } - /// - /// (Optional) Allow the volume to be attached to more than one Compute instance. - /// - [Input("multiattach")] - public Input? Multiattach { get; set; } - /// /// A unique name for the volume. Changing this updates the /// volume's name. @@ -420,12 +408,6 @@ public InputMap Metadata set => _metadata = value; } - /// - /// (Optional) Allow the volume to be attached to more than one Compute instance. - /// - [Input("multiattach")] - public Input? Multiattach { get; set; } - /// /// A unique name for the volume. Changing this updates the /// volume's name. diff --git a/sdk/dotnet/BlockStorage/VolumeAttachV2.cs b/sdk/dotnet/BlockStorage/VolumeAttachV2.cs index b930dd842..aff14772a 100644 --- a/sdk/dotnet/BlockStorage/VolumeAttachV2.cs +++ b/sdk/dotnet/BlockStorage/VolumeAttachV2.cs @@ -123,9 +123,6 @@ public partial class VolumeAttachV2 : global::Pulumi.CustomResource [Output("initiator")] public Output Initiator { get; private set; } = null!; - [Output("instanceId")] - public Output InstanceId { get; private set; } = null!; - /// /// The IP address of the `host_name` above. /// @@ -262,9 +259,6 @@ public sealed class VolumeAttachV2Args : global::Pulumi.ResourceArgs [Input("initiator")] public Input? Initiator { get; set; } - [Input("instanceId")] - public Input? InstanceId { get; set; } - /// /// The IP address of the `host_name` above. /// @@ -383,9 +377,6 @@ public InputMap Data [Input("initiator")] public Input? Initiator { get; set; } - [Input("instanceId")] - public Input? InstanceId { get; set; } - /// /// The IP address of the `host_name` above. /// diff --git a/sdk/dotnet/BlockStorage/VolumeTypeV3.cs b/sdk/dotnet/BlockStorage/VolumeTypeV3.cs index acf2cdbef..ced23d7d4 100644 --- a/sdk/dotnet/BlockStorage/VolumeTypeV3.cs +++ b/sdk/dotnet/BlockStorage/VolumeTypeV3.cs @@ -16,6 +16,8 @@ namespace Pulumi.OpenStack.BlockStorage /// /// ## Example Usage /// + /// ### Basic Volume Type + /// /// ```csharp /// using System.Collections.Generic; /// using System.Linq; @@ -38,6 +40,29 @@ namespace Pulumi.OpenStack.BlockStorage /// }); /// ``` /// + /// ### Volume Type with multiattach enabled + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using OpenStack = Pulumi.OpenStack; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var multiattach = new OpenStack.BlockStorage.VolumeTypeV3("multiattach", new() + /// { + /// Name = "multiattach", + /// Description = "Multiattach-enabled volume type", + /// ExtraSpecs = + /// { + /// { "multiattach", "<is> True" }, + /// }, + /// }); + /// + /// }); + /// ``` + /// /// ## Import /// /// Volume types can be imported using the `volume_type_id`, e.g. diff --git a/sdk/dotnet/Compute/Inputs/InstanceNetworkArgs.cs b/sdk/dotnet/Compute/Inputs/InstanceNetworkArgs.cs index 8aab98be4..6adaeef11 100644 --- a/sdk/dotnet/Compute/Inputs/InstanceNetworkArgs.cs +++ b/sdk/dotnet/Compute/Inputs/InstanceNetworkArgs.cs @@ -29,9 +29,6 @@ public sealed class InstanceNetworkArgs : global::Pulumi.ResourceArgs [Input("fixedIpV6")] public Input? FixedIpV6 { get; set; } - [Input("floatingIp")] - public Input? FloatingIp { get; set; } - [Input("mac")] public Input? Mac { get; set; } diff --git a/sdk/dotnet/Compute/Inputs/InstanceNetworkGetArgs.cs b/sdk/dotnet/Compute/Inputs/InstanceNetworkGetArgs.cs index 1ec528a5e..043f5779c 100644 --- a/sdk/dotnet/Compute/Inputs/InstanceNetworkGetArgs.cs +++ b/sdk/dotnet/Compute/Inputs/InstanceNetworkGetArgs.cs @@ -29,9 +29,6 @@ public sealed class InstanceNetworkGetArgs : global::Pulumi.ResourceArgs [Input("fixedIpV6")] public Input? FixedIpV6 { get; set; } - [Input("floatingIp")] - public Input? FloatingIp { get; set; } - [Input("mac")] public Input? Mac { get; set; } diff --git a/sdk/dotnet/Compute/Inputs/InstanceSchedulerHintArgs.cs b/sdk/dotnet/Compute/Inputs/InstanceSchedulerHintArgs.cs index f66c45572..745f60103 100644 --- a/sdk/dotnet/Compute/Inputs/InstanceSchedulerHintArgs.cs +++ b/sdk/dotnet/Compute/Inputs/InstanceSchedulerHintArgs.cs @@ -59,7 +59,8 @@ public InputList DifferentHosts /// /// A UUID of a Server Group. The instance will be placed - /// into that group. + /// into that group. See reference + /// for details on managing servergroup resources /// [Input("group")] public Input? Group { get; set; } diff --git a/sdk/dotnet/Compute/Inputs/InstanceSchedulerHintGetArgs.cs b/sdk/dotnet/Compute/Inputs/InstanceSchedulerHintGetArgs.cs index 0842c90ea..a54610bb1 100644 --- a/sdk/dotnet/Compute/Inputs/InstanceSchedulerHintGetArgs.cs +++ b/sdk/dotnet/Compute/Inputs/InstanceSchedulerHintGetArgs.cs @@ -59,7 +59,8 @@ public InputList DifferentHosts /// /// A UUID of a Server Group. The instance will be placed - /// into that group. + /// into that group. See reference + /// for details on managing servergroup resources /// [Input("group")] public Input? Group { get; set; } diff --git a/sdk/dotnet/Compute/Inputs/InstanceVolumeArgs.cs b/sdk/dotnet/Compute/Inputs/InstanceVolumeArgs.cs deleted file mode 100644 index ef6271dea..000000000 --- a/sdk/dotnet/Compute/Inputs/InstanceVolumeArgs.cs +++ /dev/null @@ -1,29 +0,0 @@ -// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -using System; -using System.Collections.Generic; -using System.Collections.Immutable; -using System.Threading.Tasks; -using Pulumi.Serialization; - -namespace Pulumi.OpenStack.Compute.Inputs -{ - - public sealed class InstanceVolumeArgs : global::Pulumi.ResourceArgs - { - [Input("device")] - public Input? Device { get; set; } - - [Input("id")] - public Input? Id { get; set; } - - [Input("volumeId", required: true)] - public Input VolumeId { get; set; } = null!; - - public InstanceVolumeArgs() - { - } - public static new InstanceVolumeArgs Empty => new InstanceVolumeArgs(); - } -} diff --git a/sdk/dotnet/Compute/Inputs/InstanceVolumeGetArgs.cs b/sdk/dotnet/Compute/Inputs/InstanceVolumeGetArgs.cs deleted file mode 100644 index fab58cf73..000000000 --- a/sdk/dotnet/Compute/Inputs/InstanceVolumeGetArgs.cs +++ /dev/null @@ -1,29 +0,0 @@ -// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -using System; -using System.Collections.Generic; -using System.Collections.Immutable; -using System.Threading.Tasks; -using Pulumi.Serialization; - -namespace Pulumi.OpenStack.Compute.Inputs -{ - - public sealed class InstanceVolumeGetArgs : global::Pulumi.ResourceArgs - { - [Input("device")] - public Input? Device { get; set; } - - [Input("id")] - public Input? Id { get; set; } - - [Input("volumeId", required: true)] - public Input VolumeId { get; set; } = null!; - - public InstanceVolumeGetArgs() - { - } - public static new InstanceVolumeGetArgs Empty => new InstanceVolumeGetArgs(); - } -} diff --git a/sdk/dotnet/Compute/Instance.cs b/sdk/dotnet/Compute/Instance.cs index 40f40437a..4cd564023 100644 --- a/sdk/dotnet/Compute/Instance.cs +++ b/sdk/dotnet/Compute/Instance.cs @@ -98,9 +98,6 @@ public partial class Instance : global::Pulumi.CustomResource [Output("flavorName")] public Output FlavorName { get; private set; } = null!; - [Output("floatingIp")] - public Output FloatingIp { get; private set; } = null!; - /// /// Whether to force the OpenStack instance to be /// forcefully deleted. This is useful for environments that have reclaim / soft @@ -242,9 +239,6 @@ public partial class Instance : global::Pulumi.CustomResource [Output("vendorOptions")] public Output VendorOptions { get; private set; } = null!; - [Output("volumes")] - public Output> Volumes { get; private set; } = null!; - /// /// Create a Instance resource with the given unique name, arguments, and options. @@ -381,9 +375,6 @@ public InputList BlockDevices [Input("flavorName")] public Input? FlavorName { get; set; } - [Input("floatingIp")] - public Input? FloatingIp { get; set; } - /// /// Whether to force the OpenStack instance to be /// forcefully deleted. This is useful for environments that have reclaim / soft @@ -555,15 +546,6 @@ public InputList Tags [Input("vendorOptions")] public Input? VendorOptions { get; set; } - [Input("volumes")] - private InputList? _volumes; - [Obsolete(@"Use block_device or openstack.compute.VolumeAttach instead")] - public InputList Volumes - { - get => _volumes ?? (_volumes = new InputList()); - set => _volumes = value; - } - public InstanceArgs() { } @@ -685,9 +667,6 @@ public InputList BlockDevices [Input("flavorName")] public Input? FlavorName { get; set; } - [Input("floatingIp")] - public Input? FloatingIp { get; set; } - /// /// Whether to force the OpenStack instance to be /// forcefully deleted. This is useful for environments that have reclaim / soft @@ -865,15 +844,6 @@ public InputList Tags [Input("vendorOptions")] public Input? VendorOptions { get; set; } - [Input("volumes")] - private InputList? _volumes; - [Obsolete(@"Use block_device or openstack.compute.VolumeAttach instead")] - public InputList Volumes - { - get => _volumes ?? (_volumes = new InputList()); - set => _volumes = value; - } - public InstanceState() { } diff --git a/sdk/dotnet/Compute/Outputs/InstanceNetwork.cs b/sdk/dotnet/Compute/Outputs/InstanceNetwork.cs index a39422cc6..383d752a6 100644 --- a/sdk/dotnet/Compute/Outputs/InstanceNetwork.cs +++ b/sdk/dotnet/Compute/Outputs/InstanceNetwork.cs @@ -24,7 +24,6 @@ public sealed class InstanceNetwork /// public readonly string? FixedIpV4; public readonly string? FixedIpV6; - public readonly string? FloatingIp; public readonly string? Mac; /// /// The human-readable @@ -50,8 +49,6 @@ private InstanceNetwork( string? fixedIpV6, - string? floatingIp, - string? mac, string? name, @@ -63,7 +60,6 @@ private InstanceNetwork( AccessNetwork = accessNetwork; FixedIpV4 = fixedIpV4; FixedIpV6 = fixedIpV6; - FloatingIp = floatingIp; Mac = mac; Name = name; Port = port; diff --git a/sdk/dotnet/Compute/Outputs/InstanceSchedulerHint.cs b/sdk/dotnet/Compute/Outputs/InstanceSchedulerHint.cs index ae1178ee0..53480e8bd 100644 --- a/sdk/dotnet/Compute/Outputs/InstanceSchedulerHint.cs +++ b/sdk/dotnet/Compute/Outputs/InstanceSchedulerHint.cs @@ -34,7 +34,8 @@ public sealed class InstanceSchedulerHint public readonly ImmutableArray DifferentHosts; /// /// A UUID of a Server Group. The instance will be placed - /// into that group. + /// into that group. See reference + /// for details on managing servergroup resources /// public readonly string? Group; /// diff --git a/sdk/dotnet/Compute/Outputs/InstanceVolume.cs b/sdk/dotnet/Compute/Outputs/InstanceVolume.cs deleted file mode 100644 index 614fb106f..000000000 --- a/sdk/dotnet/Compute/Outputs/InstanceVolume.cs +++ /dev/null @@ -1,33 +0,0 @@ -// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -using System; -using System.Collections.Generic; -using System.Collections.Immutable; -using System.Threading.Tasks; -using Pulumi.Serialization; - -namespace Pulumi.OpenStack.Compute.Outputs -{ - - [OutputType] - public sealed class InstanceVolume - { - public readonly string? Device; - public readonly string? Id; - public readonly string VolumeId; - - [OutputConstructor] - private InstanceVolume( - string? device, - - string? id, - - string volumeId) - { - Device = device; - Id = id; - VolumeId = volumeId; - } - } -} diff --git a/sdk/dotnet/Compute/ServerGroup.cs b/sdk/dotnet/Compute/ServerGroup.cs index baa7b20ae..b1872ae98 100644 --- a/sdk/dotnet/Compute/ServerGroup.cs +++ b/sdk/dotnet/Compute/ServerGroup.cs @@ -33,6 +33,27 @@ namespace Pulumi.OpenStack.Compute /// }, /// }); /// + /// var test_instance = new OpenStack.Compute.Instance("test-instance", new() + /// { + /// Name = "my-instance", + /// ImageId = "ad091b52-742f-469e-8f3c-fd81cadf0743", + /// FlavorId = "3", + /// SchedulerHints = new[] + /// { + /// new OpenStack.Compute.Inputs.InstanceSchedulerHintArgs + /// { + /// Group = test_sg.Id, + /// }, + /// }, + /// Networks = new[] + /// { + /// new OpenStack.Compute.Inputs.InstanceNetworkArgs + /// { + /// Name = "my_network", + /// }, + /// }, + /// }); + /// /// }); /// ``` /// @@ -59,6 +80,27 @@ namespace Pulumi.OpenStack.Compute /// }, /// }); /// + /// var test_instance = new OpenStack.Compute.Instance("test-instance", new() + /// { + /// Name = "my-instance", + /// ImageId = "ad091b52-742f-469e-8f3c-fd81cadf0743", + /// FlavorId = "3", + /// SchedulerHints = new[] + /// { + /// new OpenStack.Compute.Inputs.InstanceSchedulerHintArgs + /// { + /// Group = test_sg.Id, + /// }, + /// }, + /// Networks = new[] + /// { + /// new OpenStack.Compute.Inputs.InstanceNetworkArgs + /// { + /// Name = "my_network", + /// }, + /// }, + /// }); + /// /// }); /// ``` /// diff --git a/sdk/dotnet/Compute/VolumeAttach.cs b/sdk/dotnet/Compute/VolumeAttach.cs index 4e2e8c893..33b09e989 100644 --- a/sdk/dotnet/Compute/VolumeAttach.cs +++ b/sdk/dotnet/Compute/VolumeAttach.cs @@ -52,7 +52,7 @@ namespace Pulumi.OpenStack.Compute /// ### Using Multiattach-enabled volumes /// /// Multiattach Volumes are dependent upon your OpenStack cloud and not all - /// clouds support multiattach. + /// clouds support multiattach. Multiattach volumes require a volume_type that has [multiattach enabled](https://docs.openstack.org/cinder/latest/admin/volume-multiattach.html#multiattach-volume-type). /// /// ```csharp /// using System.Collections.Generic; @@ -66,7 +66,7 @@ namespace Pulumi.OpenStack.Compute /// { /// Name = "volume_1", /// Size = 1, - /// Multiattach = true, + /// VolumeType = "multiattach", /// }); /// /// var instance1 = new OpenStack.Compute.Instance("instance_1", new() @@ -149,6 +149,14 @@ public partial class VolumeAttach : global::Pulumi.CustomResource [Output("region")] public Output Region { get; private set; } = null!; + /// + /// Add a device role tag that is applied to the volume when + /// attaching it to the VM. Changing this creates a new volume attachment with + /// the new tag. Requires microversion >= 2.49. + /// + [Output("tag")] + public Output Tag { get; private set; } = null!; + /// /// Map of additional vendor-specific options. /// Supported options are described below. @@ -232,6 +240,14 @@ public sealed class VolumeAttachArgs : global::Pulumi.ResourceArgs [Input("region")] public Input? Region { get; set; } + /// + /// Add a device role tag that is applied to the volume when + /// attaching it to the VM. Changing this creates a new volume attachment with + /// the new tag. Requires microversion >= 2.49. + /// + [Input("tag")] + public Input? Tag { get; set; } + /// /// Map of additional vendor-specific options. /// Supported options are described below. @@ -277,6 +293,14 @@ public sealed class VolumeAttachState : global::Pulumi.ResourceArgs [Input("region")] public Input? Region { get; set; } + /// + /// Add a device role tag that is applied to the volume when + /// attaching it to the VM. Changing this creates a new volume attachment with + /// the new tag. Requires microversion >= 2.49. + /// + [Input("tag")] + public Input? Tag { get; set; } + /// /// Map of additional vendor-specific options. /// Supported options are described below. diff --git a/sdk/dotnet/Config/Config.cs b/sdk/dotnet/Config/Config.cs index e885f88a7..964047e6a 100644 --- a/sdk/dotnet/Config/Config.cs +++ b/sdk/dotnet/Config/Config.cs @@ -311,16 +311,6 @@ public static string? Token set => _token.Set(value); } - private static readonly __Value _useOctavia = new __Value(() => __config.GetBoolean("useOctavia") ?? Utilities.GetEnvBoolean("OS_USE_OCTAVIA")); - /// - /// If set to `true`, API requests will go the Load Balancer service (Octavia) instead of the Networking service (Neutron). - /// - public static bool? UseOctavia - { - get => _useOctavia.Get(); - set => _useOctavia.Set(value); - } - private static readonly __Value _userDomainId = new __Value(() => __config.Get("userDomainId")); /// /// The ID of the domain where the user resides (Identity v3). diff --git a/sdk/dotnet/Images/GetImage.cs b/sdk/dotnet/Images/GetImage.cs index 52df68770..9cfc255fe 100644 --- a/sdk/dotnet/Images/GetImage.cs +++ b/sdk/dotnet/Images/GetImage.cs @@ -153,16 +153,14 @@ public Dictionary Properties public int? SizeMin { get; set; } /// - /// Order the results in either `asc` or `desc`. + /// Sorts the response by one or more attribute and sort + /// direction combinations. You can also set multiple sort keys and directions. + /// Default direction is `desc`. Use the comma (,) character to separate + /// multiple values. For example expression `sort = "name:asc,status"` + /// sorts ascending by name and descending by status. /// - [Input("sortDirection")] - public string? SortDirection { get; set; } - - /// - /// Sort images based on a certain key. Defaults to `name`. - /// - [Input("sortKey")] - public string? SortKey { get; set; } + [Input("sort")] + public string? Sort { get; set; } /// /// Search for images with a specific tag. @@ -278,16 +276,14 @@ public InputMap Properties public Input? SizeMin { get; set; } /// - /// Order the results in either `asc` or `desc`. + /// Sorts the response by one or more attribute and sort + /// direction combinations. You can also set multiple sort keys and directions. + /// Default direction is `desc`. Use the comma (,) character to separate + /// multiple values. For example expression `sort = "name:asc,status"` + /// sorts ascending by name and descending by status. /// - [Input("sortDirection")] - public Input? SortDirection { get; set; } - - /// - /// Sort images based on a certain key. Defaults to `name`. - /// - [Input("sortKey")] - public Input? SortKey { get; set; } + [Input("sort")] + public Input? Sort { get; set; } /// /// Search for images with a specific tag. @@ -390,8 +386,7 @@ public sealed class GetImageResult public readonly int SizeBytes; public readonly int? SizeMax; public readonly int? SizeMin; - public readonly string? SortDirection; - public readonly string? SortKey; + public readonly string? Sort; public readonly string? Tag; /// /// The tags list of the image. @@ -449,9 +444,7 @@ private GetImageResult( int? sizeMin, - string? sortDirection, - - string? sortKey, + string? sort, string? tag, @@ -483,8 +476,7 @@ private GetImageResult( SizeBytes = sizeBytes; SizeMax = sizeMax; SizeMin = sizeMin; - SortDirection = sortDirection; - SortKey = sortKey; + Sort = sort; Tag = tag; Tags = tags; UpdatedAt = updatedAt; diff --git a/sdk/dotnet/Images/GetImageIds.cs b/sdk/dotnet/Images/GetImageIds.cs index 48c37fe96..54491f199 100644 --- a/sdk/dotnet/Images/GetImageIds.cs +++ b/sdk/dotnet/Images/GetImageIds.cs @@ -144,28 +144,11 @@ public Dictionary Properties /// direction combinations. You can also set multiple sort keys and directions. /// Default direction is `desc`. Use the comma (,) character to separate /// multiple values. For example expression `sort = "name:asc,status"` - /// sorts ascending by name and descending by status. `sort` cannot be used - /// simultaneously with `sort_key`. If both are present in a configuration - /// then only `sort` will be used. + /// sorts ascending by name and descending by status. /// [Input("sort")] public string? Sort { get; set; } - /// - /// Order the results in either `asc` or `desc`. - /// Can be applied only with `sort_key`. Defaults to `asc` - /// - [Input("sortDirection")] - public string? SortDirection { get; set; } - - /// - /// Sort images based on a certain key. Defaults to - /// `name`. `sort_key` cannot be used simultaneously with `sort`. If both - /// are present in a configuration then only `sort` will be used. - /// - [Input("sortKey")] - public string? SortKey { get; set; } - /// /// Search for images with a specific tag. /// @@ -269,28 +252,11 @@ public InputMap Properties /// direction combinations. You can also set multiple sort keys and directions. /// Default direction is `desc`. Use the comma (,) character to separate /// multiple values. For example expression `sort = "name:asc,status"` - /// sorts ascending by name and descending by status. `sort` cannot be used - /// simultaneously with `sort_key`. If both are present in a configuration - /// then only `sort` will be used. + /// sorts ascending by name and descending by status. /// [Input("sort")] public Input? Sort { get; set; } - /// - /// Order the results in either `asc` or `desc`. - /// Can be applied only with `sort_key`. Defaults to `asc` - /// - [Input("sortDirection")] - public Input? SortDirection { get; set; } - - /// - /// Sort images based on a certain key. Defaults to - /// `name`. `sort_key` cannot be used simultaneously with `sort`. If both - /// are present in a configuration then only `sort` will be used. - /// - [Input("sortKey")] - public Input? SortKey { get; set; } - /// /// Search for images with a specific tag. /// @@ -341,8 +307,6 @@ public sealed class GetImageIdsResult public readonly int? SizeMax; public readonly int? SizeMin; public readonly string? Sort; - public readonly string? SortDirection; - public readonly string? SortKey; public readonly string? Tag; public readonly ImmutableArray Tags; public readonly string? Visibility; @@ -371,10 +335,6 @@ private GetImageIdsResult( string? sort, - string? sortDirection, - - string? sortKey, - string? tag, ImmutableArray tags, @@ -392,8 +352,6 @@ private GetImageIdsResult( SizeMax = sizeMax; SizeMin = sizeMin; Sort = sort; - SortDirection = sortDirection; - SortKey = sortKey; Tag = tag; Tags = tags; Visibility = visibility; diff --git a/sdk/dotnet/Images/Image.cs b/sdk/dotnet/Images/Image.cs index 8e4a4e56b..a4860723f 100644 --- a/sdk/dotnet/Images/Image.cs +++ b/sdk/dotnet/Images/Image.cs @@ -242,12 +242,6 @@ public partial class Image : global::Pulumi.CustomResource [Output("tags")] public Output> Tags { get; private set; } = null!; - /// - /// (**Deprecated** - use `updated_at` instead) - /// - [Output("updateAt")] - public Output UpdateAt { get; private set; } = null!; - /// /// The date the image was last updated. /// @@ -704,12 +698,6 @@ public InputList Tags set => _tags = value; } - /// - /// (**Deprecated** - use `updated_at` instead) - /// - [Input("updateAt")] - public Input? UpdateAt { get; set; } - /// /// The date the image was last updated. /// diff --git a/sdk/dotnet/LoadBalancer/GetFlavorV2.cs b/sdk/dotnet/LoadBalancer/GetFlavorV2.cs new file mode 100644 index 000000000..553434828 --- /dev/null +++ b/sdk/dotnet/LoadBalancer/GetFlavorV2.cs @@ -0,0 +1,96 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.OpenStack.LoadBalancer +{ + public static class GetFlavorV2 + { + public static Task InvokeAsync(GetFlavorV2Args? args = null, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.InvokeAsync("openstack:loadbalancer/getFlavorV2:getFlavorV2", args ?? new GetFlavorV2Args(), options.WithDefaults()); + + public static Output Invoke(GetFlavorV2InvokeArgs? args = null, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.Invoke("openstack:loadbalancer/getFlavorV2:getFlavorV2", args ?? new GetFlavorV2InvokeArgs(), options.WithDefaults()); + } + + + public sealed class GetFlavorV2Args : global::Pulumi.InvokeArgs + { + [Input("flavorId")] + public string? FlavorId { get; set; } + + [Input("name")] + public string? Name { get; set; } + + [Input("region")] + public string? Region { get; set; } + + public GetFlavorV2Args() + { + } + public static new GetFlavorV2Args Empty => new GetFlavorV2Args(); + } + + public sealed class GetFlavorV2InvokeArgs : global::Pulumi.InvokeArgs + { + [Input("flavorId")] + public Input? FlavorId { get; set; } + + [Input("name")] + public Input? Name { get; set; } + + [Input("region")] + public Input? Region { get; set; } + + public GetFlavorV2InvokeArgs() + { + } + public static new GetFlavorV2InvokeArgs Empty => new GetFlavorV2InvokeArgs(); + } + + + [OutputType] + public sealed class GetFlavorV2Result + { + public readonly string Description; + public readonly bool Enabled; + public readonly string FlavorId; + public readonly string FlavorProfileId; + /// + /// The provider-assigned unique ID for this managed resource. + /// + public readonly string Id; + public readonly string Name; + public readonly string? Region; + + [OutputConstructor] + private GetFlavorV2Result( + string description, + + bool enabled, + + string flavorId, + + string flavorProfileId, + + string id, + + string name, + + string? region) + { + Description = description; + Enabled = enabled; + FlavorId = flavorId; + FlavorProfileId = flavorProfileId; + Id = id; + Name = name; + Region = region; + } + } +} diff --git a/sdk/dotnet/LoadBalancer/Listener.cs b/sdk/dotnet/LoadBalancer/Listener.cs index f384f16b8..824cc4b98 100644 --- a/sdk/dotnet/LoadBalancer/Listener.cs +++ b/sdk/dotnet/LoadBalancer/Listener.cs @@ -118,8 +118,8 @@ public partial class Listener : global::Pulumi.CustomResource /// /// The protocol - can either be TCP, HTTP, HTTPS, - /// TERMINATED_HTTPS, UDP (supported only in Octavia), SCTP (supported only - /// in **Octavia minor version >= 2.23**) or PROMETHEUS (supported only in + /// TERMINATED_HTTPS, UDP, SCTP (supported only in + /// **Octavia minor version >= 2.23**) or PROMETHEUS (supported only in /// **Octavia minor version >=2.25**). Changing this creates a new Listener. /// [Output("protocol")] @@ -312,8 +312,8 @@ public InputMap InsertHeaders /// /// The protocol - can either be TCP, HTTP, HTTPS, - /// TERMINATED_HTTPS, UDP (supported only in Octavia), SCTP (supported only - /// in **Octavia minor version >= 2.23**) or PROMETHEUS (supported only in + /// TERMINATED_HTTPS, UDP, SCTP (supported only in + /// **Octavia minor version >= 2.23**) or PROMETHEUS (supported only in /// **Octavia minor version >=2.25**). Changing this creates a new Listener. /// [Input("protocol", required: true)] @@ -479,8 +479,8 @@ public InputMap InsertHeaders /// /// The protocol - can either be TCP, HTTP, HTTPS, - /// TERMINATED_HTTPS, UDP (supported only in Octavia), SCTP (supported only - /// in **Octavia minor version >= 2.23**) or PROMETHEUS (supported only in + /// TERMINATED_HTTPS, UDP, SCTP (supported only in + /// **Octavia minor version >= 2.23**) or PROMETHEUS (supported only in /// **Octavia minor version >=2.25**). Changing this creates a new Listener. /// [Input("protocol")] diff --git a/sdk/dotnet/LoadBalancer/Members.cs b/sdk/dotnet/LoadBalancer/Members.cs index 38755e5bc..f799734c4 100644 --- a/sdk/dotnet/LoadBalancer/Members.cs +++ b/sdk/dotnet/LoadBalancer/Members.cs @@ -15,10 +15,6 @@ namespace Pulumi.OpenStack.LoadBalancer /// > **Note:** This resource has attributes that depend on octavia minor versions. /// Please ensure your Openstack cloud supports the required minor version. /// - /// > **Note:** This resource works only within Octavia API. For - /// legacy Neutron LBaaS v2 extension please use - /// openstack.loadbalancer.Member resource. - /// /// ## Example Usage /// /// ```csharp diff --git a/sdk/dotnet/LoadBalancer/Pool.cs b/sdk/dotnet/LoadBalancer/Pool.cs index 99a9c3a18..c151ef1ec 100644 --- a/sdk/dotnet/LoadBalancer/Pool.cs +++ b/sdk/dotnet/LoadBalancer/Pool.cs @@ -67,8 +67,7 @@ public partial class Pool : global::Pulumi.CustomResource /// /// The load balancing algorithm to /// distribute traffic to the pool's members. Must be one of - /// ROUND_ROBIN, LEAST_CONNECTIONS, SOURCE_IP, or SOURCE_IP_PORT (supported only - /// in Octavia). + /// ROUND_ROBIN, LEAST_CONNECTIONS, SOURCE_IP, or SOURCE_IP_PORT. /// [Output("lbMethod")] public Output LbMethod { get; private set; } = null!; @@ -105,8 +104,8 @@ public partial class Pool : global::Pulumi.CustomResource /// /// The protocol - can either be TCP, HTTP, HTTPS, PROXY, - /// UDP (supported only in Octavia), PROXYV2 (**Octavia minor version >= 2.22**) - /// or SCTP (**Octavia minor version >= 2.23**). Changing this creates a new pool. + /// UDP, PROXYV2 (**Octavia minor version >= 2.22**) or SCTP + /// (**Octavia minor version >= 2.23**). Changing this creates a new pool. /// [Output("protocol")] public Output Protocol { get; private set; } = null!; @@ -190,8 +189,7 @@ public sealed class PoolArgs : global::Pulumi.ResourceArgs /// /// The load balancing algorithm to /// distribute traffic to the pool's members. Must be one of - /// ROUND_ROBIN, LEAST_CONNECTIONS, SOURCE_IP, or SOURCE_IP_PORT (supported only - /// in Octavia). + /// ROUND_ROBIN, LEAST_CONNECTIONS, SOURCE_IP, or SOURCE_IP_PORT. /// [Input("lbMethod", required: true)] public Input LbMethod { get; set; } = null!; @@ -228,8 +226,8 @@ public sealed class PoolArgs : global::Pulumi.ResourceArgs /// /// The protocol - can either be TCP, HTTP, HTTPS, PROXY, - /// UDP (supported only in Octavia), PROXYV2 (**Octavia minor version >= 2.22**) - /// or SCTP (**Octavia minor version >= 2.23**). Changing this creates a new pool. + /// UDP, PROXYV2 (**Octavia minor version >= 2.22**) or SCTP + /// (**Octavia minor version >= 2.23**). Changing this creates a new pool. /// [Input("protocol", required: true)] public Input Protocol { get; set; } = null!; @@ -275,8 +273,7 @@ public sealed class PoolState : global::Pulumi.ResourceArgs /// /// The load balancing algorithm to /// distribute traffic to the pool's members. Must be one of - /// ROUND_ROBIN, LEAST_CONNECTIONS, SOURCE_IP, or SOURCE_IP_PORT (supported only - /// in Octavia). + /// ROUND_ROBIN, LEAST_CONNECTIONS, SOURCE_IP, or SOURCE_IP_PORT. /// [Input("lbMethod")] public Input? LbMethod { get; set; } @@ -313,8 +310,8 @@ public sealed class PoolState : global::Pulumi.ResourceArgs /// /// The protocol - can either be TCP, HTTP, HTTPS, PROXY, - /// UDP (supported only in Octavia), PROXYV2 (**Octavia minor version >= 2.22**) - /// or SCTP (**Octavia minor version >= 2.23**). Changing this creates a new pool. + /// UDP, PROXYV2 (**Octavia minor version >= 2.22**) or SCTP + /// (**Octavia minor version >= 2.23**). Changing this creates a new pool. /// [Input("protocol")] public Input? Protocol { get; set; } diff --git a/sdk/dotnet/LoadBalancer/PoolV1.cs b/sdk/dotnet/LoadBalancer/PoolV1.cs index 4dd6141aa..92f77fe4f 100644 --- a/sdk/dotnet/LoadBalancer/PoolV1.cs +++ b/sdk/dotnet/LoadBalancer/PoolV1.cs @@ -165,10 +165,6 @@ namespace Pulumi.OpenStack.LoadBalancer /// }); /// ``` /// - /// ## Notes - /// - /// The `member` block is deprecated in favor of the `openstack.loadbalancer.MemberV1` resource. - /// /// ## Import /// /// Load Balancer Pools can be imported using the `id`, e.g. @@ -195,15 +191,6 @@ public partial class PoolV1 : global::Pulumi.CustomResource [Output("lbProvider")] public Output LbProvider { get; private set; } = null!; - /// - /// An existing node to add to the pool. Changing this - /// updates the members of the pool. The member object structure is documented - /// below. Please note that the `member` block is deprecated in favor of the - /// `openstack.loadbalancer.MemberV1` resource. - /// - [Output("members")] - public Output> Members { get; private set; } = null!; - /// /// A list of IDs of monitors to associate with the /// pool. @@ -310,22 +297,6 @@ public sealed class PoolV1Args : global::Pulumi.ResourceArgs [Input("lbProvider")] public Input? LbProvider { get; set; } - [Input("members")] - private InputList? _members; - - /// - /// An existing node to add to the pool. Changing this - /// updates the members of the pool. The member object structure is documented - /// below. Please note that the `member` block is deprecated in favor of the - /// `openstack.loadbalancer.MemberV1` resource. - /// - [Obsolete(@"Use openstack.loadbalancer.MemberV1 instead")] - public InputList Members - { - get => _members ?? (_members = new InputList()); - set => _members = value; - } - [Input("monitorIds")] private InputList? _monitorIds; @@ -400,22 +371,6 @@ public sealed class PoolV1State : global::Pulumi.ResourceArgs [Input("lbProvider")] public Input? LbProvider { get; set; } - [Input("members")] - private InputList? _members; - - /// - /// An existing node to add to the pool. Changing this - /// updates the members of the pool. The member object structure is documented - /// below. Please note that the `member` block is deprecated in favor of the - /// `openstack.loadbalancer.MemberV1` resource. - /// - [Obsolete(@"Use openstack.loadbalancer.MemberV1 instead")] - public InputList Members - { - get => _members ?? (_members = new InputList()); - set => _members = value; - } - [Input("monitorIds")] private InputList? _monitorIds; diff --git a/sdk/dotnet/LoadBalancer/Quota.cs b/sdk/dotnet/LoadBalancer/Quota.cs index 3971972cd..fd2f82d38 100644 --- a/sdk/dotnet/LoadBalancer/Quota.cs +++ b/sdk/dotnet/LoadBalancer/Quota.cs @@ -14,8 +14,6 @@ namespace Pulumi.OpenStack.LoadBalancer /// /// > **Note:** This usually requires admin privileges. /// - /// > **Note:** This resource is only available for Octavia. - /// /// > **Note:** This resource has a no-op deletion so no actual actions will be done against the OpenStack /// API in case of delete call. /// diff --git a/sdk/dotnet/Networking/GetFloatingIp.cs b/sdk/dotnet/Networking/GetFloatingIp.cs index 8c928fce9..5ad8f4ee0 100644 --- a/sdk/dotnet/Networking/GetFloatingIp.cs +++ b/sdk/dotnet/Networking/GetFloatingIp.cs @@ -82,7 +82,7 @@ public sealed class GetFloatingIpArgs : global::Pulumi.InvokeArgs public string? FixedIp { get; set; } /// - /// The name of the pool from which the floating IP belongs to. + /// The ID of the network from which the floating IP belongs to. /// [Input("pool")] public string? Pool { get; set; } @@ -152,7 +152,7 @@ public sealed class GetFloatingIpInvokeArgs : global::Pulumi.InvokeArgs public Input? FixedIp { get; set; } /// - /// The name of the pool from which the floating IP belongs to. + /// The ID of the network from which the floating IP belongs to. /// [Input("pool")] public Input? Pool { get; set; } diff --git a/sdk/dotnet/Networking/GetSubnet.cs b/sdk/dotnet/Networking/GetSubnet.cs index 14522d02b..deab01e9d 100644 --- a/sdk/dotnet/Networking/GetSubnet.cs +++ b/sdk/dotnet/Networking/GetSubnet.cs @@ -75,9 +75,6 @@ public sealed class GetSubnetArgs : global::Pulumi.InvokeArgs [Input("description")] public string? Description { get; set; } - [Input("dhcpDisabled")] - public bool? DhcpDisabled { get; set; } - /// /// If the subnet has DHCP enabled. /// @@ -180,9 +177,6 @@ public sealed class GetSubnetInvokeArgs : global::Pulumi.InvokeArgs [Input("description")] public Input? Description { get; set; } - [Input("dhcpDisabled")] - public Input? DhcpDisabled { get; set; } - /// /// If the subnet has DHCP enabled. /// @@ -285,7 +279,6 @@ public sealed class GetSubnetResult public readonly ImmutableArray AllocationPools; public readonly string Cidr; public readonly string Description; - public readonly bool? DhcpDisabled; public readonly bool? DhcpEnabled; /// /// DNS Nameservers of the subnet. @@ -332,8 +325,6 @@ private GetSubnetResult( string description, - bool? dhcpDisabled, - bool? dhcpEnabled, ImmutableArray dnsNameservers, @@ -372,7 +363,6 @@ private GetSubnetResult( AllocationPools = allocationPools; Cidr = cidr; Description = description; - DhcpDisabled = dhcpDisabled; DhcpEnabled = dhcpEnabled; DnsNameservers = dnsNameservers; EnableDhcp = enableDhcp; diff --git a/sdk/dotnet/Networking/Inputs/SubnetAllocationPoolsCollectionArgs.cs b/sdk/dotnet/Networking/Inputs/SubnetAllocationPoolsCollectionArgs.cs deleted file mode 100644 index f1fb5c79f..000000000 --- a/sdk/dotnet/Networking/Inputs/SubnetAllocationPoolsCollectionArgs.cs +++ /dev/null @@ -1,32 +0,0 @@ -// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -using System; -using System.Collections.Generic; -using System.Collections.Immutable; -using System.Threading.Tasks; -using Pulumi.Serialization; - -namespace Pulumi.OpenStack.Networking.Inputs -{ - - public sealed class SubnetAllocationPoolsCollectionArgs : global::Pulumi.ResourceArgs - { - /// - /// The ending address. - /// - [Input("end", required: true)] - public Input End { get; set; } = null!; - - /// - /// The starting address. - /// - [Input("start", required: true)] - public Input Start { get; set; } = null!; - - public SubnetAllocationPoolsCollectionArgs() - { - } - public static new SubnetAllocationPoolsCollectionArgs Empty => new SubnetAllocationPoolsCollectionArgs(); - } -} diff --git a/sdk/dotnet/Networking/Inputs/SubnetAllocationPoolsCollectionGetArgs.cs b/sdk/dotnet/Networking/Inputs/SubnetAllocationPoolsCollectionGetArgs.cs deleted file mode 100644 index faaccb74a..000000000 --- a/sdk/dotnet/Networking/Inputs/SubnetAllocationPoolsCollectionGetArgs.cs +++ /dev/null @@ -1,32 +0,0 @@ -// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -using System; -using System.Collections.Generic; -using System.Collections.Immutable; -using System.Threading.Tasks; -using Pulumi.Serialization; - -namespace Pulumi.OpenStack.Networking.Inputs -{ - - public sealed class SubnetAllocationPoolsCollectionGetArgs : global::Pulumi.ResourceArgs - { - /// - /// The ending address. - /// - [Input("end", required: true)] - public Input End { get; set; } = null!; - - /// - /// The starting address. - /// - [Input("start", required: true)] - public Input Start { get; set; } = null!; - - public SubnetAllocationPoolsCollectionGetArgs() - { - } - public static new SubnetAllocationPoolsCollectionGetArgs Empty => new SubnetAllocationPoolsCollectionGetArgs(); - } -} diff --git a/sdk/dotnet/Networking/Inputs/SubnetHostRouteArgs.cs b/sdk/dotnet/Networking/Inputs/SubnetHostRouteArgs.cs deleted file mode 100644 index d5181aa2b..000000000 --- a/sdk/dotnet/Networking/Inputs/SubnetHostRouteArgs.cs +++ /dev/null @@ -1,32 +0,0 @@ -// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -using System; -using System.Collections.Generic; -using System.Collections.Immutable; -using System.Threading.Tasks; -using Pulumi.Serialization; - -namespace Pulumi.OpenStack.Networking.Inputs -{ - - public sealed class SubnetHostRouteArgs : global::Pulumi.ResourceArgs - { - /// - /// The destination CIDR. - /// - [Input("destinationCidr", required: true)] - public Input DestinationCidr { get; set; } = null!; - - /// - /// The next hop in the route. - /// - [Input("nextHop", required: true)] - public Input NextHop { get; set; } = null!; - - public SubnetHostRouteArgs() - { - } - public static new SubnetHostRouteArgs Empty => new SubnetHostRouteArgs(); - } -} diff --git a/sdk/dotnet/Networking/Inputs/SubnetHostRouteGetArgs.cs b/sdk/dotnet/Networking/Inputs/SubnetHostRouteGetArgs.cs deleted file mode 100644 index 3b79e91e3..000000000 --- a/sdk/dotnet/Networking/Inputs/SubnetHostRouteGetArgs.cs +++ /dev/null @@ -1,32 +0,0 @@ -// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -using System; -using System.Collections.Generic; -using System.Collections.Immutable; -using System.Threading.Tasks; -using Pulumi.Serialization; - -namespace Pulumi.OpenStack.Networking.Inputs -{ - - public sealed class SubnetHostRouteGetArgs : global::Pulumi.ResourceArgs - { - /// - /// The destination CIDR. - /// - [Input("destinationCidr", required: true)] - public Input DestinationCidr { get; set; } = null!; - - /// - /// The next hop in the route. - /// - [Input("nextHop", required: true)] - public Input NextHop { get; set; } = null!; - - public SubnetHostRouteGetArgs() - { - } - public static new SubnetHostRouteGetArgs Empty => new SubnetHostRouteGetArgs(); - } -} diff --git a/sdk/dotnet/Networking/Outputs/SubnetAllocationPoolsCollection.cs b/sdk/dotnet/Networking/Outputs/SubnetAllocationPoolsCollection.cs deleted file mode 100644 index 72b1a900b..000000000 --- a/sdk/dotnet/Networking/Outputs/SubnetAllocationPoolsCollection.cs +++ /dev/null @@ -1,35 +0,0 @@ -// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -using System; -using System.Collections.Generic; -using System.Collections.Immutable; -using System.Threading.Tasks; -using Pulumi.Serialization; - -namespace Pulumi.OpenStack.Networking.Outputs -{ - - [OutputType] - public sealed class SubnetAllocationPoolsCollection - { - /// - /// The ending address. - /// - public readonly string End; - /// - /// The starting address. - /// - public readonly string Start; - - [OutputConstructor] - private SubnetAllocationPoolsCollection( - string end, - - string start) - { - End = end; - Start = start; - } - } -} diff --git a/sdk/dotnet/Networking/Outputs/SubnetHostRoute.cs b/sdk/dotnet/Networking/Outputs/SubnetHostRoute.cs deleted file mode 100644 index b92d22d0e..000000000 --- a/sdk/dotnet/Networking/Outputs/SubnetHostRoute.cs +++ /dev/null @@ -1,35 +0,0 @@ -// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -using System; -using System.Collections.Generic; -using System.Collections.Immutable; -using System.Threading.Tasks; -using Pulumi.Serialization; - -namespace Pulumi.OpenStack.Networking.Outputs -{ - - [OutputType] - public sealed class SubnetHostRoute - { - /// - /// The destination CIDR. - /// - public readonly string DestinationCidr; - /// - /// The next hop in the route. - /// - public readonly string NextHop; - - [OutputConstructor] - private SubnetHostRoute( - string destinationCidr, - - string nextHop) - { - DestinationCidr = destinationCidr; - NextHop = nextHop; - } - } -} diff --git a/sdk/dotnet/Networking/Router.cs b/sdk/dotnet/Networking/Router.cs index 22ddc20c5..509fadac1 100644 --- a/sdk/dotnet/Networking/Router.cs +++ b/sdk/dotnet/Networking/Router.cs @@ -100,16 +100,6 @@ public partial class Router : global::Pulumi.CustomResource [Output("externalFixedIps")] public Output> ExternalFixedIps { get; private set; } = null!; - /// - /// The - /// network UUID of an external gateway for the router. A router with an - /// external gateway is required if any compute instances or load balancers - /// will be using floating IPs. Changing this updates the external gateway - /// of an existing router. - /// - [Output("externalGateway")] - public Output ExternalGateway { get; private set; } = null!; - /// /// The network UUID of an external gateway /// for the router. A router with an external gateway is required if any @@ -279,16 +269,6 @@ public InputList ExternalFixedIps set => _externalFixedIps = value; } - /// - /// The - /// network UUID of an external gateway for the router. A router with an - /// external gateway is required if any compute instances or load balancers - /// will be using floating IPs. Changing this updates the external gateway - /// of an existing router. - /// - [Input("externalGateway")] - public Input? ExternalGateway { get; set; } - /// /// The network UUID of an external gateway /// for the router. A router with an external gateway is required if any @@ -451,16 +431,6 @@ public InputList ExternalFixedIps set => _externalFixedIps = value; } - /// - /// The - /// network UUID of an external gateway for the router. A router with an - /// external gateway is required if any compute instances or load balancers - /// will be using floating IPs. Changing this updates the external gateway - /// of an existing router. - /// - [Input("externalGateway")] - public Input? ExternalGateway { get; set; } - /// /// The network UUID of an external gateway /// for the router. A router with an external gateway is required if any diff --git a/sdk/dotnet/Networking/Subnet.cs b/sdk/dotnet/Networking/Subnet.cs index a30dcf7a7..0a8ad5101 100644 --- a/sdk/dotnet/Networking/Subnet.cs +++ b/sdk/dotnet/Networking/Subnet.cs @@ -66,14 +66,6 @@ public partial class Subnet : global::Pulumi.CustomResource [Output("allocationPools")] public Output> AllocationPools { get; private set; } = null!; - /// - /// A block declaring the start and end range of the IP addresses available for - /// use with DHCP in this subnet. - /// The `allocation_pools` block is documented below. - /// - [Output("allocationPoolsCollection")] - public Output> AllocationPoolsCollection { get; private set; } = null!; - /// /// CIDR representing IP range for this subnet, based on IP /// version. You can omit this option if you are creating a subnet from a @@ -114,16 +106,6 @@ public partial class Subnet : global::Pulumi.CustomResource [Output("gatewayIp")] public Output GatewayIp { get; private set; } = null!; - /// - /// (**Deprecated** - use `openstack.networking.SubnetRoute` - /// instead) An array of routes that should be used by devices - /// with IPs from this subnet (not including local subnet route). The host_route - /// object structure is documented below. Changing this updates the host routes - /// for the existing subnet. - /// - [Output("hostRoutes")] - public Output> HostRoutes { get; private set; } = null!; - /// /// IP version, either 4 (default) or 6. Changing this creates a /// new subnet. @@ -279,21 +261,6 @@ public InputList AllocationPools set => _allocationPools = value; } - [Input("allocationPoolsCollection")] - private InputList? _allocationPoolsCollection; - - /// - /// A block declaring the start and end range of the IP addresses available for - /// use with DHCP in this subnet. - /// The `allocation_pools` block is documented below. - /// - [Obsolete(@"use allocation_pool instead")] - public InputList AllocationPoolsCollection - { - get => _allocationPoolsCollection ?? (_allocationPoolsCollection = new InputList()); - set => _allocationPoolsCollection = value; - } - /// /// CIDR representing IP range for this subnet, based on IP /// version. You can omit this option if you are creating a subnet from a @@ -340,23 +307,6 @@ public InputList DnsNameservers [Input("gatewayIp")] public Input? GatewayIp { get; set; } - [Input("hostRoutes")] - private InputList? _hostRoutes; - - /// - /// (**Deprecated** - use `openstack.networking.SubnetRoute` - /// instead) An array of routes that should be used by devices - /// with IPs from this subnet (not including local subnet route). The host_route - /// object structure is documented below. Changing this updates the host routes - /// for the existing subnet. - /// - [Obsolete(@"Use openstack.networking.SubnetRoute instead")] - public InputList HostRoutes - { - get => _hostRoutes ?? (_hostRoutes = new InputList()); - set => _hostRoutes = value; - } - /// /// IP version, either 4 (default) or 6. Changing this creates a /// new subnet. @@ -505,21 +455,6 @@ public InputList AllocationPools set => _allocationPools = value; } - [Input("allocationPoolsCollection")] - private InputList? _allocationPoolsCollection; - - /// - /// A block declaring the start and end range of the IP addresses available for - /// use with DHCP in this subnet. - /// The `allocation_pools` block is documented below. - /// - [Obsolete(@"use allocation_pool instead")] - public InputList AllocationPoolsCollection - { - get => _allocationPoolsCollection ?? (_allocationPoolsCollection = new InputList()); - set => _allocationPoolsCollection = value; - } - /// /// CIDR representing IP range for this subnet, based on IP /// version. You can omit this option if you are creating a subnet from a @@ -566,23 +501,6 @@ public InputList DnsNameservers [Input("gatewayIp")] public Input? GatewayIp { get; set; } - [Input("hostRoutes")] - private InputList? _hostRoutes; - - /// - /// (**Deprecated** - use `openstack.networking.SubnetRoute` - /// instead) An array of routes that should be used by devices - /// with IPs from this subnet (not including local subnet route). The host_route - /// object structure is documented below. Changing this updates the host routes - /// for the existing subnet. - /// - [Obsolete(@"Use openstack.networking.SubnetRoute instead")] - public InputList HostRoutes - { - get => _hostRoutes ?? (_hostRoutes = new InputList()); - set => _hostRoutes = value; - } - /// /// IP version, either 4 (default) or 6. Changing this creates a /// new subnet. diff --git a/sdk/dotnet/Provider.cs b/sdk/dotnet/Provider.cs index a38f55190..4f150a51e 100644 --- a/sdk/dotnet/Provider.cs +++ b/sdk/dotnet/Provider.cs @@ -368,12 +368,6 @@ public Input? Password [Input("token")] public Input? Token { get; set; } - /// - /// If set to `true`, API requests will go the Load Balancer service (Octavia) instead of the Networking service (Neutron). - /// - [Input("useOctavia", json: true)] - public Input? UseOctavia { get; set; } - /// /// The ID of the domain where the user resides (Identity v3). /// @@ -407,7 +401,6 @@ public ProviderArgs() Insecure = Utilities.GetEnvBoolean("OS_INSECURE"); Region = Utilities.GetEnv("OS_REGION_NAME"); Swauth = Utilities.GetEnvBoolean("OS_SWAUTH"); - UseOctavia = Utilities.GetEnvBoolean("OS_USE_OCTAVIA"); } public static new ProviderArgs Empty => new ProviderArgs(); } diff --git a/sdk/dotnet/Pulumi.OpenStack.csproj b/sdk/dotnet/Pulumi.OpenStack.csproj index e262bce7f..fb89cfdbb 100644 --- a/sdk/dotnet/Pulumi.OpenStack.csproj +++ b/sdk/dotnet/Pulumi.OpenStack.csproj @@ -9,7 +9,7 @@ https://pulumi.io https://github.com/pulumi/pulumi-openstack logo.png - 3.0.0-alpha.0+dev + 4.0.0-alpha.0+dev net6.0 enable diff --git a/sdk/dotnet/VPNaaS/IkePolicy.cs b/sdk/dotnet/VPNaaS/IkePolicy.cs index e0ed36d84..0746fc44d 100644 --- a/sdk/dotnet/VPNaaS/IkePolicy.cs +++ b/sdk/dotnet/VPNaaS/IkePolicy.cs @@ -63,7 +63,7 @@ public partial class IkePolicy : global::Pulumi.CustomResource public Output EncryptionAlgorithm { get; private set; } = null!; /// - /// The IKE mode. A valid value is v1 or v2. Default is v1. + /// The IKE version. A valid value is v1 or v2. Default is v1. /// Changing this updates the existing policy. /// [Output("ikeVersion")] @@ -186,7 +186,7 @@ public sealed class IkePolicyArgs : global::Pulumi.ResourceArgs public Input? EncryptionAlgorithm { get; set; } /// - /// The IKE mode. A valid value is v1 or v2. Default is v1. + /// The IKE version. A valid value is v1 or v2. Default is v1. /// Changing this updates the existing policy. /// [Input("ikeVersion")] @@ -283,7 +283,7 @@ public sealed class IkePolicyState : global::Pulumi.ResourceArgs public Input? EncryptionAlgorithm { get; set; } /// - /// The IKE mode. A valid value is v1 or v2. Default is v1. + /// The IKE version. A valid value is v1 or v2. Default is v1. /// Changing this updates the existing policy. /// [Input("ikeVersion")] diff --git a/sdk/dotnet/pulumi-plugin.json b/sdk/dotnet/pulumi-plugin.json index c2fd7376d..84f878f23 100644 --- a/sdk/dotnet/pulumi-plugin.json +++ b/sdk/dotnet/pulumi-plugin.json @@ -1,5 +1,5 @@ { "resource": true, "name": "openstack", - "version": "3.0.0-alpha.0+dev" + "version": "4.0.0-alpha.0+dev" } diff --git a/sdk/go.mod b/sdk/go.mod index 34f3d7ec3..d79a0a2b7 100644 --- a/sdk/go.mod +++ b/sdk/go.mod @@ -1,4 +1,4 @@ -module github.com/pulumi/pulumi-openstack/sdk/v3 +module github.com/pulumi/pulumi-openstack/sdk/v4 go 1.21 diff --git a/sdk/go/openstack/blockstorage/getAvailabilityZonesV3.go b/sdk/go/openstack/blockstorage/getAvailabilityZonesV3.go index 1a31dcba9..fbb784dd9 100644 --- a/sdk/go/openstack/blockstorage/getAvailabilityZonesV3.go +++ b/sdk/go/openstack/blockstorage/getAvailabilityZonesV3.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -20,7 +20,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/blockstorage" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/blockstorage" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/blockstorage/getQuotasetV3.go b/sdk/go/openstack/blockstorage/getQuotasetV3.go index 5c74baedf..f08c9d570 100644 --- a/sdk/go/openstack/blockstorage/getQuotasetV3.go +++ b/sdk/go/openstack/blockstorage/getQuotasetV3.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -20,7 +20,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/blockstorage" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/blockstorage" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/blockstorage/getSnapshotV2.go b/sdk/go/openstack/blockstorage/getSnapshotV2.go index f0bec862e..90826adcb 100644 --- a/sdk/go/openstack/blockstorage/getSnapshotV2.go +++ b/sdk/go/openstack/blockstorage/getSnapshotV2.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -20,7 +20,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/blockstorage" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/blockstorage" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/blockstorage/getSnapshotV3.go b/sdk/go/openstack/blockstorage/getSnapshotV3.go index 2e54c0413..583cf24c8 100644 --- a/sdk/go/openstack/blockstorage/getSnapshotV3.go +++ b/sdk/go/openstack/blockstorage/getSnapshotV3.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -20,7 +20,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/blockstorage" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/blockstorage" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/blockstorage/getVolumeV2.go b/sdk/go/openstack/blockstorage/getVolumeV2.go index b19182aec..827b4cd9d 100644 --- a/sdk/go/openstack/blockstorage/getVolumeV2.go +++ b/sdk/go/openstack/blockstorage/getVolumeV2.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -20,7 +20,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/blockstorage" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/blockstorage" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/blockstorage/getVolumeV3.go b/sdk/go/openstack/blockstorage/getVolumeV3.go index 1cfecaf97..23010f0f6 100644 --- a/sdk/go/openstack/blockstorage/getVolumeV3.go +++ b/sdk/go/openstack/blockstorage/getVolumeV3.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -20,7 +20,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/blockstorage" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/blockstorage" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -81,8 +81,6 @@ type GetVolumeV3Result struct { Id string `pulumi:"id"` // See Argument Reference above. Metadata map[string]interface{} `pulumi:"metadata"` - // Indicates if the volume can be attached to more then one server. - Multiattach bool `pulumi:"multiattach"` // See Argument Reference above. Name string `pulumi:"name"` // See Argument Reference above. @@ -175,11 +173,6 @@ func (o GetVolumeV3ResultOutput) Metadata() pulumi.MapOutput { return o.ApplyT(func(v GetVolumeV3Result) map[string]interface{} { return v.Metadata }).(pulumi.MapOutput) } -// Indicates if the volume can be attached to more then one server. -func (o GetVolumeV3ResultOutput) Multiattach() pulumi.BoolOutput { - return o.ApplyT(func(v GetVolumeV3Result) bool { return v.Multiattach }).(pulumi.BoolOutput) -} - // See Argument Reference above. func (o GetVolumeV3ResultOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v GetVolumeV3Result) string { return v.Name }).(pulumi.StringOutput) diff --git a/sdk/go/openstack/blockstorage/init.go b/sdk/go/openstack/blockstorage/init.go index 71fe08860..11c27e451 100644 --- a/sdk/go/openstack/blockstorage/init.go +++ b/sdk/go/openstack/blockstorage/init.go @@ -7,7 +7,7 @@ import ( "fmt" "github.com/blang/semver" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) diff --git a/sdk/go/openstack/blockstorage/pulumiTypes.go b/sdk/go/openstack/blockstorage/pulumiTypes.go index 7466cec43..faba4b674 100644 --- a/sdk/go/openstack/blockstorage/pulumiTypes.go +++ b/sdk/go/openstack/blockstorage/pulumiTypes.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) diff --git a/sdk/go/openstack/blockstorage/qosAssociationV3.go b/sdk/go/openstack/blockstorage/qosAssociationV3.go index 4a0fbb776..502358b57 100644 --- a/sdk/go/openstack/blockstorage/qosAssociationV3.go +++ b/sdk/go/openstack/blockstorage/qosAssociationV3.go @@ -8,7 +8,7 @@ import ( "reflect" "errors" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -23,7 +23,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/blockstorage" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/blockstorage" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/blockstorage/qosV3.go b/sdk/go/openstack/blockstorage/qosV3.go index 07cb269d6..0abd987f5 100644 --- a/sdk/go/openstack/blockstorage/qosV3.go +++ b/sdk/go/openstack/blockstorage/qosV3.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -22,7 +22,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/blockstorage" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/blockstorage" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/blockstorage/quoteSetV2.go b/sdk/go/openstack/blockstorage/quoteSetV2.go index e282ad6a3..0f8eb38e7 100644 --- a/sdk/go/openstack/blockstorage/quoteSetV2.go +++ b/sdk/go/openstack/blockstorage/quoteSetV2.go @@ -8,7 +8,7 @@ import ( "reflect" "errors" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) diff --git a/sdk/go/openstack/blockstorage/quoteSetV3.go b/sdk/go/openstack/blockstorage/quoteSetV3.go index 462799045..6c0d4c0dd 100644 --- a/sdk/go/openstack/blockstorage/quoteSetV3.go +++ b/sdk/go/openstack/blockstorage/quoteSetV3.go @@ -8,7 +8,7 @@ import ( "reflect" "errors" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) diff --git a/sdk/go/openstack/blockstorage/volume.go b/sdk/go/openstack/blockstorage/volume.go index de6bb69f3..b382fb498 100644 --- a/sdk/go/openstack/blockstorage/volume.go +++ b/sdk/go/openstack/blockstorage/volume.go @@ -8,7 +8,7 @@ import ( "reflect" "errors" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -21,7 +21,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/blockstorage" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/blockstorage" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -81,10 +81,6 @@ type Volume struct { // Metadata key/value pairs to associate with the volume. // Changing this updates the existing volume metadata. Metadata pulumi.MapOutput `pulumi:"metadata"` - // (Optional) Allow the volume to be attached to more than one Compute instance. - // - // Deprecated: multiattach parameter has been deprecated and removed on Openstack Bobcat. The default behavior is to use multiattach enabled volume types - Multiattach pulumi.BoolPtrOutput `pulumi:"multiattach"` // A unique name for the volume. Changing this updates the // volume's name. Name pulumi.StringOutput `pulumi:"name"` @@ -173,10 +169,6 @@ type volumeState struct { // Metadata key/value pairs to associate with the volume. // Changing this updates the existing volume metadata. Metadata map[string]interface{} `pulumi:"metadata"` - // (Optional) Allow the volume to be attached to more than one Compute instance. - // - // Deprecated: multiattach parameter has been deprecated and removed on Openstack Bobcat. The default behavior is to use multiattach enabled volume types - Multiattach *bool `pulumi:"multiattach"` // A unique name for the volume. Changing this updates the // volume's name. Name *string `pulumi:"name"` @@ -233,10 +225,6 @@ type VolumeState struct { // Metadata key/value pairs to associate with the volume. // Changing this updates the existing volume metadata. Metadata pulumi.MapInput - // (Optional) Allow the volume to be attached to more than one Compute instance. - // - // Deprecated: multiattach parameter has been deprecated and removed on Openstack Bobcat. The default behavior is to use multiattach enabled volume types - Multiattach pulumi.BoolPtrInput // A unique name for the volume. Changing this updates the // volume's name. Name pulumi.StringPtrInput @@ -293,10 +281,6 @@ type volumeArgs struct { // Metadata key/value pairs to associate with the volume. // Changing this updates the existing volume metadata. Metadata map[string]interface{} `pulumi:"metadata"` - // (Optional) Allow the volume to be attached to more than one Compute instance. - // - // Deprecated: multiattach parameter has been deprecated and removed on Openstack Bobcat. The default behavior is to use multiattach enabled volume types - Multiattach *bool `pulumi:"multiattach"` // A unique name for the volume. Changing this updates the // volume's name. Name *string `pulumi:"name"` @@ -350,10 +334,6 @@ type VolumeArgs struct { // Metadata key/value pairs to associate with the volume. // Changing this updates the existing volume metadata. Metadata pulumi.MapInput - // (Optional) Allow the volume to be attached to more than one Compute instance. - // - // Deprecated: multiattach parameter has been deprecated and removed on Openstack Bobcat. The default behavior is to use multiattach enabled volume types - Multiattach pulumi.BoolPtrInput // A unique name for the volume. Changing this updates the // volume's name. Name pulumi.StringPtrInput @@ -520,13 +500,6 @@ func (o VolumeOutput) Metadata() pulumi.MapOutput { return o.ApplyT(func(v *Volume) pulumi.MapOutput { return v.Metadata }).(pulumi.MapOutput) } -// (Optional) Allow the volume to be attached to more than one Compute instance. -// -// Deprecated: multiattach parameter has been deprecated and removed on Openstack Bobcat. The default behavior is to use multiattach enabled volume types -func (o VolumeOutput) Multiattach() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *Volume) pulumi.BoolPtrOutput { return v.Multiattach }).(pulumi.BoolPtrOutput) -} - // A unique name for the volume. Changing this updates the // volume's name. func (o VolumeOutput) Name() pulumi.StringOutput { diff --git a/sdk/go/openstack/blockstorage/volumeAttach.go b/sdk/go/openstack/blockstorage/volumeAttach.go index 42b5d44d7..34582bbb4 100644 --- a/sdk/go/openstack/blockstorage/volumeAttach.go +++ b/sdk/go/openstack/blockstorage/volumeAttach.go @@ -8,7 +8,7 @@ import ( "reflect" "errors" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -36,7 +36,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/blockstorage" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/blockstorage" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/blockstorage/volumeAttachV2.go b/sdk/go/openstack/blockstorage/volumeAttachV2.go index af8de3b5b..04c7e3e22 100644 --- a/sdk/go/openstack/blockstorage/volumeAttachV2.go +++ b/sdk/go/openstack/blockstorage/volumeAttachV2.go @@ -8,7 +8,7 @@ import ( "reflect" "errors" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -36,7 +36,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/blockstorage" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/blockstorage" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -109,8 +109,6 @@ type VolumeAttachV2 struct { HostName pulumi.StringOutput `pulumi:"hostName"` // The iSCSI initiator string to make the connection. Initiator pulumi.StringPtrOutput `pulumi:"initiator"` - // Deprecated: instance_id is no longer used in this resource - InstanceId pulumi.StringPtrOutput `pulumi:"instanceId"` // The IP address of the `hostName` above. IpAddress pulumi.StringPtrOutput `pulumi:"ipAddress"` // A mount point base name for shared storage. @@ -193,8 +191,6 @@ type volumeAttachV2State struct { HostName *string `pulumi:"hostName"` // The iSCSI initiator string to make the connection. Initiator *string `pulumi:"initiator"` - // Deprecated: instance_id is no longer used in this resource - InstanceId *string `pulumi:"instanceId"` // The IP address of the `hostName` above. IpAddress *string `pulumi:"ipAddress"` // A mount point base name for shared storage. @@ -238,8 +234,6 @@ type VolumeAttachV2State struct { HostName pulumi.StringPtrInput // The iSCSI initiator string to make the connection. Initiator pulumi.StringPtrInput - // Deprecated: instance_id is no longer used in this resource - InstanceId pulumi.StringPtrInput // The IP address of the `hostName` above. IpAddress pulumi.StringPtrInput // A mount point base name for shared storage. @@ -281,8 +275,6 @@ type volumeAttachV2Args struct { HostName string `pulumi:"hostName"` // The iSCSI initiator string to make the connection. Initiator *string `pulumi:"initiator"` - // Deprecated: instance_id is no longer used in this resource - InstanceId *string `pulumi:"instanceId"` // The IP address of the `hostName` above. IpAddress *string `pulumi:"ipAddress"` // Whether to connect to this volume via multipath. @@ -319,8 +311,6 @@ type VolumeAttachV2Args struct { HostName pulumi.StringInput // The iSCSI initiator string to make the connection. Initiator pulumi.StringPtrInput - // Deprecated: instance_id is no longer used in this resource - InstanceId pulumi.StringPtrInput // The IP address of the `hostName` above. IpAddress pulumi.StringPtrInput // Whether to connect to this volume via multipath. @@ -466,11 +456,6 @@ func (o VolumeAttachV2Output) Initiator() pulumi.StringPtrOutput { return o.ApplyT(func(v *VolumeAttachV2) pulumi.StringPtrOutput { return v.Initiator }).(pulumi.StringPtrOutput) } -// Deprecated: instance_id is no longer used in this resource -func (o VolumeAttachV2Output) InstanceId() pulumi.StringPtrOutput { - return o.ApplyT(func(v *VolumeAttachV2) pulumi.StringPtrOutput { return v.InstanceId }).(pulumi.StringPtrOutput) -} - // The IP address of the `hostName` above. func (o VolumeAttachV2Output) IpAddress() pulumi.StringPtrOutput { return o.ApplyT(func(v *VolumeAttachV2) pulumi.StringPtrOutput { return v.IpAddress }).(pulumi.StringPtrOutput) diff --git a/sdk/go/openstack/blockstorage/volumeTypeAccessV3.go b/sdk/go/openstack/blockstorage/volumeTypeAccessV3.go index c432ca876..62142af8f 100644 --- a/sdk/go/openstack/blockstorage/volumeTypeAccessV3.go +++ b/sdk/go/openstack/blockstorage/volumeTypeAccessV3.go @@ -8,7 +8,7 @@ import ( "reflect" "errors" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -23,8 +23,8 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/blockstorage" -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/identity" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/blockstorage" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/identity" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/blockstorage/volumeTypeV3.go b/sdk/go/openstack/blockstorage/volumeTypeV3.go index ac6c60385..34ebb1eb1 100644 --- a/sdk/go/openstack/blockstorage/volumeTypeV3.go +++ b/sdk/go/openstack/blockstorage/volumeTypeV3.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -17,12 +17,14 @@ import ( // // ## Example Usage // +// ### Basic Volume Type +// // ```go // package main // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/blockstorage" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/blockstorage" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -46,6 +48,36 @@ import ( // // ``` // +// ### Volume Type with multiattach enabled +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/blockstorage" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := blockstorage.NewVolumeTypeV3(ctx, "multiattach", &blockstorage.VolumeTypeV3Args{ +// Name: pulumi.String("multiattach"), +// Description: pulumi.String("Multiattach-enabled volume type"), +// ExtraSpecs: pulumi.Map{ +// "multiattach": pulumi.Any(" True"), +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// // ## Import // // Volume types can be imported using the `volume_type_id`, e.g. diff --git a/sdk/go/openstack/blockstorage/volumeV1.go b/sdk/go/openstack/blockstorage/volumeV1.go index ca53b8a93..f09128ce8 100644 --- a/sdk/go/openstack/blockstorage/volumeV1.go +++ b/sdk/go/openstack/blockstorage/volumeV1.go @@ -8,7 +8,7 @@ import ( "reflect" "errors" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -21,7 +21,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/blockstorage" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/blockstorage" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/blockstorage/volumeV2.go b/sdk/go/openstack/blockstorage/volumeV2.go index a0b6c3c9f..ae16c8d84 100644 --- a/sdk/go/openstack/blockstorage/volumeV2.go +++ b/sdk/go/openstack/blockstorage/volumeV2.go @@ -8,7 +8,7 @@ import ( "reflect" "errors" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -21,7 +21,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/blockstorage" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/blockstorage" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/compute/aggregateV2.go b/sdk/go/openstack/compute/aggregateV2.go index 1d1c61dab..da170673b 100644 --- a/sdk/go/openstack/compute/aggregateV2.go +++ b/sdk/go/openstack/compute/aggregateV2.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -22,7 +22,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/compute" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/compute" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -57,7 +57,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/compute" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/compute" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/compute/flavor.go b/sdk/go/openstack/compute/flavor.go index 03d6b00e9..1a8a007b8 100644 --- a/sdk/go/openstack/compute/flavor.go +++ b/sdk/go/openstack/compute/flavor.go @@ -8,7 +8,7 @@ import ( "reflect" "errors" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -21,7 +21,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/compute" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/compute" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/compute/flavorAccess.go b/sdk/go/openstack/compute/flavorAccess.go index 484c3a154..5aa7c68f7 100644 --- a/sdk/go/openstack/compute/flavorAccess.go +++ b/sdk/go/openstack/compute/flavorAccess.go @@ -8,7 +8,7 @@ import ( "reflect" "errors" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -26,8 +26,8 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/compute" -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/identity" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/compute" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/identity" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/compute/floatingIp.go b/sdk/go/openstack/compute/floatingIp.go index a4987af13..d072582a4 100644 --- a/sdk/go/openstack/compute/floatingIp.go +++ b/sdk/go/openstack/compute/floatingIp.go @@ -8,7 +8,7 @@ import ( "reflect" "errors" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -27,7 +27,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/compute" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/compute" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/compute/floatingIpAssociate.go b/sdk/go/openstack/compute/floatingIpAssociate.go index 199b6d259..33c4a7ee8 100644 --- a/sdk/go/openstack/compute/floatingIpAssociate.go +++ b/sdk/go/openstack/compute/floatingIpAssociate.go @@ -8,7 +8,7 @@ import ( "reflect" "errors" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -23,8 +23,8 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/compute" -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/compute" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -69,8 +69,8 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/compute" -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/compute" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/compute/getAggregateV2.go b/sdk/go/openstack/compute/getAggregateV2.go index d09b7edd3..2409da757 100644 --- a/sdk/go/openstack/compute/getAggregateV2.go +++ b/sdk/go/openstack/compute/getAggregateV2.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -21,7 +21,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/compute" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/compute" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/compute/getAvailabilityZones.go b/sdk/go/openstack/compute/getAvailabilityZones.go index 46c00d099..38d3e6d68 100644 --- a/sdk/go/openstack/compute/getAvailabilityZones.go +++ b/sdk/go/openstack/compute/getAvailabilityZones.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -20,7 +20,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/compute" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/compute" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/compute/getFlavor.go b/sdk/go/openstack/compute/getFlavor.go index 2411255db..91f9241a8 100644 --- a/sdk/go/openstack/compute/getFlavor.go +++ b/sdk/go/openstack/compute/getFlavor.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -20,7 +20,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/compute" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/compute" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/compute/getHypervisorV2.go b/sdk/go/openstack/compute/getHypervisorV2.go index 60c27d1e9..0c6d4e505 100644 --- a/sdk/go/openstack/compute/getHypervisorV2.go +++ b/sdk/go/openstack/compute/getHypervisorV2.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -21,7 +21,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/compute" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/compute" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/compute/getInstanceV2.go b/sdk/go/openstack/compute/getInstanceV2.go index f5afad8df..cff23095c 100644 --- a/sdk/go/openstack/compute/getInstanceV2.go +++ b/sdk/go/openstack/compute/getInstanceV2.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -20,7 +20,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/compute" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/compute" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/compute/getKeypair.go b/sdk/go/openstack/compute/getKeypair.go index 3c97e23c8..d496d1c8e 100644 --- a/sdk/go/openstack/compute/getKeypair.go +++ b/sdk/go/openstack/compute/getKeypair.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -20,7 +20,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/compute" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/compute" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/compute/getLimitsV2.go b/sdk/go/openstack/compute/getLimitsV2.go index db34f3362..eb9357933 100644 --- a/sdk/go/openstack/compute/getLimitsV2.go +++ b/sdk/go/openstack/compute/getLimitsV2.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -20,7 +20,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/compute" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/compute" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/compute/getQuotaSetV2.go b/sdk/go/openstack/compute/getQuotaSetV2.go index d2734d254..327837790 100644 --- a/sdk/go/openstack/compute/getQuotaSetV2.go +++ b/sdk/go/openstack/compute/getQuotaSetV2.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -20,7 +20,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/compute" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/compute" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/compute/init.go b/sdk/go/openstack/compute/init.go index 6e650d639..bc1846883 100644 --- a/sdk/go/openstack/compute/init.go +++ b/sdk/go/openstack/compute/init.go @@ -7,7 +7,7 @@ import ( "fmt" "github.com/blang/semver" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) diff --git a/sdk/go/openstack/compute/instance.go b/sdk/go/openstack/compute/instance.go index a494c258e..b94aaddd0 100644 --- a/sdk/go/openstack/compute/instance.go +++ b/sdk/go/openstack/compute/instance.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -54,8 +54,6 @@ type Instance struct { // The name of the // desired flavor for the server. Changing this resizes the existing server. FlavorName pulumi.StringOutput `pulumi:"flavorName"` - // Deprecated: Use the compute.FloatingIpAssociate resource instead - FloatingIp pulumi.StringPtrOutput `pulumi:"floatingIp"` // Whether to force the OpenStack instance to be // forcefully deleted. This is useful for environments that have reclaim / soft // deletion enabled. @@ -125,8 +123,6 @@ type Instance struct { // Map of additional vendor-specific options. // Supported options are described below. VendorOptions InstanceVendorOptionsPtrOutput `pulumi:"vendorOptions"` - // Deprecated: Use blockDevice or compute.VolumeAttach instead - Volumes InstanceVolumeArrayOutput `pulumi:"volumes"` } // NewInstance registers a new resource with the given unique name, arguments, and options. @@ -206,8 +202,6 @@ type instanceState struct { // The name of the // desired flavor for the server. Changing this resizes the existing server. FlavorName *string `pulumi:"flavorName"` - // Deprecated: Use the compute.FloatingIpAssociate resource instead - FloatingIp *string `pulumi:"floatingIp"` // Whether to force the OpenStack instance to be // forcefully deleted. This is useful for environments that have reclaim / soft // deletion enabled. @@ -277,8 +271,6 @@ type instanceState struct { // Map of additional vendor-specific options. // Supported options are described below. VendorOptions *InstanceVendorOptions `pulumi:"vendorOptions"` - // Deprecated: Use blockDevice or compute.VolumeAttach instead - Volumes []InstanceVolume `pulumi:"volumes"` } type InstanceState struct { @@ -322,8 +314,6 @@ type InstanceState struct { // The name of the // desired flavor for the server. Changing this resizes the existing server. FlavorName pulumi.StringPtrInput - // Deprecated: Use the compute.FloatingIpAssociate resource instead - FloatingIp pulumi.StringPtrInput // Whether to force the OpenStack instance to be // forcefully deleted. This is useful for environments that have reclaim / soft // deletion enabled. @@ -393,8 +383,6 @@ type InstanceState struct { // Map of additional vendor-specific options. // Supported options are described below. VendorOptions InstanceVendorOptionsPtrInput - // Deprecated: Use blockDevice or compute.VolumeAttach instead - Volumes InstanceVolumeArrayInput } func (InstanceState) ElementType() reflect.Type { @@ -436,8 +424,6 @@ type instanceArgs struct { // The name of the // desired flavor for the server. Changing this resizes the existing server. FlavorName *string `pulumi:"flavorName"` - // Deprecated: Use the compute.FloatingIpAssociate resource instead - FloatingIp *string `pulumi:"floatingIp"` // Whether to force the OpenStack instance to be // forcefully deleted. This is useful for environments that have reclaim / soft // deletion enabled. @@ -505,8 +491,6 @@ type instanceArgs struct { // Map of additional vendor-specific options. // Supported options are described below. VendorOptions *InstanceVendorOptions `pulumi:"vendorOptions"` - // Deprecated: Use blockDevice or compute.VolumeAttach instead - Volumes []InstanceVolume `pulumi:"volumes"` } // The set of arguments for constructing a Instance resource. @@ -545,8 +529,6 @@ type InstanceArgs struct { // The name of the // desired flavor for the server. Changing this resizes the existing server. FlavorName pulumi.StringPtrInput - // Deprecated: Use the compute.FloatingIpAssociate resource instead - FloatingIp pulumi.StringPtrInput // Whether to force the OpenStack instance to be // forcefully deleted. This is useful for environments that have reclaim / soft // deletion enabled. @@ -614,8 +596,6 @@ type InstanceArgs struct { // Map of additional vendor-specific options. // Supported options are described below. VendorOptions InstanceVendorOptionsPtrInput - // Deprecated: Use blockDevice or compute.VolumeAttach instead - Volumes InstanceVolumeArrayInput } func (InstanceArgs) ElementType() reflect.Type { @@ -781,11 +761,6 @@ func (o InstanceOutput) FlavorName() pulumi.StringOutput { return o.ApplyT(func(v *Instance) pulumi.StringOutput { return v.FlavorName }).(pulumi.StringOutput) } -// Deprecated: Use the compute.FloatingIpAssociate resource instead -func (o InstanceOutput) FloatingIp() pulumi.StringPtrOutput { - return o.ApplyT(func(v *Instance) pulumi.StringPtrOutput { return v.FloatingIp }).(pulumi.StringPtrOutput) -} - // Whether to force the OpenStack instance to be // forcefully deleted. This is useful for environments that have reclaim / soft // deletion enabled. @@ -909,11 +884,6 @@ func (o InstanceOutput) VendorOptions() InstanceVendorOptionsPtrOutput { return o.ApplyT(func(v *Instance) InstanceVendorOptionsPtrOutput { return v.VendorOptions }).(InstanceVendorOptionsPtrOutput) } -// Deprecated: Use blockDevice or compute.VolumeAttach instead -func (o InstanceOutput) Volumes() InstanceVolumeArrayOutput { - return o.ApplyT(func(v *Instance) InstanceVolumeArrayOutput { return v.Volumes }).(InstanceVolumeArrayOutput) -} - type InstanceArrayOutput struct{ *pulumi.OutputState } func (InstanceArrayOutput) ElementType() reflect.Type { diff --git a/sdk/go/openstack/compute/interfaceAttach.go b/sdk/go/openstack/compute/interfaceAttach.go index 1f573ebaf..2877af644 100644 --- a/sdk/go/openstack/compute/interfaceAttach.go +++ b/sdk/go/openstack/compute/interfaceAttach.go @@ -8,7 +8,7 @@ import ( "reflect" "errors" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -24,8 +24,8 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/compute" -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/compute" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -68,8 +68,8 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/compute" -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/compute" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -113,8 +113,8 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/compute" -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/compute" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/compute/keypair.go b/sdk/go/openstack/compute/keypair.go index 9cb85d533..aac06ee2c 100644 --- a/sdk/go/openstack/compute/keypair.go +++ b/sdk/go/openstack/compute/keypair.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -20,7 +20,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/compute" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/compute" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -47,7 +47,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/compute" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/compute" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/compute/pulumiTypes.go b/sdk/go/openstack/compute/pulumiTypes.go index 7c441855d..101e78e97 100644 --- a/sdk/go/openstack/compute/pulumiTypes.go +++ b/sdk/go/openstack/compute/pulumiTypes.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -271,9 +271,7 @@ type InstanceNetwork struct { // network. Changing this creates a new server. FixedIpV4 *string `pulumi:"fixedIpV4"` FixedIpV6 *string `pulumi:"fixedIpV6"` - // Deprecated: Use the compute.FloatingIpAssociate resource instead - FloatingIp *string `pulumi:"floatingIp"` - Mac *string `pulumi:"mac"` + Mac *string `pulumi:"mac"` // The human-readable // name of the network. Changing this creates a new server. Name *string `pulumi:"name"` @@ -304,9 +302,7 @@ type InstanceNetworkArgs struct { // network. Changing this creates a new server. FixedIpV4 pulumi.StringPtrInput `pulumi:"fixedIpV4"` FixedIpV6 pulumi.StringPtrInput `pulumi:"fixedIpV6"` - // Deprecated: Use the compute.FloatingIpAssociate resource instead - FloatingIp pulumi.StringPtrInput `pulumi:"floatingIp"` - Mac pulumi.StringPtrInput `pulumi:"mac"` + Mac pulumi.StringPtrInput `pulumi:"mac"` // The human-readable // name of the network. Changing this creates a new server. Name pulumi.StringPtrInput `pulumi:"name"` @@ -385,11 +381,6 @@ func (o InstanceNetworkOutput) FixedIpV6() pulumi.StringPtrOutput { return o.ApplyT(func(v InstanceNetwork) *string { return v.FixedIpV6 }).(pulumi.StringPtrOutput) } -// Deprecated: Use the compute.FloatingIpAssociate resource instead -func (o InstanceNetworkOutput) FloatingIp() pulumi.StringPtrOutput { - return o.ApplyT(func(v InstanceNetwork) *string { return v.FloatingIp }).(pulumi.StringPtrOutput) -} - func (o InstanceNetworkOutput) Mac() pulumi.StringPtrOutput { return o.ApplyT(func(v InstanceNetwork) *string { return v.Mac }).(pulumi.StringPtrOutput) } @@ -551,7 +542,8 @@ type InstanceSchedulerHint struct { // be scheduled on a different host than all other instances. DifferentHosts []string `pulumi:"differentHosts"` // A UUID of a Server Group. The instance will be placed - // into that group. + // into that group. See reference + // for details on managing servergroup resources Group *string `pulumi:"group"` // A conditional query that a compute node must pass in // order to host an instance. The query must use the `JsonFilter` syntax @@ -591,7 +583,8 @@ type InstanceSchedulerHintArgs struct { // be scheduled on a different host than all other instances. DifferentHosts pulumi.StringArrayInput `pulumi:"differentHosts"` // A UUID of a Server Group. The instance will be placed - // into that group. + // into that group. See reference + // for details on managing servergroup resources Group pulumi.StringPtrInput `pulumi:"group"` // A conditional query that a compute node must pass in // order to host an instance. The query must use the `JsonFilter` syntax @@ -682,7 +675,8 @@ func (o InstanceSchedulerHintOutput) DifferentHosts() pulumi.StringArrayOutput { } // A UUID of a Server Group. The instance will be placed -// into that group. +// into that group. See reference +// for details on managing servergroup resources func (o InstanceSchedulerHintOutput) Group() pulumi.StringPtrOutput { return o.ApplyT(func(v InstanceSchedulerHint) *string { return v.Group }).(pulumi.StringPtrOutput) } @@ -904,112 +898,6 @@ func (o InstanceVendorOptionsPtrOutput) IgnoreResizeConfirmation() pulumi.BoolPt }).(pulumi.BoolPtrOutput) } -type InstanceVolume struct { - Device *string `pulumi:"device"` - Id *string `pulumi:"id"` - VolumeId string `pulumi:"volumeId"` -} - -// InstanceVolumeInput is an input type that accepts InstanceVolumeArgs and InstanceVolumeOutput values. -// You can construct a concrete instance of `InstanceVolumeInput` via: -// -// InstanceVolumeArgs{...} -type InstanceVolumeInput interface { - pulumi.Input - - ToInstanceVolumeOutput() InstanceVolumeOutput - ToInstanceVolumeOutputWithContext(context.Context) InstanceVolumeOutput -} - -type InstanceVolumeArgs struct { - Device pulumi.StringPtrInput `pulumi:"device"` - Id pulumi.StringPtrInput `pulumi:"id"` - VolumeId pulumi.StringInput `pulumi:"volumeId"` -} - -func (InstanceVolumeArgs) ElementType() reflect.Type { - return reflect.TypeOf((*InstanceVolume)(nil)).Elem() -} - -func (i InstanceVolumeArgs) ToInstanceVolumeOutput() InstanceVolumeOutput { - return i.ToInstanceVolumeOutputWithContext(context.Background()) -} - -func (i InstanceVolumeArgs) ToInstanceVolumeOutputWithContext(ctx context.Context) InstanceVolumeOutput { - return pulumi.ToOutputWithContext(ctx, i).(InstanceVolumeOutput) -} - -// InstanceVolumeArrayInput is an input type that accepts InstanceVolumeArray and InstanceVolumeArrayOutput values. -// You can construct a concrete instance of `InstanceVolumeArrayInput` via: -// -// InstanceVolumeArray{ InstanceVolumeArgs{...} } -type InstanceVolumeArrayInput interface { - pulumi.Input - - ToInstanceVolumeArrayOutput() InstanceVolumeArrayOutput - ToInstanceVolumeArrayOutputWithContext(context.Context) InstanceVolumeArrayOutput -} - -type InstanceVolumeArray []InstanceVolumeInput - -func (InstanceVolumeArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]InstanceVolume)(nil)).Elem() -} - -func (i InstanceVolumeArray) ToInstanceVolumeArrayOutput() InstanceVolumeArrayOutput { - return i.ToInstanceVolumeArrayOutputWithContext(context.Background()) -} - -func (i InstanceVolumeArray) ToInstanceVolumeArrayOutputWithContext(ctx context.Context) InstanceVolumeArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(InstanceVolumeArrayOutput) -} - -type InstanceVolumeOutput struct{ *pulumi.OutputState } - -func (InstanceVolumeOutput) ElementType() reflect.Type { - return reflect.TypeOf((*InstanceVolume)(nil)).Elem() -} - -func (o InstanceVolumeOutput) ToInstanceVolumeOutput() InstanceVolumeOutput { - return o -} - -func (o InstanceVolumeOutput) ToInstanceVolumeOutputWithContext(ctx context.Context) InstanceVolumeOutput { - return o -} - -func (o InstanceVolumeOutput) Device() pulumi.StringPtrOutput { - return o.ApplyT(func(v InstanceVolume) *string { return v.Device }).(pulumi.StringPtrOutput) -} - -func (o InstanceVolumeOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v InstanceVolume) *string { return v.Id }).(pulumi.StringPtrOutput) -} - -func (o InstanceVolumeOutput) VolumeId() pulumi.StringOutput { - return o.ApplyT(func(v InstanceVolume) string { return v.VolumeId }).(pulumi.StringOutput) -} - -type InstanceVolumeArrayOutput struct{ *pulumi.OutputState } - -func (InstanceVolumeArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]InstanceVolume)(nil)).Elem() -} - -func (o InstanceVolumeArrayOutput) ToInstanceVolumeArrayOutput() InstanceVolumeArrayOutput { - return o -} - -func (o InstanceVolumeArrayOutput) ToInstanceVolumeArrayOutputWithContext(ctx context.Context) InstanceVolumeArrayOutput { - return o -} - -func (o InstanceVolumeArrayOutput) Index(i pulumi.IntInput) InstanceVolumeOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) InstanceVolume { - return vs[0].([]InstanceVolume)[vs[1].(int)] - }).(InstanceVolumeOutput) -} - type SecGroupRule struct { // Required if `fromGroupId` or `self` is empty. The IP range // that will be the source of network traffic to the security group. Use 0.0.0.0/0 @@ -1619,8 +1507,6 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*InstanceSchedulerHintArrayInput)(nil)).Elem(), InstanceSchedulerHintArray{}) pulumi.RegisterInputType(reflect.TypeOf((*InstanceVendorOptionsInput)(nil)).Elem(), InstanceVendorOptionsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*InstanceVendorOptionsPtrInput)(nil)).Elem(), InstanceVendorOptionsArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*InstanceVolumeInput)(nil)).Elem(), InstanceVolumeArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*InstanceVolumeArrayInput)(nil)).Elem(), InstanceVolumeArray{}) pulumi.RegisterInputType(reflect.TypeOf((*SecGroupRuleInput)(nil)).Elem(), SecGroupRuleArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*SecGroupRuleArrayInput)(nil)).Elem(), SecGroupRuleArray{}) pulumi.RegisterInputType(reflect.TypeOf((*ServerGroupRulesInput)(nil)).Elem(), ServerGroupRulesArgs{}) @@ -1639,8 +1525,6 @@ func init() { pulumi.RegisterOutputType(InstanceSchedulerHintArrayOutput{}) pulumi.RegisterOutputType(InstanceVendorOptionsOutput{}) pulumi.RegisterOutputType(InstanceVendorOptionsPtrOutput{}) - pulumi.RegisterOutputType(InstanceVolumeOutput{}) - pulumi.RegisterOutputType(InstanceVolumeArrayOutput{}) pulumi.RegisterOutputType(SecGroupRuleOutput{}) pulumi.RegisterOutputType(SecGroupRuleArrayOutput{}) pulumi.RegisterOutputType(ServerGroupRulesOutput{}) diff --git a/sdk/go/openstack/compute/quotaSetV2.go b/sdk/go/openstack/compute/quotaSetV2.go index b8c00dd41..2b3f08635 100644 --- a/sdk/go/openstack/compute/quotaSetV2.go +++ b/sdk/go/openstack/compute/quotaSetV2.go @@ -8,7 +8,7 @@ import ( "reflect" "errors" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) diff --git a/sdk/go/openstack/compute/secGroup.go b/sdk/go/openstack/compute/secGroup.go index 6bc1bc31a..33ccf6713 100644 --- a/sdk/go/openstack/compute/secGroup.go +++ b/sdk/go/openstack/compute/secGroup.go @@ -8,7 +8,7 @@ import ( "reflect" "errors" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -27,7 +27,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/compute" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/compute" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -72,7 +72,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/compute" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/compute" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/compute/serverGroup.go b/sdk/go/openstack/compute/serverGroup.go index d214889e1..5c0222f0f 100644 --- a/sdk/go/openstack/compute/serverGroup.go +++ b/sdk/go/openstack/compute/serverGroup.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -22,7 +22,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/compute" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/compute" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -38,6 +38,24 @@ import ( // if err != nil { // return err // } +// _, err = compute.NewInstance(ctx, "test-instance", &compute.InstanceArgs{ +// Name: pulumi.String("my-instance"), +// ImageId: pulumi.String("ad091b52-742f-469e-8f3c-fd81cadf0743"), +// FlavorId: pulumi.String("3"), +// SchedulerHints: compute.InstanceSchedulerHintArray{ +// &compute.InstanceSchedulerHintArgs{ +// Group: test_sg.ID(), +// }, +// }, +// Networks: compute.InstanceNetworkArray{ +// &compute.InstanceNetworkArgs{ +// Name: pulumi.String("my_network"), +// }, +// }, +// }) +// if err != nil { +// return err +// } // return nil // }) // } @@ -51,7 +69,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/compute" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/compute" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -70,6 +88,24 @@ import ( // if err != nil { // return err // } +// _, err = compute.NewInstance(ctx, "test-instance", &compute.InstanceArgs{ +// Name: pulumi.String("my-instance"), +// ImageId: pulumi.String("ad091b52-742f-469e-8f3c-fd81cadf0743"), +// FlavorId: pulumi.String("3"), +// SchedulerHints: compute.InstanceSchedulerHintArray{ +// &compute.InstanceSchedulerHintArgs{ +// Group: test_sg.ID(), +// }, +// }, +// Networks: compute.InstanceNetworkArray{ +// &compute.InstanceNetworkArgs{ +// Name: pulumi.String("my_network"), +// }, +// }, +// }) +// if err != nil { +// return err +// } // return nil // }) // } diff --git a/sdk/go/openstack/compute/volumeAttach.go b/sdk/go/openstack/compute/volumeAttach.go index 05eb005f7..3d19d4c80 100644 --- a/sdk/go/openstack/compute/volumeAttach.go +++ b/sdk/go/openstack/compute/volumeAttach.go @@ -8,7 +8,7 @@ import ( "reflect" "errors" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -24,8 +24,8 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/blockstorage" -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/compute" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/blockstorage" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/compute" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -64,15 +64,15 @@ import ( // ### Using Multiattach-enabled volumes // // Multiattach Volumes are dependent upon your OpenStack cloud and not all -// clouds support multiattach. +// clouds support multiattach. Multiattach volumes require a volumeType that has [multiattach enabled](https://docs.openstack.org/cinder/latest/admin/volume-multiattach.html#multiattach-volume-type). // // ```go // package main // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/blockstorage" -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/compute" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/blockstorage" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/compute" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -80,9 +80,9 @@ import ( // func main() { // pulumi.Run(func(ctx *pulumi.Context) error { // volume1, err := blockstorage.NewVolume(ctx, "volume_1", &blockstorage.VolumeArgs{ -// Name: pulumi.String("volume_1"), -// Size: pulumi.Int(1), -// Multiattach: pulumi.Bool(true), +// Name: pulumi.String("volume_1"), +// Size: pulumi.Int(1), +// VolumeType: pulumi.String("multiattach"), // }) // if err != nil { // return err @@ -153,6 +153,10 @@ type VolumeAttach struct { // `region` argument of the provider is used. Changing this creates a // new volume attachment. Region pulumi.StringOutput `pulumi:"region"` + // Add a device role tag that is applied to the volume when + // attaching it to the VM. Changing this creates a new volume attachment with + // the new tag. Requires microversion >= 2.49. + Tag pulumi.StringPtrOutput `pulumi:"tag"` // Map of additional vendor-specific options. // Supported options are described below. VendorOptions VolumeAttachVendorOptionsPtrOutput `pulumi:"vendorOptions"` @@ -206,6 +210,10 @@ type volumeAttachState struct { // `region` argument of the provider is used. Changing this creates a // new volume attachment. Region *string `pulumi:"region"` + // Add a device role tag that is applied to the volume when + // attaching it to the VM. Changing this creates a new volume attachment with + // the new tag. Requires microversion >= 2.49. + Tag *string `pulumi:"tag"` // Map of additional vendor-specific options. // Supported options are described below. VendorOptions *VolumeAttachVendorOptions `pulumi:"vendorOptions"` @@ -224,6 +232,10 @@ type VolumeAttachState struct { // `region` argument of the provider is used. Changing this creates a // new volume attachment. Region pulumi.StringPtrInput + // Add a device role tag that is applied to the volume when + // attaching it to the VM. Changing this creates a new volume attachment with + // the new tag. Requires microversion >= 2.49. + Tag pulumi.StringPtrInput // Map of additional vendor-specific options. // Supported options are described below. VendorOptions VolumeAttachVendorOptionsPtrInput @@ -246,6 +258,10 @@ type volumeAttachArgs struct { // `region` argument of the provider is used. Changing this creates a // new volume attachment. Region *string `pulumi:"region"` + // Add a device role tag that is applied to the volume when + // attaching it to the VM. Changing this creates a new volume attachment with + // the new tag. Requires microversion >= 2.49. + Tag *string `pulumi:"tag"` // Map of additional vendor-specific options. // Supported options are described below. VendorOptions *VolumeAttachVendorOptions `pulumi:"vendorOptions"` @@ -265,6 +281,10 @@ type VolumeAttachArgs struct { // `region` argument of the provider is used. Changing this creates a // new volume attachment. Region pulumi.StringPtrInput + // Add a device role tag that is applied to the volume when + // attaching it to the VM. Changing this creates a new volume attachment with + // the new tag. Requires microversion >= 2.49. + Tag pulumi.StringPtrInput // Map of additional vendor-specific options. // Supported options are described below. VendorOptions VolumeAttachVendorOptionsPtrInput @@ -381,6 +401,13 @@ func (o VolumeAttachOutput) Region() pulumi.StringOutput { return o.ApplyT(func(v *VolumeAttach) pulumi.StringOutput { return v.Region }).(pulumi.StringOutput) } +// Add a device role tag that is applied to the volume when +// attaching it to the VM. Changing this creates a new volume attachment with +// the new tag. Requires microversion >= 2.49. +func (o VolumeAttachOutput) Tag() pulumi.StringPtrOutput { + return o.ApplyT(func(v *VolumeAttach) pulumi.StringPtrOutput { return v.Tag }).(pulumi.StringPtrOutput) +} + // Map of additional vendor-specific options. // Supported options are described below. func (o VolumeAttachOutput) VendorOptions() VolumeAttachVendorOptionsPtrOutput { diff --git a/sdk/go/openstack/config/config.go b/sdk/go/openstack/config/config.go index 7315a58bc..3da65b5f7 100644 --- a/sdk/go/openstack/config/config.go +++ b/sdk/go/openstack/config/config.go @@ -4,7 +4,7 @@ package config import ( - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" "github.com/pulumi/pulumi/sdk/v3/go/pulumi/config" ) @@ -207,21 +207,6 @@ func GetToken(ctx *pulumi.Context) string { return config.Get(ctx, "openstack:token") } -// If set to `true`, API requests will go the Load Balancer service (Octavia) instead of the Networking service (Neutron). -// -// Deprecated: Users not using loadbalancer resources can ignore this message. Support for neutron-lbaas will be removed on next major release. Octavia will be the only supported method for loadbalancer resources. Users using octavia will have to remove 'use_octavia' option from the provider configuration block. Users using neutron-lbaas will have to migrate/upgrade to octavia. -func GetUseOctavia(ctx *pulumi.Context) bool { - v, err := config.TryBool(ctx, "openstack:useOctavia") - if err == nil { - return v - } - var value bool - if d := internal.GetEnvOrDefault(nil, internal.ParseEnvBool, "OS_USE_OCTAVIA"); d != nil { - value = d.(bool) - } - return value -} - // The ID of the domain where the user resides (Identity v3). func GetUserDomainId(ctx *pulumi.Context) string { return config.Get(ctx, "openstack:userDomainId") diff --git a/sdk/go/openstack/containerinfra/cluster.go b/sdk/go/openstack/containerinfra/cluster.go index 5f3208cd4..7f83407dd 100644 --- a/sdk/go/openstack/containerinfra/cluster.go +++ b/sdk/go/openstack/containerinfra/cluster.go @@ -8,7 +8,7 @@ import ( "reflect" "errors" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -27,7 +27,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/containerinfra" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/containerinfra" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/containerinfra/clusterTemplate.go b/sdk/go/openstack/containerinfra/clusterTemplate.go index 07cb8f59d..059b1b1a2 100644 --- a/sdk/go/openstack/containerinfra/clusterTemplate.go +++ b/sdk/go/openstack/containerinfra/clusterTemplate.go @@ -8,7 +8,7 @@ import ( "reflect" "errors" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -23,7 +23,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/containerinfra" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/containerinfra" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/containerinfra/getCluster.go b/sdk/go/openstack/containerinfra/getCluster.go index c610430d2..5b35ceace 100644 --- a/sdk/go/openstack/containerinfra/getCluster.go +++ b/sdk/go/openstack/containerinfra/getCluster.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -20,7 +20,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/containerinfra" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/containerinfra" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/containerinfra/getClusterTemplate.go b/sdk/go/openstack/containerinfra/getClusterTemplate.go index 7327f6085..0af69c3ea 100644 --- a/sdk/go/openstack/containerinfra/getClusterTemplate.go +++ b/sdk/go/openstack/containerinfra/getClusterTemplate.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -21,7 +21,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/containerinfra" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/containerinfra" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/containerinfra/getNodeGroup.go b/sdk/go/openstack/containerinfra/getNodeGroup.go index f7b590d9f..0c2f3796d 100644 --- a/sdk/go/openstack/containerinfra/getNodeGroup.go +++ b/sdk/go/openstack/containerinfra/getNodeGroup.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -20,7 +20,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/containerinfra" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/containerinfra" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/containerinfra/init.go b/sdk/go/openstack/containerinfra/init.go index b1bf27390..ba540aff7 100644 --- a/sdk/go/openstack/containerinfra/init.go +++ b/sdk/go/openstack/containerinfra/init.go @@ -7,7 +7,7 @@ import ( "fmt" "github.com/blang/semver" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) diff --git a/sdk/go/openstack/containerinfra/nodeGroup.go b/sdk/go/openstack/containerinfra/nodeGroup.go index 0f2f3143b..fc6861e59 100644 --- a/sdk/go/openstack/containerinfra/nodeGroup.go +++ b/sdk/go/openstack/containerinfra/nodeGroup.go @@ -8,7 +8,7 @@ import ( "reflect" "errors" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -23,7 +23,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/containerinfra" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/containerinfra" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/database/configuration.go b/sdk/go/openstack/database/configuration.go index 31c4159f2..47f04c4ca 100644 --- a/sdk/go/openstack/database/configuration.go +++ b/sdk/go/openstack/database/configuration.go @@ -8,7 +8,7 @@ import ( "reflect" "errors" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) diff --git a/sdk/go/openstack/database/database.go b/sdk/go/openstack/database/database.go index 6986db408..bcad11af6 100644 --- a/sdk/go/openstack/database/database.go +++ b/sdk/go/openstack/database/database.go @@ -8,7 +8,7 @@ import ( "reflect" "errors" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -23,7 +23,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/database" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/database" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/database/init.go b/sdk/go/openstack/database/init.go index bad8bc199..a7fe2bd45 100644 --- a/sdk/go/openstack/database/init.go +++ b/sdk/go/openstack/database/init.go @@ -7,7 +7,7 @@ import ( "fmt" "github.com/blang/semver" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) diff --git a/sdk/go/openstack/database/instance.go b/sdk/go/openstack/database/instance.go index 94f1887ac..9ce6295fb 100644 --- a/sdk/go/openstack/database/instance.go +++ b/sdk/go/openstack/database/instance.go @@ -8,7 +8,7 @@ import ( "reflect" "errors" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -27,7 +27,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/database" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/database" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/database/pulumiTypes.go b/sdk/go/openstack/database/pulumiTypes.go index 13dc74759..3ed5fdc14 100644 --- a/sdk/go/openstack/database/pulumiTypes.go +++ b/sdk/go/openstack/database/pulumiTypes.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) diff --git a/sdk/go/openstack/database/user.go b/sdk/go/openstack/database/user.go index c0c7930ec..e16053e42 100644 --- a/sdk/go/openstack/database/user.go +++ b/sdk/go/openstack/database/user.go @@ -8,7 +8,7 @@ import ( "reflect" "errors" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -27,7 +27,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/database" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/database" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/dns/getDnsZone.go b/sdk/go/openstack/dns/getDnsZone.go index a1ea6c482..91649ecd2 100644 --- a/sdk/go/openstack/dns/getDnsZone.go +++ b/sdk/go/openstack/dns/getDnsZone.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -20,7 +20,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/dns" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/dns" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/dns/init.go b/sdk/go/openstack/dns/init.go index c9fa4f1c0..33e0194db 100644 --- a/sdk/go/openstack/dns/init.go +++ b/sdk/go/openstack/dns/init.go @@ -7,7 +7,7 @@ import ( "fmt" "github.com/blang/semver" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) diff --git a/sdk/go/openstack/dns/recordSet.go b/sdk/go/openstack/dns/recordSet.go index 9f963875f..c4e89dfea 100644 --- a/sdk/go/openstack/dns/recordSet.go +++ b/sdk/go/openstack/dns/recordSet.go @@ -8,7 +8,7 @@ import ( "reflect" "errors" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -23,7 +23,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/dns" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/dns" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/dns/transferAccept.go b/sdk/go/openstack/dns/transferAccept.go index 38e6d8e93..373f6b757 100644 --- a/sdk/go/openstack/dns/transferAccept.go +++ b/sdk/go/openstack/dns/transferAccept.go @@ -8,7 +8,7 @@ import ( "reflect" "errors" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -23,7 +23,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/dns" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/dns" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/dns/transferRequest.go b/sdk/go/openstack/dns/transferRequest.go index 7fb023cbb..857b4e530 100644 --- a/sdk/go/openstack/dns/transferRequest.go +++ b/sdk/go/openstack/dns/transferRequest.go @@ -8,7 +8,7 @@ import ( "reflect" "errors" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -23,7 +23,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/dns" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/dns" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/dns/zone.go b/sdk/go/openstack/dns/zone.go index 18dafb8a9..221500a6e 100644 --- a/sdk/go/openstack/dns/zone.go +++ b/sdk/go/openstack/dns/zone.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -22,7 +22,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/dns" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/dns" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/firewall/firewall.go b/sdk/go/openstack/firewall/firewall.go index ec4f50e87..a6a4af907 100644 --- a/sdk/go/openstack/firewall/firewall.go +++ b/sdk/go/openstack/firewall/firewall.go @@ -8,7 +8,7 @@ import ( "reflect" "errors" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -21,7 +21,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/firewall" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/firewall" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/firewall/getPolicy.go b/sdk/go/openstack/firewall/getPolicy.go index a67e00b88..b2708c3c3 100644 --- a/sdk/go/openstack/firewall/getPolicy.go +++ b/sdk/go/openstack/firewall/getPolicy.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -20,7 +20,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/firewall" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/firewall" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/firewall/groupV2.go b/sdk/go/openstack/firewall/groupV2.go index 23891293c..cc61910e7 100644 --- a/sdk/go/openstack/firewall/groupV2.go +++ b/sdk/go/openstack/firewall/groupV2.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -22,7 +22,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/firewall" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/firewall" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/firewall/init.go b/sdk/go/openstack/firewall/init.go index eeefb1bd7..0833e9285 100644 --- a/sdk/go/openstack/firewall/init.go +++ b/sdk/go/openstack/firewall/init.go @@ -7,7 +7,7 @@ import ( "fmt" "github.com/blang/semver" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) diff --git a/sdk/go/openstack/firewall/policy.go b/sdk/go/openstack/firewall/policy.go index 57f22d5be..52bb1f29a 100644 --- a/sdk/go/openstack/firewall/policy.go +++ b/sdk/go/openstack/firewall/policy.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -20,7 +20,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/firewall" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/firewall" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/firewall/policyV2.go b/sdk/go/openstack/firewall/policyV2.go index 4ddd97f0a..1df9cd69e 100644 --- a/sdk/go/openstack/firewall/policyV2.go +++ b/sdk/go/openstack/firewall/policyV2.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -22,7 +22,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/firewall" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/firewall" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/firewall/rule.go b/sdk/go/openstack/firewall/rule.go index bb42f3a98..df87f3758 100644 --- a/sdk/go/openstack/firewall/rule.go +++ b/sdk/go/openstack/firewall/rule.go @@ -8,7 +8,7 @@ import ( "reflect" "errors" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -21,7 +21,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/firewall" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/firewall" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/firewall/ruleV2.go b/sdk/go/openstack/firewall/ruleV2.go index a21096f3e..9c05df744 100644 --- a/sdk/go/openstack/firewall/ruleV2.go +++ b/sdk/go/openstack/firewall/ruleV2.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -22,7 +22,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/firewall" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/firewall" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/getFwGroupV2.go b/sdk/go/openstack/getFwGroupV2.go index 0d00ce936..d6936af4b 100644 --- a/sdk/go/openstack/getFwGroupV2.go +++ b/sdk/go/openstack/getFwGroupV2.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -20,7 +20,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/getFwPolicyV2.go b/sdk/go/openstack/getFwPolicyV2.go index dd924007a..9ec29a372 100644 --- a/sdk/go/openstack/getFwPolicyV2.go +++ b/sdk/go/openstack/getFwPolicyV2.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -20,7 +20,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/getFwRuleV2.go b/sdk/go/openstack/getFwRuleV2.go index e153fc9db..a3bb02e15 100644 --- a/sdk/go/openstack/getFwRuleV2.go +++ b/sdk/go/openstack/getFwRuleV2.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -20,7 +20,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/identity/applicationCredential.go b/sdk/go/openstack/identity/applicationCredential.go index 44049f21e..f0923eccd 100644 --- a/sdk/go/openstack/identity/applicationCredential.go +++ b/sdk/go/openstack/identity/applicationCredential.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -33,7 +33,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/identity" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/identity" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -71,7 +71,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/identity" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/identity" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -103,7 +103,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/identity" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/identity" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/identity/ec2CredentialV3.go b/sdk/go/openstack/identity/ec2CredentialV3.go index c26ff2d5c..ab8a45374 100644 --- a/sdk/go/openstack/identity/ec2CredentialV3.go +++ b/sdk/go/openstack/identity/ec2CredentialV3.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -28,7 +28,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/identity" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/identity" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -55,7 +55,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/identity" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/identity" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/identity/endpointV3.go b/sdk/go/openstack/identity/endpointV3.go index c3c852846..a62036527 100644 --- a/sdk/go/openstack/identity/endpointV3.go +++ b/sdk/go/openstack/identity/endpointV3.go @@ -8,7 +8,7 @@ import ( "reflect" "errors" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -23,7 +23,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/identity" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/identity" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/identity/getAuthScope.go b/sdk/go/openstack/identity/getAuthScope.go index a51dd8f95..c07be6573 100644 --- a/sdk/go/openstack/identity/getAuthScope.go +++ b/sdk/go/openstack/identity/getAuthScope.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) diff --git a/sdk/go/openstack/identity/getEndpoint.go b/sdk/go/openstack/identity/getEndpoint.go index 927ea216c..3d0a744ae 100644 --- a/sdk/go/openstack/identity/getEndpoint.go +++ b/sdk/go/openstack/identity/getEndpoint.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -22,7 +22,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/identity" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/identity" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/identity/getGroup.go b/sdk/go/openstack/identity/getGroup.go index 7146ead5a..c518eae22 100644 --- a/sdk/go/openstack/identity/getGroup.go +++ b/sdk/go/openstack/identity/getGroup.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -23,7 +23,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/identity" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/identity" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/identity/getProject.go b/sdk/go/openstack/identity/getProject.go index bb378dfba..32bae7e5b 100644 --- a/sdk/go/openstack/identity/getProject.go +++ b/sdk/go/openstack/identity/getProject.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -20,7 +20,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/identity" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/identity" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/identity/getRole.go b/sdk/go/openstack/identity/getRole.go index 83c07b6d5..f8c49499d 100644 --- a/sdk/go/openstack/identity/getRole.go +++ b/sdk/go/openstack/identity/getRole.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -20,7 +20,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/identity" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/identity" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/identity/getService.go b/sdk/go/openstack/identity/getService.go index 26d641598..c897e599f 100644 --- a/sdk/go/openstack/identity/getService.go +++ b/sdk/go/openstack/identity/getService.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -22,7 +22,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/identity" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/identity" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/identity/getUser.go b/sdk/go/openstack/identity/getUser.go index e054e9b7a..26de293e2 100644 --- a/sdk/go/openstack/identity/getUser.go +++ b/sdk/go/openstack/identity/getUser.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -20,7 +20,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/identity" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/identity" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/identity/groupV3.go b/sdk/go/openstack/identity/groupV3.go index c11b451f5..27e4c83f4 100644 --- a/sdk/go/openstack/identity/groupV3.go +++ b/sdk/go/openstack/identity/groupV3.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -23,7 +23,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/identity" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/identity" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/identity/inheritRoleAssignment.go b/sdk/go/openstack/identity/inheritRoleAssignment.go index a0676084b..7125b346a 100644 --- a/sdk/go/openstack/identity/inheritRoleAssignment.go +++ b/sdk/go/openstack/identity/inheritRoleAssignment.go @@ -8,7 +8,7 @@ import ( "reflect" "errors" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -26,7 +26,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/identity" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/identity" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/identity/init.go b/sdk/go/openstack/identity/init.go index 895e05d49..a5ece9d8d 100644 --- a/sdk/go/openstack/identity/init.go +++ b/sdk/go/openstack/identity/init.go @@ -7,7 +7,7 @@ import ( "fmt" "github.com/blang/semver" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) diff --git a/sdk/go/openstack/identity/project.go b/sdk/go/openstack/identity/project.go index 594f4188a..6e8804e9f 100644 --- a/sdk/go/openstack/identity/project.go +++ b/sdk/go/openstack/identity/project.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -23,7 +23,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/identity" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/identity" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/identity/pulumiTypes.go b/sdk/go/openstack/identity/pulumiTypes.go index 0178c9f08..d4ae6a09a 100644 --- a/sdk/go/openstack/identity/pulumiTypes.go +++ b/sdk/go/openstack/identity/pulumiTypes.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) diff --git a/sdk/go/openstack/identity/role.go b/sdk/go/openstack/identity/role.go index f6ba40571..c6f0d708f 100644 --- a/sdk/go/openstack/identity/role.go +++ b/sdk/go/openstack/identity/role.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -23,7 +23,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/identity" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/identity" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/identity/roleAssignment.go b/sdk/go/openstack/identity/roleAssignment.go index 7eac95d6b..5a672e113 100644 --- a/sdk/go/openstack/identity/roleAssignment.go +++ b/sdk/go/openstack/identity/roleAssignment.go @@ -8,7 +8,7 @@ import ( "reflect" "errors" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -24,7 +24,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/identity" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/identity" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/identity/serviceV3.go b/sdk/go/openstack/identity/serviceV3.go index 13c7288ac..fe66ed4f0 100644 --- a/sdk/go/openstack/identity/serviceV3.go +++ b/sdk/go/openstack/identity/serviceV3.go @@ -8,7 +8,7 @@ import ( "reflect" "errors" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -23,7 +23,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/identity" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/identity" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/identity/user.go b/sdk/go/openstack/identity/user.go index 6f0731039..e6013d247 100644 --- a/sdk/go/openstack/identity/user.go +++ b/sdk/go/openstack/identity/user.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -27,7 +27,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/identity" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/identity" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/identity/userMembershipV3.go b/sdk/go/openstack/identity/userMembershipV3.go index b45c72f99..f9a5a79b9 100644 --- a/sdk/go/openstack/identity/userMembershipV3.go +++ b/sdk/go/openstack/identity/userMembershipV3.go @@ -8,7 +8,7 @@ import ( "reflect" "errors" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -26,7 +26,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/identity" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/identity" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/images/getImage.go b/sdk/go/openstack/images/getImage.go index 3cfbdc792..b4655f7ef 100644 --- a/sdk/go/openstack/images/getImage.go +++ b/sdk/go/openstack/images/getImage.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -20,7 +20,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/images" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/images" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -87,10 +87,12 @@ type LookupImageArgs struct { SizeMax *int `pulumi:"sizeMax"` // The minimum size (in bytes) of the image to return. SizeMin *int `pulumi:"sizeMin"` - // Order the results in either `asc` or `desc`. - SortDirection *string `pulumi:"sortDirection"` - // Sort images based on a certain key. Defaults to `name`. - SortKey *string `pulumi:"sortKey"` + // Sorts the response by one or more attribute and sort + // direction combinations. You can also set multiple sort keys and directions. + // Default direction is `desc`. Use the comma (,) character to separate + // multiple values. For example expression `sort = "name:asc,status"` + // sorts ascending by name and descending by status. + Sort *string `pulumi:"sort"` // Search for images with a specific tag. Tag *string `pulumi:"tag"` // A list of tags required to be set on the image @@ -139,12 +141,11 @@ type LookupImageResult struct { // the image or image Schema string `pulumi:"schema"` // The size of the image (in bytes). - SizeBytes int `pulumi:"sizeBytes"` - SizeMax *int `pulumi:"sizeMax"` - SizeMin *int `pulumi:"sizeMin"` - SortDirection *string `pulumi:"sortDirection"` - SortKey *string `pulumi:"sortKey"` - Tag *string `pulumi:"tag"` + SizeBytes int `pulumi:"sizeBytes"` + SizeMax *int `pulumi:"sizeMax"` + SizeMin *int `pulumi:"sizeMin"` + Sort *string `pulumi:"sort"` + Tag *string `pulumi:"tag"` // The tags list of the image. Tags []string `pulumi:"tags"` // The date the image was last updated. @@ -200,10 +201,12 @@ type LookupImageOutputArgs struct { SizeMax pulumi.IntPtrInput `pulumi:"sizeMax"` // The minimum size (in bytes) of the image to return. SizeMin pulumi.IntPtrInput `pulumi:"sizeMin"` - // Order the results in either `asc` or `desc`. - SortDirection pulumi.StringPtrInput `pulumi:"sortDirection"` - // Sort images based on a certain key. Defaults to `name`. - SortKey pulumi.StringPtrInput `pulumi:"sortKey"` + // Sorts the response by one or more attribute and sort + // direction combinations. You can also set multiple sort keys and directions. + // Default direction is `desc`. Use the comma (,) character to separate + // multiple values. For example expression `sort = "name:asc,status"` + // sorts ascending by name and descending by status. + Sort pulumi.StringPtrInput `pulumi:"sort"` // Search for images with a specific tag. Tag pulumi.StringPtrInput `pulumi:"tag"` // A list of tags required to be set on the image @@ -338,12 +341,8 @@ func (o LookupImageResultOutput) SizeMin() pulumi.IntPtrOutput { return o.ApplyT(func(v LookupImageResult) *int { return v.SizeMin }).(pulumi.IntPtrOutput) } -func (o LookupImageResultOutput) SortDirection() pulumi.StringPtrOutput { - return o.ApplyT(func(v LookupImageResult) *string { return v.SortDirection }).(pulumi.StringPtrOutput) -} - -func (o LookupImageResultOutput) SortKey() pulumi.StringPtrOutput { - return o.ApplyT(func(v LookupImageResult) *string { return v.SortKey }).(pulumi.StringPtrOutput) +func (o LookupImageResultOutput) Sort() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupImageResult) *string { return v.Sort }).(pulumi.StringPtrOutput) } func (o LookupImageResultOutput) Tag() pulumi.StringPtrOutput { diff --git a/sdk/go/openstack/images/getImageIds.go b/sdk/go/openstack/images/getImageIds.go index f8fd91b23..314457927 100644 --- a/sdk/go/openstack/images/getImageIds.go +++ b/sdk/go/openstack/images/getImageIds.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -21,7 +21,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/images" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/images" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -85,21 +85,8 @@ type GetImageIdsArgs struct { // direction combinations. You can also set multiple sort keys and directions. // Default direction is `desc`. Use the comma (,) character to separate // multiple values. For example expression `sort = "name:asc,status"` - // sorts ascending by name and descending by status. `sort` cannot be used - // simultaneously with `sortKey`. If both are present in a configuration - // then only `sort` will be used. + // sorts ascending by name and descending by status. Sort *string `pulumi:"sort"` - // Order the results in either `asc` or `desc`. - // Can be applied only with `sortKey`. Defaults to `asc` - // - // Deprecated: Use option 'sort' instead. - SortDirection *string `pulumi:"sortDirection"` - // Sort images based on a certain key. Defaults to - // `name`. `sortKey` cannot be used simultaneously with `sort`. If both - // are present in a configuration then only `sort` will be used. - // - // Deprecated: Use option 'sort' instead. - SortKey *string `pulumi:"sortKey"` // Search for images with a specific tag. Tag *string `pulumi:"tag"` // A list of tags required to be set on the image @@ -124,13 +111,9 @@ type GetImageIdsResult struct { SizeMax *int `pulumi:"sizeMax"` SizeMin *int `pulumi:"sizeMin"` Sort *string `pulumi:"sort"` - // Deprecated: Use option 'sort' instead. - SortDirection *string `pulumi:"sortDirection"` - // Deprecated: Use option 'sort' instead. - SortKey *string `pulumi:"sortKey"` - Tag *string `pulumi:"tag"` - Tags []string `pulumi:"tags"` - Visibility *string `pulumi:"visibility"` + Tag *string `pulumi:"tag"` + Tags []string `pulumi:"tags"` + Visibility *string `pulumi:"visibility"` } func GetImageIdsOutput(ctx *pulumi.Context, args GetImageIdsOutputArgs, opts ...pulumi.InvokeOption) GetImageIdsResultOutput { @@ -178,21 +161,8 @@ type GetImageIdsOutputArgs struct { // direction combinations. You can also set multiple sort keys and directions. // Default direction is `desc`. Use the comma (,) character to separate // multiple values. For example expression `sort = "name:asc,status"` - // sorts ascending by name and descending by status. `sort` cannot be used - // simultaneously with `sortKey`. If both are present in a configuration - // then only `sort` will be used. + // sorts ascending by name and descending by status. Sort pulumi.StringPtrInput `pulumi:"sort"` - // Order the results in either `asc` or `desc`. - // Can be applied only with `sortKey`. Defaults to `asc` - // - // Deprecated: Use option 'sort' instead. - SortDirection pulumi.StringPtrInput `pulumi:"sortDirection"` - // Sort images based on a certain key. Defaults to - // `name`. `sortKey` cannot be used simultaneously with `sort`. If both - // are present in a configuration then only `sort` will be used. - // - // Deprecated: Use option 'sort' instead. - SortKey pulumi.StringPtrInput `pulumi:"sortKey"` // Search for images with a specific tag. Tag pulumi.StringPtrInput `pulumi:"tag"` // A list of tags required to be set on the image @@ -267,16 +237,6 @@ func (o GetImageIdsResultOutput) Sort() pulumi.StringPtrOutput { return o.ApplyT(func(v GetImageIdsResult) *string { return v.Sort }).(pulumi.StringPtrOutput) } -// Deprecated: Use option 'sort' instead. -func (o GetImageIdsResultOutput) SortDirection() pulumi.StringPtrOutput { - return o.ApplyT(func(v GetImageIdsResult) *string { return v.SortDirection }).(pulumi.StringPtrOutput) -} - -// Deprecated: Use option 'sort' instead. -func (o GetImageIdsResultOutput) SortKey() pulumi.StringPtrOutput { - return o.ApplyT(func(v GetImageIdsResult) *string { return v.SortKey }).(pulumi.StringPtrOutput) -} - func (o GetImageIdsResultOutput) Tag() pulumi.StringPtrOutput { return o.ApplyT(func(v GetImageIdsResult) *string { return v.Tag }).(pulumi.StringPtrOutput) } diff --git a/sdk/go/openstack/images/image.go b/sdk/go/openstack/images/image.go index 8e26832d8..e56b01a93 100644 --- a/sdk/go/openstack/images/image.go +++ b/sdk/go/openstack/images/image.go @@ -8,7 +8,7 @@ import ( "reflect" "errors" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -25,7 +25,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/images" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/images" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -152,10 +152,6 @@ type Image struct { // The tags of the image. It must be a list of strings. // At this time, it is not possible to delete all tags of an image. Tags pulumi.StringArrayOutput `pulumi:"tags"` - // (**Deprecated** - use `updatedAt` instead) - // - // Deprecated: Use updatedAt instead - UpdateAt pulumi.StringOutput `pulumi:"updateAt"` // The date the image was last updated. UpdatedAt pulumi.StringOutput `pulumi:"updatedAt"` // If false, the checksum will not be verified @@ -291,10 +287,6 @@ type imageState struct { // The tags of the image. It must be a list of strings. // At this time, it is not possible to delete all tags of an image. Tags []string `pulumi:"tags"` - // (**Deprecated** - use `updatedAt` instead) - // - // Deprecated: Use updatedAt instead - UpdateAt *string `pulumi:"updateAt"` // The date the image was last updated. UpdatedAt *string `pulumi:"updatedAt"` // If false, the checksum will not be verified @@ -388,10 +380,6 @@ type ImageState struct { // The tags of the image. It must be a list of strings. // At this time, it is not possible to delete all tags of an image. Tags pulumi.StringArrayInput - // (**Deprecated** - use `updatedAt` instead) - // - // Deprecated: Use updatedAt instead - UpdateAt pulumi.StringPtrInput // The date the image was last updated. UpdatedAt pulumi.StringPtrInput // If false, the checksum will not be verified @@ -789,13 +777,6 @@ func (o ImageOutput) Tags() pulumi.StringArrayOutput { return o.ApplyT(func(v *Image) pulumi.StringArrayOutput { return v.Tags }).(pulumi.StringArrayOutput) } -// (**Deprecated** - use `updatedAt` instead) -// -// Deprecated: Use updatedAt instead -func (o ImageOutput) UpdateAt() pulumi.StringOutput { - return o.ApplyT(func(v *Image) pulumi.StringOutput { return v.UpdateAt }).(pulumi.StringOutput) -} - // The date the image was last updated. func (o ImageOutput) UpdatedAt() pulumi.StringOutput { return o.ApplyT(func(v *Image) pulumi.StringOutput { return v.UpdatedAt }).(pulumi.StringOutput) diff --git a/sdk/go/openstack/images/imageAccess.go b/sdk/go/openstack/images/imageAccess.go index c89a1d86e..dfae1da27 100644 --- a/sdk/go/openstack/images/imageAccess.go +++ b/sdk/go/openstack/images/imageAccess.go @@ -8,7 +8,7 @@ import ( "reflect" "errors" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -27,7 +27,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/images" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/images" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -70,7 +70,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/images" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/images" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/images/imageAccessAccept.go b/sdk/go/openstack/images/imageAccessAccept.go index b1ea99fb4..54a238ea5 100644 --- a/sdk/go/openstack/images/imageAccessAccept.go +++ b/sdk/go/openstack/images/imageAccessAccept.go @@ -8,7 +8,7 @@ import ( "reflect" "errors" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -24,7 +24,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/images" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/images" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/images/init.go b/sdk/go/openstack/images/init.go index 087d738b0..85b22700b 100644 --- a/sdk/go/openstack/images/init.go +++ b/sdk/go/openstack/images/init.go @@ -7,7 +7,7 @@ import ( "fmt" "github.com/blang/semver" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) diff --git a/sdk/go/openstack/init.go b/sdk/go/openstack/init.go index 8c14309d9..fd9a4fbfe 100644 --- a/sdk/go/openstack/init.go +++ b/sdk/go/openstack/init.go @@ -7,7 +7,7 @@ import ( "fmt" "github.com/blang/semver" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) diff --git a/sdk/go/openstack/internal/pulumiUtilities.go b/sdk/go/openstack/internal/pulumiUtilities.go index e5a7ad2dc..9155d8065 100644 --- a/sdk/go/openstack/internal/pulumiUtilities.go +++ b/sdk/go/openstack/internal/pulumiUtilities.go @@ -165,7 +165,7 @@ func callPlainInner( func PkgResourceDefaultOpts(opts []pulumi.ResourceOption) []pulumi.ResourceOption { defaults := []pulumi.ResourceOption{} - version := semver.MustParse("3.0.0-alpha.0+dev") + version := semver.MustParse("4.0.0-alpha.0+dev") if !version.Equals(semver.Version{}) { defaults = append(defaults, pulumi.Version(version.String())) } @@ -176,7 +176,7 @@ func PkgResourceDefaultOpts(opts []pulumi.ResourceOption) []pulumi.ResourceOptio func PkgInvokeDefaultOpts(opts []pulumi.InvokeOption) []pulumi.InvokeOption { defaults := []pulumi.InvokeOption{} - version := semver.MustParse("3.0.0-alpha.0+dev") + version := semver.MustParse("4.0.0-alpha.0+dev") if !version.Equals(semver.Version{}) { defaults = append(defaults, pulumi.Version(version.String())) } diff --git a/sdk/go/openstack/keymanager/containerV1.go b/sdk/go/openstack/keymanager/containerV1.go index e21961a32..ed2b8453d 100644 --- a/sdk/go/openstack/keymanager/containerV1.go +++ b/sdk/go/openstack/keymanager/containerV1.go @@ -8,7 +8,7 @@ import ( "reflect" "errors" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -25,9 +25,9 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/keymanager" -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/loadbalancer" -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/keymanager" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/loadbalancer" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking" // "github.com/pulumi/pulumi-std/sdk/go/std" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // @@ -139,7 +139,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/keymanager" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/keymanager" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/keymanager/getContainer.go b/sdk/go/openstack/keymanager/getContainer.go index 69b2732cb..6895379a2 100644 --- a/sdk/go/openstack/keymanager/getContainer.go +++ b/sdk/go/openstack/keymanager/getContainer.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -20,7 +20,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/keymanager" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/keymanager" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/keymanager/getSecret.go b/sdk/go/openstack/keymanager/getSecret.go index 6180f2bbe..76cb71443 100644 --- a/sdk/go/openstack/keymanager/getSecret.go +++ b/sdk/go/openstack/keymanager/getSecret.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -18,7 +18,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/keymanager" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/keymanager" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -54,7 +54,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/keymanager" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/keymanager" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/keymanager/init.go b/sdk/go/openstack/keymanager/init.go index dc3f232ae..bbcdac524 100644 --- a/sdk/go/openstack/keymanager/init.go +++ b/sdk/go/openstack/keymanager/init.go @@ -7,7 +7,7 @@ import ( "fmt" "github.com/blang/semver" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) diff --git a/sdk/go/openstack/keymanager/orderV1.go b/sdk/go/openstack/keymanager/orderV1.go index d1e05c9e4..02df40b3b 100644 --- a/sdk/go/openstack/keymanager/orderV1.go +++ b/sdk/go/openstack/keymanager/orderV1.go @@ -8,7 +8,7 @@ import ( "reflect" "errors" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -23,7 +23,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/keymanager" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/keymanager" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -55,7 +55,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/keymanager" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/keymanager" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/keymanager/pulumiTypes.go b/sdk/go/openstack/keymanager/pulumiTypes.go index 01e547136..abca5d3a9 100644 --- a/sdk/go/openstack/keymanager/pulumiTypes.go +++ b/sdk/go/openstack/keymanager/pulumiTypes.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) diff --git a/sdk/go/openstack/keymanager/secretV1.go b/sdk/go/openstack/keymanager/secretV1.go index 8d00580ee..edae98ed3 100644 --- a/sdk/go/openstack/keymanager/secretV1.go +++ b/sdk/go/openstack/keymanager/secretV1.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -20,7 +20,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/keymanager" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/keymanager" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -61,7 +61,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/keymanager" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/keymanager" // "github.com/pulumi/pulumi-std/sdk/go/std" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // @@ -100,7 +100,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/keymanager" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/keymanager" // "github.com/pulumi/pulumi-std/sdk/go/std" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // diff --git a/sdk/go/openstack/loadbalancer/getFlavorV2.go b/sdk/go/openstack/loadbalancer/getFlavorV2.go new file mode 100644 index 000000000..9742ebcaf --- /dev/null +++ b/sdk/go/openstack/loadbalancer/getFlavorV2.go @@ -0,0 +1,113 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package loadbalancer + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +func GetFlavorV2(ctx *pulumi.Context, args *GetFlavorV2Args, opts ...pulumi.InvokeOption) (*GetFlavorV2Result, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv GetFlavorV2Result + err := ctx.Invoke("openstack:loadbalancer/getFlavorV2:getFlavorV2", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking getFlavorV2. +type GetFlavorV2Args struct { + FlavorId *string `pulumi:"flavorId"` + Name *string `pulumi:"name"` + Region *string `pulumi:"region"` +} + +// A collection of values returned by getFlavorV2. +type GetFlavorV2Result struct { + Description string `pulumi:"description"` + Enabled bool `pulumi:"enabled"` + FlavorId string `pulumi:"flavorId"` + FlavorProfileId string `pulumi:"flavorProfileId"` + // The provider-assigned unique ID for this managed resource. + Id string `pulumi:"id"` + Name string `pulumi:"name"` + Region *string `pulumi:"region"` +} + +func GetFlavorV2Output(ctx *pulumi.Context, args GetFlavorV2OutputArgs, opts ...pulumi.InvokeOption) GetFlavorV2ResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (GetFlavorV2Result, error) { + args := v.(GetFlavorV2Args) + r, err := GetFlavorV2(ctx, &args, opts...) + var s GetFlavorV2Result + if r != nil { + s = *r + } + return s, err + }).(GetFlavorV2ResultOutput) +} + +// A collection of arguments for invoking getFlavorV2. +type GetFlavorV2OutputArgs struct { + FlavorId pulumi.StringPtrInput `pulumi:"flavorId"` + Name pulumi.StringPtrInput `pulumi:"name"` + Region pulumi.StringPtrInput `pulumi:"region"` +} + +func (GetFlavorV2OutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetFlavorV2Args)(nil)).Elem() +} + +// A collection of values returned by getFlavorV2. +type GetFlavorV2ResultOutput struct{ *pulumi.OutputState } + +func (GetFlavorV2ResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetFlavorV2Result)(nil)).Elem() +} + +func (o GetFlavorV2ResultOutput) ToGetFlavorV2ResultOutput() GetFlavorV2ResultOutput { + return o +} + +func (o GetFlavorV2ResultOutput) ToGetFlavorV2ResultOutputWithContext(ctx context.Context) GetFlavorV2ResultOutput { + return o +} + +func (o GetFlavorV2ResultOutput) Description() pulumi.StringOutput { + return o.ApplyT(func(v GetFlavorV2Result) string { return v.Description }).(pulumi.StringOutput) +} + +func (o GetFlavorV2ResultOutput) Enabled() pulumi.BoolOutput { + return o.ApplyT(func(v GetFlavorV2Result) bool { return v.Enabled }).(pulumi.BoolOutput) +} + +func (o GetFlavorV2ResultOutput) FlavorId() pulumi.StringOutput { + return o.ApplyT(func(v GetFlavorV2Result) string { return v.FlavorId }).(pulumi.StringOutput) +} + +func (o GetFlavorV2ResultOutput) FlavorProfileId() pulumi.StringOutput { + return o.ApplyT(func(v GetFlavorV2Result) string { return v.FlavorProfileId }).(pulumi.StringOutput) +} + +// The provider-assigned unique ID for this managed resource. +func (o GetFlavorV2ResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v GetFlavorV2Result) string { return v.Id }).(pulumi.StringOutput) +} + +func (o GetFlavorV2ResultOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v GetFlavorV2Result) string { return v.Name }).(pulumi.StringOutput) +} + +func (o GetFlavorV2ResultOutput) Region() pulumi.StringPtrOutput { + return o.ApplyT(func(v GetFlavorV2Result) *string { return v.Region }).(pulumi.StringPtrOutput) +} + +func init() { + pulumi.RegisterOutputType(GetFlavorV2ResultOutput{}) +} diff --git a/sdk/go/openstack/loadbalancer/init.go b/sdk/go/openstack/loadbalancer/init.go index a3483d29d..b4ce4b84f 100644 --- a/sdk/go/openstack/loadbalancer/init.go +++ b/sdk/go/openstack/loadbalancer/init.go @@ -7,7 +7,7 @@ import ( "fmt" "github.com/blang/semver" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) diff --git a/sdk/go/openstack/loadbalancer/l7policyV2.go b/sdk/go/openstack/loadbalancer/l7policyV2.go index 3c6387ada..832bcce5c 100644 --- a/sdk/go/openstack/loadbalancer/l7policyV2.go +++ b/sdk/go/openstack/loadbalancer/l7policyV2.go @@ -8,7 +8,7 @@ import ( "reflect" "errors" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -21,8 +21,8 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/loadbalancer" -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/loadbalancer" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/loadbalancer/l7ruleV2.go b/sdk/go/openstack/loadbalancer/l7ruleV2.go index e8a752c6a..402b12d5c 100644 --- a/sdk/go/openstack/loadbalancer/l7ruleV2.go +++ b/sdk/go/openstack/loadbalancer/l7ruleV2.go @@ -8,7 +8,7 @@ import ( "reflect" "errors" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -21,8 +21,8 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/loadbalancer" -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/loadbalancer" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/loadbalancer/listener.go b/sdk/go/openstack/loadbalancer/listener.go index 79d4637ff..3a8084404 100644 --- a/sdk/go/openstack/loadbalancer/listener.go +++ b/sdk/go/openstack/loadbalancer/listener.go @@ -8,7 +8,7 @@ import ( "reflect" "errors" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -24,7 +24,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/loadbalancer" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/loadbalancer" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -89,8 +89,8 @@ type Listener struct { // to be unique. Name pulumi.StringOutput `pulumi:"name"` // The protocol - can either be TCP, HTTP, HTTPS, - // TERMINATED_HTTPS, UDP (supported only in Octavia), SCTP (supported only - // in **Octavia minor version >= 2.23**) or PROMETHEUS (supported only in + // TERMINATED_HTTPS, UDP, SCTP (supported only in + // **Octavia minor version >= 2.23**) or PROMETHEUS (supported only in // **Octavia minor version >=2.25**). Changing this creates a new Listener. Protocol pulumi.StringOutput `pulumi:"protocol"` // The port on which to listen for client traffic. @@ -192,8 +192,8 @@ type listenerState struct { // to be unique. Name *string `pulumi:"name"` // The protocol - can either be TCP, HTTP, HTTPS, - // TERMINATED_HTTPS, UDP (supported only in Octavia), SCTP (supported only - // in **Octavia minor version >= 2.23**) or PROMETHEUS (supported only in + // TERMINATED_HTTPS, UDP, SCTP (supported only in + // **Octavia minor version >= 2.23**) or PROMETHEUS (supported only in // **Octavia minor version >=2.25**). Changing this creates a new Listener. Protocol *string `pulumi:"protocol"` // The port on which to listen for client traffic. @@ -257,8 +257,8 @@ type ListenerState struct { // to be unique. Name pulumi.StringPtrInput // The protocol - can either be TCP, HTTP, HTTPS, - // TERMINATED_HTTPS, UDP (supported only in Octavia), SCTP (supported only - // in **Octavia minor version >= 2.23**) or PROMETHEUS (supported only in + // TERMINATED_HTTPS, UDP, SCTP (supported only in + // **Octavia minor version >= 2.23**) or PROMETHEUS (supported only in // **Octavia minor version >=2.25**). Changing this creates a new Listener. Protocol pulumi.StringPtrInput // The port on which to listen for client traffic. @@ -326,8 +326,8 @@ type listenerArgs struct { // to be unique. Name *string `pulumi:"name"` // The protocol - can either be TCP, HTTP, HTTPS, - // TERMINATED_HTTPS, UDP (supported only in Octavia), SCTP (supported only - // in **Octavia minor version >= 2.23**) or PROMETHEUS (supported only in + // TERMINATED_HTTPS, UDP, SCTP (supported only in + // **Octavia minor version >= 2.23**) or PROMETHEUS (supported only in // **Octavia minor version >=2.25**). Changing this creates a new Listener. Protocol string `pulumi:"protocol"` // The port on which to listen for client traffic. @@ -392,8 +392,8 @@ type ListenerArgs struct { // to be unique. Name pulumi.StringPtrInput // The protocol - can either be TCP, HTTP, HTTPS, - // TERMINATED_HTTPS, UDP (supported only in Octavia), SCTP (supported only - // in **Octavia minor version >= 2.23**) or PROMETHEUS (supported only in + // TERMINATED_HTTPS, UDP, SCTP (supported only in + // **Octavia minor version >= 2.23**) or PROMETHEUS (supported only in // **Octavia minor version >=2.25**). Changing this creates a new Listener. Protocol pulumi.StringInput // The port on which to listen for client traffic. @@ -570,8 +570,8 @@ func (o ListenerOutput) Name() pulumi.StringOutput { } // The protocol - can either be TCP, HTTP, HTTPS, -// TERMINATED_HTTPS, UDP (supported only in Octavia), SCTP (supported only -// in **Octavia minor version >= 2.23**) or PROMETHEUS (supported only in +// TERMINATED_HTTPS, UDP, SCTP (supported only in +// **Octavia minor version >= 2.23**) or PROMETHEUS (supported only in // **Octavia minor version >=2.25**). Changing this creates a new Listener. func (o ListenerOutput) Protocol() pulumi.StringOutput { return o.ApplyT(func(v *Listener) pulumi.StringOutput { return v.Protocol }).(pulumi.StringOutput) diff --git a/sdk/go/openstack/loadbalancer/loadBalancer.go b/sdk/go/openstack/loadbalancer/loadBalancer.go index 7c3c268c8..f4d6fcc3e 100644 --- a/sdk/go/openstack/loadbalancer/loadBalancer.go +++ b/sdk/go/openstack/loadbalancer/loadBalancer.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -23,7 +23,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/loadbalancer" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/loadbalancer" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/loadbalancer/member.go b/sdk/go/openstack/loadbalancer/member.go index 062550943..9041ac091 100644 --- a/sdk/go/openstack/loadbalancer/member.go +++ b/sdk/go/openstack/loadbalancer/member.go @@ -8,7 +8,7 @@ import ( "reflect" "errors" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -21,7 +21,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/loadbalancer" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/loadbalancer" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/loadbalancer/memberV1.go b/sdk/go/openstack/loadbalancer/memberV1.go index 3b0182558..7c2fbe13e 100644 --- a/sdk/go/openstack/loadbalancer/memberV1.go +++ b/sdk/go/openstack/loadbalancer/memberV1.go @@ -8,7 +8,7 @@ import ( "reflect" "errors" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -21,7 +21,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/loadbalancer" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/loadbalancer" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/loadbalancer/members.go b/sdk/go/openstack/loadbalancer/members.go index ef818ca6d..a1ca5992c 100644 --- a/sdk/go/openstack/loadbalancer/members.go +++ b/sdk/go/openstack/loadbalancer/members.go @@ -8,7 +8,7 @@ import ( "reflect" "errors" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -17,10 +17,6 @@ import ( // > **Note:** This resource has attributes that depend on octavia minor versions. // Please ensure your Openstack cloud supports the required minor version. // -// > **Note:** This resource works only within Octavia API. For -// legacy Neutron LBaaS v2 extension please use -// loadbalancer.Member resource. -// // ## Example Usage // // ```go @@ -28,7 +24,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/loadbalancer" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/loadbalancer" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/loadbalancer/monitor.go b/sdk/go/openstack/loadbalancer/monitor.go index 85fa6c8c1..74c38717b 100644 --- a/sdk/go/openstack/loadbalancer/monitor.go +++ b/sdk/go/openstack/loadbalancer/monitor.go @@ -8,7 +8,7 @@ import ( "reflect" "errors" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -21,7 +21,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/loadbalancer" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/loadbalancer" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/loadbalancer/monitorV1.go b/sdk/go/openstack/loadbalancer/monitorV1.go index 8822c0236..be58f1a5e 100644 --- a/sdk/go/openstack/loadbalancer/monitorV1.go +++ b/sdk/go/openstack/loadbalancer/monitorV1.go @@ -8,7 +8,7 @@ import ( "reflect" "errors" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -21,7 +21,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/loadbalancer" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/loadbalancer" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/loadbalancer/pool.go b/sdk/go/openstack/loadbalancer/pool.go index c553eb952..495e68991 100644 --- a/sdk/go/openstack/loadbalancer/pool.go +++ b/sdk/go/openstack/loadbalancer/pool.go @@ -8,7 +8,7 @@ import ( "reflect" "errors" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -24,7 +24,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/loadbalancer" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/loadbalancer" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -66,8 +66,7 @@ type Pool struct { Description pulumi.StringPtrOutput `pulumi:"description"` // The load balancing algorithm to // distribute traffic to the pool's members. Must be one of - // ROUND_ROBIN, LEAST_CONNECTIONS, SOURCE_IP, or SOURCE_IP_PORT (supported only - // in Octavia). + // ROUND_ROBIN, LEAST_CONNECTIONS, SOURCE_IP, or SOURCE_IP_PORT. LbMethod pulumi.StringOutput `pulumi:"lbMethod"` // The Listener on which the members of the pool // will be associated with. Changing this creates a new pool. @@ -84,8 +83,8 @@ type Pool struct { // member or not. Changing this creates a new pool. Persistence PoolPersistenceOutput `pulumi:"persistence"` // The protocol - can either be TCP, HTTP, HTTPS, PROXY, - // UDP (supported only in Octavia), PROXYV2 (**Octavia minor version >= 2.22**) - // or SCTP (**Octavia minor version >= 2.23**). Changing this creates a new pool. + // UDP, PROXYV2 (**Octavia minor version >= 2.22**) or SCTP + // (**Octavia minor version >= 2.23**). Changing this creates a new pool. Protocol pulumi.StringOutput `pulumi:"protocol"` // The region in which to obtain the V2 Networking client. // A Networking client is needed to create an . If omitted, the @@ -141,8 +140,7 @@ type poolState struct { Description *string `pulumi:"description"` // The load balancing algorithm to // distribute traffic to the pool's members. Must be one of - // ROUND_ROBIN, LEAST_CONNECTIONS, SOURCE_IP, or SOURCE_IP_PORT (supported only - // in Octavia). + // ROUND_ROBIN, LEAST_CONNECTIONS, SOURCE_IP, or SOURCE_IP_PORT. LbMethod *string `pulumi:"lbMethod"` // The Listener on which the members of the pool // will be associated with. Changing this creates a new pool. @@ -159,8 +157,8 @@ type poolState struct { // member or not. Changing this creates a new pool. Persistence *PoolPersistence `pulumi:"persistence"` // The protocol - can either be TCP, HTTP, HTTPS, PROXY, - // UDP (supported only in Octavia), PROXYV2 (**Octavia minor version >= 2.22**) - // or SCTP (**Octavia minor version >= 2.23**). Changing this creates a new pool. + // UDP, PROXYV2 (**Octavia minor version >= 2.22**) or SCTP + // (**Octavia minor version >= 2.23**). Changing this creates a new pool. Protocol *string `pulumi:"protocol"` // The region in which to obtain the V2 Networking client. // A Networking client is needed to create an . If omitted, the @@ -181,8 +179,7 @@ type PoolState struct { Description pulumi.StringPtrInput // The load balancing algorithm to // distribute traffic to the pool's members. Must be one of - // ROUND_ROBIN, LEAST_CONNECTIONS, SOURCE_IP, or SOURCE_IP_PORT (supported only - // in Octavia). + // ROUND_ROBIN, LEAST_CONNECTIONS, SOURCE_IP, or SOURCE_IP_PORT. LbMethod pulumi.StringPtrInput // The Listener on which the members of the pool // will be associated with. Changing this creates a new pool. @@ -199,8 +196,8 @@ type PoolState struct { // member or not. Changing this creates a new pool. Persistence PoolPersistencePtrInput // The protocol - can either be TCP, HTTP, HTTPS, PROXY, - // UDP (supported only in Octavia), PROXYV2 (**Octavia minor version >= 2.22**) - // or SCTP (**Octavia minor version >= 2.23**). Changing this creates a new pool. + // UDP, PROXYV2 (**Octavia minor version >= 2.22**) or SCTP + // (**Octavia minor version >= 2.23**). Changing this creates a new pool. Protocol pulumi.StringPtrInput // The region in which to obtain the V2 Networking client. // A Networking client is needed to create an . If omitted, the @@ -225,8 +222,7 @@ type poolArgs struct { Description *string `pulumi:"description"` // The load balancing algorithm to // distribute traffic to the pool's members. Must be one of - // ROUND_ROBIN, LEAST_CONNECTIONS, SOURCE_IP, or SOURCE_IP_PORT (supported only - // in Octavia). + // ROUND_ROBIN, LEAST_CONNECTIONS, SOURCE_IP, or SOURCE_IP_PORT. LbMethod string `pulumi:"lbMethod"` // The Listener on which the members of the pool // will be associated with. Changing this creates a new pool. @@ -243,8 +239,8 @@ type poolArgs struct { // member or not. Changing this creates a new pool. Persistence *PoolPersistence `pulumi:"persistence"` // The protocol - can either be TCP, HTTP, HTTPS, PROXY, - // UDP (supported only in Octavia), PROXYV2 (**Octavia minor version >= 2.22**) - // or SCTP (**Octavia minor version >= 2.23**). Changing this creates a new pool. + // UDP, PROXYV2 (**Octavia minor version >= 2.22**) or SCTP + // (**Octavia minor version >= 2.23**). Changing this creates a new pool. Protocol string `pulumi:"protocol"` // The region in which to obtain the V2 Networking client. // A Networking client is needed to create an . If omitted, the @@ -266,8 +262,7 @@ type PoolArgs struct { Description pulumi.StringPtrInput // The load balancing algorithm to // distribute traffic to the pool's members. Must be one of - // ROUND_ROBIN, LEAST_CONNECTIONS, SOURCE_IP, or SOURCE_IP_PORT (supported only - // in Octavia). + // ROUND_ROBIN, LEAST_CONNECTIONS, SOURCE_IP, or SOURCE_IP_PORT. LbMethod pulumi.StringInput // The Listener on which the members of the pool // will be associated with. Changing this creates a new pool. @@ -284,8 +279,8 @@ type PoolArgs struct { // member or not. Changing this creates a new pool. Persistence PoolPersistencePtrInput // The protocol - can either be TCP, HTTP, HTTPS, PROXY, - // UDP (supported only in Octavia), PROXYV2 (**Octavia minor version >= 2.22**) - // or SCTP (**Octavia minor version >= 2.23**). Changing this creates a new pool. + // UDP, PROXYV2 (**Octavia minor version >= 2.22**) or SCTP + // (**Octavia minor version >= 2.23**). Changing this creates a new pool. Protocol pulumi.StringInput // The region in which to obtain the V2 Networking client. // A Networking client is needed to create an . If omitted, the @@ -398,8 +393,7 @@ func (o PoolOutput) Description() pulumi.StringPtrOutput { // The load balancing algorithm to // distribute traffic to the pool's members. Must be one of -// ROUND_ROBIN, LEAST_CONNECTIONS, SOURCE_IP, or SOURCE_IP_PORT (supported only -// in Octavia). +// ROUND_ROBIN, LEAST_CONNECTIONS, SOURCE_IP, or SOURCE_IP_PORT. func (o PoolOutput) LbMethod() pulumi.StringOutput { return o.ApplyT(func(v *Pool) pulumi.StringOutput { return v.LbMethod }).(pulumi.StringOutput) } @@ -431,8 +425,8 @@ func (o PoolOutput) Persistence() PoolPersistenceOutput { } // The protocol - can either be TCP, HTTP, HTTPS, PROXY, -// UDP (supported only in Octavia), PROXYV2 (**Octavia minor version >= 2.22**) -// or SCTP (**Octavia minor version >= 2.23**). Changing this creates a new pool. +// UDP, PROXYV2 (**Octavia minor version >= 2.22**) or SCTP +// (**Octavia minor version >= 2.23**). Changing this creates a new pool. func (o PoolOutput) Protocol() pulumi.StringOutput { return o.ApplyT(func(v *Pool) pulumi.StringOutput { return v.Protocol }).(pulumi.StringOutput) } diff --git a/sdk/go/openstack/loadbalancer/poolV1.go b/sdk/go/openstack/loadbalancer/poolV1.go index 35980f66b..f52c286a6 100644 --- a/sdk/go/openstack/loadbalancer/poolV1.go +++ b/sdk/go/openstack/loadbalancer/poolV1.go @@ -8,7 +8,7 @@ import ( "reflect" "errors" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -21,7 +21,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/loadbalancer" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/loadbalancer" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -54,9 +54,9 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/compute" -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/loadbalancer" -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/compute" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/loadbalancer" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -183,10 +183,6 @@ import ( // // ``` // -// ## Notes -// -// The `member` block is deprecated in favor of the `loadbalancer.MemberV1` resource. -// // ## Import // // Load Balancer Pools can be imported using the `id`, e.g. @@ -204,13 +200,6 @@ type PoolV1 struct { // The backend load balancing provider. For example: // `haproxy`, `F5`, etc. LbProvider pulumi.StringOutput `pulumi:"lbProvider"` - // An existing node to add to the pool. Changing this - // updates the members of the pool. The member object structure is documented - // below. Please note that the `member` block is deprecated in favor of the - // `loadbalancer.MemberV1` resource. - // - // Deprecated: Use loadbalancer.MemberV1 instead - Members pulumi.StringArrayOutput `pulumi:"members"` // A list of IDs of monitors to associate with the // pool. MonitorIds pulumi.StringArrayOutput `pulumi:"monitorIds"` @@ -280,13 +269,6 @@ type poolV1State struct { // The backend load balancing provider. For example: // `haproxy`, `F5`, etc. LbProvider *string `pulumi:"lbProvider"` - // An existing node to add to the pool. Changing this - // updates the members of the pool. The member object structure is documented - // below. Please note that the `member` block is deprecated in favor of the - // `loadbalancer.MemberV1` resource. - // - // Deprecated: Use loadbalancer.MemberV1 instead - Members []string `pulumi:"members"` // A list of IDs of monitors to associate with the // pool. MonitorIds []string `pulumi:"monitorIds"` @@ -318,13 +300,6 @@ type PoolV1State struct { // The backend load balancing provider. For example: // `haproxy`, `F5`, etc. LbProvider pulumi.StringPtrInput - // An existing node to add to the pool. Changing this - // updates the members of the pool. The member object structure is documented - // below. Please note that the `member` block is deprecated in favor of the - // `loadbalancer.MemberV1` resource. - // - // Deprecated: Use loadbalancer.MemberV1 instead - Members pulumi.StringArrayInput // A list of IDs of monitors to associate with the // pool. MonitorIds pulumi.StringArrayInput @@ -360,13 +335,6 @@ type poolV1Args struct { // The backend load balancing provider. For example: // `haproxy`, `F5`, etc. LbProvider *string `pulumi:"lbProvider"` - // An existing node to add to the pool. Changing this - // updates the members of the pool. The member object structure is documented - // below. Please note that the `member` block is deprecated in favor of the - // `loadbalancer.MemberV1` resource. - // - // Deprecated: Use loadbalancer.MemberV1 instead - Members []string `pulumi:"members"` // A list of IDs of monitors to associate with the // pool. MonitorIds []string `pulumi:"monitorIds"` @@ -399,13 +367,6 @@ type PoolV1Args struct { // The backend load balancing provider. For example: // `haproxy`, `F5`, etc. LbProvider pulumi.StringPtrInput - // An existing node to add to the pool. Changing this - // updates the members of the pool. The member object structure is documented - // below. Please note that the `member` block is deprecated in favor of the - // `loadbalancer.MemberV1` resource. - // - // Deprecated: Use loadbalancer.MemberV1 instead - Members pulumi.StringArrayInput // A list of IDs of monitors to associate with the // pool. MonitorIds pulumi.StringArrayInput @@ -529,16 +490,6 @@ func (o PoolV1Output) LbProvider() pulumi.StringOutput { return o.ApplyT(func(v *PoolV1) pulumi.StringOutput { return v.LbProvider }).(pulumi.StringOutput) } -// An existing node to add to the pool. Changing this -// updates the members of the pool. The member object structure is documented -// below. Please note that the `member` block is deprecated in favor of the -// `loadbalancer.MemberV1` resource. -// -// Deprecated: Use loadbalancer.MemberV1 instead -func (o PoolV1Output) Members() pulumi.StringArrayOutput { - return o.ApplyT(func(v *PoolV1) pulumi.StringArrayOutput { return v.Members }).(pulumi.StringArrayOutput) -} - // A list of IDs of monitors to associate with the // pool. func (o PoolV1Output) MonitorIds() pulumi.StringArrayOutput { diff --git a/sdk/go/openstack/loadbalancer/pulumiTypes.go b/sdk/go/openstack/loadbalancer/pulumiTypes.go index 4ac5535df..afca39afd 100644 --- a/sdk/go/openstack/loadbalancer/pulumiTypes.go +++ b/sdk/go/openstack/loadbalancer/pulumiTypes.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) diff --git a/sdk/go/openstack/loadbalancer/quota.go b/sdk/go/openstack/loadbalancer/quota.go index adae5ee49..474b2a7d2 100644 --- a/sdk/go/openstack/loadbalancer/quota.go +++ b/sdk/go/openstack/loadbalancer/quota.go @@ -8,7 +8,7 @@ import ( "reflect" "errors" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -16,8 +16,6 @@ import ( // // > **Note:** This usually requires admin privileges. // -// > **Note:** This resource is only available for Octavia. -// // > **Note:** This resource has a no-op deletion so no actual actions will be done against the OpenStack // // API in case of delete call. @@ -36,8 +34,8 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/identity" -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/loadbalancer" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/identity" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/loadbalancer" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/loadbalancer/vip.go b/sdk/go/openstack/loadbalancer/vip.go index 7b9d438d5..ae544d54f 100644 --- a/sdk/go/openstack/loadbalancer/vip.go +++ b/sdk/go/openstack/loadbalancer/vip.go @@ -8,7 +8,7 @@ import ( "reflect" "errors" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -21,7 +21,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/loadbalancer" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/loadbalancer" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/networking/addressScope.go b/sdk/go/openstack/networking/addressScope.go index d8b1258d2..b527d7d68 100644 --- a/sdk/go/openstack/networking/addressScope.go +++ b/sdk/go/openstack/networking/addressScope.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -22,7 +22,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -49,7 +49,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/networking/floatingIp.go b/sdk/go/openstack/networking/floatingIp.go index 2ceb7b41a..598b84bdb 100644 --- a/sdk/go/openstack/networking/floatingIp.go +++ b/sdk/go/openstack/networking/floatingIp.go @@ -8,7 +8,7 @@ import ( "reflect" "errors" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) diff --git a/sdk/go/openstack/networking/floatingIpAssociate.go b/sdk/go/openstack/networking/floatingIpAssociate.go index b8d0a195c..542efe333 100644 --- a/sdk/go/openstack/networking/floatingIpAssociate.go +++ b/sdk/go/openstack/networking/floatingIpAssociate.go @@ -8,7 +8,7 @@ import ( "reflect" "errors" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -23,7 +23,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/networking/getAddressScope.go b/sdk/go/openstack/networking/getAddressScope.go index 072fba112..bfeb1c57c 100644 --- a/sdk/go/openstack/networking/getAddressScope.go +++ b/sdk/go/openstack/networking/getAddressScope.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -20,7 +20,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/networking/getFloatingIp.go b/sdk/go/openstack/networking/getFloatingIp.go index 31f7de208..9f4066e6d 100644 --- a/sdk/go/openstack/networking/getFloatingIp.go +++ b/sdk/go/openstack/networking/getFloatingIp.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -20,7 +20,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -56,7 +56,7 @@ type LookupFloatingIpArgs struct { Description *string `pulumi:"description"` // The specific IP address of the internal port which should be associated with the floating IP. FixedIp *string `pulumi:"fixedIp"` - // The name of the pool from which the floating IP belongs to. + // The ID of the network from which the floating IP belongs to. Pool *string `pulumi:"pool"` // The ID of the port the floating IP is attached. PortId *string `pulumi:"portId"` @@ -116,7 +116,7 @@ type LookupFloatingIpOutputArgs struct { Description pulumi.StringPtrInput `pulumi:"description"` // The specific IP address of the internal port which should be associated with the floating IP. FixedIp pulumi.StringPtrInput `pulumi:"fixedIp"` - // The name of the pool from which the floating IP belongs to. + // The ID of the network from which the floating IP belongs to. Pool pulumi.StringPtrInput `pulumi:"pool"` // The ID of the port the floating IP is attached. PortId pulumi.StringPtrInput `pulumi:"portId"` diff --git a/sdk/go/openstack/networking/getNetwork.go b/sdk/go/openstack/networking/getNetwork.go index bca0a77ab..d9e28beff 100644 --- a/sdk/go/openstack/networking/getNetwork.go +++ b/sdk/go/openstack/networking/getNetwork.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -20,7 +20,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/networking/getPort.go b/sdk/go/openstack/networking/getPort.go index c4309a94d..602a9b573 100644 --- a/sdk/go/openstack/networking/getPort.go +++ b/sdk/go/openstack/networking/getPort.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -20,7 +20,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/networking/getPortIds.go b/sdk/go/openstack/networking/getPortIds.go index 5e7e8fc98..ce899dd9b 100644 --- a/sdk/go/openstack/networking/getPortIds.go +++ b/sdk/go/openstack/networking/getPortIds.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -21,7 +21,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/networking/getQosBandwidthLimitRule.go b/sdk/go/openstack/networking/getQosBandwidthLimitRule.go index f7622a31b..5c6c3e7dd 100644 --- a/sdk/go/openstack/networking/getQosBandwidthLimitRule.go +++ b/sdk/go/openstack/networking/getQosBandwidthLimitRule.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -20,7 +20,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/networking/getQosDscpMarkingRule.go b/sdk/go/openstack/networking/getQosDscpMarkingRule.go index 3ae53be0b..0e3cb9ead 100644 --- a/sdk/go/openstack/networking/getQosDscpMarkingRule.go +++ b/sdk/go/openstack/networking/getQosDscpMarkingRule.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -20,7 +20,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/networking/getQosMinimumBandwidthRule.go b/sdk/go/openstack/networking/getQosMinimumBandwidthRule.go index 5f9bfbd68..2d4f78be7 100644 --- a/sdk/go/openstack/networking/getQosMinimumBandwidthRule.go +++ b/sdk/go/openstack/networking/getQosMinimumBandwidthRule.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -20,7 +20,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/networking/getQosPolicy.go b/sdk/go/openstack/networking/getQosPolicy.go index e8dbc5c5f..520cba519 100644 --- a/sdk/go/openstack/networking/getQosPolicy.go +++ b/sdk/go/openstack/networking/getQosPolicy.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -20,7 +20,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/networking/getQuotaV2.go b/sdk/go/openstack/networking/getQuotaV2.go index 9749fc849..336820d33 100644 --- a/sdk/go/openstack/networking/getQuotaV2.go +++ b/sdk/go/openstack/networking/getQuotaV2.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -20,7 +20,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/networking/getRouter.go b/sdk/go/openstack/networking/getRouter.go index 3f061a2bb..da97b57fc 100644 --- a/sdk/go/openstack/networking/getRouter.go +++ b/sdk/go/openstack/networking/getRouter.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -20,7 +20,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/networking/getSecGroup.go b/sdk/go/openstack/networking/getSecGroup.go index 5eda92073..adf886766 100644 --- a/sdk/go/openstack/networking/getSecGroup.go +++ b/sdk/go/openstack/networking/getSecGroup.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -20,7 +20,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/networking/getSubnet.go b/sdk/go/openstack/networking/getSubnet.go index 15d38afc3..e02914fe8 100644 --- a/sdk/go/openstack/networking/getSubnet.go +++ b/sdk/go/openstack/networking/getSubnet.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -20,7 +20,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -54,8 +54,6 @@ type LookupSubnetArgs struct { Cidr *string `pulumi:"cidr"` // Human-readable description of the subnet. Description *string `pulumi:"description"` - // Deprecated: use dhcpEnabled instead - DhcpDisabled *bool `pulumi:"dhcpDisabled"` // If the subnet has DHCP enabled. DhcpEnabled *bool `pulumi:"dhcpEnabled"` // The IP of the subnet's gateway. @@ -94,9 +92,7 @@ type LookupSubnetResult struct { AllocationPools []GetSubnetAllocationPool `pulumi:"allocationPools"` Cidr string `pulumi:"cidr"` Description string `pulumi:"description"` - // Deprecated: use dhcpEnabled instead - DhcpDisabled *bool `pulumi:"dhcpDisabled"` - DhcpEnabled *bool `pulumi:"dhcpEnabled"` + DhcpEnabled *bool `pulumi:"dhcpEnabled"` // DNS Nameservers of the subnet. DnsNameservers []string `pulumi:"dnsNameservers"` // Whether the subnet has DHCP enabled or not. @@ -140,8 +136,6 @@ type LookupSubnetOutputArgs struct { Cidr pulumi.StringPtrInput `pulumi:"cidr"` // Human-readable description of the subnet. Description pulumi.StringPtrInput `pulumi:"description"` - // Deprecated: use dhcpEnabled instead - DhcpDisabled pulumi.BoolPtrInput `pulumi:"dhcpDisabled"` // If the subnet has DHCP enabled. DhcpEnabled pulumi.BoolPtrInput `pulumi:"dhcpEnabled"` // The IP of the subnet's gateway. @@ -209,11 +203,6 @@ func (o LookupSubnetResultOutput) Description() pulumi.StringOutput { return o.ApplyT(func(v LookupSubnetResult) string { return v.Description }).(pulumi.StringOutput) } -// Deprecated: use dhcpEnabled instead -func (o LookupSubnetResultOutput) DhcpDisabled() pulumi.BoolPtrOutput { - return o.ApplyT(func(v LookupSubnetResult) *bool { return v.DhcpDisabled }).(pulumi.BoolPtrOutput) -} - func (o LookupSubnetResultOutput) DhcpEnabled() pulumi.BoolPtrOutput { return o.ApplyT(func(v LookupSubnetResult) *bool { return v.DhcpEnabled }).(pulumi.BoolPtrOutput) } diff --git a/sdk/go/openstack/networking/getSubnetIdsV2.go b/sdk/go/openstack/networking/getSubnetIdsV2.go index b85b8c5a2..03ba445af 100644 --- a/sdk/go/openstack/networking/getSubnetIdsV2.go +++ b/sdk/go/openstack/networking/getSubnetIdsV2.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -21,7 +21,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/networking/getSubnetPool.go b/sdk/go/openstack/networking/getSubnetPool.go index 1944f740f..24f55c168 100644 --- a/sdk/go/openstack/networking/getSubnetPool.go +++ b/sdk/go/openstack/networking/getSubnetPool.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -20,7 +20,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/networking/getTrunk.go b/sdk/go/openstack/networking/getTrunk.go index 42ae9ec7b..46bb00792 100644 --- a/sdk/go/openstack/networking/getTrunk.go +++ b/sdk/go/openstack/networking/getTrunk.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -20,7 +20,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/networking/init.go b/sdk/go/openstack/networking/init.go index 60a689c2d..e6b30e25b 100644 --- a/sdk/go/openstack/networking/init.go +++ b/sdk/go/openstack/networking/init.go @@ -7,7 +7,7 @@ import ( "fmt" "github.com/blang/semver" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) diff --git a/sdk/go/openstack/networking/network.go b/sdk/go/openstack/networking/network.go index 14237726c..dc3af260f 100644 --- a/sdk/go/openstack/networking/network.go +++ b/sdk/go/openstack/networking/network.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -20,8 +20,8 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/compute" -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/compute" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/networking/port.go b/sdk/go/openstack/networking/port.go index c65f1d540..4bf7e08bf 100644 --- a/sdk/go/openstack/networking/port.go +++ b/sdk/go/openstack/networking/port.go @@ -8,7 +8,7 @@ import ( "reflect" "errors" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -29,7 +29,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -64,7 +64,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -112,7 +112,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/networking/portForwardingV2.go b/sdk/go/openstack/networking/portForwardingV2.go index 07413325d..a14f57337 100644 --- a/sdk/go/openstack/networking/portForwardingV2.go +++ b/sdk/go/openstack/networking/portForwardingV2.go @@ -8,7 +8,7 @@ import ( "reflect" "errors" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -23,7 +23,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/networking/portSecGroupAssociate.go b/sdk/go/openstack/networking/portSecGroupAssociate.go index f269e1ae6..45f47ad05 100644 --- a/sdk/go/openstack/networking/portSecGroupAssociate.go +++ b/sdk/go/openstack/networking/portSecGroupAssociate.go @@ -8,7 +8,7 @@ import ( "reflect" "errors" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -21,7 +21,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -62,7 +62,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -104,7 +104,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/networking/pulumiTypes.go b/sdk/go/openstack/networking/pulumiTypes.go index b5d4b22f2..b0a99f0bf 100644 --- a/sdk/go/openstack/networking/pulumiTypes.go +++ b/sdk/go/openstack/networking/pulumiTypes.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -1052,218 +1052,6 @@ func (o SubnetAllocationPoolArrayOutput) Index(i pulumi.IntInput) SubnetAllocati }).(SubnetAllocationPoolOutput) } -type SubnetAllocationPoolsCollection struct { - // The ending address. - End string `pulumi:"end"` - // The starting address. - Start string `pulumi:"start"` -} - -// SubnetAllocationPoolsCollectionInput is an input type that accepts SubnetAllocationPoolsCollectionArgs and SubnetAllocationPoolsCollectionOutput values. -// You can construct a concrete instance of `SubnetAllocationPoolsCollectionInput` via: -// -// SubnetAllocationPoolsCollectionArgs{...} -type SubnetAllocationPoolsCollectionInput interface { - pulumi.Input - - ToSubnetAllocationPoolsCollectionOutput() SubnetAllocationPoolsCollectionOutput - ToSubnetAllocationPoolsCollectionOutputWithContext(context.Context) SubnetAllocationPoolsCollectionOutput -} - -type SubnetAllocationPoolsCollectionArgs struct { - // The ending address. - End pulumi.StringInput `pulumi:"end"` - // The starting address. - Start pulumi.StringInput `pulumi:"start"` -} - -func (SubnetAllocationPoolsCollectionArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SubnetAllocationPoolsCollection)(nil)).Elem() -} - -func (i SubnetAllocationPoolsCollectionArgs) ToSubnetAllocationPoolsCollectionOutput() SubnetAllocationPoolsCollectionOutput { - return i.ToSubnetAllocationPoolsCollectionOutputWithContext(context.Background()) -} - -func (i SubnetAllocationPoolsCollectionArgs) ToSubnetAllocationPoolsCollectionOutputWithContext(ctx context.Context) SubnetAllocationPoolsCollectionOutput { - return pulumi.ToOutputWithContext(ctx, i).(SubnetAllocationPoolsCollectionOutput) -} - -// SubnetAllocationPoolsCollectionArrayInput is an input type that accepts SubnetAllocationPoolsCollectionArray and SubnetAllocationPoolsCollectionArrayOutput values. -// You can construct a concrete instance of `SubnetAllocationPoolsCollectionArrayInput` via: -// -// SubnetAllocationPoolsCollectionArray{ SubnetAllocationPoolsCollectionArgs{...} } -type SubnetAllocationPoolsCollectionArrayInput interface { - pulumi.Input - - ToSubnetAllocationPoolsCollectionArrayOutput() SubnetAllocationPoolsCollectionArrayOutput - ToSubnetAllocationPoolsCollectionArrayOutputWithContext(context.Context) SubnetAllocationPoolsCollectionArrayOutput -} - -type SubnetAllocationPoolsCollectionArray []SubnetAllocationPoolsCollectionInput - -func (SubnetAllocationPoolsCollectionArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]SubnetAllocationPoolsCollection)(nil)).Elem() -} - -func (i SubnetAllocationPoolsCollectionArray) ToSubnetAllocationPoolsCollectionArrayOutput() SubnetAllocationPoolsCollectionArrayOutput { - return i.ToSubnetAllocationPoolsCollectionArrayOutputWithContext(context.Background()) -} - -func (i SubnetAllocationPoolsCollectionArray) ToSubnetAllocationPoolsCollectionArrayOutputWithContext(ctx context.Context) SubnetAllocationPoolsCollectionArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(SubnetAllocationPoolsCollectionArrayOutput) -} - -type SubnetAllocationPoolsCollectionOutput struct{ *pulumi.OutputState } - -func (SubnetAllocationPoolsCollectionOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SubnetAllocationPoolsCollection)(nil)).Elem() -} - -func (o SubnetAllocationPoolsCollectionOutput) ToSubnetAllocationPoolsCollectionOutput() SubnetAllocationPoolsCollectionOutput { - return o -} - -func (o SubnetAllocationPoolsCollectionOutput) ToSubnetAllocationPoolsCollectionOutputWithContext(ctx context.Context) SubnetAllocationPoolsCollectionOutput { - return o -} - -// The ending address. -func (o SubnetAllocationPoolsCollectionOutput) End() pulumi.StringOutput { - return o.ApplyT(func(v SubnetAllocationPoolsCollection) string { return v.End }).(pulumi.StringOutput) -} - -// The starting address. -func (o SubnetAllocationPoolsCollectionOutput) Start() pulumi.StringOutput { - return o.ApplyT(func(v SubnetAllocationPoolsCollection) string { return v.Start }).(pulumi.StringOutput) -} - -type SubnetAllocationPoolsCollectionArrayOutput struct{ *pulumi.OutputState } - -func (SubnetAllocationPoolsCollectionArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]SubnetAllocationPoolsCollection)(nil)).Elem() -} - -func (o SubnetAllocationPoolsCollectionArrayOutput) ToSubnetAllocationPoolsCollectionArrayOutput() SubnetAllocationPoolsCollectionArrayOutput { - return o -} - -func (o SubnetAllocationPoolsCollectionArrayOutput) ToSubnetAllocationPoolsCollectionArrayOutputWithContext(ctx context.Context) SubnetAllocationPoolsCollectionArrayOutput { - return o -} - -func (o SubnetAllocationPoolsCollectionArrayOutput) Index(i pulumi.IntInput) SubnetAllocationPoolsCollectionOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) SubnetAllocationPoolsCollection { - return vs[0].([]SubnetAllocationPoolsCollection)[vs[1].(int)] - }).(SubnetAllocationPoolsCollectionOutput) -} - -type SubnetHostRoute struct { - // The destination CIDR. - DestinationCidr string `pulumi:"destinationCidr"` - // The next hop in the route. - NextHop string `pulumi:"nextHop"` -} - -// SubnetHostRouteInput is an input type that accepts SubnetHostRouteArgs and SubnetHostRouteOutput values. -// You can construct a concrete instance of `SubnetHostRouteInput` via: -// -// SubnetHostRouteArgs{...} -type SubnetHostRouteInput interface { - pulumi.Input - - ToSubnetHostRouteOutput() SubnetHostRouteOutput - ToSubnetHostRouteOutputWithContext(context.Context) SubnetHostRouteOutput -} - -type SubnetHostRouteArgs struct { - // The destination CIDR. - DestinationCidr pulumi.StringInput `pulumi:"destinationCidr"` - // The next hop in the route. - NextHop pulumi.StringInput `pulumi:"nextHop"` -} - -func (SubnetHostRouteArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SubnetHostRoute)(nil)).Elem() -} - -func (i SubnetHostRouteArgs) ToSubnetHostRouteOutput() SubnetHostRouteOutput { - return i.ToSubnetHostRouteOutputWithContext(context.Background()) -} - -func (i SubnetHostRouteArgs) ToSubnetHostRouteOutputWithContext(ctx context.Context) SubnetHostRouteOutput { - return pulumi.ToOutputWithContext(ctx, i).(SubnetHostRouteOutput) -} - -// SubnetHostRouteArrayInput is an input type that accepts SubnetHostRouteArray and SubnetHostRouteArrayOutput values. -// You can construct a concrete instance of `SubnetHostRouteArrayInput` via: -// -// SubnetHostRouteArray{ SubnetHostRouteArgs{...} } -type SubnetHostRouteArrayInput interface { - pulumi.Input - - ToSubnetHostRouteArrayOutput() SubnetHostRouteArrayOutput - ToSubnetHostRouteArrayOutputWithContext(context.Context) SubnetHostRouteArrayOutput -} - -type SubnetHostRouteArray []SubnetHostRouteInput - -func (SubnetHostRouteArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]SubnetHostRoute)(nil)).Elem() -} - -func (i SubnetHostRouteArray) ToSubnetHostRouteArrayOutput() SubnetHostRouteArrayOutput { - return i.ToSubnetHostRouteArrayOutputWithContext(context.Background()) -} - -func (i SubnetHostRouteArray) ToSubnetHostRouteArrayOutputWithContext(ctx context.Context) SubnetHostRouteArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(SubnetHostRouteArrayOutput) -} - -type SubnetHostRouteOutput struct{ *pulumi.OutputState } - -func (SubnetHostRouteOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SubnetHostRoute)(nil)).Elem() -} - -func (o SubnetHostRouteOutput) ToSubnetHostRouteOutput() SubnetHostRouteOutput { - return o -} - -func (o SubnetHostRouteOutput) ToSubnetHostRouteOutputWithContext(ctx context.Context) SubnetHostRouteOutput { - return o -} - -// The destination CIDR. -func (o SubnetHostRouteOutput) DestinationCidr() pulumi.StringOutput { - return o.ApplyT(func(v SubnetHostRoute) string { return v.DestinationCidr }).(pulumi.StringOutput) -} - -// The next hop in the route. -func (o SubnetHostRouteOutput) NextHop() pulumi.StringOutput { - return o.ApplyT(func(v SubnetHostRoute) string { return v.NextHop }).(pulumi.StringOutput) -} - -type SubnetHostRouteArrayOutput struct{ *pulumi.OutputState } - -func (SubnetHostRouteArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]SubnetHostRoute)(nil)).Elem() -} - -func (o SubnetHostRouteArrayOutput) ToSubnetHostRouteArrayOutput() SubnetHostRouteArrayOutput { - return o -} - -func (o SubnetHostRouteArrayOutput) ToSubnetHostRouteArrayOutputWithContext(ctx context.Context) SubnetHostRouteArrayOutput { - return o -} - -func (o SubnetHostRouteArrayOutput) Index(i pulumi.IntInput) SubnetHostRouteOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) SubnetHostRoute { - return vs[0].([]SubnetHostRoute)[vs[1].(int)] - }).(SubnetHostRouteOutput) -} - type TrunkSubPort struct { // The ID of the port to be made a subport of the trunk. PortId string `pulumi:"portId"` @@ -2280,10 +2068,6 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*RouterVendorOptionsPtrInput)(nil)).Elem(), RouterVendorOptionsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*SubnetAllocationPoolInput)(nil)).Elem(), SubnetAllocationPoolArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*SubnetAllocationPoolArrayInput)(nil)).Elem(), SubnetAllocationPoolArray{}) - pulumi.RegisterInputType(reflect.TypeOf((*SubnetAllocationPoolsCollectionInput)(nil)).Elem(), SubnetAllocationPoolsCollectionArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*SubnetAllocationPoolsCollectionArrayInput)(nil)).Elem(), SubnetAllocationPoolsCollectionArray{}) - pulumi.RegisterInputType(reflect.TypeOf((*SubnetHostRouteInput)(nil)).Elem(), SubnetHostRouteArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*SubnetHostRouteArrayInput)(nil)).Elem(), SubnetHostRouteArray{}) pulumi.RegisterInputType(reflect.TypeOf((*TrunkSubPortInput)(nil)).Elem(), TrunkSubPortArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*TrunkSubPortArrayInput)(nil)).Elem(), TrunkSubPortArray{}) pulumi.RegisterInputType(reflect.TypeOf((*GetNetworkSegmentInput)(nil)).Elem(), GetNetworkSegmentArgs{}) @@ -2318,10 +2102,6 @@ func init() { pulumi.RegisterOutputType(RouterVendorOptionsPtrOutput{}) pulumi.RegisterOutputType(SubnetAllocationPoolOutput{}) pulumi.RegisterOutputType(SubnetAllocationPoolArrayOutput{}) - pulumi.RegisterOutputType(SubnetAllocationPoolsCollectionOutput{}) - pulumi.RegisterOutputType(SubnetAllocationPoolsCollectionArrayOutput{}) - pulumi.RegisterOutputType(SubnetHostRouteOutput{}) - pulumi.RegisterOutputType(SubnetHostRouteArrayOutput{}) pulumi.RegisterOutputType(TrunkSubPortOutput{}) pulumi.RegisterOutputType(TrunkSubPortArrayOutput{}) pulumi.RegisterOutputType(GetNetworkSegmentOutput{}) diff --git a/sdk/go/openstack/networking/qosBandwidthLimitRule.go b/sdk/go/openstack/networking/qosBandwidthLimitRule.go index d1aa9c40a..0c738338b 100644 --- a/sdk/go/openstack/networking/qosBandwidthLimitRule.go +++ b/sdk/go/openstack/networking/qosBandwidthLimitRule.go @@ -8,7 +8,7 @@ import ( "reflect" "errors" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -23,7 +23,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/networking/qosDscpMarkingRule.go b/sdk/go/openstack/networking/qosDscpMarkingRule.go index 15e5456ca..76479d09c 100644 --- a/sdk/go/openstack/networking/qosDscpMarkingRule.go +++ b/sdk/go/openstack/networking/qosDscpMarkingRule.go @@ -8,7 +8,7 @@ import ( "reflect" "errors" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -23,7 +23,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/networking/qosMinimumBandwidthRule.go b/sdk/go/openstack/networking/qosMinimumBandwidthRule.go index c141b26db..575d8bcc4 100644 --- a/sdk/go/openstack/networking/qosMinimumBandwidthRule.go +++ b/sdk/go/openstack/networking/qosMinimumBandwidthRule.go @@ -8,7 +8,7 @@ import ( "reflect" "errors" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -23,7 +23,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/networking/qosPolicy.go b/sdk/go/openstack/networking/qosPolicy.go index ce39c705f..1f65d4258 100644 --- a/sdk/go/openstack/networking/qosPolicy.go +++ b/sdk/go/openstack/networking/qosPolicy.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -22,7 +22,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/networking/quotaV2.go b/sdk/go/openstack/networking/quotaV2.go index 1c3447a8a..92f11b632 100644 --- a/sdk/go/openstack/networking/quotaV2.go +++ b/sdk/go/openstack/networking/quotaV2.go @@ -8,7 +8,7 @@ import ( "reflect" "errors" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) diff --git a/sdk/go/openstack/networking/rbacPolicyV2.go b/sdk/go/openstack/networking/rbacPolicyV2.go index cbf51b835..535cf0650 100644 --- a/sdk/go/openstack/networking/rbacPolicyV2.go +++ b/sdk/go/openstack/networking/rbacPolicyV2.go @@ -8,7 +8,7 @@ import ( "reflect" "errors" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -33,7 +33,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/networking/router.go b/sdk/go/openstack/networking/router.go index 9489b4f6e..0b9c798b7 100644 --- a/sdk/go/openstack/networking/router.go +++ b/sdk/go/openstack/networking/router.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -20,7 +20,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -80,14 +80,6 @@ type Router struct { // has to be set in order to set this property. Changing this updates the // external fixed IPs of the router. ExternalFixedIps RouterExternalFixedIpArrayOutput `pulumi:"externalFixedIps"` - // The - // network UUID of an external gateway for the router. A router with an - // external gateway is required if any compute instances or load balancers - // will be using floating IPs. Changing this updates the external gateway - // of an existing router. - // - // Deprecated: use externalNetworkId instead - ExternalGateway pulumi.StringOutput `pulumi:"externalGateway"` // The network UUID of an external gateway // for the router. A router with an external gateway is required if any // compute instances or load balancers will be using floating IPs. Changing @@ -178,14 +170,6 @@ type routerState struct { // has to be set in order to set this property. Changing this updates the // external fixed IPs of the router. ExternalFixedIps []RouterExternalFixedIp `pulumi:"externalFixedIps"` - // The - // network UUID of an external gateway for the router. A router with an - // external gateway is required if any compute instances or load balancers - // will be using floating IPs. Changing this updates the external gateway - // of an existing router. - // - // Deprecated: use externalNetworkId instead - ExternalGateway *string `pulumi:"externalGateway"` // The network UUID of an external gateway // for the router. A router with an external gateway is required if any // compute instances or load balancers will be using floating IPs. Changing @@ -247,14 +231,6 @@ type RouterState struct { // has to be set in order to set this property. Changing this updates the // external fixed IPs of the router. ExternalFixedIps RouterExternalFixedIpArrayInput - // The - // network UUID of an external gateway for the router. A router with an - // external gateway is required if any compute instances or load balancers - // will be using floating IPs. Changing this updates the external gateway - // of an existing router. - // - // Deprecated: use externalNetworkId instead - ExternalGateway pulumi.StringPtrInput // The network UUID of an external gateway // for the router. A router with an external gateway is required if any // compute instances or load balancers will be using floating IPs. Changing @@ -317,14 +293,6 @@ type routerArgs struct { // has to be set in order to set this property. Changing this updates the // external fixed IPs of the router. ExternalFixedIps []RouterExternalFixedIp `pulumi:"externalFixedIps"` - // The - // network UUID of an external gateway for the router. A router with an - // external gateway is required if any compute instances or load balancers - // will be using floating IPs. Changing this updates the external gateway - // of an existing router. - // - // Deprecated: use externalNetworkId instead - ExternalGateway *string `pulumi:"externalGateway"` // The network UUID of an external gateway // for the router. A router with an external gateway is required if any // compute instances or load balancers will be using floating IPs. Changing @@ -384,14 +352,6 @@ type RouterArgs struct { // has to be set in order to set this property. Changing this updates the // external fixed IPs of the router. ExternalFixedIps RouterExternalFixedIpArrayInput - // The - // network UUID of an external gateway for the router. A router with an - // external gateway is required if any compute instances or load balancers - // will be using floating IPs. Changing this updates the external gateway - // of an existing router. - // - // Deprecated: use externalNetworkId instead - ExternalGateway pulumi.StringPtrInput // The network UUID of an external gateway // for the router. A router with an external gateway is required if any // compute instances or load balancers will be using floating IPs. Changing @@ -560,17 +520,6 @@ func (o RouterOutput) ExternalFixedIps() RouterExternalFixedIpArrayOutput { return o.ApplyT(func(v *Router) RouterExternalFixedIpArrayOutput { return v.ExternalFixedIps }).(RouterExternalFixedIpArrayOutput) } -// The -// network UUID of an external gateway for the router. A router with an -// external gateway is required if any compute instances or load balancers -// will be using floating IPs. Changing this updates the external gateway -// of an existing router. -// -// Deprecated: use externalNetworkId instead -func (o RouterOutput) ExternalGateway() pulumi.StringOutput { - return o.ApplyT(func(v *Router) pulumi.StringOutput { return v.ExternalGateway }).(pulumi.StringOutput) -} - // The network UUID of an external gateway // for the router. A router with an external gateway is required if any // compute instances or load balancers will be using floating IPs. Changing diff --git a/sdk/go/openstack/networking/routerInterface.go b/sdk/go/openstack/networking/routerInterface.go index 6305fb532..272fe482a 100644 --- a/sdk/go/openstack/networking/routerInterface.go +++ b/sdk/go/openstack/networking/routerInterface.go @@ -8,7 +8,7 @@ import ( "reflect" "errors" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -21,7 +21,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/networking/routerRoute.go b/sdk/go/openstack/networking/routerRoute.go index aeae2ef91..dd418e9be 100644 --- a/sdk/go/openstack/networking/routerRoute.go +++ b/sdk/go/openstack/networking/routerRoute.go @@ -8,7 +8,7 @@ import ( "reflect" "errors" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -21,7 +21,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/networking/secGroup.go b/sdk/go/openstack/networking/secGroup.go index bb97e43f0..c9f125847 100644 --- a/sdk/go/openstack/networking/secGroup.go +++ b/sdk/go/openstack/networking/secGroup.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) diff --git a/sdk/go/openstack/networking/secGroupRule.go b/sdk/go/openstack/networking/secGroupRule.go index 73012ac37..8767d26ae 100644 --- a/sdk/go/openstack/networking/secGroupRule.go +++ b/sdk/go/openstack/networking/secGroupRule.go @@ -8,7 +8,7 @@ import ( "reflect" "errors" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -23,7 +23,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/networking/subnet.go b/sdk/go/openstack/networking/subnet.go index 47399455e..8047f4df8 100644 --- a/sdk/go/openstack/networking/subnet.go +++ b/sdk/go/openstack/networking/subnet.go @@ -8,7 +8,7 @@ import ( "reflect" "errors" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -21,7 +21,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -68,12 +68,6 @@ type Subnet struct { // must be from the same CIDR that the subnet is part of. // The `allocationPool` block is documented below. AllocationPools SubnetAllocationPoolArrayOutput `pulumi:"allocationPools"` - // A block declaring the start and end range of the IP addresses available for - // use with DHCP in this subnet. - // The `allocationPools` block is documented below. - // - // Deprecated: use allocationPool instead - AllocationPoolsCollection SubnetAllocationPoolsCollectionArrayOutput `pulumi:"allocationPoolsCollection"` // CIDR representing IP range for this subnet, based on IP // version. You can omit this option if you are creating a subnet from a // subnet pool. @@ -94,14 +88,6 @@ type Subnet struct { // gateway of `.1` to be used. Changing this updates the gateway IP of the // existing subnet. GatewayIp pulumi.StringOutput `pulumi:"gatewayIp"` - // (**Deprecated** - use `networking.SubnetRoute` - // instead) An array of routes that should be used by devices - // with IPs from this subnet (not including local subnet route). The hostRoute - // object structure is documented below. Changing this updates the host routes - // for the existing subnet. - // - // Deprecated: Use networking.SubnetRoute instead - HostRoutes SubnetHostRouteArrayOutput `pulumi:"hostRoutes"` // IP version, either 4 (default) or 6. Changing this creates a // new subnet. IpVersion pulumi.IntPtrOutput `pulumi:"ipVersion"` @@ -187,12 +173,6 @@ type subnetState struct { // must be from the same CIDR that the subnet is part of. // The `allocationPool` block is documented below. AllocationPools []SubnetAllocationPool `pulumi:"allocationPools"` - // A block declaring the start and end range of the IP addresses available for - // use with DHCP in this subnet. - // The `allocationPools` block is documented below. - // - // Deprecated: use allocationPool instead - AllocationPoolsCollection []SubnetAllocationPoolsCollection `pulumi:"allocationPoolsCollection"` // CIDR representing IP range for this subnet, based on IP // version. You can omit this option if you are creating a subnet from a // subnet pool. @@ -213,14 +193,6 @@ type subnetState struct { // gateway of `.1` to be used. Changing this updates the gateway IP of the // existing subnet. GatewayIp *string `pulumi:"gatewayIp"` - // (**Deprecated** - use `networking.SubnetRoute` - // instead) An array of routes that should be used by devices - // with IPs from this subnet (not including local subnet route). The hostRoute - // object structure is documented below. Changing this updates the host routes - // for the existing subnet. - // - // Deprecated: Use networking.SubnetRoute instead - HostRoutes []SubnetHostRoute `pulumi:"hostRoutes"` // IP version, either 4 (default) or 6. Changing this creates a // new subnet. IpVersion *int `pulumi:"ipVersion"` @@ -274,12 +246,6 @@ type SubnetState struct { // must be from the same CIDR that the subnet is part of. // The `allocationPool` block is documented below. AllocationPools SubnetAllocationPoolArrayInput - // A block declaring the start and end range of the IP addresses available for - // use with DHCP in this subnet. - // The `allocationPools` block is documented below. - // - // Deprecated: use allocationPool instead - AllocationPoolsCollection SubnetAllocationPoolsCollectionArrayInput // CIDR representing IP range for this subnet, based on IP // version. You can omit this option if you are creating a subnet from a // subnet pool. @@ -300,14 +266,6 @@ type SubnetState struct { // gateway of `.1` to be used. Changing this updates the gateway IP of the // existing subnet. GatewayIp pulumi.StringPtrInput - // (**Deprecated** - use `networking.SubnetRoute` - // instead) An array of routes that should be used by devices - // with IPs from this subnet (not including local subnet route). The hostRoute - // object structure is documented below. Changing this updates the host routes - // for the existing subnet. - // - // Deprecated: Use networking.SubnetRoute instead - HostRoutes SubnetHostRouteArrayInput // IP version, either 4 (default) or 6. Changing this creates a // new subnet. IpVersion pulumi.IntPtrInput @@ -362,12 +320,6 @@ type subnetArgs struct { // must be from the same CIDR that the subnet is part of. // The `allocationPool` block is documented below. AllocationPools []SubnetAllocationPool `pulumi:"allocationPools"` - // A block declaring the start and end range of the IP addresses available for - // use with DHCP in this subnet. - // The `allocationPools` block is documented below. - // - // Deprecated: use allocationPool instead - AllocationPoolsCollection []SubnetAllocationPoolsCollection `pulumi:"allocationPoolsCollection"` // CIDR representing IP range for this subnet, based on IP // version. You can omit this option if you are creating a subnet from a // subnet pool. @@ -388,14 +340,6 @@ type subnetArgs struct { // gateway of `.1` to be used. Changing this updates the gateway IP of the // existing subnet. GatewayIp *string `pulumi:"gatewayIp"` - // (**Deprecated** - use `networking.SubnetRoute` - // instead) An array of routes that should be used by devices - // with IPs from this subnet (not including local subnet route). The hostRoute - // object structure is documented below. Changing this updates the host routes - // for the existing subnet. - // - // Deprecated: Use networking.SubnetRoute instead - HostRoutes []SubnetHostRoute `pulumi:"hostRoutes"` // IP version, either 4 (default) or 6. Changing this creates a // new subnet. IpVersion *int `pulumi:"ipVersion"` @@ -447,12 +391,6 @@ type SubnetArgs struct { // must be from the same CIDR that the subnet is part of. // The `allocationPool` block is documented below. AllocationPools SubnetAllocationPoolArrayInput - // A block declaring the start and end range of the IP addresses available for - // use with DHCP in this subnet. - // The `allocationPools` block is documented below. - // - // Deprecated: use allocationPool instead - AllocationPoolsCollection SubnetAllocationPoolsCollectionArrayInput // CIDR representing IP range for this subnet, based on IP // version. You can omit this option if you are creating a subnet from a // subnet pool. @@ -473,14 +411,6 @@ type SubnetArgs struct { // gateway of `.1` to be used. Changing this updates the gateway IP of the // existing subnet. GatewayIp pulumi.StringPtrInput - // (**Deprecated** - use `networking.SubnetRoute` - // instead) An array of routes that should be used by devices - // with IPs from this subnet (not including local subnet route). The hostRoute - // object structure is documented below. Changing this updates the host routes - // for the existing subnet. - // - // Deprecated: Use networking.SubnetRoute instead - HostRoutes SubnetHostRouteArrayInput // IP version, either 4 (default) or 6. Changing this creates a // new subnet. IpVersion pulumi.IntPtrInput @@ -626,15 +556,6 @@ func (o SubnetOutput) AllocationPools() SubnetAllocationPoolArrayOutput { return o.ApplyT(func(v *Subnet) SubnetAllocationPoolArrayOutput { return v.AllocationPools }).(SubnetAllocationPoolArrayOutput) } -// A block declaring the start and end range of the IP addresses available for -// use with DHCP in this subnet. -// The `allocationPools` block is documented below. -// -// Deprecated: use allocationPool instead -func (o SubnetOutput) AllocationPoolsCollection() SubnetAllocationPoolsCollectionArrayOutput { - return o.ApplyT(func(v *Subnet) SubnetAllocationPoolsCollectionArrayOutput { return v.AllocationPoolsCollection }).(SubnetAllocationPoolsCollectionArrayOutput) -} - // CIDR representing IP range for this subnet, based on IP // version. You can omit this option if you are creating a subnet from a // subnet pool. @@ -670,17 +591,6 @@ func (o SubnetOutput) GatewayIp() pulumi.StringOutput { return o.ApplyT(func(v *Subnet) pulumi.StringOutput { return v.GatewayIp }).(pulumi.StringOutput) } -// (**Deprecated** - use `networking.SubnetRoute` -// instead) An array of routes that should be used by devices -// with IPs from this subnet (not including local subnet route). The hostRoute -// object structure is documented below. Changing this updates the host routes -// for the existing subnet. -// -// Deprecated: Use networking.SubnetRoute instead -func (o SubnetOutput) HostRoutes() SubnetHostRouteArrayOutput { - return o.ApplyT(func(v *Subnet) SubnetHostRouteArrayOutput { return v.HostRoutes }).(SubnetHostRouteArrayOutput) -} - // IP version, either 4 (default) or 6. Changing this creates a // new subnet. func (o SubnetOutput) IpVersion() pulumi.IntPtrOutput { diff --git a/sdk/go/openstack/networking/subnetPool.go b/sdk/go/openstack/networking/subnetPool.go index 6e1d5fdca..e223f7075 100644 --- a/sdk/go/openstack/networking/subnetPool.go +++ b/sdk/go/openstack/networking/subnetPool.go @@ -8,7 +8,7 @@ import ( "reflect" "errors" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -23,7 +23,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -54,7 +54,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/networking/subnetRoute.go b/sdk/go/openstack/networking/subnetRoute.go index b5ce2643d..6b841053b 100644 --- a/sdk/go/openstack/networking/subnetRoute.go +++ b/sdk/go/openstack/networking/subnetRoute.go @@ -8,7 +8,7 @@ import ( "reflect" "errors" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -21,7 +21,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/networking/trunk.go b/sdk/go/openstack/networking/trunk.go index 4135d42b1..de71213fb 100644 --- a/sdk/go/openstack/networking/trunk.go +++ b/sdk/go/openstack/networking/trunk.go @@ -8,7 +8,7 @@ import ( "reflect" "errors" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -21,8 +21,8 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/compute" -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/compute" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/objectstorage/container.go b/sdk/go/openstack/objectstorage/container.go index 4064957aa..1651b7c5a 100644 --- a/sdk/go/openstack/objectstorage/container.go +++ b/sdk/go/openstack/objectstorage/container.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -22,7 +22,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/objectstorage" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/objectstorage" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -54,7 +54,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/objectstorage" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/objectstorage" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -89,7 +89,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/objectstorage" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/objectstorage" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -118,7 +118,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/objectstorage" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/objectstorage" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -149,8 +149,8 @@ import ( // // "fmt" // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/identity" -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/objectstorage" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/identity" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/objectstorage" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/objectstorage/containerObject.go b/sdk/go/openstack/objectstorage/containerObject.go index 8605bd747..c1fc31674 100644 --- a/sdk/go/openstack/objectstorage/containerObject.go +++ b/sdk/go/openstack/objectstorage/containerObject.go @@ -8,7 +8,7 @@ import ( "reflect" "errors" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -23,7 +23,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/objectstorage" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/objectstorage" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -71,7 +71,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/objectstorage" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/objectstorage" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/objectstorage/init.go b/sdk/go/openstack/objectstorage/init.go index 441885dc8..ba483288f 100644 --- a/sdk/go/openstack/objectstorage/init.go +++ b/sdk/go/openstack/objectstorage/init.go @@ -7,7 +7,7 @@ import ( "fmt" "github.com/blang/semver" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) diff --git a/sdk/go/openstack/objectstorage/pulumiTypes.go b/sdk/go/openstack/objectstorage/pulumiTypes.go index 1e3db9440..28710fbdf 100644 --- a/sdk/go/openstack/objectstorage/pulumiTypes.go +++ b/sdk/go/openstack/objectstorage/pulumiTypes.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) diff --git a/sdk/go/openstack/objectstorage/tempUrl.go b/sdk/go/openstack/objectstorage/tempUrl.go index f888ba706..0fd97c24f 100644 --- a/sdk/go/openstack/objectstorage/tempUrl.go +++ b/sdk/go/openstack/objectstorage/tempUrl.go @@ -8,7 +8,7 @@ import ( "reflect" "errors" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -27,7 +27,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/objectstorage" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/objectstorage" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/orchestration/init.go b/sdk/go/openstack/orchestration/init.go index b4717e9d0..eb8e2abe8 100644 --- a/sdk/go/openstack/orchestration/init.go +++ b/sdk/go/openstack/orchestration/init.go @@ -7,7 +7,7 @@ import ( "fmt" "github.com/blang/semver" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) diff --git a/sdk/go/openstack/orchestration/pulumiTypes.go b/sdk/go/openstack/orchestration/pulumiTypes.go index 4f18fd922..8b6a830ad 100644 --- a/sdk/go/openstack/orchestration/pulumiTypes.go +++ b/sdk/go/openstack/orchestration/pulumiTypes.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) diff --git a/sdk/go/openstack/orchestration/stackV1.go b/sdk/go/openstack/orchestration/stackV1.go index 19abe1908..a5ccb316c 100644 --- a/sdk/go/openstack/orchestration/stackV1.go +++ b/sdk/go/openstack/orchestration/stackV1.go @@ -8,7 +8,7 @@ import ( "reflect" "errors" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -21,7 +21,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/orchestration" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/orchestration" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/provider.go b/sdk/go/openstack/provider.go index 80ab5ad84..ff5a65893 100644 --- a/sdk/go/openstack/provider.go +++ b/sdk/go/openstack/provider.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -107,11 +107,6 @@ func NewProvider(ctx *pulumi.Context, args.Swauth = pulumi.BoolPtr(d.(bool)) } } - if args.UseOctavia == nil { - if d := internal.GetEnvOrDefault(nil, internal.ParseEnvBool, "OS_USE_OCTAVIA"); d != nil { - args.UseOctavia = pulumi.BoolPtr(d.(bool)) - } - } if args.Password != nil { args.Password = pulumi.ToSecret(args.Password).(pulumi.StringPtrInput) } @@ -186,10 +181,6 @@ type providerArgs struct { TenantName *string `pulumi:"tenantName"` // Authentication token to use as an alternative to username/password. Token *string `pulumi:"token"` - // If set to `true`, API requests will go the Load Balancer service (Octavia) instead of the Networking service (Neutron). - // - // Deprecated: Users not using loadbalancer resources can ignore this message. Support for neutron-lbaas will be removed on next major release. Octavia will be the only supported method for loadbalancer resources. Users using octavia will have to remove 'use_octavia' option from the provider configuration block. Users using neutron-lbaas will have to migrate/upgrade to octavia. - UseOctavia *bool `pulumi:"useOctavia"` // The ID of the domain where the user resides (Identity v3). UserDomainId *string `pulumi:"userDomainId"` // The name of the domain where the user resides (Identity v3). @@ -259,10 +250,6 @@ type ProviderArgs struct { TenantName pulumi.StringPtrInput // Authentication token to use as an alternative to username/password. Token pulumi.StringPtrInput - // If set to `true`, API requests will go the Load Balancer service (Octavia) instead of the Networking service (Neutron). - // - // Deprecated: Users not using loadbalancer resources can ignore this message. Support for neutron-lbaas will be removed on next major release. Octavia will be the only supported method for loadbalancer resources. Users using octavia will have to remove 'use_octavia' option from the provider configuration block. Users using neutron-lbaas will have to migrate/upgrade to octavia. - UseOctavia pulumi.BoolPtrInput // The ID of the domain where the user resides (Identity v3). UserDomainId pulumi.StringPtrInput // The name of the domain where the user resides (Identity v3). diff --git a/sdk/go/openstack/pulumi-plugin.json b/sdk/go/openstack/pulumi-plugin.json index c2fd7376d..84f878f23 100644 --- a/sdk/go/openstack/pulumi-plugin.json +++ b/sdk/go/openstack/pulumi-plugin.json @@ -1,5 +1,5 @@ { "resource": true, "name": "openstack", - "version": "3.0.0-alpha.0+dev" + "version": "4.0.0-alpha.0+dev" } diff --git a/sdk/go/openstack/sharedfilesystem/getAvailbilityZones.go b/sdk/go/openstack/sharedfilesystem/getAvailbilityZones.go index 1e7991c2d..d551c3912 100644 --- a/sdk/go/openstack/sharedfilesystem/getAvailbilityZones.go +++ b/sdk/go/openstack/sharedfilesystem/getAvailbilityZones.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -21,7 +21,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/sharedfilesystem" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/sharedfilesystem" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/sharedfilesystem/getShare.go b/sdk/go/openstack/sharedfilesystem/getShare.go index 3d9633388..cf2bfc4a9 100644 --- a/sdk/go/openstack/sharedfilesystem/getShare.go +++ b/sdk/go/openstack/sharedfilesystem/getShare.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -20,7 +20,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/sharedfilesystem" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/sharedfilesystem" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/sharedfilesystem/getShareNetwork.go b/sdk/go/openstack/sharedfilesystem/getShareNetwork.go index 9a5a9885e..a6c8e81f1 100644 --- a/sdk/go/openstack/sharedfilesystem/getShareNetwork.go +++ b/sdk/go/openstack/sharedfilesystem/getShareNetwork.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -20,7 +20,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/sharedfilesystem" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/sharedfilesystem" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/sharedfilesystem/getSnapshot.go b/sdk/go/openstack/sharedfilesystem/getSnapshot.go index a371118da..bdc35b2b1 100644 --- a/sdk/go/openstack/sharedfilesystem/getSnapshot.go +++ b/sdk/go/openstack/sharedfilesystem/getSnapshot.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -20,7 +20,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/sharedfilesystem" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/sharedfilesystem" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/sharedfilesystem/init.go b/sdk/go/openstack/sharedfilesystem/init.go index 4ff2ce5f4..a5516ce46 100644 --- a/sdk/go/openstack/sharedfilesystem/init.go +++ b/sdk/go/openstack/sharedfilesystem/init.go @@ -7,7 +7,7 @@ import ( "fmt" "github.com/blang/semver" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) diff --git a/sdk/go/openstack/sharedfilesystem/pulumiTypes.go b/sdk/go/openstack/sharedfilesystem/pulumiTypes.go index 19a22cc70..ef1907eae 100644 --- a/sdk/go/openstack/sharedfilesystem/pulumiTypes.go +++ b/sdk/go/openstack/sharedfilesystem/pulumiTypes.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) diff --git a/sdk/go/openstack/sharedfilesystem/securityService.go b/sdk/go/openstack/sharedfilesystem/securityService.go index b2e7c2609..e0d3cedb0 100644 --- a/sdk/go/openstack/sharedfilesystem/securityService.go +++ b/sdk/go/openstack/sharedfilesystem/securityService.go @@ -8,7 +8,7 @@ import ( "reflect" "errors" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -32,7 +32,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/sharedfilesystem" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/sharedfilesystem" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/sharedfilesystem/share.go b/sdk/go/openstack/sharedfilesystem/share.go index f31f13e02..11a99a037 100644 --- a/sdk/go/openstack/sharedfilesystem/share.go +++ b/sdk/go/openstack/sharedfilesystem/share.go @@ -8,7 +8,7 @@ import ( "reflect" "errors" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -21,8 +21,8 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking" -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/sharedfilesystem" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/sharedfilesystem" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/sharedfilesystem/shareAccess.go b/sdk/go/openstack/sharedfilesystem/shareAccess.go index b0429d3f3..f8da849c9 100644 --- a/sdk/go/openstack/sharedfilesystem/shareAccess.go +++ b/sdk/go/openstack/sharedfilesystem/shareAccess.go @@ -8,7 +8,7 @@ import ( "reflect" "errors" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -21,8 +21,8 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking" -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/sharedfilesystem" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/sharedfilesystem" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -86,8 +86,8 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking" -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/sharedfilesystem" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/sharedfilesystem" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/sharedfilesystem/shareNetwork.go b/sdk/go/openstack/sharedfilesystem/shareNetwork.go index ec05ece3b..be8480cd6 100644 --- a/sdk/go/openstack/sharedfilesystem/shareNetwork.go +++ b/sdk/go/openstack/sharedfilesystem/shareNetwork.go @@ -8,7 +8,7 @@ import ( "reflect" "errors" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -26,8 +26,8 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking" -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/sharedfilesystem" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/sharedfilesystem" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -72,8 +72,8 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/networking" -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/sharedfilesystem" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/sharedfilesystem" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/vpnaas/endpointGroup.go b/sdk/go/openstack/vpnaas/endpointGroup.go index 5fb975965..2059a58b1 100644 --- a/sdk/go/openstack/vpnaas/endpointGroup.go +++ b/sdk/go/openstack/vpnaas/endpointGroup.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -20,7 +20,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/vpnaas" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/vpnaas" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/vpnaas/ikePolicy.go b/sdk/go/openstack/vpnaas/ikePolicy.go index 2b2b3d667..98702c88a 100644 --- a/sdk/go/openstack/vpnaas/ikePolicy.go +++ b/sdk/go/openstack/vpnaas/ikePolicy.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -20,7 +20,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/vpnaas" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/vpnaas" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) @@ -58,7 +58,7 @@ type IkePolicy struct { // The encryption algorithm. Valid values are 3des, aes-128, aes-192 and so on. // The default value is aes-128. Changing this updates the existing policy. EncryptionAlgorithm pulumi.StringPtrOutput `pulumi:"encryptionAlgorithm"` - // The IKE mode. A valid value is v1 or v2. Default is v1. + // The IKE version. A valid value is v1 or v2. Default is v1. // Changing this updates the existing policy. IkeVersion pulumi.StringPtrOutput `pulumi:"ikeVersion"` // The lifetime of the security association. Consists of Unit and Value. @@ -123,7 +123,7 @@ type ikePolicyState struct { // The encryption algorithm. Valid values are 3des, aes-128, aes-192 and so on. // The default value is aes-128. Changing this updates the existing policy. EncryptionAlgorithm *string `pulumi:"encryptionAlgorithm"` - // The IKE mode. A valid value is v1 or v2. Default is v1. + // The IKE version. A valid value is v1 or v2. Default is v1. // Changing this updates the existing policy. IkeVersion *string `pulumi:"ikeVersion"` // The lifetime of the security association. Consists of Unit and Value. @@ -159,7 +159,7 @@ type IkePolicyState struct { // The encryption algorithm. Valid values are 3des, aes-128, aes-192 and so on. // The default value is aes-128. Changing this updates the existing policy. EncryptionAlgorithm pulumi.StringPtrInput - // The IKE mode. A valid value is v1 or v2. Default is v1. + // The IKE version. A valid value is v1 or v2. Default is v1. // Changing this updates the existing policy. IkeVersion pulumi.StringPtrInput // The lifetime of the security association. Consists of Unit and Value. @@ -199,7 +199,7 @@ type ikePolicyArgs struct { // The encryption algorithm. Valid values are 3des, aes-128, aes-192 and so on. // The default value is aes-128. Changing this updates the existing policy. EncryptionAlgorithm *string `pulumi:"encryptionAlgorithm"` - // The IKE mode. A valid value is v1 or v2. Default is v1. + // The IKE version. A valid value is v1 or v2. Default is v1. // Changing this updates the existing policy. IkeVersion *string `pulumi:"ikeVersion"` // The lifetime of the security association. Consists of Unit and Value. @@ -236,7 +236,7 @@ type IkePolicyArgs struct { // The encryption algorithm. Valid values are 3des, aes-128, aes-192 and so on. // The default value is aes-128. Changing this updates the existing policy. EncryptionAlgorithm pulumi.StringPtrInput - // The IKE mode. A valid value is v1 or v2. Default is v1. + // The IKE version. A valid value is v1 or v2. Default is v1. // Changing this updates the existing policy. IkeVersion pulumi.StringPtrInput // The lifetime of the security association. Consists of Unit and Value. @@ -367,7 +367,7 @@ func (o IkePolicyOutput) EncryptionAlgorithm() pulumi.StringPtrOutput { return o.ApplyT(func(v *IkePolicy) pulumi.StringPtrOutput { return v.EncryptionAlgorithm }).(pulumi.StringPtrOutput) } -// The IKE mode. A valid value is v1 or v2. Default is v1. +// The IKE version. A valid value is v1 or v2. Default is v1. // Changing this updates the existing policy. func (o IkePolicyOutput) IkeVersion() pulumi.StringPtrOutput { return o.ApplyT(func(v *IkePolicy) pulumi.StringPtrOutput { return v.IkeVersion }).(pulumi.StringPtrOutput) diff --git a/sdk/go/openstack/vpnaas/init.go b/sdk/go/openstack/vpnaas/init.go index ddb75f3e8..87d3078c2 100644 --- a/sdk/go/openstack/vpnaas/init.go +++ b/sdk/go/openstack/vpnaas/init.go @@ -7,7 +7,7 @@ import ( "fmt" "github.com/blang/semver" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) diff --git a/sdk/go/openstack/vpnaas/ipSecPolicy.go b/sdk/go/openstack/vpnaas/ipSecPolicy.go index d99b2df65..c957205ed 100644 --- a/sdk/go/openstack/vpnaas/ipSecPolicy.go +++ b/sdk/go/openstack/vpnaas/ipSecPolicy.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -20,7 +20,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/vpnaas" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/vpnaas" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/vpnaas/pulumiTypes.go b/sdk/go/openstack/vpnaas/pulumiTypes.go index 4cf6a1a0d..fe8a40f45 100644 --- a/sdk/go/openstack/vpnaas/pulumiTypes.go +++ b/sdk/go/openstack/vpnaas/pulumiTypes.go @@ -7,7 +7,7 @@ import ( "context" "reflect" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) diff --git a/sdk/go/openstack/vpnaas/service.go b/sdk/go/openstack/vpnaas/service.go index 320fea566..db8ad69c2 100644 --- a/sdk/go/openstack/vpnaas/service.go +++ b/sdk/go/openstack/vpnaas/service.go @@ -8,7 +8,7 @@ import ( "reflect" "errors" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -21,7 +21,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/vpnaas" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/vpnaas" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/go/openstack/vpnaas/siteConnection.go b/sdk/go/openstack/vpnaas/siteConnection.go index 6a88c205f..a754a2dd0 100644 --- a/sdk/go/openstack/vpnaas/siteConnection.go +++ b/sdk/go/openstack/vpnaas/siteConnection.go @@ -8,7 +8,7 @@ import ( "reflect" "errors" - "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/internal" + "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -21,7 +21,7 @@ import ( // // import ( // -// "github.com/pulumi/pulumi-openstack/sdk/v3/go/openstack/vpnaas" +// "github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/vpnaas" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // // ) diff --git a/sdk/java/src/main/java/com/pulumi/openstack/Config.java b/sdk/java/src/main/java/com/pulumi/openstack/Config.java index be640cb6a..848853a58 100644 --- a/sdk/java/src/main/java/com/pulumi/openstack/Config.java +++ b/sdk/java/src/main/java/com/pulumi/openstack/Config.java @@ -209,13 +209,6 @@ public Optional tenantName() { public Optional token() { return Codegen.stringProp("token").config(config).get(); } -/** - * If set to `true`, API requests will go the Load Balancer service (Octavia) instead of the Networking service (Neutron). - * - */ - public Optional useOctavia() { - return Codegen.booleanProp("useOctavia").config(config).env("OS_USE_OCTAVIA").get(); - } /** * The ID of the domain where the user resides (Identity v3). * diff --git a/sdk/java/src/main/java/com/pulumi/openstack/ProviderArgs.java b/sdk/java/src/main/java/com/pulumi/openstack/ProviderArgs.java index 73bd5bd81..25968f6cf 100644 --- a/sdk/java/src/main/java/com/pulumi/openstack/ProviderArgs.java +++ b/sdk/java/src/main/java/com/pulumi/openstack/ProviderArgs.java @@ -436,29 +436,6 @@ public Optional> token() { return Optional.ofNullable(this.token); } - /** - * If set to `true`, API requests will go the Load Balancer service (Octavia) instead of the Networking service (Neutron). - * - * @deprecated - * Users not using loadbalancer resources can ignore this message. Support for neutron-lbaas will be removed on next major release. Octavia will be the only supported method for loadbalancer resources. Users using octavia will have to remove 'use_octavia' option from the provider configuration block. Users using neutron-lbaas will have to migrate/upgrade to octavia. - * - */ - @Deprecated /* Users not using loadbalancer resources can ignore this message. Support for neutron-lbaas will be removed on next major release. Octavia will be the only supported method for loadbalancer resources. Users using octavia will have to remove 'use_octavia' option from the provider configuration block. Users using neutron-lbaas will have to migrate/upgrade to octavia. */ - @Import(name="useOctavia", json=true) - private @Nullable Output useOctavia; - - /** - * @return If set to `true`, API requests will go the Load Balancer service (Octavia) instead of the Networking service (Neutron). - * - * @deprecated - * Users not using loadbalancer resources can ignore this message. Support for neutron-lbaas will be removed on next major release. Octavia will be the only supported method for loadbalancer resources. Users using octavia will have to remove 'use_octavia' option from the provider configuration block. Users using neutron-lbaas will have to migrate/upgrade to octavia. - * - */ - @Deprecated /* Users not using loadbalancer resources can ignore this message. Support for neutron-lbaas will be removed on next major release. Octavia will be the only supported method for loadbalancer resources. Users using octavia will have to remove 'use_octavia' option from the provider configuration block. Users using neutron-lbaas will have to migrate/upgrade to octavia. */ - public Optional> useOctavia() { - return Optional.ofNullable(this.useOctavia); - } - /** * The ID of the domain where the user resides (Identity v3). * @@ -550,7 +527,6 @@ private ProviderArgs(ProviderArgs $) { this.tenantId = $.tenantId; this.tenantName = $.tenantName; this.token = $.token; - this.useOctavia = $.useOctavia; this.userDomainId = $.userDomainId; this.userDomainName = $.userDomainName; this.userId = $.userId; @@ -1155,35 +1131,6 @@ public Builder token(String token) { return token(Output.of(token)); } - /** - * @param useOctavia If set to `true`, API requests will go the Load Balancer service (Octavia) instead of the Networking service (Neutron). - * - * @return builder - * - * @deprecated - * Users not using loadbalancer resources can ignore this message. Support for neutron-lbaas will be removed on next major release. Octavia will be the only supported method for loadbalancer resources. Users using octavia will have to remove 'use_octavia' option from the provider configuration block. Users using neutron-lbaas will have to migrate/upgrade to octavia. - * - */ - @Deprecated /* Users not using loadbalancer resources can ignore this message. Support for neutron-lbaas will be removed on next major release. Octavia will be the only supported method for loadbalancer resources. Users using octavia will have to remove 'use_octavia' option from the provider configuration block. Users using neutron-lbaas will have to migrate/upgrade to octavia. */ - public Builder useOctavia(@Nullable Output useOctavia) { - $.useOctavia = useOctavia; - return this; - } - - /** - * @param useOctavia If set to `true`, API requests will go the Load Balancer service (Octavia) instead of the Networking service (Neutron). - * - * @return builder - * - * @deprecated - * Users not using loadbalancer resources can ignore this message. Support for neutron-lbaas will be removed on next major release. Octavia will be the only supported method for loadbalancer resources. Users using octavia will have to remove 'use_octavia' option from the provider configuration block. Users using neutron-lbaas will have to migrate/upgrade to octavia. - * - */ - @Deprecated /* Users not using loadbalancer resources can ignore this message. Support for neutron-lbaas will be removed on next major release. Octavia will be the only supported method for loadbalancer resources. Users using octavia will have to remove 'use_octavia' option from the provider configuration block. Users using neutron-lbaas will have to migrate/upgrade to octavia. */ - public Builder useOctavia(Boolean useOctavia) { - return useOctavia(Output.of(useOctavia)); - } - /** * @param userDomainId The ID of the domain where the user resides (Identity v3). * @@ -1276,7 +1223,6 @@ public ProviderArgs build() { $.insecure = Codegen.booleanProp("insecure").output().arg($.insecure).env("OS_INSECURE").getNullable(); $.region = Codegen.stringProp("region").output().arg($.region).env("OS_REGION_NAME").getNullable(); $.swauth = Codegen.booleanProp("swauth").output().arg($.swauth).env("OS_SWAUTH").getNullable(); - $.useOctavia = Codegen.booleanProp("useOctavia").output().arg($.useOctavia).env("OS_USE_OCTAVIA").getNullable(); return $; } } diff --git a/sdk/java/src/main/java/com/pulumi/openstack/blockstorage/Volume.java b/sdk/java/src/main/java/com/pulumi/openstack/blockstorage/Volume.java index eeaafef2b..761ad5aca 100644 --- a/sdk/java/src/main/java/com/pulumi/openstack/blockstorage/Volume.java +++ b/sdk/java/src/main/java/com/pulumi/openstack/blockstorage/Volume.java @@ -209,24 +209,6 @@ public Output> imageId() { public Output> metadata() { return this.metadata; } - /** - * (Optional) Allow the volume to be attached to more than one Compute instance. - * - * @deprecated - * multiattach parameter has been deprecated and removed on Openstack Bobcat. The default behavior is to use multiattach enabled volume types - * - */ - @Deprecated /* multiattach parameter has been deprecated and removed on Openstack Bobcat. The default behavior is to use multiattach enabled volume types */ - @Export(name="multiattach", refs={Boolean.class}, tree="[0]") - private Output multiattach; - - /** - * @return (Optional) Allow the volume to be attached to more than one Compute instance. - * - */ - public Output> multiattach() { - return Codegen.optional(this.multiattach); - } /** * A unique name for the volume. Changing this updates the * volume's name. diff --git a/sdk/java/src/main/java/com/pulumi/openstack/blockstorage/VolumeArgs.java b/sdk/java/src/main/java/com/pulumi/openstack/blockstorage/VolumeArgs.java index 56d0150e7..391138b15 100644 --- a/sdk/java/src/main/java/com/pulumi/openstack/blockstorage/VolumeArgs.java +++ b/sdk/java/src/main/java/com/pulumi/openstack/blockstorage/VolumeArgs.java @@ -147,29 +147,6 @@ public Optional>> metadata() { return Optional.ofNullable(this.metadata); } - /** - * (Optional) Allow the volume to be attached to more than one Compute instance. - * - * @deprecated - * multiattach parameter has been deprecated and removed on Openstack Bobcat. The default behavior is to use multiattach enabled volume types - * - */ - @Deprecated /* multiattach parameter has been deprecated and removed on Openstack Bobcat. The default behavior is to use multiattach enabled volume types */ - @Import(name="multiattach") - private @Nullable Output multiattach; - - /** - * @return (Optional) Allow the volume to be attached to more than one Compute instance. - * - * @deprecated - * multiattach parameter has been deprecated and removed on Openstack Bobcat. The default behavior is to use multiattach enabled volume types - * - */ - @Deprecated /* multiattach parameter has been deprecated and removed on Openstack Bobcat. The default behavior is to use multiattach enabled volume types */ - public Optional> multiattach() { - return Optional.ofNullable(this.multiattach); - } - /** * A unique name for the volume. Changing this updates the * volume's name. @@ -318,7 +295,6 @@ private VolumeArgs(VolumeArgs $) { this.enableOnlineResize = $.enableOnlineResize; this.imageId = $.imageId; this.metadata = $.metadata; - this.multiattach = $.multiattach; this.name = $.name; this.region = $.region; this.schedulerHints = $.schedulerHints; @@ -514,35 +490,6 @@ public Builder metadata(Map metadata) { return metadata(Output.of(metadata)); } - /** - * @param multiattach (Optional) Allow the volume to be attached to more than one Compute instance. - * - * @return builder - * - * @deprecated - * multiattach parameter has been deprecated and removed on Openstack Bobcat. The default behavior is to use multiattach enabled volume types - * - */ - @Deprecated /* multiattach parameter has been deprecated and removed on Openstack Bobcat. The default behavior is to use multiattach enabled volume types */ - public Builder multiattach(@Nullable Output multiattach) { - $.multiattach = multiattach; - return this; - } - - /** - * @param multiattach (Optional) Allow the volume to be attached to more than one Compute instance. - * - * @return builder - * - * @deprecated - * multiattach parameter has been deprecated and removed on Openstack Bobcat. The default behavior is to use multiattach enabled volume types - * - */ - @Deprecated /* multiattach parameter has been deprecated and removed on Openstack Bobcat. The default behavior is to use multiattach enabled volume types */ - public Builder multiattach(Boolean multiattach) { - return multiattach(Output.of(multiattach)); - } - /** * @param name A unique name for the volume. Changing this updates the * volume's name. diff --git a/sdk/java/src/main/java/com/pulumi/openstack/blockstorage/VolumeAttachV2.java b/sdk/java/src/main/java/com/pulumi/openstack/blockstorage/VolumeAttachV2.java index b0ce3db6b..7bd03916c 100644 --- a/sdk/java/src/main/java/com/pulumi/openstack/blockstorage/VolumeAttachV2.java +++ b/sdk/java/src/main/java/com/pulumi/openstack/blockstorage/VolumeAttachV2.java @@ -204,18 +204,6 @@ public Output hostName() { public Output> initiator() { return Codegen.optional(this.initiator); } - /** - * @deprecated - * instance_id is no longer used in this resource - * - */ - @Deprecated /* instance_id is no longer used in this resource */ - @Export(name="instanceId", refs={String.class}, tree="[0]") - private Output instanceId; - - public Output> instanceId() { - return Codegen.optional(this.instanceId); - } /** * The IP address of the `host_name` above. * diff --git a/sdk/java/src/main/java/com/pulumi/openstack/blockstorage/VolumeAttachV2Args.java b/sdk/java/src/main/java/com/pulumi/openstack/blockstorage/VolumeAttachV2Args.java index fb14a827a..8bcb94df1 100644 --- a/sdk/java/src/main/java/com/pulumi/openstack/blockstorage/VolumeAttachV2Args.java +++ b/sdk/java/src/main/java/com/pulumi/openstack/blockstorage/VolumeAttachV2Args.java @@ -86,25 +86,6 @@ public Optional> initiator() { return Optional.ofNullable(this.initiator); } - /** - * @deprecated - * instance_id is no longer used in this resource - * - */ - @Deprecated /* instance_id is no longer used in this resource */ - @Import(name="instanceId") - private @Nullable Output instanceId; - - /** - * @deprecated - * instance_id is no longer used in this resource - * - */ - @Deprecated /* instance_id is no longer used in this resource */ - public Optional> instanceId() { - return Optional.ofNullable(this.instanceId); - } - /** * The IP address of the `host_name` above. * @@ -240,7 +221,6 @@ private VolumeAttachV2Args(VolumeAttachV2Args $) { this.device = $.device; this.hostName = $.hostName; this.initiator = $.initiator; - this.instanceId = $.instanceId; this.ipAddress = $.ipAddress; this.multipath = $.multipath; this.osType = $.osType; @@ -361,31 +341,6 @@ public Builder initiator(String initiator) { return initiator(Output.of(initiator)); } - /** - * @return builder - * - * @deprecated - * instance_id is no longer used in this resource - * - */ - @Deprecated /* instance_id is no longer used in this resource */ - public Builder instanceId(@Nullable Output instanceId) { - $.instanceId = instanceId; - return this; - } - - /** - * @return builder - * - * @deprecated - * instance_id is no longer used in this resource - * - */ - @Deprecated /* instance_id is no longer used in this resource */ - public Builder instanceId(String instanceId) { - return instanceId(Output.of(instanceId)); - } - /** * @param ipAddress The IP address of the `host_name` above. * diff --git a/sdk/java/src/main/java/com/pulumi/openstack/blockstorage/VolumeTypeV3.java b/sdk/java/src/main/java/com/pulumi/openstack/blockstorage/VolumeTypeV3.java index 7fe0bc45b..8869c6f91 100644 --- a/sdk/java/src/main/java/com/pulumi/openstack/blockstorage/VolumeTypeV3.java +++ b/sdk/java/src/main/java/com/pulumi/openstack/blockstorage/VolumeTypeV3.java @@ -23,6 +23,8 @@ * * ## Example Usage * + * ### Basic Volume Type + * * <!--Start PulumiCodeChooser --> *
  * {@code
@@ -61,6 +63,43 @@
  * 
* <!--End PulumiCodeChooser --> * + * ### Volume Type with multiattach enabled + * + * <!--Start PulumiCodeChooser --> + *
+ * {@code
+ * package generated_program;
+ * 
+ * import com.pulumi.Context;
+ * import com.pulumi.Pulumi;
+ * import com.pulumi.core.Output;
+ * import com.pulumi.openstack.blockstorage.VolumeTypeV3;
+ * import com.pulumi.openstack.blockstorage.VolumeTypeV3Args;
+ * import java.util.List;
+ * import java.util.ArrayList;
+ * import java.util.Map;
+ * import java.io.File;
+ * import java.nio.file.Files;
+ * import java.nio.file.Paths;
+ * 
+ * public class App {
+ *     public static void main(String[] args) {
+ *         Pulumi.run(App::stack);
+ *     }
+ * 
+ *     public static void stack(Context ctx) {
+ *         var multiattach = new VolumeTypeV3("multiattach", VolumeTypeV3Args.builder()        
+ *             .name("multiattach")
+ *             .description("Multiattach-enabled volume type")
+ *             .extraSpecs(Map.of("multiattach", " True"))
+ *             .build());
+ * 
+ *     }
+ * }
+ * }
+ * 
+ * <!--End PulumiCodeChooser --> + * * ## Import * * Volume types can be imported using the `volume_type_id`, e.g. diff --git a/sdk/java/src/main/java/com/pulumi/openstack/blockstorage/inputs/VolumeAttachV2State.java b/sdk/java/src/main/java/com/pulumi/openstack/blockstorage/inputs/VolumeAttachV2State.java index 7eff88137..8d4ddc9da 100644 --- a/sdk/java/src/main/java/com/pulumi/openstack/blockstorage/inputs/VolumeAttachV2State.java +++ b/sdk/java/src/main/java/com/pulumi/openstack/blockstorage/inputs/VolumeAttachV2State.java @@ -121,25 +121,6 @@ public Optional> initiator() { return Optional.ofNullable(this.initiator); } - /** - * @deprecated - * instance_id is no longer used in this resource - * - */ - @Deprecated /* instance_id is no longer used in this resource */ - @Import(name="instanceId") - private @Nullable Output instanceId; - - /** - * @deprecated - * instance_id is no longer used in this resource - * - */ - @Deprecated /* instance_id is no longer used in this resource */ - public Optional> instanceId() { - return Optional.ofNullable(this.instanceId); - } - /** * The IP address of the `host_name` above. * @@ -292,7 +273,6 @@ private VolumeAttachV2State(VolumeAttachV2State $) { this.driverVolumeType = $.driverVolumeType; this.hostName = $.hostName; this.initiator = $.initiator; - this.instanceId = $.instanceId; this.ipAddress = $.ipAddress; this.mountPointBase = $.mountPointBase; this.multipath = $.multipath; @@ -460,31 +440,6 @@ public Builder initiator(String initiator) { return initiator(Output.of(initiator)); } - /** - * @return builder - * - * @deprecated - * instance_id is no longer used in this resource - * - */ - @Deprecated /* instance_id is no longer used in this resource */ - public Builder instanceId(@Nullable Output instanceId) { - $.instanceId = instanceId; - return this; - } - - /** - * @return builder - * - * @deprecated - * instance_id is no longer used in this resource - * - */ - @Deprecated /* instance_id is no longer used in this resource */ - public Builder instanceId(String instanceId) { - return instanceId(Output.of(instanceId)); - } - /** * @param ipAddress The IP address of the `host_name` above. * diff --git a/sdk/java/src/main/java/com/pulumi/openstack/blockstorage/inputs/VolumeState.java b/sdk/java/src/main/java/com/pulumi/openstack/blockstorage/inputs/VolumeState.java index 4b04a141d..0a400061d 100644 --- a/sdk/java/src/main/java/com/pulumi/openstack/blockstorage/inputs/VolumeState.java +++ b/sdk/java/src/main/java/com/pulumi/openstack/blockstorage/inputs/VolumeState.java @@ -166,29 +166,6 @@ public Optional>> metadata() { return Optional.ofNullable(this.metadata); } - /** - * (Optional) Allow the volume to be attached to more than one Compute instance. - * - * @deprecated - * multiattach parameter has been deprecated and removed on Openstack Bobcat. The default behavior is to use multiattach enabled volume types - * - */ - @Deprecated /* multiattach parameter has been deprecated and removed on Openstack Bobcat. The default behavior is to use multiattach enabled volume types */ - @Import(name="multiattach") - private @Nullable Output multiattach; - - /** - * @return (Optional) Allow the volume to be attached to more than one Compute instance. - * - * @deprecated - * multiattach parameter has been deprecated and removed on Openstack Bobcat. The default behavior is to use multiattach enabled volume types - * - */ - @Deprecated /* multiattach parameter has been deprecated and removed on Openstack Bobcat. The default behavior is to use multiattach enabled volume types */ - public Optional> multiattach() { - return Optional.ofNullable(this.multiattach); - } - /** * A unique name for the volume. Changing this updates the * volume's name. @@ -338,7 +315,6 @@ private VolumeState(VolumeState $) { this.enableOnlineResize = $.enableOnlineResize; this.imageId = $.imageId; this.metadata = $.metadata; - this.multiattach = $.multiattach; this.name = $.name; this.region = $.region; this.schedulerHints = $.schedulerHints; @@ -571,35 +547,6 @@ public Builder metadata(Map metadata) { return metadata(Output.of(metadata)); } - /** - * @param multiattach (Optional) Allow the volume to be attached to more than one Compute instance. - * - * @return builder - * - * @deprecated - * multiattach parameter has been deprecated and removed on Openstack Bobcat. The default behavior is to use multiattach enabled volume types - * - */ - @Deprecated /* multiattach parameter has been deprecated and removed on Openstack Bobcat. The default behavior is to use multiattach enabled volume types */ - public Builder multiattach(@Nullable Output multiattach) { - $.multiattach = multiattach; - return this; - } - - /** - * @param multiattach (Optional) Allow the volume to be attached to more than one Compute instance. - * - * @return builder - * - * @deprecated - * multiattach parameter has been deprecated and removed on Openstack Bobcat. The default behavior is to use multiattach enabled volume types - * - */ - @Deprecated /* multiattach parameter has been deprecated and removed on Openstack Bobcat. The default behavior is to use multiattach enabled volume types */ - public Builder multiattach(Boolean multiattach) { - return multiattach(Output.of(multiattach)); - } - /** * @param name A unique name for the volume. Changing this updates the * volume's name. diff --git a/sdk/java/src/main/java/com/pulumi/openstack/blockstorage/outputs/GetVolumeV3Result.java b/sdk/java/src/main/java/com/pulumi/openstack/blockstorage/outputs/GetVolumeV3Result.java index 24238cd62..2d198432c 100644 --- a/sdk/java/src/main/java/com/pulumi/openstack/blockstorage/outputs/GetVolumeV3Result.java +++ b/sdk/java/src/main/java/com/pulumi/openstack/blockstorage/outputs/GetVolumeV3Result.java @@ -6,7 +6,6 @@ import com.pulumi.core.annotations.CustomType; import com.pulumi.exceptions.MissingRequiredPropertyException; import com.pulumi.openstack.blockstorage.outputs.GetVolumeV3Attachment; -import java.lang.Boolean; import java.lang.Integer; import java.lang.Object; import java.lang.String; @@ -43,11 +42,6 @@ public final class GetVolumeV3Result { * */ private Map metadata; - /** - * @return Indicates if the volume can be attached to more then one server. - * - */ - private Boolean multiattach; /** * @return See Argument Reference above. * @@ -117,13 +111,6 @@ public String id() { public Map metadata() { return this.metadata; } - /** - * @return Indicates if the volume can be attached to more then one server. - * - */ - public Boolean multiattach() { - return this.multiattach; - } /** * @return See Argument Reference above. * @@ -181,7 +168,6 @@ public static final class Builder { private String host; private String id; private Map metadata; - private Boolean multiattach; private String name; private String region; private Integer size; @@ -196,7 +182,6 @@ public Builder(GetVolumeV3Result defaults) { this.host = defaults.host; this.id = defaults.id; this.metadata = defaults.metadata; - this.multiattach = defaults.multiattach; this.name = defaults.name; this.region = defaults.region; this.size = defaults.size; @@ -249,14 +234,6 @@ public Builder metadata(Map metadata) { return this; } @CustomType.Setter - public Builder multiattach(Boolean multiattach) { - if (multiattach == null) { - throw new MissingRequiredPropertyException("GetVolumeV3Result", "multiattach"); - } - this.multiattach = multiattach; - return this; - } - @CustomType.Setter public Builder name(String name) { if (name == null) { throw new MissingRequiredPropertyException("GetVolumeV3Result", "name"); @@ -311,7 +288,6 @@ public GetVolumeV3Result build() { _resultValue.host = host; _resultValue.id = id; _resultValue.metadata = metadata; - _resultValue.multiattach = multiattach; _resultValue.name = name; _resultValue.region = region; _resultValue.size = size; diff --git a/sdk/java/src/main/java/com/pulumi/openstack/compute/Instance.java b/sdk/java/src/main/java/com/pulumi/openstack/compute/Instance.java index b778df111..db698c42c 100644 --- a/sdk/java/src/main/java/com/pulumi/openstack/compute/Instance.java +++ b/sdk/java/src/main/java/com/pulumi/openstack/compute/Instance.java @@ -15,7 +15,6 @@ import com.pulumi.openstack.compute.outputs.InstancePersonality; import com.pulumi.openstack.compute.outputs.InstanceSchedulerHint; import com.pulumi.openstack.compute.outputs.InstanceVendorOptions; -import com.pulumi.openstack.compute.outputs.InstanceVolume; import java.lang.Boolean; import java.lang.Object; import java.lang.String; @@ -220,18 +219,6 @@ public Output flavorId() { public Output flavorName() { return this.flavorName; } - /** - * @deprecated - * Use the openstack.compute.FloatingIpAssociate resource instead - * - */ - @Deprecated /* Use the openstack.compute.FloatingIpAssociate resource instead */ - @Export(name="floatingIp", refs={String.class}, tree="[0]") - private Output floatingIp; - - public Output> floatingIp() { - return Codegen.optional(this.floatingIp); - } /** * Whether to force the OpenStack instance to be * forcefully deleted. This is useful for environments that have reclaim / soft @@ -550,18 +537,6 @@ public Output> userData() { public Output> vendorOptions() { return Codegen.optional(this.vendorOptions); } - /** - * @deprecated - * Use block_device or openstack.compute.VolumeAttach instead - * - */ - @Deprecated /* Use block_device or openstack.compute.VolumeAttach instead */ - @Export(name="volumes", refs={List.class,InstanceVolume.class}, tree="[0,1]") - private Output> volumes; - - public Output>> volumes() { - return Codegen.optional(this.volumes); - } /** * diff --git a/sdk/java/src/main/java/com/pulumi/openstack/compute/InstanceArgs.java b/sdk/java/src/main/java/com/pulumi/openstack/compute/InstanceArgs.java index bbbdd7031..905921c67 100644 --- a/sdk/java/src/main/java/com/pulumi/openstack/compute/InstanceArgs.java +++ b/sdk/java/src/main/java/com/pulumi/openstack/compute/InstanceArgs.java @@ -10,7 +10,6 @@ import com.pulumi.openstack.compute.inputs.InstancePersonalityArgs; import com.pulumi.openstack.compute.inputs.InstanceSchedulerHintArgs; import com.pulumi.openstack.compute.inputs.InstanceVendorOptionsArgs; -import com.pulumi.openstack.compute.inputs.InstanceVolumeArgs; import java.lang.Boolean; import java.lang.Object; import java.lang.String; @@ -192,25 +191,6 @@ public Optional> flavorName() { return Optional.ofNullable(this.flavorName); } - /** - * @deprecated - * Use the openstack.compute.FloatingIpAssociate resource instead - * - */ - @Deprecated /* Use the openstack.compute.FloatingIpAssociate resource instead */ - @Import(name="floatingIp") - private @Nullable Output floatingIp; - - /** - * @deprecated - * Use the openstack.compute.FloatingIpAssociate resource instead - * - */ - @Deprecated /* Use the openstack.compute.FloatingIpAssociate resource instead */ - public Optional> floatingIp() { - return Optional.ofNullable(this.floatingIp); - } - /** * Whether to force the OpenStack instance to be * forcefully deleted. This is useful for environments that have reclaim / soft @@ -532,25 +512,6 @@ public Optional> vendorOptions() { return Optional.ofNullable(this.vendorOptions); } - /** - * @deprecated - * Use block_device or openstack.compute.VolumeAttach instead - * - */ - @Deprecated /* Use block_device or openstack.compute.VolumeAttach instead */ - @Import(name="volumes") - private @Nullable Output> volumes; - - /** - * @deprecated - * Use block_device or openstack.compute.VolumeAttach instead - * - */ - @Deprecated /* Use block_device or openstack.compute.VolumeAttach instead */ - public Optional>> volumes() { - return Optional.ofNullable(this.volumes); - } - private InstanceArgs() {} private InstanceArgs(InstanceArgs $) { @@ -563,7 +524,6 @@ private InstanceArgs(InstanceArgs $) { this.configDrive = $.configDrive; this.flavorId = $.flavorId; this.flavorName = $.flavorName; - this.floatingIp = $.floatingIp; this.forceDelete = $.forceDelete; this.imageId = $.imageId; this.imageName = $.imageName; @@ -581,7 +541,6 @@ private InstanceArgs(InstanceArgs $) { this.tags = $.tags; this.userData = $.userData; this.vendorOptions = $.vendorOptions; - this.volumes = $.volumes; } public static Builder builder() { @@ -838,31 +797,6 @@ public Builder flavorName(String flavorName) { return flavorName(Output.of(flavorName)); } - /** - * @return builder - * - * @deprecated - * Use the openstack.compute.FloatingIpAssociate resource instead - * - */ - @Deprecated /* Use the openstack.compute.FloatingIpAssociate resource instead */ - public Builder floatingIp(@Nullable Output floatingIp) { - $.floatingIp = floatingIp; - return this; - } - - /** - * @return builder - * - * @deprecated - * Use the openstack.compute.FloatingIpAssociate resource instead - * - */ - @Deprecated /* Use the openstack.compute.FloatingIpAssociate resource instead */ - public Builder floatingIp(String floatingIp) { - return floatingIp(Output.of(floatingIp)); - } - /** * @param forceDelete Whether to force the OpenStack instance to be * forcefully deleted. This is useful for environments that have reclaim / soft @@ -1347,43 +1281,6 @@ public Builder vendorOptions(InstanceVendorOptionsArgs vendorOptions) { return vendorOptions(Output.of(vendorOptions)); } - /** - * @return builder - * - * @deprecated - * Use block_device or openstack.compute.VolumeAttach instead - * - */ - @Deprecated /* Use block_device or openstack.compute.VolumeAttach instead */ - public Builder volumes(@Nullable Output> volumes) { - $.volumes = volumes; - return this; - } - - /** - * @return builder - * - * @deprecated - * Use block_device or openstack.compute.VolumeAttach instead - * - */ - @Deprecated /* Use block_device or openstack.compute.VolumeAttach instead */ - public Builder volumes(List volumes) { - return volumes(Output.of(volumes)); - } - - /** - * @return builder - * - * @deprecated - * Use block_device or openstack.compute.VolumeAttach instead - * - */ - @Deprecated /* Use block_device or openstack.compute.VolumeAttach instead */ - public Builder volumes(InstanceVolumeArgs... volumes) { - return volumes(List.of(volumes)); - } - public InstanceArgs build() { return $; } diff --git a/sdk/java/src/main/java/com/pulumi/openstack/compute/ServerGroup.java b/sdk/java/src/main/java/com/pulumi/openstack/compute/ServerGroup.java index 0084fa35d..1a8b3d62f 100644 --- a/sdk/java/src/main/java/com/pulumi/openstack/compute/ServerGroup.java +++ b/sdk/java/src/main/java/com/pulumi/openstack/compute/ServerGroup.java @@ -35,6 +35,10 @@ * import com.pulumi.core.Output; * import com.pulumi.openstack.compute.ServerGroup; * import com.pulumi.openstack.compute.ServerGroupArgs; + * import com.pulumi.openstack.compute.Instance; + * import com.pulumi.openstack.compute.InstanceArgs; + * import com.pulumi.openstack.compute.inputs.InstanceSchedulerHintArgs; + * import com.pulumi.openstack.compute.inputs.InstanceNetworkArgs; * import java.util.List; * import java.util.ArrayList; * import java.util.Map; @@ -53,6 +57,18 @@ * .policies("anti-affinity") * .build()); * + * var test_instance = new Instance("test-instance", InstanceArgs.builder() + * .name("my-instance") + * .imageId("ad091b52-742f-469e-8f3c-fd81cadf0743") + * .flavorId("3") + * .schedulerHints(InstanceSchedulerHintArgs.builder() + * .group(test_sg.id()) + * .build()) + * .networks(InstanceNetworkArgs.builder() + * .name("my_network") + * .build()) + * .build()); + * * } * } * } @@ -72,6 +88,10 @@ * import com.pulumi.openstack.compute.ServerGroup; * import com.pulumi.openstack.compute.ServerGroupArgs; * import com.pulumi.openstack.compute.inputs.ServerGroupRulesArgs; + * import com.pulumi.openstack.compute.Instance; + * import com.pulumi.openstack.compute.InstanceArgs; + * import com.pulumi.openstack.compute.inputs.InstanceSchedulerHintArgs; + * import com.pulumi.openstack.compute.inputs.InstanceNetworkArgs; * import java.util.List; * import java.util.ArrayList; * import java.util.Map; @@ -93,6 +113,18 @@ * .build()) * .build()); * + * var test_instance = new Instance("test-instance", InstanceArgs.builder() + * .name("my-instance") + * .imageId("ad091b52-742f-469e-8f3c-fd81cadf0743") + * .flavorId("3") + * .schedulerHints(InstanceSchedulerHintArgs.builder() + * .group(test_sg.id()) + * .build()) + * .networks(InstanceNetworkArgs.builder() + * .name("my_network") + * .build()) + * .build()); + * * } * } * } diff --git a/sdk/java/src/main/java/com/pulumi/openstack/compute/VolumeAttach.java b/sdk/java/src/main/java/com/pulumi/openstack/compute/VolumeAttach.java index 69ad83277..0be156dc3 100644 --- a/sdk/java/src/main/java/com/pulumi/openstack/compute/VolumeAttach.java +++ b/sdk/java/src/main/java/com/pulumi/openstack/compute/VolumeAttach.java @@ -75,7 +75,7 @@ * ### Using Multiattach-enabled volumes * * Multiattach Volumes are dependent upon your OpenStack cloud and not all - * clouds support multiattach. + * clouds support multiattach. Multiattach volumes require a volume_type that has [multiattach enabled](https://docs.openstack.org/cinder/latest/admin/volume-multiattach.html#multiattach-volume-type). * * <!--Start PulumiCodeChooser --> *
@@ -108,7 +108,7 @@
  *         var volume1 = new Volume("volume1", VolumeArgs.builder()        
  *             .name("volume_1")
  *             .size(1)
- *             .multiattach(true)
+ *             .volumeType("multiattach")
  *             .build());
  * 
  *         var instance1 = new Instance("instance1", InstanceArgs.builder()        
@@ -210,6 +210,24 @@ public Output> multiattach() {
     public Output region() {
         return this.region;
     }
+    /**
+     * Add a device role tag that is applied to the volume when
+     * attaching it to the VM. Changing this creates a new volume attachment with
+     * the new tag. Requires microversion >= 2.49.
+     * 
+     */
+    @Export(name="tag", refs={String.class}, tree="[0]")
+    private Output tag;
+
+    /**
+     * @return Add a device role tag that is applied to the volume when
+     * attaching it to the VM. Changing this creates a new volume attachment with
+     * the new tag. Requires microversion >= 2.49.
+     * 
+     */
+    public Output> tag() {
+        return Codegen.optional(this.tag);
+    }
     /**
      * Map of additional vendor-specific options.
      * Supported options are described below.
diff --git a/sdk/java/src/main/java/com/pulumi/openstack/compute/VolumeAttachArgs.java b/sdk/java/src/main/java/com/pulumi/openstack/compute/VolumeAttachArgs.java
index 546aac230..51de89f60 100644
--- a/sdk/java/src/main/java/com/pulumi/openstack/compute/VolumeAttachArgs.java
+++ b/sdk/java/src/main/java/com/pulumi/openstack/compute/VolumeAttachArgs.java
@@ -76,6 +76,25 @@ public Optional> region() {
         return Optional.ofNullable(this.region);
     }
 
+    /**
+     * Add a device role tag that is applied to the volume when
+     * attaching it to the VM. Changing this creates a new volume attachment with
+     * the new tag. Requires microversion >= 2.49.
+     * 
+     */
+    @Import(name="tag")
+    private @Nullable Output tag;
+
+    /**
+     * @return Add a device role tag that is applied to the volume when
+     * attaching it to the VM. Changing this creates a new volume attachment with
+     * the new tag. Requires microversion >= 2.49.
+     * 
+     */
+    public Optional> tag() {
+        return Optional.ofNullable(this.tag);
+    }
+
     /**
      * Map of additional vendor-specific options.
      * Supported options are described below.
@@ -115,6 +134,7 @@ private VolumeAttachArgs(VolumeAttachArgs $) {
         this.instanceId = $.instanceId;
         this.multiattach = $.multiattach;
         this.region = $.region;
+        this.tag = $.tag;
         this.vendorOptions = $.vendorOptions;
         this.volumeId = $.volumeId;
     }
@@ -215,6 +235,31 @@ public Builder region(String region) {
             return region(Output.of(region));
         }
 
+        /**
+         * @param tag Add a device role tag that is applied to the volume when
+         * attaching it to the VM. Changing this creates a new volume attachment with
+         * the new tag. Requires microversion >= 2.49.
+         * 
+         * @return builder
+         * 
+         */
+        public Builder tag(@Nullable Output tag) {
+            $.tag = tag;
+            return this;
+        }
+
+        /**
+         * @param tag Add a device role tag that is applied to the volume when
+         * attaching it to the VM. Changing this creates a new volume attachment with
+         * the new tag. Requires microversion >= 2.49.
+         * 
+         * @return builder
+         * 
+         */
+        public Builder tag(String tag) {
+            return tag(Output.of(tag));
+        }
+
         /**
          * @param vendorOptions Map of additional vendor-specific options.
          * Supported options are described below.
diff --git a/sdk/java/src/main/java/com/pulumi/openstack/compute/inputs/InstanceNetworkArgs.java b/sdk/java/src/main/java/com/pulumi/openstack/compute/inputs/InstanceNetworkArgs.java
index b79d66434..18bb7be41 100644
--- a/sdk/java/src/main/java/com/pulumi/openstack/compute/inputs/InstanceNetworkArgs.java
+++ b/sdk/java/src/main/java/com/pulumi/openstack/compute/inputs/InstanceNetworkArgs.java
@@ -57,25 +57,6 @@ public Optional> fixedIpV6() {
         return Optional.ofNullable(this.fixedIpV6);
     }
 
-    /**
-     * @deprecated
-     * Use the openstack.compute.FloatingIpAssociate resource instead
-     * 
-     */
-    @Deprecated /* Use the openstack.compute.FloatingIpAssociate resource instead */
-    @Import(name="floatingIp")
-    private @Nullable Output floatingIp;
-
-    /**
-     * @deprecated
-     * Use the openstack.compute.FloatingIpAssociate resource instead
-     * 
-     */
-    @Deprecated /* Use the openstack.compute.FloatingIpAssociate resource instead */
-    public Optional> floatingIp() {
-        return Optional.ofNullable(this.floatingIp);
-    }
-
     @Import(name="mac")
     private @Nullable Output mac;
 
@@ -140,7 +121,6 @@ private InstanceNetworkArgs(InstanceNetworkArgs $) {
         this.accessNetwork = $.accessNetwork;
         this.fixedIpV4 = $.fixedIpV4;
         this.fixedIpV6 = $.fixedIpV6;
-        this.floatingIp = $.floatingIp;
         this.mac = $.mac;
         this.name = $.name;
         this.port = $.port;
@@ -220,31 +200,6 @@ public Builder fixedIpV6(String fixedIpV6) {
             return fixedIpV6(Output.of(fixedIpV6));
         }
 
-        /**
-         * @return builder
-         * 
-         * @deprecated
-         * Use the openstack.compute.FloatingIpAssociate resource instead
-         * 
-         */
-        @Deprecated /* Use the openstack.compute.FloatingIpAssociate resource instead */
-        public Builder floatingIp(@Nullable Output floatingIp) {
-            $.floatingIp = floatingIp;
-            return this;
-        }
-
-        /**
-         * @return builder
-         * 
-         * @deprecated
-         * Use the openstack.compute.FloatingIpAssociate resource instead
-         * 
-         */
-        @Deprecated /* Use the openstack.compute.FloatingIpAssociate resource instead */
-        public Builder floatingIp(String floatingIp) {
-            return floatingIp(Output.of(floatingIp));
-        }
-
         public Builder mac(@Nullable Output mac) {
             $.mac = mac;
             return this;
diff --git a/sdk/java/src/main/java/com/pulumi/openstack/compute/inputs/InstanceSchedulerHintArgs.java b/sdk/java/src/main/java/com/pulumi/openstack/compute/inputs/InstanceSchedulerHintArgs.java
index 9b87fbd79..4c409467f 100644
--- a/sdk/java/src/main/java/com/pulumi/openstack/compute/inputs/InstanceSchedulerHintArgs.java
+++ b/sdk/java/src/main/java/com/pulumi/openstack/compute/inputs/InstanceSchedulerHintArgs.java
@@ -86,7 +86,8 @@ public Optional>> differentHosts() {
 
     /**
      * A UUID of a Server Group. The instance will be placed
-     * into that group.
+     * into that group. See reference
+     * for details on managing servergroup resources
      * 
      */
     @Import(name="group")
@@ -94,7 +95,8 @@ public Optional>> differentHosts() {
 
     /**
      * @return A UUID of a Server Group. The instance will be placed
-     * into that group.
+     * into that group. See reference
+     * for details on managing servergroup resources
      * 
      */
     public Optional> group() {
@@ -302,7 +304,8 @@ public Builder differentHosts(String... differentHosts) {
 
         /**
          * @param group A UUID of a Server Group. The instance will be placed
-         * into that group.
+         * into that group. See reference
+         * for details on managing servergroup resources
          * 
          * @return builder
          * 
@@ -314,7 +317,8 @@ public Builder group(@Nullable Output group) {
 
         /**
          * @param group A UUID of a Server Group. The instance will be placed
-         * into that group.
+         * into that group. See reference
+         * for details on managing servergroup resources
          * 
          * @return builder
          * 
diff --git a/sdk/java/src/main/java/com/pulumi/openstack/compute/inputs/InstanceState.java b/sdk/java/src/main/java/com/pulumi/openstack/compute/inputs/InstanceState.java
index 3dac6a2b6..2c39974e5 100644
--- a/sdk/java/src/main/java/com/pulumi/openstack/compute/inputs/InstanceState.java
+++ b/sdk/java/src/main/java/com/pulumi/openstack/compute/inputs/InstanceState.java
@@ -10,7 +10,6 @@
 import com.pulumi.openstack.compute.inputs.InstancePersonalityArgs;
 import com.pulumi.openstack.compute.inputs.InstanceSchedulerHintArgs;
 import com.pulumi.openstack.compute.inputs.InstanceVendorOptionsArgs;
-import com.pulumi.openstack.compute.inputs.InstanceVolumeArgs;
 import java.lang.Boolean;
 import java.lang.Object;
 import java.lang.String;
@@ -231,25 +230,6 @@ public Optional> flavorName() {
         return Optional.ofNullable(this.flavorName);
     }
 
-    /**
-     * @deprecated
-     * Use the openstack.compute.FloatingIpAssociate resource instead
-     * 
-     */
-    @Deprecated /* Use the openstack.compute.FloatingIpAssociate resource instead */
-    @Import(name="floatingIp")
-    private @Nullable Output floatingIp;
-
-    /**
-     * @deprecated
-     * Use the openstack.compute.FloatingIpAssociate resource instead
-     * 
-     */
-    @Deprecated /* Use the openstack.compute.FloatingIpAssociate resource instead */
-    public Optional> floatingIp() {
-        return Optional.ofNullable(this.floatingIp);
-    }
-
     /**
      * Whether to force the OpenStack instance to be
      * forcefully deleted. This is useful for environments that have reclaim / soft
@@ -586,25 +566,6 @@ public Optional> vendorOptions() {
         return Optional.ofNullable(this.vendorOptions);
     }
 
-    /**
-     * @deprecated
-     * Use block_device or openstack.compute.VolumeAttach instead
-     * 
-     */
-    @Deprecated /* Use block_device or openstack.compute.VolumeAttach instead */
-    @Import(name="volumes")
-    private @Nullable Output> volumes;
-
-    /**
-     * @deprecated
-     * Use block_device or openstack.compute.VolumeAttach instead
-     * 
-     */
-    @Deprecated /* Use block_device or openstack.compute.VolumeAttach instead */
-    public Optional>> volumes() {
-        return Optional.ofNullable(this.volumes);
-    }
-
     private InstanceState() {}
 
     private InstanceState(InstanceState $) {
@@ -620,7 +581,6 @@ private InstanceState(InstanceState $) {
         this.created = $.created;
         this.flavorId = $.flavorId;
         this.flavorName = $.flavorName;
-        this.floatingIp = $.floatingIp;
         this.forceDelete = $.forceDelete;
         this.imageId = $.imageId;
         this.imageName = $.imageName;
@@ -639,7 +599,6 @@ private InstanceState(InstanceState $) {
         this.updated = $.updated;
         this.userData = $.userData;
         this.vendorOptions = $.vendorOptions;
-        this.volumes = $.volumes;
     }
 
     public static Builder builder() {
@@ -960,31 +919,6 @@ public Builder flavorName(String flavorName) {
             return flavorName(Output.of(flavorName));
         }
 
-        /**
-         * @return builder
-         * 
-         * @deprecated
-         * Use the openstack.compute.FloatingIpAssociate resource instead
-         * 
-         */
-        @Deprecated /* Use the openstack.compute.FloatingIpAssociate resource instead */
-        public Builder floatingIp(@Nullable Output floatingIp) {
-            $.floatingIp = floatingIp;
-            return this;
-        }
-
-        /**
-         * @return builder
-         * 
-         * @deprecated
-         * Use the openstack.compute.FloatingIpAssociate resource instead
-         * 
-         */
-        @Deprecated /* Use the openstack.compute.FloatingIpAssociate resource instead */
-        public Builder floatingIp(String floatingIp) {
-            return floatingIp(Output.of(floatingIp));
-        }
-
         /**
          * @param forceDelete Whether to force the OpenStack instance to be
          * forcefully deleted. This is useful for environments that have reclaim / soft
@@ -1490,43 +1424,6 @@ public Builder vendorOptions(InstanceVendorOptionsArgs vendorOptions) {
             return vendorOptions(Output.of(vendorOptions));
         }
 
-        /**
-         * @return builder
-         * 
-         * @deprecated
-         * Use block_device or openstack.compute.VolumeAttach instead
-         * 
-         */
-        @Deprecated /* Use block_device or openstack.compute.VolumeAttach instead */
-        public Builder volumes(@Nullable Output> volumes) {
-            $.volumes = volumes;
-            return this;
-        }
-
-        /**
-         * @return builder
-         * 
-         * @deprecated
-         * Use block_device or openstack.compute.VolumeAttach instead
-         * 
-         */
-        @Deprecated /* Use block_device or openstack.compute.VolumeAttach instead */
-        public Builder volumes(List volumes) {
-            return volumes(Output.of(volumes));
-        }
-
-        /**
-         * @return builder
-         * 
-         * @deprecated
-         * Use block_device or openstack.compute.VolumeAttach instead
-         * 
-         */
-        @Deprecated /* Use block_device or openstack.compute.VolumeAttach instead */
-        public Builder volumes(InstanceVolumeArgs... volumes) {
-            return volumes(List.of(volumes));
-        }
-
         public InstanceState build() {
             return $;
         }
diff --git a/sdk/java/src/main/java/com/pulumi/openstack/compute/inputs/InstanceVolumeArgs.java b/sdk/java/src/main/java/com/pulumi/openstack/compute/inputs/InstanceVolumeArgs.java
deleted file mode 100644
index 097ebfd62..000000000
--- a/sdk/java/src/main/java/com/pulumi/openstack/compute/inputs/InstanceVolumeArgs.java
+++ /dev/null
@@ -1,101 +0,0 @@
-// *** WARNING: this file was generated by pulumi-java-gen. ***
-// *** Do not edit by hand unless you're certain you know what you are doing! ***
-
-package com.pulumi.openstack.compute.inputs;
-
-import com.pulumi.core.Output;
-import com.pulumi.core.annotations.Import;
-import com.pulumi.exceptions.MissingRequiredPropertyException;
-import java.lang.String;
-import java.util.Objects;
-import java.util.Optional;
-import javax.annotation.Nullable;
-
-
-public final class InstanceVolumeArgs extends com.pulumi.resources.ResourceArgs {
-
-    public static final InstanceVolumeArgs Empty = new InstanceVolumeArgs();
-
-    @Import(name="device")
-    private @Nullable Output device;
-
-    public Optional> device() {
-        return Optional.ofNullable(this.device);
-    }
-
-    @Import(name="id")
-    private @Nullable Output id;
-
-    public Optional> id() {
-        return Optional.ofNullable(this.id);
-    }
-
-    @Import(name="volumeId", required=true)
-    private Output volumeId;
-
-    public Output volumeId() {
-        return this.volumeId;
-    }
-
-    private InstanceVolumeArgs() {}
-
-    private InstanceVolumeArgs(InstanceVolumeArgs $) {
-        this.device = $.device;
-        this.id = $.id;
-        this.volumeId = $.volumeId;
-    }
-
-    public static Builder builder() {
-        return new Builder();
-    }
-    public static Builder builder(InstanceVolumeArgs defaults) {
-        return new Builder(defaults);
-    }
-
-    public static final class Builder {
-        private InstanceVolumeArgs $;
-
-        public Builder() {
-            $ = new InstanceVolumeArgs();
-        }
-
-        public Builder(InstanceVolumeArgs defaults) {
-            $ = new InstanceVolumeArgs(Objects.requireNonNull(defaults));
-        }
-
-        public Builder device(@Nullable Output device) {
-            $.device = device;
-            return this;
-        }
-
-        public Builder device(String device) {
-            return device(Output.of(device));
-        }
-
-        public Builder id(@Nullable Output id) {
-            $.id = id;
-            return this;
-        }
-
-        public Builder id(String id) {
-            return id(Output.of(id));
-        }
-
-        public Builder volumeId(Output volumeId) {
-            $.volumeId = volumeId;
-            return this;
-        }
-
-        public Builder volumeId(String volumeId) {
-            return volumeId(Output.of(volumeId));
-        }
-
-        public InstanceVolumeArgs build() {
-            if ($.volumeId == null) {
-                throw new MissingRequiredPropertyException("InstanceVolumeArgs", "volumeId");
-            }
-            return $;
-        }
-    }
-
-}
diff --git a/sdk/java/src/main/java/com/pulumi/openstack/compute/inputs/VolumeAttachState.java b/sdk/java/src/main/java/com/pulumi/openstack/compute/inputs/VolumeAttachState.java
index a30d237ef..f2048a86d 100644
--- a/sdk/java/src/main/java/com/pulumi/openstack/compute/inputs/VolumeAttachState.java
+++ b/sdk/java/src/main/java/com/pulumi/openstack/compute/inputs/VolumeAttachState.java
@@ -75,6 +75,25 @@ public Optional> region() {
         return Optional.ofNullable(this.region);
     }
 
+    /**
+     * Add a device role tag that is applied to the volume when
+     * attaching it to the VM. Changing this creates a new volume attachment with
+     * the new tag. Requires microversion >= 2.49.
+     * 
+     */
+    @Import(name="tag")
+    private @Nullable Output tag;
+
+    /**
+     * @return Add a device role tag that is applied to the volume when
+     * attaching it to the VM. Changing this creates a new volume attachment with
+     * the new tag. Requires microversion >= 2.49.
+     * 
+     */
+    public Optional> tag() {
+        return Optional.ofNullable(this.tag);
+    }
+
     /**
      * Map of additional vendor-specific options.
      * Supported options are described below.
@@ -114,6 +133,7 @@ private VolumeAttachState(VolumeAttachState $) {
         this.instanceId = $.instanceId;
         this.multiattach = $.multiattach;
         this.region = $.region;
+        this.tag = $.tag;
         this.vendorOptions = $.vendorOptions;
         this.volumeId = $.volumeId;
     }
@@ -214,6 +234,31 @@ public Builder region(String region) {
             return region(Output.of(region));
         }
 
+        /**
+         * @param tag Add a device role tag that is applied to the volume when
+         * attaching it to the VM. Changing this creates a new volume attachment with
+         * the new tag. Requires microversion >= 2.49.
+         * 
+         * @return builder
+         * 
+         */
+        public Builder tag(@Nullable Output tag) {
+            $.tag = tag;
+            return this;
+        }
+
+        /**
+         * @param tag Add a device role tag that is applied to the volume when
+         * attaching it to the VM. Changing this creates a new volume attachment with
+         * the new tag. Requires microversion >= 2.49.
+         * 
+         * @return builder
+         * 
+         */
+        public Builder tag(String tag) {
+            return tag(Output.of(tag));
+        }
+
         /**
          * @param vendorOptions Map of additional vendor-specific options.
          * Supported options are described below.
diff --git a/sdk/java/src/main/java/com/pulumi/openstack/compute/outputs/InstanceNetwork.java b/sdk/java/src/main/java/com/pulumi/openstack/compute/outputs/InstanceNetwork.java
index d7a769ccd..885cbe059 100644
--- a/sdk/java/src/main/java/com/pulumi/openstack/compute/outputs/InstanceNetwork.java
+++ b/sdk/java/src/main/java/com/pulumi/openstack/compute/outputs/InstanceNetwork.java
@@ -25,13 +25,6 @@ public final class InstanceNetwork {
      */
     private @Nullable String fixedIpV4;
     private @Nullable String fixedIpV6;
-    /**
-     * @deprecated
-     * Use the openstack.compute.FloatingIpAssociate resource instead
-     * 
-     */
-    @Deprecated /* Use the openstack.compute.FloatingIpAssociate resource instead */
-    private @Nullable String floatingIp;
     private @Nullable String mac;
     /**
      * @return The human-readable
@@ -72,15 +65,6 @@ public Optional fixedIpV4() {
     public Optional fixedIpV6() {
         return Optional.ofNullable(this.fixedIpV6);
     }
-    /**
-     * @deprecated
-     * Use the openstack.compute.FloatingIpAssociate resource instead
-     * 
-     */
-    @Deprecated /* Use the openstack.compute.FloatingIpAssociate resource instead */
-    public Optional floatingIp() {
-        return Optional.ofNullable(this.floatingIp);
-    }
     public Optional mac() {
         return Optional.ofNullable(this.mac);
     }
@@ -121,7 +105,6 @@ public static final class Builder {
         private @Nullable Boolean accessNetwork;
         private @Nullable String fixedIpV4;
         private @Nullable String fixedIpV6;
-        private @Nullable String floatingIp;
         private @Nullable String mac;
         private @Nullable String name;
         private @Nullable String port;
@@ -132,7 +115,6 @@ public Builder(InstanceNetwork defaults) {
     	      this.accessNetwork = defaults.accessNetwork;
     	      this.fixedIpV4 = defaults.fixedIpV4;
     	      this.fixedIpV6 = defaults.fixedIpV6;
-    	      this.floatingIp = defaults.floatingIp;
     	      this.mac = defaults.mac;
     	      this.name = defaults.name;
     	      this.port = defaults.port;
@@ -158,12 +140,6 @@ public Builder fixedIpV6(@Nullable String fixedIpV6) {
             return this;
         }
         @CustomType.Setter
-        public Builder floatingIp(@Nullable String floatingIp) {
-
-            this.floatingIp = floatingIp;
-            return this;
-        }
-        @CustomType.Setter
         public Builder mac(@Nullable String mac) {
 
             this.mac = mac;
@@ -192,7 +168,6 @@ public InstanceNetwork build() {
             _resultValue.accessNetwork = accessNetwork;
             _resultValue.fixedIpV4 = fixedIpV4;
             _resultValue.fixedIpV6 = fixedIpV6;
-            _resultValue.floatingIp = floatingIp;
             _resultValue.mac = mac;
             _resultValue.name = name;
             _resultValue.port = port;
diff --git a/sdk/java/src/main/java/com/pulumi/openstack/compute/outputs/InstanceSchedulerHint.java b/sdk/java/src/main/java/com/pulumi/openstack/compute/outputs/InstanceSchedulerHint.java
index 7b5f59e5f..f198d3c8e 100644
--- a/sdk/java/src/main/java/com/pulumi/openstack/compute/outputs/InstanceSchedulerHint.java
+++ b/sdk/java/src/main/java/com/pulumi/openstack/compute/outputs/InstanceSchedulerHint.java
@@ -39,7 +39,8 @@ public final class InstanceSchedulerHint {
     private @Nullable List differentHosts;
     /**
      * @return A UUID of a Server Group. The instance will be placed
-     * into that group.
+     * into that group. See reference
+     * for details on managing servergroup resources
      * 
      */
     private @Nullable String group;
@@ -99,7 +100,8 @@ public List differentHosts() {
     }
     /**
      * @return A UUID of a Server Group. The instance will be placed
-     * into that group.
+     * into that group. See reference
+     * for details on managing servergroup resources
      * 
      */
     public Optional group() {
diff --git a/sdk/java/src/main/java/com/pulumi/openstack/compute/outputs/InstanceVolume.java b/sdk/java/src/main/java/com/pulumi/openstack/compute/outputs/InstanceVolume.java
deleted file mode 100644
index 2cab353d9..000000000
--- a/sdk/java/src/main/java/com/pulumi/openstack/compute/outputs/InstanceVolume.java
+++ /dev/null
@@ -1,78 +0,0 @@
-// *** WARNING: this file was generated by pulumi-java-gen. ***
-// *** Do not edit by hand unless you're certain you know what you are doing! ***
-
-package com.pulumi.openstack.compute.outputs;
-
-import com.pulumi.core.annotations.CustomType;
-import com.pulumi.exceptions.MissingRequiredPropertyException;
-import java.lang.String;
-import java.util.Objects;
-import java.util.Optional;
-import javax.annotation.Nullable;
-
-@CustomType
-public final class InstanceVolume {
-    private @Nullable String device;
-    private @Nullable String id;
-    private String volumeId;
-
-    private InstanceVolume() {}
-    public Optional device() {
-        return Optional.ofNullable(this.device);
-    }
-    public Optional id() {
-        return Optional.ofNullable(this.id);
-    }
-    public String volumeId() {
-        return this.volumeId;
-    }
-
-    public static Builder builder() {
-        return new Builder();
-    }
-
-    public static Builder builder(InstanceVolume defaults) {
-        return new Builder(defaults);
-    }
-    @CustomType.Builder
-    public static final class Builder {
-        private @Nullable String device;
-        private @Nullable String id;
-        private String volumeId;
-        public Builder() {}
-        public Builder(InstanceVolume defaults) {
-    	      Objects.requireNonNull(defaults);
-    	      this.device = defaults.device;
-    	      this.id = defaults.id;
-    	      this.volumeId = defaults.volumeId;
-        }
-
-        @CustomType.Setter
-        public Builder device(@Nullable String device) {
-
-            this.device = device;
-            return this;
-        }
-        @CustomType.Setter
-        public Builder id(@Nullable String id) {
-
-            this.id = id;
-            return this;
-        }
-        @CustomType.Setter
-        public Builder volumeId(String volumeId) {
-            if (volumeId == null) {
-              throw new MissingRequiredPropertyException("InstanceVolume", "volumeId");
-            }
-            this.volumeId = volumeId;
-            return this;
-        }
-        public InstanceVolume build() {
-            final var _resultValue = new InstanceVolume();
-            _resultValue.device = device;
-            _resultValue.id = id;
-            _resultValue.volumeId = volumeId;
-            return _resultValue;
-        }
-    }
-}
diff --git a/sdk/java/src/main/java/com/pulumi/openstack/images/Image.java b/sdk/java/src/main/java/com/pulumi/openstack/images/Image.java
index 89418ef85..53e45626e 100644
--- a/sdk/java/src/main/java/com/pulumi/openstack/images/Image.java
+++ b/sdk/java/src/main/java/com/pulumi/openstack/images/Image.java
@@ -488,24 +488,6 @@ public Output status() {
     public Output>> tags() {
         return Codegen.optional(this.tags);
     }
-    /**
-     * (**Deprecated** - use `updated_at` instead)
-     * 
-     * @deprecated
-     * Use updated_at instead
-     * 
-     */
-    @Deprecated /* Use updated_at instead */
-    @Export(name="updateAt", refs={String.class}, tree="[0]")
-    private Output updateAt;
-
-    /**
-     * @return (**Deprecated** - use `updated_at` instead)
-     * 
-     */
-    public Output updateAt() {
-        return this.updateAt;
-    }
     /**
      * The date the image was last updated.
      * 
diff --git a/sdk/java/src/main/java/com/pulumi/openstack/images/inputs/GetImageArgs.java b/sdk/java/src/main/java/com/pulumi/openstack/images/inputs/GetImageArgs.java
index 9197cccb9..f0c71f52f 100644
--- a/sdk/java/src/main/java/com/pulumi/openstack/images/inputs/GetImageArgs.java
+++ b/sdk/java/src/main/java/com/pulumi/openstack/images/inputs/GetImageArgs.java
@@ -197,33 +197,26 @@ public Optional> sizeMin() {
     }
 
     /**
-     * Order the results in either `asc` or `desc`.
+     * Sorts the response by one or more attribute and sort
+     * direction combinations. You can also set multiple sort keys and directions.
+     * Default direction is `desc`. Use the comma (,) character to separate
+     * multiple values. For example expression `sort = "name:asc,status"`
+     * sorts ascending by name and descending by status.
      * 
      */
-    @Import(name="sortDirection")
-    private @Nullable Output sortDirection;
+    @Import(name="sort")
+    private @Nullable Output sort;
 
     /**
-     * @return Order the results in either `asc` or `desc`.
+     * @return Sorts the response by one or more attribute and sort
+     * direction combinations. You can also set multiple sort keys and directions.
+     * Default direction is `desc`. Use the comma (,) character to separate
+     * multiple values. For example expression `sort = "name:asc,status"`
+     * sorts ascending by name and descending by status.
      * 
      */
-    public Optional> sortDirection() {
-        return Optional.ofNullable(this.sortDirection);
-    }
-
-    /**
-     * Sort images based on a certain key. Defaults to `name`.
-     * 
-     */
-    @Import(name="sortKey")
-    private @Nullable Output sortKey;
-
-    /**
-     * @return Sort images based on a certain key. Defaults to `name`.
-     * 
-     */
-    public Optional> sortKey() {
-        return Optional.ofNullable(this.sortKey);
+    public Optional> sort() {
+        return Optional.ofNullable(this.sort);
     }
 
     /**
@@ -288,8 +281,7 @@ private GetImageArgs(GetImageArgs $) {
         this.region = $.region;
         this.sizeMax = $.sizeMax;
         this.sizeMin = $.sizeMin;
-        this.sortDirection = $.sortDirection;
-        this.sortKey = $.sortKey;
+        this.sort = $.sort;
         this.tag = $.tag;
         this.tags = $.tags;
         this.visibility = $.visibility;
@@ -550,45 +542,32 @@ public Builder sizeMin(Integer sizeMin) {
         }
 
         /**
-         * @param sortDirection Order the results in either `asc` or `desc`.
-         * 
-         * @return builder
-         * 
-         */
-        public Builder sortDirection(@Nullable Output sortDirection) {
-            $.sortDirection = sortDirection;
-            return this;
-        }
-
-        /**
-         * @param sortDirection Order the results in either `asc` or `desc`.
-         * 
-         * @return builder
-         * 
-         */
-        public Builder sortDirection(String sortDirection) {
-            return sortDirection(Output.of(sortDirection));
-        }
-
-        /**
-         * @param sortKey Sort images based on a certain key. Defaults to `name`.
+         * @param sort Sorts the response by one or more attribute and sort
+         * direction combinations. You can also set multiple sort keys and directions.
+         * Default direction is `desc`. Use the comma (,) character to separate
+         * multiple values. For example expression `sort = "name:asc,status"`
+         * sorts ascending by name and descending by status.
          * 
          * @return builder
          * 
          */
-        public Builder sortKey(@Nullable Output sortKey) {
-            $.sortKey = sortKey;
+        public Builder sort(@Nullable Output sort) {
+            $.sort = sort;
             return this;
         }
 
         /**
-         * @param sortKey Sort images based on a certain key. Defaults to `name`.
+         * @param sort Sorts the response by one or more attribute and sort
+         * direction combinations. You can also set multiple sort keys and directions.
+         * Default direction is `desc`. Use the comma (,) character to separate
+         * multiple values. For example expression `sort = "name:asc,status"`
+         * sorts ascending by name and descending by status.
          * 
          * @return builder
          * 
          */
-        public Builder sortKey(String sortKey) {
-            return sortKey(Output.of(sortKey));
+        public Builder sort(String sort) {
+            return sort(Output.of(sort));
         }
 
         /**
diff --git a/sdk/java/src/main/java/com/pulumi/openstack/images/inputs/GetImageIdsArgs.java b/sdk/java/src/main/java/com/pulumi/openstack/images/inputs/GetImageIdsArgs.java
index d30f51785..2c44b36bf 100644
--- a/sdk/java/src/main/java/com/pulumi/openstack/images/inputs/GetImageIdsArgs.java
+++ b/sdk/java/src/main/java/com/pulumi/openstack/images/inputs/GetImageIdsArgs.java
@@ -164,9 +164,7 @@ public Optional> sizeMin() {
      * direction combinations. You can also set multiple sort keys and directions.
      * Default direction is `desc`. Use the comma (,) character to separate
      * multiple values. For example expression `sort = "name:asc,status"`
-     * sorts ascending by name and descending by status. `sort` cannot be used
-     * simultaneously with `sort_key`. If both are present in a configuration
-     * then only `sort` will be used.
+     * sorts ascending by name and descending by status.
      * 
      */
     @Import(name="sort")
@@ -177,67 +175,13 @@ public Optional> sizeMin() {
      * direction combinations. You can also set multiple sort keys and directions.
      * Default direction is `desc`. Use the comma (,) character to separate
      * multiple values. For example expression `sort = "name:asc,status"`
-     * sorts ascending by name and descending by status. `sort` cannot be used
-     * simultaneously with `sort_key`. If both are present in a configuration
-     * then only `sort` will be used.
+     * sorts ascending by name and descending by status.
      * 
      */
     public Optional> sort() {
         return Optional.ofNullable(this.sort);
     }
 
-    /**
-     * Order the results in either `asc` or `desc`.
-     * Can be applied only with `sort_key`. Defaults to `asc`
-     * 
-     * @deprecated
-     * Use option 'sort' instead.
-     * 
-     */
-    @Deprecated /* Use option 'sort' instead. */
-    @Import(name="sortDirection")
-    private @Nullable Output sortDirection;
-
-    /**
-     * @return Order the results in either `asc` or `desc`.
-     * Can be applied only with `sort_key`. Defaults to `asc`
-     * 
-     * @deprecated
-     * Use option 'sort' instead.
-     * 
-     */
-    @Deprecated /* Use option 'sort' instead. */
-    public Optional> sortDirection() {
-        return Optional.ofNullable(this.sortDirection);
-    }
-
-    /**
-     * Sort images based on a certain key. Defaults to
-     * `name`. `sort_key` cannot be used simultaneously with `sort`. If both
-     * are present in a configuration then only `sort` will be used.
-     * 
-     * @deprecated
-     * Use option 'sort' instead.
-     * 
-     */
-    @Deprecated /* Use option 'sort' instead. */
-    @Import(name="sortKey")
-    private @Nullable Output sortKey;
-
-    /**
-     * @return Sort images based on a certain key. Defaults to
-     * `name`. `sort_key` cannot be used simultaneously with `sort`. If both
-     * are present in a configuration then only `sort` will be used.
-     * 
-     * @deprecated
-     * Use option 'sort' instead.
-     * 
-     */
-    @Deprecated /* Use option 'sort' instead. */
-    public Optional> sortKey() {
-        return Optional.ofNullable(this.sortKey);
-    }
-
     /**
      * Search for images with a specific tag.
      * 
@@ -299,8 +243,6 @@ private GetImageIdsArgs(GetImageIdsArgs $) {
         this.sizeMax = $.sizeMax;
         this.sizeMin = $.sizeMin;
         this.sort = $.sort;
-        this.sortDirection = $.sortDirection;
-        this.sortKey = $.sortKey;
         this.tag = $.tag;
         this.tags = $.tags;
         this.visibility = $.visibility;
@@ -517,9 +459,7 @@ public Builder sizeMin(Integer sizeMin) {
          * direction combinations. You can also set multiple sort keys and directions.
          * Default direction is `desc`. Use the comma (,) character to separate
          * multiple values. For example expression `sort = "name:asc,status"`
-         * sorts ascending by name and descending by status. `sort` cannot be used
-         * simultaneously with `sort_key`. If both are present in a configuration
-         * then only `sort` will be used.
+         * sorts ascending by name and descending by status.
          * 
          * @return builder
          * 
@@ -534,9 +474,7 @@ public Builder sort(@Nullable Output sort) {
          * direction combinations. You can also set multiple sort keys and directions.
          * Default direction is `desc`. Use the comma (,) character to separate
          * multiple values. For example expression `sort = "name:asc,status"`
-         * sorts ascending by name and descending by status. `sort` cannot be used
-         * simultaneously with `sort_key`. If both are present in a configuration
-         * then only `sort` will be used.
+         * sorts ascending by name and descending by status.
          * 
          * @return builder
          * 
@@ -545,70 +483,6 @@ public Builder sort(String sort) {
             return sort(Output.of(sort));
         }
 
-        /**
-         * @param sortDirection Order the results in either `asc` or `desc`.
-         * Can be applied only with `sort_key`. Defaults to `asc`
-         * 
-         * @return builder
-         * 
-         * @deprecated
-         * Use option 'sort' instead.
-         * 
-         */
-        @Deprecated /* Use option 'sort' instead. */
-        public Builder sortDirection(@Nullable Output sortDirection) {
-            $.sortDirection = sortDirection;
-            return this;
-        }
-
-        /**
-         * @param sortDirection Order the results in either `asc` or `desc`.
-         * Can be applied only with `sort_key`. Defaults to `asc`
-         * 
-         * @return builder
-         * 
-         * @deprecated
-         * Use option 'sort' instead.
-         * 
-         */
-        @Deprecated /* Use option 'sort' instead. */
-        public Builder sortDirection(String sortDirection) {
-            return sortDirection(Output.of(sortDirection));
-        }
-
-        /**
-         * @param sortKey Sort images based on a certain key. Defaults to
-         * `name`. `sort_key` cannot be used simultaneously with `sort`. If both
-         * are present in a configuration then only `sort` will be used.
-         * 
-         * @return builder
-         * 
-         * @deprecated
-         * Use option 'sort' instead.
-         * 
-         */
-        @Deprecated /* Use option 'sort' instead. */
-        public Builder sortKey(@Nullable Output sortKey) {
-            $.sortKey = sortKey;
-            return this;
-        }
-
-        /**
-         * @param sortKey Sort images based on a certain key. Defaults to
-         * `name`. `sort_key` cannot be used simultaneously with `sort`. If both
-         * are present in a configuration then only `sort` will be used.
-         * 
-         * @return builder
-         * 
-         * @deprecated
-         * Use option 'sort' instead.
-         * 
-         */
-        @Deprecated /* Use option 'sort' instead. */
-        public Builder sortKey(String sortKey) {
-            return sortKey(Output.of(sortKey));
-        }
-
         /**
          * @param tag Search for images with a specific tag.
          * 
diff --git a/sdk/java/src/main/java/com/pulumi/openstack/images/inputs/GetImageIdsPlainArgs.java b/sdk/java/src/main/java/com/pulumi/openstack/images/inputs/GetImageIdsPlainArgs.java
index 2ea64439e..6559c8cbf 100644
--- a/sdk/java/src/main/java/com/pulumi/openstack/images/inputs/GetImageIdsPlainArgs.java
+++ b/sdk/java/src/main/java/com/pulumi/openstack/images/inputs/GetImageIdsPlainArgs.java
@@ -163,9 +163,7 @@ public Optional sizeMin() {
      * direction combinations. You can also set multiple sort keys and directions.
      * Default direction is `desc`. Use the comma (,) character to separate
      * multiple values. For example expression `sort = "name:asc,status"`
-     * sorts ascending by name and descending by status. `sort` cannot be used
-     * simultaneously with `sort_key`. If both are present in a configuration
-     * then only `sort` will be used.
+     * sorts ascending by name and descending by status.
      * 
      */
     @Import(name="sort")
@@ -176,67 +174,13 @@ public Optional sizeMin() {
      * direction combinations. You can also set multiple sort keys and directions.
      * Default direction is `desc`. Use the comma (,) character to separate
      * multiple values. For example expression `sort = "name:asc,status"`
-     * sorts ascending by name and descending by status. `sort` cannot be used
-     * simultaneously with `sort_key`. If both are present in a configuration
-     * then only `sort` will be used.
+     * sorts ascending by name and descending by status.
      * 
      */
     public Optional sort() {
         return Optional.ofNullable(this.sort);
     }
 
-    /**
-     * Order the results in either `asc` or `desc`.
-     * Can be applied only with `sort_key`. Defaults to `asc`
-     * 
-     * @deprecated
-     * Use option 'sort' instead.
-     * 
-     */
-    @Deprecated /* Use option 'sort' instead. */
-    @Import(name="sortDirection")
-    private @Nullable String sortDirection;
-
-    /**
-     * @return Order the results in either `asc` or `desc`.
-     * Can be applied only with `sort_key`. Defaults to `asc`
-     * 
-     * @deprecated
-     * Use option 'sort' instead.
-     * 
-     */
-    @Deprecated /* Use option 'sort' instead. */
-    public Optional sortDirection() {
-        return Optional.ofNullable(this.sortDirection);
-    }
-
-    /**
-     * Sort images based on a certain key. Defaults to
-     * `name`. `sort_key` cannot be used simultaneously with `sort`. If both
-     * are present in a configuration then only `sort` will be used.
-     * 
-     * @deprecated
-     * Use option 'sort' instead.
-     * 
-     */
-    @Deprecated /* Use option 'sort' instead. */
-    @Import(name="sortKey")
-    private @Nullable String sortKey;
-
-    /**
-     * @return Sort images based on a certain key. Defaults to
-     * `name`. `sort_key` cannot be used simultaneously with `sort`. If both
-     * are present in a configuration then only `sort` will be used.
-     * 
-     * @deprecated
-     * Use option 'sort' instead.
-     * 
-     */
-    @Deprecated /* Use option 'sort' instead. */
-    public Optional sortKey() {
-        return Optional.ofNullable(this.sortKey);
-    }
-
     /**
      * Search for images with a specific tag.
      * 
@@ -298,8 +242,6 @@ private GetImageIdsPlainArgs(GetImageIdsPlainArgs $) {
         this.sizeMax = $.sizeMax;
         this.sizeMin = $.sizeMin;
         this.sort = $.sort;
-        this.sortDirection = $.sortDirection;
-        this.sortKey = $.sortKey;
         this.tag = $.tag;
         this.tags = $.tags;
         this.visibility = $.visibility;
@@ -426,9 +368,7 @@ public Builder sizeMin(@Nullable Integer sizeMin) {
          * direction combinations. You can also set multiple sort keys and directions.
          * Default direction is `desc`. Use the comma (,) character to separate
          * multiple values. For example expression `sort = "name:asc,status"`
-         * sorts ascending by name and descending by status. `sort` cannot be used
-         * simultaneously with `sort_key`. If both are present in a configuration
-         * then only `sort` will be used.
+         * sorts ascending by name and descending by status.
          * 
          * @return builder
          * 
@@ -438,39 +378,6 @@ public Builder sort(@Nullable String sort) {
             return this;
         }
 
-        /**
-         * @param sortDirection Order the results in either `asc` or `desc`.
-         * Can be applied only with `sort_key`. Defaults to `asc`
-         * 
-         * @return builder
-         * 
-         * @deprecated
-         * Use option 'sort' instead.
-         * 
-         */
-        @Deprecated /* Use option 'sort' instead. */
-        public Builder sortDirection(@Nullable String sortDirection) {
-            $.sortDirection = sortDirection;
-            return this;
-        }
-
-        /**
-         * @param sortKey Sort images based on a certain key. Defaults to
-         * `name`. `sort_key` cannot be used simultaneously with `sort`. If both
-         * are present in a configuration then only `sort` will be used.
-         * 
-         * @return builder
-         * 
-         * @deprecated
-         * Use option 'sort' instead.
-         * 
-         */
-        @Deprecated /* Use option 'sort' instead. */
-        public Builder sortKey(@Nullable String sortKey) {
-            $.sortKey = sortKey;
-            return this;
-        }
-
         /**
          * @param tag Search for images with a specific tag.
          * 
diff --git a/sdk/java/src/main/java/com/pulumi/openstack/images/inputs/GetImagePlainArgs.java b/sdk/java/src/main/java/com/pulumi/openstack/images/inputs/GetImagePlainArgs.java
index 9bc7eabab..5160d8bd6 100644
--- a/sdk/java/src/main/java/com/pulumi/openstack/images/inputs/GetImagePlainArgs.java
+++ b/sdk/java/src/main/java/com/pulumi/openstack/images/inputs/GetImagePlainArgs.java
@@ -196,33 +196,26 @@ public Optional sizeMin() {
     }
 
     /**
-     * Order the results in either `asc` or `desc`.
+     * Sorts the response by one or more attribute and sort
+     * direction combinations. You can also set multiple sort keys and directions.
+     * Default direction is `desc`. Use the comma (,) character to separate
+     * multiple values. For example expression `sort = "name:asc,status"`
+     * sorts ascending by name and descending by status.
      * 
      */
-    @Import(name="sortDirection")
-    private @Nullable String sortDirection;
+    @Import(name="sort")
+    private @Nullable String sort;
 
     /**
-     * @return Order the results in either `asc` or `desc`.
+     * @return Sorts the response by one or more attribute and sort
+     * direction combinations. You can also set multiple sort keys and directions.
+     * Default direction is `desc`. Use the comma (,) character to separate
+     * multiple values. For example expression `sort = "name:asc,status"`
+     * sorts ascending by name and descending by status.
      * 
      */
-    public Optional sortDirection() {
-        return Optional.ofNullable(this.sortDirection);
-    }
-
-    /**
-     * Sort images based on a certain key. Defaults to `name`.
-     * 
-     */
-    @Import(name="sortKey")
-    private @Nullable String sortKey;
-
-    /**
-     * @return Sort images based on a certain key. Defaults to `name`.
-     * 
-     */
-    public Optional sortKey() {
-        return Optional.ofNullable(this.sortKey);
+    public Optional sort() {
+        return Optional.ofNullable(this.sort);
     }
 
     /**
@@ -287,8 +280,7 @@ private GetImagePlainArgs(GetImagePlainArgs $) {
         this.region = $.region;
         this.sizeMax = $.sizeMax;
         this.sizeMin = $.sizeMin;
-        this.sortDirection = $.sortDirection;
-        this.sortKey = $.sortKey;
+        this.sort = $.sort;
         this.tag = $.tag;
         this.tags = $.tags;
         this.visibility = $.visibility;
@@ -436,24 +428,17 @@ public Builder sizeMin(@Nullable Integer sizeMin) {
         }
 
         /**
-         * @param sortDirection Order the results in either `asc` or `desc`.
-         * 
-         * @return builder
-         * 
-         */
-        public Builder sortDirection(@Nullable String sortDirection) {
-            $.sortDirection = sortDirection;
-            return this;
-        }
-
-        /**
-         * @param sortKey Sort images based on a certain key. Defaults to `name`.
+         * @param sort Sorts the response by one or more attribute and sort
+         * direction combinations. You can also set multiple sort keys and directions.
+         * Default direction is `desc`. Use the comma (,) character to separate
+         * multiple values. For example expression `sort = "name:asc,status"`
+         * sorts ascending by name and descending by status.
          * 
          * @return builder
          * 
          */
-        public Builder sortKey(@Nullable String sortKey) {
-            $.sortKey = sortKey;
+        public Builder sort(@Nullable String sort) {
+            $.sort = sort;
             return this;
         }
 
diff --git a/sdk/java/src/main/java/com/pulumi/openstack/images/inputs/ImageState.java b/sdk/java/src/main/java/com/pulumi/openstack/images/inputs/ImageState.java
index 928c888e2..562dcc806 100644
--- a/sdk/java/src/main/java/com/pulumi/openstack/images/inputs/ImageState.java
+++ b/sdk/java/src/main/java/com/pulumi/openstack/images/inputs/ImageState.java
@@ -441,29 +441,6 @@ public Optional>> tags() {
         return Optional.ofNullable(this.tags);
     }
 
-    /**
-     * (**Deprecated** - use `updated_at` instead)
-     * 
-     * @deprecated
-     * Use updated_at instead
-     * 
-     */
-    @Deprecated /* Use updated_at instead */
-    @Import(name="updateAt")
-    private @Nullable Output updateAt;
-
-    /**
-     * @return (**Deprecated** - use `updated_at` instead)
-     * 
-     * @deprecated
-     * Use updated_at instead
-     * 
-     */
-    @Deprecated /* Use updated_at instead */
-    public Optional> updateAt() {
-        return Optional.ofNullable(this.updateAt);
-    }
-
     /**
      * The date the image was last updated.
      * 
@@ -564,7 +541,6 @@ private ImageState(ImageState $) {
         this.sizeBytes = $.sizeBytes;
         this.status = $.status;
         this.tags = $.tags;
-        this.updateAt = $.updateAt;
         this.updatedAt = $.updatedAt;
         this.verifyChecksum = $.verifyChecksum;
         this.visibility = $.visibility;
@@ -1167,35 +1143,6 @@ public Builder tags(String... tags) {
             return tags(List.of(tags));
         }
 
-        /**
-         * @param updateAt (**Deprecated** - use `updated_at` instead)
-         * 
-         * @return builder
-         * 
-         * @deprecated
-         * Use updated_at instead
-         * 
-         */
-        @Deprecated /* Use updated_at instead */
-        public Builder updateAt(@Nullable Output updateAt) {
-            $.updateAt = updateAt;
-            return this;
-        }
-
-        /**
-         * @param updateAt (**Deprecated** - use `updated_at` instead)
-         * 
-         * @return builder
-         * 
-         * @deprecated
-         * Use updated_at instead
-         * 
-         */
-        @Deprecated /* Use updated_at instead */
-        public Builder updateAt(String updateAt) {
-            return updateAt(Output.of(updateAt));
-        }
-
         /**
          * @param updatedAt The date the image was last updated.
          * 
diff --git a/sdk/java/src/main/java/com/pulumi/openstack/images/outputs/GetImageIdsResult.java b/sdk/java/src/main/java/com/pulumi/openstack/images/outputs/GetImageIdsResult.java
index 2e54580b2..ce89612f3 100644
--- a/sdk/java/src/main/java/com/pulumi/openstack/images/outputs/GetImageIdsResult.java
+++ b/sdk/java/src/main/java/com/pulumi/openstack/images/outputs/GetImageIdsResult.java
@@ -31,20 +31,6 @@ public final class GetImageIdsResult {
     private @Nullable Integer sizeMax;
     private @Nullable Integer sizeMin;
     private @Nullable String sort;
-    /**
-     * @deprecated
-     * Use option 'sort' instead.
-     * 
-     */
-    @Deprecated /* Use option 'sort' instead. */
-    private @Nullable String sortDirection;
-    /**
-     * @deprecated
-     * Use option 'sort' instead.
-     * 
-     */
-    @Deprecated /* Use option 'sort' instead. */
-    private @Nullable String sortKey;
     private @Nullable String tag;
     private @Nullable List tags;
     private @Nullable String visibility;
@@ -87,24 +73,6 @@ public Optional sizeMin() {
     public Optional sort() {
         return Optional.ofNullable(this.sort);
     }
-    /**
-     * @deprecated
-     * Use option 'sort' instead.
-     * 
-     */
-    @Deprecated /* Use option 'sort' instead. */
-    public Optional sortDirection() {
-        return Optional.ofNullable(this.sortDirection);
-    }
-    /**
-     * @deprecated
-     * Use option 'sort' instead.
-     * 
-     */
-    @Deprecated /* Use option 'sort' instead. */
-    public Optional sortKey() {
-        return Optional.ofNullable(this.sortKey);
-    }
     public Optional tag() {
         return Optional.ofNullable(this.tag);
     }
@@ -135,8 +103,6 @@ public static final class Builder {
         private @Nullable Integer sizeMax;
         private @Nullable Integer sizeMin;
         private @Nullable String sort;
-        private @Nullable String sortDirection;
-        private @Nullable String sortKey;
         private @Nullable String tag;
         private @Nullable List tags;
         private @Nullable String visibility;
@@ -154,8 +120,6 @@ public Builder(GetImageIdsResult defaults) {
     	      this.sizeMax = defaults.sizeMax;
     	      this.sizeMin = defaults.sizeMin;
     	      this.sort = defaults.sort;
-    	      this.sortDirection = defaults.sortDirection;
-    	      this.sortKey = defaults.sortKey;
     	      this.tag = defaults.tag;
     	      this.tags = defaults.tags;
     	      this.visibility = defaults.visibility;
@@ -237,18 +201,6 @@ public Builder sort(@Nullable String sort) {
             return this;
         }
         @CustomType.Setter
-        public Builder sortDirection(@Nullable String sortDirection) {
-
-            this.sortDirection = sortDirection;
-            return this;
-        }
-        @CustomType.Setter
-        public Builder sortKey(@Nullable String sortKey) {
-
-            this.sortKey = sortKey;
-            return this;
-        }
-        @CustomType.Setter
         public Builder tag(@Nullable String tag) {
 
             this.tag = tag;
@@ -282,8 +234,6 @@ public GetImageIdsResult build() {
             _resultValue.sizeMax = sizeMax;
             _resultValue.sizeMin = sizeMin;
             _resultValue.sort = sort;
-            _resultValue.sortDirection = sortDirection;
-            _resultValue.sortKey = sortKey;
             _resultValue.tag = tag;
             _resultValue.tags = tags;
             _resultValue.visibility = visibility;
diff --git a/sdk/java/src/main/java/com/pulumi/openstack/images/outputs/GetImageResult.java b/sdk/java/src/main/java/com/pulumi/openstack/images/outputs/GetImageResult.java
index 8fb99ce65..fe3924812 100644
--- a/sdk/java/src/main/java/com/pulumi/openstack/images/outputs/GetImageResult.java
+++ b/sdk/java/src/main/java/com/pulumi/openstack/images/outputs/GetImageResult.java
@@ -95,8 +95,7 @@ public final class GetImageResult {
     private Integer sizeBytes;
     private @Nullable Integer sizeMax;
     private @Nullable Integer sizeMin;
-    private @Nullable String sortDirection;
-    private @Nullable String sortKey;
+    private @Nullable String sort;
     private @Nullable String tag;
     /**
      * @return The tags list of the image.
@@ -233,11 +232,8 @@ public Optional sizeMax() {
     public Optional sizeMin() {
         return Optional.ofNullable(this.sizeMin);
     }
-    public Optional sortDirection() {
-        return Optional.ofNullable(this.sortDirection);
-    }
-    public Optional sortKey() {
-        return Optional.ofNullable(this.sortKey);
+    public Optional sort() {
+        return Optional.ofNullable(this.sort);
     }
     public Optional tag() {
         return Optional.ofNullable(this.tag);
@@ -291,8 +287,7 @@ public static final class Builder {
         private Integer sizeBytes;
         private @Nullable Integer sizeMax;
         private @Nullable Integer sizeMin;
-        private @Nullable String sortDirection;
-        private @Nullable String sortKey;
+        private @Nullable String sort;
         private @Nullable String tag;
         private List tags;
         private String updatedAt;
@@ -322,8 +317,7 @@ public Builder(GetImageResult defaults) {
     	      this.sizeBytes = defaults.sizeBytes;
     	      this.sizeMax = defaults.sizeMax;
     	      this.sizeMin = defaults.sizeMin;
-    	      this.sortDirection = defaults.sortDirection;
-    	      this.sortKey = defaults.sortKey;
+    	      this.sort = defaults.sort;
     	      this.tag = defaults.tag;
     	      this.tags = defaults.tags;
     	      this.updatedAt = defaults.updatedAt;
@@ -489,15 +483,9 @@ public Builder sizeMin(@Nullable Integer sizeMin) {
             return this;
         }
         @CustomType.Setter
-        public Builder sortDirection(@Nullable String sortDirection) {
-
-            this.sortDirection = sortDirection;
-            return this;
-        }
-        @CustomType.Setter
-        public Builder sortKey(@Nullable String sortKey) {
+        public Builder sort(@Nullable String sort) {
 
-            this.sortKey = sortKey;
+            this.sort = sort;
             return this;
         }
         @CustomType.Setter
@@ -555,8 +543,7 @@ public GetImageResult build() {
             _resultValue.sizeBytes = sizeBytes;
             _resultValue.sizeMax = sizeMax;
             _resultValue.sizeMin = sizeMin;
-            _resultValue.sortDirection = sortDirection;
-            _resultValue.sortKey = sortKey;
+            _resultValue.sort = sort;
             _resultValue.tag = tag;
             _resultValue.tags = tags;
             _resultValue.updatedAt = updatedAt;
diff --git a/sdk/java/src/main/java/com/pulumi/openstack/loadbalancer/Listener.java b/sdk/java/src/main/java/com/pulumi/openstack/loadbalancer/Listener.java
index 99da08553..5a0479885 100644
--- a/sdk/java/src/main/java/com/pulumi/openstack/loadbalancer/Listener.java
+++ b/sdk/java/src/main/java/com/pulumi/openstack/loadbalancer/Listener.java
@@ -226,8 +226,8 @@ public Output name() {
     }
     /**
      * The protocol - can either be TCP, HTTP, HTTPS,
-     * TERMINATED_HTTPS, UDP (supported only in Octavia), SCTP (supported only
-     * in **Octavia minor version >= 2.23**) or PROMETHEUS (supported only in
+     * TERMINATED_HTTPS, UDP, SCTP (supported only in
+     * **Octavia minor version >= 2.23**) or PROMETHEUS (supported only in
      * **Octavia minor version >=2.25**). Changing this creates a new Listener.
      * 
      */
@@ -236,8 +236,8 @@ public Output name() {
 
     /**
      * @return The protocol - can either be TCP, HTTP, HTTPS,
-     * TERMINATED_HTTPS, UDP (supported only in Octavia), SCTP (supported only
-     * in **Octavia minor version >= 2.23**) or PROMETHEUS (supported only in
+     * TERMINATED_HTTPS, UDP, SCTP (supported only in
+     * **Octavia minor version >= 2.23**) or PROMETHEUS (supported only in
      * **Octavia minor version >=2.25**). Changing this creates a new Listener.
      * 
      */
diff --git a/sdk/java/src/main/java/com/pulumi/openstack/loadbalancer/ListenerArgs.java b/sdk/java/src/main/java/com/pulumi/openstack/loadbalancer/ListenerArgs.java
index ac6a03f55..0a9f6a9cf 100644
--- a/sdk/java/src/main/java/com/pulumi/openstack/loadbalancer/ListenerArgs.java
+++ b/sdk/java/src/main/java/com/pulumi/openstack/loadbalancer/ListenerArgs.java
@@ -182,8 +182,8 @@ public Optional> name() {
 
     /**
      * The protocol - can either be TCP, HTTP, HTTPS,
-     * TERMINATED_HTTPS, UDP (supported only in Octavia), SCTP (supported only
-     * in **Octavia minor version >= 2.23**) or PROMETHEUS (supported only in
+     * TERMINATED_HTTPS, UDP, SCTP (supported only in
+     * **Octavia minor version >= 2.23**) or PROMETHEUS (supported only in
      * **Octavia minor version >=2.25**). Changing this creates a new Listener.
      * 
      */
@@ -192,8 +192,8 @@ public Optional> name() {
 
     /**
      * @return The protocol - can either be TCP, HTTP, HTTPS,
-     * TERMINATED_HTTPS, UDP (supported only in Octavia), SCTP (supported only
-     * in **Octavia minor version >= 2.23**) or PROMETHEUS (supported only in
+     * TERMINATED_HTTPS, UDP, SCTP (supported only in
+     * **Octavia minor version >= 2.23**) or PROMETHEUS (supported only in
      * **Octavia minor version >=2.25**). Changing this creates a new Listener.
      * 
      */
@@ -616,8 +616,8 @@ public Builder name(String name) {
 
         /**
          * @param protocol The protocol - can either be TCP, HTTP, HTTPS,
-         * TERMINATED_HTTPS, UDP (supported only in Octavia), SCTP (supported only
-         * in **Octavia minor version >= 2.23**) or PROMETHEUS (supported only in
+         * TERMINATED_HTTPS, UDP, SCTP (supported only in
+         * **Octavia minor version >= 2.23**) or PROMETHEUS (supported only in
          * **Octavia minor version >=2.25**). Changing this creates a new Listener.
          * 
          * @return builder
@@ -630,8 +630,8 @@ public Builder protocol(Output protocol) {
 
         /**
          * @param protocol The protocol - can either be TCP, HTTP, HTTPS,
-         * TERMINATED_HTTPS, UDP (supported only in Octavia), SCTP (supported only
-         * in **Octavia minor version >= 2.23**) or PROMETHEUS (supported only in
+         * TERMINATED_HTTPS, UDP, SCTP (supported only in
+         * **Octavia minor version >= 2.23**) or PROMETHEUS (supported only in
          * **Octavia minor version >=2.25**). Changing this creates a new Listener.
          * 
          * @return builder
diff --git a/sdk/java/src/main/java/com/pulumi/openstack/loadbalancer/LoadbalancerFunctions.java b/sdk/java/src/main/java/com/pulumi/openstack/loadbalancer/LoadbalancerFunctions.java
new file mode 100644
index 000000000..3f4425464
--- /dev/null
+++ b/sdk/java/src/main/java/com/pulumi/openstack/loadbalancer/LoadbalancerFunctions.java
@@ -0,0 +1,35 @@
+// *** WARNING: this file was generated by pulumi-java-gen. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+package com.pulumi.openstack.loadbalancer;
+
+import com.pulumi.core.Output;
+import com.pulumi.core.TypeShape;
+import com.pulumi.deployment.Deployment;
+import com.pulumi.deployment.InvokeOptions;
+import com.pulumi.openstack.Utilities;
+import com.pulumi.openstack.loadbalancer.inputs.GetFlavorV2Args;
+import com.pulumi.openstack.loadbalancer.inputs.GetFlavorV2PlainArgs;
+import com.pulumi.openstack.loadbalancer.outputs.GetFlavorV2Result;
+import java.util.concurrent.CompletableFuture;
+
+public final class LoadbalancerFunctions {
+    public static Output getFlavorV2() {
+        return getFlavorV2(GetFlavorV2Args.Empty, InvokeOptions.Empty);
+    }
+    public static CompletableFuture getFlavorV2Plain() {
+        return getFlavorV2Plain(GetFlavorV2PlainArgs.Empty, InvokeOptions.Empty);
+    }
+    public static Output getFlavorV2(GetFlavorV2Args args) {
+        return getFlavorV2(args, InvokeOptions.Empty);
+    }
+    public static CompletableFuture getFlavorV2Plain(GetFlavorV2PlainArgs args) {
+        return getFlavorV2Plain(args, InvokeOptions.Empty);
+    }
+    public static Output getFlavorV2(GetFlavorV2Args args, InvokeOptions options) {
+        return Deployment.getInstance().invoke("openstack:loadbalancer/getFlavorV2:getFlavorV2", TypeShape.of(GetFlavorV2Result.class), args, Utilities.withVersion(options));
+    }
+    public static CompletableFuture getFlavorV2Plain(GetFlavorV2PlainArgs args, InvokeOptions options) {
+        return Deployment.getInstance().invokeAsync("openstack:loadbalancer/getFlavorV2:getFlavorV2", TypeShape.of(GetFlavorV2Result.class), args, Utilities.withVersion(options));
+    }
+}
diff --git a/sdk/java/src/main/java/com/pulumi/openstack/loadbalancer/Members.java b/sdk/java/src/main/java/com/pulumi/openstack/loadbalancer/Members.java
index 499fe1d7a..65f9c2bd0 100644
--- a/sdk/java/src/main/java/com/pulumi/openstack/loadbalancer/Members.java
+++ b/sdk/java/src/main/java/com/pulumi/openstack/loadbalancer/Members.java
@@ -22,10 +22,6 @@
  * > **Note:** This resource has attributes that depend on octavia minor versions.
  * Please ensure your Openstack cloud supports the required minor version.
  * 
- * > **Note:** This resource works only within Octavia API. For
- * legacy Neutron LBaaS v2 extension please use
- * openstack.loadbalancer.Member resource.
- * 
  * ## Example Usage
  * 
  * <!--Start PulumiCodeChooser -->
diff --git a/sdk/java/src/main/java/com/pulumi/openstack/loadbalancer/Pool.java b/sdk/java/src/main/java/com/pulumi/openstack/loadbalancer/Pool.java
index 878f88aba..6912848e0 100644
--- a/sdk/java/src/main/java/com/pulumi/openstack/loadbalancer/Pool.java
+++ b/sdk/java/src/main/java/com/pulumi/openstack/loadbalancer/Pool.java
@@ -108,8 +108,7 @@ public Output> description() {
     /**
      * The load balancing algorithm to
      * distribute traffic to the pool's members. Must be one of
-     * ROUND_ROBIN, LEAST_CONNECTIONS, SOURCE_IP, or SOURCE_IP_PORT (supported only
-     * in Octavia).
+     * ROUND_ROBIN, LEAST_CONNECTIONS, SOURCE_IP, or SOURCE_IP_PORT.
      * 
      */
     @Export(name="lbMethod", refs={String.class}, tree="[0]")
@@ -118,8 +117,7 @@ public Output> description() {
     /**
      * @return The load balancing algorithm to
      * distribute traffic to the pool's members. Must be one of
-     * ROUND_ROBIN, LEAST_CONNECTIONS, SOURCE_IP, or SOURCE_IP_PORT (supported only
-     * in Octavia).
+     * ROUND_ROBIN, LEAST_CONNECTIONS, SOURCE_IP, or SOURCE_IP_PORT.
      * 
      */
     public Output lbMethod() {
@@ -195,8 +193,8 @@ public Output persistence() {
     }
     /**
      * The protocol - can either be TCP, HTTP, HTTPS, PROXY,
-     * UDP (supported only in Octavia), PROXYV2 (**Octavia minor version >= 2.22**)
-     * or SCTP (**Octavia minor version >= 2.23**). Changing this creates a new pool.
+     * UDP, PROXYV2 (**Octavia minor version >= 2.22**) or SCTP
+     * (**Octavia minor version >= 2.23**). Changing this creates a new pool.
      * 
      */
     @Export(name="protocol", refs={String.class}, tree="[0]")
@@ -204,8 +202,8 @@ public Output persistence() {
 
     /**
      * @return The protocol - can either be TCP, HTTP, HTTPS, PROXY,
-     * UDP (supported only in Octavia), PROXYV2 (**Octavia minor version >= 2.22**)
-     * or SCTP (**Octavia minor version >= 2.23**). Changing this creates a new pool.
+     * UDP, PROXYV2 (**Octavia minor version >= 2.22**) or SCTP
+     * (**Octavia minor version >= 2.23**). Changing this creates a new pool.
      * 
      */
     public Output protocol() {
diff --git a/sdk/java/src/main/java/com/pulumi/openstack/loadbalancer/PoolArgs.java b/sdk/java/src/main/java/com/pulumi/openstack/loadbalancer/PoolArgs.java
index 4ffce55f8..4763e29b0 100644
--- a/sdk/java/src/main/java/com/pulumi/openstack/loadbalancer/PoolArgs.java
+++ b/sdk/java/src/main/java/com/pulumi/openstack/loadbalancer/PoolArgs.java
@@ -53,8 +53,7 @@ public Optional> description() {
     /**
      * The load balancing algorithm to
      * distribute traffic to the pool's members. Must be one of
-     * ROUND_ROBIN, LEAST_CONNECTIONS, SOURCE_IP, or SOURCE_IP_PORT (supported only
-     * in Octavia).
+     * ROUND_ROBIN, LEAST_CONNECTIONS, SOURCE_IP, or SOURCE_IP_PORT.
      * 
      */
     @Import(name="lbMethod", required=true)
@@ -63,8 +62,7 @@ public Optional> description() {
     /**
      * @return The load balancing algorithm to
      * distribute traffic to the pool's members. Must be one of
-     * ROUND_ROBIN, LEAST_CONNECTIONS, SOURCE_IP, or SOURCE_IP_PORT (supported only
-     * in Octavia).
+     * ROUND_ROBIN, LEAST_CONNECTIONS, SOURCE_IP, or SOURCE_IP_PORT.
      * 
      */
     public Output lbMethod() {
@@ -145,8 +143,8 @@ public Optional> persistence() {
 
     /**
      * The protocol - can either be TCP, HTTP, HTTPS, PROXY,
-     * UDP (supported only in Octavia), PROXYV2 (**Octavia minor version >= 2.22**)
-     * or SCTP (**Octavia minor version >= 2.23**). Changing this creates a new pool.
+     * UDP, PROXYV2 (**Octavia minor version >= 2.22**) or SCTP
+     * (**Octavia minor version >= 2.23**). Changing this creates a new pool.
      * 
      */
     @Import(name="protocol", required=true)
@@ -154,8 +152,8 @@ public Optional> persistence() {
 
     /**
      * @return The protocol - can either be TCP, HTTP, HTTPS, PROXY,
-     * UDP (supported only in Octavia), PROXYV2 (**Octavia minor version >= 2.22**)
-     * or SCTP (**Octavia minor version >= 2.23**). Changing this creates a new pool.
+     * UDP, PROXYV2 (**Octavia minor version >= 2.22**) or SCTP
+     * (**Octavia minor version >= 2.23**). Changing this creates a new pool.
      * 
      */
     public Output protocol() {
@@ -282,8 +280,7 @@ public Builder description(String description) {
         /**
          * @param lbMethod The load balancing algorithm to
          * distribute traffic to the pool's members. Must be one of
-         * ROUND_ROBIN, LEAST_CONNECTIONS, SOURCE_IP, or SOURCE_IP_PORT (supported only
-         * in Octavia).
+         * ROUND_ROBIN, LEAST_CONNECTIONS, SOURCE_IP, or SOURCE_IP_PORT.
          * 
          * @return builder
          * 
@@ -296,8 +293,7 @@ public Builder lbMethod(Output lbMethod) {
         /**
          * @param lbMethod The load balancing algorithm to
          * distribute traffic to the pool's members. Must be one of
-         * ROUND_ROBIN, LEAST_CONNECTIONS, SOURCE_IP, or SOURCE_IP_PORT (supported only
-         * in Octavia).
+         * ROUND_ROBIN, LEAST_CONNECTIONS, SOURCE_IP, or SOURCE_IP_PORT.
          * 
          * @return builder
          * 
@@ -404,8 +400,8 @@ public Builder persistence(PoolPersistenceArgs persistence) {
 
         /**
          * @param protocol The protocol - can either be TCP, HTTP, HTTPS, PROXY,
-         * UDP (supported only in Octavia), PROXYV2 (**Octavia minor version >= 2.22**)
-         * or SCTP (**Octavia minor version >= 2.23**). Changing this creates a new pool.
+         * UDP, PROXYV2 (**Octavia minor version >= 2.22**) or SCTP
+         * (**Octavia minor version >= 2.23**). Changing this creates a new pool.
          * 
          * @return builder
          * 
@@ -417,8 +413,8 @@ public Builder protocol(Output protocol) {
 
         /**
          * @param protocol The protocol - can either be TCP, HTTP, HTTPS, PROXY,
-         * UDP (supported only in Octavia), PROXYV2 (**Octavia minor version >= 2.22**)
-         * or SCTP (**Octavia minor version >= 2.23**). Changing this creates a new pool.
+         * UDP, PROXYV2 (**Octavia minor version >= 2.22**) or SCTP
+         * (**Octavia minor version >= 2.23**). Changing this creates a new pool.
          * 
          * @return builder
          * 
diff --git a/sdk/java/src/main/java/com/pulumi/openstack/loadbalancer/PoolV1.java b/sdk/java/src/main/java/com/pulumi/openstack/loadbalancer/PoolV1.java
index 583a34472..031b5fd6f 100644
--- a/sdk/java/src/main/java/com/pulumi/openstack/loadbalancer/PoolV1.java
+++ b/sdk/java/src/main/java/com/pulumi/openstack/loadbalancer/PoolV1.java
@@ -63,10 +63,6 @@
  * <!--Start PulumiCodeChooser -->
  * <!--End PulumiCodeChooser -->
  * 
- * ## Notes
- * 
- * The `member` block is deprecated in favor of the `openstack.loadbalancer.MemberV1` resource.
- * 
  * ## Import
  * 
  * Load Balancer Pools can be imported using the `id`, e.g.
@@ -112,30 +108,6 @@ public Output lbMethod() {
     public Output lbProvider() {
         return this.lbProvider;
     }
-    /**
-     * An existing node to add to the pool. Changing this
-     * updates the members of the pool. The member object structure is documented
-     * below. Please note that the `member` block is deprecated in favor of the
-     * `openstack.loadbalancer.MemberV1` resource.
-     * 
-     * @deprecated
-     * Use openstack.loadbalancer.MemberV1 instead
-     * 
-     */
-    @Deprecated /* Use openstack.loadbalancer.MemberV1 instead */
-    @Export(name="members", refs={List.class,String.class}, tree="[0,1]")
-    private Output> members;
-
-    /**
-     * @return An existing node to add to the pool. Changing this
-     * updates the members of the pool. The member object structure is documented
-     * below. Please note that the `member` block is deprecated in favor of the
-     * `openstack.loadbalancer.MemberV1` resource.
-     * 
-     */
-    public Output>> members() {
-        return Codegen.optional(this.members);
-    }
     /**
      * A list of IDs of monitors to associate with the
      * pool.
diff --git a/sdk/java/src/main/java/com/pulumi/openstack/loadbalancer/PoolV1Args.java b/sdk/java/src/main/java/com/pulumi/openstack/loadbalancer/PoolV1Args.java
index bed3e7fb7..4812e9553 100644
--- a/sdk/java/src/main/java/com/pulumi/openstack/loadbalancer/PoolV1Args.java
+++ b/sdk/java/src/main/java/com/pulumi/openstack/loadbalancer/PoolV1Args.java
@@ -53,35 +53,6 @@ public Optional> lbProvider() {
         return Optional.ofNullable(this.lbProvider);
     }
 
-    /**
-     * An existing node to add to the pool. Changing this
-     * updates the members of the pool. The member object structure is documented
-     * below. Please note that the `member` block is deprecated in favor of the
-     * `openstack.loadbalancer.MemberV1` resource.
-     * 
-     * @deprecated
-     * Use openstack.loadbalancer.MemberV1 instead
-     * 
-     */
-    @Deprecated /* Use openstack.loadbalancer.MemberV1 instead */
-    @Import(name="members")
-    private @Nullable Output> members;
-
-    /**
-     * @return An existing node to add to the pool. Changing this
-     * updates the members of the pool. The member object structure is documented
-     * below. Please note that the `member` block is deprecated in favor of the
-     * `openstack.loadbalancer.MemberV1` resource.
-     * 
-     * @deprecated
-     * Use openstack.loadbalancer.MemberV1 instead
-     * 
-     */
-    @Deprecated /* Use openstack.loadbalancer.MemberV1 instead */
-    public Optional>> members() {
-        return Optional.ofNullable(this.members);
-    }
-
     /**
      * A list of IDs of monitors to associate with the
      * pool.
@@ -195,7 +166,6 @@ private PoolV1Args() {}
     private PoolV1Args(PoolV1Args $) {
         this.lbMethod = $.lbMethod;
         this.lbProvider = $.lbProvider;
-        this.members = $.members;
         this.monitorIds = $.monitorIds;
         this.name = $.name;
         this.protocol = $.protocol;
@@ -270,58 +240,6 @@ public Builder lbProvider(String lbProvider) {
             return lbProvider(Output.of(lbProvider));
         }
 
-        /**
-         * @param members An existing node to add to the pool. Changing this
-         * updates the members of the pool. The member object structure is documented
-         * below. Please note that the `member` block is deprecated in favor of the
-         * `openstack.loadbalancer.MemberV1` resource.
-         * 
-         * @return builder
-         * 
-         * @deprecated
-         * Use openstack.loadbalancer.MemberV1 instead
-         * 
-         */
-        @Deprecated /* Use openstack.loadbalancer.MemberV1 instead */
-        public Builder members(@Nullable Output> members) {
-            $.members = members;
-            return this;
-        }
-
-        /**
-         * @param members An existing node to add to the pool. Changing this
-         * updates the members of the pool. The member object structure is documented
-         * below. Please note that the `member` block is deprecated in favor of the
-         * `openstack.loadbalancer.MemberV1` resource.
-         * 
-         * @return builder
-         * 
-         * @deprecated
-         * Use openstack.loadbalancer.MemberV1 instead
-         * 
-         */
-        @Deprecated /* Use openstack.loadbalancer.MemberV1 instead */
-        public Builder members(List members) {
-            return members(Output.of(members));
-        }
-
-        /**
-         * @param members An existing node to add to the pool. Changing this
-         * updates the members of the pool. The member object structure is documented
-         * below. Please note that the `member` block is deprecated in favor of the
-         * `openstack.loadbalancer.MemberV1` resource.
-         * 
-         * @return builder
-         * 
-         * @deprecated
-         * Use openstack.loadbalancer.MemberV1 instead
-         * 
-         */
-        @Deprecated /* Use openstack.loadbalancer.MemberV1 instead */
-        public Builder members(String... members) {
-            return members(List.of(members));
-        }
-
         /**
          * @param monitorIds A list of IDs of monitors to associate with the
          * pool.
diff --git a/sdk/java/src/main/java/com/pulumi/openstack/loadbalancer/Quota.java b/sdk/java/src/main/java/com/pulumi/openstack/loadbalancer/Quota.java
index 86c0114c1..cf5758802 100644
--- a/sdk/java/src/main/java/com/pulumi/openstack/loadbalancer/Quota.java
+++ b/sdk/java/src/main/java/com/pulumi/openstack/loadbalancer/Quota.java
@@ -19,8 +19,6 @@
  * 
  * > **Note:** This usually requires admin privileges.
  * 
- * > **Note:** This resource is only available for Octavia.
- * 
  * > **Note:** This resource has a no-op deletion so no actual actions will be done against the OpenStack
  *    API in case of delete call.
  * 
diff --git a/sdk/java/src/main/java/com/pulumi/openstack/loadbalancer/inputs/GetFlavorV2Args.java b/sdk/java/src/main/java/com/pulumi/openstack/loadbalancer/inputs/GetFlavorV2Args.java
new file mode 100644
index 000000000..0fd4411ba
--- /dev/null
+++ b/sdk/java/src/main/java/com/pulumi/openstack/loadbalancer/inputs/GetFlavorV2Args.java
@@ -0,0 +1,97 @@
+// *** WARNING: this file was generated by pulumi-java-gen. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+package com.pulumi.openstack.loadbalancer.inputs;
+
+import com.pulumi.core.Output;
+import com.pulumi.core.annotations.Import;
+import java.lang.String;
+import java.util.Objects;
+import java.util.Optional;
+import javax.annotation.Nullable;
+
+
+public final class GetFlavorV2Args extends com.pulumi.resources.InvokeArgs {
+
+    public static final GetFlavorV2Args Empty = new GetFlavorV2Args();
+
+    @Import(name="flavorId")
+    private @Nullable Output flavorId;
+
+    public Optional> flavorId() {
+        return Optional.ofNullable(this.flavorId);
+    }
+
+    @Import(name="name")
+    private @Nullable Output name;
+
+    public Optional> name() {
+        return Optional.ofNullable(this.name);
+    }
+
+    @Import(name="region")
+    private @Nullable Output region;
+
+    public Optional> region() {
+        return Optional.ofNullable(this.region);
+    }
+
+    private GetFlavorV2Args() {}
+
+    private GetFlavorV2Args(GetFlavorV2Args $) {
+        this.flavorId = $.flavorId;
+        this.name = $.name;
+        this.region = $.region;
+    }
+
+    public static Builder builder() {
+        return new Builder();
+    }
+    public static Builder builder(GetFlavorV2Args defaults) {
+        return new Builder(defaults);
+    }
+
+    public static final class Builder {
+        private GetFlavorV2Args $;
+
+        public Builder() {
+            $ = new GetFlavorV2Args();
+        }
+
+        public Builder(GetFlavorV2Args defaults) {
+            $ = new GetFlavorV2Args(Objects.requireNonNull(defaults));
+        }
+
+        public Builder flavorId(@Nullable Output flavorId) {
+            $.flavorId = flavorId;
+            return this;
+        }
+
+        public Builder flavorId(String flavorId) {
+            return flavorId(Output.of(flavorId));
+        }
+
+        public Builder name(@Nullable Output name) {
+            $.name = name;
+            return this;
+        }
+
+        public Builder name(String name) {
+            return name(Output.of(name));
+        }
+
+        public Builder region(@Nullable Output region) {
+            $.region = region;
+            return this;
+        }
+
+        public Builder region(String region) {
+            return region(Output.of(region));
+        }
+
+        public GetFlavorV2Args build() {
+            return $;
+        }
+    }
+
+}
diff --git a/sdk/java/src/main/java/com/pulumi/openstack/loadbalancer/inputs/GetFlavorV2PlainArgs.java b/sdk/java/src/main/java/com/pulumi/openstack/loadbalancer/inputs/GetFlavorV2PlainArgs.java
new file mode 100644
index 000000000..a7c9cccde
--- /dev/null
+++ b/sdk/java/src/main/java/com/pulumi/openstack/loadbalancer/inputs/GetFlavorV2PlainArgs.java
@@ -0,0 +1,84 @@
+// *** WARNING: this file was generated by pulumi-java-gen. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+package com.pulumi.openstack.loadbalancer.inputs;
+
+import com.pulumi.core.annotations.Import;
+import java.lang.String;
+import java.util.Objects;
+import java.util.Optional;
+import javax.annotation.Nullable;
+
+
+public final class GetFlavorV2PlainArgs extends com.pulumi.resources.InvokeArgs {
+
+    public static final GetFlavorV2PlainArgs Empty = new GetFlavorV2PlainArgs();
+
+    @Import(name="flavorId")
+    private @Nullable String flavorId;
+
+    public Optional flavorId() {
+        return Optional.ofNullable(this.flavorId);
+    }
+
+    @Import(name="name")
+    private @Nullable String name;
+
+    public Optional name() {
+        return Optional.ofNullable(this.name);
+    }
+
+    @Import(name="region")
+    private @Nullable String region;
+
+    public Optional region() {
+        return Optional.ofNullable(this.region);
+    }
+
+    private GetFlavorV2PlainArgs() {}
+
+    private GetFlavorV2PlainArgs(GetFlavorV2PlainArgs $) {
+        this.flavorId = $.flavorId;
+        this.name = $.name;
+        this.region = $.region;
+    }
+
+    public static Builder builder() {
+        return new Builder();
+    }
+    public static Builder builder(GetFlavorV2PlainArgs defaults) {
+        return new Builder(defaults);
+    }
+
+    public static final class Builder {
+        private GetFlavorV2PlainArgs $;
+
+        public Builder() {
+            $ = new GetFlavorV2PlainArgs();
+        }
+
+        public Builder(GetFlavorV2PlainArgs defaults) {
+            $ = new GetFlavorV2PlainArgs(Objects.requireNonNull(defaults));
+        }
+
+        public Builder flavorId(@Nullable String flavorId) {
+            $.flavorId = flavorId;
+            return this;
+        }
+
+        public Builder name(@Nullable String name) {
+            $.name = name;
+            return this;
+        }
+
+        public Builder region(@Nullable String region) {
+            $.region = region;
+            return this;
+        }
+
+        public GetFlavorV2PlainArgs build() {
+            return $;
+        }
+    }
+
+}
diff --git a/sdk/java/src/main/java/com/pulumi/openstack/loadbalancer/inputs/ListenerState.java b/sdk/java/src/main/java/com/pulumi/openstack/loadbalancer/inputs/ListenerState.java
index 5bbc4a70b..43f9ea3ae 100644
--- a/sdk/java/src/main/java/com/pulumi/openstack/loadbalancer/inputs/ListenerState.java
+++ b/sdk/java/src/main/java/com/pulumi/openstack/loadbalancer/inputs/ListenerState.java
@@ -181,8 +181,8 @@ public Optional> name() {
 
     /**
      * The protocol - can either be TCP, HTTP, HTTPS,
-     * TERMINATED_HTTPS, UDP (supported only in Octavia), SCTP (supported only
-     * in **Octavia minor version >= 2.23**) or PROMETHEUS (supported only in
+     * TERMINATED_HTTPS, UDP, SCTP (supported only in
+     * **Octavia minor version >= 2.23**) or PROMETHEUS (supported only in
      * **Octavia minor version >=2.25**). Changing this creates a new Listener.
      * 
      */
@@ -191,8 +191,8 @@ public Optional> name() {
 
     /**
      * @return The protocol - can either be TCP, HTTP, HTTPS,
-     * TERMINATED_HTTPS, UDP (supported only in Octavia), SCTP (supported only
-     * in **Octavia minor version >= 2.23**) or PROMETHEUS (supported only in
+     * TERMINATED_HTTPS, UDP, SCTP (supported only in
+     * **Octavia minor version >= 2.23**) or PROMETHEUS (supported only in
      * **Octavia minor version >=2.25**). Changing this creates a new Listener.
      * 
      */
@@ -615,8 +615,8 @@ public Builder name(String name) {
 
         /**
          * @param protocol The protocol - can either be TCP, HTTP, HTTPS,
-         * TERMINATED_HTTPS, UDP (supported only in Octavia), SCTP (supported only
-         * in **Octavia minor version >= 2.23**) or PROMETHEUS (supported only in
+         * TERMINATED_HTTPS, UDP, SCTP (supported only in
+         * **Octavia minor version >= 2.23**) or PROMETHEUS (supported only in
          * **Octavia minor version >=2.25**). Changing this creates a new Listener.
          * 
          * @return builder
@@ -629,8 +629,8 @@ public Builder protocol(@Nullable Output protocol) {
 
         /**
          * @param protocol The protocol - can either be TCP, HTTP, HTTPS,
-         * TERMINATED_HTTPS, UDP (supported only in Octavia), SCTP (supported only
-         * in **Octavia minor version >= 2.23**) or PROMETHEUS (supported only in
+         * TERMINATED_HTTPS, UDP, SCTP (supported only in
+         * **Octavia minor version >= 2.23**) or PROMETHEUS (supported only in
          * **Octavia minor version >=2.25**). Changing this creates a new Listener.
          * 
          * @return builder
diff --git a/sdk/java/src/main/java/com/pulumi/openstack/loadbalancer/inputs/PoolState.java b/sdk/java/src/main/java/com/pulumi/openstack/loadbalancer/inputs/PoolState.java
index 65fcf091b..23a4eaf1b 100644
--- a/sdk/java/src/main/java/com/pulumi/openstack/loadbalancer/inputs/PoolState.java
+++ b/sdk/java/src/main/java/com/pulumi/openstack/loadbalancer/inputs/PoolState.java
@@ -52,8 +52,7 @@ public Optional> description() {
     /**
      * The load balancing algorithm to
      * distribute traffic to the pool's members. Must be one of
-     * ROUND_ROBIN, LEAST_CONNECTIONS, SOURCE_IP, or SOURCE_IP_PORT (supported only
-     * in Octavia).
+     * ROUND_ROBIN, LEAST_CONNECTIONS, SOURCE_IP, or SOURCE_IP_PORT.
      * 
      */
     @Import(name="lbMethod")
@@ -62,8 +61,7 @@ public Optional> description() {
     /**
      * @return The load balancing algorithm to
      * distribute traffic to the pool's members. Must be one of
-     * ROUND_ROBIN, LEAST_CONNECTIONS, SOURCE_IP, or SOURCE_IP_PORT (supported only
-     * in Octavia).
+     * ROUND_ROBIN, LEAST_CONNECTIONS, SOURCE_IP, or SOURCE_IP_PORT.
      * 
      */
     public Optional> lbMethod() {
@@ -144,8 +142,8 @@ public Optional> persistence() {
 
     /**
      * The protocol - can either be TCP, HTTP, HTTPS, PROXY,
-     * UDP (supported only in Octavia), PROXYV2 (**Octavia minor version >= 2.22**)
-     * or SCTP (**Octavia minor version >= 2.23**). Changing this creates a new pool.
+     * UDP, PROXYV2 (**Octavia minor version >= 2.22**) or SCTP
+     * (**Octavia minor version >= 2.23**). Changing this creates a new pool.
      * 
      */
     @Import(name="protocol")
@@ -153,8 +151,8 @@ public Optional> persistence() {
 
     /**
      * @return The protocol - can either be TCP, HTTP, HTTPS, PROXY,
-     * UDP (supported only in Octavia), PROXYV2 (**Octavia minor version >= 2.22**)
-     * or SCTP (**Octavia minor version >= 2.23**). Changing this creates a new pool.
+     * UDP, PROXYV2 (**Octavia minor version >= 2.22**) or SCTP
+     * (**Octavia minor version >= 2.23**). Changing this creates a new pool.
      * 
      */
     public Optional> protocol() {
@@ -281,8 +279,7 @@ public Builder description(String description) {
         /**
          * @param lbMethod The load balancing algorithm to
          * distribute traffic to the pool's members. Must be one of
-         * ROUND_ROBIN, LEAST_CONNECTIONS, SOURCE_IP, or SOURCE_IP_PORT (supported only
-         * in Octavia).
+         * ROUND_ROBIN, LEAST_CONNECTIONS, SOURCE_IP, or SOURCE_IP_PORT.
          * 
          * @return builder
          * 
@@ -295,8 +292,7 @@ public Builder lbMethod(@Nullable Output lbMethod) {
         /**
          * @param lbMethod The load balancing algorithm to
          * distribute traffic to the pool's members. Must be one of
-         * ROUND_ROBIN, LEAST_CONNECTIONS, SOURCE_IP, or SOURCE_IP_PORT (supported only
-         * in Octavia).
+         * ROUND_ROBIN, LEAST_CONNECTIONS, SOURCE_IP, or SOURCE_IP_PORT.
          * 
          * @return builder
          * 
@@ -403,8 +399,8 @@ public Builder persistence(PoolPersistenceArgs persistence) {
 
         /**
          * @param protocol The protocol - can either be TCP, HTTP, HTTPS, PROXY,
-         * UDP (supported only in Octavia), PROXYV2 (**Octavia minor version >= 2.22**)
-         * or SCTP (**Octavia minor version >= 2.23**). Changing this creates a new pool.
+         * UDP, PROXYV2 (**Octavia minor version >= 2.22**) or SCTP
+         * (**Octavia minor version >= 2.23**). Changing this creates a new pool.
          * 
          * @return builder
          * 
@@ -416,8 +412,8 @@ public Builder protocol(@Nullable Output protocol) {
 
         /**
          * @param protocol The protocol - can either be TCP, HTTP, HTTPS, PROXY,
-         * UDP (supported only in Octavia), PROXYV2 (**Octavia minor version >= 2.22**)
-         * or SCTP (**Octavia minor version >= 2.23**). Changing this creates a new pool.
+         * UDP, PROXYV2 (**Octavia minor version >= 2.22**) or SCTP
+         * (**Octavia minor version >= 2.23**). Changing this creates a new pool.
          * 
          * @return builder
          * 
diff --git a/sdk/java/src/main/java/com/pulumi/openstack/loadbalancer/inputs/PoolV1State.java b/sdk/java/src/main/java/com/pulumi/openstack/loadbalancer/inputs/PoolV1State.java
index e615fed64..4235134df 100644
--- a/sdk/java/src/main/java/com/pulumi/openstack/loadbalancer/inputs/PoolV1State.java
+++ b/sdk/java/src/main/java/com/pulumi/openstack/loadbalancer/inputs/PoolV1State.java
@@ -52,35 +52,6 @@ public Optional> lbProvider() {
         return Optional.ofNullable(this.lbProvider);
     }
 
-    /**
-     * An existing node to add to the pool. Changing this
-     * updates the members of the pool. The member object structure is documented
-     * below. Please note that the `member` block is deprecated in favor of the
-     * `openstack.loadbalancer.MemberV1` resource.
-     * 
-     * @deprecated
-     * Use openstack.loadbalancer.MemberV1 instead
-     * 
-     */
-    @Deprecated /* Use openstack.loadbalancer.MemberV1 instead */
-    @Import(name="members")
-    private @Nullable Output> members;
-
-    /**
-     * @return An existing node to add to the pool. Changing this
-     * updates the members of the pool. The member object structure is documented
-     * below. Please note that the `member` block is deprecated in favor of the
-     * `openstack.loadbalancer.MemberV1` resource.
-     * 
-     * @deprecated
-     * Use openstack.loadbalancer.MemberV1 instead
-     * 
-     */
-    @Deprecated /* Use openstack.loadbalancer.MemberV1 instead */
-    public Optional>> members() {
-        return Optional.ofNullable(this.members);
-    }
-
     /**
      * A list of IDs of monitors to associate with the
      * pool.
@@ -194,7 +165,6 @@ private PoolV1State() {}
     private PoolV1State(PoolV1State $) {
         this.lbMethod = $.lbMethod;
         this.lbProvider = $.lbProvider;
-        this.members = $.members;
         this.monitorIds = $.monitorIds;
         this.name = $.name;
         this.protocol = $.protocol;
@@ -269,58 +239,6 @@ public Builder lbProvider(String lbProvider) {
             return lbProvider(Output.of(lbProvider));
         }
 
-        /**
-         * @param members An existing node to add to the pool. Changing this
-         * updates the members of the pool. The member object structure is documented
-         * below. Please note that the `member` block is deprecated in favor of the
-         * `openstack.loadbalancer.MemberV1` resource.
-         * 
-         * @return builder
-         * 
-         * @deprecated
-         * Use openstack.loadbalancer.MemberV1 instead
-         * 
-         */
-        @Deprecated /* Use openstack.loadbalancer.MemberV1 instead */
-        public Builder members(@Nullable Output> members) {
-            $.members = members;
-            return this;
-        }
-
-        /**
-         * @param members An existing node to add to the pool. Changing this
-         * updates the members of the pool. The member object structure is documented
-         * below. Please note that the `member` block is deprecated in favor of the
-         * `openstack.loadbalancer.MemberV1` resource.
-         * 
-         * @return builder
-         * 
-         * @deprecated
-         * Use openstack.loadbalancer.MemberV1 instead
-         * 
-         */
-        @Deprecated /* Use openstack.loadbalancer.MemberV1 instead */
-        public Builder members(List members) {
-            return members(Output.of(members));
-        }
-
-        /**
-         * @param members An existing node to add to the pool. Changing this
-         * updates the members of the pool. The member object structure is documented
-         * below. Please note that the `member` block is deprecated in favor of the
-         * `openstack.loadbalancer.MemberV1` resource.
-         * 
-         * @return builder
-         * 
-         * @deprecated
-         * Use openstack.loadbalancer.MemberV1 instead
-         * 
-         */
-        @Deprecated /* Use openstack.loadbalancer.MemberV1 instead */
-        public Builder members(String... members) {
-            return members(List.of(members));
-        }
-
         /**
          * @param monitorIds A list of IDs of monitors to associate with the
          * pool.
diff --git a/sdk/java/src/main/java/com/pulumi/openstack/loadbalancer/outputs/GetFlavorV2Result.java b/sdk/java/src/main/java/com/pulumi/openstack/loadbalancer/outputs/GetFlavorV2Result.java
new file mode 100644
index 000000000..33e0561c7
--- /dev/null
+++ b/sdk/java/src/main/java/com/pulumi/openstack/loadbalancer/outputs/GetFlavorV2Result.java
@@ -0,0 +1,149 @@
+// *** WARNING: this file was generated by pulumi-java-gen. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+package com.pulumi.openstack.loadbalancer.outputs;
+
+import com.pulumi.core.annotations.CustomType;
+import com.pulumi.exceptions.MissingRequiredPropertyException;
+import java.lang.Boolean;
+import java.lang.String;
+import java.util.Objects;
+import java.util.Optional;
+import javax.annotation.Nullable;
+
+@CustomType
+public final class GetFlavorV2Result {
+    private String description;
+    private Boolean enabled;
+    private String flavorId;
+    private String flavorProfileId;
+    /**
+     * @return The provider-assigned unique ID for this managed resource.
+     * 
+     */
+    private String id;
+    private String name;
+    private @Nullable String region;
+
+    private GetFlavorV2Result() {}
+    public String description() {
+        return this.description;
+    }
+    public Boolean enabled() {
+        return this.enabled;
+    }
+    public String flavorId() {
+        return this.flavorId;
+    }
+    public String flavorProfileId() {
+        return this.flavorProfileId;
+    }
+    /**
+     * @return The provider-assigned unique ID for this managed resource.
+     * 
+     */
+    public String id() {
+        return this.id;
+    }
+    public String name() {
+        return this.name;
+    }
+    public Optional region() {
+        return Optional.ofNullable(this.region);
+    }
+
+    public static Builder builder() {
+        return new Builder();
+    }
+
+    public static Builder builder(GetFlavorV2Result defaults) {
+        return new Builder(defaults);
+    }
+    @CustomType.Builder
+    public static final class Builder {
+        private String description;
+        private Boolean enabled;
+        private String flavorId;
+        private String flavorProfileId;
+        private String id;
+        private String name;
+        private @Nullable String region;
+        public Builder() {}
+        public Builder(GetFlavorV2Result defaults) {
+    	      Objects.requireNonNull(defaults);
+    	      this.description = defaults.description;
+    	      this.enabled = defaults.enabled;
+    	      this.flavorId = defaults.flavorId;
+    	      this.flavorProfileId = defaults.flavorProfileId;
+    	      this.id = defaults.id;
+    	      this.name = defaults.name;
+    	      this.region = defaults.region;
+        }
+
+        @CustomType.Setter
+        public Builder description(String description) {
+            if (description == null) {
+              throw new MissingRequiredPropertyException("GetFlavorV2Result", "description");
+            }
+            this.description = description;
+            return this;
+        }
+        @CustomType.Setter
+        public Builder enabled(Boolean enabled) {
+            if (enabled == null) {
+              throw new MissingRequiredPropertyException("GetFlavorV2Result", "enabled");
+            }
+            this.enabled = enabled;
+            return this;
+        }
+        @CustomType.Setter
+        public Builder flavorId(String flavorId) {
+            if (flavorId == null) {
+              throw new MissingRequiredPropertyException("GetFlavorV2Result", "flavorId");
+            }
+            this.flavorId = flavorId;
+            return this;
+        }
+        @CustomType.Setter
+        public Builder flavorProfileId(String flavorProfileId) {
+            if (flavorProfileId == null) {
+              throw new MissingRequiredPropertyException("GetFlavorV2Result", "flavorProfileId");
+            }
+            this.flavorProfileId = flavorProfileId;
+            return this;
+        }
+        @CustomType.Setter
+        public Builder id(String id) {
+            if (id == null) {
+              throw new MissingRequiredPropertyException("GetFlavorV2Result", "id");
+            }
+            this.id = id;
+            return this;
+        }
+        @CustomType.Setter
+        public Builder name(String name) {
+            if (name == null) {
+              throw new MissingRequiredPropertyException("GetFlavorV2Result", "name");
+            }
+            this.name = name;
+            return this;
+        }
+        @CustomType.Setter
+        public Builder region(@Nullable String region) {
+
+            this.region = region;
+            return this;
+        }
+        public GetFlavorV2Result build() {
+            final var _resultValue = new GetFlavorV2Result();
+            _resultValue.description = description;
+            _resultValue.enabled = enabled;
+            _resultValue.flavorId = flavorId;
+            _resultValue.flavorProfileId = flavorProfileId;
+            _resultValue.id = id;
+            _resultValue.name = name;
+            _resultValue.region = region;
+            return _resultValue;
+        }
+    }
+}
diff --git a/sdk/java/src/main/java/com/pulumi/openstack/networking/Router.java b/sdk/java/src/main/java/com/pulumi/openstack/networking/Router.java
index 14d0de919..1b12e465d 100644
--- a/sdk/java/src/main/java/com/pulumi/openstack/networking/Router.java
+++ b/sdk/java/src/main/java/com/pulumi/openstack/networking/Router.java
@@ -199,32 +199,6 @@ public Output enableSnat() {
     public Output> externalFixedIps() {
         return this.externalFixedIps;
     }
-    /**
-     * The
-     * network UUID of an external gateway for the router. A router with an
-     * external gateway is required if any compute instances or load balancers
-     * will be using floating IPs. Changing this updates the external gateway
-     * of an existing router.
-     * 
-     * @deprecated
-     * use external_network_id instead
-     * 
-     */
-    @Deprecated /* use external_network_id instead */
-    @Export(name="externalGateway", refs={String.class}, tree="[0]")
-    private Output externalGateway;
-
-    /**
-     * @return The
-     * network UUID of an external gateway for the router. A router with an
-     * external gateway is required if any compute instances or load balancers
-     * will be using floating IPs. Changing this updates the external gateway
-     * of an existing router.
-     * 
-     */
-    public Output externalGateway() {
-        return this.externalGateway;
-    }
     /**
      * The network UUID of an external gateway
      * for the router. A router with an external gateway is required if any
diff --git a/sdk/java/src/main/java/com/pulumi/openstack/networking/RouterArgs.java b/sdk/java/src/main/java/com/pulumi/openstack/networking/RouterArgs.java
index 551010dcf..e3bc846b9 100644
--- a/sdk/java/src/main/java/com/pulumi/openstack/networking/RouterArgs.java
+++ b/sdk/java/src/main/java/com/pulumi/openstack/networking/RouterArgs.java
@@ -139,37 +139,6 @@ public Optional>> externalFixedIps() {
         return Optional.ofNullable(this.externalFixedIps);
     }
 
-    /**
-     * The
-     * network UUID of an external gateway for the router. A router with an
-     * external gateway is required if any compute instances or load balancers
-     * will be using floating IPs. Changing this updates the external gateway
-     * of an existing router.
-     * 
-     * @deprecated
-     * use external_network_id instead
-     * 
-     */
-    @Deprecated /* use external_network_id instead */
-    @Import(name="externalGateway")
-    private @Nullable Output externalGateway;
-
-    /**
-     * @return The
-     * network UUID of an external gateway for the router. A router with an
-     * external gateway is required if any compute instances or load balancers
-     * will be using floating IPs. Changing this updates the external gateway
-     * of an existing router.
-     * 
-     * @deprecated
-     * use external_network_id instead
-     * 
-     */
-    @Deprecated /* use external_network_id instead */
-    public Optional> externalGateway() {
-        return Optional.ofNullable(this.externalGateway);
-    }
-
     /**
      * The network UUID of an external gateway
      * for the router. A router with an external gateway is required if any
@@ -325,7 +294,6 @@ private RouterArgs(RouterArgs $) {
         this.distributed = $.distributed;
         this.enableSnat = $.enableSnat;
         this.externalFixedIps = $.externalFixedIps;
-        this.externalGateway = $.externalGateway;
         this.externalNetworkId = $.externalNetworkId;
         this.externalSubnetIds = $.externalSubnetIds;
         this.name = $.name;
@@ -534,43 +502,6 @@ public Builder externalFixedIps(RouterExternalFixedIpArgs... externalFixedIps) {
             return externalFixedIps(List.of(externalFixedIps));
         }
 
-        /**
-         * @param externalGateway The
-         * network UUID of an external gateway for the router. A router with an
-         * external gateway is required if any compute instances or load balancers
-         * will be using floating IPs. Changing this updates the external gateway
-         * of an existing router.
-         * 
-         * @return builder
-         * 
-         * @deprecated
-         * use external_network_id instead
-         * 
-         */
-        @Deprecated /* use external_network_id instead */
-        public Builder externalGateway(@Nullable Output externalGateway) {
-            $.externalGateway = externalGateway;
-            return this;
-        }
-
-        /**
-         * @param externalGateway The
-         * network UUID of an external gateway for the router. A router with an
-         * external gateway is required if any compute instances or load balancers
-         * will be using floating IPs. Changing this updates the external gateway
-         * of an existing router.
-         * 
-         * @return builder
-         * 
-         * @deprecated
-         * use external_network_id instead
-         * 
-         */
-        @Deprecated /* use external_network_id instead */
-        public Builder externalGateway(String externalGateway) {
-            return externalGateway(Output.of(externalGateway));
-        }
-
         /**
          * @param externalNetworkId The network UUID of an external gateway
          * for the router. A router with an external gateway is required if any
diff --git a/sdk/java/src/main/java/com/pulumi/openstack/networking/Subnet.java b/sdk/java/src/main/java/com/pulumi/openstack/networking/Subnet.java
index 5a3de40ac..439b5cdc3 100644
--- a/sdk/java/src/main/java/com/pulumi/openstack/networking/Subnet.java
+++ b/sdk/java/src/main/java/com/pulumi/openstack/networking/Subnet.java
@@ -11,8 +11,6 @@
 import com.pulumi.openstack.networking.SubnetArgs;
 import com.pulumi.openstack.networking.inputs.SubnetState;
 import com.pulumi.openstack.networking.outputs.SubnetAllocationPool;
-import com.pulumi.openstack.networking.outputs.SubnetAllocationPoolsCollection;
-import com.pulumi.openstack.networking.outputs.SubnetHostRoute;
 import java.lang.Boolean;
 import java.lang.Integer;
 import java.lang.Object;
@@ -119,28 +117,6 @@ public Output> allTags() {
     public Output> allocationPools() {
         return this.allocationPools;
     }
-    /**
-     * A block declaring the start and end range of the IP addresses available for
-     * use with DHCP in this subnet.
-     * The `allocation_pools` block is documented below.
-     * 
-     * @deprecated
-     * use allocation_pool instead
-     * 
-     */
-    @Deprecated /* use allocation_pool instead */
-    @Export(name="allocationPoolsCollection", refs={List.class,SubnetAllocationPoolsCollection.class}, tree="[0,1]")
-    private Output> allocationPoolsCollection;
-
-    /**
-     * @return A block declaring the start and end range of the IP addresses available for
-     * use with DHCP in this subnet.
-     * The `allocation_pools` block is documented below.
-     * 
-     */
-    public Output> allocationPoolsCollection() {
-        return this.allocationPoolsCollection;
-    }
     /**
      * CIDR representing IP range for this subnet, based on IP
      * version. You can omit this option if you are creating a subnet from a
@@ -231,32 +207,6 @@ public Output> enableDhcp() {
     public Output gatewayIp() {
         return this.gatewayIp;
     }
-    /**
-     * (**Deprecated** - use `openstack.networking.SubnetRoute`
-     * instead) An array of routes that should be used by devices
-     * with IPs from this subnet (not including local subnet route). The host_route
-     * object structure is documented below. Changing this updates the host routes
-     * for the existing subnet.
-     * 
-     * @deprecated
-     * Use openstack.networking.SubnetRoute instead
-     * 
-     */
-    @Deprecated /* Use openstack.networking.SubnetRoute instead */
-    @Export(name="hostRoutes", refs={List.class,SubnetHostRoute.class}, tree="[0,1]")
-    private Output> hostRoutes;
-
-    /**
-     * @return (**Deprecated** - use `openstack.networking.SubnetRoute`
-     * instead) An array of routes that should be used by devices
-     * with IPs from this subnet (not including local subnet route). The host_route
-     * object structure is documented below. Changing this updates the host routes
-     * for the existing subnet.
-     * 
-     */
-    public Output>> hostRoutes() {
-        return Codegen.optional(this.hostRoutes);
-    }
     /**
      * IP version, either 4 (default) or 6. Changing this creates a
      * new subnet.
diff --git a/sdk/java/src/main/java/com/pulumi/openstack/networking/SubnetArgs.java b/sdk/java/src/main/java/com/pulumi/openstack/networking/SubnetArgs.java
index 0c130bc84..996bcc4b0 100644
--- a/sdk/java/src/main/java/com/pulumi/openstack/networking/SubnetArgs.java
+++ b/sdk/java/src/main/java/com/pulumi/openstack/networking/SubnetArgs.java
@@ -7,8 +7,6 @@
 import com.pulumi.core.annotations.Import;
 import com.pulumi.exceptions.MissingRequiredPropertyException;
 import com.pulumi.openstack.networking.inputs.SubnetAllocationPoolArgs;
-import com.pulumi.openstack.networking.inputs.SubnetAllocationPoolsCollectionArgs;
-import com.pulumi.openstack.networking.inputs.SubnetHostRouteArgs;
 import java.lang.Boolean;
 import java.lang.Integer;
 import java.lang.Object;
@@ -49,33 +47,6 @@ public Optional>> allocationPools() {
         return Optional.ofNullable(this.allocationPools);
     }
 
-    /**
-     * A block declaring the start and end range of the IP addresses available for
-     * use with DHCP in this subnet.
-     * The `allocation_pools` block is documented below.
-     * 
-     * @deprecated
-     * use allocation_pool instead
-     * 
-     */
-    @Deprecated /* use allocation_pool instead */
-    @Import(name="allocationPoolsCollection")
-    private @Nullable Output> allocationPoolsCollection;
-
-    /**
-     * @return A block declaring the start and end range of the IP addresses available for
-     * use with DHCP in this subnet.
-     * The `allocation_pools` block is documented below.
-     * 
-     * @deprecated
-     * use allocation_pool instead
-     * 
-     */
-    @Deprecated /* use allocation_pool instead */
-    public Optional>> allocationPoolsCollection() {
-        return Optional.ofNullable(this.allocationPoolsCollection);
-    }
-
     /**
      * CIDR representing IP range for this subnet, based on IP
      * version. You can omit this option if you are creating a subnet from a
@@ -171,37 +142,6 @@ public Optional> gatewayIp() {
         return Optional.ofNullable(this.gatewayIp);
     }
 
-    /**
-     * (**Deprecated** - use `openstack.networking.SubnetRoute`
-     * instead) An array of routes that should be used by devices
-     * with IPs from this subnet (not including local subnet route). The host_route
-     * object structure is documented below. Changing this updates the host routes
-     * for the existing subnet.
-     * 
-     * @deprecated
-     * Use openstack.networking.SubnetRoute instead
-     * 
-     */
-    @Deprecated /* Use openstack.networking.SubnetRoute instead */
-    @Import(name="hostRoutes")
-    private @Nullable Output> hostRoutes;
-
-    /**
-     * @return (**Deprecated** - use `openstack.networking.SubnetRoute`
-     * instead) An array of routes that should be used by devices
-     * with IPs from this subnet (not including local subnet route). The host_route
-     * object structure is documented below. Changing this updates the host routes
-     * for the existing subnet.
-     * 
-     * @deprecated
-     * Use openstack.networking.SubnetRoute instead
-     * 
-     */
-    @Deprecated /* Use openstack.networking.SubnetRoute instead */
-    public Optional>> hostRoutes() {
-        return Optional.ofNullable(this.hostRoutes);
-    }
-
     /**
      * IP version, either 4 (default) or 6. Changing this creates a
      * new subnet.
@@ -429,13 +369,11 @@ private SubnetArgs() {}
 
     private SubnetArgs(SubnetArgs $) {
         this.allocationPools = $.allocationPools;
-        this.allocationPoolsCollection = $.allocationPoolsCollection;
         this.cidr = $.cidr;
         this.description = $.description;
         this.dnsNameservers = $.dnsNameservers;
         this.enableDhcp = $.enableDhcp;
         this.gatewayIp = $.gatewayIp;
-        this.hostRoutes = $.hostRoutes;
         this.ipVersion = $.ipVersion;
         this.ipv6AddressMode = $.ipv6AddressMode;
         this.ipv6RaMode = $.ipv6RaMode;
@@ -515,55 +453,6 @@ public Builder allocationPools(SubnetAllocationPoolArgs... allocationPools) {
             return allocationPools(List.of(allocationPools));
         }
 
-        /**
-         * @param allocationPoolsCollection A block declaring the start and end range of the IP addresses available for
-         * use with DHCP in this subnet.
-         * The `allocation_pools` block is documented below.
-         * 
-         * @return builder
-         * 
-         * @deprecated
-         * use allocation_pool instead
-         * 
-         */
-        @Deprecated /* use allocation_pool instead */
-        public Builder allocationPoolsCollection(@Nullable Output> allocationPoolsCollection) {
-            $.allocationPoolsCollection = allocationPoolsCollection;
-            return this;
-        }
-
-        /**
-         * @param allocationPoolsCollection A block declaring the start and end range of the IP addresses available for
-         * use with DHCP in this subnet.
-         * The `allocation_pools` block is documented below.
-         * 
-         * @return builder
-         * 
-         * @deprecated
-         * use allocation_pool instead
-         * 
-         */
-        @Deprecated /* use allocation_pool instead */
-        public Builder allocationPoolsCollection(List allocationPoolsCollection) {
-            return allocationPoolsCollection(Output.of(allocationPoolsCollection));
-        }
-
-        /**
-         * @param allocationPoolsCollection A block declaring the start and end range of the IP addresses available for
-         * use with DHCP in this subnet.
-         * The `allocation_pools` block is documented below.
-         * 
-         * @return builder
-         * 
-         * @deprecated
-         * use allocation_pool instead
-         * 
-         */
-        @Deprecated /* use allocation_pool instead */
-        public Builder allocationPoolsCollection(SubnetAllocationPoolsCollectionArgs... allocationPoolsCollection) {
-            return allocationPoolsCollection(List.of(allocationPoolsCollection));
-        }
-
         /**
          * @param cidr CIDR representing IP range for this subnet, based on IP
          * version. You can omit this option if you are creating a subnet from a
@@ -701,61 +590,6 @@ public Builder gatewayIp(String gatewayIp) {
             return gatewayIp(Output.of(gatewayIp));
         }
 
-        /**
-         * @param hostRoutes (**Deprecated** - use `openstack.networking.SubnetRoute`
-         * instead) An array of routes that should be used by devices
-         * with IPs from this subnet (not including local subnet route). The host_route
-         * object structure is documented below. Changing this updates the host routes
-         * for the existing subnet.
-         * 
-         * @return builder
-         * 
-         * @deprecated
-         * Use openstack.networking.SubnetRoute instead
-         * 
-         */
-        @Deprecated /* Use openstack.networking.SubnetRoute instead */
-        public Builder hostRoutes(@Nullable Output> hostRoutes) {
-            $.hostRoutes = hostRoutes;
-            return this;
-        }
-
-        /**
-         * @param hostRoutes (**Deprecated** - use `openstack.networking.SubnetRoute`
-         * instead) An array of routes that should be used by devices
-         * with IPs from this subnet (not including local subnet route). The host_route
-         * object structure is documented below. Changing this updates the host routes
-         * for the existing subnet.
-         * 
-         * @return builder
-         * 
-         * @deprecated
-         * Use openstack.networking.SubnetRoute instead
-         * 
-         */
-        @Deprecated /* Use openstack.networking.SubnetRoute instead */
-        public Builder hostRoutes(List hostRoutes) {
-            return hostRoutes(Output.of(hostRoutes));
-        }
-
-        /**
-         * @param hostRoutes (**Deprecated** - use `openstack.networking.SubnetRoute`
-         * instead) An array of routes that should be used by devices
-         * with IPs from this subnet (not including local subnet route). The host_route
-         * object structure is documented below. Changing this updates the host routes
-         * for the existing subnet.
-         * 
-         * @return builder
-         * 
-         * @deprecated
-         * Use openstack.networking.SubnetRoute instead
-         * 
-         */
-        @Deprecated /* Use openstack.networking.SubnetRoute instead */
-        public Builder hostRoutes(SubnetHostRouteArgs... hostRoutes) {
-            return hostRoutes(List.of(hostRoutes));
-        }
-
         /**
          * @param ipVersion IP version, either 4 (default) or 6. Changing this creates a
          * new subnet.
diff --git a/sdk/java/src/main/java/com/pulumi/openstack/networking/inputs/GetFloatingIpArgs.java b/sdk/java/src/main/java/com/pulumi/openstack/networking/inputs/GetFloatingIpArgs.java
index 2d6223e01..1b9068201 100644
--- a/sdk/java/src/main/java/com/pulumi/openstack/networking/inputs/GetFloatingIpArgs.java
+++ b/sdk/java/src/main/java/com/pulumi/openstack/networking/inputs/GetFloatingIpArgs.java
@@ -62,14 +62,14 @@ public Optional> fixedIp() {
     }
 
     /**
-     * The name of the pool from which the floating IP belongs to.
+     * The ID of the network from which the floating IP belongs to.
      * 
      */
     @Import(name="pool")
     private @Nullable Output pool;
 
     /**
-     * @return The name of the pool from which the floating IP belongs to.
+     * @return The ID of the network from which the floating IP belongs to.
      * 
      */
     public Optional> pool() {
@@ -251,7 +251,7 @@ public Builder fixedIp(String fixedIp) {
         }
 
         /**
-         * @param pool The name of the pool from which the floating IP belongs to.
+         * @param pool The ID of the network from which the floating IP belongs to.
          * 
          * @return builder
          * 
@@ -262,7 +262,7 @@ public Builder pool(@Nullable Output pool) {
         }
 
         /**
-         * @param pool The name of the pool from which the floating IP belongs to.
+         * @param pool The ID of the network from which the floating IP belongs to.
          * 
          * @return builder
          * 
diff --git a/sdk/java/src/main/java/com/pulumi/openstack/networking/inputs/GetFloatingIpPlainArgs.java b/sdk/java/src/main/java/com/pulumi/openstack/networking/inputs/GetFloatingIpPlainArgs.java
index 7d906db4e..b6d85b30c 100644
--- a/sdk/java/src/main/java/com/pulumi/openstack/networking/inputs/GetFloatingIpPlainArgs.java
+++ b/sdk/java/src/main/java/com/pulumi/openstack/networking/inputs/GetFloatingIpPlainArgs.java
@@ -61,14 +61,14 @@ public Optional fixedIp() {
     }
 
     /**
-     * The name of the pool from which the floating IP belongs to.
+     * The ID of the network from which the floating IP belongs to.
      * 
      */
     @Import(name="pool")
     private @Nullable String pool;
 
     /**
-     * @return The name of the pool from which the floating IP belongs to.
+     * @return The ID of the network from which the floating IP belongs to.
      * 
      */
     public Optional pool() {
@@ -220,7 +220,7 @@ public Builder fixedIp(@Nullable String fixedIp) {
         }
 
         /**
-         * @param pool The name of the pool from which the floating IP belongs to.
+         * @param pool The ID of the network from which the floating IP belongs to.
          * 
          * @return builder
          * 
diff --git a/sdk/java/src/main/java/com/pulumi/openstack/networking/inputs/GetSubnetArgs.java b/sdk/java/src/main/java/com/pulumi/openstack/networking/inputs/GetSubnetArgs.java
index 47a66ee6e..a7694a4f1 100644
--- a/sdk/java/src/main/java/com/pulumi/openstack/networking/inputs/GetSubnetArgs.java
+++ b/sdk/java/src/main/java/com/pulumi/openstack/networking/inputs/GetSubnetArgs.java
@@ -48,25 +48,6 @@ public Optional> description() {
         return Optional.ofNullable(this.description);
     }
 
-    /**
-     * @deprecated
-     * use dhcp_enabled instead
-     * 
-     */
-    @Deprecated /* use dhcp_enabled instead */
-    @Import(name="dhcpDisabled")
-    private @Nullable Output dhcpDisabled;
-
-    /**
-     * @deprecated
-     * use dhcp_enabled instead
-     * 
-     */
-    @Deprecated /* use dhcp_enabled instead */
-    public Optional> dhcpDisabled() {
-        return Optional.ofNullable(this.dhcpDisabled);
-    }
-
     /**
      * If the subnet has DHCP enabled.
      * 
@@ -260,7 +241,6 @@ private GetSubnetArgs() {}
     private GetSubnetArgs(GetSubnetArgs $) {
         this.cidr = $.cidr;
         this.description = $.description;
-        this.dhcpDisabled = $.dhcpDisabled;
         this.dhcpEnabled = $.dhcpEnabled;
         this.gatewayIp = $.gatewayIp;
         this.ipVersion = $.ipVersion;
@@ -335,31 +315,6 @@ public Builder description(String description) {
             return description(Output.of(description));
         }
 
-        /**
-         * @return builder
-         * 
-         * @deprecated
-         * use dhcp_enabled instead
-         * 
-         */
-        @Deprecated /* use dhcp_enabled instead */
-        public Builder dhcpDisabled(@Nullable Output dhcpDisabled) {
-            $.dhcpDisabled = dhcpDisabled;
-            return this;
-        }
-
-        /**
-         * @return builder
-         * 
-         * @deprecated
-         * use dhcp_enabled instead
-         * 
-         */
-        @Deprecated /* use dhcp_enabled instead */
-        public Builder dhcpDisabled(Boolean dhcpDisabled) {
-            return dhcpDisabled(Output.of(dhcpDisabled));
-        }
-
         /**
          * @param dhcpEnabled If the subnet has DHCP enabled.
          * 
diff --git a/sdk/java/src/main/java/com/pulumi/openstack/networking/inputs/GetSubnetPlainArgs.java b/sdk/java/src/main/java/com/pulumi/openstack/networking/inputs/GetSubnetPlainArgs.java
index 2a9f56b44..bb75ca74d 100644
--- a/sdk/java/src/main/java/com/pulumi/openstack/networking/inputs/GetSubnetPlainArgs.java
+++ b/sdk/java/src/main/java/com/pulumi/openstack/networking/inputs/GetSubnetPlainArgs.java
@@ -47,25 +47,6 @@ public Optional description() {
         return Optional.ofNullable(this.description);
     }
 
-    /**
-     * @deprecated
-     * use dhcp_enabled instead
-     * 
-     */
-    @Deprecated /* use dhcp_enabled instead */
-    @Import(name="dhcpDisabled")
-    private @Nullable Boolean dhcpDisabled;
-
-    /**
-     * @deprecated
-     * use dhcp_enabled instead
-     * 
-     */
-    @Deprecated /* use dhcp_enabled instead */
-    public Optional dhcpDisabled() {
-        return Optional.ofNullable(this.dhcpDisabled);
-    }
-
     /**
      * If the subnet has DHCP enabled.
      * 
@@ -259,7 +240,6 @@ private GetSubnetPlainArgs() {}
     private GetSubnetPlainArgs(GetSubnetPlainArgs $) {
         this.cidr = $.cidr;
         this.description = $.description;
-        this.dhcpDisabled = $.dhcpDisabled;
         this.dhcpEnabled = $.dhcpEnabled;
         this.gatewayIp = $.gatewayIp;
         this.ipVersion = $.ipVersion;
@@ -314,19 +294,6 @@ public Builder description(@Nullable String description) {
             return this;
         }
 
-        /**
-         * @return builder
-         * 
-         * @deprecated
-         * use dhcp_enabled instead
-         * 
-         */
-        @Deprecated /* use dhcp_enabled instead */
-        public Builder dhcpDisabled(@Nullable Boolean dhcpDisabled) {
-            $.dhcpDisabled = dhcpDisabled;
-            return this;
-        }
-
         /**
          * @param dhcpEnabled If the subnet has DHCP enabled.
          * 
diff --git a/sdk/java/src/main/java/com/pulumi/openstack/networking/inputs/RouterState.java b/sdk/java/src/main/java/com/pulumi/openstack/networking/inputs/RouterState.java
index 19406eccd..5705bc060 100644
--- a/sdk/java/src/main/java/com/pulumi/openstack/networking/inputs/RouterState.java
+++ b/sdk/java/src/main/java/com/pulumi/openstack/networking/inputs/RouterState.java
@@ -156,37 +156,6 @@ public Optional>> externalFixedIps() {
         return Optional.ofNullable(this.externalFixedIps);
     }
 
-    /**
-     * The
-     * network UUID of an external gateway for the router. A router with an
-     * external gateway is required if any compute instances or load balancers
-     * will be using floating IPs. Changing this updates the external gateway
-     * of an existing router.
-     * 
-     * @deprecated
-     * use external_network_id instead
-     * 
-     */
-    @Deprecated /* use external_network_id instead */
-    @Import(name="externalGateway")
-    private @Nullable Output externalGateway;
-
-    /**
-     * @return The
-     * network UUID of an external gateway for the router. A router with an
-     * external gateway is required if any compute instances or load balancers
-     * will be using floating IPs. Changing this updates the external gateway
-     * of an existing router.
-     * 
-     * @deprecated
-     * use external_network_id instead
-     * 
-     */
-    @Deprecated /* use external_network_id instead */
-    public Optional> externalGateway() {
-        return Optional.ofNullable(this.externalGateway);
-    }
-
     /**
      * The network UUID of an external gateway
      * for the router. A router with an external gateway is required if any
@@ -343,7 +312,6 @@ private RouterState(RouterState $) {
         this.distributed = $.distributed;
         this.enableSnat = $.enableSnat;
         this.externalFixedIps = $.externalFixedIps;
-        this.externalGateway = $.externalGateway;
         this.externalNetworkId = $.externalNetworkId;
         this.externalSubnetIds = $.externalSubnetIds;
         this.name = $.name;
@@ -586,43 +554,6 @@ public Builder externalFixedIps(RouterExternalFixedIpArgs... externalFixedIps) {
             return externalFixedIps(List.of(externalFixedIps));
         }
 
-        /**
-         * @param externalGateway The
-         * network UUID of an external gateway for the router. A router with an
-         * external gateway is required if any compute instances or load balancers
-         * will be using floating IPs. Changing this updates the external gateway
-         * of an existing router.
-         * 
-         * @return builder
-         * 
-         * @deprecated
-         * use external_network_id instead
-         * 
-         */
-        @Deprecated /* use external_network_id instead */
-        public Builder externalGateway(@Nullable Output externalGateway) {
-            $.externalGateway = externalGateway;
-            return this;
-        }
-
-        /**
-         * @param externalGateway The
-         * network UUID of an external gateway for the router. A router with an
-         * external gateway is required if any compute instances or load balancers
-         * will be using floating IPs. Changing this updates the external gateway
-         * of an existing router.
-         * 
-         * @return builder
-         * 
-         * @deprecated
-         * use external_network_id instead
-         * 
-         */
-        @Deprecated /* use external_network_id instead */
-        public Builder externalGateway(String externalGateway) {
-            return externalGateway(Output.of(externalGateway));
-        }
-
         /**
          * @param externalNetworkId The network UUID of an external gateway
          * for the router. A router with an external gateway is required if any
diff --git a/sdk/java/src/main/java/com/pulumi/openstack/networking/inputs/SubnetAllocationPoolsCollectionArgs.java b/sdk/java/src/main/java/com/pulumi/openstack/networking/inputs/SubnetAllocationPoolsCollectionArgs.java
deleted file mode 100644
index 2fd552b2b..000000000
--- a/sdk/java/src/main/java/com/pulumi/openstack/networking/inputs/SubnetAllocationPoolsCollectionArgs.java
+++ /dev/null
@@ -1,125 +0,0 @@
-// *** WARNING: this file was generated by pulumi-java-gen. ***
-// *** Do not edit by hand unless you're certain you know what you are doing! ***
-
-package com.pulumi.openstack.networking.inputs;
-
-import com.pulumi.core.Output;
-import com.pulumi.core.annotations.Import;
-import com.pulumi.exceptions.MissingRequiredPropertyException;
-import java.lang.String;
-import java.util.Objects;
-
-
-public final class SubnetAllocationPoolsCollectionArgs extends com.pulumi.resources.ResourceArgs {
-
-    public static final SubnetAllocationPoolsCollectionArgs Empty = new SubnetAllocationPoolsCollectionArgs();
-
-    /**
-     * The ending address.
-     * 
-     */
-    @Import(name="end", required=true)
-    private Output end;
-
-    /**
-     * @return The ending address.
-     * 
-     */
-    public Output end() {
-        return this.end;
-    }
-
-    /**
-     * The starting address.
-     * 
-     */
-    @Import(name="start", required=true)
-    private Output start;
-
-    /**
-     * @return The starting address.
-     * 
-     */
-    public Output start() {
-        return this.start;
-    }
-
-    private SubnetAllocationPoolsCollectionArgs() {}
-
-    private SubnetAllocationPoolsCollectionArgs(SubnetAllocationPoolsCollectionArgs $) {
-        this.end = $.end;
-        this.start = $.start;
-    }
-
-    public static Builder builder() {
-        return new Builder();
-    }
-    public static Builder builder(SubnetAllocationPoolsCollectionArgs defaults) {
-        return new Builder(defaults);
-    }
-
-    public static final class Builder {
-        private SubnetAllocationPoolsCollectionArgs $;
-
-        public Builder() {
-            $ = new SubnetAllocationPoolsCollectionArgs();
-        }
-
-        public Builder(SubnetAllocationPoolsCollectionArgs defaults) {
-            $ = new SubnetAllocationPoolsCollectionArgs(Objects.requireNonNull(defaults));
-        }
-
-        /**
-         * @param end The ending address.
-         * 
-         * @return builder
-         * 
-         */
-        public Builder end(Output end) {
-            $.end = end;
-            return this;
-        }
-
-        /**
-         * @param end The ending address.
-         * 
-         * @return builder
-         * 
-         */
-        public Builder end(String end) {
-            return end(Output.of(end));
-        }
-
-        /**
-         * @param start The starting address.
-         * 
-         * @return builder
-         * 
-         */
-        public Builder start(Output start) {
-            $.start = start;
-            return this;
-        }
-
-        /**
-         * @param start The starting address.
-         * 
-         * @return builder
-         * 
-         */
-        public Builder start(String start) {
-            return start(Output.of(start));
-        }
-
-        public SubnetAllocationPoolsCollectionArgs build() {
-            if ($.end == null) {
-                throw new MissingRequiredPropertyException("SubnetAllocationPoolsCollectionArgs", "end");
-            }
-            if ($.start == null) {
-                throw new MissingRequiredPropertyException("SubnetAllocationPoolsCollectionArgs", "start");
-            }
-            return $;
-        }
-    }
-
-}
diff --git a/sdk/java/src/main/java/com/pulumi/openstack/networking/inputs/SubnetHostRouteArgs.java b/sdk/java/src/main/java/com/pulumi/openstack/networking/inputs/SubnetHostRouteArgs.java
deleted file mode 100644
index fba5961b2..000000000
--- a/sdk/java/src/main/java/com/pulumi/openstack/networking/inputs/SubnetHostRouteArgs.java
+++ /dev/null
@@ -1,125 +0,0 @@
-// *** WARNING: this file was generated by pulumi-java-gen. ***
-// *** Do not edit by hand unless you're certain you know what you are doing! ***
-
-package com.pulumi.openstack.networking.inputs;
-
-import com.pulumi.core.Output;
-import com.pulumi.core.annotations.Import;
-import com.pulumi.exceptions.MissingRequiredPropertyException;
-import java.lang.String;
-import java.util.Objects;
-
-
-public final class SubnetHostRouteArgs extends com.pulumi.resources.ResourceArgs {
-
-    public static final SubnetHostRouteArgs Empty = new SubnetHostRouteArgs();
-
-    /**
-     * The destination CIDR.
-     * 
-     */
-    @Import(name="destinationCidr", required=true)
-    private Output destinationCidr;
-
-    /**
-     * @return The destination CIDR.
-     * 
-     */
-    public Output destinationCidr() {
-        return this.destinationCidr;
-    }
-
-    /**
-     * The next hop in the route.
-     * 
-     */
-    @Import(name="nextHop", required=true)
-    private Output nextHop;
-
-    /**
-     * @return The next hop in the route.
-     * 
-     */
-    public Output nextHop() {
-        return this.nextHop;
-    }
-
-    private SubnetHostRouteArgs() {}
-
-    private SubnetHostRouteArgs(SubnetHostRouteArgs $) {
-        this.destinationCidr = $.destinationCidr;
-        this.nextHop = $.nextHop;
-    }
-
-    public static Builder builder() {
-        return new Builder();
-    }
-    public static Builder builder(SubnetHostRouteArgs defaults) {
-        return new Builder(defaults);
-    }
-
-    public static final class Builder {
-        private SubnetHostRouteArgs $;
-
-        public Builder() {
-            $ = new SubnetHostRouteArgs();
-        }
-
-        public Builder(SubnetHostRouteArgs defaults) {
-            $ = new SubnetHostRouteArgs(Objects.requireNonNull(defaults));
-        }
-
-        /**
-         * @param destinationCidr The destination CIDR.
-         * 
-         * @return builder
-         * 
-         */
-        public Builder destinationCidr(Output destinationCidr) {
-            $.destinationCidr = destinationCidr;
-            return this;
-        }
-
-        /**
-         * @param destinationCidr The destination CIDR.
-         * 
-         * @return builder
-         * 
-         */
-        public Builder destinationCidr(String destinationCidr) {
-            return destinationCidr(Output.of(destinationCidr));
-        }
-
-        /**
-         * @param nextHop The next hop in the route.
-         * 
-         * @return builder
-         * 
-         */
-        public Builder nextHop(Output nextHop) {
-            $.nextHop = nextHop;
-            return this;
-        }
-
-        /**
-         * @param nextHop The next hop in the route.
-         * 
-         * @return builder
-         * 
-         */
-        public Builder nextHop(String nextHop) {
-            return nextHop(Output.of(nextHop));
-        }
-
-        public SubnetHostRouteArgs build() {
-            if ($.destinationCidr == null) {
-                throw new MissingRequiredPropertyException("SubnetHostRouteArgs", "destinationCidr");
-            }
-            if ($.nextHop == null) {
-                throw new MissingRequiredPropertyException("SubnetHostRouteArgs", "nextHop");
-            }
-            return $;
-        }
-    }
-
-}
diff --git a/sdk/java/src/main/java/com/pulumi/openstack/networking/inputs/SubnetState.java b/sdk/java/src/main/java/com/pulumi/openstack/networking/inputs/SubnetState.java
index 9734c2552..6cef8329b 100644
--- a/sdk/java/src/main/java/com/pulumi/openstack/networking/inputs/SubnetState.java
+++ b/sdk/java/src/main/java/com/pulumi/openstack/networking/inputs/SubnetState.java
@@ -6,8 +6,6 @@
 import com.pulumi.core.Output;
 import com.pulumi.core.annotations.Import;
 import com.pulumi.openstack.networking.inputs.SubnetAllocationPoolArgs;
-import com.pulumi.openstack.networking.inputs.SubnetAllocationPoolsCollectionArgs;
-import com.pulumi.openstack.networking.inputs.SubnetHostRouteArgs;
 import java.lang.Boolean;
 import java.lang.Integer;
 import java.lang.Object;
@@ -65,33 +63,6 @@ public Optional>> allocationPools() {
         return Optional.ofNullable(this.allocationPools);
     }
 
-    /**
-     * A block declaring the start and end range of the IP addresses available for
-     * use with DHCP in this subnet.
-     * The `allocation_pools` block is documented below.
-     * 
-     * @deprecated
-     * use allocation_pool instead
-     * 
-     */
-    @Deprecated /* use allocation_pool instead */
-    @Import(name="allocationPoolsCollection")
-    private @Nullable Output> allocationPoolsCollection;
-
-    /**
-     * @return A block declaring the start and end range of the IP addresses available for
-     * use with DHCP in this subnet.
-     * The `allocation_pools` block is documented below.
-     * 
-     * @deprecated
-     * use allocation_pool instead
-     * 
-     */
-    @Deprecated /* use allocation_pool instead */
-    public Optional>> allocationPoolsCollection() {
-        return Optional.ofNullable(this.allocationPoolsCollection);
-    }
-
     /**
      * CIDR representing IP range for this subnet, based on IP
      * version. You can omit this option if you are creating a subnet from a
@@ -187,37 +158,6 @@ public Optional> gatewayIp() {
         return Optional.ofNullable(this.gatewayIp);
     }
 
-    /**
-     * (**Deprecated** - use `openstack.networking.SubnetRoute`
-     * instead) An array of routes that should be used by devices
-     * with IPs from this subnet (not including local subnet route). The host_route
-     * object structure is documented below. Changing this updates the host routes
-     * for the existing subnet.
-     * 
-     * @deprecated
-     * Use openstack.networking.SubnetRoute instead
-     * 
-     */
-    @Deprecated /* Use openstack.networking.SubnetRoute instead */
-    @Import(name="hostRoutes")
-    private @Nullable Output> hostRoutes;
-
-    /**
-     * @return (**Deprecated** - use `openstack.networking.SubnetRoute`
-     * instead) An array of routes that should be used by devices
-     * with IPs from this subnet (not including local subnet route). The host_route
-     * object structure is documented below. Changing this updates the host routes
-     * for the existing subnet.
-     * 
-     * @deprecated
-     * Use openstack.networking.SubnetRoute instead
-     * 
-     */
-    @Deprecated /* Use openstack.networking.SubnetRoute instead */
-    public Optional>> hostRoutes() {
-        return Optional.ofNullable(this.hostRoutes);
-    }
-
     /**
      * IP version, either 4 (default) or 6. Changing this creates a
      * new subnet.
@@ -446,13 +386,11 @@ private SubnetState() {}
     private SubnetState(SubnetState $) {
         this.allTags = $.allTags;
         this.allocationPools = $.allocationPools;
-        this.allocationPoolsCollection = $.allocationPoolsCollection;
         this.cidr = $.cidr;
         this.description = $.description;
         this.dnsNameservers = $.dnsNameservers;
         this.enableDhcp = $.enableDhcp;
         this.gatewayIp = $.gatewayIp;
-        this.hostRoutes = $.hostRoutes;
         this.ipVersion = $.ipVersion;
         this.ipv6AddressMode = $.ipv6AddressMode;
         this.ipv6RaMode = $.ipv6RaMode;
@@ -566,55 +504,6 @@ public Builder allocationPools(SubnetAllocationPoolArgs... allocationPools) {
             return allocationPools(List.of(allocationPools));
         }
 
-        /**
-         * @param allocationPoolsCollection A block declaring the start and end range of the IP addresses available for
-         * use with DHCP in this subnet.
-         * The `allocation_pools` block is documented below.
-         * 
-         * @return builder
-         * 
-         * @deprecated
-         * use allocation_pool instead
-         * 
-         */
-        @Deprecated /* use allocation_pool instead */
-        public Builder allocationPoolsCollection(@Nullable Output> allocationPoolsCollection) {
-            $.allocationPoolsCollection = allocationPoolsCollection;
-            return this;
-        }
-
-        /**
-         * @param allocationPoolsCollection A block declaring the start and end range of the IP addresses available for
-         * use with DHCP in this subnet.
-         * The `allocation_pools` block is documented below.
-         * 
-         * @return builder
-         * 
-         * @deprecated
-         * use allocation_pool instead
-         * 
-         */
-        @Deprecated /* use allocation_pool instead */
-        public Builder allocationPoolsCollection(List allocationPoolsCollection) {
-            return allocationPoolsCollection(Output.of(allocationPoolsCollection));
-        }
-
-        /**
-         * @param allocationPoolsCollection A block declaring the start and end range of the IP addresses available for
-         * use with DHCP in this subnet.
-         * The `allocation_pools` block is documented below.
-         * 
-         * @return builder
-         * 
-         * @deprecated
-         * use allocation_pool instead
-         * 
-         */
-        @Deprecated /* use allocation_pool instead */
-        public Builder allocationPoolsCollection(SubnetAllocationPoolsCollectionArgs... allocationPoolsCollection) {
-            return allocationPoolsCollection(List.of(allocationPoolsCollection));
-        }
-
         /**
          * @param cidr CIDR representing IP range for this subnet, based on IP
          * version. You can omit this option if you are creating a subnet from a
@@ -752,61 +641,6 @@ public Builder gatewayIp(String gatewayIp) {
             return gatewayIp(Output.of(gatewayIp));
         }
 
-        /**
-         * @param hostRoutes (**Deprecated** - use `openstack.networking.SubnetRoute`
-         * instead) An array of routes that should be used by devices
-         * with IPs from this subnet (not including local subnet route). The host_route
-         * object structure is documented below. Changing this updates the host routes
-         * for the existing subnet.
-         * 
-         * @return builder
-         * 
-         * @deprecated
-         * Use openstack.networking.SubnetRoute instead
-         * 
-         */
-        @Deprecated /* Use openstack.networking.SubnetRoute instead */
-        public Builder hostRoutes(@Nullable Output> hostRoutes) {
-            $.hostRoutes = hostRoutes;
-            return this;
-        }
-
-        /**
-         * @param hostRoutes (**Deprecated** - use `openstack.networking.SubnetRoute`
-         * instead) An array of routes that should be used by devices
-         * with IPs from this subnet (not including local subnet route). The host_route
-         * object structure is documented below. Changing this updates the host routes
-         * for the existing subnet.
-         * 
-         * @return builder
-         * 
-         * @deprecated
-         * Use openstack.networking.SubnetRoute instead
-         * 
-         */
-        @Deprecated /* Use openstack.networking.SubnetRoute instead */
-        public Builder hostRoutes(List hostRoutes) {
-            return hostRoutes(Output.of(hostRoutes));
-        }
-
-        /**
-         * @param hostRoutes (**Deprecated** - use `openstack.networking.SubnetRoute`
-         * instead) An array of routes that should be used by devices
-         * with IPs from this subnet (not including local subnet route). The host_route
-         * object structure is documented below. Changing this updates the host routes
-         * for the existing subnet.
-         * 
-         * @return builder
-         * 
-         * @deprecated
-         * Use openstack.networking.SubnetRoute instead
-         * 
-         */
-        @Deprecated /* Use openstack.networking.SubnetRoute instead */
-        public Builder hostRoutes(SubnetHostRouteArgs... hostRoutes) {
-            return hostRoutes(List.of(hostRoutes));
-        }
-
         /**
          * @param ipVersion IP version, either 4 (default) or 6. Changing this creates a
          * new subnet.
diff --git a/sdk/java/src/main/java/com/pulumi/openstack/networking/outputs/GetSubnetResult.java b/sdk/java/src/main/java/com/pulumi/openstack/networking/outputs/GetSubnetResult.java
index bd9dfcfb4..0bc21e0ef 100644
--- a/sdk/java/src/main/java/com/pulumi/openstack/networking/outputs/GetSubnetResult.java
+++ b/sdk/java/src/main/java/com/pulumi/openstack/networking/outputs/GetSubnetResult.java
@@ -29,13 +29,6 @@ public final class GetSubnetResult {
     private List allocationPools;
     private String cidr;
     private String description;
-    /**
-     * @deprecated
-     * use dhcp_enabled instead
-     * 
-     */
-    @Deprecated /* use dhcp_enabled instead */
-    private @Nullable Boolean dhcpDisabled;
     private @Nullable Boolean dhcpEnabled;
     /**
      * @return DNS Nameservers of the subnet.
@@ -99,15 +92,6 @@ public String cidr() {
     public String description() {
         return this.description;
     }
-    /**
-     * @deprecated
-     * use dhcp_enabled instead
-     * 
-     */
-    @Deprecated /* use dhcp_enabled instead */
-    public Optional dhcpDisabled() {
-        return Optional.ofNullable(this.dhcpDisabled);
-    }
     public Optional dhcpEnabled() {
         return Optional.ofNullable(this.dhcpEnabled);
     }
@@ -197,7 +181,6 @@ public static final class Builder {
         private List allocationPools;
         private String cidr;
         private String description;
-        private @Nullable Boolean dhcpDisabled;
         private @Nullable Boolean dhcpEnabled;
         private List dnsNameservers;
         private Boolean enableDhcp;
@@ -222,7 +205,6 @@ public Builder(GetSubnetResult defaults) {
     	      this.allocationPools = defaults.allocationPools;
     	      this.cidr = defaults.cidr;
     	      this.description = defaults.description;
-    	      this.dhcpDisabled = defaults.dhcpDisabled;
     	      this.dhcpEnabled = defaults.dhcpEnabled;
     	      this.dnsNameservers = defaults.dnsNameservers;
     	      this.enableDhcp = defaults.enableDhcp;
@@ -281,12 +263,6 @@ public Builder description(String description) {
             return this;
         }
         @CustomType.Setter
-        public Builder dhcpDisabled(@Nullable Boolean dhcpDisabled) {
-
-            this.dhcpDisabled = dhcpDisabled;
-            return this;
-        }
-        @CustomType.Setter
         public Builder dhcpEnabled(@Nullable Boolean dhcpEnabled) {
 
             this.dhcpEnabled = dhcpEnabled;
@@ -436,7 +412,6 @@ public GetSubnetResult build() {
             _resultValue.allocationPools = allocationPools;
             _resultValue.cidr = cidr;
             _resultValue.description = description;
-            _resultValue.dhcpDisabled = dhcpDisabled;
             _resultValue.dhcpEnabled = dhcpEnabled;
             _resultValue.dnsNameservers = dnsNameservers;
             _resultValue.enableDhcp = enableDhcp;
diff --git a/sdk/java/src/main/java/com/pulumi/openstack/networking/outputs/SubnetAllocationPoolsCollection.java b/sdk/java/src/main/java/com/pulumi/openstack/networking/outputs/SubnetAllocationPoolsCollection.java
deleted file mode 100644
index 1e4f43750..000000000
--- a/sdk/java/src/main/java/com/pulumi/openstack/networking/outputs/SubnetAllocationPoolsCollection.java
+++ /dev/null
@@ -1,81 +0,0 @@
-// *** WARNING: this file was generated by pulumi-java-gen. ***
-// *** Do not edit by hand unless you're certain you know what you are doing! ***
-
-package com.pulumi.openstack.networking.outputs;
-
-import com.pulumi.core.annotations.CustomType;
-import com.pulumi.exceptions.MissingRequiredPropertyException;
-import java.lang.String;
-import java.util.Objects;
-
-@CustomType
-public final class SubnetAllocationPoolsCollection {
-    /**
-     * @return The ending address.
-     * 
-     */
-    private String end;
-    /**
-     * @return The starting address.
-     * 
-     */
-    private String start;
-
-    private SubnetAllocationPoolsCollection() {}
-    /**
-     * @return The ending address.
-     * 
-     */
-    public String end() {
-        return this.end;
-    }
-    /**
-     * @return The starting address.
-     * 
-     */
-    public String start() {
-        return this.start;
-    }
-
-    public static Builder builder() {
-        return new Builder();
-    }
-
-    public static Builder builder(SubnetAllocationPoolsCollection defaults) {
-        return new Builder(defaults);
-    }
-    @CustomType.Builder
-    public static final class Builder {
-        private String end;
-        private String start;
-        public Builder() {}
-        public Builder(SubnetAllocationPoolsCollection defaults) {
-    	      Objects.requireNonNull(defaults);
-    	      this.end = defaults.end;
-    	      this.start = defaults.start;
-        }
-
-        @CustomType.Setter
-        public Builder end(String end) {
-            if (end == null) {
-              throw new MissingRequiredPropertyException("SubnetAllocationPoolsCollection", "end");
-            }
-            this.end = end;
-            return this;
-        }
-        @CustomType.Setter
-        public Builder start(String start) {
-            if (start == null) {
-              throw new MissingRequiredPropertyException("SubnetAllocationPoolsCollection", "start");
-            }
-            this.start = start;
-            return this;
-        }
-        public SubnetAllocationPoolsCollection build() {
-            final var _resultValue = new SubnetAllocationPoolsCollection();
-            _resultValue.end = end;
-            _resultValue.start = start;
-            return _resultValue;
-        }
-    }
-}
diff --git a/sdk/java/src/main/java/com/pulumi/openstack/networking/outputs/SubnetHostRoute.java b/sdk/java/src/main/java/com/pulumi/openstack/networking/outputs/SubnetHostRoute.java
deleted file mode 100644
index 56928a1ae..000000000
--- a/sdk/java/src/main/java/com/pulumi/openstack/networking/outputs/SubnetHostRoute.java
+++ /dev/null
@@ -1,81 +0,0 @@
-// *** WARNING: this file was generated by pulumi-java-gen. ***
-// *** Do not edit by hand unless you're certain you know what you are doing! ***
-
-package com.pulumi.openstack.networking.outputs;
-
-import com.pulumi.core.annotations.CustomType;
-import com.pulumi.exceptions.MissingRequiredPropertyException;
-import java.lang.String;
-import java.util.Objects;
-
-@CustomType
-public final class SubnetHostRoute {
-    /**
-     * @return The destination CIDR.
-     * 
-     */
-    private String destinationCidr;
-    /**
-     * @return The next hop in the route.
-     * 
-     */
-    private String nextHop;
-
-    private SubnetHostRoute() {}
-    /**
-     * @return The destination CIDR.
-     * 
-     */
-    public String destinationCidr() {
-        return this.destinationCidr;
-    }
-    /**
-     * @return The next hop in the route.
-     * 
-     */
-    public String nextHop() {
-        return this.nextHop;
-    }
-
-    public static Builder builder() {
-        return new Builder();
-    }
-
-    public static Builder builder(SubnetHostRoute defaults) {
-        return new Builder(defaults);
-    }
-    @CustomType.Builder
-    public static final class Builder {
-        private String destinationCidr;
-        private String nextHop;
-        public Builder() {}
-        public Builder(SubnetHostRoute defaults) {
-    	      Objects.requireNonNull(defaults);
-    	      this.destinationCidr = defaults.destinationCidr;
-    	      this.nextHop = defaults.nextHop;
-        }
-
-        @CustomType.Setter
-        public Builder destinationCidr(String destinationCidr) {
-            if (destinationCidr == null) {
-              throw new MissingRequiredPropertyException("SubnetHostRoute", "destinationCidr");
-            }
-            this.destinationCidr = destinationCidr;
-            return this;
-        }
-        @CustomType.Setter
-        public Builder nextHop(String nextHop) {
-            if (nextHop == null) {
-              throw new MissingRequiredPropertyException("SubnetHostRoute", "nextHop");
-            }
-            this.nextHop = nextHop;
-            return this;
-        }
-        public SubnetHostRoute build() {
-            final var _resultValue = new SubnetHostRoute();
-            _resultValue.destinationCidr = destinationCidr;
-            _resultValue.nextHop = nextHop;
-            return _resultValue;
-        }
-    }
-}
diff --git a/sdk/java/src/main/java/com/pulumi/openstack/vpnaas/IkePolicy.java b/sdk/java/src/main/java/com/pulumi/openstack/vpnaas/IkePolicy.java
index fae6f212e..464d42773 100644
--- a/sdk/java/src/main/java/com/pulumi/openstack/vpnaas/IkePolicy.java
+++ b/sdk/java/src/main/java/com/pulumi/openstack/vpnaas/IkePolicy.java
@@ -116,7 +116,7 @@ public Output> encryptionAlgorithm() {
         return Codegen.optional(this.encryptionAlgorithm);
     }
     /**
-     * The IKE mode. A valid value is v1 or v2. Default is v1.
+     * The IKE version. A valid value is v1 or v2. Default is v1.
      * Changing this updates the existing policy.
      * 
      */
@@ -124,7 +124,7 @@ public Output> encryptionAlgorithm() {
     private Output ikeVersion;
 
     /**
-     * @return The IKE mode. A valid value is v1 or v2. Default is v1.
+     * @return The IKE version. A valid value is v1 or v2. Default is v1.
      * Changing this updates the existing policy.
      * 
      */
diff --git a/sdk/java/src/main/java/com/pulumi/openstack/vpnaas/IkePolicyArgs.java b/sdk/java/src/main/java/com/pulumi/openstack/vpnaas/IkePolicyArgs.java
index aee3aa806..f727d55ae 100644
--- a/sdk/java/src/main/java/com/pulumi/openstack/vpnaas/IkePolicyArgs.java
+++ b/sdk/java/src/main/java/com/pulumi/openstack/vpnaas/IkePolicyArgs.java
@@ -71,7 +71,7 @@ public Optional> encryptionAlgorithm() {
     }
 
     /**
-     * The IKE mode. A valid value is v1 or v2. Default is v1.
+     * The IKE version. A valid value is v1 or v2. Default is v1.
      * Changing this updates the existing policy.
      * 
      */
@@ -79,7 +79,7 @@ public Optional> encryptionAlgorithm() {
     private @Nullable Output ikeVersion;
 
     /**
-     * @return The IKE mode. A valid value is v1 or v2. Default is v1.
+     * @return The IKE version. A valid value is v1 or v2. Default is v1.
      * Changing this updates the existing policy.
      * 
      */
@@ -310,7 +310,7 @@ public Builder encryptionAlgorithm(String encryptionAlgorithm) {
         }
 
         /**
-         * @param ikeVersion The IKE mode. A valid value is v1 or v2. Default is v1.
+         * @param ikeVersion The IKE version. A valid value is v1 or v2. Default is v1.
          * Changing this updates the existing policy.
          * 
          * @return builder
@@ -322,7 +322,7 @@ public Builder ikeVersion(@Nullable Output ikeVersion) {
         }
 
         /**
-         * @param ikeVersion The IKE mode. A valid value is v1 or v2. Default is v1.
+         * @param ikeVersion The IKE version. A valid value is v1 or v2. Default is v1.
          * Changing this updates the existing policy.
          * 
          * @return builder
diff --git a/sdk/java/src/main/java/com/pulumi/openstack/vpnaas/inputs/IkePolicyState.java b/sdk/java/src/main/java/com/pulumi/openstack/vpnaas/inputs/IkePolicyState.java
index 8e1bb3555..fa7c9ad46 100644
--- a/sdk/java/src/main/java/com/pulumi/openstack/vpnaas/inputs/IkePolicyState.java
+++ b/sdk/java/src/main/java/com/pulumi/openstack/vpnaas/inputs/IkePolicyState.java
@@ -71,7 +71,7 @@ public Optional> encryptionAlgorithm() {
     }
 
     /**
-     * The IKE mode. A valid value is v1 or v2. Default is v1.
+     * The IKE version. A valid value is v1 or v2. Default is v1.
      * Changing this updates the existing policy.
      * 
      */
@@ -79,7 +79,7 @@ public Optional> encryptionAlgorithm() {
     private @Nullable Output ikeVersion;
 
     /**
-     * @return The IKE mode. A valid value is v1 or v2. Default is v1.
+     * @return The IKE version. A valid value is v1 or v2. Default is v1.
      * Changing this updates the existing policy.
      * 
      */
@@ -310,7 +310,7 @@ public Builder encryptionAlgorithm(String encryptionAlgorithm) {
         }
 
         /**
-         * @param ikeVersion The IKE mode. A valid value is v1 or v2. Default is v1.
+         * @param ikeVersion The IKE version. A valid value is v1 or v2. Default is v1.
          * Changing this updates the existing policy.
          * 
          * @return builder
@@ -322,7 +322,7 @@ public Builder ikeVersion(@Nullable Output ikeVersion) {
         }
 
         /**
-         * @param ikeVersion The IKE mode. A valid value is v1 or v2. Default is v1.
+         * @param ikeVersion The IKE version. A valid value is v1 or v2. Default is v1.
          * Changing this updates the existing policy.
          * 
          * @return builder
diff --git a/sdk/nodejs/blockstorage/getVolumeV3.ts b/sdk/nodejs/blockstorage/getVolumeV3.ts
index d005702a1..47f8d1c5b 100644
--- a/sdk/nodejs/blockstorage/getVolumeV3.ts
+++ b/sdk/nodejs/blockstorage/getVolumeV3.ts
@@ -96,10 +96,6 @@ export interface GetVolumeV3Result {
      * See Argument Reference above.
      */
     readonly metadata: {[key: string]: any};
-    /**
-     * Indicates if the volume can be attached to more then one server.
-     */
-    readonly multiattach: boolean;
     /**
      * See Argument Reference above.
      */
diff --git a/sdk/nodejs/blockstorage/volume.ts b/sdk/nodejs/blockstorage/volume.ts
index ff6108e0a..06132227b 100644
--- a/sdk/nodejs/blockstorage/volume.ts
+++ b/sdk/nodejs/blockstorage/volume.ts
@@ -103,12 +103,6 @@ export class Volume extends pulumi.CustomResource {
      * Changing this updates the existing volume metadata.
      */
     public readonly metadata!: pulumi.Output<{[key: string]: any}>;
-    /**
-     * (Optional) Allow the volume to be attached to more than one Compute instance.
-     *
-     * @deprecated multiattach parameter has been deprecated and removed on Openstack Bobcat. The default behavior is to use multiattach enabled volume types
-     */
-    public readonly multiattach!: pulumi.Output;
     /**
      * A unique name for the volume. Changing this updates the
      * volume's name.
@@ -172,7 +166,6 @@ export class Volume extends pulumi.CustomResource {
             resourceInputs["enableOnlineResize"] = state ? state.enableOnlineResize : undefined;
             resourceInputs["imageId"] = state ? state.imageId : undefined;
             resourceInputs["metadata"] = state ? state.metadata : undefined;
-            resourceInputs["multiattach"] = state ? state.multiattach : undefined;
             resourceInputs["name"] = state ? state.name : undefined;
             resourceInputs["region"] = state ? state.region : undefined;
             resourceInputs["schedulerHints"] = state ? state.schedulerHints : undefined;
@@ -193,7 +186,6 @@ export class Volume extends pulumi.CustomResource {
             resourceInputs["enableOnlineResize"] = args ? args.enableOnlineResize : undefined;
             resourceInputs["imageId"] = args ? args.imageId : undefined;
             resourceInputs["metadata"] = args ? args.metadata : undefined;
-            resourceInputs["multiattach"] = args ? args.multiattach : undefined;
             resourceInputs["name"] = args ? args.name : undefined;
             resourceInputs["region"] = args ? args.region : undefined;
             resourceInputs["schedulerHints"] = args ? args.schedulerHints : undefined;
@@ -257,12 +249,6 @@ export interface VolumeState {
      * Changing this updates the existing volume metadata.
      */
     metadata?: pulumi.Input<{[key: string]: any}>;
-    /**
-     * (Optional) Allow the volume to be attached to more than one Compute instance.
-     *
-     * @deprecated multiattach parameter has been deprecated and removed on Openstack Bobcat. The default behavior is to use multiattach enabled volume types
-     */
-    multiattach?: pulumi.Input;
     /**
      * A unique name for the volume. Changing this updates the
      * volume's name.
@@ -348,12 +334,6 @@ export interface VolumeArgs {
      * Changing this updates the existing volume metadata.
      */
     metadata?: pulumi.Input<{[key: string]: any}>;
-    /**
-     * (Optional) Allow the volume to be attached to more than one Compute instance.
-     *
-     * @deprecated multiattach parameter has been deprecated and removed on Openstack Bobcat. The default behavior is to use multiattach enabled volume types
-     */
-    multiattach?: pulumi.Input;
     /**
      * A unique name for the volume. Changing this updates the
      * volume's name.
diff --git a/sdk/nodejs/blockstorage/volumeAttachV2.ts b/sdk/nodejs/blockstorage/volumeAttachV2.ts
index 7c43a8e94..fabac0e0b 100644
--- a/sdk/nodejs/blockstorage/volumeAttachV2.ts
+++ b/sdk/nodejs/blockstorage/volumeAttachV2.ts
@@ -122,10 +122,6 @@ export class VolumeAttachV2 extends pulumi.CustomResource {
      * The iSCSI initiator string to make the connection.
      */
     public readonly initiator!: pulumi.Output;
-    /**
-     * @deprecated instance_id is no longer used in this resource
-     */
-    public readonly instanceId!: pulumi.Output;
     /**
      * The IP address of the `hostName` above.
      */
@@ -186,7 +182,6 @@ export class VolumeAttachV2 extends pulumi.CustomResource {
             resourceInputs["driverVolumeType"] = state ? state.driverVolumeType : undefined;
             resourceInputs["hostName"] = state ? state.hostName : undefined;
             resourceInputs["initiator"] = state ? state.initiator : undefined;
-            resourceInputs["instanceId"] = state ? state.instanceId : undefined;
             resourceInputs["ipAddress"] = state ? state.ipAddress : undefined;
             resourceInputs["mountPointBase"] = state ? state.mountPointBase : undefined;
             resourceInputs["multipath"] = state ? state.multipath : undefined;
@@ -208,7 +203,6 @@ export class VolumeAttachV2 extends pulumi.CustomResource {
             resourceInputs["device"] = args ? args.device : undefined;
             resourceInputs["hostName"] = args ? args.hostName : undefined;
             resourceInputs["initiator"] = args ? args.initiator : undefined;
-            resourceInputs["instanceId"] = args ? args.instanceId : undefined;
             resourceInputs["ipAddress"] = args ? args.ipAddress : undefined;
             resourceInputs["multipath"] = args ? args.multipath : undefined;
             resourceInputs["osType"] = args ? args.osType : undefined;
@@ -262,10 +256,6 @@ export interface VolumeAttachV2State {
      * The iSCSI initiator string to make the connection.
      */
     initiator?: pulumi.Input;
-    /**
-     * @deprecated instance_id is no longer used in this resource
-     */
-    instanceId?: pulumi.Input;
     /**
      * The IP address of the `hostName` above.
      */
@@ -332,10 +322,6 @@ export interface VolumeAttachV2Args {
      * The iSCSI initiator string to make the connection.
      */
     initiator?: pulumi.Input;
-    /**
-     * @deprecated instance_id is no longer used in this resource
-     */
-    instanceId?: pulumi.Input;
     /**
      * The IP address of the `hostName` above.
      */
diff --git a/sdk/nodejs/blockstorage/volumeTypeV3.ts b/sdk/nodejs/blockstorage/volumeTypeV3.ts
index 20dc36c12..c22e9deac 100644
--- a/sdk/nodejs/blockstorage/volumeTypeV3.ts
+++ b/sdk/nodejs/blockstorage/volumeTypeV3.ts
@@ -11,6 +11,8 @@ import * as utilities from "../utilities";
  *
  * ## Example Usage
  *
+ * ### Basic Volume Type
+ *
  * ```typescript
  * import * as pulumi from "@pulumi/pulumi";
  * import * as openstack from "@pulumi/openstack";
@@ -25,6 +27,21 @@ import * as utilities from "../utilities";
  * });
  * ```
  *
+ * ### Volume Type with multiattach enabled
+ *
+ * ```typescript
+ * import * as pulumi from "@pulumi/pulumi";
+ * import * as openstack from "@pulumi/openstack";
+ *
+ * const multiattach = new openstack.blockstorage.VolumeTypeV3("multiattach", {
+ *     name: "multiattach",
+ *     description: "Multiattach-enabled volume type",
+ *     extraSpecs: {
+ *         multiattach: " True",
+ *     },
+ * });
+ * ```
+ *
  * ## Import
  *
  * Volume types can be imported using the `volume_type_id`, e.g.
diff --git a/sdk/nodejs/compute/instance.ts b/sdk/nodejs/compute/instance.ts
index df5478aac..376afbc7b 100644
--- a/sdk/nodejs/compute/instance.ts
+++ b/sdk/nodejs/compute/instance.ts
@@ -96,10 +96,6 @@ export class Instance extends pulumi.CustomResource {
      * desired flavor for the server. Changing this resizes the existing server.
      */
     public readonly flavorName!: pulumi.Output;
-    /**
-     * @deprecated Use the openstack.compute.FloatingIpAssociate resource instead
-     */
-    public readonly floatingIp!: pulumi.Output;
     /**
      * Whether to force the OpenStack instance to be
      * forcefully deleted. This is useful for environments that have reclaim / soft
@@ -205,10 +201,6 @@ export class Instance extends pulumi.CustomResource {
      * Supported options are described below.
      */
     public readonly vendorOptions!: pulumi.Output;
-    /**
-     * @deprecated Use blockDevice or openstack.compute.VolumeAttach instead
-     */
-    public readonly volumes!: pulumi.Output;
 
     /**
      * Create a Instance resource with the given unique name, arguments, and options.
@@ -235,7 +227,6 @@ export class Instance extends pulumi.CustomResource {
             resourceInputs["created"] = state ? state.created : undefined;
             resourceInputs["flavorId"] = state ? state.flavorId : undefined;
             resourceInputs["flavorName"] = state ? state.flavorName : undefined;
-            resourceInputs["floatingIp"] = state ? state.floatingIp : undefined;
             resourceInputs["forceDelete"] = state ? state.forceDelete : undefined;
             resourceInputs["imageId"] = state ? state.imageId : undefined;
             resourceInputs["imageName"] = state ? state.imageName : undefined;
@@ -254,7 +245,6 @@ export class Instance extends pulumi.CustomResource {
             resourceInputs["updated"] = state ? state.updated : undefined;
             resourceInputs["userData"] = state ? state.userData : undefined;
             resourceInputs["vendorOptions"] = state ? state.vendorOptions : undefined;
-            resourceInputs["volumes"] = state ? state.volumes : undefined;
         } else {
             const args = argsOrState as InstanceArgs | undefined;
             resourceInputs["accessIpV4"] = args ? args.accessIpV4 : undefined;
@@ -266,7 +256,6 @@ export class Instance extends pulumi.CustomResource {
             resourceInputs["configDrive"] = args ? args.configDrive : undefined;
             resourceInputs["flavorId"] = args ? args.flavorId : undefined;
             resourceInputs["flavorName"] = args ? args.flavorName : undefined;
-            resourceInputs["floatingIp"] = args ? args.floatingIp : undefined;
             resourceInputs["forceDelete"] = args ? args.forceDelete : undefined;
             resourceInputs["imageId"] = args ? args.imageId : undefined;
             resourceInputs["imageName"] = args ? args.imageName : undefined;
@@ -284,7 +273,6 @@ export class Instance extends pulumi.CustomResource {
             resourceInputs["tags"] = args ? args.tags : undefined;
             resourceInputs["userData"] = args ? args.userData : undefined;
             resourceInputs["vendorOptions"] = args ? args.vendorOptions : undefined;
-            resourceInputs["volumes"] = args ? args.volumes : undefined;
             resourceInputs["allMetadata"] = undefined /*out*/;
             resourceInputs["allTags"] = undefined /*out*/;
             resourceInputs["created"] = undefined /*out*/;
@@ -363,10 +351,6 @@ export interface InstanceState {
      * desired flavor for the server. Changing this resizes the existing server.
      */
     flavorName?: pulumi.Input;
-    /**
-     * @deprecated Use the openstack.compute.FloatingIpAssociate resource instead
-     */
-    floatingIp?: pulumi.Input;
     /**
      * Whether to force the OpenStack instance to be
      * forcefully deleted. This is useful for environments that have reclaim / soft
@@ -472,10 +456,6 @@ export interface InstanceState {
      * Supported options are described below.
      */
     vendorOptions?: pulumi.Input;
-    /**
-     * @deprecated Use blockDevice or openstack.compute.VolumeAttach instead
-     */
-    volumes?: pulumi.Input[]>;
 }
 
 /**
@@ -534,10 +514,6 @@ export interface InstanceArgs {
      * desired flavor for the server. Changing this resizes the existing server.
      */
     flavorName?: pulumi.Input;
-    /**
-     * @deprecated Use the openstack.compute.FloatingIpAssociate resource instead
-     */
-    floatingIp?: pulumi.Input;
     /**
      * Whether to force the OpenStack instance to be
      * forcefully deleted. This is useful for environments that have reclaim / soft
@@ -639,8 +615,4 @@ export interface InstanceArgs {
      * Supported options are described below.
      */
     vendorOptions?: pulumi.Input;
-    /**
-     * @deprecated Use blockDevice or openstack.compute.VolumeAttach instead
-     */
-    volumes?: pulumi.Input[]>;
 }
diff --git a/sdk/nodejs/compute/serverGroup.ts b/sdk/nodejs/compute/serverGroup.ts
index c67ddcbf3..e8eaa8ccf 100644
--- a/sdk/nodejs/compute/serverGroup.ts
+++ b/sdk/nodejs/compute/serverGroup.ts
@@ -21,6 +21,17 @@ import * as utilities from "../utilities";
  *     name: "my-sg",
  *     policies: ["anti-affinity"],
  * });
+ * const test_instance = new openstack.compute.Instance("test-instance", {
+ *     name: "my-instance",
+ *     imageId: "ad091b52-742f-469e-8f3c-fd81cadf0743",
+ *     flavorId: "3",
+ *     schedulerHints: [{
+ *         group: test_sg.id,
+ *     }],
+ *     networks: [{
+ *         name: "my_network",
+ *     }],
+ * });
  * ```
  *
  * ### Compute service API version 2.64 or above:
@@ -36,6 +47,17 @@ import * as utilities from "../utilities";
  *         maxServerPerHost: 3,
  *     },
  * });
+ * const test_instance = new openstack.compute.Instance("test-instance", {
+ *     name: "my-instance",
+ *     imageId: "ad091b52-742f-469e-8f3c-fd81cadf0743",
+ *     flavorId: "3",
+ *     schedulerHints: [{
+ *         group: test_sg.id,
+ *     }],
+ *     networks: [{
+ *         name: "my_network",
+ *     }],
+ * });
  * ```
  *
  * ## Policies
diff --git a/sdk/nodejs/compute/volumeAttach.ts b/sdk/nodejs/compute/volumeAttach.ts
index 0238edd7e..a5658efce 100644
--- a/sdk/nodejs/compute/volumeAttach.ts
+++ b/sdk/nodejs/compute/volumeAttach.ts
@@ -35,7 +35,7 @@ import * as utilities from "../utilities";
  * ### Using Multiattach-enabled volumes
  *
  * Multiattach Volumes are dependent upon your OpenStack cloud and not all
- * clouds support multiattach.
+ * clouds support multiattach. Multiattach volumes require a volumeType that has [multiattach enabled](https://docs.openstack.org/cinder/latest/admin/volume-multiattach.html#multiattach-volume-type).
  *
  * ```typescript
  * import * as pulumi from "@pulumi/pulumi";
@@ -44,7 +44,7 @@ import * as utilities from "../utilities";
  * const volume1 = new openstack.blockstorage.Volume("volume_1", {
  *     name: "volume_1",
  *     size: 1,
- *     multiattach: true,
+ *     volumeType: "multiattach",
  * });
  * const instance1 = new openstack.compute.Instance("instance_1", {
  *     name: "instance_1",
@@ -124,6 +124,12 @@ export class VolumeAttach extends pulumi.CustomResource {
      * new volume attachment.
      */
     public readonly region!: pulumi.Output;
+    /**
+     * Add a device role tag that is applied to the volume when
+     * attaching it to the VM. Changing this creates a new volume attachment with
+     * the new tag. Requires microversion >= 2.49.
+     */
+    public readonly tag!: pulumi.Output;
     /**
      * Map of additional vendor-specific options.
      * Supported options are described below.
@@ -151,6 +157,7 @@ export class VolumeAttach extends pulumi.CustomResource {
             resourceInputs["instanceId"] = state ? state.instanceId : undefined;
             resourceInputs["multiattach"] = state ? state.multiattach : undefined;
             resourceInputs["region"] = state ? state.region : undefined;
+            resourceInputs["tag"] = state ? state.tag : undefined;
             resourceInputs["vendorOptions"] = state ? state.vendorOptions : undefined;
             resourceInputs["volumeId"] = state ? state.volumeId : undefined;
         } else {
@@ -165,6 +172,7 @@ export class VolumeAttach extends pulumi.CustomResource {
             resourceInputs["instanceId"] = args ? args.instanceId : undefined;
             resourceInputs["multiattach"] = args ? args.multiattach : undefined;
             resourceInputs["region"] = args ? args.region : undefined;
+            resourceInputs["tag"] = args ? args.tag : undefined;
             resourceInputs["vendorOptions"] = args ? args.vendorOptions : undefined;
             resourceInputs["volumeId"] = args ? args.volumeId : undefined;
         }
@@ -193,6 +201,12 @@ export interface VolumeAttachState {
      * new volume attachment.
      */
     region?: pulumi.Input;
+    /**
+     * Add a device role tag that is applied to the volume when
+     * attaching it to the VM. Changing this creates a new volume attachment with
+     * the new tag. Requires microversion >= 2.49.
+     */
+    tag?: pulumi.Input;
     /**
      * Map of additional vendor-specific options.
      * Supported options are described below.
@@ -224,6 +238,12 @@ export interface VolumeAttachArgs {
      * new volume attachment.
      */
     region?: pulumi.Input;
+    /**
+     * Add a device role tag that is applied to the volume when
+     * attaching it to the VM. Changing this creates a new volume attachment with
+     * the new tag. Requires microversion >= 2.49.
+     */
+    tag?: pulumi.Input;
     /**
      * Map of additional vendor-specific options.
      * Supported options are described below.
diff --git a/sdk/nodejs/config/vars.ts b/sdk/nodejs/config/vars.ts
index 8fc445e0c..4341bbcb5 100644
--- a/sdk/nodejs/config/vars.ts
+++ b/sdk/nodejs/config/vars.ts
@@ -314,17 +314,6 @@ Object.defineProperty(exports, "token", {
     enumerable: true,
 });
 
-/**
- * If set to `true`, API requests will go the Load Balancer service (Octavia) instead of the Networking service (Neutron).
- */
-export declare const useOctavia: boolean | undefined;
-Object.defineProperty(exports, "useOctavia", {
-    get() {
-        return __config.getObject("useOctavia") ?? utilities.getEnvBoolean("OS_USE_OCTAVIA");
-    },
-    enumerable: true,
-});
-
 /**
  * The ID of the domain where the user resides (Identity v3).
  */
diff --git a/sdk/nodejs/images/getImage.ts b/sdk/nodejs/images/getImage.ts
index 806becead..cbcd8a622 100644
--- a/sdk/nodejs/images/getImage.ts
+++ b/sdk/nodejs/images/getImage.ts
@@ -37,8 +37,7 @@ export function getImage(args?: GetImageArgs, opts?: pulumi.InvokeOptions): Prom
         "region": args.region,
         "sizeMax": args.sizeMax,
         "sizeMin": args.sizeMin,
-        "sortDirection": args.sortDirection,
-        "sortKey": args.sortKey,
+        "sort": args.sort,
         "tag": args.tag,
         "tags": args.tags,
         "visibility": args.visibility,
@@ -103,13 +102,13 @@ export interface GetImageArgs {
      */
     sizeMin?: number;
     /**
-     * Order the results in either `asc` or `desc`.
+     * Sorts the response by one or more attribute and sort
+     * direction combinations. You can also set multiple sort keys and directions.
+     * Default direction is `desc`. Use the comma (,) character to separate
+     * multiple values. For example expression `sort = "name:asc,status"`
+     * sorts ascending by name and descending by status.
      */
-    sortDirection?: string;
-    /**
-     * Sort images based on a certain key. Defaults to `name`.
-     */
-    sortKey?: string;
+    sort?: string;
     /**
      * Search for images with a specific tag.
      */
@@ -195,8 +194,7 @@ export interface GetImageResult {
     readonly sizeBytes: number;
     readonly sizeMax?: number;
     readonly sizeMin?: number;
-    readonly sortDirection?: string;
-    readonly sortKey?: string;
+    readonly sort?: string;
     readonly tag?: string;
     /**
      * The tags list of the image.
@@ -288,13 +286,13 @@ export interface GetImageOutputArgs {
      */
     sizeMin?: pulumi.Input;
     /**
-     * Order the results in either `asc` or `desc`.
-     */
-    sortDirection?: pulumi.Input;
-    /**
-     * Sort images based on a certain key. Defaults to `name`.
+     * Sorts the response by one or more attribute and sort
+     * direction combinations. You can also set multiple sort keys and directions.
+     * Default direction is `desc`. Use the comma (,) character to separate
+     * multiple values. For example expression `sort = "name:asc,status"`
+     * sorts ascending by name and descending by status.
      */
-    sortKey?: pulumi.Input;
+    sort?: pulumi.Input;
     /**
      * Search for images with a specific tag.
      */
diff --git a/sdk/nodejs/images/getImageIds.ts b/sdk/nodejs/images/getImageIds.ts
index 38d4c78c3..7e7d4caa8 100644
--- a/sdk/nodejs/images/getImageIds.ts
+++ b/sdk/nodejs/images/getImageIds.ts
@@ -37,8 +37,6 @@ export function getImageIds(args?: GetImageIdsArgs, opts?: pulumi.InvokeOptions)
         "sizeMax": args.sizeMax,
         "sizeMin": args.sizeMin,
         "sort": args.sort,
-        "sortDirection": args.sortDirection,
-        "sortKey": args.sortKey,
         "tag": args.tag,
         "tags": args.tags,
         "visibility": args.visibility,
@@ -96,26 +94,9 @@ export interface GetImageIdsArgs {
      * direction combinations. You can also set multiple sort keys and directions.
      * Default direction is `desc`. Use the comma (,) character to separate
      * multiple values. For example expression `sort = "name:asc,status"`
-     * sorts ascending by name and descending by status. `sort` cannot be used
-     * simultaneously with `sortKey`. If both are present in a configuration
-     * then only `sort` will be used.
+     * sorts ascending by name and descending by status.
      */
     sort?: string;
-    /**
-     * Order the results in either `asc` or `desc`.
-     * Can be applied only with `sortKey`. Defaults to `asc`
-     *
-     * @deprecated Use option 'sort' instead.
-     */
-    sortDirection?: string;
-    /**
-     * Sort images based on a certain key. Defaults to
-     * `name`. `sortKey` cannot be used simultaneously with `sort`. If both
-     * are present in a configuration then only `sort` will be used.
-     *
-     * @deprecated Use option 'sort' instead.
-     */
-    sortKey?: string;
     /**
      * Search for images with a specific tag.
      */
@@ -150,14 +131,6 @@ export interface GetImageIdsResult {
     readonly sizeMax?: number;
     readonly sizeMin?: number;
     readonly sort?: string;
-    /**
-     * @deprecated Use option 'sort' instead.
-     */
-    readonly sortDirection?: string;
-    /**
-     * @deprecated Use option 'sort' instead.
-     */
-    readonly sortKey?: string;
     readonly tag?: string;
     readonly tags?: string[];
     readonly visibility?: string;
@@ -236,26 +209,9 @@ export interface GetImageIdsOutputArgs {
      * direction combinations. You can also set multiple sort keys and directions.
      * Default direction is `desc`. Use the comma (,) character to separate
      * multiple values. For example expression `sort = "name:asc,status"`
-     * sorts ascending by name and descending by status. `sort` cannot be used
-     * simultaneously with `sortKey`. If both are present in a configuration
-     * then only `sort` will be used.
+     * sorts ascending by name and descending by status.
      */
     sort?: pulumi.Input;
-    /**
-     * Order the results in either `asc` or `desc`.
-     * Can be applied only with `sortKey`. Defaults to `asc`
-     *
-     * @deprecated Use option 'sort' instead.
-     */
-    sortDirection?: pulumi.Input;
-    /**
-     * Sort images based on a certain key. Defaults to
-     * `name`. `sortKey` cannot be used simultaneously with `sort`. If both
-     * are present in a configuration then only `sort` will be used.
-     *
-     * @deprecated Use option 'sort' instead.
-     */
-    sortKey?: pulumi.Input;
     /**
      * Search for images with a specific tag.
      */
diff --git a/sdk/nodejs/images/image.ts b/sdk/nodejs/images/image.ts
index dc1db9410..4bd074364 100644
--- a/sdk/nodejs/images/image.ts
+++ b/sdk/nodejs/images/image.ts
@@ -204,12 +204,6 @@ export class Image extends pulumi.CustomResource {
      * At this time, it is not possible to delete all tags of an image.
      */
     public readonly tags!: pulumi.Output;
-    /**
-     * (**Deprecated** - use `updatedAt` instead)
-     *
-     * @deprecated Use updatedAt instead
-     */
-    public /*out*/ readonly updateAt!: pulumi.Output;
     /**
      * The date the image was last updated.
      */
@@ -271,7 +265,6 @@ export class Image extends pulumi.CustomResource {
             resourceInputs["sizeBytes"] = state ? state.sizeBytes : undefined;
             resourceInputs["status"] = state ? state.status : undefined;
             resourceInputs["tags"] = state ? state.tags : undefined;
-            resourceInputs["updateAt"] = state ? state.updateAt : undefined;
             resourceInputs["updatedAt"] = state ? state.updatedAt : undefined;
             resourceInputs["verifyChecksum"] = state ? state.verifyChecksum : undefined;
             resourceInputs["visibility"] = state ? state.visibility : undefined;
@@ -312,7 +305,6 @@ export class Image extends pulumi.CustomResource {
             resourceInputs["schema"] = undefined /*out*/;
             resourceInputs["sizeBytes"] = undefined /*out*/;
             resourceInputs["status"] = undefined /*out*/;
-            resourceInputs["updateAt"] = undefined /*out*/;
             resourceInputs["updatedAt"] = undefined /*out*/;
         }
         opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
@@ -450,12 +442,6 @@ export interface ImageState {
      * At this time, it is not possible to delete all tags of an image.
      */
     tags?: pulumi.Input[]>;
-    /**
-     * (**Deprecated** - use `updatedAt` instead)
-     *
-     * @deprecated Use updatedAt instead
-     */
-    updateAt?: pulumi.Input;
     /**
      * The date the image was last updated.
      */
diff --git a/sdk/nodejs/loadbalancer/getFlavorV2.ts b/sdk/nodejs/loadbalancer/getFlavorV2.ts
new file mode 100644
index 000000000..5919e5770
--- /dev/null
+++ b/sdk/nodejs/loadbalancer/getFlavorV2.ts
@@ -0,0 +1,53 @@
+// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+import * as pulumi from "@pulumi/pulumi";
+import * as utilities from "../utilities";
+
+export function getFlavorV2(args?: GetFlavorV2Args, opts?: pulumi.InvokeOptions): Promise {
+    args = args || {};
+
+    opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {});
+    return pulumi.runtime.invoke("openstack:loadbalancer/getFlavorV2:getFlavorV2", {
+        "flavorId": args.flavorId,
+        "name": args.name,
+        "region": args.region,
+    }, opts);
+}
+
+/**
+ * A collection of arguments for invoking getFlavorV2.
+ */
+export interface GetFlavorV2Args {
+    flavorId?: string;
+    name?: string;
+    region?: string;
+}
+
+/**
+ * A collection of values returned by getFlavorV2.
+ */
+export interface GetFlavorV2Result {
+    readonly description: string;
+    readonly enabled: boolean;
+    readonly flavorId: string;
+    readonly flavorProfileId: string;
+    /**
+     * The provider-assigned unique ID for this managed resource.
+     */
+    readonly id: string;
+    readonly name: string;
+    readonly region?: string;
+}
+export function getFlavorV2Output(args?: GetFlavorV2OutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output {
+    return pulumi.output(args).apply((a: any) => getFlavorV2(a, opts))
+}
+
+/**
+ * A collection of arguments for invoking getFlavorV2.
+ */
+export interface GetFlavorV2OutputArgs {
+    flavorId?: pulumi.Input;
+    name?: pulumi.Input;
+    region?: pulumi.Input;
+}
diff --git a/sdk/nodejs/loadbalancer/index.ts b/sdk/nodejs/loadbalancer/index.ts
index 934b66789..419cf4612 100644
--- a/sdk/nodejs/loadbalancer/index.ts
+++ b/sdk/nodejs/loadbalancer/index.ts
@@ -5,6 +5,11 @@ import * as pulumi from "@pulumi/pulumi";
 import * as utilities from "../utilities";
 
 // Export members:
+export { GetFlavorV2Args, GetFlavorV2Result, GetFlavorV2OutputArgs } from "./getFlavorV2";
+export const getFlavorV2: typeof import("./getFlavorV2").getFlavorV2 = null as any;
+export const getFlavorV2Output: typeof import("./getFlavorV2").getFlavorV2Output = null as any;
+utilities.lazyLoad(exports, ["getFlavorV2","getFlavorV2Output"], () => require("./getFlavorV2"));
+
 export { L7PolicyV2Args, L7PolicyV2State } from "./l7policyV2";
 export type L7PolicyV2 = import("./l7policyV2").L7PolicyV2;
 export const L7PolicyV2: typeof import("./l7policyV2").L7PolicyV2 = null as any;
diff --git a/sdk/nodejs/loadbalancer/listener.ts b/sdk/nodejs/loadbalancer/listener.ts
index 9ddf6d81e..b174f2acc 100644
--- a/sdk/nodejs/loadbalancer/listener.ts
+++ b/sdk/nodejs/loadbalancer/listener.ts
@@ -112,8 +112,8 @@ export class Listener extends pulumi.CustomResource {
     public readonly name!: pulumi.Output;
     /**
      * The protocol - can either be TCP, HTTP, HTTPS,
-     * TERMINATED_HTTPS, UDP (supported only in Octavia), SCTP (supported only
-     * in **Octavia minor version >= 2.23**) or PROMETHEUS (supported only in
+     * TERMINATED_HTTPS, UDP, SCTP (supported only in
+     * **Octavia minor version >= 2.23**) or PROMETHEUS (supported only in
      * **Octavia minor version >=2.25**). Changing this creates a new Listener.
      */
     public readonly protocol!: pulumi.Output;
@@ -283,8 +283,8 @@ export interface ListenerState {
     name?: pulumi.Input;
     /**
      * The protocol - can either be TCP, HTTP, HTTPS,
-     * TERMINATED_HTTPS, UDP (supported only in Octavia), SCTP (supported only
-     * in **Octavia minor version >= 2.23**) or PROMETHEUS (supported only in
+     * TERMINATED_HTTPS, UDP, SCTP (supported only in
+     * **Octavia minor version >= 2.23**) or PROMETHEUS (supported only in
      * **Octavia minor version >=2.25**). Changing this creates a new Listener.
      */
     protocol?: pulumi.Input;
@@ -387,8 +387,8 @@ export interface ListenerArgs {
     name?: pulumi.Input;
     /**
      * The protocol - can either be TCP, HTTP, HTTPS,
-     * TERMINATED_HTTPS, UDP (supported only in Octavia), SCTP (supported only
-     * in **Octavia minor version >= 2.23**) or PROMETHEUS (supported only in
+     * TERMINATED_HTTPS, UDP, SCTP (supported only in
+     * **Octavia minor version >= 2.23**) or PROMETHEUS (supported only in
      * **Octavia minor version >=2.25**). Changing this creates a new Listener.
      */
     protocol: pulumi.Input;
diff --git a/sdk/nodejs/loadbalancer/members.ts b/sdk/nodejs/loadbalancer/members.ts
index 696aa59aa..b85fdc5e2 100644
--- a/sdk/nodejs/loadbalancer/members.ts
+++ b/sdk/nodejs/loadbalancer/members.ts
@@ -12,10 +12,6 @@ import * as utilities from "../utilities";
  * > **Note:** This resource has attributes that depend on octavia minor versions.
  * Please ensure your Openstack cloud supports the required minor version.
  *
- * > **Note:** This resource works only within Octavia API. For
- * legacy Neutron LBaaS v2 extension please use
- * openstack.loadbalancer.Member resource.
- *
  * ## Example Usage
  *
  * ```typescript
diff --git a/sdk/nodejs/loadbalancer/pool.ts b/sdk/nodejs/loadbalancer/pool.ts
index 084e886c6..873e53ca0 100644
--- a/sdk/nodejs/loadbalancer/pool.ts
+++ b/sdk/nodejs/loadbalancer/pool.ts
@@ -77,8 +77,7 @@ export class Pool extends pulumi.CustomResource {
     /**
      * The load balancing algorithm to
      * distribute traffic to the pool's members. Must be one of
-     * ROUND_ROBIN, LEAST_CONNECTIONS, SOURCE_IP, or SOURCE_IP_PORT (supported only
-     * in Octavia).
+     * ROUND_ROBIN, LEAST_CONNECTIONS, SOURCE_IP, or SOURCE_IP_PORT.
      */
     public readonly lbMethod!: pulumi.Output;
     /**
@@ -105,8 +104,8 @@ export class Pool extends pulumi.CustomResource {
     public readonly persistence!: pulumi.Output;
     /**
      * The protocol - can either be TCP, HTTP, HTTPS, PROXY,
-     * UDP (supported only in Octavia), PROXYV2 (**Octavia minor version >= 2.22**)
-     * or SCTP (**Octavia minor version >= 2.23**). Changing this creates a new pool.
+     * UDP, PROXYV2 (**Octavia minor version >= 2.22**) or SCTP
+     * (**Octavia minor version >= 2.23**). Changing this creates a new pool.
      */
     public readonly protocol!: pulumi.Output;
     /**
@@ -186,8 +185,7 @@ export interface PoolState {
     /**
      * The load balancing algorithm to
      * distribute traffic to the pool's members. Must be one of
-     * ROUND_ROBIN, LEAST_CONNECTIONS, SOURCE_IP, or SOURCE_IP_PORT (supported only
-     * in Octavia).
+     * ROUND_ROBIN, LEAST_CONNECTIONS, SOURCE_IP, or SOURCE_IP_PORT.
      */
     lbMethod?: pulumi.Input;
     /**
@@ -214,8 +212,8 @@ export interface PoolState {
     persistence?: pulumi.Input;
     /**
      * The protocol - can either be TCP, HTTP, HTTPS, PROXY,
-     * UDP (supported only in Octavia), PROXYV2 (**Octavia minor version >= 2.22**)
-     * or SCTP (**Octavia minor version >= 2.23**). Changing this creates a new pool.
+     * UDP, PROXYV2 (**Octavia minor version >= 2.22**) or SCTP
+     * (**Octavia minor version >= 2.23**). Changing this creates a new pool.
      */
     protocol?: pulumi.Input;
     /**
@@ -249,8 +247,7 @@ export interface PoolArgs {
     /**
      * The load balancing algorithm to
      * distribute traffic to the pool's members. Must be one of
-     * ROUND_ROBIN, LEAST_CONNECTIONS, SOURCE_IP, or SOURCE_IP_PORT (supported only
-     * in Octavia).
+     * ROUND_ROBIN, LEAST_CONNECTIONS, SOURCE_IP, or SOURCE_IP_PORT.
      */
     lbMethod: pulumi.Input;
     /**
@@ -277,8 +274,8 @@ export interface PoolArgs {
     persistence?: pulumi.Input;
     /**
      * The protocol - can either be TCP, HTTP, HTTPS, PROXY,
-     * UDP (supported only in Octavia), PROXYV2 (**Octavia minor version >= 2.22**)
-     * or SCTP (**Octavia minor version >= 2.23**). Changing this creates a new pool.
+     * UDP, PROXYV2 (**Octavia minor version >= 2.22**) or SCTP
+     * (**Octavia minor version >= 2.23**). Changing this creates a new pool.
      */
     protocol: pulumi.Input;
     /**
diff --git a/sdk/nodejs/loadbalancer/poolV1.ts b/sdk/nodejs/loadbalancer/poolV1.ts
index e2e9b526e..3bc917314 100644
--- a/sdk/nodejs/loadbalancer/poolV1.ts
+++ b/sdk/nodejs/loadbalancer/poolV1.ts
@@ -109,10 +109,6 @@ import * as utilities from "../utilities";
  * });
  * ```
  *
- * ## Notes
- *
- * The `member` block is deprecated in favor of the `openstack.loadbalancer.MemberV1` resource.
- *
  * ## Import
  *
  * Load Balancer Pools can be imported using the `id`, e.g.
@@ -160,15 +156,6 @@ export class PoolV1 extends pulumi.CustomResource {
      * `haproxy`, `F5`, etc.
      */
     public readonly lbProvider!: pulumi.Output;
-    /**
-     * An existing node to add to the pool. Changing this
-     * updates the members of the pool. The member object structure is documented
-     * below. Please note that the `member` block is deprecated in favor of the
-     * `openstack.loadbalancer.MemberV1` resource.
-     *
-     * @deprecated Use openstack.loadbalancer.MemberV1 instead
-     */
-    public readonly members!: pulumi.Output;
     /**
      * A list of IDs of monitors to associate with the
      * pool.
@@ -218,7 +205,6 @@ export class PoolV1 extends pulumi.CustomResource {
             const state = argsOrState as PoolV1State | undefined;
             resourceInputs["lbMethod"] = state ? state.lbMethod : undefined;
             resourceInputs["lbProvider"] = state ? state.lbProvider : undefined;
-            resourceInputs["members"] = state ? state.members : undefined;
             resourceInputs["monitorIds"] = state ? state.monitorIds : undefined;
             resourceInputs["name"] = state ? state.name : undefined;
             resourceInputs["protocol"] = state ? state.protocol : undefined;
@@ -238,7 +224,6 @@ export class PoolV1 extends pulumi.CustomResource {
             }
             resourceInputs["lbMethod"] = args ? args.lbMethod : undefined;
             resourceInputs["lbProvider"] = args ? args.lbProvider : undefined;
-            resourceInputs["members"] = args ? args.members : undefined;
             resourceInputs["monitorIds"] = args ? args.monitorIds : undefined;
             resourceInputs["name"] = args ? args.name : undefined;
             resourceInputs["protocol"] = args ? args.protocol : undefined;
@@ -266,15 +251,6 @@ export interface PoolV1State {
      * `haproxy`, `F5`, etc.
      */
     lbProvider?: pulumi.Input;
-    /**
-     * An existing node to add to the pool. Changing this
-     * updates the members of the pool. The member object structure is documented
-     * below. Please note that the `member` block is deprecated in favor of the
-     * `openstack.loadbalancer.MemberV1` resource.
-     *
-     * @deprecated Use openstack.loadbalancer.MemberV1 instead
-     */
-    members?: pulumi.Input[]>;
     /**
      * A list of IDs of monitors to associate with the
      * pool.
@@ -325,15 +301,6 @@ export interface PoolV1Args {
      * `haproxy`, `F5`, etc.
      */
     lbProvider?: pulumi.Input;
-    /**
-     * An existing node to add to the pool. Changing this
-     * updates the members of the pool. The member object structure is documented
-     * below. Please note that the `member` block is deprecated in favor of the
-     * `openstack.loadbalancer.MemberV1` resource.
-     *
-     * @deprecated Use openstack.loadbalancer.MemberV1 instead
-     */
-    members?: pulumi.Input[]>;
     /**
      * A list of IDs of monitors to associate with the
      * pool.
diff --git a/sdk/nodejs/loadbalancer/quota.ts b/sdk/nodejs/loadbalancer/quota.ts
index c6df70db9..d3b3a74e5 100644
--- a/sdk/nodejs/loadbalancer/quota.ts
+++ b/sdk/nodejs/loadbalancer/quota.ts
@@ -9,8 +9,6 @@ import * as utilities from "../utilities";
  *
  * > **Note:** This usually requires admin privileges.
  *
- * > **Note:** This resource is only available for Octavia.
- *
  * > **Note:** This resource has a no-op deletion so no actual actions will be done against the OpenStack
  *    API in case of delete call.
  *
diff --git a/sdk/nodejs/networking/getFloatingIp.ts b/sdk/nodejs/networking/getFloatingIp.ts
index 67ff08ddf..d81261d9a 100644
--- a/sdk/nodejs/networking/getFloatingIp.ts
+++ b/sdk/nodejs/networking/getFloatingIp.ts
@@ -52,7 +52,7 @@ export interface GetFloatingIpArgs {
      */
     fixedIp?: string;
     /**
-     * The name of the pool from which the floating IP belongs to.
+     * The ID of the network from which the floating IP belongs to.
      */
     pool?: string;
     /**
@@ -146,7 +146,7 @@ export interface GetFloatingIpOutputArgs {
      */
     fixedIp?: pulumi.Input;
     /**
-     * The name of the pool from which the floating IP belongs to.
+     * The ID of the network from which the floating IP belongs to.
      */
     pool?: pulumi.Input;
     /**
diff --git a/sdk/nodejs/networking/getSubnet.ts b/sdk/nodejs/networking/getSubnet.ts
index 1b53f6b76..a24721300 100644
--- a/sdk/nodejs/networking/getSubnet.ts
+++ b/sdk/nodejs/networking/getSubnet.ts
@@ -27,7 +27,6 @@ export function getSubnet(args?: GetSubnetArgs, opts?: pulumi.InvokeOptions): Pr
     return pulumi.runtime.invoke("openstack:networking/getSubnet:getSubnet", {
         "cidr": args.cidr,
         "description": args.description,
-        "dhcpDisabled": args.dhcpDisabled,
         "dhcpEnabled": args.dhcpEnabled,
         "gatewayIp": args.gatewayIp,
         "ipVersion": args.ipVersion,
@@ -55,10 +54,6 @@ export interface GetSubnetArgs {
      * Human-readable description of the subnet.
      */
     description?: string;
-    /**
-     * @deprecated use dhcpEnabled instead
-     */
-    dhcpDisabled?: boolean;
     /**
      * If the subnet has DHCP enabled.
      */
@@ -127,10 +122,6 @@ export interface GetSubnetResult {
     readonly allocationPools: outputs.networking.GetSubnetAllocationPool[];
     readonly cidr: string;
     readonly description: string;
-    /**
-     * @deprecated use dhcpEnabled instead
-     */
-    readonly dhcpDisabled?: boolean;
     readonly dhcpEnabled?: boolean;
     /**
      * DNS Nameservers of the subnet.
@@ -197,10 +188,6 @@ export interface GetSubnetOutputArgs {
      * Human-readable description of the subnet.
      */
     description?: pulumi.Input;
-    /**
-     * @deprecated use dhcpEnabled instead
-     */
-    dhcpDisabled?: pulumi.Input;
     /**
      * If the subnet has DHCP enabled.
      */
diff --git a/sdk/nodejs/networking/router.ts b/sdk/nodejs/networking/router.ts
index c21557ea5..fa67eba96 100644
--- a/sdk/nodejs/networking/router.ts
+++ b/sdk/nodejs/networking/router.ts
@@ -101,16 +101,6 @@ export class Router extends pulumi.CustomResource {
      * external fixed IPs of the router.
      */
     public readonly externalFixedIps!: pulumi.Output;
-    /**
-     * The
-     * network UUID of an external gateway for the router. A router with an
-     * external gateway is required if any compute instances or load balancers
-     * will be using floating IPs. Changing this updates the external gateway
-     * of an existing router.
-     *
-     * @deprecated use externalNetworkId instead
-     */
-    public readonly externalGateway!: pulumi.Output;
     /**
      * The network UUID of an external gateway
      * for the router. A router with an external gateway is required if any
@@ -177,7 +167,6 @@ export class Router extends pulumi.CustomResource {
             resourceInputs["distributed"] = state ? state.distributed : undefined;
             resourceInputs["enableSnat"] = state ? state.enableSnat : undefined;
             resourceInputs["externalFixedIps"] = state ? state.externalFixedIps : undefined;
-            resourceInputs["externalGateway"] = state ? state.externalGateway : undefined;
             resourceInputs["externalNetworkId"] = state ? state.externalNetworkId : undefined;
             resourceInputs["externalSubnetIds"] = state ? state.externalSubnetIds : undefined;
             resourceInputs["name"] = state ? state.name : undefined;
@@ -194,7 +183,6 @@ export class Router extends pulumi.CustomResource {
             resourceInputs["distributed"] = args ? args.distributed : undefined;
             resourceInputs["enableSnat"] = args ? args.enableSnat : undefined;
             resourceInputs["externalFixedIps"] = args ? args.externalFixedIps : undefined;
-            resourceInputs["externalGateway"] = args ? args.externalGateway : undefined;
             resourceInputs["externalNetworkId"] = args ? args.externalNetworkId : undefined;
             resourceInputs["externalSubnetIds"] = args ? args.externalSubnetIds : undefined;
             resourceInputs["name"] = args ? args.name : undefined;
@@ -257,16 +245,6 @@ export interface RouterState {
      * external fixed IPs of the router.
      */
     externalFixedIps?: pulumi.Input[]>;
-    /**
-     * The
-     * network UUID of an external gateway for the router. A router with an
-     * external gateway is required if any compute instances or load balancers
-     * will be using floating IPs. Changing this updates the external gateway
-     * of an existing router.
-     *
-     * @deprecated use externalNetworkId instead
-     */
-    externalGateway?: pulumi.Input;
     /**
      * The network UUID of an external gateway
      * for the router. A router with an external gateway is required if any
@@ -356,16 +334,6 @@ export interface RouterArgs {
      * external fixed IPs of the router.
      */
     externalFixedIps?: pulumi.Input[]>;
-    /**
-     * The
-     * network UUID of an external gateway for the router. A router with an
-     * external gateway is required if any compute instances or load balancers
-     * will be using floating IPs. Changing this updates the external gateway
-     * of an existing router.
-     *
-     * @deprecated use externalNetworkId instead
-     */
-    externalGateway?: pulumi.Input;
     /**
      * The network UUID of an external gateway
      * for the router. A router with an external gateway is required if any
diff --git a/sdk/nodejs/networking/subnet.ts b/sdk/nodejs/networking/subnet.ts
index c268d30a5..deaa660c7 100644
--- a/sdk/nodejs/networking/subnet.ts
+++ b/sdk/nodejs/networking/subnet.ts
@@ -75,14 +75,6 @@ export class Subnet extends pulumi.CustomResource {
      * The `allocationPool` block is documented below.
      */
     public readonly allocationPools!: pulumi.Output;
-    /**
-     * A block declaring the start and end range of the IP addresses available for
-     * use with DHCP in this subnet.
-     * The `allocationPools` block is documented below.
-     *
-     * @deprecated use allocationPool instead
-     */
-    public readonly allocationPoolsCollection!: pulumi.Output;
     /**
      * CIDR representing IP range for this subnet, based on IP
      * version. You can omit this option if you are creating a subnet from a
@@ -113,16 +105,6 @@ export class Subnet extends pulumi.CustomResource {
      * existing subnet.
      */
     public readonly gatewayIp!: pulumi.Output;
-    /**
-     * (**Deprecated** - use `openstack.networking.SubnetRoute`
-     * instead) An array of routes that should be used by devices
-     * with IPs from this subnet (not including local subnet route). The hostRoute
-     * object structure is documented below. Changing this updates the host routes
-     * for the existing subnet.
-     *
-     * @deprecated Use openstack.networking.SubnetRoute instead
-     */
-    public readonly hostRoutes!: pulumi.Output;
     /**
      * IP version, either 4 (default) or 6. Changing this creates a
      * new subnet.
@@ -205,13 +187,11 @@ export class Subnet extends pulumi.CustomResource {
             const state = argsOrState as SubnetState | undefined;
             resourceInputs["allTags"] = state ? state.allTags : undefined;
             resourceInputs["allocationPools"] = state ? state.allocationPools : undefined;
-            resourceInputs["allocationPoolsCollection"] = state ? state.allocationPoolsCollection : undefined;
             resourceInputs["cidr"] = state ? state.cidr : undefined;
             resourceInputs["description"] = state ? state.description : undefined;
             resourceInputs["dnsNameservers"] = state ? state.dnsNameservers : undefined;
             resourceInputs["enableDhcp"] = state ? state.enableDhcp : undefined;
             resourceInputs["gatewayIp"] = state ? state.gatewayIp : undefined;
-            resourceInputs["hostRoutes"] = state ? state.hostRoutes : undefined;
             resourceInputs["ipVersion"] = state ? state.ipVersion : undefined;
             resourceInputs["ipv6AddressMode"] = state ? state.ipv6AddressMode : undefined;
             resourceInputs["ipv6RaMode"] = state ? state.ipv6RaMode : undefined;
@@ -231,13 +211,11 @@ export class Subnet extends pulumi.CustomResource {
                 throw new Error("Missing required property 'networkId'");
             }
             resourceInputs["allocationPools"] = args ? args.allocationPools : undefined;
-            resourceInputs["allocationPoolsCollection"] = args ? args.allocationPoolsCollection : undefined;
             resourceInputs["cidr"] = args ? args.cidr : undefined;
             resourceInputs["description"] = args ? args.description : undefined;
             resourceInputs["dnsNameservers"] = args ? args.dnsNameservers : undefined;
             resourceInputs["enableDhcp"] = args ? args.enableDhcp : undefined;
             resourceInputs["gatewayIp"] = args ? args.gatewayIp : undefined;
-            resourceInputs["hostRoutes"] = args ? args.hostRoutes : undefined;
             resourceInputs["ipVersion"] = args ? args.ipVersion : undefined;
             resourceInputs["ipv6AddressMode"] = args ? args.ipv6AddressMode : undefined;
             resourceInputs["ipv6RaMode"] = args ? args.ipv6RaMode : undefined;
@@ -276,14 +254,6 @@ export interface SubnetState {
      * The `allocationPool` block is documented below.
      */
     allocationPools?: pulumi.Input[]>;
-    /**
-     * A block declaring the start and end range of the IP addresses available for
-     * use with DHCP in this subnet.
-     * The `allocationPools` block is documented below.
-     *
-     * @deprecated use allocationPool instead
-     */
-    allocationPoolsCollection?: pulumi.Input[]>;
     /**
      * CIDR representing IP range for this subnet, based on IP
      * version. You can omit this option if you are creating a subnet from a
@@ -314,16 +284,6 @@ export interface SubnetState {
      * existing subnet.
      */
     gatewayIp?: pulumi.Input;
-    /**
-     * (**Deprecated** - use `openstack.networking.SubnetRoute`
-     * instead) An array of routes that should be used by devices
-     * with IPs from this subnet (not including local subnet route). The hostRoute
-     * object structure is documented below. Changing this updates the host routes
-     * for the existing subnet.
-     *
-     * @deprecated Use openstack.networking.SubnetRoute instead
-     */
-    hostRoutes?: pulumi.Input[]>;
     /**
      * IP version, either 4 (default) or 6. Changing this creates a
      * new subnet.
@@ -405,14 +365,6 @@ export interface SubnetArgs {
      * The `allocationPool` block is documented below.
      */
     allocationPools?: pulumi.Input[]>;
-    /**
-     * A block declaring the start and end range of the IP addresses available for
-     * use with DHCP in this subnet.
-     * The `allocationPools` block is documented below.
-     *
-     * @deprecated use allocationPool instead
-     */
-    allocationPoolsCollection?: pulumi.Input[]>;
     /**
      * CIDR representing IP range for this subnet, based on IP
      * version. You can omit this option if you are creating a subnet from a
@@ -443,16 +395,6 @@ export interface SubnetArgs {
      * existing subnet.
      */
     gatewayIp?: pulumi.Input;
-    /**
-     * (**Deprecated** - use `openstack.networking.SubnetRoute`
-     * instead) An array of routes that should be used by devices
-     * with IPs from this subnet (not including local subnet route). The hostRoute
-     * object structure is documented below. Changing this updates the host routes
-     * for the existing subnet.
-     *
-     * @deprecated Use openstack.networking.SubnetRoute instead
-     */
-    hostRoutes?: pulumi.Input[]>;
     /**
      * IP version, either 4 (default) or 6. Changing this creates a
      * new subnet.
diff --git a/sdk/nodejs/package.json b/sdk/nodejs/package.json
index 30db137f1..08834cec7 100644
--- a/sdk/nodejs/package.json
+++ b/sdk/nodejs/package.json
@@ -1,6 +1,6 @@
 {
     "name": "@pulumi/openstack",
-    "version": "3.0.0-alpha.0+dev",
+    "version": "4.0.0-alpha.0+dev",
     "description": "A Pulumi package for creating and managing OpenStack cloud resources.",
     "keywords": [
         "pulumi",
@@ -22,6 +22,6 @@
     "pulumi": {
         "resource": true,
         "name": "openstack",
-        "version": "3.0.0-alpha.0+dev"
+        "version": "4.0.0-alpha.0+dev"
     }
 }
diff --git a/sdk/nodejs/provider.ts b/sdk/nodejs/provider.ts
index 46547cd46..06b99263c 100644
--- a/sdk/nodejs/provider.ts
+++ b/sdk/nodejs/provider.ts
@@ -154,7 +154,6 @@ export class Provider extends pulumi.ProviderResource {
             resourceInputs["tenantId"] = args ? args.tenantId : undefined;
             resourceInputs["tenantName"] = args ? args.tenantName : undefined;
             resourceInputs["token"] = args ? args.token : undefined;
-            resourceInputs["useOctavia"] = pulumi.output((args ? args.useOctavia : undefined) ?? utilities.getEnvBoolean("OS_USE_OCTAVIA")).apply(JSON.stringify);
             resourceInputs["userDomainId"] = args ? args.userDomainId : undefined;
             resourceInputs["userDomainName"] = args ? args.userDomainName : undefined;
             resourceInputs["userId"] = args ? args.userId : undefined;
@@ -282,12 +281,6 @@ export interface ProviderArgs {
      * Authentication token to use as an alternative to username/password.
      */
     token?: pulumi.Input;
-    /**
-     * If set to `true`, API requests will go the Load Balancer service (Octavia) instead of the Networking service (Neutron).
-     *
-     * @deprecated Users not using loadbalancer resources can ignore this message. Support for neutron-lbaas will be removed on next major release. Octavia will be the only supported method for loadbalancer resources. Users using octavia will have to remove 'use_octavia' option from the provider configuration block. Users using neutron-lbaas will have to migrate/upgrade to octavia.
-     */
-    useOctavia?: pulumi.Input;
     /**
      * The ID of the domain where the user resides (Identity v3).
      */
diff --git a/sdk/nodejs/tsconfig.json b/sdk/nodejs/tsconfig.json
index a866d13a9..4874df91e 100644
--- a/sdk/nodejs/tsconfig.json
+++ b/sdk/nodejs/tsconfig.json
@@ -115,6 +115,7 @@
         "keymanager/index.ts",
         "keymanager/orderV1.ts",
         "keymanager/secretV1.ts",
+        "loadbalancer/getFlavorV2.ts",
         "loadbalancer/index.ts",
         "loadbalancer/l7policyV2.ts",
         "loadbalancer/l7ruleV2.ts",
diff --git a/sdk/nodejs/types/input.ts b/sdk/nodejs/types/input.ts
index 78151c68b..3670ca6d8 100644
--- a/sdk/nodejs/types/input.ts
+++ b/sdk/nodejs/types/input.ts
@@ -232,10 +232,6 @@ export namespace compute {
          */
         fixedIpV4?: pulumi.Input;
         fixedIpV6?: pulumi.Input;
-        /**
-         * @deprecated Use the openstack.compute.FloatingIpAssociate resource instead
-         */
-        floatingIp?: pulumi.Input;
         mac?: pulumi.Input;
         /**
          * The human-readable
@@ -287,7 +283,8 @@ export namespace compute {
         differentHosts?: pulumi.Input[]>;
         /**
          * A UUID of a Server Group. The instance will be placed
-         * into that group.
+         * into that group. See reference
+         * for details on managing servergroup resources
          */
         group?: pulumi.Input;
         /**
@@ -330,12 +327,6 @@ export namespace compute {
         ignoreResizeConfirmation?: pulumi.Input;
     }
 
-    export interface InstanceVolume {
-        device?: pulumi.Input;
-        id?: pulumi.Input;
-        volumeId: pulumi.Input;
-    }
-
     export interface SecGroupRule {
         /**
          * Required if `fromGroupId` or `self` is empty. The IP range
@@ -798,28 +789,6 @@ export namespace networking {
         start: pulumi.Input;
     }
 
-    export interface SubnetAllocationPoolsCollection {
-        /**
-         * The ending address.
-         */
-        end: pulumi.Input;
-        /**
-         * The starting address.
-         */
-        start: pulumi.Input;
-    }
-
-    export interface SubnetHostRoute {
-        /**
-         * The destination CIDR.
-         */
-        destinationCidr: pulumi.Input;
-        /**
-         * The next hop in the route.
-         */
-        nextHop: pulumi.Input;
-    }
-
     export interface TrunkSubPort {
         /**
          * The ID of the port to be made a subport of the trunk.
diff --git a/sdk/nodejs/types/output.ts b/sdk/nodejs/types/output.ts
index cc00a1d13..10928f9b1 100644
--- a/sdk/nodejs/types/output.ts
+++ b/sdk/nodejs/types/output.ts
@@ -212,10 +212,6 @@ export namespace compute {
          */
         fixedIpV4: string;
         fixedIpV6: string;
-        /**
-         * @deprecated Use the openstack.compute.FloatingIpAssociate resource instead
-         */
-        floatingIp: string;
         mac: string;
         /**
          * The human-readable
@@ -267,7 +263,8 @@ export namespace compute {
         differentHosts?: string[];
         /**
          * A UUID of a Server Group. The instance will be placed
-         * into that group.
+         * into that group. See reference
+         * for details on managing servergroup resources
          */
         group?: string;
         /**
@@ -310,12 +307,6 @@ export namespace compute {
         ignoreResizeConfirmation?: boolean;
     }
 
-    export interface InstanceVolume {
-        device: string;
-        id: string;
-        volumeId: string;
-    }
-
     export interface SecGroupRule {
         /**
          * Required if `fromGroupId` or `self` is empty. The IP range
@@ -1001,28 +992,6 @@ export namespace networking {
         start: string;
     }
 
-    export interface SubnetAllocationPoolsCollection {
-        /**
-         * The ending address.
-         */
-        end: string;
-        /**
-         * The starting address.
-         */
-        start: string;
-    }
-
-    export interface SubnetHostRoute {
-        /**
-         * The destination CIDR.
-         */
-        destinationCidr: string;
-        /**
-         * The next hop in the route.
-         */
-        nextHop: string;
-    }
-
     export interface TrunkSubPort {
         /**
          * The ID of the port to be made a subport of the trunk.
diff --git a/sdk/nodejs/vpnaas/ikePolicy.ts b/sdk/nodejs/vpnaas/ikePolicy.ts
index dd6a25e77..c7cb5d196 100644
--- a/sdk/nodejs/vpnaas/ikePolicy.ts
+++ b/sdk/nodejs/vpnaas/ikePolicy.ts
@@ -70,7 +70,7 @@ export class IkePolicy extends pulumi.CustomResource {
      */
     public readonly encryptionAlgorithm!: pulumi.Output;
     /**
-     * The IKE mode. A valid value is v1 or v2. Default is v1.
+     * The IKE version. A valid value is v1 or v2. Default is v1.
      * Changing this updates the existing policy.
      */
     public readonly ikeVersion!: pulumi.Output;
@@ -173,7 +173,7 @@ export interface IkePolicyState {
      */
     encryptionAlgorithm?: pulumi.Input;
     /**
-     * The IKE mode. A valid value is v1 or v2. Default is v1.
+     * The IKE version. A valid value is v1 or v2. Default is v1.
      * Changing this updates the existing policy.
      */
     ikeVersion?: pulumi.Input;
@@ -234,7 +234,7 @@ export interface IkePolicyArgs {
      */
     encryptionAlgorithm?: pulumi.Input;
     /**
-     * The IKE mode. A valid value is v1 or v2. Default is v1.
+     * The IKE version. A valid value is v1 or v2. Default is v1.
      * Changing this updates the existing policy.
      */
     ikeVersion?: pulumi.Input;
diff --git a/sdk/python/README.md b/sdk/python/README.md
index 79743753d..1954ce1e4 100644
--- a/sdk/python/README.md
+++ b/sdk/python/README.md
@@ -35,7 +35,7 @@ To use from Python, install using `pip`:
 
 To use from Go, use `go get` to grab the latest version of the library
 
-    $ go get github.com/pulumi/pulumi-openstack/sdk/v3
+    $ go get github.com/pulumi/pulumi-openstack/sdk/v4
     
 ### .NET
 
diff --git a/sdk/python/pulumi_openstack/blockstorage/get_volume_v3.py b/sdk/python/pulumi_openstack/blockstorage/get_volume_v3.py
index 85c0a0c3c..5aaa1e74c 100644
--- a/sdk/python/pulumi_openstack/blockstorage/get_volume_v3.py
+++ b/sdk/python/pulumi_openstack/blockstorage/get_volume_v3.py
@@ -22,7 +22,7 @@ class GetVolumeV3Result:
     """
     A collection of values returned by getVolumeV3.
     """
-    def __init__(__self__, attachments=None, bootable=None, host=None, id=None, metadata=None, multiattach=None, name=None, region=None, size=None, source_volume_id=None, status=None, volume_type=None):
+    def __init__(__self__, attachments=None, bootable=None, host=None, id=None, metadata=None, name=None, region=None, size=None, source_volume_id=None, status=None, volume_type=None):
         if attachments and not isinstance(attachments, list):
             raise TypeError("Expected argument 'attachments' to be a list")
         pulumi.set(__self__, "attachments", attachments)
@@ -38,9 +38,6 @@ def __init__(__self__, attachments=None, bootable=None, host=None, id=None, meta
         if metadata and not isinstance(metadata, dict):
             raise TypeError("Expected argument 'metadata' to be a dict")
         pulumi.set(__self__, "metadata", metadata)
-        if multiattach and not isinstance(multiattach, bool):
-            raise TypeError("Expected argument 'multiattach' to be a bool")
-        pulumi.set(__self__, "multiattach", multiattach)
         if name and not isinstance(name, str):
             raise TypeError("Expected argument 'name' to be a str")
         pulumi.set(__self__, "name", name)
@@ -102,14 +99,6 @@ def metadata(self) -> Mapping[str, Any]:
         """
         return pulumi.get(self, "metadata")
 
-    @property
-    @pulumi.getter
-    def multiattach(self) -> bool:
-        """
-        Indicates if the volume can be attached to more then one server.
-        """
-        return pulumi.get(self, "multiattach")
-
     @property
     @pulumi.getter
     def name(self) -> str:
@@ -170,7 +159,6 @@ def __await__(self):
             host=self.host,
             id=self.id,
             metadata=self.metadata,
-            multiattach=self.multiattach,
             name=self.name,
             region=self.region,
             size=self.size,
@@ -226,7 +214,6 @@ def get_volume_v3(bootable: Optional[str] = None,
         host=pulumi.get(__ret__, 'host'),
         id=pulumi.get(__ret__, 'id'),
         metadata=pulumi.get(__ret__, 'metadata'),
-        multiattach=pulumi.get(__ret__, 'multiattach'),
         name=pulumi.get(__ret__, 'name'),
         region=pulumi.get(__ret__, 'region'),
         size=pulumi.get(__ret__, 'size'),
diff --git a/sdk/python/pulumi_openstack/blockstorage/volume.py b/sdk/python/pulumi_openstack/blockstorage/volume.py
index 69f068eab..df1f2182a 100644
--- a/sdk/python/pulumi_openstack/blockstorage/volume.py
+++ b/sdk/python/pulumi_openstack/blockstorage/volume.py
@@ -24,7 +24,6 @@ def __init__(__self__, *,
                  enable_online_resize: Optional[pulumi.Input[bool]] = None,
                  image_id: Optional[pulumi.Input[str]] = None,
                  metadata: Optional[pulumi.Input[Mapping[str, Any]]] = None,
-                 multiattach: Optional[pulumi.Input[bool]] = None,
                  name: Optional[pulumi.Input[str]] = None,
                  region: Optional[pulumi.Input[str]] = None,
                  scheduler_hints: Optional[pulumi.Input[Sequence[pulumi.Input['VolumeSchedulerHintArgs']]]] = None,
@@ -52,7 +51,6 @@ def __init__(__self__, *,
                creates a new volume.
         :param pulumi.Input[Mapping[str, Any]] metadata: Metadata key/value pairs to associate with the volume.
                Changing this updates the existing volume metadata.
-        :param pulumi.Input[bool] multiattach: (Optional) Allow the volume to be attached to more than one Compute instance.
         :param pulumi.Input[str] name: A unique name for the volume. Changing this updates the
                volume's name.
         :param pulumi.Input[str] region: The region in which to create the volume. If
@@ -85,11 +83,6 @@ def __init__(__self__, *,
             pulumi.set(__self__, "image_id", image_id)
         if metadata is not None:
             pulumi.set(__self__, "metadata", metadata)
-        if multiattach is not None:
-            warnings.warn("""multiattach parameter has been deprecated and removed on Openstack Bobcat. The default behavior is to use multiattach enabled volume types""", DeprecationWarning)
-            pulumi.log.warn("""multiattach is deprecated: multiattach parameter has been deprecated and removed on Openstack Bobcat. The default behavior is to use multiattach enabled volume types""")
-        if multiattach is not None:
-            pulumi.set(__self__, "multiattach", multiattach)
         if name is not None:
             pulumi.set(__self__, "name", name)
         if region is not None:
@@ -211,21 +204,6 @@ def metadata(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
     def metadata(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
         pulumi.set(self, "metadata", value)
 
-    @property
-    @pulumi.getter
-    def multiattach(self) -> Optional[pulumi.Input[bool]]:
-        """
-        (Optional) Allow the volume to be attached to more than one Compute instance.
-        """
-        warnings.warn("""multiattach parameter has been deprecated and removed on Openstack Bobcat. The default behavior is to use multiattach enabled volume types""", DeprecationWarning)
-        pulumi.log.warn("""multiattach is deprecated: multiattach parameter has been deprecated and removed on Openstack Bobcat. The default behavior is to use multiattach enabled volume types""")
-
-        return pulumi.get(self, "multiattach")
-
-    @multiattach.setter
-    def multiattach(self, value: Optional[pulumi.Input[bool]]):
-        pulumi.set(self, "multiattach", value)
-
     @property
     @pulumi.getter
     def name(self) -> Optional[pulumi.Input[str]]:
@@ -331,7 +309,6 @@ def __init__(__self__, *,
                  enable_online_resize: Optional[pulumi.Input[bool]] = None,
                  image_id: Optional[pulumi.Input[str]] = None,
                  metadata: Optional[pulumi.Input[Mapping[str, Any]]] = None,
-                 multiattach: Optional[pulumi.Input[bool]] = None,
                  name: Optional[pulumi.Input[str]] = None,
                  region: Optional[pulumi.Input[str]] = None,
                  scheduler_hints: Optional[pulumi.Input[Sequence[pulumi.Input['VolumeSchedulerHintArgs']]]] = None,
@@ -362,7 +339,6 @@ def __init__(__self__, *,
                creates a new volume.
         :param pulumi.Input[Mapping[str, Any]] metadata: Metadata key/value pairs to associate with the volume.
                Changing this updates the existing volume metadata.
-        :param pulumi.Input[bool] multiattach: (Optional) Allow the volume to be attached to more than one Compute instance.
         :param pulumi.Input[str] name: A unique name for the volume. Changing this updates the
                volume's name.
         :param pulumi.Input[str] region: The region in which to create the volume. If
@@ -397,11 +373,6 @@ def __init__(__self__, *,
             pulumi.set(__self__, "image_id", image_id)
         if metadata is not None:
             pulumi.set(__self__, "metadata", metadata)
-        if multiattach is not None:
-            warnings.warn("""multiattach parameter has been deprecated and removed on Openstack Bobcat. The default behavior is to use multiattach enabled volume types""", DeprecationWarning)
-            pulumi.log.warn("""multiattach is deprecated: multiattach parameter has been deprecated and removed on Openstack Bobcat. The default behavior is to use multiattach enabled volume types""")
-        if multiattach is not None:
-            pulumi.set(__self__, "multiattach", multiattach)
         if name is not None:
             pulumi.set(__self__, "name", name)
         if region is not None:
@@ -527,21 +498,6 @@ def metadata(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
     def metadata(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
         pulumi.set(self, "metadata", value)
 
-    @property
-    @pulumi.getter
-    def multiattach(self) -> Optional[pulumi.Input[bool]]:
-        """
-        (Optional) Allow the volume to be attached to more than one Compute instance.
-        """
-        warnings.warn("""multiattach parameter has been deprecated and removed on Openstack Bobcat. The default behavior is to use multiattach enabled volume types""", DeprecationWarning)
-        pulumi.log.warn("""multiattach is deprecated: multiattach parameter has been deprecated and removed on Openstack Bobcat. The default behavior is to use multiattach enabled volume types""")
-
-        return pulumi.get(self, "multiattach")
-
-    @multiattach.setter
-    def multiattach(self, value: Optional[pulumi.Input[bool]]):
-        pulumi.set(self, "multiattach", value)
-
     @property
     @pulumi.getter
     def name(self) -> Optional[pulumi.Input[str]]:
@@ -660,7 +616,6 @@ def __init__(__self__,
                  enable_online_resize: Optional[pulumi.Input[bool]] = None,
                  image_id: Optional[pulumi.Input[str]] = None,
                  metadata: Optional[pulumi.Input[Mapping[str, Any]]] = None,
-                 multiattach: Optional[pulumi.Input[bool]] = None,
                  name: Optional[pulumi.Input[str]] = None,
                  region: Optional[pulumi.Input[str]] = None,
                  scheduler_hints: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['VolumeSchedulerHintArgs']]]]] = None,
@@ -713,7 +668,6 @@ def __init__(__self__,
                creates a new volume.
         :param pulumi.Input[Mapping[str, Any]] metadata: Metadata key/value pairs to associate with the volume.
                Changing this updates the existing volume metadata.
-        :param pulumi.Input[bool] multiattach: (Optional) Allow the volume to be attached to more than one Compute instance.
         :param pulumi.Input[str] name: A unique name for the volume. Changing this updates the
                volume's name.
         :param pulumi.Input[str] region: The region in which to create the volume. If
@@ -784,7 +738,6 @@ def _internal_init(__self__,
                  enable_online_resize: Optional[pulumi.Input[bool]] = None,
                  image_id: Optional[pulumi.Input[str]] = None,
                  metadata: Optional[pulumi.Input[Mapping[str, Any]]] = None,
-                 multiattach: Optional[pulumi.Input[bool]] = None,
                  name: Optional[pulumi.Input[str]] = None,
                  region: Optional[pulumi.Input[str]] = None,
                  scheduler_hints: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['VolumeSchedulerHintArgs']]]]] = None,
@@ -809,7 +762,6 @@ def _internal_init(__self__,
             __props__.__dict__["enable_online_resize"] = enable_online_resize
             __props__.__dict__["image_id"] = image_id
             __props__.__dict__["metadata"] = metadata
-            __props__.__dict__["multiattach"] = multiattach
             __props__.__dict__["name"] = name
             __props__.__dict__["region"] = region
             __props__.__dict__["scheduler_hints"] = scheduler_hints
@@ -839,7 +791,6 @@ def get(resource_name: str,
             enable_online_resize: Optional[pulumi.Input[bool]] = None,
             image_id: Optional[pulumi.Input[str]] = None,
             metadata: Optional[pulumi.Input[Mapping[str, Any]]] = None,
-            multiattach: Optional[pulumi.Input[bool]] = None,
             name: Optional[pulumi.Input[str]] = None,
             region: Optional[pulumi.Input[str]] = None,
             scheduler_hints: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['VolumeSchedulerHintArgs']]]]] = None,
@@ -875,7 +826,6 @@ def get(resource_name: str,
                creates a new volume.
         :param pulumi.Input[Mapping[str, Any]] metadata: Metadata key/value pairs to associate with the volume.
                Changing this updates the existing volume metadata.
-        :param pulumi.Input[bool] multiattach: (Optional) Allow the volume to be attached to more than one Compute instance.
         :param pulumi.Input[str] name: A unique name for the volume. Changing this updates the
                volume's name.
         :param pulumi.Input[str] region: The region in which to create the volume. If
@@ -906,7 +856,6 @@ def get(resource_name: str,
         __props__.__dict__["enable_online_resize"] = enable_online_resize
         __props__.__dict__["image_id"] = image_id
         __props__.__dict__["metadata"] = metadata
-        __props__.__dict__["multiattach"] = multiattach
         __props__.__dict__["name"] = name
         __props__.__dict__["region"] = region
         __props__.__dict__["scheduler_hints"] = scheduler_hints
@@ -993,17 +942,6 @@ def metadata(self) -> pulumi.Output[Mapping[str, Any]]:
         """
         return pulumi.get(self, "metadata")
 
-    @property
-    @pulumi.getter
-    def multiattach(self) -> pulumi.Output[Optional[bool]]:
-        """
-        (Optional) Allow the volume to be attached to more than one Compute instance.
-        """
-        warnings.warn("""multiattach parameter has been deprecated and removed on Openstack Bobcat. The default behavior is to use multiattach enabled volume types""", DeprecationWarning)
-        pulumi.log.warn("""multiattach is deprecated: multiattach parameter has been deprecated and removed on Openstack Bobcat. The default behavior is to use multiattach enabled volume types""")
-
-        return pulumi.get(self, "multiattach")
-
     @property
     @pulumi.getter
     def name(self) -> pulumi.Output[str]:
diff --git a/sdk/python/pulumi_openstack/blockstorage/volume_attach_v2.py b/sdk/python/pulumi_openstack/blockstorage/volume_attach_v2.py
index 092a54511..13fda7159 100644
--- a/sdk/python/pulumi_openstack/blockstorage/volume_attach_v2.py
+++ b/sdk/python/pulumi_openstack/blockstorage/volume_attach_v2.py
@@ -19,7 +19,6 @@ def __init__(__self__, *,
                  attach_mode: Optional[pulumi.Input[str]] = None,
                  device: Optional[pulumi.Input[str]] = None,
                  initiator: Optional[pulumi.Input[str]] = None,
-                 instance_id: Optional[pulumi.Input[str]] = None,
                  ip_address: Optional[pulumi.Input[str]] = None,
                  multipath: Optional[pulumi.Input[bool]] = None,
                  os_type: Optional[pulumi.Input[str]] = None,
@@ -58,11 +57,6 @@ def __init__(__self__, *,
             pulumi.set(__self__, "device", device)
         if initiator is not None:
             pulumi.set(__self__, "initiator", initiator)
-        if instance_id is not None:
-            warnings.warn("""instance_id is no longer used in this resource""", DeprecationWarning)
-            pulumi.log.warn("""instance_id is deprecated: instance_id is no longer used in this resource""")
-        if instance_id is not None:
-            pulumi.set(__self__, "instance_id", instance_id)
         if ip_address is not None:
             pulumi.set(__self__, "ip_address", ip_address)
         if multipath is not None:
@@ -142,18 +136,6 @@ def initiator(self) -> Optional[pulumi.Input[str]]:
     def initiator(self, value: Optional[pulumi.Input[str]]):
         pulumi.set(self, "initiator", value)
 
-    @property
-    @pulumi.getter(name="instanceId")
-    def instance_id(self) -> Optional[pulumi.Input[str]]:
-        warnings.warn("""instance_id is no longer used in this resource""", DeprecationWarning)
-        pulumi.log.warn("""instance_id is deprecated: instance_id is no longer used in this resource""")
-
-        return pulumi.get(self, "instance_id")
-
-    @instance_id.setter
-    def instance_id(self, value: Optional[pulumi.Input[str]]):
-        pulumi.set(self, "instance_id", value)
-
     @property
     @pulumi.getter(name="ipAddress")
     def ip_address(self) -> Optional[pulumi.Input[str]]:
@@ -252,7 +234,6 @@ def __init__(__self__, *,
                  driver_volume_type: Optional[pulumi.Input[str]] = None,
                  host_name: Optional[pulumi.Input[str]] = None,
                  initiator: Optional[pulumi.Input[str]] = None,
-                 instance_id: Optional[pulumi.Input[str]] = None,
                  ip_address: Optional[pulumi.Input[str]] = None,
                  mount_point_base: Optional[pulumi.Input[str]] = None,
                  multipath: Optional[pulumi.Input[bool]] = None,
@@ -302,11 +283,6 @@ def __init__(__self__, *,
             pulumi.set(__self__, "host_name", host_name)
         if initiator is not None:
             pulumi.set(__self__, "initiator", initiator)
-        if instance_id is not None:
-            warnings.warn("""instance_id is no longer used in this resource""", DeprecationWarning)
-            pulumi.log.warn("""instance_id is deprecated: instance_id is no longer used in this resource""")
-        if instance_id is not None:
-            pulumi.set(__self__, "instance_id", instance_id)
         if ip_address is not None:
             pulumi.set(__self__, "ip_address", ip_address)
         if mount_point_base is not None:
@@ -404,18 +380,6 @@ def initiator(self) -> Optional[pulumi.Input[str]]:
     def initiator(self, value: Optional[pulumi.Input[str]]):
         pulumi.set(self, "initiator", value)
 
-    @property
-    @pulumi.getter(name="instanceId")
-    def instance_id(self) -> Optional[pulumi.Input[str]]:
-        warnings.warn("""instance_id is no longer used in this resource""", DeprecationWarning)
-        pulumi.log.warn("""instance_id is deprecated: instance_id is no longer used in this resource""")
-
-        return pulumi.get(self, "instance_id")
-
-    @instance_id.setter
-    def instance_id(self, value: Optional[pulumi.Input[str]]):
-        pulumi.set(self, "instance_id", value)
-
     @property
     @pulumi.getter(name="ipAddress")
     def ip_address(self) -> Optional[pulumi.Input[str]]:
@@ -538,7 +502,6 @@ def __init__(__self__,
                  device: Optional[pulumi.Input[str]] = None,
                  host_name: Optional[pulumi.Input[str]] = None,
                  initiator: Optional[pulumi.Input[str]] = None,
-                 instance_id: Optional[pulumi.Input[str]] = None,
                  ip_address: Optional[pulumi.Input[str]] = None,
                  multipath: Optional[pulumi.Input[bool]] = None,
                  os_type: Optional[pulumi.Input[str]] = None,
@@ -712,7 +675,6 @@ def _internal_init(__self__,
                  device: Optional[pulumi.Input[str]] = None,
                  host_name: Optional[pulumi.Input[str]] = None,
                  initiator: Optional[pulumi.Input[str]] = None,
-                 instance_id: Optional[pulumi.Input[str]] = None,
                  ip_address: Optional[pulumi.Input[str]] = None,
                  multipath: Optional[pulumi.Input[bool]] = None,
                  os_type: Optional[pulumi.Input[str]] = None,
@@ -736,7 +698,6 @@ def _internal_init(__self__,
                 raise TypeError("Missing required property 'host_name'")
             __props__.__dict__["host_name"] = host_name
             __props__.__dict__["initiator"] = initiator
-            __props__.__dict__["instance_id"] = instance_id
             __props__.__dict__["ip_address"] = ip_address
             __props__.__dict__["multipath"] = multipath
             __props__.__dict__["os_type"] = os_type
@@ -768,7 +729,6 @@ def get(resource_name: str,
             driver_volume_type: Optional[pulumi.Input[str]] = None,
             host_name: Optional[pulumi.Input[str]] = None,
             initiator: Optional[pulumi.Input[str]] = None,
-            instance_id: Optional[pulumi.Input[str]] = None,
             ip_address: Optional[pulumi.Input[str]] = None,
             mount_point_base: Optional[pulumi.Input[str]] = None,
             multipath: Optional[pulumi.Input[bool]] = None,
@@ -821,7 +781,6 @@ def get(resource_name: str,
         __props__.__dict__["driver_volume_type"] = driver_volume_type
         __props__.__dict__["host_name"] = host_name
         __props__.__dict__["initiator"] = initiator
-        __props__.__dict__["instance_id"] = instance_id
         __props__.__dict__["ip_address"] = ip_address
         __props__.__dict__["mount_point_base"] = mount_point_base
         __props__.__dict__["multipath"] = multipath
@@ -887,14 +846,6 @@ def initiator(self) -> pulumi.Output[Optional[str]]:
         """
         return pulumi.get(self, "initiator")
 
-    @property
-    @pulumi.getter(name="instanceId")
-    def instance_id(self) -> pulumi.Output[Optional[str]]:
-        warnings.warn("""instance_id is no longer used in this resource""", DeprecationWarning)
-        pulumi.log.warn("""instance_id is deprecated: instance_id is no longer used in this resource""")
-
-        return pulumi.get(self, "instance_id")
-
     @property
     @pulumi.getter(name="ipAddress")
     def ip_address(self) -> pulumi.Output[Optional[str]]:
diff --git a/sdk/python/pulumi_openstack/blockstorage/volume_type_v3.py b/sdk/python/pulumi_openstack/blockstorage/volume_type_v3.py
index c4a6b73f5..874e99e81 100644
--- a/sdk/python/pulumi_openstack/blockstorage/volume_type_v3.py
+++ b/sdk/python/pulumi_openstack/blockstorage/volume_type_v3.py
@@ -225,6 +225,8 @@ def __init__(__self__,
 
         ## Example Usage
 
+        ### Basic Volume Type
+
         ```python
         import pulumi
         import pulumi_openstack as openstack
@@ -238,6 +240,20 @@ def __init__(__self__,
             })
         ```
 
+        ### Volume Type with multiattach enabled
+
+        ```python
+        import pulumi
+        import pulumi_openstack as openstack
+
+        multiattach = openstack.blockstorage.VolumeTypeV3("multiattach",
+            name="multiattach",
+            description="Multiattach-enabled volume type",
+            extra_specs={
+                "multiattach": " True",
+            })
+        ```
+
         ## Import
 
         Volume types can be imported using the `volume_type_id`, e.g.
@@ -272,6 +288,8 @@ def __init__(__self__,
 
         ## Example Usage
 
+        ### Basic Volume Type
+
         ```python
         import pulumi
         import pulumi_openstack as openstack
@@ -285,6 +303,20 @@ def __init__(__self__,
             })
         ```
 
+        ### Volume Type with multiattach enabled
+
+        ```python
+        import pulumi
+        import pulumi_openstack as openstack
+
+        multiattach = openstack.blockstorage.VolumeTypeV3("multiattach",
+            name="multiattach",
+            description="Multiattach-enabled volume type",
+            extra_specs={
+                "multiattach": " True",
+            })
+        ```
+
         ## Import
 
         Volume types can be imported using the `volume_type_id`, e.g.
diff --git a/sdk/python/pulumi_openstack/compute/_inputs.py b/sdk/python/pulumi_openstack/compute/_inputs.py
index 10eb07aa0..3e4b642a3 100644
--- a/sdk/python/pulumi_openstack/compute/_inputs.py
+++ b/sdk/python/pulumi_openstack/compute/_inputs.py
@@ -15,7 +15,6 @@
     'InstancePersonalityArgs',
     'InstanceSchedulerHintArgs',
     'InstanceVendorOptionsArgs',
-    'InstanceVolumeArgs',
     'SecGroupRuleArgs',
     'ServerGroupRulesArgs',
     'VolumeAttachVendorOptionsArgs',
@@ -252,7 +251,6 @@ def __init__(__self__, *,
                  access_network: Optional[pulumi.Input[bool]] = None,
                  fixed_ip_v4: Optional[pulumi.Input[str]] = None,
                  fixed_ip_v6: Optional[pulumi.Input[str]] = None,
-                 floating_ip: Optional[pulumi.Input[str]] = None,
                  mac: Optional[pulumi.Input[str]] = None,
                  name: Optional[pulumi.Input[str]] = None,
                  port: Optional[pulumi.Input[str]] = None,
@@ -275,11 +273,6 @@ def __init__(__self__, *,
             pulumi.set(__self__, "fixed_ip_v4", fixed_ip_v4)
         if fixed_ip_v6 is not None:
             pulumi.set(__self__, "fixed_ip_v6", fixed_ip_v6)
-        if floating_ip is not None:
-            warnings.warn("""Use the compute.FloatingIpAssociate resource instead""", DeprecationWarning)
-            pulumi.log.warn("""floating_ip is deprecated: Use the compute.FloatingIpAssociate resource instead""")
-        if floating_ip is not None:
-            pulumi.set(__self__, "floating_ip", floating_ip)
         if mac is not None:
             pulumi.set(__self__, "mac", mac)
         if name is not None:
@@ -324,18 +317,6 @@ def fixed_ip_v6(self) -> Optional[pulumi.Input[str]]:
     def fixed_ip_v6(self, value: Optional[pulumi.Input[str]]):
         pulumi.set(self, "fixed_ip_v6", value)
 
-    @property
-    @pulumi.getter(name="floatingIp")
-    def floating_ip(self) -> Optional[pulumi.Input[str]]:
-        warnings.warn("""Use the compute.FloatingIpAssociate resource instead""", DeprecationWarning)
-        pulumi.log.warn("""floating_ip is deprecated: Use the compute.FloatingIpAssociate resource instead""")
-
-        return pulumi.get(self, "floating_ip")
-
-    @floating_ip.setter
-    def floating_ip(self, value: Optional[pulumi.Input[str]]):
-        pulumi.set(self, "floating_ip", value)
-
     @property
     @pulumi.getter
     def mac(self) -> Optional[pulumi.Input[str]]:
@@ -442,7 +423,8 @@ def __init__(__self__, *,
         :param pulumi.Input[Sequence[pulumi.Input[str]]] different_hosts: A list of instance UUIDs. The instance will
                be scheduled on a different host than all other instances.
         :param pulumi.Input[str] group: A UUID of a Server Group. The instance will be placed
-               into that group.
+               into that group. See reference
+               for details on managing servergroup resources
         :param pulumi.Input[Sequence[pulumi.Input[str]]] queries: A conditional query that a compute node must pass in
                order to host an instance. The query must use the `JsonFilter` syntax
                which is described
@@ -530,7 +512,8 @@ def different_hosts(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str
     def group(self) -> Optional[pulumi.Input[str]]:
         """
         A UUID of a Server Group. The instance will be placed
-        into that group.
+        into that group. See reference
+        for details on managing servergroup resources
         """
         return pulumi.get(self, "group")
 
@@ -634,46 +617,6 @@ def ignore_resize_confirmation(self, value: Optional[pulumi.Input[bool]]):
         pulumi.set(self, "ignore_resize_confirmation", value)
 
 
-@pulumi.input_type
-class InstanceVolumeArgs:
-    def __init__(__self__, *,
-                 volume_id: pulumi.Input[str],
-                 device: Optional[pulumi.Input[str]] = None,
-                 id: Optional[pulumi.Input[str]] = None):
-        pulumi.set(__self__, "volume_id", volume_id)
-        if device is not None:
-            pulumi.set(__self__, "device", device)
-        if id is not None:
-            pulumi.set(__self__, "id", id)
-
-    @property
-    @pulumi.getter(name="volumeId")
-    def volume_id(self) -> pulumi.Input[str]:
-        return pulumi.get(self, "volume_id")
-
-    @volume_id.setter
-    def volume_id(self, value: pulumi.Input[str]):
-        pulumi.set(self, "volume_id", value)
-
-    @property
-    @pulumi.getter
-    def device(self) -> Optional[pulumi.Input[str]]:
-        return pulumi.get(self, "device")
-
-    @device.setter
-    def device(self, value: Optional[pulumi.Input[str]]):
-        pulumi.set(self, "device", value)
-
-    @property
-    @pulumi.getter
-    def id(self) -> Optional[pulumi.Input[str]]:
-        return pulumi.get(self, "id")
-
-    @id.setter
-    def id(self, value: Optional[pulumi.Input[str]]):
-        pulumi.set(self, "id", value)
-
-
 @pulumi.input_type
 class SecGroupRuleArgs:
     def __init__(__self__, *,
diff --git a/sdk/python/pulumi_openstack/compute/instance.py b/sdk/python/pulumi_openstack/compute/instance.py
index f206dd7b0..6d49f3d84 100644
--- a/sdk/python/pulumi_openstack/compute/instance.py
+++ b/sdk/python/pulumi_openstack/compute/instance.py
@@ -25,7 +25,6 @@ def __init__(__self__, *,
                  config_drive: Optional[pulumi.Input[bool]] = None,
                  flavor_id: Optional[pulumi.Input[str]] = None,
                  flavor_name: Optional[pulumi.Input[str]] = None,
-                 floating_ip: Optional[pulumi.Input[str]] = None,
                  force_delete: Optional[pulumi.Input[bool]] = None,
                  image_id: Optional[pulumi.Input[str]] = None,
                  image_name: Optional[pulumi.Input[str]] = None,
@@ -42,8 +41,7 @@ def __init__(__self__, *,
                  stop_before_destroy: Optional[pulumi.Input[bool]] = None,
                  tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                  user_data: Optional[pulumi.Input[str]] = None,
-                 vendor_options: Optional[pulumi.Input['InstanceVendorOptionsArgs']] = None,
-                 volumes: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceVolumeArgs']]]] = None):
+                 vendor_options: Optional[pulumi.Input['InstanceVendorOptionsArgs']] = None):
         """
         The set of arguments for constructing a Instance resource.
         :param pulumi.Input[str] access_ip_v4: The first detected Fixed IPv4 address.
@@ -140,11 +138,6 @@ def __init__(__self__, *,
             pulumi.set(__self__, "flavor_id", flavor_id)
         if flavor_name is not None:
             pulumi.set(__self__, "flavor_name", flavor_name)
-        if floating_ip is not None:
-            warnings.warn("""Use the compute.FloatingIpAssociate resource instead""", DeprecationWarning)
-            pulumi.log.warn("""floating_ip is deprecated: Use the compute.FloatingIpAssociate resource instead""")
-        if floating_ip is not None:
-            pulumi.set(__self__, "floating_ip", floating_ip)
         if force_delete is not None:
             pulumi.set(__self__, "force_delete", force_delete)
         if image_id is not None:
@@ -179,11 +172,6 @@ def __init__(__self__, *,
             pulumi.set(__self__, "user_data", user_data)
         if vendor_options is not None:
             pulumi.set(__self__, "vendor_options", vendor_options)
-        if volumes is not None:
-            warnings.warn("""Use block_device or compute.VolumeAttach instead""", DeprecationWarning)
-            pulumi.log.warn("""volumes is deprecated: Use block_device or compute.VolumeAttach instead""")
-        if volumes is not None:
-            pulumi.set(__self__, "volumes", volumes)
 
     @property
     @pulumi.getter(name="accessIpV4")
@@ -309,18 +297,6 @@ def flavor_name(self) -> Optional[pulumi.Input[str]]:
     def flavor_name(self, value: Optional[pulumi.Input[str]]):
         pulumi.set(self, "flavor_name", value)
 
-    @property
-    @pulumi.getter(name="floatingIp")
-    def floating_ip(self) -> Optional[pulumi.Input[str]]:
-        warnings.warn("""Use the compute.FloatingIpAssociate resource instead""", DeprecationWarning)
-        pulumi.log.warn("""floating_ip is deprecated: Use the compute.FloatingIpAssociate resource instead""")
-
-        return pulumi.get(self, "floating_ip")
-
-    @floating_ip.setter
-    def floating_ip(self, value: Optional[pulumi.Input[str]]):
-        pulumi.set(self, "floating_ip", value)
-
     @property
     @pulumi.getter(name="forceDelete")
     def force_delete(self) -> Optional[pulumi.Input[bool]]:
@@ -558,18 +534,6 @@ def vendor_options(self) -> Optional[pulumi.Input['InstanceVendorOptionsArgs']]:
     def vendor_options(self, value: Optional[pulumi.Input['InstanceVendorOptionsArgs']]):
         pulumi.set(self, "vendor_options", value)
 
-    @property
-    @pulumi.getter
-    def volumes(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InstanceVolumeArgs']]]]:
-        warnings.warn("""Use block_device or compute.VolumeAttach instead""", DeprecationWarning)
-        pulumi.log.warn("""volumes is deprecated: Use block_device or compute.VolumeAttach instead""")
-
-        return pulumi.get(self, "volumes")
-
-    @volumes.setter
-    def volumes(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceVolumeArgs']]]]):
-        pulumi.set(self, "volumes", value)
-
 
 @pulumi.input_type
 class _InstanceState:
@@ -586,7 +550,6 @@ def __init__(__self__, *,
                  created: Optional[pulumi.Input[str]] = None,
                  flavor_id: Optional[pulumi.Input[str]] = None,
                  flavor_name: Optional[pulumi.Input[str]] = None,
-                 floating_ip: Optional[pulumi.Input[str]] = None,
                  force_delete: Optional[pulumi.Input[bool]] = None,
                  image_id: Optional[pulumi.Input[str]] = None,
                  image_name: Optional[pulumi.Input[str]] = None,
@@ -604,8 +567,7 @@ def __init__(__self__, *,
                  tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                  updated: Optional[pulumi.Input[str]] = None,
                  user_data: Optional[pulumi.Input[str]] = None,
-                 vendor_options: Optional[pulumi.Input['InstanceVendorOptionsArgs']] = None,
-                 volumes: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceVolumeArgs']]]] = None):
+                 vendor_options: Optional[pulumi.Input['InstanceVendorOptionsArgs']] = None):
         """
         Input properties used for looking up and filtering Instance resources.
         :param pulumi.Input[str] access_ip_v4: The first detected Fixed IPv4 address.
@@ -712,11 +674,6 @@ def __init__(__self__, *,
             pulumi.set(__self__, "flavor_id", flavor_id)
         if flavor_name is not None:
             pulumi.set(__self__, "flavor_name", flavor_name)
-        if floating_ip is not None:
-            warnings.warn("""Use the compute.FloatingIpAssociate resource instead""", DeprecationWarning)
-            pulumi.log.warn("""floating_ip is deprecated: Use the compute.FloatingIpAssociate resource instead""")
-        if floating_ip is not None:
-            pulumi.set(__self__, "floating_ip", floating_ip)
         if force_delete is not None:
             pulumi.set(__self__, "force_delete", force_delete)
         if image_id is not None:
@@ -753,11 +710,6 @@ def __init__(__self__, *,
             pulumi.set(__self__, "user_data", user_data)
         if vendor_options is not None:
             pulumi.set(__self__, "vendor_options", vendor_options)
-        if volumes is not None:
-            warnings.warn("""Use block_device or compute.VolumeAttach instead""", DeprecationWarning)
-            pulumi.log.warn("""volumes is deprecated: Use block_device or compute.VolumeAttach instead""")
-        if volumes is not None:
-            pulumi.set(__self__, "volumes", volumes)
 
     @property
     @pulumi.getter(name="accessIpV4")
@@ -917,18 +869,6 @@ def flavor_name(self) -> Optional[pulumi.Input[str]]:
     def flavor_name(self, value: Optional[pulumi.Input[str]]):
         pulumi.set(self, "flavor_name", value)
 
-    @property
-    @pulumi.getter(name="floatingIp")
-    def floating_ip(self) -> Optional[pulumi.Input[str]]:
-        warnings.warn("""Use the compute.FloatingIpAssociate resource instead""", DeprecationWarning)
-        pulumi.log.warn("""floating_ip is deprecated: Use the compute.FloatingIpAssociate resource instead""")
-
-        return pulumi.get(self, "floating_ip")
-
-    @floating_ip.setter
-    def floating_ip(self, value: Optional[pulumi.Input[str]]):
-        pulumi.set(self, "floating_ip", value)
-
     @property
     @pulumi.getter(name="forceDelete")
     def force_delete(self) -> Optional[pulumi.Input[bool]]:
@@ -1178,18 +1118,6 @@ def vendor_options(self) -> Optional[pulumi.Input['InstanceVendorOptionsArgs']]:
     def vendor_options(self, value: Optional[pulumi.Input['InstanceVendorOptionsArgs']]):
         pulumi.set(self, "vendor_options", value)
 
-    @property
-    @pulumi.getter
-    def volumes(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InstanceVolumeArgs']]]]:
-        warnings.warn("""Use block_device or compute.VolumeAttach instead""", DeprecationWarning)
-        pulumi.log.warn("""volumes is deprecated: Use block_device or compute.VolumeAttach instead""")
-
-        return pulumi.get(self, "volumes")
-
-    @volumes.setter
-    def volumes(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceVolumeArgs']]]]):
-        pulumi.set(self, "volumes", value)
-
 
 class Instance(pulumi.CustomResource):
     @overload
@@ -1205,7 +1133,6 @@ def __init__(__self__,
                  config_drive: Optional[pulumi.Input[bool]] = None,
                  flavor_id: Optional[pulumi.Input[str]] = None,
                  flavor_name: Optional[pulumi.Input[str]] = None,
-                 floating_ip: Optional[pulumi.Input[str]] = None,
                  force_delete: Optional[pulumi.Input[bool]] = None,
                  image_id: Optional[pulumi.Input[str]] = None,
                  image_name: Optional[pulumi.Input[str]] = None,
@@ -1223,7 +1150,6 @@ def __init__(__self__,
                  tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                  user_data: Optional[pulumi.Input[str]] = None,
                  vendor_options: Optional[pulumi.Input[pulumi.InputType['InstanceVendorOptionsArgs']]] = None,
-                 volumes: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['InstanceVolumeArgs']]]]] = None,
                  __props__=None):
         """
         Create a Instance resource with the given unique name, props, and options.
@@ -1337,7 +1263,6 @@ def _internal_init(__self__,
                  config_drive: Optional[pulumi.Input[bool]] = None,
                  flavor_id: Optional[pulumi.Input[str]] = None,
                  flavor_name: Optional[pulumi.Input[str]] = None,
-                 floating_ip: Optional[pulumi.Input[str]] = None,
                  force_delete: Optional[pulumi.Input[bool]] = None,
                  image_id: Optional[pulumi.Input[str]] = None,
                  image_name: Optional[pulumi.Input[str]] = None,
@@ -1355,7 +1280,6 @@ def _internal_init(__self__,
                  tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                  user_data: Optional[pulumi.Input[str]] = None,
                  vendor_options: Optional[pulumi.Input[pulumi.InputType['InstanceVendorOptionsArgs']]] = None,
-                 volumes: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['InstanceVolumeArgs']]]]] = None,
                  __props__=None):
         opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
         if not isinstance(opts, pulumi.ResourceOptions):
@@ -1374,7 +1298,6 @@ def _internal_init(__self__,
             __props__.__dict__["config_drive"] = config_drive
             __props__.__dict__["flavor_id"] = flavor_id
             __props__.__dict__["flavor_name"] = flavor_name
-            __props__.__dict__["floating_ip"] = floating_ip
             __props__.__dict__["force_delete"] = force_delete
             __props__.__dict__["image_id"] = image_id
             __props__.__dict__["image_name"] = image_name
@@ -1392,7 +1315,6 @@ def _internal_init(__self__,
             __props__.__dict__["tags"] = tags
             __props__.__dict__["user_data"] = user_data
             __props__.__dict__["vendor_options"] = vendor_options
-            __props__.__dict__["volumes"] = volumes
             __props__.__dict__["all_metadata"] = None
             __props__.__dict__["all_tags"] = None
             __props__.__dict__["created"] = None
@@ -1421,7 +1343,6 @@ def get(resource_name: str,
             created: Optional[pulumi.Input[str]] = None,
             flavor_id: Optional[pulumi.Input[str]] = None,
             flavor_name: Optional[pulumi.Input[str]] = None,
-            floating_ip: Optional[pulumi.Input[str]] = None,
             force_delete: Optional[pulumi.Input[bool]] = None,
             image_id: Optional[pulumi.Input[str]] = None,
             image_name: Optional[pulumi.Input[str]] = None,
@@ -1439,8 +1360,7 @@ def get(resource_name: str,
             tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
             updated: Optional[pulumi.Input[str]] = None,
             user_data: Optional[pulumi.Input[str]] = None,
-            vendor_options: Optional[pulumi.Input[pulumi.InputType['InstanceVendorOptionsArgs']]] = None,
-            volumes: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['InstanceVolumeArgs']]]]] = None) -> 'Instance':
+            vendor_options: Optional[pulumi.Input[pulumi.InputType['InstanceVendorOptionsArgs']]] = None) -> 'Instance':
         """
         Get an existing Instance resource's state with the given name, id, and optional extra
         properties used to qualify the lookup.
@@ -1544,7 +1464,6 @@ def get(resource_name: str,
         __props__.__dict__["created"] = created
         __props__.__dict__["flavor_id"] = flavor_id
         __props__.__dict__["flavor_name"] = flavor_name
-        __props__.__dict__["floating_ip"] = floating_ip
         __props__.__dict__["force_delete"] = force_delete
         __props__.__dict__["image_id"] = image_id
         __props__.__dict__["image_name"] = image_name
@@ -1563,7 +1482,6 @@ def get(resource_name: str,
         __props__.__dict__["updated"] = updated
         __props__.__dict__["user_data"] = user_data
         __props__.__dict__["vendor_options"] = vendor_options
-        __props__.__dict__["volumes"] = volumes
         return Instance(resource_name, opts=opts, __props__=__props__)
 
     @property
@@ -1676,14 +1594,6 @@ def flavor_name(self) -> pulumi.Output[str]:
         """
         return pulumi.get(self, "flavor_name")
 
-    @property
-    @pulumi.getter(name="floatingIp")
-    def floating_ip(self) -> pulumi.Output[Optional[str]]:
-        warnings.warn("""Use the compute.FloatingIpAssociate resource instead""", DeprecationWarning)
-        pulumi.log.warn("""floating_ip is deprecated: Use the compute.FloatingIpAssociate resource instead""")
-
-        return pulumi.get(self, "floating_ip")
-
     @property
     @pulumi.getter(name="forceDelete")
     def force_delete(self) -> pulumi.Output[Optional[bool]]:
@@ -1861,11 +1771,3 @@ def vendor_options(self) -> pulumi.Output[Optional['outputs.InstanceVendorOption
         """
         return pulumi.get(self, "vendor_options")
 
-    @property
-    @pulumi.getter
-    def volumes(self) -> pulumi.Output[Optional[Sequence['outputs.InstanceVolume']]]:
-        warnings.warn("""Use block_device or compute.VolumeAttach instead""", DeprecationWarning)
-        pulumi.log.warn("""volumes is deprecated: Use block_device or compute.VolumeAttach instead""")
-
-        return pulumi.get(self, "volumes")
-
diff --git a/sdk/python/pulumi_openstack/compute/outputs.py b/sdk/python/pulumi_openstack/compute/outputs.py
index a8149eb63..4397ab2a5 100644
--- a/sdk/python/pulumi_openstack/compute/outputs.py
+++ b/sdk/python/pulumi_openstack/compute/outputs.py
@@ -15,7 +15,6 @@
     'InstancePersonality',
     'InstanceSchedulerHint',
     'InstanceVendorOptions',
-    'InstanceVolume',
     'SecGroupRule',
     'ServerGroupRules',
     'VolumeAttachVendorOptions',
@@ -246,8 +245,6 @@ def __key_warning(key: str):
             suggest = "fixed_ip_v4"
         elif key == "fixedIpV6":
             suggest = "fixed_ip_v6"
-        elif key == "floatingIp":
-            suggest = "floating_ip"
 
         if suggest:
             pulumi.log.warn(f"Key '{key}' not found in InstanceNetwork. Access the value via the '{suggest}' property getter instead.")
@@ -264,7 +261,6 @@ def __init__(__self__, *,
                  access_network: Optional[bool] = None,
                  fixed_ip_v4: Optional[str] = None,
                  fixed_ip_v6: Optional[str] = None,
-                 floating_ip: Optional[str] = None,
                  mac: Optional[str] = None,
                  name: Optional[str] = None,
                  port: Optional[str] = None,
@@ -287,8 +283,6 @@ def __init__(__self__, *,
             pulumi.set(__self__, "fixed_ip_v4", fixed_ip_v4)
         if fixed_ip_v6 is not None:
             pulumi.set(__self__, "fixed_ip_v6", fixed_ip_v6)
-        if floating_ip is not None:
-            pulumi.set(__self__, "floating_ip", floating_ip)
         if mac is not None:
             pulumi.set(__self__, "mac", mac)
         if name is not None:
@@ -321,14 +315,6 @@ def fixed_ip_v4(self) -> Optional[str]:
     def fixed_ip_v6(self) -> Optional[str]:
         return pulumi.get(self, "fixed_ip_v6")
 
-    @property
-    @pulumi.getter(name="floatingIp")
-    def floating_ip(self) -> Optional[str]:
-        warnings.warn("""Use the compute.FloatingIpAssociate resource instead""", DeprecationWarning)
-        pulumi.log.warn("""floating_ip is deprecated: Use the compute.FloatingIpAssociate resource instead""")
-
-        return pulumi.get(self, "floating_ip")
-
     @property
     @pulumi.getter
     def mac(self) -> Optional[str]:
@@ -438,7 +424,8 @@ def __init__(__self__, *,
         :param Sequence[str] different_hosts: A list of instance UUIDs. The instance will
                be scheduled on a different host than all other instances.
         :param str group: A UUID of a Server Group. The instance will be placed
-               into that group.
+               into that group. See reference
+               for details on managing servergroup resources
         :param Sequence[str] queries: A conditional query that a compute node must pass in
                order to host an instance. The query must use the `JsonFilter` syntax
                which is described
@@ -510,7 +497,8 @@ def different_hosts(self) -> Optional[Sequence[str]]:
     def group(self) -> Optional[str]:
         """
         A UUID of a Server Group. The instance will be placed
-        into that group.
+        into that group. See reference
+        for details on managing servergroup resources
         """
         return pulumi.get(self, "group")
 
@@ -609,51 +597,6 @@ def ignore_resize_confirmation(self) -> Optional[bool]:
         return pulumi.get(self, "ignore_resize_confirmation")
 
 
-@pulumi.output_type
-class InstanceVolume(dict):
-    @staticmethod
-    def __key_warning(key: str):
-        suggest = None
-        if key == "volumeId":
-            suggest = "volume_id"
-
-        if suggest:
-            pulumi.log.warn(f"Key '{key}' not found in InstanceVolume. Access the value via the '{suggest}' property getter instead.")
-
-    def __getitem__(self, key: str) -> Any:
-        InstanceVolume.__key_warning(key)
-        return super().__getitem__(key)
-
-    def get(self, key: str, default = None) -> Any:
-        InstanceVolume.__key_warning(key)
-        return super().get(key, default)
-
-    def __init__(__self__, *,
-                 volume_id: str,
-                 device: Optional[str] = None,
-                 id: Optional[str] = None):
-        pulumi.set(__self__, "volume_id", volume_id)
-        if device is not None:
-            pulumi.set(__self__, "device", device)
-        if id is not None:
-            pulumi.set(__self__, "id", id)
-
-    @property
-    @pulumi.getter(name="volumeId")
-    def volume_id(self) -> str:
-        return pulumi.get(self, "volume_id")
-
-    @property
-    @pulumi.getter
-    def device(self) -> Optional[str]:
-        return pulumi.get(self, "device")
-
-    @property
-    @pulumi.getter
-    def id(self) -> Optional[str]:
-        return pulumi.get(self, "id")
-
-
 @pulumi.output_type
 class SecGroupRule(dict):
     @staticmethod
diff --git a/sdk/python/pulumi_openstack/compute/server_group.py b/sdk/python/pulumi_openstack/compute/server_group.py
index 0c74a39e5..02991989d 100644
--- a/sdk/python/pulumi_openstack/compute/server_group.py
+++ b/sdk/python/pulumi_openstack/compute/server_group.py
@@ -254,6 +254,16 @@ def __init__(__self__,
         test_sg = openstack.compute.ServerGroup("test-sg",
             name="my-sg",
             policies=["anti-affinity"])
+        test_instance = openstack.compute.Instance("test-instance",
+            name="my-instance",
+            image_id="ad091b52-742f-469e-8f3c-fd81cadf0743",
+            flavor_id="3",
+            scheduler_hints=[openstack.compute.InstanceSchedulerHintArgs(
+                group=test_sg.id,
+            )],
+            networks=[openstack.compute.InstanceNetworkArgs(
+                name="my_network",
+            )])
         ```
 
         ### Compute service API version 2.64 or above:
@@ -268,6 +278,16 @@ def __init__(__self__,
             rules=openstack.compute.ServerGroupRulesArgs(
                 max_server_per_host=3,
             ))
+        test_instance = openstack.compute.Instance("test-instance",
+            name="my-instance",
+            image_id="ad091b52-742f-469e-8f3c-fd81cadf0743",
+            flavor_id="3",
+            scheduler_hints=[openstack.compute.InstanceSchedulerHintArgs(
+                group=test_sg.id,
+            )],
+            networks=[openstack.compute.InstanceNetworkArgs(
+                name="my_network",
+            )])
         ```
 
         ## Policies
@@ -330,6 +350,16 @@ def __init__(__self__,
         test_sg = openstack.compute.ServerGroup("test-sg",
             name="my-sg",
             policies=["anti-affinity"])
+        test_instance = openstack.compute.Instance("test-instance",
+            name="my-instance",
+            image_id="ad091b52-742f-469e-8f3c-fd81cadf0743",
+            flavor_id="3",
+            scheduler_hints=[openstack.compute.InstanceSchedulerHintArgs(
+                group=test_sg.id,
+            )],
+            networks=[openstack.compute.InstanceNetworkArgs(
+                name="my_network",
+            )])
         ```
 
         ### Compute service API version 2.64 or above:
@@ -344,6 +374,16 @@ def __init__(__self__,
             rules=openstack.compute.ServerGroupRulesArgs(
                 max_server_per_host=3,
             ))
+        test_instance = openstack.compute.Instance("test-instance",
+            name="my-instance",
+            image_id="ad091b52-742f-469e-8f3c-fd81cadf0743",
+            flavor_id="3",
+            scheduler_hints=[openstack.compute.InstanceSchedulerHintArgs(
+                group=test_sg.id,
+            )],
+            networks=[openstack.compute.InstanceNetworkArgs(
+                name="my_network",
+            )])
         ```
 
         ## Policies
diff --git a/sdk/python/pulumi_openstack/compute/volume_attach.py b/sdk/python/pulumi_openstack/compute/volume_attach.py
index 6fa5445c1..b4eca24a5 100644
--- a/sdk/python/pulumi_openstack/compute/volume_attach.py
+++ b/sdk/python/pulumi_openstack/compute/volume_attach.py
@@ -21,6 +21,7 @@ def __init__(__self__, *,
                  device: Optional[pulumi.Input[str]] = None,
                  multiattach: Optional[pulumi.Input[bool]] = None,
                  region: Optional[pulumi.Input[str]] = None,
+                 tag: Optional[pulumi.Input[str]] = None,
                  vendor_options: Optional[pulumi.Input['VolumeAttachVendorOptionsArgs']] = None):
         """
         The set of arguments for constructing a VolumeAttach resource.
@@ -31,6 +32,9 @@ def __init__(__self__, *,
                A Compute client is needed to create a volume attachment. If omitted, the
                `region` argument of the provider is used. Changing this creates a
                new volume attachment.
+        :param pulumi.Input[str] tag: Add a device role tag that is applied to the volume when
+               attaching it to the VM. Changing this creates a new volume attachment with
+               the new tag. Requires microversion >= 2.49.
         :param pulumi.Input['VolumeAttachVendorOptionsArgs'] vendor_options: Map of additional vendor-specific options.
                Supported options are described below.
         """
@@ -42,6 +46,8 @@ def __init__(__self__, *,
             pulumi.set(__self__, "multiattach", multiattach)
         if region is not None:
             pulumi.set(__self__, "region", region)
+        if tag is not None:
+            pulumi.set(__self__, "tag", tag)
         if vendor_options is not None:
             pulumi.set(__self__, "vendor_options", vendor_options)
 
@@ -105,6 +111,20 @@ def region(self) -> Optional[pulumi.Input[str]]:
     def region(self, value: Optional[pulumi.Input[str]]):
         pulumi.set(self, "region", value)
 
+    @property
+    @pulumi.getter
+    def tag(self) -> Optional[pulumi.Input[str]]:
+        """
+        Add a device role tag that is applied to the volume when
+        attaching it to the VM. Changing this creates a new volume attachment with
+        the new tag. Requires microversion >= 2.49.
+        """
+        return pulumi.get(self, "tag")
+
+    @tag.setter
+    def tag(self, value: Optional[pulumi.Input[str]]):
+        pulumi.set(self, "tag", value)
+
     @property
     @pulumi.getter(name="vendorOptions")
     def vendor_options(self) -> Optional[pulumi.Input['VolumeAttachVendorOptionsArgs']]:
@@ -126,6 +146,7 @@ def __init__(__self__, *,
                  instance_id: Optional[pulumi.Input[str]] = None,
                  multiattach: Optional[pulumi.Input[bool]] = None,
                  region: Optional[pulumi.Input[str]] = None,
+                 tag: Optional[pulumi.Input[str]] = None,
                  vendor_options: Optional[pulumi.Input['VolumeAttachVendorOptionsArgs']] = None,
                  volume_id: Optional[pulumi.Input[str]] = None):
         """
@@ -136,6 +157,9 @@ def __init__(__self__, *,
                A Compute client is needed to create a volume attachment. If omitted, the
                `region` argument of the provider is used. Changing this creates a
                new volume attachment.
+        :param pulumi.Input[str] tag: Add a device role tag that is applied to the volume when
+               attaching it to the VM. Changing this creates a new volume attachment with
+               the new tag. Requires microversion >= 2.49.
         :param pulumi.Input['VolumeAttachVendorOptionsArgs'] vendor_options: Map of additional vendor-specific options.
                Supported options are described below.
         :param pulumi.Input[str] volume_id: The ID of the Volume to attach to an Instance.
@@ -148,6 +172,8 @@ def __init__(__self__, *,
             pulumi.set(__self__, "multiattach", multiattach)
         if region is not None:
             pulumi.set(__self__, "region", region)
+        if tag is not None:
+            pulumi.set(__self__, "tag", tag)
         if vendor_options is not None:
             pulumi.set(__self__, "vendor_options", vendor_options)
         if volume_id is not None:
@@ -201,6 +227,20 @@ def region(self) -> Optional[pulumi.Input[str]]:
     def region(self, value: Optional[pulumi.Input[str]]):
         pulumi.set(self, "region", value)
 
+    @property
+    @pulumi.getter
+    def tag(self) -> Optional[pulumi.Input[str]]:
+        """
+        Add a device role tag that is applied to the volume when
+        attaching it to the VM. Changing this creates a new volume attachment with
+        the new tag. Requires microversion >= 2.49.
+        """
+        return pulumi.get(self, "tag")
+
+    @tag.setter
+    def tag(self, value: Optional[pulumi.Input[str]]):
+        pulumi.set(self, "tag", value)
+
     @property
     @pulumi.getter(name="vendorOptions")
     def vendor_options(self) -> Optional[pulumi.Input['VolumeAttachVendorOptionsArgs']]:
@@ -236,6 +276,7 @@ def __init__(__self__,
                  instance_id: Optional[pulumi.Input[str]] = None,
                  multiattach: Optional[pulumi.Input[bool]] = None,
                  region: Optional[pulumi.Input[str]] = None,
+                 tag: Optional[pulumi.Input[str]] = None,
                  vendor_options: Optional[pulumi.Input[pulumi.InputType['VolumeAttachVendorOptionsArgs']]] = None,
                  volume_id: Optional[pulumi.Input[str]] = None,
                  __props__=None):
@@ -265,7 +306,7 @@ def __init__(__self__,
         ### Using Multiattach-enabled volumes
 
         Multiattach Volumes are dependent upon your OpenStack cloud and not all
-        clouds support multiattach.
+        clouds support multiattach. Multiattach volumes require a volume_type that has [multiattach enabled](https://docs.openstack.org/cinder/latest/admin/volume-multiattach.html#multiattach-volume-type).
 
         ```python
         import pulumi
@@ -274,7 +315,7 @@ def __init__(__self__,
         volume1 = openstack.blockstorage.Volume("volume_1",
             name="volume_1",
             size=1,
-            multiattach=True)
+            volume_type="multiattach")
         instance1 = openstack.compute.Instance("instance_1",
             name="instance_1",
             security_groups=["default"])
@@ -312,6 +353,9 @@ def __init__(__self__,
                A Compute client is needed to create a volume attachment. If omitted, the
                `region` argument of the provider is used. Changing this creates a
                new volume attachment.
+        :param pulumi.Input[str] tag: Add a device role tag that is applied to the volume when
+               attaching it to the VM. Changing this creates a new volume attachment with
+               the new tag. Requires microversion >= 2.49.
         :param pulumi.Input[pulumi.InputType['VolumeAttachVendorOptionsArgs']] vendor_options: Map of additional vendor-specific options.
                Supported options are described below.
         :param pulumi.Input[str] volume_id: The ID of the Volume to attach to an Instance.
@@ -348,7 +392,7 @@ def __init__(__self__,
         ### Using Multiattach-enabled volumes
 
         Multiattach Volumes are dependent upon your OpenStack cloud and not all
-        clouds support multiattach.
+        clouds support multiattach. Multiattach volumes require a volume_type that has [multiattach enabled](https://docs.openstack.org/cinder/latest/admin/volume-multiattach.html#multiattach-volume-type).
 
         ```python
         import pulumi
@@ -357,7 +401,7 @@ def __init__(__self__,
         volume1 = openstack.blockstorage.Volume("volume_1",
             name="volume_1",
             size=1,
-            multiattach=True)
+            volume_type="multiattach")
         instance1 = openstack.compute.Instance("instance_1",
             name="instance_1",
             security_groups=["default"])
@@ -406,6 +450,7 @@ def _internal_init(__self__,
                  instance_id: Optional[pulumi.Input[str]] = None,
                  multiattach: Optional[pulumi.Input[bool]] = None,
                  region: Optional[pulumi.Input[str]] = None,
+                 tag: Optional[pulumi.Input[str]] = None,
                  vendor_options: Optional[pulumi.Input[pulumi.InputType['VolumeAttachVendorOptionsArgs']]] = None,
                  volume_id: Optional[pulumi.Input[str]] = None,
                  __props__=None):
@@ -423,6 +468,7 @@ def _internal_init(__self__,
             __props__.__dict__["instance_id"] = instance_id
             __props__.__dict__["multiattach"] = multiattach
             __props__.__dict__["region"] = region
+            __props__.__dict__["tag"] = tag
             __props__.__dict__["vendor_options"] = vendor_options
             if volume_id is None and not opts.urn:
                 raise TypeError("Missing required property 'volume_id'")
@@ -441,6 +487,7 @@ def get(resource_name: str,
             instance_id: Optional[pulumi.Input[str]] = None,
             multiattach: Optional[pulumi.Input[bool]] = None,
             region: Optional[pulumi.Input[str]] = None,
+            tag: Optional[pulumi.Input[str]] = None,
             vendor_options: Optional[pulumi.Input[pulumi.InputType['VolumeAttachVendorOptionsArgs']]] = None,
             volume_id: Optional[pulumi.Input[str]] = None) -> 'VolumeAttach':
         """
@@ -456,6 +503,9 @@ def get(resource_name: str,
                A Compute client is needed to create a volume attachment. If omitted, the
                `region` argument of the provider is used. Changing this creates a
                new volume attachment.
+        :param pulumi.Input[str] tag: Add a device role tag that is applied to the volume when
+               attaching it to the VM. Changing this creates a new volume attachment with
+               the new tag. Requires microversion >= 2.49.
         :param pulumi.Input[pulumi.InputType['VolumeAttachVendorOptionsArgs']] vendor_options: Map of additional vendor-specific options.
                Supported options are described below.
         :param pulumi.Input[str] volume_id: The ID of the Volume to attach to an Instance.
@@ -468,6 +518,7 @@ def get(resource_name: str,
         __props__.__dict__["instance_id"] = instance_id
         __props__.__dict__["multiattach"] = multiattach
         __props__.__dict__["region"] = region
+        __props__.__dict__["tag"] = tag
         __props__.__dict__["vendor_options"] = vendor_options
         __props__.__dict__["volume_id"] = volume_id
         return VolumeAttach(resource_name, opts=opts, __props__=__props__)
@@ -504,6 +555,16 @@ def region(self) -> pulumi.Output[str]:
         """
         return pulumi.get(self, "region")
 
+    @property
+    @pulumi.getter
+    def tag(self) -> pulumi.Output[Optional[str]]:
+        """
+        Add a device role tag that is applied to the volume when
+        attaching it to the VM. Changing this creates a new volume attachment with
+        the new tag. Requires microversion >= 2.49.
+        """
+        return pulumi.get(self, "tag")
+
     @property
     @pulumi.getter(name="vendorOptions")
     def vendor_options(self) -> pulumi.Output[Optional['outputs.VolumeAttachVendorOptions']]:
diff --git a/sdk/python/pulumi_openstack/config/__init__.pyi b/sdk/python/pulumi_openstack/config/__init__.pyi
index 4d765ba2d..145f17a23 100644
--- a/sdk/python/pulumi_openstack/config/__init__.pyi
+++ b/sdk/python/pulumi_openstack/config/__init__.pyi
@@ -148,11 +148,6 @@ token: Optional[str]
 Authentication token to use as an alternative to username/password.
 """
 
-useOctavia: Optional[bool]
-"""
-If set to `true`, API requests will go the Load Balancer service (Octavia) instead of the Networking service (Neutron).
-"""
-
 userDomainId: Optional[str]
 """
 The ID of the domain where the user resides (Identity v3).
diff --git a/sdk/python/pulumi_openstack/config/vars.py b/sdk/python/pulumi_openstack/config/vars.py
index b467c49bb..f3eebc175 100644
--- a/sdk/python/pulumi_openstack/config/vars.py
+++ b/sdk/python/pulumi_openstack/config/vars.py
@@ -210,13 +210,6 @@ def token(self) -> Optional[str]:
         """
         return __config__.get('token')
 
-    @property
-    def use_octavia(self) -> Optional[bool]:
-        """
-        If set to `true`, API requests will go the Load Balancer service (Octavia) instead of the Networking service (Neutron).
-        """
-        return __config__.get_bool('useOctavia') or _utilities.get_env_bool('OS_USE_OCTAVIA')
-
     @property
     def user_domain_id(self) -> Optional[str]:
         """
diff --git a/sdk/python/pulumi_openstack/images/get_image.py b/sdk/python/pulumi_openstack/images/get_image.py
index 9ffe1d603..a1c18c7ef 100644
--- a/sdk/python/pulumi_openstack/images/get_image.py
+++ b/sdk/python/pulumi_openstack/images/get_image.py
@@ -21,7 +21,7 @@ class GetImageResult:
     """
     A collection of values returned by getImage.
     """
-    def __init__(__self__, checksum=None, container_format=None, created_at=None, disk_format=None, file=None, hidden=None, id=None, member_status=None, metadata=None, min_disk_gb=None, min_ram_mb=None, most_recent=None, name=None, name_regex=None, owner=None, properties=None, protected=None, region=None, schema=None, size_bytes=None, size_max=None, size_min=None, sort_direction=None, sort_key=None, tag=None, tags=None, updated_at=None, visibility=None):
+    def __init__(__self__, checksum=None, container_format=None, created_at=None, disk_format=None, file=None, hidden=None, id=None, member_status=None, metadata=None, min_disk_gb=None, min_ram_mb=None, most_recent=None, name=None, name_regex=None, owner=None, properties=None, protected=None, region=None, schema=None, size_bytes=None, size_max=None, size_min=None, sort=None, tag=None, tags=None, updated_at=None, visibility=None):
         if checksum and not isinstance(checksum, str):
             raise TypeError("Expected argument 'checksum' to be a str")
         pulumi.set(__self__, "checksum", checksum)
@@ -88,12 +88,9 @@ def __init__(__self__, checksum=None, container_format=None, created_at=None, di
         if size_min and not isinstance(size_min, int):
             raise TypeError("Expected argument 'size_min' to be a int")
         pulumi.set(__self__, "size_min", size_min)
-        if sort_direction and not isinstance(sort_direction, str):
-            raise TypeError("Expected argument 'sort_direction' to be a str")
-        pulumi.set(__self__, "sort_direction", sort_direction)
-        if sort_key and not isinstance(sort_key, str):
-            raise TypeError("Expected argument 'sort_key' to be a str")
-        pulumi.set(__self__, "sort_key", sort_key)
+        if sort and not isinstance(sort, str):
+            raise TypeError("Expected argument 'sort' to be a str")
+        pulumi.set(__self__, "sort", sort)
         if tag and not isinstance(tag, str):
             raise TypeError("Expected argument 'tag' to be a str")
         pulumi.set(__self__, "tag", tag)
@@ -261,14 +258,9 @@ def size_min(self) -> Optional[int]:
         return pulumi.get(self, "size_min")
 
     @property
-    @pulumi.getter(name="sortDirection")
-    def sort_direction(self) -> Optional[str]:
-        return pulumi.get(self, "sort_direction")
-
-    @property
-    @pulumi.getter(name="sortKey")
-    def sort_key(self) -> Optional[str]:
-        return pulumi.get(self, "sort_key")
+    @pulumi.getter
+    def sort(self) -> Optional[str]:
+        return pulumi.get(self, "sort")
 
     @property
     @pulumi.getter
@@ -325,8 +317,7 @@ def __await__(self):
             size_bytes=self.size_bytes,
             size_max=self.size_max,
             size_min=self.size_min,
-            sort_direction=self.sort_direction,
-            sort_key=self.sort_key,
+            sort=self.sort,
             tag=self.tag,
             tags=self.tags,
             updated_at=self.updated_at,
@@ -343,8 +334,7 @@ def get_image(hidden: Optional[bool] = None,
               region: Optional[str] = None,
               size_max: Optional[int] = None,
               size_min: Optional[int] = None,
-              sort_direction: Optional[str] = None,
-              sort_key: Optional[str] = None,
+              sort: Optional[str] = None,
               tag: Optional[str] = None,
               tags: Optional[Sequence[str]] = None,
               visibility: Optional[str] = None,
@@ -389,8 +379,11 @@ def get_image(hidden: Optional[bool] = None,
            is used.
     :param int size_max: The maximum size (in bytes) of the image to return.
     :param int size_min: The minimum size (in bytes) of the image to return.
-    :param str sort_direction: Order the results in either `asc` or `desc`.
-    :param str sort_key: Sort images based on a certain key. Defaults to `name`.
+    :param str sort: Sorts the response by one or more attribute and sort
+           direction combinations. You can also set multiple sort keys and directions.
+           Default direction is `desc`. Use the comma (,) character to separate
+           multiple values. For example expression `sort = "name:asc,status"`
+           sorts ascending by name and descending by status.
     :param str tag: Search for images with a specific tag.
     :param Sequence[str] tags: A list of tags required to be set on the image 
            (all specified tags must be in the images tag list for it to be matched).
@@ -408,8 +401,7 @@ def get_image(hidden: Optional[bool] = None,
     __args__['region'] = region
     __args__['sizeMax'] = size_max
     __args__['sizeMin'] = size_min
-    __args__['sortDirection'] = sort_direction
-    __args__['sortKey'] = sort_key
+    __args__['sort'] = sort
     __args__['tag'] = tag
     __args__['tags'] = tags
     __args__['visibility'] = visibility
@@ -439,8 +431,7 @@ def get_image(hidden: Optional[bool] = None,
         size_bytes=pulumi.get(__ret__, 'size_bytes'),
         size_max=pulumi.get(__ret__, 'size_max'),
         size_min=pulumi.get(__ret__, 'size_min'),
-        sort_direction=pulumi.get(__ret__, 'sort_direction'),
-        sort_key=pulumi.get(__ret__, 'sort_key'),
+        sort=pulumi.get(__ret__, 'sort'),
         tag=pulumi.get(__ret__, 'tag'),
         tags=pulumi.get(__ret__, 'tags'),
         updated_at=pulumi.get(__ret__, 'updated_at'),
@@ -458,8 +449,7 @@ def get_image_output(hidden: Optional[pulumi.Input[Optional[bool]]] = None,
                      region: Optional[pulumi.Input[Optional[str]]] = None,
                      size_max: Optional[pulumi.Input[Optional[int]]] = None,
                      size_min: Optional[pulumi.Input[Optional[int]]] = None,
-                     sort_direction: Optional[pulumi.Input[Optional[str]]] = None,
-                     sort_key: Optional[pulumi.Input[Optional[str]]] = None,
+                     sort: Optional[pulumi.Input[Optional[str]]] = None,
                      tag: Optional[pulumi.Input[Optional[str]]] = None,
                      tags: Optional[pulumi.Input[Optional[Sequence[str]]]] = None,
                      visibility: Optional[pulumi.Input[Optional[str]]] = None,
@@ -504,8 +494,11 @@ def get_image_output(hidden: Optional[pulumi.Input[Optional[bool]]] = None,
            is used.
     :param int size_max: The maximum size (in bytes) of the image to return.
     :param int size_min: The minimum size (in bytes) of the image to return.
-    :param str sort_direction: Order the results in either `asc` or `desc`.
-    :param str sort_key: Sort images based on a certain key. Defaults to `name`.
+    :param str sort: Sorts the response by one or more attribute and sort
+           direction combinations. You can also set multiple sort keys and directions.
+           Default direction is `desc`. Use the comma (,) character to separate
+           multiple values. For example expression `sort = "name:asc,status"`
+           sorts ascending by name and descending by status.
     :param str tag: Search for images with a specific tag.
     :param Sequence[str] tags: A list of tags required to be set on the image 
            (all specified tags must be in the images tag list for it to be matched).
diff --git a/sdk/python/pulumi_openstack/images/get_image_ids.py b/sdk/python/pulumi_openstack/images/get_image_ids.py
index cfe832def..9d1b25b7f 100644
--- a/sdk/python/pulumi_openstack/images/get_image_ids.py
+++ b/sdk/python/pulumi_openstack/images/get_image_ids.py
@@ -21,7 +21,7 @@ class GetImageIdsResult:
     """
     A collection of values returned by getImageIds.
     """
-    def __init__(__self__, id=None, ids=None, member_status=None, name=None, name_regex=None, owner=None, properties=None, region=None, size_max=None, size_min=None, sort=None, sort_direction=None, sort_key=None, tag=None, tags=None, visibility=None):
+    def __init__(__self__, id=None, ids=None, member_status=None, name=None, name_regex=None, owner=None, properties=None, region=None, size_max=None, size_min=None, sort=None, tag=None, tags=None, visibility=None):
         if id and not isinstance(id, str):
             raise TypeError("Expected argument 'id' to be a str")
         pulumi.set(__self__, "id", id)
@@ -55,12 +55,6 @@ def __init__(__self__, id=None, ids=None, member_status=None, name=None, name_re
         if sort and not isinstance(sort, str):
             raise TypeError("Expected argument 'sort' to be a str")
         pulumi.set(__self__, "sort", sort)
-        if sort_direction and not isinstance(sort_direction, str):
-            raise TypeError("Expected argument 'sort_direction' to be a str")
-        pulumi.set(__self__, "sort_direction", sort_direction)
-        if sort_key and not isinstance(sort_key, str):
-            raise TypeError("Expected argument 'sort_key' to be a str")
-        pulumi.set(__self__, "sort_key", sort_key)
         if tag and not isinstance(tag, str):
             raise TypeError("Expected argument 'tag' to be a str")
         pulumi.set(__self__, "tag", tag)
@@ -129,22 +123,6 @@ def size_min(self) -> Optional[int]:
     def sort(self) -> Optional[str]:
         return pulumi.get(self, "sort")
 
-    @property
-    @pulumi.getter(name="sortDirection")
-    def sort_direction(self) -> Optional[str]:
-        warnings.warn("""Use option 'sort' instead.""", DeprecationWarning)
-        pulumi.log.warn("""sort_direction is deprecated: Use option 'sort' instead.""")
-
-        return pulumi.get(self, "sort_direction")
-
-    @property
-    @pulumi.getter(name="sortKey")
-    def sort_key(self) -> Optional[str]:
-        warnings.warn("""Use option 'sort' instead.""", DeprecationWarning)
-        pulumi.log.warn("""sort_key is deprecated: Use option 'sort' instead.""")
-
-        return pulumi.get(self, "sort_key")
-
     @property
     @pulumi.getter
     def tag(self) -> Optional[str]:
@@ -178,8 +156,6 @@ def __await__(self):
             size_max=self.size_max,
             size_min=self.size_min,
             sort=self.sort,
-            sort_direction=self.sort_direction,
-            sort_key=self.sort_key,
             tag=self.tag,
             tags=self.tags,
             visibility=self.visibility)
@@ -194,8 +170,6 @@ def get_image_ids(member_status: Optional[str] = None,
                   size_max: Optional[int] = None,
                   size_min: Optional[int] = None,
                   sort: Optional[str] = None,
-                  sort_direction: Optional[str] = None,
-                  sort_key: Optional[str] = None,
                   tag: Optional[str] = None,
                   tags: Optional[Sequence[str]] = None,
                   visibility: Optional[str] = None,
@@ -240,14 +214,7 @@ def get_image_ids(member_status: Optional[str] = None,
            direction combinations. You can also set multiple sort keys and directions.
            Default direction is `desc`. Use the comma (,) character to separate
            multiple values. For example expression `sort = "name:asc,status"`
-           sorts ascending by name and descending by status. `sort` cannot be used
-           simultaneously with `sort_key`. If both are present in a configuration
-           then only `sort` will be used.
-    :param str sort_direction: Order the results in either `asc` or `desc`.
-           Can be applied only with `sort_key`. Defaults to `asc`
-    :param str sort_key: Sort images based on a certain key. Defaults to
-           `name`. `sort_key` cannot be used simultaneously with `sort`. If both
-           are present in a configuration then only `sort` will be used.
+           sorts ascending by name and descending by status.
     :param str tag: Search for images with a specific tag.
     :param Sequence[str] tags: A list of tags required to be set on the image
            (all specified tags must be in the images tag list for it to be matched).
@@ -264,8 +231,6 @@ def get_image_ids(member_status: Optional[str] = None,
     __args__['sizeMax'] = size_max
     __args__['sizeMin'] = size_min
     __args__['sort'] = sort
-    __args__['sortDirection'] = sort_direction
-    __args__['sortKey'] = sort_key
     __args__['tag'] = tag
     __args__['tags'] = tags
     __args__['visibility'] = visibility
@@ -284,8 +249,6 @@ def get_image_ids(member_status: Optional[str] = None,
         size_max=pulumi.get(__ret__, 'size_max'),
         size_min=pulumi.get(__ret__, 'size_min'),
         sort=pulumi.get(__ret__, 'sort'),
-        sort_direction=pulumi.get(__ret__, 'sort_direction'),
-        sort_key=pulumi.get(__ret__, 'sort_key'),
         tag=pulumi.get(__ret__, 'tag'),
         tags=pulumi.get(__ret__, 'tags'),
         visibility=pulumi.get(__ret__, 'visibility'))
@@ -301,8 +264,6 @@ def get_image_ids_output(member_status: Optional[pulumi.Input[Optional[str]]] =
                          size_max: Optional[pulumi.Input[Optional[int]]] = None,
                          size_min: Optional[pulumi.Input[Optional[int]]] = None,
                          sort: Optional[pulumi.Input[Optional[str]]] = None,
-                         sort_direction: Optional[pulumi.Input[Optional[str]]] = None,
-                         sort_key: Optional[pulumi.Input[Optional[str]]] = None,
                          tag: Optional[pulumi.Input[Optional[str]]] = None,
                          tags: Optional[pulumi.Input[Optional[Sequence[str]]]] = None,
                          visibility: Optional[pulumi.Input[Optional[str]]] = None,
@@ -347,14 +308,7 @@ def get_image_ids_output(member_status: Optional[pulumi.Input[Optional[str]]] =
            direction combinations. You can also set multiple sort keys and directions.
            Default direction is `desc`. Use the comma (,) character to separate
            multiple values. For example expression `sort = "name:asc,status"`
-           sorts ascending by name and descending by status. `sort` cannot be used
-           simultaneously with `sort_key`. If both are present in a configuration
-           then only `sort` will be used.
-    :param str sort_direction: Order the results in either `asc` or `desc`.
-           Can be applied only with `sort_key`. Defaults to `asc`
-    :param str sort_key: Sort images based on a certain key. Defaults to
-           `name`. `sort_key` cannot be used simultaneously with `sort`. If both
-           are present in a configuration then only `sort` will be used.
+           sorts ascending by name and descending by status.
     :param str tag: Search for images with a specific tag.
     :param Sequence[str] tags: A list of tags required to be set on the image
            (all specified tags must be in the images tag list for it to be matched).
diff --git a/sdk/python/pulumi_openstack/images/image.py b/sdk/python/pulumi_openstack/images/image.py
index 4b62c1ca3..2ef72dde6 100644
--- a/sdk/python/pulumi_openstack/images/image.py
+++ b/sdk/python/pulumi_openstack/images/image.py
@@ -415,7 +415,6 @@ def __init__(__self__, *,
                  size_bytes: Optional[pulumi.Input[int]] = None,
                  status: Optional[pulumi.Input[str]] = None,
                  tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
-                 update_at: Optional[pulumi.Input[str]] = None,
                  updated_at: Optional[pulumi.Input[str]] = None,
                  verify_checksum: Optional[pulumi.Input[bool]] = None,
                  visibility: Optional[pulumi.Input[str]] = None,
@@ -473,7 +472,6 @@ def __init__(__self__, *,
                or "saving".
         :param pulumi.Input[Sequence[pulumi.Input[str]]] tags: The tags of the image. It must be a list of strings.
                At this time, it is not possible to delete all tags of an image.
-        :param pulumi.Input[str] update_at: (**Deprecated** - use `updated_at` instead)
         :param pulumi.Input[str] updated_at: The date the image was last updated.
         :param pulumi.Input[bool] verify_checksum: If false, the checksum will not be verified
                once the image is finished uploading. Conflicts with `web_download`.
@@ -535,11 +533,6 @@ def __init__(__self__, *,
             pulumi.set(__self__, "status", status)
         if tags is not None:
             pulumi.set(__self__, "tags", tags)
-        if update_at is not None:
-            warnings.warn("""Use updated_at instead""", DeprecationWarning)
-            pulumi.log.warn("""update_at is deprecated: Use updated_at instead""")
-        if update_at is not None:
-            pulumi.set(__self__, "update_at", update_at)
         if updated_at is not None:
             pulumi.set(__self__, "updated_at", updated_at)
         if verify_checksum is not None:
@@ -873,21 +866,6 @@ def tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
     def tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
         pulumi.set(self, "tags", value)
 
-    @property
-    @pulumi.getter(name="updateAt")
-    def update_at(self) -> Optional[pulumi.Input[str]]:
-        """
-        (**Deprecated** - use `updated_at` instead)
-        """
-        warnings.warn("""Use updated_at instead""", DeprecationWarning)
-        pulumi.log.warn("""update_at is deprecated: Use updated_at instead""")
-
-        return pulumi.get(self, "update_at")
-
-    @update_at.setter
-    def update_at(self, value: Optional[pulumi.Input[str]]):
-        pulumi.set(self, "update_at", value)
-
     @property
     @pulumi.getter(name="updatedAt")
     def updated_at(self) -> Optional[pulumi.Input[str]]:
@@ -1194,7 +1172,6 @@ def _internal_init(__self__,
             __props__.__dict__["schema"] = None
             __props__.__dict__["size_bytes"] = None
             __props__.__dict__["status"] = None
-            __props__.__dict__["update_at"] = None
             __props__.__dict__["updated_at"] = None
         secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["imageSourcePassword"])
         opts = pulumi.ResourceOptions.merge(opts, secret_opts)
@@ -1233,7 +1210,6 @@ def get(resource_name: str,
             size_bytes: Optional[pulumi.Input[int]] = None,
             status: Optional[pulumi.Input[str]] = None,
             tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
-            update_at: Optional[pulumi.Input[str]] = None,
             updated_at: Optional[pulumi.Input[str]] = None,
             verify_checksum: Optional[pulumi.Input[bool]] = None,
             visibility: Optional[pulumi.Input[str]] = None,
@@ -1296,7 +1272,6 @@ def get(resource_name: str,
                or "saving".
         :param pulumi.Input[Sequence[pulumi.Input[str]]] tags: The tags of the image. It must be a list of strings.
                At this time, it is not possible to delete all tags of an image.
-        :param pulumi.Input[str] update_at: (**Deprecated** - use `updated_at` instead)
         :param pulumi.Input[str] updated_at: The date the image was last updated.
         :param pulumi.Input[bool] verify_checksum: If false, the checksum will not be verified
                once the image is finished uploading. Conflicts with `web_download`.
@@ -1337,7 +1312,6 @@ def get(resource_name: str,
         __props__.__dict__["size_bytes"] = size_bytes
         __props__.__dict__["status"] = status
         __props__.__dict__["tags"] = tags
-        __props__.__dict__["update_at"] = update_at
         __props__.__dict__["updated_at"] = updated_at
         __props__.__dict__["verify_checksum"] = verify_checksum
         __props__.__dict__["visibility"] = visibility
@@ -1568,17 +1542,6 @@ def tags(self) -> pulumi.Output[Optional[Sequence[str]]]:
         """
         return pulumi.get(self, "tags")
 
-    @property
-    @pulumi.getter(name="updateAt")
-    def update_at(self) -> pulumi.Output[str]:
-        """
-        (**Deprecated** - use `updated_at` instead)
-        """
-        warnings.warn("""Use updated_at instead""", DeprecationWarning)
-        pulumi.log.warn("""update_at is deprecated: Use updated_at instead""")
-
-        return pulumi.get(self, "update_at")
-
     @property
     @pulumi.getter(name="updatedAt")
     def updated_at(self) -> pulumi.Output[str]:
diff --git a/sdk/python/pulumi_openstack/loadbalancer/__init__.py b/sdk/python/pulumi_openstack/loadbalancer/__init__.py
index a901e9cb0..02f095cca 100644
--- a/sdk/python/pulumi_openstack/loadbalancer/__init__.py
+++ b/sdk/python/pulumi_openstack/loadbalancer/__init__.py
@@ -5,6 +5,7 @@
 from .. import _utilities
 import typing
 # Export this package's modules as members:
+from .get_flavor_v2 import *
 from .l7_policy_v2 import *
 from .l7_rule_v2 import *
 from .listener import *
diff --git a/sdk/python/pulumi_openstack/loadbalancer/get_flavor_v2.py b/sdk/python/pulumi_openstack/loadbalancer/get_flavor_v2.py
new file mode 100644
index 000000000..eb20e936d
--- /dev/null
+++ b/sdk/python/pulumi_openstack/loadbalancer/get_flavor_v2.py
@@ -0,0 +1,133 @@
+# coding=utf-8
+# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
+# *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+import copy
+import warnings
+import pulumi
+import pulumi.runtime
+from typing import Any, Mapping, Optional, Sequence, Union, overload
+from .. import _utilities
+
+__all__ = [
+    'GetFlavorV2Result',
+    'AwaitableGetFlavorV2Result',
+    'get_flavor_v2',
+    'get_flavor_v2_output',
+]
+
+@pulumi.output_type
+class GetFlavorV2Result:
+    """
+    A collection of values returned by getFlavorV2.
+    """
+    def __init__(__self__, description=None, enabled=None, flavor_id=None, flavor_profile_id=None, id=None, name=None, region=None):
+        if description and not isinstance(description, str):
+            raise TypeError("Expected argument 'description' to be a str")
+        pulumi.set(__self__, "description", description)
+        if enabled and not isinstance(enabled, bool):
+            raise TypeError("Expected argument 'enabled' to be a bool")
+        pulumi.set(__self__, "enabled", enabled)
+        if flavor_id and not isinstance(flavor_id, str):
+            raise TypeError("Expected argument 'flavor_id' to be a str")
+        pulumi.set(__self__, "flavor_id", flavor_id)
+        if flavor_profile_id and not isinstance(flavor_profile_id, str):
+            raise TypeError("Expected argument 'flavor_profile_id' to be a str")
+        pulumi.set(__self__, "flavor_profile_id", flavor_profile_id)
+        if id and not isinstance(id, str):
+            raise TypeError("Expected argument 'id' to be a str")
+        pulumi.set(__self__, "id", id)
+        if name and not isinstance(name, str):
+            raise TypeError("Expected argument 'name' to be a str")
+        pulumi.set(__self__, "name", name)
+        if region and not isinstance(region, str):
+            raise TypeError("Expected argument 'region' to be a str")
+        pulumi.set(__self__, "region", region)
+
+    @property
+    @pulumi.getter
+    def description(self) -> str:
+        return pulumi.get(self, "description")
+
+    @property
+    @pulumi.getter
+    def enabled(self) -> bool:
+        return pulumi.get(self, "enabled")
+
+    @property
+    @pulumi.getter(name="flavorId")
+    def flavor_id(self) -> str:
+        return pulumi.get(self, "flavor_id")
+
+    @property
+    @pulumi.getter(name="flavorProfileId")
+    def flavor_profile_id(self) -> str:
+        return pulumi.get(self, "flavor_profile_id")
+
+    @property
+    @pulumi.getter
+    def id(self) -> str:
+        """
+        The provider-assigned unique ID for this managed resource.
+        """
+        return pulumi.get(self, "id")
+
+    @property
+    @pulumi.getter
+    def name(self) -> str:
+        return pulumi.get(self, "name")
+
+    @property
+    @pulumi.getter
+    def region(self) -> Optional[str]:
+        return pulumi.get(self, "region")
+
+
+class AwaitableGetFlavorV2Result(GetFlavorV2Result):
+    # pylint: disable=using-constant-test
+    def __await__(self):
+        if False:
+            yield self
+        return GetFlavorV2Result(
+            description=self.description,
+            enabled=self.enabled,
+            flavor_id=self.flavor_id,
+            flavor_profile_id=self.flavor_profile_id,
+            id=self.id,
+            name=self.name,
+            region=self.region)
+
+
+def get_flavor_v2(flavor_id: Optional[str] = None,
+                  name: Optional[str] = None,
+                  region: Optional[str] = None,
+                  opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetFlavorV2Result:
+    """
+    Use this data source to access information about an existing resource.
+    """
+    __args__ = dict()
+    __args__['flavorId'] = flavor_id
+    __args__['name'] = name
+    __args__['region'] = region
+    opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
+    __ret__ = pulumi.runtime.invoke('openstack:loadbalancer/getFlavorV2:getFlavorV2', __args__, opts=opts, typ=GetFlavorV2Result).value
+
+    return AwaitableGetFlavorV2Result(
+        description=pulumi.get(__ret__, 'description'),
+        enabled=pulumi.get(__ret__, 'enabled'),
+        flavor_id=pulumi.get(__ret__, 'flavor_id'),
+        flavor_profile_id=pulumi.get(__ret__, 'flavor_profile_id'),
+        id=pulumi.get(__ret__, 'id'),
+        name=pulumi.get(__ret__, 'name'),
+        region=pulumi.get(__ret__, 'region'))
+
+
+@_utilities.lift_output_func(get_flavor_v2)
+def get_flavor_v2_output(flavor_id: Optional[pulumi.Input[Optional[str]]] = None,
+                         name: Optional[pulumi.Input[Optional[str]]] = None,
+                         region: Optional[pulumi.Input[Optional[str]]] = None,
+                         opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetFlavorV2Result]:
+    """
+    Use this data source to access information about an existing resource.
+    """
+    ...
diff --git a/sdk/python/pulumi_openstack/loadbalancer/listener.py b/sdk/python/pulumi_openstack/loadbalancer/listener.py
index 6d8492761..5a720cf3a 100644
--- a/sdk/python/pulumi_openstack/loadbalancer/listener.py
+++ b/sdk/python/pulumi_openstack/loadbalancer/listener.py
@@ -38,8 +38,8 @@ def __init__(__self__, *,
         :param pulumi.Input[str] loadbalancer_id: The load balancer on which to provision this
                Listener. Changing this creates a new Listener.
         :param pulumi.Input[str] protocol: The protocol - can either be TCP, HTTP, HTTPS,
-               TERMINATED_HTTPS, UDP (supported only in Octavia), SCTP (supported only
-               in **Octavia minor version >= 2.23**) or PROMETHEUS (supported only in
+               TERMINATED_HTTPS, UDP, SCTP (supported only in
+               **Octavia minor version >= 2.23**) or PROMETHEUS (supported only in
                **Octavia minor version >=2.25**). Changing this creates a new Listener.
         :param pulumi.Input[int] protocol_port: The port on which to listen for client traffic.
                Changing this creates a new Listener.
@@ -133,8 +133,8 @@ def loadbalancer_id(self, value: pulumi.Input[str]):
     def protocol(self) -> pulumi.Input[str]:
         """
         The protocol - can either be TCP, HTTP, HTTPS,
-        TERMINATED_HTTPS, UDP (supported only in Octavia), SCTP (supported only
-        in **Octavia minor version >= 2.23**) or PROMETHEUS (supported only in
+        TERMINATED_HTTPS, UDP, SCTP (supported only in
+        **Octavia minor version >= 2.23**) or PROMETHEUS (supported only in
         **Octavia minor version >=2.25**). Changing this creates a new Listener.
         """
         return pulumi.get(self, "protocol")
@@ -412,8 +412,8 @@ def __init__(__self__, *,
         :param pulumi.Input[str] name: Human-readable name for the Listener. Does not have
                to be unique.
         :param pulumi.Input[str] protocol: The protocol - can either be TCP, HTTP, HTTPS,
-               TERMINATED_HTTPS, UDP (supported only in Octavia), SCTP (supported only
-               in **Octavia minor version >= 2.23**) or PROMETHEUS (supported only in
+               TERMINATED_HTTPS, UDP, SCTP (supported only in
+               **Octavia minor version >= 2.23**) or PROMETHEUS (supported only in
                **Octavia minor version >=2.25**). Changing this creates a new Listener.
         :param pulumi.Input[int] protocol_port: The port on which to listen for client traffic.
                Changing this creates a new Listener.
@@ -598,8 +598,8 @@ def name(self, value: Optional[pulumi.Input[str]]):
     def protocol(self) -> Optional[pulumi.Input[str]]:
         """
         The protocol - can either be TCP, HTTP, HTTPS,
-        TERMINATED_HTTPS, UDP (supported only in Octavia), SCTP (supported only
-        in **Octavia minor version >= 2.23**) or PROMETHEUS (supported only in
+        TERMINATED_HTTPS, UDP, SCTP (supported only in
+        **Octavia minor version >= 2.23**) or PROMETHEUS (supported only in
         **Octavia minor version >=2.25**). Changing this creates a new Listener.
         """
         return pulumi.get(self, "protocol")
@@ -802,8 +802,8 @@ def __init__(__self__,
         :param pulumi.Input[str] name: Human-readable name for the Listener. Does not have
                to be unique.
         :param pulumi.Input[str] protocol: The protocol - can either be TCP, HTTP, HTTPS,
-               TERMINATED_HTTPS, UDP (supported only in Octavia), SCTP (supported only
-               in **Octavia minor version >= 2.23**) or PROMETHEUS (supported only in
+               TERMINATED_HTTPS, UDP, SCTP (supported only in
+               **Octavia minor version >= 2.23**) or PROMETHEUS (supported only in
                **Octavia minor version >=2.25**). Changing this creates a new Listener.
         :param pulumi.Input[int] protocol_port: The port on which to listen for client traffic.
                Changing this creates a new Listener.
@@ -985,8 +985,8 @@ def get(resource_name: str,
         :param pulumi.Input[str] name: Human-readable name for the Listener. Does not have
                to be unique.
         :param pulumi.Input[str] protocol: The protocol - can either be TCP, HTTP, HTTPS,
-               TERMINATED_HTTPS, UDP (supported only in Octavia), SCTP (supported only
-               in **Octavia minor version >= 2.23**) or PROMETHEUS (supported only in
+               TERMINATED_HTTPS, UDP, SCTP (supported only in
+               **Octavia minor version >= 2.23**) or PROMETHEUS (supported only in
                **Octavia minor version >=2.25**). Changing this creates a new Listener.
         :param pulumi.Input[int] protocol_port: The port on which to listen for client traffic.
                Changing this creates a new Listener.
@@ -1121,8 +1121,8 @@ def name(self) -> pulumi.Output[str]:
     def protocol(self) -> pulumi.Output[str]:
         """
         The protocol - can either be TCP, HTTP, HTTPS,
-        TERMINATED_HTTPS, UDP (supported only in Octavia), SCTP (supported only
-        in **Octavia minor version >= 2.23**) or PROMETHEUS (supported only in
+        TERMINATED_HTTPS, UDP, SCTP (supported only in
+        **Octavia minor version >= 2.23**) or PROMETHEUS (supported only in
         **Octavia minor version >=2.25**). Changing this creates a new Listener.
         """
         return pulumi.get(self, "protocol")
diff --git a/sdk/python/pulumi_openstack/loadbalancer/members.py b/sdk/python/pulumi_openstack/loadbalancer/members.py
index abbbeb760..0e8fb64ea 100644
--- a/sdk/python/pulumi_openstack/loadbalancer/members.py
+++ b/sdk/python/pulumi_openstack/loadbalancer/members.py
@@ -159,10 +159,6 @@ def __init__(__self__,
         > **Note:** This resource has attributes that depend on octavia minor versions.
         Please ensure your Openstack cloud supports the required minor version.
 
-        > **Note:** This resource works only within Octavia API. For
-        legacy Neutron LBaaS v2 extension please use
-        loadbalancer.Member resource.
-
         ## Example Usage
 
         ```python
@@ -214,10 +210,6 @@ def __init__(__self__,
         > **Note:** This resource has attributes that depend on octavia minor versions.
         Please ensure your Openstack cloud supports the required minor version.
 
-        > **Note:** This resource works only within Octavia API. For
-        legacy Neutron LBaaS v2 extension please use
-        loadbalancer.Member resource.
-
         ## Example Usage
 
         ```python
diff --git a/sdk/python/pulumi_openstack/loadbalancer/pool.py b/sdk/python/pulumi_openstack/loadbalancer/pool.py
index 5e9f57df6..668140587 100644
--- a/sdk/python/pulumi_openstack/loadbalancer/pool.py
+++ b/sdk/python/pulumi_openstack/loadbalancer/pool.py
@@ -30,11 +30,10 @@ def __init__(__self__, *,
         The set of arguments for constructing a Pool resource.
         :param pulumi.Input[str] lb_method: The load balancing algorithm to
                distribute traffic to the pool's members. Must be one of
-               ROUND_ROBIN, LEAST_CONNECTIONS, SOURCE_IP, or SOURCE_IP_PORT (supported only
-               in Octavia).
+               ROUND_ROBIN, LEAST_CONNECTIONS, SOURCE_IP, or SOURCE_IP_PORT.
         :param pulumi.Input[str] protocol: The protocol - can either be TCP, HTTP, HTTPS, PROXY,
-               UDP (supported only in Octavia), PROXYV2 (**Octavia minor version >= 2.22**)
-               or SCTP (**Octavia minor version >= 2.23**). Changing this creates a new pool.
+               UDP, PROXYV2 (**Octavia minor version >= 2.22**) or SCTP
+               (**Octavia minor version >= 2.23**). Changing this creates a new pool.
         :param pulumi.Input[bool] admin_state_up: The administrative state of the pool.
                A valid value is true (UP) or false (DOWN).
         :param pulumi.Input[str] description: Human-readable description for the pool.
@@ -81,8 +80,7 @@ def lb_method(self) -> pulumi.Input[str]:
         """
         The load balancing algorithm to
         distribute traffic to the pool's members. Must be one of
-        ROUND_ROBIN, LEAST_CONNECTIONS, SOURCE_IP, or SOURCE_IP_PORT (supported only
-        in Octavia).
+        ROUND_ROBIN, LEAST_CONNECTIONS, SOURCE_IP, or SOURCE_IP_PORT.
         """
         return pulumi.get(self, "lb_method")
 
@@ -95,8 +93,8 @@ def lb_method(self, value: pulumi.Input[str]):
     def protocol(self) -> pulumi.Input[str]:
         """
         The protocol - can either be TCP, HTTP, HTTPS, PROXY,
-        UDP (supported only in Octavia), PROXYV2 (**Octavia minor version >= 2.22**)
-        or SCTP (**Octavia minor version >= 2.23**). Changing this creates a new pool.
+        UDP, PROXYV2 (**Octavia minor version >= 2.22**) or SCTP
+        (**Octavia minor version >= 2.23**). Changing this creates a new pool.
         """
         return pulumi.get(self, "protocol")
 
@@ -233,8 +231,7 @@ def __init__(__self__, *,
         :param pulumi.Input[str] description: Human-readable description for the pool.
         :param pulumi.Input[str] lb_method: The load balancing algorithm to
                distribute traffic to the pool's members. Must be one of
-               ROUND_ROBIN, LEAST_CONNECTIONS, SOURCE_IP, or SOURCE_IP_PORT (supported only
-               in Octavia).
+               ROUND_ROBIN, LEAST_CONNECTIONS, SOURCE_IP, or SOURCE_IP_PORT.
         :param pulumi.Input[str] listener_id: The Listener on which the members of the pool
                will be associated with. Changing this creates a new pool.
                Note:  One of LoadbalancerID or ListenerID must be provided.
@@ -246,8 +243,8 @@ def __init__(__self__, *,
                whether connections in the same session will be processed by the same Pool
                member or not. Changing this creates a new pool.
         :param pulumi.Input[str] protocol: The protocol - can either be TCP, HTTP, HTTPS, PROXY,
-               UDP (supported only in Octavia), PROXYV2 (**Octavia minor version >= 2.22**)
-               or SCTP (**Octavia minor version >= 2.23**). Changing this creates a new pool.
+               UDP, PROXYV2 (**Octavia minor version >= 2.22**) or SCTP
+               (**Octavia minor version >= 2.23**). Changing this creates a new pool.
         :param pulumi.Input[str] region: The region in which to obtain the V2 Networking client.
                A Networking client is needed to create an . If omitted, the
                `region` argument of the provider is used. Changing this creates a new
@@ -308,8 +305,7 @@ def lb_method(self) -> Optional[pulumi.Input[str]]:
         """
         The load balancing algorithm to
         distribute traffic to the pool's members. Must be one of
-        ROUND_ROBIN, LEAST_CONNECTIONS, SOURCE_IP, or SOURCE_IP_PORT (supported only
-        in Octavia).
+        ROUND_ROBIN, LEAST_CONNECTIONS, SOURCE_IP, or SOURCE_IP_PORT.
         """
         return pulumi.get(self, "lb_method")
 
@@ -376,8 +372,8 @@ def persistence(self, value: Optional[pulumi.Input['PoolPersistenceArgs']]):
     def protocol(self) -> Optional[pulumi.Input[str]]:
         """
         The protocol - can either be TCP, HTTP, HTTPS, PROXY,
-        UDP (supported only in Octavia), PROXYV2 (**Octavia minor version >= 2.22**)
-        or SCTP (**Octavia minor version >= 2.23**). Changing this creates a new pool.
+        UDP, PROXYV2 (**Octavia minor version >= 2.22**) or SCTP
+        (**Octavia minor version >= 2.23**). Changing this creates a new pool.
         """
         return pulumi.get(self, "protocol")
 
@@ -468,8 +464,7 @@ def __init__(__self__,
         :param pulumi.Input[str] description: Human-readable description for the pool.
         :param pulumi.Input[str] lb_method: The load balancing algorithm to
                distribute traffic to the pool's members. Must be one of
-               ROUND_ROBIN, LEAST_CONNECTIONS, SOURCE_IP, or SOURCE_IP_PORT (supported only
-               in Octavia).
+               ROUND_ROBIN, LEAST_CONNECTIONS, SOURCE_IP, or SOURCE_IP_PORT.
         :param pulumi.Input[str] listener_id: The Listener on which the members of the pool
                will be associated with. Changing this creates a new pool.
                Note:  One of LoadbalancerID or ListenerID must be provided.
@@ -481,8 +476,8 @@ def __init__(__self__,
                whether connections in the same session will be processed by the same Pool
                member or not. Changing this creates a new pool.
         :param pulumi.Input[str] protocol: The protocol - can either be TCP, HTTP, HTTPS, PROXY,
-               UDP (supported only in Octavia), PROXYV2 (**Octavia minor version >= 2.22**)
-               or SCTP (**Octavia minor version >= 2.23**). Changing this creates a new pool.
+               UDP, PROXYV2 (**Octavia minor version >= 2.22**) or SCTP
+               (**Octavia minor version >= 2.23**). Changing this creates a new pool.
         :param pulumi.Input[str] region: The region in which to obtain the V2 Networking client.
                A Networking client is needed to create an . If omitted, the
                `region` argument of the provider is used. Changing this creates a new
@@ -607,8 +602,7 @@ def get(resource_name: str,
         :param pulumi.Input[str] description: Human-readable description for the pool.
         :param pulumi.Input[str] lb_method: The load balancing algorithm to
                distribute traffic to the pool's members. Must be one of
-               ROUND_ROBIN, LEAST_CONNECTIONS, SOURCE_IP, or SOURCE_IP_PORT (supported only
-               in Octavia).
+               ROUND_ROBIN, LEAST_CONNECTIONS, SOURCE_IP, or SOURCE_IP_PORT.
         :param pulumi.Input[str] listener_id: The Listener on which the members of the pool
                will be associated with. Changing this creates a new pool.
                Note:  One of LoadbalancerID or ListenerID must be provided.
@@ -620,8 +614,8 @@ def get(resource_name: str,
                whether connections in the same session will be processed by the same Pool
                member or not. Changing this creates a new pool.
         :param pulumi.Input[str] protocol: The protocol - can either be TCP, HTTP, HTTPS, PROXY,
-               UDP (supported only in Octavia), PROXYV2 (**Octavia minor version >= 2.22**)
-               or SCTP (**Octavia minor version >= 2.23**). Changing this creates a new pool.
+               UDP, PROXYV2 (**Octavia minor version >= 2.22**) or SCTP
+               (**Octavia minor version >= 2.23**). Changing this creates a new pool.
         :param pulumi.Input[str] region: The region in which to obtain the V2 Networking client.
                A Networking client is needed to create an . If omitted, the
                `region` argument of the provider is used. Changing this creates a new
@@ -669,8 +663,7 @@ def lb_method(self) -> pulumi.Output[str]:
         """
         The load balancing algorithm to
         distribute traffic to the pool's members. Must be one of
-        ROUND_ROBIN, LEAST_CONNECTIONS, SOURCE_IP, or SOURCE_IP_PORT (supported only
-        in Octavia).
+        ROUND_ROBIN, LEAST_CONNECTIONS, SOURCE_IP, or SOURCE_IP_PORT.
         """
         return pulumi.get(self, "lb_method")
 
@@ -717,8 +710,8 @@ def persistence(self) -> pulumi.Output['outputs.PoolPersistence']:
     def protocol(self) -> pulumi.Output[str]:
         """
         The protocol - can either be TCP, HTTP, HTTPS, PROXY,
-        UDP (supported only in Octavia), PROXYV2 (**Octavia minor version >= 2.22**)
-        or SCTP (**Octavia minor version >= 2.23**). Changing this creates a new pool.
+        UDP, PROXYV2 (**Octavia minor version >= 2.22**) or SCTP
+        (**Octavia minor version >= 2.23**). Changing this creates a new pool.
         """
         return pulumi.get(self, "protocol")
 
diff --git a/sdk/python/pulumi_openstack/loadbalancer/pool_v1.py b/sdk/python/pulumi_openstack/loadbalancer/pool_v1.py
index 04035cdcb..19c1acf9e 100644
--- a/sdk/python/pulumi_openstack/loadbalancer/pool_v1.py
+++ b/sdk/python/pulumi_openstack/loadbalancer/pool_v1.py
@@ -18,7 +18,6 @@ def __init__(__self__, *,
                  protocol: pulumi.Input[str],
                  subnet_id: pulumi.Input[str],
                  lb_provider: Optional[pulumi.Input[str]] = None,
-                 members: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                  monitor_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                  name: Optional[pulumi.Input[str]] = None,
                  region: Optional[pulumi.Input[str]] = None,
@@ -35,10 +34,6 @@ def __init__(__self__, *,
                Changing this creates a new pool.
         :param pulumi.Input[str] lb_provider: The backend load balancing provider. For example:
                `haproxy`, `F5`, etc.
-        :param pulumi.Input[Sequence[pulumi.Input[str]]] members: An existing node to add to the pool. Changing this
-               updates the members of the pool. The member object structure is documented
-               below. Please note that the `member` block is deprecated in favor of the
-               `loadbalancer.MemberV1` resource.
         :param pulumi.Input[Sequence[pulumi.Input[str]]] monitor_ids: A list of IDs of monitors to associate with the
                pool.
         :param pulumi.Input[str] name: The name of the pool. Changing this updates the name of
@@ -55,11 +50,6 @@ def __init__(__self__, *,
         pulumi.set(__self__, "subnet_id", subnet_id)
         if lb_provider is not None:
             pulumi.set(__self__, "lb_provider", lb_provider)
-        if members is not None:
-            warnings.warn("""Use loadbalancer.MemberV1 instead""", DeprecationWarning)
-            pulumi.log.warn("""members is deprecated: Use loadbalancer.MemberV1 instead""")
-        if members is not None:
-            pulumi.set(__self__, "members", members)
         if monitor_ids is not None:
             pulumi.set(__self__, "monitor_ids", monitor_ids)
         if name is not None:
@@ -123,24 +113,6 @@ def lb_provider(self) -> Optional[pulumi.Input[str]]:
     def lb_provider(self, value: Optional[pulumi.Input[str]]):
         pulumi.set(self, "lb_provider", value)
 
-    @property
-    @pulumi.getter
-    def members(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
-        """
-        An existing node to add to the pool. Changing this
-        updates the members of the pool. The member object structure is documented
-        below. Please note that the `member` block is deprecated in favor of the
-        `loadbalancer.MemberV1` resource.
-        """
-        warnings.warn("""Use loadbalancer.MemberV1 instead""", DeprecationWarning)
-        pulumi.log.warn("""members is deprecated: Use loadbalancer.MemberV1 instead""")
-
-        return pulumi.get(self, "members")
-
-    @members.setter
-    def members(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
-        pulumi.set(self, "members", value)
-
     @property
     @pulumi.getter(name="monitorIds")
     def monitor_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
@@ -201,7 +173,6 @@ class _PoolV1State:
     def __init__(__self__, *,
                  lb_method: Optional[pulumi.Input[str]] = None,
                  lb_provider: Optional[pulumi.Input[str]] = None,
-                 members: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                  monitor_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                  name: Optional[pulumi.Input[str]] = None,
                  protocol: Optional[pulumi.Input[str]] = None,
@@ -215,10 +186,6 @@ def __init__(__self__, *,
                'LEAST_CONNECTIONS' as valid values for this attribute.
         :param pulumi.Input[str] lb_provider: The backend load balancing provider. For example:
                `haproxy`, `F5`, etc.
-        :param pulumi.Input[Sequence[pulumi.Input[str]]] members: An existing node to add to the pool. Changing this
-               updates the members of the pool. The member object structure is documented
-               below. Please note that the `member` block is deprecated in favor of the
-               `loadbalancer.MemberV1` resource.
         :param pulumi.Input[Sequence[pulumi.Input[str]]] monitor_ids: A list of IDs of monitors to associate with the
                pool.
         :param pulumi.Input[str] name: The name of the pool. Changing this updates the name of
@@ -239,11 +206,6 @@ def __init__(__self__, *,
             pulumi.set(__self__, "lb_method", lb_method)
         if lb_provider is not None:
             pulumi.set(__self__, "lb_provider", lb_provider)
-        if members is not None:
-            warnings.warn("""Use loadbalancer.MemberV1 instead""", DeprecationWarning)
-            pulumi.log.warn("""members is deprecated: Use loadbalancer.MemberV1 instead""")
-        if members is not None:
-            pulumi.set(__self__, "members", members)
         if monitor_ids is not None:
             pulumi.set(__self__, "monitor_ids", monitor_ids)
         if name is not None:
@@ -284,24 +246,6 @@ def lb_provider(self) -> Optional[pulumi.Input[str]]:
     def lb_provider(self, value: Optional[pulumi.Input[str]]):
         pulumi.set(self, "lb_provider", value)
 
-    @property
-    @pulumi.getter
-    def members(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
-        """
-        An existing node to add to the pool. Changing this
-        updates the members of the pool. The member object structure is documented
-        below. Please note that the `member` block is deprecated in favor of the
-        `loadbalancer.MemberV1` resource.
-        """
-        warnings.warn("""Use loadbalancer.MemberV1 instead""", DeprecationWarning)
-        pulumi.log.warn("""members is deprecated: Use loadbalancer.MemberV1 instead""")
-
-        return pulumi.get(self, "members")
-
-    @members.setter
-    def members(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
-        pulumi.set(self, "members", value)
-
     @property
     @pulumi.getter(name="monitorIds")
     def monitor_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
@@ -391,7 +335,6 @@ def __init__(__self__,
                  opts: Optional[pulumi.ResourceOptions] = None,
                  lb_method: Optional[pulumi.Input[str]] = None,
                  lb_provider: Optional[pulumi.Input[str]] = None,
-                 members: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                  monitor_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                  name: Optional[pulumi.Input[str]] = None,
                  protocol: Optional[pulumi.Input[str]] = None,
@@ -493,10 +436,6 @@ def __init__(__self__,
             pool_id=pool1.id)
         ```
 
-        ## Notes
-
-        The `member` block is deprecated in favor of the `loadbalancer.MemberV1` resource.
-
         ## Import
 
         Load Balancer Pools can be imported using the `id`, e.g.
@@ -512,10 +451,6 @@ def __init__(__self__,
                'LEAST_CONNECTIONS' as valid values for this attribute.
         :param pulumi.Input[str] lb_provider: The backend load balancing provider. For example:
                `haproxy`, `F5`, etc.
-        :param pulumi.Input[Sequence[pulumi.Input[str]]] members: An existing node to add to the pool. Changing this
-               updates the members of the pool. The member object structure is documented
-               below. Please note that the `member` block is deprecated in favor of the
-               `loadbalancer.MemberV1` resource.
         :param pulumi.Input[Sequence[pulumi.Input[str]]] monitor_ids: A list of IDs of monitors to associate with the
                pool.
         :param pulumi.Input[str] name: The name of the pool. Changing this updates the name of
@@ -632,10 +567,6 @@ def __init__(__self__,
             pool_id=pool1.id)
         ```
 
-        ## Notes
-
-        The `member` block is deprecated in favor of the `loadbalancer.MemberV1` resource.
-
         ## Import
 
         Load Balancer Pools can be imported using the `id`, e.g.
@@ -661,7 +592,6 @@ def _internal_init(__self__,
                  opts: Optional[pulumi.ResourceOptions] = None,
                  lb_method: Optional[pulumi.Input[str]] = None,
                  lb_provider: Optional[pulumi.Input[str]] = None,
-                 members: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                  monitor_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                  name: Optional[pulumi.Input[str]] = None,
                  protocol: Optional[pulumi.Input[str]] = None,
@@ -681,7 +611,6 @@ def _internal_init(__self__,
                 raise TypeError("Missing required property 'lb_method'")
             __props__.__dict__["lb_method"] = lb_method
             __props__.__dict__["lb_provider"] = lb_provider
-            __props__.__dict__["members"] = members
             __props__.__dict__["monitor_ids"] = monitor_ids
             __props__.__dict__["name"] = name
             if protocol is None and not opts.urn:
@@ -704,7 +633,6 @@ def get(resource_name: str,
             opts: Optional[pulumi.ResourceOptions] = None,
             lb_method: Optional[pulumi.Input[str]] = None,
             lb_provider: Optional[pulumi.Input[str]] = None,
-            members: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
             monitor_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
             name: Optional[pulumi.Input[str]] = None,
             protocol: Optional[pulumi.Input[str]] = None,
@@ -723,10 +651,6 @@ def get(resource_name: str,
                'LEAST_CONNECTIONS' as valid values for this attribute.
         :param pulumi.Input[str] lb_provider: The backend load balancing provider. For example:
                `haproxy`, `F5`, etc.
-        :param pulumi.Input[Sequence[pulumi.Input[str]]] members: An existing node to add to the pool. Changing this
-               updates the members of the pool. The member object structure is documented
-               below. Please note that the `member` block is deprecated in favor of the
-               `loadbalancer.MemberV1` resource.
         :param pulumi.Input[Sequence[pulumi.Input[str]]] monitor_ids: A list of IDs of monitors to associate with the
                pool.
         :param pulumi.Input[str] name: The name of the pool. Changing this updates the name of
@@ -749,7 +673,6 @@ def get(resource_name: str,
 
         __props__.__dict__["lb_method"] = lb_method
         __props__.__dict__["lb_provider"] = lb_provider
-        __props__.__dict__["members"] = members
         __props__.__dict__["monitor_ids"] = monitor_ids
         __props__.__dict__["name"] = name
         __props__.__dict__["protocol"] = protocol
@@ -777,20 +700,6 @@ def lb_provider(self) -> pulumi.Output[str]:
         """
         return pulumi.get(self, "lb_provider")
 
-    @property
-    @pulumi.getter
-    def members(self) -> pulumi.Output[Optional[Sequence[str]]]:
-        """
-        An existing node to add to the pool. Changing this
-        updates the members of the pool. The member object structure is documented
-        below. Please note that the `member` block is deprecated in favor of the
-        `loadbalancer.MemberV1` resource.
-        """
-        warnings.warn("""Use loadbalancer.MemberV1 instead""", DeprecationWarning)
-        pulumi.log.warn("""members is deprecated: Use loadbalancer.MemberV1 instead""")
-
-        return pulumi.get(self, "members")
-
     @property
     @pulumi.getter(name="monitorIds")
     def monitor_ids(self) -> pulumi.Output[Optional[Sequence[str]]]:
diff --git a/sdk/python/pulumi_openstack/loadbalancer/quota.py b/sdk/python/pulumi_openstack/loadbalancer/quota.py
index 6b54bdd03..b18be6df1 100644
--- a/sdk/python/pulumi_openstack/loadbalancer/quota.py
+++ b/sdk/python/pulumi_openstack/loadbalancer/quota.py
@@ -378,8 +378,6 @@ def __init__(__self__,
 
         > **Note:** This usually requires admin privileges.
 
-        > **Note:** This resource is only available for Octavia.
-
         > **Note:** This resource has a no-op deletion so no actual actions will be done against the OpenStack
            API in case of delete call.
 
@@ -450,8 +448,6 @@ def __init__(__self__,
 
         > **Note:** This usually requires admin privileges.
 
-        > **Note:** This resource is only available for Octavia.
-
         > **Note:** This resource has a no-op deletion so no actual actions will be done against the OpenStack
            API in case of delete call.
 
diff --git a/sdk/python/pulumi_openstack/networking/_inputs.py b/sdk/python/pulumi_openstack/networking/_inputs.py
index 77ed980b0..434535747 100644
--- a/sdk/python/pulumi_openstack/networking/_inputs.py
+++ b/sdk/python/pulumi_openstack/networking/_inputs.py
@@ -18,8 +18,6 @@
     'RouterExternalFixedIpArgs',
     'RouterVendorOptionsArgs',
     'SubnetAllocationPoolArgs',
-    'SubnetAllocationPoolsCollectionArgs',
-    'SubnetHostRouteArgs',
     'TrunkSubPortArgs',
 ]
 
@@ -413,80 +411,6 @@ def start(self, value: pulumi.Input[str]):
         pulumi.set(self, "start", value)
 
 
-@pulumi.input_type
-class SubnetAllocationPoolsCollectionArgs:
-    def __init__(__self__, *,
-                 end: pulumi.Input[str],
-                 start: pulumi.Input[str]):
-        """
-        :param pulumi.Input[str] end: The ending address.
-        :param pulumi.Input[str] start: The starting address.
-        """
-        pulumi.set(__self__, "end", end)
-        pulumi.set(__self__, "start", start)
-
-    @property
-    @pulumi.getter
-    def end(self) -> pulumi.Input[str]:
-        """
-        The ending address.
-        """
-        return pulumi.get(self, "end")
-
-    @end.setter
-    def end(self, value: pulumi.Input[str]):
-        pulumi.set(self, "end", value)
-
-    @property
-    @pulumi.getter
-    def start(self) -> pulumi.Input[str]:
-        """
-        The starting address.
-        """
-        return pulumi.get(self, "start")
-
-    @start.setter
-    def start(self, value: pulumi.Input[str]):
-        pulumi.set(self, "start", value)
-
-
-@pulumi.input_type
-class SubnetHostRouteArgs:
-    def __init__(__self__, *,
-                 destination_cidr: pulumi.Input[str],
-                 next_hop: pulumi.Input[str]):
-        """
-        :param pulumi.Input[str] destination_cidr: The destination CIDR.
-        :param pulumi.Input[str] next_hop: The next hop in the route.
-        """
-        pulumi.set(__self__, "destination_cidr", destination_cidr)
-        pulumi.set(__self__, "next_hop", next_hop)
-
-    @property
-    @pulumi.getter(name="destinationCidr")
-    def destination_cidr(self) -> pulumi.Input[str]:
-        """
-        The destination CIDR.
-        """
-        return pulumi.get(self, "destination_cidr")
-
-    @destination_cidr.setter
-    def destination_cidr(self, value: pulumi.Input[str]):
-        pulumi.set(self, "destination_cidr", value)
-
-    @property
-    @pulumi.getter(name="nextHop")
-    def next_hop(self) -> pulumi.Input[str]:
-        """
-        The next hop in the route.
-        """
-        return pulumi.get(self, "next_hop")
-
-    @next_hop.setter
-    def next_hop(self, value: pulumi.Input[str]):
-        pulumi.set(self, "next_hop", value)
-
-
 @pulumi.input_type
 class TrunkSubPortArgs:
     def __init__(__self__, *,
diff --git a/sdk/python/pulumi_openstack/networking/get_floating_ip.py b/sdk/python/pulumi_openstack/networking/get_floating_ip.py
index 7a3efe582..8595a0efb 100644
--- a/sdk/python/pulumi_openstack/networking/get_floating_ip.py
+++ b/sdk/python/pulumi_openstack/networking/get_floating_ip.py
@@ -189,7 +189,7 @@ def get_floating_ip(address: Optional[str] = None,
     :param str address: The IP address of the floating IP.
     :param str description: Human-readable description of the floating IP.
     :param str fixed_ip: The specific IP address of the internal port which should be associated with the floating IP.
-    :param str pool: The name of the pool from which the floating IP belongs to.
+    :param str pool: The ID of the network from which the floating IP belongs to.
     :param str port_id: The ID of the port the floating IP is attached.
     :param str region: The region in which to obtain the V2 Neutron client.
            A Neutron client is needed to retrieve floating IP ids. If omitted, the
@@ -254,7 +254,7 @@ def get_floating_ip_output(address: Optional[pulumi.Input[Optional[str]]] = None
     :param str address: The IP address of the floating IP.
     :param str description: Human-readable description of the floating IP.
     :param str fixed_ip: The specific IP address of the internal port which should be associated with the floating IP.
-    :param str pool: The name of the pool from which the floating IP belongs to.
+    :param str pool: The ID of the network from which the floating IP belongs to.
     :param str port_id: The ID of the port the floating IP is attached.
     :param str region: The region in which to obtain the V2 Neutron client.
            A Neutron client is needed to retrieve floating IP ids. If omitted, the
diff --git a/sdk/python/pulumi_openstack/networking/get_subnet.py b/sdk/python/pulumi_openstack/networking/get_subnet.py
index 66b8377c8..c31dc9969 100644
--- a/sdk/python/pulumi_openstack/networking/get_subnet.py
+++ b/sdk/python/pulumi_openstack/networking/get_subnet.py
@@ -22,7 +22,7 @@ class GetSubnetResult:
     """
     A collection of values returned by getSubnet.
     """
-    def __init__(__self__, all_tags=None, allocation_pools=None, cidr=None, description=None, dhcp_disabled=None, dhcp_enabled=None, dns_nameservers=None, enable_dhcp=None, gateway_ip=None, host_routes=None, id=None, ip_version=None, ipv6_address_mode=None, ipv6_ra_mode=None, name=None, network_id=None, region=None, service_types=None, subnet_id=None, subnetpool_id=None, tags=None, tenant_id=None):
+    def __init__(__self__, all_tags=None, allocation_pools=None, cidr=None, description=None, dhcp_enabled=None, dns_nameservers=None, enable_dhcp=None, gateway_ip=None, host_routes=None, id=None, ip_version=None, ipv6_address_mode=None, ipv6_ra_mode=None, name=None, network_id=None, region=None, service_types=None, subnet_id=None, subnetpool_id=None, tags=None, tenant_id=None):
         if all_tags and not isinstance(all_tags, list):
             raise TypeError("Expected argument 'all_tags' to be a list")
         pulumi.set(__self__, "all_tags", all_tags)
@@ -35,9 +35,6 @@ def __init__(__self__, all_tags=None, allocation_pools=None, cidr=None, descript
         if description and not isinstance(description, str):
             raise TypeError("Expected argument 'description' to be a str")
         pulumi.set(__self__, "description", description)
-        if dhcp_disabled and not isinstance(dhcp_disabled, bool):
-            raise TypeError("Expected argument 'dhcp_disabled' to be a bool")
-        pulumi.set(__self__, "dhcp_disabled", dhcp_disabled)
         if dhcp_enabled and not isinstance(dhcp_enabled, bool):
             raise TypeError("Expected argument 'dhcp_enabled' to be a bool")
         pulumi.set(__self__, "dhcp_enabled", dhcp_enabled)
@@ -116,14 +113,6 @@ def cidr(self) -> str:
     def description(self) -> str:
         return pulumi.get(self, "description")
 
-    @property
-    @pulumi.getter(name="dhcpDisabled")
-    def dhcp_disabled(self) -> Optional[bool]:
-        warnings.warn("""use dhcp_enabled instead""", DeprecationWarning)
-        pulumi.log.warn("""dhcp_disabled is deprecated: use dhcp_enabled instead""")
-
-        return pulumi.get(self, "dhcp_disabled")
-
     @property
     @pulumi.getter(name="dhcpEnabled")
     def dhcp_enabled(self) -> Optional[bool]:
@@ -238,7 +227,6 @@ def __await__(self):
             allocation_pools=self.allocation_pools,
             cidr=self.cidr,
             description=self.description,
-            dhcp_disabled=self.dhcp_disabled,
             dhcp_enabled=self.dhcp_enabled,
             dns_nameservers=self.dns_nameservers,
             enable_dhcp=self.enable_dhcp,
@@ -260,7 +248,6 @@ def __await__(self):
 
 def get_subnet(cidr: Optional[str] = None,
                description: Optional[str] = None,
-               dhcp_disabled: Optional[bool] = None,
                dhcp_enabled: Optional[bool] = None,
                gateway_ip: Optional[str] = None,
                ip_version: Optional[int] = None,
@@ -309,7 +296,6 @@ def get_subnet(cidr: Optional[str] = None,
     __args__ = dict()
     __args__['cidr'] = cidr
     __args__['description'] = description
-    __args__['dhcpDisabled'] = dhcp_disabled
     __args__['dhcpEnabled'] = dhcp_enabled
     __args__['gatewayIp'] = gateway_ip
     __args__['ipVersion'] = ip_version
@@ -330,7 +316,6 @@ def get_subnet(cidr: Optional[str] = None,
         allocation_pools=pulumi.get(__ret__, 'allocation_pools'),
         cidr=pulumi.get(__ret__, 'cidr'),
         description=pulumi.get(__ret__, 'description'),
-        dhcp_disabled=pulumi.get(__ret__, 'dhcp_disabled'),
         dhcp_enabled=pulumi.get(__ret__, 'dhcp_enabled'),
         dns_nameservers=pulumi.get(__ret__, 'dns_nameservers'),
         enable_dhcp=pulumi.get(__ret__, 'enable_dhcp'),
@@ -353,7 +338,6 @@ def get_subnet(cidr: Optional[str] = None,
 @_utilities.lift_output_func(get_subnet)
 def get_subnet_output(cidr: Optional[pulumi.Input[Optional[str]]] = None,
                       description: Optional[pulumi.Input[Optional[str]]] = None,
-                      dhcp_disabled: Optional[pulumi.Input[Optional[bool]]] = None,
                       dhcp_enabled: Optional[pulumi.Input[Optional[bool]]] = None,
                       gateway_ip: Optional[pulumi.Input[Optional[str]]] = None,
                       ip_version: Optional[pulumi.Input[Optional[int]]] = None,
diff --git a/sdk/python/pulumi_openstack/networking/outputs.py b/sdk/python/pulumi_openstack/networking/outputs.py
index 958e261f5..240c9ee8f 100644
--- a/sdk/python/pulumi_openstack/networking/outputs.py
+++ b/sdk/python/pulumi_openstack/networking/outputs.py
@@ -18,8 +18,6 @@
     'RouterExternalFixedIp',
     'RouterVendorOptions',
     'SubnetAllocationPool',
-    'SubnetAllocationPoolsCollection',
-    'SubnetHostRoute',
     'TrunkSubPort',
     'GetNetworkSegmentResult',
     'GetPortAllowedAddressPairResult',
@@ -476,83 +474,6 @@ def start(self) -> str:
         return pulumi.get(self, "start")
 
 
-@pulumi.output_type
-class SubnetAllocationPoolsCollection(dict):
-    def __init__(__self__, *,
-                 end: str,
-                 start: str):
-        """
-        :param str end: The ending address.
-        :param str start: The starting address.
-        """
-        pulumi.set(__self__, "end", end)
-        pulumi.set(__self__, "start", start)
-
-    @property
-    @pulumi.getter
-    def end(self) -> str:
-        """
-        The ending address.
-        """
-        return pulumi.get(self, "end")
-
-    @property
-    @pulumi.getter
-    def start(self) -> str:
-        """
-        The starting address.
-        """
-        return pulumi.get(self, "start")
-
-
-@pulumi.output_type
-class SubnetHostRoute(dict):
-    @staticmethod
-    def __key_warning(key: str):
-        suggest = None
-        if key == "destinationCidr":
-            suggest = "destination_cidr"
-        elif key == "nextHop":
-            suggest = "next_hop"
-
-        if suggest:
-            pulumi.log.warn(f"Key '{key}' not found in SubnetHostRoute. Access the value via the '{suggest}' property getter instead.")
-
-    def __getitem__(self, key: str) -> Any:
-        SubnetHostRoute.__key_warning(key)
-        return super().__getitem__(key)
-
-    def get(self, key: str, default = None) -> Any:
-        SubnetHostRoute.__key_warning(key)
-        return super().get(key, default)
-
-    def __init__(__self__, *,
-                 destination_cidr: str,
-                 next_hop: str):
-        """
-        :param str destination_cidr: The destination CIDR.
-        :param str next_hop: The next hop in the route.
-        """
-        pulumi.set(__self__, "destination_cidr", destination_cidr)
-        pulumi.set(__self__, "next_hop", next_hop)
-
-    @property
-    @pulumi.getter(name="destinationCidr")
-    def destination_cidr(self) -> str:
-        """
-        The destination CIDR.
-        """
-        return pulumi.get(self, "destination_cidr")
-
-    @property
-    @pulumi.getter(name="nextHop")
-    def next_hop(self) -> str:
-        """
-        The next hop in the route.
-        """
-        return pulumi.get(self, "next_hop")
-
-
 @pulumi.output_type
 class TrunkSubPort(dict):
     @staticmethod
diff --git a/sdk/python/pulumi_openstack/networking/router.py b/sdk/python/pulumi_openstack/networking/router.py
index 1c1d21637..a2eca8629 100644
--- a/sdk/python/pulumi_openstack/networking/router.py
+++ b/sdk/python/pulumi_openstack/networking/router.py
@@ -22,7 +22,6 @@ def __init__(__self__, *,
                  distributed: Optional[pulumi.Input[bool]] = None,
                  enable_snat: Optional[pulumi.Input[bool]] = None,
                  external_fixed_ips: Optional[pulumi.Input[Sequence[pulumi.Input['RouterExternalFixedIpArgs']]]] = None,
-                 external_gateway: Optional[pulumi.Input[str]] = None,
                  external_network_id: Optional[pulumi.Input[str]] = None,
                  external_subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                  name: Optional[pulumi.Input[str]] = None,
@@ -53,11 +52,6 @@ def __init__(__self__, *,
                can be repeated. The structure is described below. An `external_network_id`
                has to be set in order to set this property. Changing this updates the
                external fixed IPs of the router.
-        :param pulumi.Input[str] external_gateway: The
-               network UUID of an external gateway for the router. A router with an
-               external gateway is required if any compute instances or load balancers
-               will be using floating IPs. Changing this updates the external gateway
-               of an existing router.
         :param pulumi.Input[str] external_network_id: The network UUID of an external gateway
                for the router. A router with an external gateway is required if any
                compute instances or load balancers will be using floating IPs. Changing
@@ -92,11 +86,6 @@ def __init__(__self__, *,
             pulumi.set(__self__, "enable_snat", enable_snat)
         if external_fixed_ips is not None:
             pulumi.set(__self__, "external_fixed_ips", external_fixed_ips)
-        if external_gateway is not None:
-            warnings.warn("""use external_network_id instead""", DeprecationWarning)
-            pulumi.log.warn("""external_gateway is deprecated: use external_network_id instead""")
-        if external_gateway is not None:
-            pulumi.set(__self__, "external_gateway", external_gateway)
         if external_network_id is not None:
             pulumi.set(__self__, "external_network_id", external_network_id)
         if external_subnet_ids is not None:
@@ -200,25 +189,6 @@ def external_fixed_ips(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['Rou
     def external_fixed_ips(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['RouterExternalFixedIpArgs']]]]):
         pulumi.set(self, "external_fixed_ips", value)
 
-    @property
-    @pulumi.getter(name="externalGateway")
-    def external_gateway(self) -> Optional[pulumi.Input[str]]:
-        """
-        The
-        network UUID of an external gateway for the router. A router with an
-        external gateway is required if any compute instances or load balancers
-        will be using floating IPs. Changing this updates the external gateway
-        of an existing router.
-        """
-        warnings.warn("""use external_network_id instead""", DeprecationWarning)
-        pulumi.log.warn("""external_gateway is deprecated: use external_network_id instead""")
-
-        return pulumi.get(self, "external_gateway")
-
-    @external_gateway.setter
-    def external_gateway(self, value: Optional[pulumi.Input[str]]):
-        pulumi.set(self, "external_gateway", value)
-
     @property
     @pulumi.getter(name="externalNetworkId")
     def external_network_id(self) -> Optional[pulumi.Input[str]]:
@@ -339,7 +309,6 @@ def __init__(__self__, *,
                  distributed: Optional[pulumi.Input[bool]] = None,
                  enable_snat: Optional[pulumi.Input[bool]] = None,
                  external_fixed_ips: Optional[pulumi.Input[Sequence[pulumi.Input['RouterExternalFixedIpArgs']]]] = None,
-                 external_gateway: Optional[pulumi.Input[str]] = None,
                  external_network_id: Optional[pulumi.Input[str]] = None,
                  external_subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                  name: Optional[pulumi.Input[str]] = None,
@@ -372,11 +341,6 @@ def __init__(__self__, *,
                can be repeated. The structure is described below. An `external_network_id`
                has to be set in order to set this property. Changing this updates the
                external fixed IPs of the router.
-        :param pulumi.Input[str] external_gateway: The
-               network UUID of an external gateway for the router. A router with an
-               external gateway is required if any compute instances or load balancers
-               will be using floating IPs. Changing this updates the external gateway
-               of an existing router.
         :param pulumi.Input[str] external_network_id: The network UUID of an external gateway
                for the router. A router with an external gateway is required if any
                compute instances or load balancers will be using floating IPs. Changing
@@ -413,11 +377,6 @@ def __init__(__self__, *,
             pulumi.set(__self__, "enable_snat", enable_snat)
         if external_fixed_ips is not None:
             pulumi.set(__self__, "external_fixed_ips", external_fixed_ips)
-        if external_gateway is not None:
-            warnings.warn("""use external_network_id instead""", DeprecationWarning)
-            pulumi.log.warn("""external_gateway is deprecated: use external_network_id instead""")
-        if external_gateway is not None:
-            pulumi.set(__self__, "external_gateway", external_gateway)
         if external_network_id is not None:
             pulumi.set(__self__, "external_network_id", external_network_id)
         if external_subnet_ids is not None:
@@ -534,25 +493,6 @@ def external_fixed_ips(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['Rou
     def external_fixed_ips(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['RouterExternalFixedIpArgs']]]]):
         pulumi.set(self, "external_fixed_ips", value)
 
-    @property
-    @pulumi.getter(name="externalGateway")
-    def external_gateway(self) -> Optional[pulumi.Input[str]]:
-        """
-        The
-        network UUID of an external gateway for the router. A router with an
-        external gateway is required if any compute instances or load balancers
-        will be using floating IPs. Changing this updates the external gateway
-        of an existing router.
-        """
-        warnings.warn("""use external_network_id instead""", DeprecationWarning)
-        pulumi.log.warn("""external_gateway is deprecated: use external_network_id instead""")
-
-        return pulumi.get(self, "external_gateway")
-
-    @external_gateway.setter
-    def external_gateway(self, value: Optional[pulumi.Input[str]]):
-        pulumi.set(self, "external_gateway", value)
-
     @property
     @pulumi.getter(name="externalNetworkId")
     def external_network_id(self) -> Optional[pulumi.Input[str]]:
@@ -674,7 +614,6 @@ def __init__(__self__,
                  distributed: Optional[pulumi.Input[bool]] = None,
                  enable_snat: Optional[pulumi.Input[bool]] = None,
                  external_fixed_ips: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['RouterExternalFixedIpArgs']]]]] = None,
-                 external_gateway: Optional[pulumi.Input[str]] = None,
                  external_network_id: Optional[pulumi.Input[str]] = None,
                  external_subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                  name: Optional[pulumi.Input[str]] = None,
@@ -729,11 +668,6 @@ def __init__(__self__,
                can be repeated. The structure is described below. An `external_network_id`
                has to be set in order to set this property. Changing this updates the
                external fixed IPs of the router.
-        :param pulumi.Input[str] external_gateway: The
-               network UUID of an external gateway for the router. A router with an
-               external gateway is required if any compute instances or load balancers
-               will be using floating IPs. Changing this updates the external gateway
-               of an existing router.
         :param pulumi.Input[str] external_network_id: The network UUID of an external gateway
                for the router. A router with an external gateway is required if any
                compute instances or load balancers will be using floating IPs. Changing
@@ -806,7 +740,6 @@ def _internal_init(__self__,
                  distributed: Optional[pulumi.Input[bool]] = None,
                  enable_snat: Optional[pulumi.Input[bool]] = None,
                  external_fixed_ips: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['RouterExternalFixedIpArgs']]]]] = None,
-                 external_gateway: Optional[pulumi.Input[str]] = None,
                  external_network_id: Optional[pulumi.Input[str]] = None,
                  external_subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                  name: Optional[pulumi.Input[str]] = None,
@@ -830,7 +763,6 @@ def _internal_init(__self__,
             __props__.__dict__["distributed"] = distributed
             __props__.__dict__["enable_snat"] = enable_snat
             __props__.__dict__["external_fixed_ips"] = external_fixed_ips
-            __props__.__dict__["external_gateway"] = external_gateway
             __props__.__dict__["external_network_id"] = external_network_id
             __props__.__dict__["external_subnet_ids"] = external_subnet_ids
             __props__.__dict__["name"] = name
@@ -857,7 +789,6 @@ def get(resource_name: str,
             distributed: Optional[pulumi.Input[bool]] = None,
             enable_snat: Optional[pulumi.Input[bool]] = None,
             external_fixed_ips: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['RouterExternalFixedIpArgs']]]]] = None,
-            external_gateway: Optional[pulumi.Input[str]] = None,
             external_network_id: Optional[pulumi.Input[str]] = None,
             external_subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
             name: Optional[pulumi.Input[str]] = None,
@@ -895,11 +826,6 @@ def get(resource_name: str,
                can be repeated. The structure is described below. An `external_network_id`
                has to be set in order to set this property. Changing this updates the
                external fixed IPs of the router.
-        :param pulumi.Input[str] external_gateway: The
-               network UUID of an external gateway for the router. A router with an
-               external gateway is required if any compute instances or load balancers
-               will be using floating IPs. Changing this updates the external gateway
-               of an existing router.
         :param pulumi.Input[str] external_network_id: The network UUID of an external gateway
                for the router. A router with an external gateway is required if any
                compute instances or load balancers will be using floating IPs. Changing
@@ -933,7 +859,6 @@ def get(resource_name: str,
         __props__.__dict__["distributed"] = distributed
         __props__.__dict__["enable_snat"] = enable_snat
         __props__.__dict__["external_fixed_ips"] = external_fixed_ips
-        __props__.__dict__["external_gateway"] = external_gateway
         __props__.__dict__["external_network_id"] = external_network_id
         __props__.__dict__["external_subnet_ids"] = external_subnet_ids
         __props__.__dict__["name"] = name
@@ -1015,21 +940,6 @@ def external_fixed_ips(self) -> pulumi.Output[Sequence['outputs.RouterExternalFi
         """
         return pulumi.get(self, "external_fixed_ips")
 
-    @property
-    @pulumi.getter(name="externalGateway")
-    def external_gateway(self) -> pulumi.Output[str]:
-        """
-        The
-        network UUID of an external gateway for the router. A router with an
-        external gateway is required if any compute instances or load balancers
-        will be using floating IPs. Changing this updates the external gateway
-        of an existing router.
-        """
-        warnings.warn("""use external_network_id instead""", DeprecationWarning)
-        pulumi.log.warn("""external_gateway is deprecated: use external_network_id instead""")
-
-        return pulumi.get(self, "external_gateway")
-
     @property
     @pulumi.getter(name="externalNetworkId")
     def external_network_id(self) -> pulumi.Output[str]:
diff --git a/sdk/python/pulumi_openstack/networking/subnet.py b/sdk/python/pulumi_openstack/networking/subnet.py
index 765895416..24660016f 100644
--- a/sdk/python/pulumi_openstack/networking/subnet.py
+++ b/sdk/python/pulumi_openstack/networking/subnet.py
@@ -18,13 +18,11 @@ class SubnetArgs:
     def __init__(__self__, *,
                  network_id: pulumi.Input[str],
                  allocation_pools: Optional[pulumi.Input[Sequence[pulumi.Input['SubnetAllocationPoolArgs']]]] = None,
-                 allocation_pools_collection: Optional[pulumi.Input[Sequence[pulumi.Input['SubnetAllocationPoolsCollectionArgs']]]] = None,
                  cidr: Optional[pulumi.Input[str]] = None,
                  description: Optional[pulumi.Input[str]] = None,
                  dns_nameservers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                  enable_dhcp: Optional[pulumi.Input[bool]] = None,
                  gateway_ip: Optional[pulumi.Input[str]] = None,
-                 host_routes: Optional[pulumi.Input[Sequence[pulumi.Input['SubnetHostRouteArgs']]]] = None,
                  ip_version: Optional[pulumi.Input[int]] = None,
                  ipv6_address_mode: Optional[pulumi.Input[str]] = None,
                  ipv6_ra_mode: Optional[pulumi.Input[str]] = None,
@@ -47,9 +45,6 @@ def __init__(__self__, *,
                than one range of IP addresses to use with DHCP. However, each IP range
                must be from the same CIDR that the subnet is part of.
                The `allocation_pool` block is documented below.
-        :param pulumi.Input[Sequence[pulumi.Input['SubnetAllocationPoolsCollectionArgs']]] allocation_pools_collection: A block declaring the start and end range of the IP addresses available for
-               use with DHCP in this subnet.
-               The `allocation_pools` block is documented below.
         :param pulumi.Input[str] cidr: CIDR representing IP range for this subnet, based on IP
                version. You can omit this option if you are creating a subnet from a
                subnet pool.
@@ -65,11 +60,6 @@ def __init__(__self__, *,
                Leaving this blank and not setting `no_gateway` will cause a default
                gateway of `.1` to be used. Changing this updates the gateway IP of the
                existing subnet.
-        :param pulumi.Input[Sequence[pulumi.Input['SubnetHostRouteArgs']]] host_routes: (**Deprecated** - use `networking.SubnetRoute`
-               instead) An array of routes that should be used by devices
-               with IPs from this subnet (not including local subnet route). The host_route
-               object structure is documented below. Changing this updates the host routes
-               for the existing subnet.
         :param pulumi.Input[int] ip_version: IP version, either 4 (default) or 6. Changing this creates a
                new subnet.
         :param pulumi.Input[str] ipv6_address_mode: The IPv6 address mode. Valid values are
@@ -99,11 +89,6 @@ def __init__(__self__, *,
         pulumi.set(__self__, "network_id", network_id)
         if allocation_pools is not None:
             pulumi.set(__self__, "allocation_pools", allocation_pools)
-        if allocation_pools_collection is not None:
-            warnings.warn("""use allocation_pool instead""", DeprecationWarning)
-            pulumi.log.warn("""allocation_pools_collection is deprecated: use allocation_pool instead""")
-        if allocation_pools_collection is not None:
-            pulumi.set(__self__, "allocation_pools_collection", allocation_pools_collection)
         if cidr is not None:
             pulumi.set(__self__, "cidr", cidr)
         if description is not None:
@@ -114,11 +99,6 @@ def __init__(__self__, *,
             pulumi.set(__self__, "enable_dhcp", enable_dhcp)
         if gateway_ip is not None:
             pulumi.set(__self__, "gateway_ip", gateway_ip)
-        if host_routes is not None:
-            warnings.warn("""Use networking.SubnetRoute instead""", DeprecationWarning)
-            pulumi.log.warn("""host_routes is deprecated: Use networking.SubnetRoute instead""")
-        if host_routes is not None:
-            pulumi.set(__self__, "host_routes", host_routes)
         if ip_version is not None:
             pulumi.set(__self__, "ip_version", ip_version)
         if ipv6_address_mode is not None:
@@ -174,23 +154,6 @@ def allocation_pools(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['Subne
     def allocation_pools(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['SubnetAllocationPoolArgs']]]]):
         pulumi.set(self, "allocation_pools", value)
 
-    @property
-    @pulumi.getter(name="allocationPoolsCollection")
-    def allocation_pools_collection(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['SubnetAllocationPoolsCollectionArgs']]]]:
-        """
-        A block declaring the start and end range of the IP addresses available for
-        use with DHCP in this subnet.
-        The `allocation_pools` block is documented below.
-        """
-        warnings.warn("""use allocation_pool instead""", DeprecationWarning)
-        pulumi.log.warn("""allocation_pools_collection is deprecated: use allocation_pool instead""")
-
-        return pulumi.get(self, "allocation_pools_collection")
-
-    @allocation_pools_collection.setter
-    def allocation_pools_collection(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['SubnetAllocationPoolsCollectionArgs']]]]):
-        pulumi.set(self, "allocation_pools_collection", value)
-
     @property
     @pulumi.getter
     def cidr(self) -> Optional[pulumi.Input[str]]:
@@ -261,25 +224,6 @@ def gateway_ip(self) -> Optional[pulumi.Input[str]]:
     def gateway_ip(self, value: Optional[pulumi.Input[str]]):
         pulumi.set(self, "gateway_ip", value)
 
-    @property
-    @pulumi.getter(name="hostRoutes")
-    def host_routes(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['SubnetHostRouteArgs']]]]:
-        """
-        (**Deprecated** - use `networking.SubnetRoute`
-        instead) An array of routes that should be used by devices
-        with IPs from this subnet (not including local subnet route). The host_route
-        object structure is documented below. Changing this updates the host routes
-        for the existing subnet.
-        """
-        warnings.warn("""Use networking.SubnetRoute instead""", DeprecationWarning)
-        pulumi.log.warn("""host_routes is deprecated: Use networking.SubnetRoute instead""")
-
-        return pulumi.get(self, "host_routes")
-
-    @host_routes.setter
-    def host_routes(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['SubnetHostRouteArgs']]]]):
-        pulumi.set(self, "host_routes", value)
-
     @property
     @pulumi.getter(name="ipVersion")
     def ip_version(self) -> Optional[pulumi.Input[int]]:
@@ -443,13 +387,11 @@ class _SubnetState:
     def __init__(__self__, *,
                  all_tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                  allocation_pools: Optional[pulumi.Input[Sequence[pulumi.Input['SubnetAllocationPoolArgs']]]] = None,
-                 allocation_pools_collection: Optional[pulumi.Input[Sequence[pulumi.Input['SubnetAllocationPoolsCollectionArgs']]]] = None,
                  cidr: Optional[pulumi.Input[str]] = None,
                  description: Optional[pulumi.Input[str]] = None,
                  dns_nameservers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                  enable_dhcp: Optional[pulumi.Input[bool]] = None,
                  gateway_ip: Optional[pulumi.Input[str]] = None,
-                 host_routes: Optional[pulumi.Input[Sequence[pulumi.Input['SubnetHostRouteArgs']]]] = None,
                  ip_version: Optional[pulumi.Input[int]] = None,
                  ipv6_address_mode: Optional[pulumi.Input[str]] = None,
                  ipv6_ra_mode: Optional[pulumi.Input[str]] = None,
@@ -473,9 +415,6 @@ def __init__(__self__, *,
                than one range of IP addresses to use with DHCP. However, each IP range
                must be from the same CIDR that the subnet is part of.
                The `allocation_pool` block is documented below.
-        :param pulumi.Input[Sequence[pulumi.Input['SubnetAllocationPoolsCollectionArgs']]] allocation_pools_collection: A block declaring the start and end range of the IP addresses available for
-               use with DHCP in this subnet.
-               The `allocation_pools` block is documented below.
         :param pulumi.Input[str] cidr: CIDR representing IP range for this subnet, based on IP
                version. You can omit this option if you are creating a subnet from a
                subnet pool.
@@ -491,11 +430,6 @@ def __init__(__self__, *,
                Leaving this blank and not setting `no_gateway` will cause a default
                gateway of `.1` to be used. Changing this updates the gateway IP of the
                existing subnet.
-        :param pulumi.Input[Sequence[pulumi.Input['SubnetHostRouteArgs']]] host_routes: (**Deprecated** - use `networking.SubnetRoute`
-               instead) An array of routes that should be used by devices
-               with IPs from this subnet (not including local subnet route). The host_route
-               object structure is documented below. Changing this updates the host routes
-               for the existing subnet.
         :param pulumi.Input[int] ip_version: IP version, either 4 (default) or 6. Changing this creates a
                new subnet.
         :param pulumi.Input[str] ipv6_address_mode: The IPv6 address mode. Valid values are
@@ -528,11 +462,6 @@ def __init__(__self__, *,
             pulumi.set(__self__, "all_tags", all_tags)
         if allocation_pools is not None:
             pulumi.set(__self__, "allocation_pools", allocation_pools)
-        if allocation_pools_collection is not None:
-            warnings.warn("""use allocation_pool instead""", DeprecationWarning)
-            pulumi.log.warn("""allocation_pools_collection is deprecated: use allocation_pool instead""")
-        if allocation_pools_collection is not None:
-            pulumi.set(__self__, "allocation_pools_collection", allocation_pools_collection)
         if cidr is not None:
             pulumi.set(__self__, "cidr", cidr)
         if description is not None:
@@ -543,11 +472,6 @@ def __init__(__self__, *,
             pulumi.set(__self__, "enable_dhcp", enable_dhcp)
         if gateway_ip is not None:
             pulumi.set(__self__, "gateway_ip", gateway_ip)
-        if host_routes is not None:
-            warnings.warn("""Use networking.SubnetRoute instead""", DeprecationWarning)
-            pulumi.log.warn("""host_routes is deprecated: Use networking.SubnetRoute instead""")
-        if host_routes is not None:
-            pulumi.set(__self__, "host_routes", host_routes)
         if ip_version is not None:
             pulumi.set(__self__, "ip_version", ip_version)
         if ipv6_address_mode is not None:
@@ -605,23 +529,6 @@ def allocation_pools(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['Subne
     def allocation_pools(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['SubnetAllocationPoolArgs']]]]):
         pulumi.set(self, "allocation_pools", value)
 
-    @property
-    @pulumi.getter(name="allocationPoolsCollection")
-    def allocation_pools_collection(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['SubnetAllocationPoolsCollectionArgs']]]]:
-        """
-        A block declaring the start and end range of the IP addresses available for
-        use with DHCP in this subnet.
-        The `allocation_pools` block is documented below.
-        """
-        warnings.warn("""use allocation_pool instead""", DeprecationWarning)
-        pulumi.log.warn("""allocation_pools_collection is deprecated: use allocation_pool instead""")
-
-        return pulumi.get(self, "allocation_pools_collection")
-
-    @allocation_pools_collection.setter
-    def allocation_pools_collection(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['SubnetAllocationPoolsCollectionArgs']]]]):
-        pulumi.set(self, "allocation_pools_collection", value)
-
     @property
     @pulumi.getter
     def cidr(self) -> Optional[pulumi.Input[str]]:
@@ -692,25 +599,6 @@ def gateway_ip(self) -> Optional[pulumi.Input[str]]:
     def gateway_ip(self, value: Optional[pulumi.Input[str]]):
         pulumi.set(self, "gateway_ip", value)
 
-    @property
-    @pulumi.getter(name="hostRoutes")
-    def host_routes(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['SubnetHostRouteArgs']]]]:
-        """
-        (**Deprecated** - use `networking.SubnetRoute`
-        instead) An array of routes that should be used by devices
-        with IPs from this subnet (not including local subnet route). The host_route
-        object structure is documented below. Changing this updates the host routes
-        for the existing subnet.
-        """
-        warnings.warn("""Use networking.SubnetRoute instead""", DeprecationWarning)
-        pulumi.log.warn("""host_routes is deprecated: Use networking.SubnetRoute instead""")
-
-        return pulumi.get(self, "host_routes")
-
-    @host_routes.setter
-    def host_routes(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['SubnetHostRouteArgs']]]]):
-        pulumi.set(self, "host_routes", value)
-
     @property
     @pulumi.getter(name="ipVersion")
     def ip_version(self) -> Optional[pulumi.Input[int]]:
@@ -888,13 +776,11 @@ def __init__(__self__,
                  resource_name: str,
                  opts: Optional[pulumi.ResourceOptions] = None,
                  allocation_pools: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['SubnetAllocationPoolArgs']]]]] = None,
-                 allocation_pools_collection: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['SubnetAllocationPoolsCollectionArgs']]]]] = None,
                  cidr: Optional[pulumi.Input[str]] = None,
                  description: Optional[pulumi.Input[str]] = None,
                  dns_nameservers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                  enable_dhcp: Optional[pulumi.Input[bool]] = None,
                  gateway_ip: Optional[pulumi.Input[str]] = None,
-                 host_routes: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['SubnetHostRouteArgs']]]]] = None,
                  ip_version: Optional[pulumi.Input[int]] = None,
                  ipv6_address_mode: Optional[pulumi.Input[str]] = None,
                  ipv6_ra_mode: Optional[pulumi.Input[str]] = None,
@@ -942,9 +828,6 @@ def __init__(__self__,
                than one range of IP addresses to use with DHCP. However, each IP range
                must be from the same CIDR that the subnet is part of.
                The `allocation_pool` block is documented below.
-        :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['SubnetAllocationPoolsCollectionArgs']]]] allocation_pools_collection: A block declaring the start and end range of the IP addresses available for
-               use with DHCP in this subnet.
-               The `allocation_pools` block is documented below.
         :param pulumi.Input[str] cidr: CIDR representing IP range for this subnet, based on IP
                version. You can omit this option if you are creating a subnet from a
                subnet pool.
@@ -960,11 +843,6 @@ def __init__(__self__,
                Leaving this blank and not setting `no_gateway` will cause a default
                gateway of `.1` to be used. Changing this updates the gateway IP of the
                existing subnet.
-        :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['SubnetHostRouteArgs']]]] host_routes: (**Deprecated** - use `networking.SubnetRoute`
-               instead) An array of routes that should be used by devices
-               with IPs from this subnet (not including local subnet route). The host_route
-               object structure is documented below. Changing this updates the host routes
-               for the existing subnet.
         :param pulumi.Input[int] ip_version: IP version, either 4 (default) or 6. Changing this creates a
                new subnet.
         :param pulumi.Input[str] ipv6_address_mode: The IPv6 address mode. Valid values are
@@ -1040,13 +918,11 @@ def _internal_init(__self__,
                  resource_name: str,
                  opts: Optional[pulumi.ResourceOptions] = None,
                  allocation_pools: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['SubnetAllocationPoolArgs']]]]] = None,
-                 allocation_pools_collection: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['SubnetAllocationPoolsCollectionArgs']]]]] = None,
                  cidr: Optional[pulumi.Input[str]] = None,
                  description: Optional[pulumi.Input[str]] = None,
                  dns_nameservers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                  enable_dhcp: Optional[pulumi.Input[bool]] = None,
                  gateway_ip: Optional[pulumi.Input[str]] = None,
-                 host_routes: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['SubnetHostRouteArgs']]]]] = None,
                  ip_version: Optional[pulumi.Input[int]] = None,
                  ipv6_address_mode: Optional[pulumi.Input[str]] = None,
                  ipv6_ra_mode: Optional[pulumi.Input[str]] = None,
@@ -1070,13 +946,11 @@ def _internal_init(__self__,
             __props__ = SubnetArgs.__new__(SubnetArgs)
 
             __props__.__dict__["allocation_pools"] = allocation_pools
-            __props__.__dict__["allocation_pools_collection"] = allocation_pools_collection
             __props__.__dict__["cidr"] = cidr
             __props__.__dict__["description"] = description
             __props__.__dict__["dns_nameservers"] = dns_nameservers
             __props__.__dict__["enable_dhcp"] = enable_dhcp
             __props__.__dict__["gateway_ip"] = gateway_ip
-            __props__.__dict__["host_routes"] = host_routes
             __props__.__dict__["ip_version"] = ip_version
             __props__.__dict__["ipv6_address_mode"] = ipv6_address_mode
             __props__.__dict__["ipv6_ra_mode"] = ipv6_ra_mode
@@ -1105,13 +979,11 @@ def get(resource_name: str,
             opts: Optional[pulumi.ResourceOptions] = None,
             all_tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
             allocation_pools: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['SubnetAllocationPoolArgs']]]]] = None,
-            allocation_pools_collection: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['SubnetAllocationPoolsCollectionArgs']]]]] = None,
             cidr: Optional[pulumi.Input[str]] = None,
             description: Optional[pulumi.Input[str]] = None,
             dns_nameservers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
             enable_dhcp: Optional[pulumi.Input[bool]] = None,
             gateway_ip: Optional[pulumi.Input[str]] = None,
-            host_routes: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['SubnetHostRouteArgs']]]]] = None,
             ip_version: Optional[pulumi.Input[int]] = None,
             ipv6_address_mode: Optional[pulumi.Input[str]] = None,
             ipv6_ra_mode: Optional[pulumi.Input[str]] = None,
@@ -1140,9 +1012,6 @@ def get(resource_name: str,
                than one range of IP addresses to use with DHCP. However, each IP range
                must be from the same CIDR that the subnet is part of.
                The `allocation_pool` block is documented below.
-        :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['SubnetAllocationPoolsCollectionArgs']]]] allocation_pools_collection: A block declaring the start and end range of the IP addresses available for
-               use with DHCP in this subnet.
-               The `allocation_pools` block is documented below.
         :param pulumi.Input[str] cidr: CIDR representing IP range for this subnet, based on IP
                version. You can omit this option if you are creating a subnet from a
                subnet pool.
@@ -1158,11 +1027,6 @@ def get(resource_name: str,
                Leaving this blank and not setting `no_gateway` will cause a default
                gateway of `.1` to be used. Changing this updates the gateway IP of the
                existing subnet.
-        :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['SubnetHostRouteArgs']]]] host_routes: (**Deprecated** - use `networking.SubnetRoute`
-               instead) An array of routes that should be used by devices
-               with IPs from this subnet (not including local subnet route). The host_route
-               object structure is documented below. Changing this updates the host routes
-               for the existing subnet.
         :param pulumi.Input[int] ip_version: IP version, either 4 (default) or 6. Changing this creates a
                new subnet.
         :param pulumi.Input[str] ipv6_address_mode: The IPv6 address mode. Valid values are
@@ -1197,13 +1061,11 @@ def get(resource_name: str,
 
         __props__.__dict__["all_tags"] = all_tags
         __props__.__dict__["allocation_pools"] = allocation_pools
-        __props__.__dict__["allocation_pools_collection"] = allocation_pools_collection
         __props__.__dict__["cidr"] = cidr
         __props__.__dict__["description"] = description
         __props__.__dict__["dns_nameservers"] = dns_nameservers
         __props__.__dict__["enable_dhcp"] = enable_dhcp
         __props__.__dict__["gateway_ip"] = gateway_ip
-        __props__.__dict__["host_routes"] = host_routes
         __props__.__dict__["ip_version"] = ip_version
         __props__.__dict__["ipv6_address_mode"] = ipv6_address_mode
         __props__.__dict__["ipv6_ra_mode"] = ipv6_ra_mode
@@ -1241,19 +1103,6 @@ def allocation_pools(self) -> pulumi.Output[Sequence['outputs.SubnetAllocationPo
         """
         return pulumi.get(self, "allocation_pools")
 
-    @property
-    @pulumi.getter(name="allocationPoolsCollection")
-    def allocation_pools_collection(self) -> pulumi.Output[Sequence['outputs.SubnetAllocationPoolsCollection']]:
-        """
-        A block declaring the start and end range of the IP addresses available for
-        use with DHCP in this subnet.
-        The `allocation_pools` block is documented below.
-        """
-        warnings.warn("""use allocation_pool instead""", DeprecationWarning)
-        pulumi.log.warn("""allocation_pools_collection is deprecated: use allocation_pool instead""")
-
-        return pulumi.get(self, "allocation_pools_collection")
-
     @property
     @pulumi.getter
     def cidr(self) -> pulumi.Output[str]:
@@ -1304,21 +1153,6 @@ def gateway_ip(self) -> pulumi.Output[str]:
         """
         return pulumi.get(self, "gateway_ip")
 
-    @property
-    @pulumi.getter(name="hostRoutes")
-    def host_routes(self) -> pulumi.Output[Optional[Sequence['outputs.SubnetHostRoute']]]:
-        """
-        (**Deprecated** - use `networking.SubnetRoute`
-        instead) An array of routes that should be used by devices
-        with IPs from this subnet (not including local subnet route). The host_route
-        object structure is documented below. Changing this updates the host routes
-        for the existing subnet.
-        """
-        warnings.warn("""Use networking.SubnetRoute instead""", DeprecationWarning)
-        pulumi.log.warn("""host_routes is deprecated: Use networking.SubnetRoute instead""")
-
-        return pulumi.get(self, "host_routes")
-
     @property
     @pulumi.getter(name="ipVersion")
     def ip_version(self) -> pulumi.Output[Optional[int]]:
diff --git a/sdk/python/pulumi_openstack/provider.py b/sdk/python/pulumi_openstack/provider.py
index 582458418..bbb515f31 100644
--- a/sdk/python/pulumi_openstack/provider.py
+++ b/sdk/python/pulumi_openstack/provider.py
@@ -42,7 +42,6 @@ def __init__(__self__, *,
                  tenant_id: Optional[pulumi.Input[str]] = None,
                  tenant_name: Optional[pulumi.Input[str]] = None,
                  token: Optional[pulumi.Input[str]] = None,
-                 use_octavia: Optional[pulumi.Input[bool]] = None,
                  user_domain_id: Optional[pulumi.Input[str]] = None,
                  user_domain_name: Optional[pulumi.Input[str]] = None,
                  user_id: Optional[pulumi.Input[str]] = None,
@@ -78,7 +77,6 @@ def __init__(__self__, *,
         :param pulumi.Input[str] tenant_id: The ID of the Tenant (Identity v2) or Project (Identity v3) to login with.
         :param pulumi.Input[str] tenant_name: The name of the Tenant (Identity v2) or Project (Identity v3) to login with.
         :param pulumi.Input[str] token: Authentication token to use as an alternative to username/password.
-        :param pulumi.Input[bool] use_octavia: If set to `true`, API requests will go the Load Balancer service (Octavia) instead of the Networking service (Neutron).
         :param pulumi.Input[str] user_domain_id: The ID of the domain where the user resides (Identity v3).
         :param pulumi.Input[str] user_domain_name: The name of the domain where the user resides (Identity v3).
         :param pulumi.Input[str] user_id: User ID to login with.
@@ -154,13 +152,6 @@ def __init__(__self__, *,
             pulumi.set(__self__, "tenant_name", tenant_name)
         if token is not None:
             pulumi.set(__self__, "token", token)
-        if use_octavia is not None:
-            warnings.warn("""Users not using loadbalancer resources can ignore this message. Support for neutron-lbaas will be removed on next major release. Octavia will be the only supported method for loadbalancer resources. Users using octavia will have to remove 'use_octavia' option from the provider configuration block. Users using neutron-lbaas will have to migrate/upgrade to octavia.""", DeprecationWarning)
-            pulumi.log.warn("""use_octavia is deprecated: Users not using loadbalancer resources can ignore this message. Support for neutron-lbaas will be removed on next major release. Octavia will be the only supported method for loadbalancer resources. Users using octavia will have to remove 'use_octavia' option from the provider configuration block. Users using neutron-lbaas will have to migrate/upgrade to octavia.""")
-        if use_octavia is None:
-            use_octavia = _utilities.get_env_bool('OS_USE_OCTAVIA')
-        if use_octavia is not None:
-            pulumi.set(__self__, "use_octavia", use_octavia)
         if user_domain_id is not None:
             pulumi.set(__self__, "user_domain_id", user_domain_id)
         if user_domain_name is not None:
@@ -505,21 +496,6 @@ def token(self) -> Optional[pulumi.Input[str]]:
     def token(self, value: Optional[pulumi.Input[str]]):
         pulumi.set(self, "token", value)
 
-    @property
-    @pulumi.getter(name="useOctavia")
-    def use_octavia(self) -> Optional[pulumi.Input[bool]]:
-        """
-        If set to `true`, API requests will go the Load Balancer service (Octavia) instead of the Networking service (Neutron).
-        """
-        warnings.warn("""Users not using loadbalancer resources can ignore this message. Support for neutron-lbaas will be removed on next major release. Octavia will be the only supported method for loadbalancer resources. Users using octavia will have to remove 'use_octavia' option from the provider configuration block. Users using neutron-lbaas will have to migrate/upgrade to octavia.""", DeprecationWarning)
-        pulumi.log.warn("""use_octavia is deprecated: Users not using loadbalancer resources can ignore this message. Support for neutron-lbaas will be removed on next major release. Octavia will be the only supported method for loadbalancer resources. Users using octavia will have to remove 'use_octavia' option from the provider configuration block. Users using neutron-lbaas will have to migrate/upgrade to octavia.""")
-
-        return pulumi.get(self, "use_octavia")
-
-    @use_octavia.setter
-    def use_octavia(self, value: Optional[pulumi.Input[bool]]):
-        pulumi.set(self, "use_octavia", value)
-
     @property
     @pulumi.getter(name="userDomainId")
     def user_domain_id(self) -> Optional[pulumi.Input[str]]:
@@ -602,7 +578,6 @@ def __init__(__self__,
                  tenant_id: Optional[pulumi.Input[str]] = None,
                  tenant_name: Optional[pulumi.Input[str]] = None,
                  token: Optional[pulumi.Input[str]] = None,
-                 use_octavia: Optional[pulumi.Input[bool]] = None,
                  user_domain_id: Optional[pulumi.Input[str]] = None,
                  user_domain_name: Optional[pulumi.Input[str]] = None,
                  user_id: Optional[pulumi.Input[str]] = None,
@@ -645,7 +620,6 @@ def __init__(__self__,
         :param pulumi.Input[str] tenant_id: The ID of the Tenant (Identity v2) or Project (Identity v3) to login with.
         :param pulumi.Input[str] tenant_name: The name of the Tenant (Identity v2) or Project (Identity v3) to login with.
         :param pulumi.Input[str] token: Authentication token to use as an alternative to username/password.
-        :param pulumi.Input[bool] use_octavia: If set to `true`, API requests will go the Load Balancer service (Octavia) instead of the Networking service (Neutron).
         :param pulumi.Input[str] user_domain_id: The ID of the domain where the user resides (Identity v3).
         :param pulumi.Input[str] user_domain_name: The name of the domain where the user resides (Identity v3).
         :param pulumi.Input[str] user_id: User ID to login with.
@@ -706,7 +680,6 @@ def _internal_init(__self__,
                  tenant_id: Optional[pulumi.Input[str]] = None,
                  tenant_name: Optional[pulumi.Input[str]] = None,
                  token: Optional[pulumi.Input[str]] = None,
-                 use_octavia: Optional[pulumi.Input[bool]] = None,
                  user_domain_id: Optional[pulumi.Input[str]] = None,
                  user_domain_name: Optional[pulumi.Input[str]] = None,
                  user_id: Optional[pulumi.Input[str]] = None,
@@ -762,9 +735,6 @@ def _internal_init(__self__,
             __props__.__dict__["tenant_id"] = tenant_id
             __props__.__dict__["tenant_name"] = tenant_name
             __props__.__dict__["token"] = token
-            if use_octavia is None:
-                use_octavia = _utilities.get_env_bool('OS_USE_OCTAVIA')
-            __props__.__dict__["use_octavia"] = pulumi.Output.from_input(use_octavia).apply(pulumi.runtime.to_json) if use_octavia is not None else None
             __props__.__dict__["user_domain_id"] = user_domain_id
             __props__.__dict__["user_domain_name"] = user_domain_name
             __props__.__dict__["user_id"] = user_id
diff --git a/sdk/python/pulumi_openstack/pulumi-plugin.json b/sdk/python/pulumi_openstack/pulumi-plugin.json
index c2fd7376d..84f878f23 100644
--- a/sdk/python/pulumi_openstack/pulumi-plugin.json
+++ b/sdk/python/pulumi_openstack/pulumi-plugin.json
@@ -1,5 +1,5 @@
 {
   "resource": true,
   "name": "openstack",
-  "version": "3.0.0-alpha.0+dev"
+  "version": "4.0.0-alpha.0+dev"
 }
diff --git a/sdk/python/pulumi_openstack/vpnaas/ike_policy.py b/sdk/python/pulumi_openstack/vpnaas/ike_policy.py
index b8ce55ca3..e6387ca2a 100644
--- a/sdk/python/pulumi_openstack/vpnaas/ike_policy.py
+++ b/sdk/python/pulumi_openstack/vpnaas/ike_policy.py
@@ -35,7 +35,7 @@ def __init__(__self__, *,
                Changing this updates the description of the existing policy.
         :param pulumi.Input[str] encryption_algorithm: The encryption algorithm. Valid values are 3des, aes-128, aes-192 and so on.
                The default value is aes-128. Changing this updates the existing policy.
-        :param pulumi.Input[str] ike_version: The IKE mode. A valid value is v1 or v2. Default is v1.
+        :param pulumi.Input[str] ike_version: The IKE version. A valid value is v1 or v2. Default is v1.
                Changing this updates the existing policy.
         :param pulumi.Input[Sequence[pulumi.Input['IkePolicyLifetimeArgs']]] lifetimes: The lifetime of the security association. Consists of Unit and Value.
         :param pulumi.Input[str] name: The name of the policy. Changing this updates the name of
@@ -118,7 +118,7 @@ def encryption_algorithm(self, value: Optional[pulumi.Input[str]]):
     @pulumi.getter(name="ikeVersion")
     def ike_version(self) -> Optional[pulumi.Input[str]]:
         """
-        The IKE mode. A valid value is v1 or v2. Default is v1.
+        The IKE version. A valid value is v1 or v2. Default is v1.
         Changing this updates the existing policy.
         """
         return pulumi.get(self, "ike_version")
@@ -241,7 +241,7 @@ def __init__(__self__, *,
                Changing this updates the description of the existing policy.
         :param pulumi.Input[str] encryption_algorithm: The encryption algorithm. Valid values are 3des, aes-128, aes-192 and so on.
                The default value is aes-128. Changing this updates the existing policy.
-        :param pulumi.Input[str] ike_version: The IKE mode. A valid value is v1 or v2. Default is v1.
+        :param pulumi.Input[str] ike_version: The IKE version. A valid value is v1 or v2. Default is v1.
                Changing this updates the existing policy.
         :param pulumi.Input[Sequence[pulumi.Input['IkePolicyLifetimeArgs']]] lifetimes: The lifetime of the security association. Consists of Unit and Value.
         :param pulumi.Input[str] name: The name of the policy. Changing this updates the name of
@@ -324,7 +324,7 @@ def encryption_algorithm(self, value: Optional[pulumi.Input[str]]):
     @pulumi.getter(name="ikeVersion")
     def ike_version(self) -> Optional[pulumi.Input[str]]:
         """
-        The IKE mode. A valid value is v1 or v2. Default is v1.
+        The IKE version. A valid value is v1 or v2. Default is v1.
         Changing this updates the existing policy.
         """
         return pulumi.get(self, "ike_version")
@@ -470,7 +470,7 @@ def __init__(__self__,
                Changing this updates the description of the existing policy.
         :param pulumi.Input[str] encryption_algorithm: The encryption algorithm. Valid values are 3des, aes-128, aes-192 and so on.
                The default value is aes-128. Changing this updates the existing policy.
-        :param pulumi.Input[str] ike_version: The IKE mode. A valid value is v1 or v2. Default is v1.
+        :param pulumi.Input[str] ike_version: The IKE version. A valid value is v1 or v2. Default is v1.
                Changing this updates the existing policy.
         :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['IkePolicyLifetimeArgs']]]] lifetimes: The lifetime of the security association. Consists of Unit and Value.
         :param pulumi.Input[str] name: The name of the policy. Changing this updates the name of
@@ -593,7 +593,7 @@ def get(resource_name: str,
                Changing this updates the description of the existing policy.
         :param pulumi.Input[str] encryption_algorithm: The encryption algorithm. Valid values are 3des, aes-128, aes-192 and so on.
                The default value is aes-128. Changing this updates the existing policy.
-        :param pulumi.Input[str] ike_version: The IKE mode. A valid value is v1 or v2. Default is v1.
+        :param pulumi.Input[str] ike_version: The IKE version. A valid value is v1 or v2. Default is v1.
                Changing this updates the existing policy.
         :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['IkePolicyLifetimeArgs']]]] lifetimes: The lifetime of the security association. Consists of Unit and Value.
         :param pulumi.Input[str] name: The name of the policy. Changing this updates the name of
@@ -658,7 +658,7 @@ def encryption_algorithm(self) -> pulumi.Output[Optional[str]]:
     @pulumi.getter(name="ikeVersion")
     def ike_version(self) -> pulumi.Output[Optional[str]]:
         """
-        The IKE mode. A valid value is v1 or v2. Default is v1.
+        The IKE version. A valid value is v1 or v2. Default is v1.
         Changing this updates the existing policy.
         """
         return pulumi.get(self, "ike_version")
diff --git a/sdk/python/pyproject.toml b/sdk/python/pyproject.toml
index e49099fc5..fc5b41674 100644
--- a/sdk/python/pyproject.toml
+++ b/sdk/python/pyproject.toml
@@ -5,7 +5,7 @@
   keywords = ["pulumi", "openstack"]
   readme = "README.md"
   requires-python = ">=3.8"
-  version = "3.0.0a0+dev"
+  version = "4.0.0a0+dev"
   [project.license]
     text = "Apache-2.0"
   [project.urls]