- release_tracks: [ALPHA]

  help_text:
    brief: Create a new spoke.
    description: Create a new spoke with the given name.
    examples: |
      Create a spoke with name ``my-spoke'' attach to hub ``https://www.googleapis.com/networkconnectivity/v1/projects/my-project/locations/global/hubs/my-hub'' in region ``us-central1''.

        $ {command} my-spoke --hub="https://www.googleapis.com/networkconnectivity/v1/projects/my-project/locations/global/hubs/my-hub" --region=us-central1

  arguments:
    resource:
      spec: !REF googlecloudsdk.command_lib.network_connectivity.resources:spoke
      help_text: Name of the spoke to be created.
    params:
    - arg_name: hub
      required: true
      api_field: spoke.hub
      help_text: Hub that spoke will attach to.
    - arg_name: description
      api_field: spoke.description
      help_text: Description of the spoke to be created.
    - arg_name: labels
      api_field: spoke.labels.additionalProperties
      metavar: KEY=VALUE
      help_text: |
        List of label KEY=VALUE pairs to add.
      type:
        arg_dict:
          flatten: true
          spec:
          - api_field: key
          - api_field: value
    - group:
        mutex: true
        required: true
        params:
        - arg_name: vpn-tunnel
          api_field: spoke.linkedVpnTunnels
          type: arg_list
          help_text: VPN tunnel that this spoke links to.
        - arg_name: interconnect-attachment
          api_field: spoke.linkedInterconnectAttachments
          type: arg_list
          help_text: Interconnect attachment that this spoke links to.
        - arg_name: router-appliance
          api_field: spoke.linkedRouterApplianceInstances
          type:
            arg_dict:
              flatten: false
              spec:
              - api_field: virtualMachine
                arg_name: instance
                type: str
              - api_field: ipAddress
                arg_name: ip
                type: str
          help_text: |
            Router appliance instance(s) that this spoke links to.

            For example, use `--router-appliance=instance=ins_1,ip=10.10.0.1` to add a single router-appliance instance,
            or `--router-appliance=instance=ins_1,ip=10.10.0.1 --router-appliance=instance=ins_2,ip=10.10.0.1 ...`
            to add multiple instances.
  async:
    collection: networkconnectivity.projects.locations.operations

  request: &request
    api_version: v1alpha1
    method: create
    collection: networkconnectivity.projects.locations.spokes
