- release_tracks:
  - ALPHA
  hidden: true
  help_text:
    brief: Create Flag
    description: Create a Flag
    examples: |-
      To create a Flag, run:

          $ {command}
  arguments:
    params:
    - help_text: |-
        ID of the Flag:

          "projects/{project}/locations/{location}/flags/{flag_id}"

        This follows the standard Google Cloud naming scheme (URI).
      is_positional: true
      request_id_field: flagId
      resource_spec: !REF googlecloudsdk.command_lib.saas_runtime.resources:flag
      required: true

    - arg_name: key
      api_field: flag.key
      help_text: |-
        Flag key used in client runtime evaluation (required).
        Max length: 256 bytes.
      is_positional: false
      required: true
      repeated: false

    - arg_name: value-type
      api_field: flag.valueType
      help_text: |-
        The type of the flag's value, e.g. BOOL (required).
      is_positional: false
      required: true
      repeated: false
      choices:
      - arg_value: bool
        enum_value: FLAG_VALUE_TYPE_BOOL
        help_text: |-
          The flag's value type is a boolean.
      - arg_value: int
        enum_value: FLAG_VALUE_TYPE_INT
        help_text: |-
          The flag's value type is an integer.
      - arg_value: string
        enum_value: FLAG_VALUE_TYPE_STRING
        help_text: |-
          The flag's value type is a string.
      - arg_value: double
        enum_value: FLAG_VALUE_TYPE_DOUBLE
        help_text: |-
          The flag's value type is a double.

    - arg_name: evaluation-spec
      api_field: flag.evaluationSpec
      help_text: |-
        Specification of how the Flag value should be evaluated.
      is_positional: false
      required: false
      repeated: false
      spec:
      - api_field: defaultTarget
        help_text: |-
          Default variant for the flag.
      - api_field: variants
        help_text: |-
          A list of variants.
          Variant is an identifier for a value (name assigned to a value).
        spec:
        - api_field: name
          help_text: |-
            Name of the variant.
            Max length: 128 bytes.
        - api_field: boolValue
          help_text: |-
            Value is a single boolean flag value for the variant.
        - api_field: intValue
          help_text: |-
            Value is a single integer flag value for the variant.
        - api_field: stringValue
          help_text: |-
            Value is a single string flag value for the variant.
        - api_field: doubleValue
          help_text: |-
            Value is a single double flag value for the variant.

    - arg_name: unit-kind
      help_text: |-
        Reference to the UnitKind that can consume this Flag.
      is_positional: false
      resource_spec: !REF googlecloudsdk.command_lib.saas_runtime.resources:unit_kind
      resource_method_params:
        flag.unitKind: '{__relative_name__}'
      required: true
      repeated: false

    - arg_name: description
      api_field: flag.description
      required: false
      help_text: |-
        A description of the flag.
        Max length: 500 bytes.
      is_positional: false

    - arg_name: labels
      api_field: flag.labels
      required: false
      repeated: true
      help_text: |-
        The labels on the resource, which can be used for categorization.
      spec:
      - api_field: key
      - api_field: value

    - arg_name: annotations
      api_field: flag.annotations
      required: false
      repeated: true
      help_text: |-
        Unstructured key-value map stored with a resource that may be set by
        external tools to store and retrieve arbitrary metadata. Annotations
        are not queryable and should be preserved when modifying objects.
      spec:
      - api_field: key
      - api_field: value

  request:
    api_version: v1beta1
    collection:
    - saasservicemgmt.projects.locations.flags
