# -*- coding: utf-8 -*- #
# Copyright 2025 Google LLC. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#    http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# NOTE: This file is autogenerated and should not be edited by hand.
# AUTOGEN_CLI_VERSION: HEAD
- release_tracks:
  - BETA
  auto_generated: true
  help_text:
    brief: Create securityGateways
    description: Create a securityGateway
    examples: |-
      To create the securityGateway, run:

          $ {command}
  arguments:
    params:
    - help_text: |-
        Identifier. Name of the resource.
      is_positional: true
      is_primary_resource: true
      request_id_field: securityGatewayId
      resource_spec: !REF googlecloudsdk.command_lib.beyondcorp.v1_resources:projects_locations_security_gateways
      required: true
    - arg_name: display-name
      api_field: googleCloudBeyondcorpSecuritygatewaysV1SecurityGateway.displayName
      required: false
      repeated: false
      help_text: |-
        An arbitrary user-provided name for the SecurityGateway.
        Cannot exceed 64 characters.
    - arg_name: hubs
      api_field: googleCloudBeyondcorpSecuritygatewaysV1SecurityGateway.hubs
      required: false
      repeated: true
      help_text: |-
        Map of Hubs that represents regional data path deployment with Google Cloud Platform region
        as a key.
      spec:
      - api_field: key
      - api_field: value
        spec: []
    - group:
        api_field: googleCloudBeyondcorpSecuritygatewaysV1SecurityGateway.proxyProtocolConfig
        required: false
        help_text: |-
          The configuration for the proxy.
        params:
        - arg_name: proxy-protocol-config-allowed-client-headers
          api_field: googleCloudBeyondcorpSecuritygatewaysV1SecurityGateway.proxyProtocolConfig.allowedClientHeaders
          required: false
          repeated: true
          help_text: |-
            List of the allowed client header names.
        - group:
            api_field: googleCloudBeyondcorpSecuritygatewaysV1SecurityGateway.proxyProtocolConfig.contextualHeaders
            required: false
            help_text: |-
              Contextual headers configuration.
            params:
            - group:
                api_field: googleCloudBeyondcorpSecuritygatewaysV1SecurityGateway.proxyProtocolConfig.contextualHeaders.userInfo
                required: false
                help_text: |-
                  Delegated user info configuration.
                params:
                - arg_name: user-info-output-type
                  api_field: googleCloudBeyondcorpSecuritygatewaysV1SecurityGateway.proxyProtocolConfig.contextualHeaders.userInfo.outputType
                  required: false
                  help_text: |-
                    The output type of the delegated user info.
                  choices:
                  - arg_value: protobuf
                    enum_value: PROTOBUF
                    help_text: |-
                      Protobuf output type.
                  - arg_value: json
                    enum_value: JSON
                    help_text: |-
                      JSON output type.
                  - arg_value: none
                    enum_value: NONE
                    help_text: |-
                      Explicitly disable header output.
            - group:
                api_field: googleCloudBeyondcorpSecuritygatewaysV1SecurityGateway.proxyProtocolConfig.contextualHeaders.groupInfo
                required: false
                help_text: |-
                  Delegated group info configuration.
                params:
                - arg_name: group-info-output-type
                  api_field: googleCloudBeyondcorpSecuritygatewaysV1SecurityGateway.proxyProtocolConfig.contextualHeaders.groupInfo.outputType
                  required: false
                  help_text: |-
                    The output type of the delegated group info.
                  choices:
                  - arg_value: protobuf
                    enum_value: PROTOBUF
                    help_text: |-
                      Protobuf output type.
                  - arg_value: json
                    enum_value: JSON
                    help_text: |-
                      JSON output type.
                  - arg_value: none
                    enum_value: NONE
                    help_text: |-
                      Explicitly disable header output.
            - group:
                api_field: googleCloudBeyondcorpSecuritygatewaysV1SecurityGateway.proxyProtocolConfig.contextualHeaders.deviceInfo
                required: false
                help_text: |-
                  Delegated device info configuration.
                params:
                - arg_name: device-info-output-type
                  api_field: googleCloudBeyondcorpSecuritygatewaysV1SecurityGateway.proxyProtocolConfig.contextualHeaders.deviceInfo.outputType
                  required: false
                  help_text: |-
                    The output type of the delegated device info.
                  choices:
                  - arg_value: protobuf
                    enum_value: PROTOBUF
                    help_text: |-
                      Protobuf output type.
                  - arg_value: json
                    enum_value: JSON
                    help_text: |-
                      JSON output type.
                  - arg_value: none
                    enum_value: NONE
                    help_text: |-
                      Explicitly disable header output.
            - arg_name: contextual-headers-output-type
              api_field: googleCloudBeyondcorpSecuritygatewaysV1SecurityGateway.proxyProtocolConfig.contextualHeaders.outputType
              required: false
              help_text: |-
                Default output type for all enabled headers.
              choices:
              - arg_value: protobuf
                enum_value: PROTOBUF
                help_text: |-
                  Protobuf output type.
              - arg_value: json
                enum_value: JSON
                help_text: |-
                  JSON output type.
              - arg_value: none
                enum_value: NONE
                help_text: |-
                  Explicitly disable header output.
        - arg_name: proxy-protocol-config-metadata-headers
          api_field: googleCloudBeyondcorpSecuritygatewaysV1SecurityGateway.proxyProtocolConfig.metadataHeaders
          required: false
          repeated: true
          help_text: |-
            Custom resource specific headers along with the values.
            The names should conform to RFC 9110:
            > Field names SHOULD constrain themselves to alphanumeric characters, "-",
            and ".", and SHOULD begin with a letter.
            Field values SHOULD contain only ASCII printable characters and tab.
          spec:
          - api_field: key
          - api_field: value
        - arg_name: proxy-protocol-config-gateway-identity
          api_field: googleCloudBeyondcorpSecuritygatewaysV1SecurityGateway.proxyProtocolConfig.gatewayIdentity
          required: false
          help_text: |-
            Gateway identity configuration.
          choices:
          - arg_value: resource-name
            enum_value: RESOURCE_NAME
            help_text: |-
              Resource name for gateway identity, in the format:
              projects/{project_id}/locations/{location_id}/securityGateways/{security_gateway_id}
        - arg_name: proxy-protocol-config-client-ip
          api_field: googleCloudBeyondcorpSecuritygatewaysV1SecurityGateway.proxyProtocolConfig.clientIp
          action: store_true
          required: false
          type: bool
          help_text: |-
            Client IP configuration. The client IP address is included if true.
          default: null
    - group:
        api_field: googleCloudBeyondcorpSecuritygatewaysV1SecurityGateway.serviceDiscovery
        required: false
        help_text: |-
          Settings related to the Service Discovery.
        params:
        - group:
            api_field: googleCloudBeyondcorpSecuritygatewaysV1SecurityGateway.serviceDiscovery.apiGateway
            required: true
            help_text: |-
              If Service Discovery is done through API, defines its settings.
            params:
            - group:
                api_field: googleCloudBeyondcorpSecuritygatewaysV1SecurityGateway.serviceDiscovery.apiGateway.resourceOverride
                required: true
                help_text: |-
                  API operation descriptor.
                params:
                - arg_name: resource-override-path
                  api_field: googleCloudBeyondcorpSecuritygatewaysV1SecurityGateway.serviceDiscovery.apiGateway.resourceOverride.path
                  required: true
                  repeated: false
                  help_text: |-
                    Contains uri path fragment where HTTP request is sent.
    - arg_name: request-id
      api_field: requestId
      required: false
      repeated: false
      help_text: |-
        An optional request ID to identify requests. Specify a unique request ID
        so that if you must retry your request, the server will know to ignore the
        request if it has already been completed. The server will guarantee
        that for at least 60 minutes since the first request.
  request:
    api_version: v1
    collection:
    - beyondcorp.projects.locations.securityGateways
  async:
    collection:
    - beyondcorp.projects.locations.operations
