release_tracks: [GA, BETA, ALPHA]
help_text:
  brief: |
    Create a multicast domain activation.
  description: |
    Create a multicast domain activation in the specified location of the current project.
  examples: |
    Create a multicast domain activation with the name 'my-multicast-domain-activation',
    multicast-domain 'path-to-md',
    and location 'zone'.

      $ {command} my-multicast-domain-activation --multicast-domain=path-to-md --location=zone

arguments:
  resource:
    spec: !REF googlecloudsdk.command_lib.network_services.resources:multicastDomainActivation
    help_text: |
      Name of the multicast domain activation to be created.
  params:
  - arg_name:  multicast-domain
    api_field: multicastDomainActivation.multicastDomain
    help_text: The multicast domain to be used.
    required: true
  - arg_name: description
    api_field: multicastDomainActivation.description
    help_text: The description for the multicast domain activation.
  - group:
      params:
      - arg_name: aggr-egress-pps
        required: true
        api_field: multicastDomainActivation.trafficSpec.aggrEgressPps
        help_text: |
          Aggregated egress Packet-Per-Second for all multicast groups in the domain in this zone.
      - arg_name: aggr-ingress-pps
        api_field: multicastDomainActivation.trafficSpec.aggrIngressPps
        help_text: |
          Aggregated ingress Packet-Per-Second for all multicast groups in the domain in this zone.
      - arg_name: avg-packet-size
        api_field: multicastDomainActivation.trafficSpec.avgPacketSize
        help_text: Average packet size (defaults to 512 bytes).
      - arg_name: max-per-group-ingress-pps
        api_field: multicastDomainActivation.trafficSpec.maxPerGroupIngressPps
        help_text: Maximum ingress Packet-Per-Second for a single multicast group in this zone.
      - arg_name: max-per-group-subscribers
        api_field: multicastDomainActivation.trafficSpec.maxPerGroupSubscribers
        help_text: Maximum number of subscribers for a single multicast group in this zone.
  - arg_name: disable-placement-policy
    api_field: multicastDomainActivation.disablePlacementPolicy
    help_text: |
      True to disable the use of the placement policy for this multicast domain activation.
  labels:
    api_field: multicastDomainActivation.labels
async:
  collection: networkservices.projects.locations.operations
request: &request
  GA:
    api_version: v1
  ALPHA:
    api_version: v1alpha1
  BETA:
    api_version: v1beta1
  collection: networkservices.projects.locations.multicastDomainActivations
  method: create
