# 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/ManagedSslCertificate
  description: The Compute ManagedSslCertificate resource
  x-dcl-struct-name: ManagedSslCertificate
  x-dcl-has-iam: false
paths:
  get:
    description: The function used to get information about a ManagedSslCertificate
    parameters:
    - name: managedSslCertificate
      required: true
      description: A full instance of a ManagedSslCertificate
  apply:
    description: The function used to apply information about a ManagedSslCertificate
    parameters:
    - name: managedSslCertificate
      required: true
      description: A full instance of a ManagedSslCertificate
  delete:
    description: The function used to delete a ManagedSslCertificate
    parameters:
    - name: managedSslCertificate
      required: true
      description: A full instance of a ManagedSslCertificate
  deleteAll:
    description: The function used to delete all ManagedSslCertificate
    parameters:
    - name: project
      required: true
      schema:
        type: string
  list:
    description: The function used to list information about many ManagedSslCertificate
    parameters:
    - name: project
      required: true
      schema:
        type: string
components:
  schemas:
    ManagedSslCertificate:
      title: ManagedSslCertificate
      x-dcl-id: projects/{{project}}/global/sslCertificates/{{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:
      - project
      properties:
        creationTimestamp:
          type: string
          x-dcl-go-name: CreationTimestamp
          readOnly: true
          description: Creation timestamp in RFC3339 text format.
          x-kubernetes-immutable: true
        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
        expireTime:
          type: string
          x-dcl-go-name: ExpireTime
          readOnly: true
          description: Expire time of the certificate. RFC3339
          x-kubernetes-immutable: true
        id:
          type: integer
          format: int64
          x-dcl-go-name: Id
          readOnly: true
          description: The unique identifier for the resource. This identifier is
            defined by the server.
          x-kubernetes-immutable: true
        managed:
          type: object
          x-dcl-go-name: Managed
          x-dcl-go-type: ManagedSslCertificateManaged
          description: Configuration and status of a managed SSL certificate.
          x-kubernetes-immutable: true
          properties:
            domainStatus:
              type: object
              additionalProperties:
                type: string
                x-dcl-go-type: ManagedSslCertificateManagedDomainStatusEnum
              x-dcl-go-name: DomainStatus
              readOnly: true
              description: Detailed statuses of the domains specified for managed
                certificate resource.
              x-kubernetes-immutable: true
            domains:
              type: array
              x-dcl-go-name: Domains
              description: The domains for which a managed  SSL certificate will be
                generated. Currently only single-domain certs are supported.
              x-kubernetes-immutable: true
              x-dcl-send-empty: true
              x-dcl-list-type: list
              items:
                type: string
                x-dcl-go-type: string
            status:
              type: string
              x-dcl-go-name: Status
              x-dcl-go-type: ManagedSslCertificateManagedStatusEnum
              readOnly: true
              description: 'Status of the managed certificate resource. Possible values:
                ACTIVE, MANAGED_CERTIFICATE_STATUS_UNSPECIFIED, PROVISIONING, PROVISIONING_FAILED,
                PROVISIONING_FAILED_PERMANENTLY, RENEWAL_FAILED'
              x-kubernetes-immutable: true
              enum:
              - ACTIVE
              - MANAGED_CERTIFICATE_STATUS_UNSPECIFIED
              - PROVISIONING
              - PROVISIONING_FAILED
              - PROVISIONING_FAILED_PERMANENTLY
              - RENEWAL_FAILED
        name:
          type: string
          x-dcl-go-name: Name
          description: Name of the resource. Provided by the client when the resource
            is created. The name must be 1-63 characters long, and comply with [RFC1035](https://www.ietf.org/rfc/rfc1035.txt).
            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
        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: Server-defined URL for the resource.
          x-kubernetes-immutable: true
        subjectAlternativeNames:
          type: array
          x-dcl-go-name: SubjectAlternativeNames
          readOnly: true
          description: Domains associated with the certificate via Subject Alternative
            Name.
          x-kubernetes-immutable: true
          x-dcl-list-type: list
          items:
            type: string
            x-dcl-go-type: string
        type:
          type: string
          x-dcl-go-name: Type
          x-dcl-go-type: ManagedSslCertificateTypeEnum
          description: Specifies the type of SSL certificate, either "SELF_MANAGED"
            or "MANAGED". If not specified, the certificate is self-managed and the
            fields `certificate` and `private_key` are used.
          x-kubernetes-immutable: true
          default: MANAGED
          enum:
          - MANAGED
