Spoke

A Network Connectivity Center spoke represents one or more network connectivity resources.

When you create a spoke, you associate it with a hub. You must also identify a value for exactly one of the following fields:

  • linkedVpnTunnels
  • linkedInterconnectAttachments
  • linkedRouterApplianceInstances
  • linkedVpcNetwork
JSON representation
{
  "name": string,
  "createTime": string,
  "updateTime": string,
  "labels": {
    string: string,
    ...
  },
  "description": string,
  "hub": string,
  "group": string,
  "linkedVpnTunnels": {
    object (LinkedVpnTunnels)
  },
  "linkedInterconnectAttachments": {
    object (LinkedInterconnectAttachments)
  },
  "linkedRouterApplianceInstances": {
    object (LinkedRouterApplianceInstances)
  },
  "linkedVpcNetwork": {
    object (LinkedVpcNetwork)
  },
  "linkedProducerVpcNetwork": {
    object (LinkedProducerVpcNetwork)
  },
  "uniqueId": string,
  "state": enum (State),
  "reasons": [
    {
      object (StateReason)
    }
  ],
  "spokeType": enum (SpokeType),
  "etag": string,
  "fieldPathsPendingUpdate": [
    string
  ]
}
Fields
name

string

Immutable. The name of the spoke. Spoke names must be unique. They use the following form: projects/{projectNumber}/locations/{region}/spokes/{spokeId}

createTime

string (Timestamp format)

Output only. The time the spoke was created.

Uses RFC 3339, where generated output will always be Z-normalized and uses 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".

updateTime

string (Timestamp format)

Output only. The time the spoke was last updated.

Uses RFC 3339, where generated output will always be Z-normalized and uses 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".

labels

map (key: string, value: string)

Optional labels in key-value pair format. For more information about labels, see Requirements for labels.

An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

description

string

Optional. An optional description of the spoke.

hub

string

Immutable. The name of the hub that this spoke is attached to.

group

string

Optional. The name of the group that this spoke is associated with.

linkedVpnTunnels

object (LinkedVpnTunnels)

Optional. VPN tunnels that are associated with the spoke.

linkedInterconnectAttachments

object (LinkedInterconnectAttachments)

Optional. VLAN attachments that are associated with the spoke.

linkedRouterApplianceInstances

object (LinkedRouterApplianceInstances)

Optional. Router appliance instances that are associated with the spoke.

linkedVpcNetwork

object (LinkedVpcNetwork)

Optional. VPC network that is associated with the spoke.

linkedProducerVpcNetwork

object (LinkedProducerVpcNetwork)

Optional. The linked producer VPC that is associated with the spoke.

uniqueId

string

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 uniqueId.

state

enum (State)

Output only. The current lifecycle state of this spoke.

reasons[]

object (StateReason)

Output only. The reasons for current state of the spoke.

spokeType

enum (SpokeType)

Output only. The type of resource associated with the spoke.

etag

string

Optional. This checksum is computed by the server based on the value of other fields, and may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding.

fieldPathsPendingUpdate[]

string

Optional. The list of fields waiting for hub administration's approval.

LinkedVpnTunnels

A collection of Cloud VPN tunnel resources. These resources should be redundant HA VPN tunnels that all advertise the same prefixes to Google Cloud. Alternatively, in a passive/active configuration, all tunnels should be capable of advertising the same prefixes.

JSON representation
{
  "uris": [
    string
  ],
  "siteToSiteDataTransfer": boolean,
  "vpcNetwork": string,
  "includeImportRanges": [
    string
  ]
}
Fields
uris[]

string

The URIs of linked VPN tunnel resources.

siteToSiteDataTransfer

boolean

A value that controls whether site-to-site data transfer is enabled for these resources. Data transfer is available only in supported locations.

vpcNetwork

string

Output only. The VPC network where these VPN tunnels are located.

includeImportRanges[]

string

Optional. 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".

LinkedInterconnectAttachments

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.

JSON representation
{
  "uris": [
    string
  ],
  "siteToSiteDataTransfer": boolean,
  "vpcNetwork": string,
  "includeImportRanges": [
    string
  ]
}
Fields
uris[]

string

The URIs of linked interconnect attachment resources

siteToSiteDataTransfer

boolean

A value that controls whether site-to-site data transfer is enabled for these resources. Data transfer is available only in supported locations.

vpcNetwork

string

Output only. The VPC network where these VLAN attachments are located.

includeImportRanges[]

string

Optional. 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".

LinkedRouterApplianceInstances

A collection of router appliance instances. If you configure multiple router appliance instances to receive data from the same set of sites outside of Google Cloud, we recommend that you associate those instances with the same spoke.

JSON representation
{
  "instances": [
    {
      object (RouterApplianceInstance)
    }
  ],
  "siteToSiteDataTransfer": boolean,
  "vpcNetwork": string,
  "includeImportRanges": [
    string
  ]
}
Fields
instances[]

object (RouterApplianceInstance)

The list of router appliance instances.

siteToSiteDataTransfer

boolean

A value that controls whether site-to-site data transfer is enabled for these resources. Data transfer is available only in supported locations.

vpcNetwork

string

Output only. The VPC network where these router appliance instances are located.

includeImportRanges[]

string

Optional. 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".

RouterApplianceInstance

A router appliance instance is a Compute Engine virtual machine (VM) instance that acts as a BGP speaker. A router appliance instance is specified by the URI of the VM and the internal IP address of one of the VM's network interfaces.

JSON representation
{
  "virtualMachine": string,
  "ipAddress": string
}
Fields
virtualMachine

string

The URI of the VM.

ipAddress

string

The IP address on the VM to use for peering.

LinkedVpcNetwork

An existing VPC network.

JSON representation
{
  "uri": string,
  "excludeExportRanges": [
    string
  ],
  "includeExportRanges": [
    string
  ],
  "proposedIncludeExportRanges": [
    string
  ],
  "proposedExcludeExportRanges": [
    string
  ],
  "producerVpcSpokes": [
    string
  ]
}
Fields
uri

string

Required. The URI of the VPC network resource.

excludeExportRanges[]

string

Optional. IP ranges encompassing the subnets to be excluded from peering.

includeExportRanges[]

string

Optional. IP ranges allowed to be included from peering.

proposedIncludeExportRanges[]

string

Optional. The proposed include export IP ranges waiting for hub administration's approval.

proposedExcludeExportRanges[]

string

Output only. The proposed exclude export IP ranges waiting for hub administration's approval.

producerVpcSpokes[]

string

Output only. The list of Producer VPC spokes that this VPC spoke is a service consumer VPC spoke for. These producer VPCs are connected through VPC peering to this spoke's backing VPC network. Because they are directly connected through VPC peering, NCC export filters do not apply between the service consumer VPC spoke and any of its producer VPC spokes. This VPC spoke cannot be deleted as long as any of these producer VPC spokes are connected to the NCC Hub.

LinkedProducerVpcNetwork

JSON representation
{
  "network": string,
  "serviceConsumerVpcSpoke": string,
  "peering": string,
  "producerNetwork": string,
  "excludeExportRanges": [
    string
  ],
  "includeExportRanges": [
    string
  ],
  "proposedIncludeExportRanges": [
    string
  ],
  "proposedExcludeExportRanges": [
    string
  ]
}
Fields
network

string

Immutable. The URI of the Service Consumer VPC that the Producer VPC is peered with.

serviceConsumerVpcSpoke

string

Output only. The Service Consumer Network spoke.

peering

string

Immutable. 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.

producerNetwork

string

Output only. The URI of the Producer VPC.

excludeExportRanges[]

string

Optional. IP ranges encompassing the subnets to be excluded from peering.

includeExportRanges[]

string

Optional. IP ranges allowed to be included from peering.

proposedIncludeExportRanges[]

string

Optional. The proposed include export IP ranges waiting for hub administration's approval.

proposedExcludeExportRanges[]

string

Output only. The proposed exclude export IP ranges waiting for hub administration's approval.

StateReason

The reason a spoke is inactive.

JSON representation
{
  "code": enum (Code),
  "message": string,
  "userDetails": string
}
Fields
code

enum (Code)

The code associated with this reason.

message

string

Human-readable details about this reason.

userDetails

string

Additional information provided by the user in the RejectSpoke call.