- release_tracks: [GA, BETA, ALPHA]

  help_text:
    brief: |
      Create a Managed Microsoft Active Directory domain peering.
    description: |
      Create a new Managed Microsoft AD domain peering with the given name using Google Cloud's
      Managed Service for Microsoft Active Directory.

      This command can fail for the following reasons:
        * A domain peering with the same name already exists.
        * The active account does not have permission to create AD domains peerings.
        * There is an overlap between the provided CIDR range and authorized network's CIDR.
    examples: |
      The following command creates an AD domain peering with the name
      ``my-peering'', network ``my-network'' and domain
      ``projects/domain-project/locations/global/domains/domain.com''

        $ {command} my-peering --domain=projects/domain-project/locations/global/domains/domain.com --authorized-network=projects/network-project/global/networks/my-network

  async:
    collection: managedidentities.projects.locations.global.operations

  request:
    collection: managedidentities.projects.locations.global.peerings
    method: create
    modify_request_hooks:
    - googlecloudsdk.command_lib.active_directory.util:AppendLocationsGlobalToParent
    ALPHA:
      api_version: v1alpha1
    BETA:
      api_version: v1beta1
    GA:
      api_version: v1

  arguments:
    resource:
      spec: !REF googlecloudsdk.command_lib.active_directory.resources:peering
      help_text: |
        Name of the managed Managed Microsoft AD domain peering you want to create.
    params:
    - arg_name: domain
      required: true
      api_field: peering.domainResource
      help_text: |
          Name of the managed Managed Microsoft AD domain you want to peer to.
    - arg_name: authorized-network
      required: true
      api_field: peering.authorizedNetwork
      help_text: |
          Name of the Network that is authorized to communicate with Managed Microsoft AD domain. This is usually the full path name of the network in the peer project.
