{
  "ownerDomain": "google.com",
  "protocol": "rest",
  "parameters": {
    "fields": {
      "location": "query",
      "type": "string",
      "description": "Selector specifying which fields to include in a partial response."
    },
    "alt": {
      "location": "query",
      "enum": [
        "json",
        "media",
        "proto"
      ],
      "description": "Data format for response.",
      "type": "string",
      "default": "json",
      "enumDescriptions": [
        "Responses with Content-Type of application/json",
        "Media download with context-dependent Content-Type",
        "Responses with Content-Type of application/x-protobuf"
      ]
    },
    "access_token": {
      "description": "OAuth access token.",
      "location": "query",
      "type": "string"
    },
    "key": {
      "description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.",
      "location": "query",
      "type": "string"
    },
    "callback": {
      "description": "JSONP",
      "type": "string",
      "location": "query"
    },
    "prettyPrint": {
      "default": "true",
      "description": "Returns response with indentations and line breaks.",
      "type": "boolean",
      "location": "query"
    },
    "oauth_token": {
      "location": "query",
      "type": "string",
      "description": "OAuth 2.0 token for the current user."
    },
    "$.xgafv": {
      "location": "query",
      "type": "string",
      "enum": [
        "1",
        "2"
      ],
      "description": "V1 error format.",
      "enumDescriptions": [
        "v1 error format",
        "v2 error format"
      ]
    },
    "upload_protocol": {
      "type": "string",
      "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
      "location": "query"
    },
    "quotaUser": {
      "location": "query",
      "description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.",
      "type": "string"
    },
    "uploadType": {
      "type": "string",
      "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
      "location": "query"
    }
  },
  "fullyEncodeReservedExpansion": true,
  "mtlsRootUrl": "https://certificatemanager.mtls.googleapis.com/",
  "batchPath": "batch",
  "title": "Certificate Manager API",
  "kind": "discovery#restDescription",
  "servicePath": "",
  "name": "certificatemanager",
  "discoveryVersion": "v1",
  "documentationLink": "https://docs.cloud.google.com/certificate-manager/docs/overview",
  "version": "v2alpha",
  "schemas": {
    "ObservedCertificate": {
      "properties": {
        "observedTime": {
          "description": "Time the certificate was observed within our system.",
          "type": "string",
          "format": "google-datetime"
        },
        "notAfterTime": {
          "description": "Time after which the certificate expires.",
          "type": "string",
          "format": "google-datetime"
        },
        "notBeforeTime": {
          "format": "google-datetime",
          "description": "Time at which the certificate becomes valid.",
          "type": "string"
        },
        "pemCertificate": {
          "description": "Pem encoded certificate.",
          "type": "string"
        },
        "description": {
          "$ref": "CertificateDescription",
          "description": "Details associated with the observed certificate."
        },
        "lifetime": {
          "description": "For convenience, the actual lifetime of an issued certificate.",
          "format": "google-duration",
          "type": "string"
        },
        "issuanceDetails": {
          "description": "Details about the issuer.",
          "$ref": "IssuanceDetails"
        },
        "attachments": {
          "description": "Resources which are observed using the certificate.",
          "type": "array",
          "items": {
            "$ref": "Attachment"
          }
        },
        "managementDetails": {
          "description": "Details about the managing service, such as CCM or MWID.",
          "$ref": "ManagementDetails"
        },
        "name": {
          "description": "Identifier. Name of resource.",
          "type": "string"
        }
      },
      "type": "object",
      "description": "Message describing ObservedCertificate object.",
      "id": "ObservedCertificate"
    },
    "GoogleLongrunningCancelOperationRequest": {
      "id": "GoogleLongrunningCancelOperationRequest",
      "type": "object",
      "description": "The request message for Operations.CancelOperation.",
      "properties": {}
    },
    "LetsEncryptDetails": {
      "id": "LetsEncryptDetails",
      "properties": {
        "issuer": {
          "description": "Let's Encrypt CA name that issued the reported certificate.",
          "type": "string"
        }
      },
      "description": "Details from Let's Encrypt issuance.",
      "type": "object"
    },
    "RevocationDetails": {
      "type": "object",
      "properties": {
        "revocationTime": {
          "type": "string",
          "description": "The time at which the certificate was revoked.",
          "format": "google-datetime"
        },
        "revocationState": {
          "enumDescriptions": [
            "Default unspecified value. This value does indicate that a Certificate has been revoked, but that a reason has not been recorded.",
            "Key material for this Certificate may have leaked.",
            "The key material for a certificate authority in the issuing path may have leaked.",
            "The subject or other attributes in this Certificate have changed.",
            "This Certificate has been superseded.",
            "This Certificate or entities in the issuing path have ceased to operate.",
            "This Certificate should not be considered valid, it is expected that it may become valid in the future.",
            "This Certificate no longer has permission to assert the listed attributes.",
            "The authority which determines appropriate attributes for a Certificate may have been compromised."
          ],
          "enum": [
            "REVOCATION_REASON_UNSPECIFIED",
            "KEY_COMPROMISE",
            "CERTIFICATE_AUTHORITY_COMPROMISE",
            "AFFILIATION_CHANGED",
            "SUPERSEDED",
            "CESSATION_OF_OPERATION",
            "CERTIFICATE_HOLD",
            "PRIVILEGE_WITHDRAWN",
            "ATTRIBUTE_AUTHORITY_COMPROMISE"
          ],
          "type": "string",
          "description": "The reason the certificate was revoked."
        }
      },
      "description": "Details about the revocation of the certificate.",
      "id": "RevocationDetails"
    },
    "GoogleTrustServicesDetails": {
      "properties": {
        "issuer": {
          "description": "Google Trust Services CA name that issued the reported certificate.",
          "type": "string"
        }
      },
      "id": "GoogleTrustServicesDetails",
      "description": "Details from Google Trust Services issuance",
      "type": "object"
    },
    "NameConstraints": {
      "id": "NameConstraints",
      "properties": {
        "excludedUris": {
          "type": "array",
          "description": "Contains the excluded URIs that apply to the host part of the name.",
          "items": {
            "type": "string"
          }
        },
        "permittedUris": {
          "description": "Contains the permitted URIs that apply to the host part of the name.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "permittedDnsNames": {
          "type": "array",
          "description": "Contains permitted DNS names.",
          "items": {
            "type": "string"
          }
        },
        "permittedIpRanges": {
          "type": "array",
          "description": "Contains the permitted IP ranges. For IPv4 addresses, the ranges are expressed using CIDR notation as specified in RFC 4632. For IPv6 addresses, the ranges are expressed in similar encoding as IPv4 addresses.",
          "items": {
            "type": "string"
          }
        },
        "critical": {
          "description": "Indicates whether or not the name constraints are marked critical.",
          "type": "boolean"
        },
        "excludedDnsNames": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "description": "Contains excluded DNS names."
        },
        "permittedEmailAddresses": {
          "items": {
            "type": "string"
          },
          "description": "Contains the permitted email addresses.",
          "type": "array"
        },
        "excludedIpRanges": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "description": "Contains the excluded IP ranges. For IPv4 addresses, the ranges are expressed using CIDR notation as specified in RFC 4632. For IPv6 addresses, the ranges are expressed in similar encoding as IPv4 addresses."
        },
        "excludedEmailAddresses": {
          "description": "Contains the excluded email addresses.",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "type": "object",
      "description": "Describes the X.509 name constraints extension, per https://tools.ietf.org/html/rfc5280#section-4.2.1.10"
    },
    "ManagedWorkloadIdentityDetails": {
      "description": "Details about the Managed Workload Identity resource that issued the certificate.",
      "type": "object",
      "id": "ManagedWorkloadIdentityDetails",
      "properties": {
        "defaultCaIssued": {
          "type": "boolean",
          "description": "Indicates whether the certificate for the Managed Workload Identity pool was issued by the GCP-provisioned default CA."
        },
        "workloadIdentityPool": {
          "type": "string",
          "description": "The full resource name of the Managed Workload Identity pool associated with the certificate."
        }
      }
    },
    "GoogleCloudLocationListLocationsResponse": {
      "type": "object",
      "id": "GoogleCloudLocationListLocationsResponse",
      "description": "The response message for Locations.ListLocations.",
      "properties": {
        "locations": {
          "description": "A list of locations that matches the specified filter in the request.",
          "items": {
            "$ref": "GoogleCloudLocationLocation"
          },
          "type": "array"
        },
        "nextPageToken": {
          "description": "The standard List next-page token.",
          "type": "string"
        }
      }
    },
    "IssuanceDetails": {
      "properties": {
        "letsEncryptDetails": {
          "description": "Details from Let's Encrypt issuance.",
          "$ref": "LetsEncryptDetails"
        },
        "certificateAuthorityServiceDetails": {
          "$ref": "CertificateAuthorityServiceDetails",
          "description": "Details from Certificate Authority Service issuance."
        },
        "authorityType": {
          "description": "Type of CA which issued the certificate.",
          "enumDescriptions": [
            "Authority type is not known.",
            "Refers to a Public CA.",
            "Refers to a Private CA."
          ],
          "enum": [
            "AUTHORITY_TYPE_UNKNOWN",
            "PUBLIC",
            "PRIVATE"
          ],
          "type": "string"
        },
        "googleTrustServicesDetails": {
          "description": "Details from Google Trust Services issuance.",
          "$ref": "GoogleTrustServicesDetails"
        },
        "issuerSubject": {
          "description": "Issuer Subject field contains the distinguished name of the issuing CA. As defined in https://datatracker.ietf.org/doc/html/rfc5280#section-4.1.2.4.",
          "$ref": "Subject"
        }
      },
      "id": "IssuanceDetails",
      "type": "object",
      "description": "Details about the CA which issued the certificate."
    },
    "CertificateFingerprint": {
      "properties": {
        "sha256Hash": {
          "description": "The SHA 256 hash of the DER x509 certificate.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "CertificateFingerprint",
      "description": "A group of fingerprints for the x509 certificate."
    },
    "GoogleCloudLocationLocation": {
      "id": "GoogleCloudLocationLocation",
      "properties": {
        "displayName": {
          "type": "string",
          "description": "The friendly name for this location, typically a nearby city name. For example, \"Tokyo\"."
        },
        "locationId": {
          "type": "string",
          "description": "The canonical id for this location. For example: `\"us-east1\"`."
        },
        "metadata": {
          "description": "Service-specific metadata. For example the available capacity at the given location.",
          "additionalProperties": {
            "type": "any",
            "description": "Properties of the object. Contains field @type with type URL."
          },
          "type": "object"
        },
        "labels": {
          "description": "Cross-service attributes for the location. For example {\"cloud.googleapis.com/region\": \"us-east1\"}",
          "additionalProperties": {
            "type": "string"
          },
          "type": "object"
        },
        "name": {
          "type": "string",
          "description": "Resource name for the location, which may vary between implementations. For example: `\"projects/example-project/locations/us-east1\"`"
        }
      },
      "description": "A resource that represents a Google Cloud location.",
      "type": "object"
    },
    "ManagementDetails": {
      "properties": {
        "managedWorkloadIdentityDetails": {
          "$ref": "ManagedWorkloadIdentityDetails",
          "description": "Details from Managed Workload Identity."
        },
        "certificateManagerV1Details": {
          "description": "Details from Certificate Manager V1.",
          "$ref": "CertificateManagerV1Details"
        }
      },
      "type": "object",
      "id": "ManagementDetails",
      "description": "Details about the service that manages issuance, such as Cloud Certificate Manager (V1) or Managed Workload Identity, if applicable."
    },
    "GoogleProtobufEmpty": {
      "description": "A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); }",
      "type": "object",
      "id": "GoogleProtobufEmpty",
      "properties": {}
    },
    "GoogleRpcStatus": {
      "description": "The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).",
      "properties": {
        "details": {
          "items": {
            "additionalProperties": {
              "type": "any",
              "description": "Properties of the object. Contains field @type with type URL."
            },
            "type": "object"
          },
          "description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.",
          "type": "array"
        },
        "message": {
          "description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.",
          "type": "string"
        },
        "code": {
          "description": "The status code, which should be an enum value of google.rpc.Code.",
          "type": "integer",
          "format": "int32"
        }
      },
      "type": "object",
      "id": "GoogleRpcStatus"
    },
    "CaOptions": {
      "description": "Describes the X.509 basic constraints extension, per [RFC 5280 section 4.2.1.9](https://tools.ietf.org/html/rfc5280#section-4.2.1.9)",
      "type": "object",
      "id": "CaOptions",
      "properties": {
        "ca": {
          "description": "Refers to the \"CA\" boolean field in the X.509 extension.",
          "type": "boolean"
        },
        "maxIssuerPathLength": {
          "description": "Refers to the path length constraint field in the X.509 extension. For a CA certificate, this value describes the depth of subordinate CA certificates that are allowed.",
          "format": "int32",
          "type": "integer"
        }
      }
    },
    "OperationMetadata": {
      "description": "Represents the metadata of the long-running operation.",
      "type": "object",
      "id": "OperationMetadata",
      "properties": {
        "statusMessage": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Human-readable status of the operation, if any."
        },
        "endTime": {
          "format": "google-datetime",
          "readOnly": true,
          "type": "string",
          "description": "Output only. The time the operation finished running."
        },
        "requestedCancellation": {
          "readOnly": true,
          "type": "boolean",
          "description": "Output only. Identifies whether the user has requested cancellation of the operation. Operations that have been cancelled successfully have google.longrunning.Operation.error value with a google.rpc.Status.code of `1`, corresponding to `Code.CANCELLED`."
        },
        "apiVersion": {
          "description": "Output only. API version used to start the operation.",
          "type": "string",
          "readOnly": true
        },
        "createTime": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. The time the operation was created.",
          "format": "google-datetime"
        },
        "verb": {
          "type": "string",
          "description": "Output only. Name of the verb executed by the operation.",
          "readOnly": true
        },
        "target": {
          "readOnly": true,
          "description": "Output only. Server-defined resource path for the target of the operation.",
          "type": "string"
        }
      }
    },
    "X509Extension": {
      "description": "An X509Extension specifies an X.509 extension, which may be used in different parts of X.509 objects like certificates, CSRs, and CRLs.",
      "properties": {
        "critical": {
          "description": "Indicates whether or not this extension is critical (i.e., if the client does not know how to handle this extension, the client should consider this to be an error).",
          "type": "boolean"
        },
        "value": {
          "description": "The value of this X.509 extension.",
          "type": "string",
          "format": "byte"
        },
        "objectId": {
          "description": "The OID for this X.509 extension.",
          "$ref": "ObjectId"
        }
      },
      "id": "X509Extension",
      "type": "object"
    },
    "Certificate": {
      "id": "Certificate",
      "description": "Represents a Certificate Manager V1 certificate that uses the observed certificate.",
      "properties": {
        "certificateMapEntries": {
          "description": "The relative resource names of the Certificate Manager V1 certificate map entries that reference the certificate.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "certificateMaps": {
          "description": "The relative resource names of the Certificate Manager V1 certificate maps that include the certificate.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "certificateName": {
          "description": "The relative resource name of the Certificate Manager V1 certificate.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "KeyUsageOptions": {
      "properties": {
        "decipherOnly": {
          "type": "boolean",
          "description": "The key may be used to decipher only."
        },
        "keyAgreement": {
          "description": "The key may be used in a key agreement protocol.",
          "type": "boolean"
        },
        "encipherOnly": {
          "description": "The key may be used to encipher only.",
          "type": "boolean"
        },
        "contentCommitment": {
          "type": "boolean",
          "description": "The key may be used for cryptographic commitments. Note that this may also be referred to as \"non-repudiation\"."
        },
        "keyEncipherment": {
          "type": "boolean",
          "description": "The key may be used to encipher other keys."
        },
        "certSign": {
          "type": "boolean",
          "description": "The key may be used to sign certificates."
        },
        "dataEncipherment": {
          "description": "The key may be used to encipher data.",
          "type": "boolean"
        },
        "crlSign": {
          "type": "boolean",
          "description": "The key may be used sign certificate revocation lists."
        },
        "digitalSignature": {
          "type": "boolean",
          "description": "The key may be used for digital signatures."
        }
      },
      "description": "KeyUsage.KeyUsageOptions corresponds to the key usage values described in https://tools.ietf.org/html/rfc5280#section-4.2.1.3.",
      "id": "KeyUsageOptions",
      "type": "object"
    },
    "CertificateAuthorityServiceDetails": {
      "properties": {
        "revocationDetails": {
          "description": "Output only. Details about the revocation of the certificate.",
          "$ref": "RevocationDetails",
          "readOnly": true
        },
        "certificateName": {
          "description": "Full resource name of the Certificate Authority Service enterprise certificate.",
          "type": "string"
        },
        "issuer": {
          "description": "Full resource name of the Certificate Authority Service CA which issued the certificate.",
          "type": "string"
        }
      },
      "description": "Details from Certificate Authority Service issuance.",
      "type": "object",
      "id": "CertificateAuthorityServiceDetails"
    },
    "ListObservedCertificatesResponse": {
      "properties": {
        "nextPageToken": {
          "description": "A token identifying a page of results the server should return.",
          "type": "string"
        },
        "observedCertificates": {
          "type": "array",
          "items": {
            "$ref": "ObservedCertificate"
          },
          "description": "The list of ObservedCertificate"
        },
        "unreachable": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Unordered list. Locations that could not be reached."
        }
      },
      "description": "Message for response to listing ObservedCertificates",
      "id": "ListObservedCertificatesResponse",
      "type": "object"
    },
    "Subject": {
      "id": "Subject",
      "description": "Fields representing the subject field of a certificate.",
      "properties": {
        "postalCodes": {
          "description": "The postal code of the subject.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "distinguishedName": {
          "description": "String representation of the distinguished name.",
          "type": "string"
        },
        "organizations": {
          "type": "array",
          "description": "The organization of the subject.",
          "items": {
            "type": "string"
          }
        },
        "commonNames": {
          "type": "array",
          "description": "The \"common name\" of the subject.",
          "items": {
            "type": "string"
          }
        },
        "organizationalUnits": {
          "description": "The organizational_unit of the subject.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "localities": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The locality or city of the subject."
        },
        "streetAddresses": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "description": "The street address of the subject."
        },
        "customNames": {
          "description": "Any custom relative distinguished names.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "provinces": {
          "description": "The province, territory, or regional state of the subject.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "countryCodes": {
          "description": "The country code of the subject.",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "type": "object"
    },
    "ExtendedKeyUsageOptions": {
      "properties": {
        "emailProtection": {
          "type": "boolean",
          "description": "Corresponds to OID 1.3.6.1.5.5.7.3.4. Officially described as \"Email protection\"."
        },
        "serverAuth": {
          "description": "Corresponds to OID 1.3.6.1.5.5.7.3.1. Officially described as \"TLS WWW server authentication\", though regularly used for non-WWW TLS.",
          "type": "boolean"
        },
        "clientAuth": {
          "type": "boolean",
          "description": "Corresponds to OID 1.3.6.1.5.5.7.3.2. Officially described as \"TLS WWW client authentication\", though regularly used for non-WWW TLS."
        },
        "codeSigning": {
          "type": "boolean",
          "description": "Corresponds to OID 1.3.6.1.5.5.7.3.3. Officially described as \"Signing of downloadable executable code client authentication\"."
        },
        "ocspSigning": {
          "type": "boolean",
          "description": "Corresponds to OID 1.3.6.1.5.5.7.3.9. Officially described as \"Signing OCSP responses\"."
        },
        "timeStamping": {
          "description": "Corresponds to OID 1.3.6.1.5.5.7.3.8. Officially described as \"Binding the hash of an object to a time\".",
          "type": "boolean"
        }
      },
      "description": "KeyUsage.ExtendedKeyUsageOptions has fields that correspond to certain common OIDs that could be specified as an extended key usage value.",
      "id": "ExtendedKeyUsageOptions",
      "type": "object"
    },
    "OtherName": {
      "description": "Other names specify additional name types in the SubjectAltName.",
      "type": "object",
      "id": "OtherName",
      "properties": {
        "type": {
          "description": "Type specifies the object id for the type of name.",
          "$ref": "ObjectId"
        },
        "value": {
          "format": "byte",
          "type": "string",
          "description": "Value for the name."
        }
      }
    },
    "SubjectAltNames": {
      "description": "Fields representing the Subject Alt Names extension of a certificate.",
      "properties": {
        "critical": {
          "description": "Contains the criticality of the SubjectAltName extension.",
          "type": "boolean"
        },
        "otherNames": {
          "type": "array",
          "description": "Contains values parsed from `custom_sans`.",
          "items": {
            "$ref": "OtherName"
          }
        },
        "uris": {
          "items": {
            "type": "string"
          },
          "description": "Contains only valid RFC 3986 URIs.",
          "type": "array"
        },
        "emailAddresses": {
          "description": "Contains only valid RFC 2822 E-mail addresses.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "ipAddresses": {
          "description": "Contains only valid 32-bit IPv4 addresses or RFC 4291 IPv6 addresses.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "dnsNames": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Contains only valid, fully-qualified host names."
        }
      },
      "type": "object",
      "id": "SubjectAltNames"
    },
    "KeyUsage": {
      "description": "A KeyUsage describes key usage values that may appear in an X.509 certificate.",
      "type": "object",
      "properties": {
        "baseKeyUsage": {
          "description": "Describes high-level ways in which a key may be used.",
          "$ref": "KeyUsageOptions"
        },
        "criticalExtendedKeyUsage": {
          "description": "Indicates whether or not this extended key usage extension is critical (i.e., if the client does not know how to handle this extension, the client should consider this to be an error).",
          "type": "boolean"
        },
        "unknownExtendedKeyUsages": {
          "items": {
            "$ref": "ObjectId"
          },
          "description": "Used to describe extended key usages that are not listed in the KeyUsage.ExtendedKeyUsageOptions message.",
          "type": "array"
        },
        "criticalBaseKeyUsage": {
          "type": "boolean",
          "description": "Indicates whether or not this base key usage extension is critical (i.e., if the client does not know how to handle this extension, the client should consider this to be an error)."
        },
        "extendedKeyUsage": {
          "$ref": "ExtendedKeyUsageOptions",
          "description": "Detailed scenarios in which a key may be used."
        }
      },
      "id": "KeyUsage"
    },
    "CertificateDescription": {
      "description": "Details about the certificate, which are derived from the contents of the certificate.",
      "id": "CertificateDescription",
      "type": "object",
      "properties": {
        "additionalExtensions": {
          "description": "Any additional extensions present in the certificate.",
          "type": "array",
          "items": {
            "$ref": "X509Extension"
          }
        },
        "fingerprint": {
          "$ref": "CertificateFingerprint",
          "description": "Certificate fingerprint."
        },
        "policyIds": {
          "description": "What policies the certificate can be used for.",
          "items": {
            "$ref": "ObjectId"
          },
          "type": "array"
        },
        "publicKeyAlgorithm": {
          "description": "Details about the public key algorithm of the certificate.",
          "$ref": "PublicKeyAlgorithm"
        },
        "nameConstraints": {
          "$ref": "NameConstraints",
          "description": "Contains the Name Constraints extension."
        },
        "authorityKeyId": {
          "description": "Identifier to uniquely identify the issuer's public key.",
          "type": "string"
        },
        "subject": {
          "$ref": "Subject",
          "description": "Subject field of the certificate details."
        },
        "hexSerialNumber": {
          "description": "Hex serial number of the certificate.",
          "type": "string"
        },
        "usage": {
          "description": "Details about what the keys associated with certificate can be used for.",
          "$ref": "KeyUsage"
        },
        "subjectAltNames": {
          "description": "SubjectAltName extension of the certificate details.",
          "$ref": "SubjectAltNames"
        },
        "crlDistributionPoints": {
          "description": "Describes a list of locations to obtain CRL information, i.e. the DistributionPoint.fullName described by https://tools.ietf.org/html/rfc5280#section-4.2.1.13",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "subjectKeyId": {
          "type": "string",
          "description": "Identifier to uniquely identify the public key of the certificate."
        },
        "caOptions": {
          "description": "Describes options in this X509Parameters that are relevant in a CA certificate.",
          "$ref": "CaOptions"
        },
        "aiaIssuingCertificateUrls": {
          "description": "Describes lists of issuer CA certificate URLs that appear in the \"Authority Information Access\" extension in the certificate.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "aiaOcspServers": {
          "description": "Describes Online Certificate Status Protocol (OCSP) endpoint addresses that appear in the \"Authority Information Access\" extension in the certificate.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      }
    },
    "PublicKeyAlgorithm": {
      "properties": {
        "rsaModulusBits": {
          "format": "int64",
          "description": "RSA modulus bits if the algorithm is RSA.",
          "type": "string"
        },
        "algorithm": {
          "description": "Algorithm the key is using.",
          "enum": [
            "KEY_ALGORITHM_UNKNOWN",
            "RSA",
            "RSA2048",
            "RSA3072",
            "RSA4096",
            "ECDSA_P256",
            "ECDSA_P384",
            "EDDSA25519"
          ],
          "type": "string",
          "enumDescriptions": [
            "Algorithm is not recognized.",
            "Refers to the RSA public key algorithm, with non-default modulus bits.",
            "Refers to the RSA public key algorithm, with 2048 modulus bits.",
            "Refers to the RSA public key algorithm, with 3072 modulus bits.",
            "Refers to the RSA public key algorithm, with 4096 modulus bits.",
            "Refers to the Elliptic Curve Digital Signature Algorithm over the NIST P-256 curve.",
            "Refers to the Elliptic Curve Digital Signature Algorithm over the NIST P-384 curve.",
            "Refers to the Edwards Curve Digital Signature Algorithm over Curve 25519, as described in RFC 8410."
          ]
        }
      },
      "description": "Describes the public key algorithm in the subject public key information, per [RFC 5280 section 4.1.1.2] (https://datatracker.ietf.org/doc/html/rfc5280#section-4.1)",
      "id": "PublicKeyAlgorithm",
      "type": "object"
    },
    "Attachment": {
      "properties": {
        "associatedResource": {
          "description": "The full resource name associated with the certificate.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "Attachment",
      "description": "Details about a cloud resource which is using the certificate."
    },
    "GoogleLongrunningListOperationsResponse": {
      "id": "GoogleLongrunningListOperationsResponse",
      "properties": {
        "operations": {
          "type": "array",
          "description": "A list of operations that matches the specified filter in the request.",
          "items": {
            "$ref": "GoogleLongrunningOperation"
          }
        },
        "unreachable": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "description": "Unordered list. Unreachable resources. Populated when the request sets `ListOperationsRequest.return_partial_success` and reads across collections. For example, when attempting to list all resources across all supported locations."
        },
        "nextPageToken": {
          "description": "The standard List next-page token.",
          "type": "string"
        }
      },
      "description": "The response message for Operations.ListOperations.",
      "type": "object"
    },
    "ObjectId": {
      "type": "object",
      "id": "ObjectId",
      "description": "An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages.",
      "properties": {
        "objectIdValues": {
          "items": {
            "format": "int32",
            "type": "integer"
          },
          "description": "The parts of an OID path. The most significant parts of the path come first.",
          "type": "array"
        }
      }
    },
    "CertificateManagerV1Details": {
      "properties": {
        "certificates": {
          "type": "array",
          "description": "Certificate Manager V1 certificates that use the observed certificate.",
          "items": {
            "$ref": "Certificate"
          }
        }
      },
      "description": "Details about the Certificate Manager V1 resource that ingested the certificate.",
      "id": "CertificateManagerV1Details",
      "type": "object"
    },
    "GoogleLongrunningOperation": {
      "id": "GoogleLongrunningOperation",
      "description": "This resource represents a long-running operation that is the result of a network API call.",
      "properties": {
        "name": {
          "description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.",
          "type": "string"
        },
        "done": {
          "description": "If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.",
          "type": "boolean"
        },
        "response": {
          "additionalProperties": {
            "description": "Properties of the object. Contains field @type with type URL.",
            "type": "any"
          },
          "type": "object",
          "description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`."
        },
        "metadata": {
          "description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.",
          "additionalProperties": {
            "type": "any",
            "description": "Properties of the object. Contains field @type with type URL."
          },
          "type": "object"
        },
        "error": {
          "$ref": "GoogleRpcStatus",
          "description": "The error result of the operation in case of failure or cancellation."
        }
      },
      "type": "object"
    }
  },
  "basePath": "",
  "canonicalName": "Certificate Manager",
  "description": "",
  "rootUrl": "https://certificatemanager.googleapis.com/",
  "version_module": true,
  "auth": {
    "oauth2": {
      "scopes": {
        "https://www.googleapis.com/auth/cloud-platform": {
          "description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account."
        }
      }
    }
  },
  "resources": {
    "projects": {
      "resources": {
        "locations": {
          "methods": {
            "get": {
              "id": "certificatemanager.projects.locations.get",
              "httpMethod": "GET",
              "parameters": {
                "name": {
                  "required": true,
                  "pattern": "^projects/[^/]+/locations/[^/]+$",
                  "description": "Resource name for the location.",
                  "type": "string",
                  "location": "path"
                }
              },
              "path": "v2alpha/{+name}",
              "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}",
              "response": {
                "$ref": "GoogleCloudLocationLocation"
              },
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "description": "Gets information about a location.",
              "parameterOrder": [
                "name"
              ]
            },
            "list": {
              "flatPath": "v2alpha/projects/{projectsId}/locations",
              "parameters": {
                "filter": {
                  "location": "query",
                  "type": "string",
                  "description": "A filter to narrow down results to a preferred subset. The filtering language accepts strings like `\"displayName=tokyo\"`, and is documented in more detail in [AIP-160](https://google.aip.dev/160)."
                },
                "name": {
                  "type": "string",
                  "required": true,
                  "location": "path",
                  "pattern": "^projects/[^/]+$",
                  "description": "The resource that owns the locations collection, if applicable."
                },
                "pageToken": {
                  "type": "string",
                  "location": "query",
                  "description": "A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page."
                },
                "pageSize": {
                  "description": "The maximum number of results to return. If not set, the service selects a default.",
                  "type": "integer",
                  "location": "query",
                  "format": "int32"
                },
                "extraLocationTypes": {
                  "type": "string",
                  "description": "Optional. Do not use this field unless explicitly documented otherwise. This is primarily for internal usage.",
                  "repeated": true,
                  "location": "query"
                }
              },
              "path": "v2alpha/{+name}/locations",
              "httpMethod": "GET",
              "id": "certificatemanager.projects.locations.list",
              "description": "Lists information about the supported locations for this service. This method lists locations based on the resource scope provided in the ListLocationsRequest.name field: * **Global locations**: If `name` is empty, the method lists the public locations available to all projects. * **Project-specific locations**: If `name` follows the format `projects/{project}`, the method lists locations visible to that specific project. This includes public, private, or other project-specific locations enabled for the project. For gRPC and client library implementations, the resource name is passed as the `name` field. For direct service calls, the resource name is incorporated into the request path based on the specific service implementation and version.",
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "parameterOrder": [
                "name"
              ],
              "response": {
                "$ref": "GoogleCloudLocationListLocationsResponse"
              }
            }
          },
          "resources": {
            "operations": {
              "methods": {
                "list": {
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "id": "certificatemanager.projects.locations.operations.list",
                  "response": {
                    "$ref": "GoogleLongrunningListOperationsResponse"
                  },
                  "path": "v2alpha/{+name}/operations",
                  "parameterOrder": [
                    "name"
                  ],
                  "parameters": {
                    "returnPartialSuccess": {
                      "location": "query",
                      "type": "boolean",
                      "description": "When set to `true`, operations that are reachable are returned as normal, and those that are unreachable are returned in the ListOperationsResponse.unreachable field. This can only be `true` when reading across collections. For example, when `parent` is set to `\"projects/example/locations/-\"`. This field is not supported by default and will result in an `UNIMPLEMENTED` error if set unless explicitly documented otherwise in service or product specific documentation."
                    },
                    "filter": {
                      "location": "query",
                      "type": "string",
                      "description": "The standard list filter."
                    },
                    "pageToken": {
                      "description": "The standard list page token.",
                      "location": "query",
                      "type": "string"
                    },
                    "pageSize": {
                      "description": "The standard list page size.",
                      "format": "int32",
                      "location": "query",
                      "type": "integer"
                    },
                    "name": {
                      "required": true,
                      "type": "string",
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "description": "The name of the operation's parent resource.",
                      "location": "path"
                    }
                  },
                  "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.",
                  "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}/operations",
                  "httpMethod": "GET"
                },
                "get": {
                  "response": {
                    "$ref": "GoogleLongrunningOperation"
                  },
                  "path": "v2alpha/{+name}",
                  "description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "id": "certificatemanager.projects.locations.operations.get",
                  "httpMethod": "GET",
                  "parameterOrder": [
                    "name"
                  ],
                  "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}",
                  "parameters": {
                    "name": {
                      "type": "string",
                      "location": "path",
                      "required": true,
                      "description": "The name of the operation resource.",
                      "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$"
                    }
                  }
                },
                "delete": {
                  "path": "v2alpha/{+name}",
                  "httpMethod": "DELETE",
                  "parameters": {
                    "name": {
                      "required": true,
                      "type": "string",
                      "description": "The name of the operation resource to be deleted.",
                      "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$",
                      "location": "path"
                    }
                  },
                  "response": {
                    "$ref": "GoogleProtobufEmpty"
                  },
                  "id": "certificatemanager.projects.locations.operations.delete",
                  "description": "Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "parameterOrder": [
                    "name"
                  ],
                  "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}"
                },
                "cancel": {
                  "parameterOrder": [
                    "name"
                  ],
                  "response": {
                    "$ref": "GoogleProtobufEmpty"
                  },
                  "request": {
                    "$ref": "GoogleLongrunningCancelOperationRequest"
                  },
                  "description": "Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of `1`, corresponding to `Code.CANCELLED`.",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "parameters": {
                    "name": {
                      "location": "path",
                      "type": "string",
                      "description": "The name of the operation resource to be cancelled.",
                      "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$",
                      "required": true
                    }
                  },
                  "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}:cancel",
                  "httpMethod": "POST",
                  "id": "certificatemanager.projects.locations.operations.cancel",
                  "path": "v2alpha/{+name}:cancel"
                }
              }
            },
            "observedCertificates": {
              "methods": {
                "get": {
                  "response": {
                    "$ref": "ObservedCertificate"
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "parameters": {
                    "name": {
                      "required": true,
                      "pattern": "^projects/[^/]+/locations/[^/]+/observedCertificates/[^/]+$",
                      "type": "string",
                      "description": "Required. Name of the resource",
                      "location": "path"
                    },
                    "view": {
                      "enumDescriptions": [
                        "For List, the default is CERTIFICATE_VIEW_BASIC, and for Get, the default is CERTIFICATE_VIEW_FULL.",
                        "CERTIFICATE_VIEW_BASIC returns all of ObservedCertificate fields excluding encoded_certificate.",
                        "CERTIFICATE_VIEW_FULL returns all of the fields."
                      ],
                      "description": "Optional. The view of the ObservedCertificate in the response.",
                      "location": "query",
                      "type": "string",
                      "enum": [
                        "CERTIFICATE_VIEW_UNSPECIFIED",
                        "CERTIFICATE_VIEW_BASIC",
                        "CERTIFICATE_VIEW_FULL"
                      ]
                    }
                  },
                  "id": "certificatemanager.projects.locations.observedCertificates.get",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "httpMethod": "GET",
                  "path": "v2alpha/{+name}",
                  "description": "Gets details of a single ObservedCertificate.",
                  "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}/observedCertificates/{observedCertificatesId}"
                },
                "list": {
                  "response": {
                    "$ref": "ListObservedCertificatesResponse"
                  },
                  "path": "v2alpha/{+parent}/observedCertificates",
                  "parameters": {
                    "view": {
                      "enum": [
                        "CERTIFICATE_VIEW_UNSPECIFIED",
                        "CERTIFICATE_VIEW_BASIC",
                        "CERTIFICATE_VIEW_FULL"
                      ],
                      "enumDescriptions": [
                        "For List, the default is CERTIFICATE_VIEW_BASIC, and for Get, the default is CERTIFICATE_VIEW_FULL.",
                        "CERTIFICATE_VIEW_BASIC returns all of ObservedCertificate fields excluding encoded_certificate.",
                        "CERTIFICATE_VIEW_FULL returns all of the fields."
                      ],
                      "type": "string",
                      "description": "Optional. The view of the ObservedCertificates in the response.",
                      "location": "query"
                    },
                    "orderBy": {
                      "type": "string",
                      "location": "query",
                      "description": "Optional. Hint for how to order the results"
                    },
                    "pageSize": {
                      "format": "int32",
                      "location": "query",
                      "type": "integer",
                      "description": "Optional. Requested page size. Server may return fewer items than requested. If unspecified, server will pick an appropriate default."
                    },
                    "parent": {
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "required": true,
                      "type": "string",
                      "location": "path",
                      "description": "Required. Parent value for ListObservedCertificatesRequest"
                    },
                    "filter": {
                      "type": "string",
                      "location": "query",
                      "description": "Optional. Filtering results"
                    },
                    "pageToken": {
                      "type": "string",
                      "location": "query",
                      "description": "Optional. A token identifying a page of results the server should return."
                    }
                  },
                  "httpMethod": "GET",
                  "id": "certificatemanager.projects.locations.observedCertificates.list",
                  "parameterOrder": [
                    "parent"
                  ],
                  "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}/observedCertificates",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "description": "Lists ObservedCertificates in a given project and location."
                }
              }
            }
          }
        }
      }
    }
  },
  "baseUrl": "https://certificatemanager.googleapis.com/",
  "id": "certificatemanager:v2alpha",
  "ownerName": "Google",
  "icons": {
    "x16": "http://www.google.com/images/icons/product/search-16.gif",
    "x32": "http://www.google.com/images/icons/product/search-32.gif"
  },
  "revision": "20261021"
}
