mmv1/products/networkconnectivity/Spoke.yaml (333 lines of code) (raw):

# Copyright 2024 Google Inc. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. --- name: 'Spoke' description: "The NetworkConnectivity Spoke resource" references: guides: 'Official Documentation': 'https://cloud.google.com/network-connectivity/docs/network-connectivity-center/concepts/overview' api: 'https://cloud.google.com/network-connectivity/docs/reference/networkconnectivity/rest/v1beta/projects.locations.spokes' docs: base_url: 'projects/{{project}}/locations/{{location}}/spokes' self_link: 'projects/{{project}}/locations/{{location}}/spokes/{{name}}' create_url: 'projects/{{project}}/locations/{{location}}/spokes?spokeId={{name}}' update_verb: 'PATCH' update_mask: true timeouts: insert_minutes: 20 update_minutes: 20 delete_minutes: 20 async: actions: ['create', 'delete', 'update'] type: 'OpAsync' operation: base_url: '{{op_id}}' result: resource_inside_response: false custom_code: legacy_long_form_project: true sweeper: url_substitutions: - region: "us-central1" - region: "global" examples: - name: 'network_connectivity_spoke_linked_vpc_network_basic' primary_resource_id: 'primary' vars: network_name: 'net' hub_name: 'hub1' spoke_name: 'spoke1' - name: 'network_connectivity_spoke_linked_vpc_network_group' primary_resource_id: 'primary' vars: network_name: 'net-spoke' hub_name: 'hub1-spoke' spoke_name: 'group-spoke1' - name: 'network_connectivity_spoke_router_appliance_basic' primary_resource_id: 'primary' vars: network_name: 'basic-network' subnetwork_name: 'basic-subnetwork' instance_name: 'basic-instance' hub_name: 'basic-hub1' spoke_name: 'basic-spoke' - name: 'network_connectivity_spoke_vpn_tunnel_basic' primary_resource_id: 'tunnel1' vars: network_name: 'basic-network' subnetwork_name: 'basic-subnetwork' gateway_name: 'vpn-gateway' external_gateway_name: 'external-vpn-gateway' router_name: 'external-vpn-gateway' vpn_tunnel_1_name: 'tunnel1' vpn_tunnel_2_name: 'tunnel2' router_interface_1_name: 'router-interface1' router_peer_1_name: 'router-peer1' router_interface_2_name: 'router-interface2' router_peer_2_name: 'router-peer2' hub_name: 'basic-hub1' vpn_tunnel_1_spoke_name: 'vpn-tunnel-1-spoke' vpn_tunnel_2_spoke_name: 'vpn-tunnel-2-spoke' # Skip due to multiple fine-grained resources skip_vcr: true - name: 'network_connectivity_spoke_interconnect_attachment_basic' primary_resource_id: 'primary' vars: hub_name: 'basic-hub1' network_name: 'basic-network' router_name: 'external-vpn-gateway' interconnect_attachment_name: 'partner-interconnect1' interconnect_attachment_spoke_name: 'interconnect-attachment-spoke' - name: 'network_connectivity_spoke_linked_producer_vpc_network_basic' primary_resource_id: 'primary' vars: network_name: "net-spoke" global_name: 'test-address' hub_name: "hub-basic" spoke_name: "vpc-spoke" producer_spoke_name: "producer-spoke" - name: 'network_connectivity_spoke_center_group' primary_resource_id: 'primary' vars: hub_name: "hub-basic" spoke_name: "vpc-spoke" auto_accept_project_1_name: "foo" auto_accept_project_2_name: "bar" - name: 'network_connectivity_spoke_linked_vpc_network_ipv6_support' primary_resource_id: 'primary' vars: network_name: 'net' hub_name: 'hub1' spoke_name: 'spoke1-ipv6' parameters: - name: 'location' type: String description: The location for the resource url_param_only: true required: true immutable: true properties: - name: 'name' type: String description: Immutable. The name of the spoke. Spoke names must be unique. required: true immutable: true diff_suppress_func: 'tpgresource.CompareSelfLinkOrResourceName' - name: 'createTime' type: String description: Output only. The time the spoke was created. output: true - name: 'updateTime' type: String description: Output only. The time the spoke was last updated. output: true - name: 'labels' type: KeyValueLabels description: Optional labels in key:value format. For more information about labels, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements). - name: 'description' type: String description: An optional description of the spoke. - name: 'hub' type: ResourceRef description: Immutable. The URI of the hub that this spoke is attached to. required: true immutable: true resource: 'hub' imports: 'name' - name: 'group' type: String description: The name of the group that this spoke is associated with. immutable: true default_from_api: true - name: 'linkedVpnTunnels' type: NestedObject description: The URIs of linked VPN tunnel resources conflicts: - linked_interconnect_attachments - linked_router_appliance_instances - linked_vpc_network - linked_producer_vpc_network update_mask_fields: - 'linkedVpnTunnels.includeImportRanges' properties: - name: 'uris' type: Array description: The URIs of linked VPN tunnel resources. required: true immutable: true item_type: type: String - name: 'siteToSiteDataTransfer' type: Boolean description: A value that controls whether site-to-site data transfer is enabled for these resources. Note that data transfer is available only in supported locations. required: true immutable: true - name: 'includeImportRanges' type: Array description: | IP ranges allowed to be included during import from hub (does not control transit connectivity). The only allowed value for now is "ALL_IPV4_RANGES". item_type: type: String - name: 'linkedInterconnectAttachments' type: NestedObject description: A collection of VLAN attachment resources. These resources should be redundant attachments that all advertise the same prefixes to Google Cloud. Alternatively, in active/passive configurations, all attachments should be capable of advertising the same prefixes. conflicts: - linked_vpn_tunnels - linked_router_appliance_instances - linked_vpc_network - linked_producer_vpc_network update_mask_fields: - 'linkedInterconnectAttachments.includeImportRanges' properties: - name: 'uris' type: Array description: The URIs of linked interconnect attachment resources required: true immutable: true item_type: type: String - name: 'siteToSiteDataTransfer' type: Boolean description: A value that controls whether site-to-site data transfer is enabled for these resources. Note that data transfer is available only in supported locations. required: true immutable: true - name: 'includeImportRanges' type: Array description: | IP ranges allowed to be included during import from hub (does not control transit connectivity). The only allowed value for now is "ALL_IPV4_RANGES". item_type: type: String - name: 'linkedRouterApplianceInstances' type: NestedObject description: The URIs of linked Router appliance resources conflicts: - linked_interconnect_attachments - linked_vpn_tunnels - linked_vpc_network - linked_producer_vpc_network update_mask_fields: - 'linkedRouterApplianceInstances.instances' - 'linkedRouterApplianceInstances.includeImportRanges' properties: - name: 'instances' type: Array description: The list of router appliance instances required: true immutable: true item_type: description: The list of router appliance instances type: NestedObject properties: - name: 'virtualMachine' type: String description: The URI of the virtual machine resource immutable: true required: true diff_suppress_func: 'tpgresource.CompareSelfLinkOrResourceName' - name: 'ipAddress' type: String description: The IP address on the VM to use for peering. immutable: true required: true - name: 'siteToSiteDataTransfer' type: Boolean description: A value that controls whether site-to-site data transfer is enabled for these resources. Note that data transfer is available only in supported locations. required: true immutable: true - name: 'includeImportRanges' type: Array description: | IP ranges allowed to be included during import from hub (does not control transit connectivity). The only allowed value for now is "ALL_IPV4_RANGES". item_type: type: String - name: 'linkedVpcNetwork' type: NestedObject description: VPC network that is associated with the spoke. immutable: true conflicts: - linked_interconnect_attachments - linked_router_appliance_instances - linked_vpn_tunnels - linked_producer_vpc_network properties: - name: 'uri' type: String description: The URI of the VPC network resource. required: true immutable: true diff_suppress_func: 'tpgresource.CompareSelfLinkOrResourceName' - name: 'excludeExportRanges' type: Array description: IP ranges encompassing the subnets to be excluded from peering. item_type: type: String - name: 'includeExportRanges' type: Array description: IP ranges allowed to be included from peering. item_type: type: String - name: linkedProducerVpcNetwork type: NestedObject description: Producer VPC network that is associated with the spoke. immutable: true conflicts: - linked_interconnect_attachments - linked_router_appliance_instances - linked_vpn_tunnels - linked_vpc_network properties: - name: network type: String description: The URI of the Service Consumer VPC that the Producer VPC is peered with. required: true immutable: true diff_suppress_func: 'tpgresource.CompareSelfLinkOrResourceName' - name: peering type: String description: The name of the VPC peering between the Service Consumer VPC and the Producer VPC (defined in the Tenant project) which is added to the NCC hub. This peering must be in ACTIVE state. required: true immutable: true - name: producerNetwork type: String description: The URI of the Producer VPC. output: true immutable: true - name: includeExportRanges type: Array description: IP ranges allowed to be included from peering. item_type: type: String - name: excludeExportRanges type: Array description: IP ranges encompassing the subnets to be excluded from peering. item_type: type: String - name: 'uniqueId' type: String description: Output only. The Google-generated UUID for the spoke. This value is unique across all spoke resources. If a spoke is deleted and another with the same name is created, the new spoke is assigned a different unique_id. output: true - name: 'state' type: String description: Output only. The current lifecycle state of this spoke. output: true exactly_one_of: - 'STATE_UNSPECIFIED' - 'CREATING' - 'ACTIVE' - 'DELETING' - name: 'reasons' type: Array output: true description: The reasons for the current state in the lifecycle item_type: type: NestedObject properties: - name: 'code' type: String description: The code associated with this reason. - name: 'message' type: String description: Human-readable details about this reason. - name: 'userDetails' type: String description: Additional information provided by the user in the RejectSpoke call.