{
  "description": "",
  "basePath": "",
  "name": "certificatemanager",
  "baseUrl": "https://certificatemanager.googleapis.com/",
  "fullyEncodeReservedExpansion": true,
  "schemas": {
    "LetsEncryptDetails": {
      "type": "object",
      "properties": {
        "issuer": {
          "description": "Let's Encrypt CA name that issued the reported certificate.",
          "type": "string"
        }
      },
      "id": "LetsEncryptDetails",
      "description": "Details from Let's Encrypt issuance."
    },
    "CertificateDescription": {
      "description": "Details about the certificate, which are derived from the contents of the certificate.",
      "type": "object",
      "id": "CertificateDescription",
      "properties": {
        "authorityKeyId": {
          "description": "Identifier to uniquely identify the issuer's public key.",
          "type": "string"
        },
        "fingerprint": {
          "description": "Certificate fingerprint.",
          "$ref": "CertificateFingerprint"
        },
        "aiaIssuingCertificateUrls": {
          "description": "Describes lists of issuer CA certificate URLs that appear in the \"Authority Information Access\" extension in the certificate.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "subject": {
          "$ref": "Subject",
          "description": "Subject field of the certificate details."
        },
        "additionalExtensions": {
          "items": {
            "$ref": "X509Extension"
          },
          "type": "array",
          "description": "Any additional extensions present in the certificate."
        },
        "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"
          }
        },
        "nameConstraints": {
          "description": "Contains the Name Constraints extension.",
          "$ref": "NameConstraints"
        },
        "hexSerialNumber": {
          "type": "string",
          "description": "Hex serial number of the certificate."
        },
        "aiaOcspServers": {
          "description": "Describes Online Certificate Status Protocol (OCSP) endpoint addresses that appear in the \"Authority Information Access\" extension in the certificate.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "caOptions": {
          "description": "Describes options in this X509Parameters that are relevant in a CA certificate.",
          "$ref": "CaOptions"
        },
        "subjectAltNames": {
          "$ref": "SubjectAltNames",
          "description": "SubjectAltName extension of the certificate details."
        },
        "usage": {
          "description": "Details about what the keys associated with certificate can be used for.",
          "$ref": "KeyUsage"
        },
        "publicKeyAlgorithm": {
          "description": "Details about the public key algorithm of the certificate.",
          "$ref": "PublicKeyAlgorithm"
        },
        "subjectKeyId": {
          "type": "string",
          "description": "Identifier to uniquely identify the public key of the certificate."
        },
        "policyIds": {
          "type": "array",
          "description": "What policies the certificate can be used for.",
          "items": {
            "$ref": "ObjectId"
          }
        }
      }
    },
    "CertificateManagerV1Details": {
      "description": "Details about the Certificate Manager V1 resource that ingested the certificate.",
      "type": "object",
      "id": "CertificateManagerV1Details",
      "properties": {
        "certificates": {
          "type": "array",
          "description": "Certificate Manager V1 certificates that use the observed certificate.",
          "items": {
            "$ref": "Certificate"
          }
        }
      }
    },
    "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.",
      "id": "X509Extension",
      "properties": {
        "objectId": {
          "$ref": "ObjectId",
          "description": "The OID for this X.509 extension."
        },
        "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"
        }
      },
      "type": "object"
    },
    "Subject": {
      "description": "Fields representing the subject field of a certificate.",
      "type": "object",
      "properties": {
        "distinguishedName": {
          "type": "string",
          "description": "String representation of the distinguished name."
        },
        "localities": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "description": "The locality or city of the subject."
        },
        "postalCodes": {
          "type": "array",
          "description": "The postal code of the subject.",
          "items": {
            "type": "string"
          }
        },
        "organizationalUnits": {
          "type": "array",
          "description": "The organizational_unit of the subject.",
          "items": {
            "type": "string"
          }
        },
        "streetAddresses": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "description": "The street address of the subject."
        },
        "organizations": {
          "items": {
            "type": "string"
          },
          "description": "The organization of the subject.",
          "type": "array"
        },
        "commonNames": {
          "type": "array",
          "description": "The \"common name\" of the subject.",
          "items": {
            "type": "string"
          }
        },
        "customNames": {
          "description": "Any custom relative distinguished names.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "countryCodes": {
          "description": "The country code of the subject.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "provinces": {
          "description": "The province, territory, or regional state of the subject.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "id": "Subject"
    },
    "GoogleLongrunningListOperationsResponse": {
      "description": "The response message for Operations.ListOperations.",
      "properties": {
        "nextPageToken": {
          "type": "string",
          "description": "The standard List next-page token."
        },
        "unreachable": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "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."
        },
        "operations": {
          "type": "array",
          "items": {
            "$ref": "GoogleLongrunningOperation"
          },
          "description": "A list of operations that matches the specified filter in the request."
        }
      },
      "type": "object",
      "id": "GoogleLongrunningListOperationsResponse"
    },
    "NameConstraints": {
      "description": "Describes the X.509 name constraints extension, per https://tools.ietf.org/html/rfc5280#section-4.2.1.10",
      "type": "object",
      "properties": {
        "excludedIpRanges": {
          "items": {
            "type": "string"
          },
          "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.",
          "type": "array"
        },
        "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": {
          "type": "boolean",
          "description": "Indicates whether or not the name constraints are marked critical."
        },
        "permittedDnsNames": {
          "items": {
            "type": "string"
          },
          "description": "Contains permitted DNS names.",
          "type": "array"
        },
        "permittedEmailAddresses": {
          "description": "Contains the permitted email addresses.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "excludedUris": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Contains the excluded URIs that apply to the host part of the name."
        },
        "excludedDnsNames": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "description": "Contains excluded DNS names."
        },
        "excludedEmailAddresses": {
          "type": "array",
          "description": "Contains the excluded email addresses.",
          "items": {
            "type": "string"
          }
        },
        "permittedUris": {
          "items": {
            "type": "string"
          },
          "description": "Contains the permitted URIs that apply to the host part of the name.",
          "type": "array"
        }
      },
      "id": "NameConstraints"
    },
    "GoogleLongrunningOperation": {
      "properties": {
        "done": {
          "type": "boolean",
          "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."
        },
        "metadata": {
          "type": "object",
          "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": {
            "description": "Properties of the object. Contains field @type with type URL.",
            "type": "any"
          }
        },
        "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`."
        },
        "error": {
          "description": "The error result of the operation in case of failure or cancellation.",
          "$ref": "GoogleRpcStatus"
        },
        "name": {
          "type": "string",
          "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": "object",
      "id": "GoogleLongrunningOperation",
      "description": "This resource represents a long-running operation that is the result of a network API call."
    },
    "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."
    },
    "Certificate": {
      "id": "Certificate",
      "description": "Represents a Certificate Manager V1 certificate that uses the observed certificate.",
      "properties": {
        "certificateMaps": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The relative resource names of the Certificate Manager V1 certificate maps that include the certificate."
        },
        "certificateMapEntries": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The relative resource names of the Certificate Manager V1 certificate map entries that reference the certificate."
        },
        "certificateName": {
          "description": "The relative resource name of the Certificate Manager V1 certificate.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "RevocationDetails": {
      "description": "Details about the revocation of the certificate.",
      "properties": {
        "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."
          ],
          "type": "string",
          "description": "The reason the certificate was revoked.",
          "enum": [
            "REVOCATION_REASON_UNSPECIFIED",
            "KEY_COMPROMISE",
            "CERTIFICATE_AUTHORITY_COMPROMISE",
            "AFFILIATION_CHANGED",
            "SUPERSEDED",
            "CESSATION_OF_OPERATION",
            "CERTIFICATE_HOLD",
            "PRIVILEGE_WITHDRAWN",
            "ATTRIBUTE_AUTHORITY_COMPROMISE"
          ]
        },
        "revocationTime": {
          "type": "string",
          "format": "google-datetime",
          "description": "The time at which the certificate was revoked."
        }
      },
      "type": "object",
      "id": "RevocationDetails"
    },
    "CertificateAuthorityServiceDetails": {
      "description": "Details from Certificate Authority Service issuance.",
      "type": "object",
      "properties": {
        "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"
        },
        "revocationDetails": {
          "$ref": "RevocationDetails",
          "readOnly": true,
          "description": "Output only. Details about the revocation of the certificate."
        }
      },
      "id": "CertificateAuthorityServiceDetails"
    },
    "PublicKeyAlgorithm": {
      "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)",
      "type": "object",
      "properties": {
        "algorithm": {
          "enum": [
            "KEY_ALGORITHM_UNKNOWN",
            "RSA",
            "RSA2048",
            "RSA3072",
            "RSA4096",
            "ECDSA_P256",
            "ECDSA_P384",
            "EDDSA25519"
          ],
          "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": "Algorithm the key is using.",
          "type": "string"
        },
        "rsaModulusBits": {
          "type": "string",
          "description": "RSA modulus bits if the algorithm is RSA.",
          "format": "int64"
        }
      },
      "id": "PublicKeyAlgorithm"
    },
    "ExtendedKeyUsageOptions": {
      "properties": {
        "emailProtection": {
          "type": "boolean",
          "description": "Corresponds to OID 1.3.6.1.5.5.7.3.4. Officially described as \"Email protection\"."
        },
        "ocspSigning": {
          "type": "boolean",
          "description": "Corresponds to OID 1.3.6.1.5.5.7.3.9. Officially described as \"Signing OCSP responses\"."
        },
        "timeStamping": {
          "type": "boolean",
          "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\"."
        },
        "serverAuth": {
          "type": "boolean",
          "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."
        },
        "codeSigning": {
          "description": "Corresponds to OID 1.3.6.1.5.5.7.3.3. Officially described as \"Signing of downloadable executable code client authentication\".",
          "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."
        }
      },
      "type": "object",
      "id": "ExtendedKeyUsageOptions",
      "description": "KeyUsage.ExtendedKeyUsageOptions has fields that correspond to certain common OIDs that could be specified as an extended key usage value."
    },
    "GoogleCloudLocationLocation": {
      "id": "GoogleCloudLocationLocation",
      "properties": {
        "labels": {
          "description": "Cross-service attributes for the location. For example {\"cloud.googleapis.com/region\": \"us-east1\"}",
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "name": {
          "type": "string",
          "description": "Resource name for the location, which may vary between implementations. For example: `\"projects/example-project/locations/us-east1\"`"
        },
        "metadata": {
          "description": "Service-specific metadata. For example the available capacity at the given location.",
          "additionalProperties": {
            "description": "Properties of the object. Contains field @type with type URL.",
            "type": "any"
          },
          "type": "object"
        },
        "displayName": {
          "description": "The friendly name for this location, typically a nearby city name. For example, \"Tokyo\".",
          "type": "string"
        },
        "locationId": {
          "type": "string",
          "description": "The canonical id for this location. For example: `\"us-east1\"`."
        }
      },
      "description": "A resource that represents a Google Cloud location.",
      "type": "object"
    },
    "KeyUsage": {
      "id": "KeyUsage",
      "properties": {
        "baseKeyUsage": {
          "$ref": "KeyUsageOptions",
          "description": "Describes high-level ways in which a key may be used."
        },
        "criticalExtendedKeyUsage": {
          "type": "boolean",
          "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)."
        },
        "unknownExtendedKeyUsages": {
          "description": "Used to describe extended key usages that are not listed in the KeyUsage.ExtendedKeyUsageOptions message.",
          "type": "array",
          "items": {
            "$ref": "ObjectId"
          }
        },
        "criticalBaseKeyUsage": {
          "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).",
          "type": "boolean"
        },
        "extendedKeyUsage": {
          "description": "Detailed scenarios in which a key may be used.",
          "$ref": "ExtendedKeyUsageOptions"
        }
      },
      "type": "object",
      "description": "A KeyUsage describes key usage values that may appear in an X.509 certificate."
    },
    "GoogleRpcStatus": {
      "id": "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).",
      "type": "object",
      "properties": {
        "details": {
          "items": {
            "type": "object",
            "additionalProperties": {
              "type": "any",
              "description": "Properties of the object. Contains field @type with type URL."
            }
          },
          "type": "array",
          "description": "A list of messages that carry the error details. There is a common set of message types for APIs to use."
        },
        "code": {
          "type": "integer",
          "description": "The status code, which should be an enum value of google.rpc.Code.",
          "format": "int32"
        },
        "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"
        }
      }
    },
    "ObservedCertificate": {
      "type": "object",
      "properties": {
        "description": {
          "description": "Details associated with the observed certificate.",
          "$ref": "CertificateDescription"
        },
        "name": {
          "description": "Identifier. Name of resource.",
          "type": "string"
        },
        "attachments": {
          "items": {
            "$ref": "Attachment"
          },
          "description": "Resources which are observed using the certificate.",
          "type": "array"
        },
        "pemCertificate": {
          "description": "Pem encoded certificate.",
          "type": "string"
        },
        "observedTime": {
          "format": "google-datetime",
          "description": "Time the certificate was observed within our system.",
          "type": "string"
        },
        "issuanceDetails": {
          "description": "Details about the issuer.",
          "$ref": "IssuanceDetails"
        },
        "notAfterTime": {
          "type": "string",
          "description": "Time after which the certificate expires.",
          "format": "google-datetime"
        },
        "managementDetails": {
          "description": "Details about the managing service, such as CCM or MWID.",
          "$ref": "ManagementDetails"
        },
        "notBeforeTime": {
          "format": "google-datetime",
          "description": "Time at which the certificate becomes valid.",
          "type": "string"
        },
        "lifetime": {
          "format": "google-duration",
          "type": "string",
          "description": "For convenience, the actual lifetime of an issued certificate."
        }
      },
      "description": "Message describing ObservedCertificate object.",
      "id": "ObservedCertificate"
    },
    "ManagementDetails": {
      "type": "object",
      "properties": {
        "managedWorkloadIdentityDetails": {
          "$ref": "ManagedWorkloadIdentityDetails",
          "description": "Details from Managed Workload Identity."
        },
        "certificateManagerV1Details": {
          "description": "Details from Certificate Manager V1.",
          "$ref": "CertificateManagerV1Details"
        }
      },
      "description": "Details about the service that manages issuance, such as Cloud Certificate Manager (V1) or Managed Workload Identity, if applicable.",
      "id": "ManagementDetails"
    },
    "ListObservedCertificatesResponse": {
      "properties": {
        "observedCertificates": {
          "description": "The list of ObservedCertificate",
          "type": "array",
          "items": {
            "$ref": "ObservedCertificate"
          }
        },
        "nextPageToken": {
          "type": "string",
          "description": "A token identifying a page of results the server should return."
        },
        "unreachable": {
          "description": "Unordered list. Locations that could not be reached.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "description": "Message for response to listing ObservedCertificates",
      "id": "ListObservedCertificatesResponse",
      "type": "object"
    },
    "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"
    },
    "SubjectAltNames": {
      "description": "Fields representing the Subject Alt Names extension of a certificate.",
      "id": "SubjectAltNames",
      "properties": {
        "emailAddresses": {
          "items": {
            "type": "string"
          },
          "description": "Contains only valid RFC 2822 E-mail addresses.",
          "type": "array"
        },
        "uris": {
          "description": "Contains only valid RFC 3986 URIs.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "critical": {
          "type": "boolean",
          "description": "Contains the criticality of the SubjectAltName extension."
        },
        "dnsNames": {
          "items": {
            "type": "string"
          },
          "description": "Contains only valid, fully-qualified host names.",
          "type": "array"
        },
        "ipAddresses": {
          "description": "Contains only valid 32-bit IPv4 addresses or RFC 4291 IPv6 addresses.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "otherNames": {
          "items": {
            "$ref": "OtherName"
          },
          "description": "Contains values parsed from `custom_sans`.",
          "type": "array"
        }
      },
      "type": "object"
    },
    "CaOptions": {
      "id": "CaOptions",
      "type": "object",
      "properties": {
        "ca": {
          "type": "boolean",
          "description": "Refers to the \"CA\" boolean field in the X.509 extension."
        },
        "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.",
          "type": "integer",
          "format": "int32"
        }
      },
      "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)"
    },
    "KeyUsageOptions": {
      "description": "KeyUsage.KeyUsageOptions corresponds to the key usage values described in https://tools.ietf.org/html/rfc5280#section-4.2.1.3.",
      "type": "object",
      "properties": {
        "encipherOnly": {
          "description": "The key may be used to encipher only.",
          "type": "boolean"
        },
        "keyAgreement": {
          "type": "boolean",
          "description": "The key may be used in a key agreement protocol."
        },
        "crlSign": {
          "type": "boolean",
          "description": "The key may be used sign certificate revocation lists."
        },
        "digitalSignature": {
          "description": "The key may be used for digital signatures.",
          "type": "boolean"
        },
        "contentCommitment": {
          "description": "The key may be used for cryptographic commitments. Note that this may also be referred to as \"non-repudiation\".",
          "type": "boolean"
        },
        "keyEncipherment": {
          "description": "The key may be used to encipher other keys.",
          "type": "boolean"
        },
        "dataEncipherment": {
          "type": "boolean",
          "description": "The key may be used to encipher data."
        },
        "decipherOnly": {
          "description": "The key may be used to decipher only.",
          "type": "boolean"
        },
        "certSign": {
          "type": "boolean",
          "description": "The key may be used to sign certificates."
        }
      },
      "id": "KeyUsageOptions"
    },
    "OperationMetadata": {
      "type": "object",
      "properties": {
        "apiVersion": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. API version used to start the operation."
        },
        "verb": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. Name of the verb executed by the operation."
        },
        "statusMessage": {
          "type": "string",
          "description": "Output only. Human-readable status of the operation, if any.",
          "readOnly": true
        },
        "endTime": {
          "type": "string",
          "readOnly": true,
          "format": "google-datetime",
          "description": "Output only. The time the operation finished running."
        },
        "requestedCancellation": {
          "type": "boolean",
          "readOnly": true,
          "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`."
        },
        "createTime": {
          "readOnly": true,
          "format": "google-datetime",
          "type": "string",
          "description": "Output only. The time the operation was created."
        },
        "target": {
          "type": "string",
          "description": "Output only. Server-defined resource path for the target of the operation.",
          "readOnly": true
        }
      },
      "id": "OperationMetadata",
      "description": "Represents the metadata of the long-running operation."
    },
    "IssuanceDetails": {
      "id": "IssuanceDetails",
      "properties": {
        "googleTrustServicesDetails": {
          "description": "Details from Google Trust Services issuance.",
          "$ref": "GoogleTrustServicesDetails"
        },
        "letsEncryptDetails": {
          "$ref": "LetsEncryptDetails",
          "description": "Details from Let's Encrypt issuance."
        },
        "certificateAuthorityServiceDetails": {
          "description": "Details from Certificate Authority Service issuance.",
          "$ref": "CertificateAuthorityServiceDetails"
        },
        "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"
        },
        "authorityType": {
          "type": "string",
          "enum": [
            "AUTHORITY_TYPE_UNKNOWN",
            "PUBLIC",
            "PRIVATE"
          ],
          "description": "Type of CA which issued the certificate.",
          "enumDescriptions": [
            "Authority type is not known.",
            "Refers to a Public CA.",
            "Refers to a Private CA."
          ]
        }
      },
      "type": "object",
      "description": "Details about the CA which issued the certificate."
    },
    "ObjectId": {
      "id": "ObjectId",
      "properties": {
        "objectIdValues": {
          "type": "array",
          "items": {
            "format": "int32",
            "type": "integer"
          },
          "description": "The parts of an OID path. The most significant parts of the path come first."
        }
      },
      "description": "An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages.",
      "type": "object"
    },
    "OtherName": {
      "id": "OtherName",
      "properties": {
        "type": {
          "$ref": "ObjectId",
          "description": "Type specifies the object id for the type of name."
        },
        "value": {
          "type": "string",
          "description": "Value for the name.",
          "format": "byte"
        }
      },
      "description": "Other names specify additional name types in the SubjectAltName.",
      "type": "object"
    },
    "GoogleCloudLocationListLocationsResponse": {
      "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"
        }
      },
      "type": "object",
      "description": "The response message for Locations.ListLocations.",
      "id": "GoogleCloudLocationListLocationsResponse"
    },
    "GoogleLongrunningCancelOperationRequest": {
      "id": "GoogleLongrunningCancelOperationRequest",
      "type": "object",
      "properties": {},
      "description": "The request message for Operations.CancelOperation."
    },
    "Attachment": {
      "type": "object",
      "id": "Attachment",
      "description": "Details about a cloud resource which is using the certificate.",
      "properties": {
        "associatedResource": {
          "type": "string",
          "description": "The full resource name associated with the certificate."
        }
      }
    },
    "GoogleProtobufEmpty": {
      "id": "GoogleProtobufEmpty",
      "type": "object",
      "properties": {},
      "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); }"
    },
    "ManagedWorkloadIdentityDetails": {
      "description": "Details about the Managed Workload Identity resource that issued the certificate.",
      "type": "object",
      "id": "ManagedWorkloadIdentityDetails",
      "properties": {
        "defaultCaIssued": {
          "description": "Indicates whether the certificate for the Managed Workload Identity pool was issued by the GCP-provisioned default CA.",
          "type": "boolean"
        },
        "workloadIdentityPool": {
          "type": "string",
          "description": "The full resource name of the Managed Workload Identity pool associated with the certificate."
        }
      }
    }
  },
  "rootUrl": "https://certificatemanager.googleapis.com/",
  "parameters": {
    "quotaUser": {
      "location": "query",
      "type": "string",
      "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."
    },
    "oauth_token": {
      "description": "OAuth 2.0 token for the current user.",
      "type": "string",
      "location": "query"
    },
    "callback": {
      "description": "JSONP",
      "type": "string",
      "location": "query"
    },
    "fields": {
      "description": "Selector specifying which fields to include in a partial response.",
      "location": "query",
      "type": "string"
    },
    "key": {
      "location": "query",
      "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.",
      "type": "string"
    },
    "uploadType": {
      "location": "query",
      "type": "string",
      "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\")."
    },
    "alt": {
      "enumDescriptions": [
        "Responses with Content-Type of application/json",
        "Media download with context-dependent Content-Type",
        "Responses with Content-Type of application/x-protobuf"
      ],
      "enum": [
        "json",
        "media",
        "proto"
      ],
      "location": "query",
      "default": "json",
      "description": "Data format for response.",
      "type": "string"
    },
    "upload_protocol": {
      "type": "string",
      "location": "query",
      "description": "Upload protocol for media (e.g. \"raw\", \"multipart\")."
    },
    "prettyPrint": {
      "description": "Returns response with indentations and line breaks.",
      "location": "query",
      "type": "boolean",
      "default": "true"
    },
    "$.xgafv": {
      "description": "V1 error format.",
      "type": "string",
      "enumDescriptions": [
        "v1 error format",
        "v2 error format"
      ],
      "location": "query",
      "enum": [
        "1",
        "2"
      ]
    },
    "access_token": {
      "type": "string",
      "location": "query",
      "description": "OAuth access token."
    }
  },
  "version": "v2alpha",
  "resources": {
    "projects": {
      "resources": {
        "locations": {
          "methods": {
            "get": {
              "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}",
              "id": "certificatemanager.projects.locations.get",
              "parameterOrder": [
                "name"
              ],
              "description": "Gets information about a location.",
              "response": {
                "$ref": "GoogleCloudLocationLocation"
              },
              "parameters": {
                "name": {
                  "type": "string",
                  "required": true,
                  "location": "path",
                  "description": "Resource name for the location.",
                  "pattern": "^projects/[^/]+/locations/[^/]+$"
                }
              },
              "path": "v2alpha/{+name}",
              "httpMethod": "GET",
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ]
            },
            "list": {
              "path": "v2alpha/{+name}/locations",
              "parameterOrder": [
                "name"
              ],
              "httpMethod": "GET",
              "parameters": {
                "pageSize": {
                  "location": "query",
                  "type": "integer",
                  "description": "The maximum number of results to return. If not set, the service selects a default.",
                  "format": "int32"
                },
                "extraLocationTypes": {
                  "repeated": true,
                  "type": "string",
                  "location": "query",
                  "description": "Optional. Do not use this field unless explicitly documented otherwise. This is primarily for internal usage."
                },
                "name": {
                  "location": "path",
                  "required": true,
                  "description": "The resource that owns the locations collection, if applicable.",
                  "type": "string",
                  "pattern": "^projects/[^/]+$"
                },
                "filter": {
                  "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).",
                  "location": "query"
                },
                "pageToken": {
                  "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.",
                  "type": "string"
                }
              },
              "response": {
                "$ref": "GoogleCloudLocationListLocationsResponse"
              },
              "flatPath": "v2alpha/projects/{projectsId}/locations",
              "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"
              ]
            }
          },
          "resources": {
            "observedCertificates": {
              "methods": {
                "list": {
                  "httpMethod": "GET",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "parameters": {
                    "view": {
                      "type": "string",
                      "location": "query",
                      "description": "Optional. The view of the ObservedCertificates in the response.",
                      "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."
                      ],
                      "enum": [
                        "CERTIFICATE_VIEW_UNSPECIFIED",
                        "CERTIFICATE_VIEW_BASIC",
                        "CERTIFICATE_VIEW_FULL"
                      ]
                    },
                    "orderBy": {
                      "location": "query",
                      "description": "Optional. Hint for how to order the results",
                      "type": "string"
                    },
                    "pageSize": {
                      "format": "int32",
                      "description": "Optional. Requested page size. Server may return fewer items than requested. If unspecified, server will pick an appropriate default.",
                      "type": "integer",
                      "location": "query"
                    },
                    "parent": {
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "type": "string",
                      "location": "path",
                      "description": "Required. Parent value for ListObservedCertificatesRequest",
                      "required": true
                    },
                    "filter": {
                      "description": "Optional. Filtering results",
                      "type": "string",
                      "location": "query"
                    },
                    "pageToken": {
                      "location": "query",
                      "description": "Optional. A token identifying a page of results the server should return.",
                      "type": "string"
                    }
                  },
                  "response": {
                    "$ref": "ListObservedCertificatesResponse"
                  },
                  "path": "v2alpha/{+parent}/observedCertificates",
                  "description": "Lists ObservedCertificates in a given project and location.",
                  "id": "certificatemanager.projects.locations.observedCertificates.list",
                  "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}/observedCertificates",
                  "parameterOrder": [
                    "parent"
                  ]
                },
                "get": {
                  "description": "Gets details of a single ObservedCertificate.",
                  "parameterOrder": [
                    "name"
                  ],
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "httpMethod": "GET",
                  "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}/observedCertificates/{observedCertificatesId}",
                  "id": "certificatemanager.projects.locations.observedCertificates.get",
                  "path": "v2alpha/{+name}",
                  "parameters": {
                    "view": {
                      "location": "query",
                      "enum": [
                        "CERTIFICATE_VIEW_UNSPECIFIED",
                        "CERTIFICATE_VIEW_BASIC",
                        "CERTIFICATE_VIEW_FULL"
                      ],
                      "description": "Optional. The view of the ObservedCertificate in the response.",
                      "type": "string",
                      "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."
                      ]
                    },
                    "name": {
                      "required": true,
                      "location": "path",
                      "pattern": "^projects/[^/]+/locations/[^/]+/observedCertificates/[^/]+$",
                      "description": "Required. Name of the resource",
                      "type": "string"
                    }
                  },
                  "response": {
                    "$ref": "ObservedCertificate"
                  }
                }
              }
            },
            "operations": {
              "methods": {
                "list": {
                  "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}/operations",
                  "id": "certificatemanager.projects.locations.operations.list",
                  "response": {
                    "$ref": "GoogleLongrunningListOperationsResponse"
                  },
                  "httpMethod": "GET",
                  "parameterOrder": [
                    "name"
                  ],
                  "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.",
                  "parameters": {
                    "filter": {
                      "description": "The standard list filter.",
                      "location": "query",
                      "type": "string"
                    },
                    "pageToken": {
                      "type": "string",
                      "location": "query",
                      "description": "The standard list page token."
                    },
                    "name": {
                      "type": "string",
                      "description": "The name of the operation's parent resource.",
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "required": true,
                      "location": "path"
                    },
                    "pageSize": {
                      "format": "int32",
                      "location": "query",
                      "description": "The standard list page size.",
                      "type": "integer"
                    },
                    "returnPartialSuccess": {
                      "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.",
                      "type": "boolean",
                      "location": "query"
                    }
                  },
                  "path": "v2alpha/{+name}/operations",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ]
                },
                "get": {
                  "httpMethod": "GET",
                  "path": "v2alpha/{+name}",
                  "parameters": {
                    "name": {
                      "type": "string",
                      "description": "The name of the operation resource.",
                      "location": "path",
                      "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$",
                      "required": true
                    }
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "id": "certificatemanager.projects.locations.operations.get",
                  "response": {
                    "$ref": "GoogleLongrunningOperation"
                  },
                  "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.",
                  "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}"
                },
                "delete": {
                  "path": "v2alpha/{+name}",
                  "parameterOrder": [
                    "name"
                  ],
                  "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`.",
                  "parameters": {
                    "name": {
                      "required": true,
                      "location": "path",
                      "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$",
                      "description": "The name of the operation resource to be deleted.",
                      "type": "string"
                    }
                  },
                  "httpMethod": "DELETE",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}",
                  "response": {
                    "$ref": "GoogleProtobufEmpty"
                  },
                  "id": "certificatemanager.projects.locations.operations.delete"
                },
                "cancel": {
                  "request": {
                    "$ref": "GoogleLongrunningCancelOperationRequest"
                  },
                  "response": {
                    "$ref": "GoogleProtobufEmpty"
                  },
                  "httpMethod": "POST",
                  "parameters": {
                    "name": {
                      "type": "string",
                      "description": "The name of the operation resource to be cancelled.",
                      "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$",
                      "location": "path",
                      "required": true
                    }
                  },
                  "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`.",
                  "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}:cancel",
                  "id": "certificatemanager.projects.locations.operations.cancel",
                  "path": "v2alpha/{+name}:cancel",
                  "parameterOrder": [
                    "name"
                  ],
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ]
                }
              }
            }
          }
        }
      }
    }
  },
  "version_module": true,
  "revision": "20260824",
  "servicePath": "",
  "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."
        }
      }
    }
  },
  "protocol": "rest",
  "batchPath": "batch",
  "kind": "discovery#restDescription",
  "ownerDomain": "google.com",
  "discoveryVersion": "v1",
  "documentationLink": "https://docs.cloud.google.com/certificate-manager/docs/overview",
  "id": "certificatemanager:v2alpha",
  "mtlsRootUrl": "https://certificatemanager.mtls.googleapis.com/",
  "icons": {
    "x16": "http://www.google.com/images/icons/product/search-16.gif",
    "x32": "http://www.google.com/images/icons/product/search-32.gif"
  },
  "ownerName": "Google",
  "canonicalName": "Certificate Manager",
  "title": "Certificate Manager API"
}
