- release_tracks: [ALPHA, GA]

  help_text:
    brief: Create a Distributed Cloud Edge Network router.
    description: |
      Create a new Distributed Cloud Edge Network router.
    examples: |
      To create a router called 'my-router' with asn 65555 in edge zone 'us-central1-edge-den1', run:

        $ {command} my-router --network=my-network --location=us-central1 --zone=us-central1-edge-den1
            --asn=65555

  request:
    collection: edgenetwork.projects.locations.zones.routers
    ALPHA:
      api_version: v1alpha1
    GA:
      api_version: v1
    modify_request_hooks:
    - googlecloudsdk.command_lib.edge_cloud.networking.resources:SetResourcesPathForRouter

  arguments:
    resource:
      help_text: Distributed Cloud Edge Network router to create.
      # The following should point to the resource argument definition under
      # your surface's command_lib directory.:
      spec: !REF googlecloudsdk.command_lib.edge_cloud.networking.resources:router

    params:
    - arg_name: network
      api_field: router.network
      required: true
      help_text: |
        The network that this subnetwork belongs to.
    - arg_name: asn
      api_field: router.bgp.asn
      required: true
      help_text: |
        The locally assigned BGP ASN.
    - arg_name: keepalive-interval-in-seconds
      api_field: router.bgp.keepaliveIntervalInSeconds
      type: int
      default: 20
      hidden: true
      help_text: |
        The interval in seconds between BGP keepalive messages that are sent to the peer.
    - arg_name: description
      api_field: router.description
      help_text: |
        An optional, textual description for the router.
    labels:
      api_field: router.labels

  async:
    collection: edgenetwork.projects.locations.operations
