- release_tracks: [ALPHA]

  help_text:
    brief: Update a spoke by the label.
    description: Update the detail of a spoke.

    examples: |
      Update description of the spoke named ``my-spoke'' with description 'new spoke description' in us-central1.

        $ {command} my-spoke --region=us-central1 --description="new spoke description".

  arguments:
    resource:
      spec: !REF googlecloudsdk.command_lib.network_connectivity.resources:spoke
      help_text: Name of the spoke to be updated.
    params:
    - arg_name: description
      api_field: spoke.description
      help_text: New description of the spoke.
    - 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
    - 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: |
        Replace the set of router appliance instances linked to this spoke. Pass this flag multiple times to use multiple instances.
        For example, use `--router-appliance=instance=new_instance,ip=10.10.10.1` for a single router-appliance instance,
        or `--router-appliance=instance=new_instance_1,ip=10.10.10.11 --router-appliance=instance=new_instance_2,ip=10.10.10.12 ...`
        for multiple instances.

  async:
    collection: networkconnectivity.projects.locations.operations

  request:
    api_version: v1alpha1
    collection: networkconnectivity.projects.locations.spokes
    method: patch
