# Copyright 2023 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.
info:
  title: Compute/SslPolicy
  description: The Compute SslPolicy resource
  x-dcl-struct-name: SslPolicy
  x-dcl-has-iam: false
paths:
  get:
    description: The function used to get information about a SslPolicy
    parameters:
    - name: sslPolicy
      required: true
      description: A full instance of a SslPolicy
  apply:
    description: The function used to apply information about a SslPolicy
    parameters:
    - name: sslPolicy
      required: true
      description: A full instance of a SslPolicy
  delete:
    description: The function used to delete a SslPolicy
    parameters:
    - name: sslPolicy
      required: true
      description: A full instance of a SslPolicy
  deleteAll:
    description: The function used to delete all SslPolicy
    parameters:
    - name: project
      required: true
      schema:
        type: string
  list:
    description: The function used to list information about many SslPolicy
    parameters:
    - name: project
      required: true
      schema:
        type: string
components:
  schemas:
    SslPolicy:
      title: SslPolicy
      x-dcl-id: projects/{{project}}/global/sslPolicies/{{name}}
      x-dcl-locations:
      - global
      x-dcl-parent-container: project
      x-dcl-has-create: true
      x-dcl-has-iam: false
      x-dcl-read-timeout: 0
      x-dcl-apply-timeout: 0
      x-dcl-delete-timeout: 0
      type: object
      required:
      - name
      - project
      properties:
        customFeature:
          type: array
          x-dcl-go-name: CustomFeature
          description: |-
            A list of features enabled when the selected profile is CUSTOM. The
            <listAvailableFeatures> method returns the set of features that can be
            specified in this list. This field must be empty if the profile is not
            <code>CUSTOM</code>.
          x-dcl-send-empty: true
          x-dcl-list-type: set
          items:
            type: string
            x-dcl-go-type: string
        description:
          type: string
          x-dcl-go-name: Description
          description: |-
            An optional description of this resource. Provide this property when you
            create the resource.
          x-kubernetes-immutable: true
        enabledFeature:
          type: array
          x-dcl-go-name: EnabledFeature
          readOnly: true
          description: '[Output Only] The list of features enabled in the SSL policy.'
          x-kubernetes-immutable: true
          x-dcl-list-type: set
          items:
            type: string
            x-dcl-go-type: string
        id:
          type: integer
          format: int64
          x-dcl-go-name: Id
          readOnly: true
          description: |-
            [Output Only] The unique identifier for the resource. This identifier is
            defined by the server.
          x-kubernetes-immutable: true
        minTlsVersion:
          type: string
          x-dcl-go-name: MinTlsVersion
          x-dcl-go-type: SslPolicyMinTlsVersionEnum
          description: |-
            The minimum version of SSL protocol that can be used by the clients to
            establish a connection with the load balancer. This can be one of
            <code>TLS_1_0</code>, <code>TLS_1_1</code>, <code>TLS_1_2</code>.
          default: TLS_1_0
          enum:
          - TLS_1_0
          - TLS_1_1
          - TLS_1_2
        name:
          type: string
          x-dcl-go-name: Name
          description: |-
            Name of the resource. The name must be 1-63 characters long, and comply
            with <a href="https://www.ietf.org/rfc/rfc1035.txt"
            target="_blank">RFC1035</a>. Specifically, the name must be 1-63 characters
            long and match the regular expression
            `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character
            must be a lowercase letter, and all following characters must be a dash,
            lowercase letter, or digit, except the last character, which cannot be a
            dash.
          x-kubernetes-immutable: true
        profile:
          type: string
          x-dcl-go-name: Profile
          x-dcl-go-type: SslPolicyProfileEnum
          description: |-
            Profile specifies the set of SSL features that can be used by the load
            balancer when negotiating SSL with clients. This can be one of
            <code>COMPATIBLE</code>, <code>MODERN</code>, <code>RESTRICTED</code>, or
            <code>CUSTOM</code>. If using <code>CUSTOM</code>, the set of SSL features
            to enable must be specified in the <code>customFeatures</code> field.
          default: COMPATIBLE
          enum:
          - COMPATIBLE
          - MODERN
          - RESTRICTED
          - CUSTOM
        project:
          type: string
          x-dcl-go-name: Project
          description: The project for the resource
          x-kubernetes-immutable: true
          x-dcl-references:
          - resource: Cloudresourcemanager/Project
            field: name
            parent: true
        selfLink:
          type: string
          x-dcl-go-name: SelfLink
          readOnly: true
          description: '[Output Only] Server-defined URL for the resource.'
          x-kubernetes-immutable: true
        warning:
          type: array
          x-dcl-go-name: Warning
          readOnly: true
          description: |-
            [Output Only] If potential misconfigurations are detected for this
            SSL policy, this field will be populated with warning messages.
          x-kubernetes-immutable: true
          x-dcl-list-type: list
          items:
            type: object
            x-dcl-go-type: SslPolicyWarning
            properties:
              code:
                type: string
                x-dcl-go-name: Code
                x-kubernetes-immutable: true
              data:
                type: array
                x-dcl-go-name: Data
                x-kubernetes-immutable: true
                x-dcl-send-empty: true
                x-dcl-list-type: list
                items:
                  type: object
                  x-dcl-go-type: SslPolicyWarningData
                  properties:
                    key:
                      type: string
                      x-dcl-go-name: Key
                      x-kubernetes-immutable: true
                    value:
                      type: string
                      x-dcl-go-name: Value
                      x-kubernetes-immutable: true
              message:
                type: string
                x-dcl-go-name: Message
                x-kubernetes-immutable: true
