<html><body>
<style>

body, h1, h2, h3, div, span, p, pre, a {
  margin: 0;
  padding: 0;
  border: 0;
  font-weight: inherit;
  font-style: inherit;
  font-size: 100%;
  font-family: inherit;
  vertical-align: baseline;
}

body {
  font-size: 13px;
  padding: 1em;
}

h1 {
  font-size: 26px;
  margin-bottom: 1em;
}

h2 {
  font-size: 24px;
  margin-bottom: 1em;
}

h3 {
  font-size: 20px;
  margin-bottom: 1em;
  margin-top: 1em;
}

pre, code {
  line-height: 1.5;
  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
}

pre {
  margin-top: 0.5em;
}

h1, h2, h3, p {
  font-family: Arial, sans serif;
}

h1, h2, h3 {
  border-bottom: solid #CCC 1px;
}

.toc_element {
  margin-top: 0.5em;
}

.firstline {
  margin-left: 2 em;
}

.method  {
  margin-top: 1em;
  border: solid 1px #CCC;
  padding: 1em;
  background: #EEE;
}

.details {
  font-weight: bold;
  font-size: 14px;
}

</style>

<h1><a href="privateca_v1.html">Certificate Authority API</a> . <a href="privateca_v1.projects.html">projects</a> . <a href="privateca_v1.projects.locations.html">locations</a> . <a href="privateca_v1.projects.locations.caPools.html">caPools</a> . <a href="privateca_v1.projects.locations.caPools.certificates.html">certificates</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#close">close()</a></code></p>
<p class="firstline">Close httplib2 connections.</p>
<p class="toc_element">
  <code><a href="#create">create(parent, body=None, certificateId=None, issuingCertificateAuthorityId=None, requestId=None, validateOnly=None, x__xgafv=None)</a></code></p>
<p class="firstline">Create a new Certificate in a given Project, Location from a particular CaPool.</p>
<p class="toc_element">
  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
<p class="firstline">Returns a Certificate.</p>
<p class="toc_element">
  <code><a href="#list">list(parent, filter=None, orderBy=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
<p class="firstline">Lists Certificates.</p>
<p class="toc_element">
  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
<p class="firstline">Retrieves the next page of results.</p>
<p class="toc_element">
  <code><a href="#patch">patch(name, body=None, requestId=None, updateMask=None, x__xgafv=None)</a></code></p>
<p class="firstline">Update a Certificate. Currently, the only field you can update is the labels field.</p>
<p class="toc_element">
  <code><a href="#revoke">revoke(name, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Revoke a Certificate.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="close">close()</code>
  <pre>Close httplib2 connections.</pre>
</div>

<div class="method">
    <code class="details" id="create">create(parent, body=None, certificateId=None, issuingCertificateAuthorityId=None, requestId=None, validateOnly=None, x__xgafv=None)</code>
  <pre>Create a new Certificate in a given Project, Location from a particular CaPool.

Args:
  parent: string, Required. The resource name of the CaPool associated with the Certificate, in the format `projects/*/locations/*/caPools/*`. (required)
  body: object, The request body.
    The object takes the form of:

{ # A Certificate corresponds to a signed X.509 certificate issued by a CertificateAuthority.
  &quot;certificateDescription&quot;: { # A CertificateDescription describes an X.509 certificate or CSR that has been issued, as an alternative to using ASN.1 / X.509. # Output only. A structured description of the issued X.509 certificate.
    &quot;aiaIssuingCertificateUrls&quot;: [ # Describes lists of issuer CA certificate URLs that appear in the &quot;Authority Information Access&quot; extension in the certificate.
      &quot;A String&quot;,
    ],
    &quot;authorityKeyId&quot;: { # A KeyId identifies a specific public key, usually by hashing the public key. # Identifies the subject_key_id of the parent certificate, per https://tools.ietf.org/html/rfc5280#section-4.2.1.1
      &quot;keyId&quot;: &quot;A String&quot;, # Optional. The value of this KeyId encoded in lowercase hexadecimal. This is most likely the 160 bit SHA-1 hash of the public key.
    },
    &quot;certFingerprint&quot;: { # A group of fingerprints for the x509 certificate. # The hash of the x.509 certificate.
      &quot;sha256Hash&quot;: &quot;A String&quot;, # The SHA 256 hash, encoded in hexadecimal, of the DER x509 certificate.
    },
    &quot;crlDistributionPoints&quot;: [ # 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
      &quot;A String&quot;,
    ],
    &quot;publicKey&quot;: { # A PublicKey describes a public key. # The public key that corresponds to an issued certificate.
      &quot;format&quot;: &quot;A String&quot;, # Required. The format of the public key.
      &quot;key&quot;: &quot;A String&quot;, # Required. A public key. The padding and encoding must match with the `KeyFormat` value specified for the `format` field.
    },
    &quot;subjectDescription&quot;: { # These values describe fields in an issued X.509 certificate such as the distinguished name, subject alternative names, serial number, and lifetime. # Describes some of the values in a certificate that are related to the subject and lifetime.
      &quot;hexSerialNumber&quot;: &quot;A String&quot;, # The serial number encoded in lowercase hexadecimal.
      &quot;lifetime&quot;: &quot;A String&quot;, # For convenience, the actual lifetime of an issued certificate.
      &quot;notAfterTime&quot;: &quot;A String&quot;, # The time after which the certificate is expired. Per RFC 5280, the validity period for a certificate is the period of time from not_before_time through not_after_time, inclusive. Corresponds to &#x27;not_before_time&#x27; + &#x27;lifetime&#x27; - 1 second.
      &quot;notBeforeTime&quot;: &quot;A String&quot;, # The time at which the certificate becomes valid.
      &quot;subject&quot;: { # Subject describes parts of a distinguished name that, in turn, describes the subject of the certificate. # Contains distinguished name fields such as the common name, location and / organization.
        &quot;commonName&quot;: &quot;A String&quot;, # The &quot;common name&quot; of the subject.
        &quot;countryCode&quot;: &quot;A String&quot;, # The country code of the subject.
        &quot;locality&quot;: &quot;A String&quot;, # The locality or city of the subject.
        &quot;organization&quot;: &quot;A String&quot;, # The organization of the subject.
        &quot;organizationalUnit&quot;: &quot;A String&quot;, # The organizational_unit of the subject.
        &quot;postalCode&quot;: &quot;A String&quot;, # The postal code of the subject.
        &quot;province&quot;: &quot;A String&quot;, # The province, territory, or regional state of the subject.
        &quot;streetAddress&quot;: &quot;A String&quot;, # The street address of the subject.
      },
      &quot;subjectAltName&quot;: { # SubjectAltNames corresponds to a more modern way of listing what the asserted identity is in a certificate (i.e., compared to the &quot;common name&quot; in the distinguished name). # The subject alternative name fields.
        &quot;customSans&quot;: [ # Contains additional subject alternative name values. For each custom_san, the `value` field must contain an ASN.1 encoded UTF8String.
          { # An X509Extension specifies an X.509 extension, which may be used in different parts of X.509 objects like certificates, CSRs, and CRLs.
            &quot;critical&quot;: True or False, # Optional. 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).
            &quot;objectId&quot;: { # An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages. # Required. The OID for this X.509 extension.
              &quot;objectIdPath&quot;: [ # Required. The parts of an OID path. The most significant parts of the path come first.
                42,
              ],
            },
            &quot;value&quot;: &quot;A String&quot;, # Required. The value of this X.509 extension.
          },
        ],
        &quot;dnsNames&quot;: [ # Contains only valid, fully-qualified host names.
          &quot;A String&quot;,
        ],
        &quot;emailAddresses&quot;: [ # Contains only valid RFC 2822 E-mail addresses.
          &quot;A String&quot;,
        ],
        &quot;ipAddresses&quot;: [ # Contains only valid 32-bit IPv4 addresses or RFC 4291 IPv6 addresses.
          &quot;A String&quot;,
        ],
        &quot;uris&quot;: [ # Contains only valid RFC 3986 URIs.
          &quot;A String&quot;,
        ],
      },
    },
    &quot;subjectKeyId&quot;: { # A KeyId identifies a specific public key, usually by hashing the public key. # Provides a means of identifiying certificates that contain a particular public key, per https://tools.ietf.org/html/rfc5280#section-4.2.1.2.
      &quot;keyId&quot;: &quot;A String&quot;, # Optional. The value of this KeyId encoded in lowercase hexadecimal. This is most likely the 160 bit SHA-1 hash of the public key.
    },
    &quot;x509Description&quot;: { # An X509Parameters is used to describe certain fields of an X.509 certificate, such as the key usage fields, fields specific to CA certificates, certificate policy extensions and custom extensions. # Describes some of the technical X.509 fields in a certificate.
      &quot;additionalExtensions&quot;: [ # Optional. Describes custom X.509 extensions.
        { # An X509Extension specifies an X.509 extension, which may be used in different parts of X.509 objects like certificates, CSRs, and CRLs.
          &quot;critical&quot;: True or False, # Optional. 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).
          &quot;objectId&quot;: { # An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages. # Required. The OID for this X.509 extension.
            &quot;objectIdPath&quot;: [ # Required. The parts of an OID path. The most significant parts of the path come first.
              42,
            ],
          },
          &quot;value&quot;: &quot;A String&quot;, # Required. The value of this X.509 extension.
        },
      ],
      &quot;aiaOcspServers&quot;: [ # Optional. Describes Online Certificate Status Protocol (OCSP) endpoint addresses that appear in the &quot;Authority Information Access&quot; extension in the certificate.
        &quot;A String&quot;,
      ],
      &quot;caOptions&quot;: { # Describes values that are relevant in a CA certificate. # Optional. Describes options in this X509Parameters that are relevant in a CA certificate.
        &quot;isCa&quot;: True or False, # Optional. Refers to the &quot;CA&quot; X.509 extension, which is a boolean value. When this value is missing, the extension will be omitted from the CA certificate.
        &quot;maxIssuerPathLength&quot;: 42, # Optional. Refers to the path length restriction X.509 extension. For a CA certificate, this value describes the depth of subordinate CA certificates that are allowed. If this value is less than 0, the request will fail. If this value is missing, the max path length will be omitted from the CA certificate.
      },
      &quot;keyUsage&quot;: { # A KeyUsage describes key usage values that may appear in an X.509 certificate. # Optional. Indicates the intended use for keys that correspond to a certificate.
        &quot;baseKeyUsage&quot;: { # KeyUsage.KeyUsageOptions corresponds to the key usage values described in https://tools.ietf.org/html/rfc5280#section-4.2.1.3. # Describes high-level ways in which a key may be used.
          &quot;certSign&quot;: True or False, # The key may be used to sign certificates.
          &quot;contentCommitment&quot;: True or False, # The key may be used for cryptographic commitments. Note that this may also be referred to as &quot;non-repudiation&quot;.
          &quot;crlSign&quot;: True or False, # The key may be used sign certificate revocation lists.
          &quot;dataEncipherment&quot;: True or False, # The key may be used to encipher data.
          &quot;decipherOnly&quot;: True or False, # The key may be used to decipher only.
          &quot;digitalSignature&quot;: True or False, # The key may be used for digital signatures.
          &quot;encipherOnly&quot;: True or False, # The key may be used to encipher only.
          &quot;keyAgreement&quot;: True or False, # The key may be used in a key agreement protocol.
          &quot;keyEncipherment&quot;: True or False, # The key may be used to encipher other keys.
        },
        &quot;extendedKeyUsage&quot;: { # KeyUsage.ExtendedKeyUsageOptions has fields that correspond to certain common OIDs that could be specified as an extended key usage value. # Detailed scenarios in which a key may be used.
          &quot;clientAuth&quot;: True or False, # Corresponds to OID 1.3.6.1.5.5.7.3.2. Officially described as &quot;TLS WWW client authentication&quot;, though regularly used for non-WWW TLS.
          &quot;codeSigning&quot;: True or False, # Corresponds to OID 1.3.6.1.5.5.7.3.3. Officially described as &quot;Signing of downloadable executable code client authentication&quot;.
          &quot;emailProtection&quot;: True or False, # Corresponds to OID 1.3.6.1.5.5.7.3.4. Officially described as &quot;Email protection&quot;.
          &quot;ocspSigning&quot;: True or False, # Corresponds to OID 1.3.6.1.5.5.7.3.9. Officially described as &quot;Signing OCSP responses&quot;.
          &quot;serverAuth&quot;: True or False, # Corresponds to OID 1.3.6.1.5.5.7.3.1. Officially described as &quot;TLS WWW server authentication&quot;, though regularly used for non-WWW TLS.
          &quot;timeStamping&quot;: True or False, # Corresponds to OID 1.3.6.1.5.5.7.3.8. Officially described as &quot;Binding the hash of an object to a time&quot;.
        },
        &quot;unknownExtendedKeyUsages&quot;: [ # Used to describe extended key usages that are not listed in the KeyUsage.ExtendedKeyUsageOptions message.
          { # An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages.
            &quot;objectIdPath&quot;: [ # Required. The parts of an OID path. The most significant parts of the path come first.
              42,
            ],
          },
        ],
      },
      &quot;policyIds&quot;: [ # Optional. Describes the X.509 certificate policy object identifiers, per https://tools.ietf.org/html/rfc5280#section-4.2.1.4.
        { # An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages.
          &quot;objectIdPath&quot;: [ # Required. The parts of an OID path. The most significant parts of the path come first.
            42,
          ],
        },
      ],
    },
  },
  &quot;certificateTemplate&quot;: &quot;A String&quot;, # Immutable. The resource name for a CertificateTemplate used to issue this certificate, in the format `projects/*/locations/*/certificateTemplates/*`. If this is specified, the caller must have the necessary permission to use this template. If this is omitted, no template will be used. This template must be in the same location as the Certificate.
  &quot;config&quot;: { # A CertificateConfig describes an X.509 certificate or CSR that is to be created, as an alternative to using ASN.1. # Immutable. A description of the certificate and key that does not require X.509 or ASN.1.
    &quot;publicKey&quot;: { # A PublicKey describes a public key. # Optional. The public key that corresponds to this config. This is, for example, used when issuing Certificates, but not when creating a self-signed CertificateAuthority or CertificateAuthority CSR.
      &quot;format&quot;: &quot;A String&quot;, # Required. The format of the public key.
      &quot;key&quot;: &quot;A String&quot;, # Required. A public key. The padding and encoding must match with the `KeyFormat` value specified for the `format` field.
    },
    &quot;subjectConfig&quot;: { # These values are used to create the distinguished name and subject alternative name fields in an X.509 certificate. # Required. Specifies some of the values in a certificate that are related to the subject.
      &quot;subject&quot;: { # Subject describes parts of a distinguished name that, in turn, describes the subject of the certificate. # Required. Contains distinguished name fields such as the common name, location and organization.
        &quot;commonName&quot;: &quot;A String&quot;, # The &quot;common name&quot; of the subject.
        &quot;countryCode&quot;: &quot;A String&quot;, # The country code of the subject.
        &quot;locality&quot;: &quot;A String&quot;, # The locality or city of the subject.
        &quot;organization&quot;: &quot;A String&quot;, # The organization of the subject.
        &quot;organizationalUnit&quot;: &quot;A String&quot;, # The organizational_unit of the subject.
        &quot;postalCode&quot;: &quot;A String&quot;, # The postal code of the subject.
        &quot;province&quot;: &quot;A String&quot;, # The province, territory, or regional state of the subject.
        &quot;streetAddress&quot;: &quot;A String&quot;, # The street address of the subject.
      },
      &quot;subjectAltName&quot;: { # SubjectAltNames corresponds to a more modern way of listing what the asserted identity is in a certificate (i.e., compared to the &quot;common name&quot; in the distinguished name). # Optional. The subject alternative name fields.
        &quot;customSans&quot;: [ # Contains additional subject alternative name values. For each custom_san, the `value` field must contain an ASN.1 encoded UTF8String.
          { # An X509Extension specifies an X.509 extension, which may be used in different parts of X.509 objects like certificates, CSRs, and CRLs.
            &quot;critical&quot;: True or False, # Optional. 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).
            &quot;objectId&quot;: { # An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages. # Required. The OID for this X.509 extension.
              &quot;objectIdPath&quot;: [ # Required. The parts of an OID path. The most significant parts of the path come first.
                42,
              ],
            },
            &quot;value&quot;: &quot;A String&quot;, # Required. The value of this X.509 extension.
          },
        ],
        &quot;dnsNames&quot;: [ # Contains only valid, fully-qualified host names.
          &quot;A String&quot;,
        ],
        &quot;emailAddresses&quot;: [ # Contains only valid RFC 2822 E-mail addresses.
          &quot;A String&quot;,
        ],
        &quot;ipAddresses&quot;: [ # Contains only valid 32-bit IPv4 addresses or RFC 4291 IPv6 addresses.
          &quot;A String&quot;,
        ],
        &quot;uris&quot;: [ # Contains only valid RFC 3986 URIs.
          &quot;A String&quot;,
        ],
      },
    },
    &quot;x509Config&quot;: { # An X509Parameters is used to describe certain fields of an X.509 certificate, such as the key usage fields, fields specific to CA certificates, certificate policy extensions and custom extensions. # Required. Describes how some of the technical X.509 fields in a certificate should be populated.
      &quot;additionalExtensions&quot;: [ # Optional. Describes custom X.509 extensions.
        { # An X509Extension specifies an X.509 extension, which may be used in different parts of X.509 objects like certificates, CSRs, and CRLs.
          &quot;critical&quot;: True or False, # Optional. 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).
          &quot;objectId&quot;: { # An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages. # Required. The OID for this X.509 extension.
            &quot;objectIdPath&quot;: [ # Required. The parts of an OID path. The most significant parts of the path come first.
              42,
            ],
          },
          &quot;value&quot;: &quot;A String&quot;, # Required. The value of this X.509 extension.
        },
      ],
      &quot;aiaOcspServers&quot;: [ # Optional. Describes Online Certificate Status Protocol (OCSP) endpoint addresses that appear in the &quot;Authority Information Access&quot; extension in the certificate.
        &quot;A String&quot;,
      ],
      &quot;caOptions&quot;: { # Describes values that are relevant in a CA certificate. # Optional. Describes options in this X509Parameters that are relevant in a CA certificate.
        &quot;isCa&quot;: True or False, # Optional. Refers to the &quot;CA&quot; X.509 extension, which is a boolean value. When this value is missing, the extension will be omitted from the CA certificate.
        &quot;maxIssuerPathLength&quot;: 42, # Optional. Refers to the path length restriction X.509 extension. For a CA certificate, this value describes the depth of subordinate CA certificates that are allowed. If this value is less than 0, the request will fail. If this value is missing, the max path length will be omitted from the CA certificate.
      },
      &quot;keyUsage&quot;: { # A KeyUsage describes key usage values that may appear in an X.509 certificate. # Optional. Indicates the intended use for keys that correspond to a certificate.
        &quot;baseKeyUsage&quot;: { # KeyUsage.KeyUsageOptions corresponds to the key usage values described in https://tools.ietf.org/html/rfc5280#section-4.2.1.3. # Describes high-level ways in which a key may be used.
          &quot;certSign&quot;: True or False, # The key may be used to sign certificates.
          &quot;contentCommitment&quot;: True or False, # The key may be used for cryptographic commitments. Note that this may also be referred to as &quot;non-repudiation&quot;.
          &quot;crlSign&quot;: True or False, # The key may be used sign certificate revocation lists.
          &quot;dataEncipherment&quot;: True or False, # The key may be used to encipher data.
          &quot;decipherOnly&quot;: True or False, # The key may be used to decipher only.
          &quot;digitalSignature&quot;: True or False, # The key may be used for digital signatures.
          &quot;encipherOnly&quot;: True or False, # The key may be used to encipher only.
          &quot;keyAgreement&quot;: True or False, # The key may be used in a key agreement protocol.
          &quot;keyEncipherment&quot;: True or False, # The key may be used to encipher other keys.
        },
        &quot;extendedKeyUsage&quot;: { # KeyUsage.ExtendedKeyUsageOptions has fields that correspond to certain common OIDs that could be specified as an extended key usage value. # Detailed scenarios in which a key may be used.
          &quot;clientAuth&quot;: True or False, # Corresponds to OID 1.3.6.1.5.5.7.3.2. Officially described as &quot;TLS WWW client authentication&quot;, though regularly used for non-WWW TLS.
          &quot;codeSigning&quot;: True or False, # Corresponds to OID 1.3.6.1.5.5.7.3.3. Officially described as &quot;Signing of downloadable executable code client authentication&quot;.
          &quot;emailProtection&quot;: True or False, # Corresponds to OID 1.3.6.1.5.5.7.3.4. Officially described as &quot;Email protection&quot;.
          &quot;ocspSigning&quot;: True or False, # Corresponds to OID 1.3.6.1.5.5.7.3.9. Officially described as &quot;Signing OCSP responses&quot;.
          &quot;serverAuth&quot;: True or False, # Corresponds to OID 1.3.6.1.5.5.7.3.1. Officially described as &quot;TLS WWW server authentication&quot;, though regularly used for non-WWW TLS.
          &quot;timeStamping&quot;: True or False, # Corresponds to OID 1.3.6.1.5.5.7.3.8. Officially described as &quot;Binding the hash of an object to a time&quot;.
        },
        &quot;unknownExtendedKeyUsages&quot;: [ # Used to describe extended key usages that are not listed in the KeyUsage.ExtendedKeyUsageOptions message.
          { # An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages.
            &quot;objectIdPath&quot;: [ # Required. The parts of an OID path. The most significant parts of the path come first.
              42,
            ],
          },
        ],
      },
      &quot;policyIds&quot;: [ # Optional. Describes the X.509 certificate policy object identifiers, per https://tools.ietf.org/html/rfc5280#section-4.2.1.4.
        { # An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages.
          &quot;objectIdPath&quot;: [ # Required. The parts of an OID path. The most significant parts of the path come first.
            42,
          ],
        },
      ],
    },
  },
  &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time at which this Certificate was created.
  &quot;issuerCertificateAuthority&quot;: &quot;A String&quot;, # Output only. The resource name of the issuing CertificateAuthority in the format `projects/*/locations/*/caPools/*/certificateAuthorities/*`.
  &quot;labels&quot;: { # Optional. Labels with user-defined metadata.
    &quot;a_key&quot;: &quot;A String&quot;,
  },
  &quot;lifetime&quot;: &quot;A String&quot;, # Required. Immutable. The desired lifetime of a certificate. Used to create the &quot;not_before_time&quot; and &quot;not_after_time&quot; fields inside an X.509 certificate. Note that the lifetime may be truncated if it would extend past the life of any certificate authority in the issuing chain.
  &quot;name&quot;: &quot;A String&quot;, # Output only. The resource name for this Certificate in the format `projects/*/locations/*/caPools/*/certificates/*`.
  &quot;pemCertificate&quot;: &quot;A String&quot;, # Output only. The pem-encoded, signed X.509 certificate.
  &quot;pemCertificateChain&quot;: [ # Output only. The chain that may be used to verify the X.509 certificate. Expected to be in issuer-to-root order according to RFC 5246.
    &quot;A String&quot;,
  ],
  &quot;pemCsr&quot;: &quot;A String&quot;, # Immutable. A pem-encoded X.509 certificate signing request (CSR).
  &quot;revocationDetails&quot;: { # Describes fields that are relavent to the revocation of a Certificate. # Output only. Details regarding the revocation of this Certificate. This Certificate is considered revoked if and only if this field is present.
    &quot;revocationState&quot;: &quot;A String&quot;, # Indicates why a Certificate was revoked.
    &quot;revocationTime&quot;: &quot;A String&quot;, # The time at which this Certificate was revoked.
  },
  &quot;subjectMode&quot;: &quot;A String&quot;, # Immutable. Specifies how the Certificate&#x27;s identity fields are to be decided. If this is omitted, the `DEFAULT` subject mode will be used.
  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time at which this Certificate was updated.
}

  certificateId: string, Optional. It must be unique within a location and match the regular expression `[a-zA-Z0-9_-]{1,63}`. This field is required when using a CertificateAuthority in the Enterprise CertificateAuthority.Tier, but is optional and its value is ignored otherwise.
  issuingCertificateAuthorityId: string, Optional. The resource ID of the CertificateAuthority that should issue the certificate. This optional field will ignore the load-balancing scheme of the Pool and directly issue the certificate from the CA with the specified ID, contained in the same CaPool referenced by `parent`. Per-CA quota rules apply. If left empty, a CertificateAuthority will be chosen from the CaPool by the service. For example, to issue a Certificate from a Certificate Authority with resource name &quot;projects/my-project/locations/us-central1/caPools/my-pool/certificateAuthorities/my-ca&quot;, you can set the parent to &quot;projects/my-project/locations/us-central1/caPools/my-pool&quot; and the issuing_certificate_authority_id to &quot;my-ca&quot;.
  requestId: string, Optional. An ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).
  validateOnly: boolean, Optional. If this is true, no Certificate resource will be persisted regardless of the CaPool&#x27;s tier, and the returned Certificate will not contain the pem_certificate field.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # A Certificate corresponds to a signed X.509 certificate issued by a CertificateAuthority.
  &quot;certificateDescription&quot;: { # A CertificateDescription describes an X.509 certificate or CSR that has been issued, as an alternative to using ASN.1 / X.509. # Output only. A structured description of the issued X.509 certificate.
    &quot;aiaIssuingCertificateUrls&quot;: [ # Describes lists of issuer CA certificate URLs that appear in the &quot;Authority Information Access&quot; extension in the certificate.
      &quot;A String&quot;,
    ],
    &quot;authorityKeyId&quot;: { # A KeyId identifies a specific public key, usually by hashing the public key. # Identifies the subject_key_id of the parent certificate, per https://tools.ietf.org/html/rfc5280#section-4.2.1.1
      &quot;keyId&quot;: &quot;A String&quot;, # Optional. The value of this KeyId encoded in lowercase hexadecimal. This is most likely the 160 bit SHA-1 hash of the public key.
    },
    &quot;certFingerprint&quot;: { # A group of fingerprints for the x509 certificate. # The hash of the x.509 certificate.
      &quot;sha256Hash&quot;: &quot;A String&quot;, # The SHA 256 hash, encoded in hexadecimal, of the DER x509 certificate.
    },
    &quot;crlDistributionPoints&quot;: [ # 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
      &quot;A String&quot;,
    ],
    &quot;publicKey&quot;: { # A PublicKey describes a public key. # The public key that corresponds to an issued certificate.
      &quot;format&quot;: &quot;A String&quot;, # Required. The format of the public key.
      &quot;key&quot;: &quot;A String&quot;, # Required. A public key. The padding and encoding must match with the `KeyFormat` value specified for the `format` field.
    },
    &quot;subjectDescription&quot;: { # These values describe fields in an issued X.509 certificate such as the distinguished name, subject alternative names, serial number, and lifetime. # Describes some of the values in a certificate that are related to the subject and lifetime.
      &quot;hexSerialNumber&quot;: &quot;A String&quot;, # The serial number encoded in lowercase hexadecimal.
      &quot;lifetime&quot;: &quot;A String&quot;, # For convenience, the actual lifetime of an issued certificate.
      &quot;notAfterTime&quot;: &quot;A String&quot;, # The time after which the certificate is expired. Per RFC 5280, the validity period for a certificate is the period of time from not_before_time through not_after_time, inclusive. Corresponds to &#x27;not_before_time&#x27; + &#x27;lifetime&#x27; - 1 second.
      &quot;notBeforeTime&quot;: &quot;A String&quot;, # The time at which the certificate becomes valid.
      &quot;subject&quot;: { # Subject describes parts of a distinguished name that, in turn, describes the subject of the certificate. # Contains distinguished name fields such as the common name, location and / organization.
        &quot;commonName&quot;: &quot;A String&quot;, # The &quot;common name&quot; of the subject.
        &quot;countryCode&quot;: &quot;A String&quot;, # The country code of the subject.
        &quot;locality&quot;: &quot;A String&quot;, # The locality or city of the subject.
        &quot;organization&quot;: &quot;A String&quot;, # The organization of the subject.
        &quot;organizationalUnit&quot;: &quot;A String&quot;, # The organizational_unit of the subject.
        &quot;postalCode&quot;: &quot;A String&quot;, # The postal code of the subject.
        &quot;province&quot;: &quot;A String&quot;, # The province, territory, or regional state of the subject.
        &quot;streetAddress&quot;: &quot;A String&quot;, # The street address of the subject.
      },
      &quot;subjectAltName&quot;: { # SubjectAltNames corresponds to a more modern way of listing what the asserted identity is in a certificate (i.e., compared to the &quot;common name&quot; in the distinguished name). # The subject alternative name fields.
        &quot;customSans&quot;: [ # Contains additional subject alternative name values. For each custom_san, the `value` field must contain an ASN.1 encoded UTF8String.
          { # An X509Extension specifies an X.509 extension, which may be used in different parts of X.509 objects like certificates, CSRs, and CRLs.
            &quot;critical&quot;: True or False, # Optional. 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).
            &quot;objectId&quot;: { # An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages. # Required. The OID for this X.509 extension.
              &quot;objectIdPath&quot;: [ # Required. The parts of an OID path. The most significant parts of the path come first.
                42,
              ],
            },
            &quot;value&quot;: &quot;A String&quot;, # Required. The value of this X.509 extension.
          },
        ],
        &quot;dnsNames&quot;: [ # Contains only valid, fully-qualified host names.
          &quot;A String&quot;,
        ],
        &quot;emailAddresses&quot;: [ # Contains only valid RFC 2822 E-mail addresses.
          &quot;A String&quot;,
        ],
        &quot;ipAddresses&quot;: [ # Contains only valid 32-bit IPv4 addresses or RFC 4291 IPv6 addresses.
          &quot;A String&quot;,
        ],
        &quot;uris&quot;: [ # Contains only valid RFC 3986 URIs.
          &quot;A String&quot;,
        ],
      },
    },
    &quot;subjectKeyId&quot;: { # A KeyId identifies a specific public key, usually by hashing the public key. # Provides a means of identifiying certificates that contain a particular public key, per https://tools.ietf.org/html/rfc5280#section-4.2.1.2.
      &quot;keyId&quot;: &quot;A String&quot;, # Optional. The value of this KeyId encoded in lowercase hexadecimal. This is most likely the 160 bit SHA-1 hash of the public key.
    },
    &quot;x509Description&quot;: { # An X509Parameters is used to describe certain fields of an X.509 certificate, such as the key usage fields, fields specific to CA certificates, certificate policy extensions and custom extensions. # Describes some of the technical X.509 fields in a certificate.
      &quot;additionalExtensions&quot;: [ # Optional. Describes custom X.509 extensions.
        { # An X509Extension specifies an X.509 extension, which may be used in different parts of X.509 objects like certificates, CSRs, and CRLs.
          &quot;critical&quot;: True or False, # Optional. 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).
          &quot;objectId&quot;: { # An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages. # Required. The OID for this X.509 extension.
            &quot;objectIdPath&quot;: [ # Required. The parts of an OID path. The most significant parts of the path come first.
              42,
            ],
          },
          &quot;value&quot;: &quot;A String&quot;, # Required. The value of this X.509 extension.
        },
      ],
      &quot;aiaOcspServers&quot;: [ # Optional. Describes Online Certificate Status Protocol (OCSP) endpoint addresses that appear in the &quot;Authority Information Access&quot; extension in the certificate.
        &quot;A String&quot;,
      ],
      &quot;caOptions&quot;: { # Describes values that are relevant in a CA certificate. # Optional. Describes options in this X509Parameters that are relevant in a CA certificate.
        &quot;isCa&quot;: True or False, # Optional. Refers to the &quot;CA&quot; X.509 extension, which is a boolean value. When this value is missing, the extension will be omitted from the CA certificate.
        &quot;maxIssuerPathLength&quot;: 42, # Optional. Refers to the path length restriction X.509 extension. For a CA certificate, this value describes the depth of subordinate CA certificates that are allowed. If this value is less than 0, the request will fail. If this value is missing, the max path length will be omitted from the CA certificate.
      },
      &quot;keyUsage&quot;: { # A KeyUsage describes key usage values that may appear in an X.509 certificate. # Optional. Indicates the intended use for keys that correspond to a certificate.
        &quot;baseKeyUsage&quot;: { # KeyUsage.KeyUsageOptions corresponds to the key usage values described in https://tools.ietf.org/html/rfc5280#section-4.2.1.3. # Describes high-level ways in which a key may be used.
          &quot;certSign&quot;: True or False, # The key may be used to sign certificates.
          &quot;contentCommitment&quot;: True or False, # The key may be used for cryptographic commitments. Note that this may also be referred to as &quot;non-repudiation&quot;.
          &quot;crlSign&quot;: True or False, # The key may be used sign certificate revocation lists.
          &quot;dataEncipherment&quot;: True or False, # The key may be used to encipher data.
          &quot;decipherOnly&quot;: True or False, # The key may be used to decipher only.
          &quot;digitalSignature&quot;: True or False, # The key may be used for digital signatures.
          &quot;encipherOnly&quot;: True or False, # The key may be used to encipher only.
          &quot;keyAgreement&quot;: True or False, # The key may be used in a key agreement protocol.
          &quot;keyEncipherment&quot;: True or False, # The key may be used to encipher other keys.
        },
        &quot;extendedKeyUsage&quot;: { # KeyUsage.ExtendedKeyUsageOptions has fields that correspond to certain common OIDs that could be specified as an extended key usage value. # Detailed scenarios in which a key may be used.
          &quot;clientAuth&quot;: True or False, # Corresponds to OID 1.3.6.1.5.5.7.3.2. Officially described as &quot;TLS WWW client authentication&quot;, though regularly used for non-WWW TLS.
          &quot;codeSigning&quot;: True or False, # Corresponds to OID 1.3.6.1.5.5.7.3.3. Officially described as &quot;Signing of downloadable executable code client authentication&quot;.
          &quot;emailProtection&quot;: True or False, # Corresponds to OID 1.3.6.1.5.5.7.3.4. Officially described as &quot;Email protection&quot;.
          &quot;ocspSigning&quot;: True or False, # Corresponds to OID 1.3.6.1.5.5.7.3.9. Officially described as &quot;Signing OCSP responses&quot;.
          &quot;serverAuth&quot;: True or False, # Corresponds to OID 1.3.6.1.5.5.7.3.1. Officially described as &quot;TLS WWW server authentication&quot;, though regularly used for non-WWW TLS.
          &quot;timeStamping&quot;: True or False, # Corresponds to OID 1.3.6.1.5.5.7.3.8. Officially described as &quot;Binding the hash of an object to a time&quot;.
        },
        &quot;unknownExtendedKeyUsages&quot;: [ # Used to describe extended key usages that are not listed in the KeyUsage.ExtendedKeyUsageOptions message.
          { # An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages.
            &quot;objectIdPath&quot;: [ # Required. The parts of an OID path. The most significant parts of the path come first.
              42,
            ],
          },
        ],
      },
      &quot;policyIds&quot;: [ # Optional. Describes the X.509 certificate policy object identifiers, per https://tools.ietf.org/html/rfc5280#section-4.2.1.4.
        { # An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages.
          &quot;objectIdPath&quot;: [ # Required. The parts of an OID path. The most significant parts of the path come first.
            42,
          ],
        },
      ],
    },
  },
  &quot;certificateTemplate&quot;: &quot;A String&quot;, # Immutable. The resource name for a CertificateTemplate used to issue this certificate, in the format `projects/*/locations/*/certificateTemplates/*`. If this is specified, the caller must have the necessary permission to use this template. If this is omitted, no template will be used. This template must be in the same location as the Certificate.
  &quot;config&quot;: { # A CertificateConfig describes an X.509 certificate or CSR that is to be created, as an alternative to using ASN.1. # Immutable. A description of the certificate and key that does not require X.509 or ASN.1.
    &quot;publicKey&quot;: { # A PublicKey describes a public key. # Optional. The public key that corresponds to this config. This is, for example, used when issuing Certificates, but not when creating a self-signed CertificateAuthority or CertificateAuthority CSR.
      &quot;format&quot;: &quot;A String&quot;, # Required. The format of the public key.
      &quot;key&quot;: &quot;A String&quot;, # Required. A public key. The padding and encoding must match with the `KeyFormat` value specified for the `format` field.
    },
    &quot;subjectConfig&quot;: { # These values are used to create the distinguished name and subject alternative name fields in an X.509 certificate. # Required. Specifies some of the values in a certificate that are related to the subject.
      &quot;subject&quot;: { # Subject describes parts of a distinguished name that, in turn, describes the subject of the certificate. # Required. Contains distinguished name fields such as the common name, location and organization.
        &quot;commonName&quot;: &quot;A String&quot;, # The &quot;common name&quot; of the subject.
        &quot;countryCode&quot;: &quot;A String&quot;, # The country code of the subject.
        &quot;locality&quot;: &quot;A String&quot;, # The locality or city of the subject.
        &quot;organization&quot;: &quot;A String&quot;, # The organization of the subject.
        &quot;organizationalUnit&quot;: &quot;A String&quot;, # The organizational_unit of the subject.
        &quot;postalCode&quot;: &quot;A String&quot;, # The postal code of the subject.
        &quot;province&quot;: &quot;A String&quot;, # The province, territory, or regional state of the subject.
        &quot;streetAddress&quot;: &quot;A String&quot;, # The street address of the subject.
      },
      &quot;subjectAltName&quot;: { # SubjectAltNames corresponds to a more modern way of listing what the asserted identity is in a certificate (i.e., compared to the &quot;common name&quot; in the distinguished name). # Optional. The subject alternative name fields.
        &quot;customSans&quot;: [ # Contains additional subject alternative name values. For each custom_san, the `value` field must contain an ASN.1 encoded UTF8String.
          { # An X509Extension specifies an X.509 extension, which may be used in different parts of X.509 objects like certificates, CSRs, and CRLs.
            &quot;critical&quot;: True or False, # Optional. 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).
            &quot;objectId&quot;: { # An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages. # Required. The OID for this X.509 extension.
              &quot;objectIdPath&quot;: [ # Required. The parts of an OID path. The most significant parts of the path come first.
                42,
              ],
            },
            &quot;value&quot;: &quot;A String&quot;, # Required. The value of this X.509 extension.
          },
        ],
        &quot;dnsNames&quot;: [ # Contains only valid, fully-qualified host names.
          &quot;A String&quot;,
        ],
        &quot;emailAddresses&quot;: [ # Contains only valid RFC 2822 E-mail addresses.
          &quot;A String&quot;,
        ],
        &quot;ipAddresses&quot;: [ # Contains only valid 32-bit IPv4 addresses or RFC 4291 IPv6 addresses.
          &quot;A String&quot;,
        ],
        &quot;uris&quot;: [ # Contains only valid RFC 3986 URIs.
          &quot;A String&quot;,
        ],
      },
    },
    &quot;x509Config&quot;: { # An X509Parameters is used to describe certain fields of an X.509 certificate, such as the key usage fields, fields specific to CA certificates, certificate policy extensions and custom extensions. # Required. Describes how some of the technical X.509 fields in a certificate should be populated.
      &quot;additionalExtensions&quot;: [ # Optional. Describes custom X.509 extensions.
        { # An X509Extension specifies an X.509 extension, which may be used in different parts of X.509 objects like certificates, CSRs, and CRLs.
          &quot;critical&quot;: True or False, # Optional. 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).
          &quot;objectId&quot;: { # An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages. # Required. The OID for this X.509 extension.
            &quot;objectIdPath&quot;: [ # Required. The parts of an OID path. The most significant parts of the path come first.
              42,
            ],
          },
          &quot;value&quot;: &quot;A String&quot;, # Required. The value of this X.509 extension.
        },
      ],
      &quot;aiaOcspServers&quot;: [ # Optional. Describes Online Certificate Status Protocol (OCSP) endpoint addresses that appear in the &quot;Authority Information Access&quot; extension in the certificate.
        &quot;A String&quot;,
      ],
      &quot;caOptions&quot;: { # Describes values that are relevant in a CA certificate. # Optional. Describes options in this X509Parameters that are relevant in a CA certificate.
        &quot;isCa&quot;: True or False, # Optional. Refers to the &quot;CA&quot; X.509 extension, which is a boolean value. When this value is missing, the extension will be omitted from the CA certificate.
        &quot;maxIssuerPathLength&quot;: 42, # Optional. Refers to the path length restriction X.509 extension. For a CA certificate, this value describes the depth of subordinate CA certificates that are allowed. If this value is less than 0, the request will fail. If this value is missing, the max path length will be omitted from the CA certificate.
      },
      &quot;keyUsage&quot;: { # A KeyUsage describes key usage values that may appear in an X.509 certificate. # Optional. Indicates the intended use for keys that correspond to a certificate.
        &quot;baseKeyUsage&quot;: { # KeyUsage.KeyUsageOptions corresponds to the key usage values described in https://tools.ietf.org/html/rfc5280#section-4.2.1.3. # Describes high-level ways in which a key may be used.
          &quot;certSign&quot;: True or False, # The key may be used to sign certificates.
          &quot;contentCommitment&quot;: True or False, # The key may be used for cryptographic commitments. Note that this may also be referred to as &quot;non-repudiation&quot;.
          &quot;crlSign&quot;: True or False, # The key may be used sign certificate revocation lists.
          &quot;dataEncipherment&quot;: True or False, # The key may be used to encipher data.
          &quot;decipherOnly&quot;: True or False, # The key may be used to decipher only.
          &quot;digitalSignature&quot;: True or False, # The key may be used for digital signatures.
          &quot;encipherOnly&quot;: True or False, # The key may be used to encipher only.
          &quot;keyAgreement&quot;: True or False, # The key may be used in a key agreement protocol.
          &quot;keyEncipherment&quot;: True or False, # The key may be used to encipher other keys.
        },
        &quot;extendedKeyUsage&quot;: { # KeyUsage.ExtendedKeyUsageOptions has fields that correspond to certain common OIDs that could be specified as an extended key usage value. # Detailed scenarios in which a key may be used.
          &quot;clientAuth&quot;: True or False, # Corresponds to OID 1.3.6.1.5.5.7.3.2. Officially described as &quot;TLS WWW client authentication&quot;, though regularly used for non-WWW TLS.
          &quot;codeSigning&quot;: True or False, # Corresponds to OID 1.3.6.1.5.5.7.3.3. Officially described as &quot;Signing of downloadable executable code client authentication&quot;.
          &quot;emailProtection&quot;: True or False, # Corresponds to OID 1.3.6.1.5.5.7.3.4. Officially described as &quot;Email protection&quot;.
          &quot;ocspSigning&quot;: True or False, # Corresponds to OID 1.3.6.1.5.5.7.3.9. Officially described as &quot;Signing OCSP responses&quot;.
          &quot;serverAuth&quot;: True or False, # Corresponds to OID 1.3.6.1.5.5.7.3.1. Officially described as &quot;TLS WWW server authentication&quot;, though regularly used for non-WWW TLS.
          &quot;timeStamping&quot;: True or False, # Corresponds to OID 1.3.6.1.5.5.7.3.8. Officially described as &quot;Binding the hash of an object to a time&quot;.
        },
        &quot;unknownExtendedKeyUsages&quot;: [ # Used to describe extended key usages that are not listed in the KeyUsage.ExtendedKeyUsageOptions message.
          { # An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages.
            &quot;objectIdPath&quot;: [ # Required. The parts of an OID path. The most significant parts of the path come first.
              42,
            ],
          },
        ],
      },
      &quot;policyIds&quot;: [ # Optional. Describes the X.509 certificate policy object identifiers, per https://tools.ietf.org/html/rfc5280#section-4.2.1.4.
        { # An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages.
          &quot;objectIdPath&quot;: [ # Required. The parts of an OID path. The most significant parts of the path come first.
            42,
          ],
        },
      ],
    },
  },
  &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time at which this Certificate was created.
  &quot;issuerCertificateAuthority&quot;: &quot;A String&quot;, # Output only. The resource name of the issuing CertificateAuthority in the format `projects/*/locations/*/caPools/*/certificateAuthorities/*`.
  &quot;labels&quot;: { # Optional. Labels with user-defined metadata.
    &quot;a_key&quot;: &quot;A String&quot;,
  },
  &quot;lifetime&quot;: &quot;A String&quot;, # Required. Immutable. The desired lifetime of a certificate. Used to create the &quot;not_before_time&quot; and &quot;not_after_time&quot; fields inside an X.509 certificate. Note that the lifetime may be truncated if it would extend past the life of any certificate authority in the issuing chain.
  &quot;name&quot;: &quot;A String&quot;, # Output only. The resource name for this Certificate in the format `projects/*/locations/*/caPools/*/certificates/*`.
  &quot;pemCertificate&quot;: &quot;A String&quot;, # Output only. The pem-encoded, signed X.509 certificate.
  &quot;pemCertificateChain&quot;: [ # Output only. The chain that may be used to verify the X.509 certificate. Expected to be in issuer-to-root order according to RFC 5246.
    &quot;A String&quot;,
  ],
  &quot;pemCsr&quot;: &quot;A String&quot;, # Immutable. A pem-encoded X.509 certificate signing request (CSR).
  &quot;revocationDetails&quot;: { # Describes fields that are relavent to the revocation of a Certificate. # Output only. Details regarding the revocation of this Certificate. This Certificate is considered revoked if and only if this field is present.
    &quot;revocationState&quot;: &quot;A String&quot;, # Indicates why a Certificate was revoked.
    &quot;revocationTime&quot;: &quot;A String&quot;, # The time at which this Certificate was revoked.
  },
  &quot;subjectMode&quot;: &quot;A String&quot;, # Immutable. Specifies how the Certificate&#x27;s identity fields are to be decided. If this is omitted, the `DEFAULT` subject mode will be used.
  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time at which this Certificate was updated.
}</pre>
</div>

<div class="method">
    <code class="details" id="get">get(name, x__xgafv=None)</code>
  <pre>Returns a Certificate.

Args:
  name: string, Required. The name of the Certificate to get. (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # A Certificate corresponds to a signed X.509 certificate issued by a CertificateAuthority.
  &quot;certificateDescription&quot;: { # A CertificateDescription describes an X.509 certificate or CSR that has been issued, as an alternative to using ASN.1 / X.509. # Output only. A structured description of the issued X.509 certificate.
    &quot;aiaIssuingCertificateUrls&quot;: [ # Describes lists of issuer CA certificate URLs that appear in the &quot;Authority Information Access&quot; extension in the certificate.
      &quot;A String&quot;,
    ],
    &quot;authorityKeyId&quot;: { # A KeyId identifies a specific public key, usually by hashing the public key. # Identifies the subject_key_id of the parent certificate, per https://tools.ietf.org/html/rfc5280#section-4.2.1.1
      &quot;keyId&quot;: &quot;A String&quot;, # Optional. The value of this KeyId encoded in lowercase hexadecimal. This is most likely the 160 bit SHA-1 hash of the public key.
    },
    &quot;certFingerprint&quot;: { # A group of fingerprints for the x509 certificate. # The hash of the x.509 certificate.
      &quot;sha256Hash&quot;: &quot;A String&quot;, # The SHA 256 hash, encoded in hexadecimal, of the DER x509 certificate.
    },
    &quot;crlDistributionPoints&quot;: [ # 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
      &quot;A String&quot;,
    ],
    &quot;publicKey&quot;: { # A PublicKey describes a public key. # The public key that corresponds to an issued certificate.
      &quot;format&quot;: &quot;A String&quot;, # Required. The format of the public key.
      &quot;key&quot;: &quot;A String&quot;, # Required. A public key. The padding and encoding must match with the `KeyFormat` value specified for the `format` field.
    },
    &quot;subjectDescription&quot;: { # These values describe fields in an issued X.509 certificate such as the distinguished name, subject alternative names, serial number, and lifetime. # Describes some of the values in a certificate that are related to the subject and lifetime.
      &quot;hexSerialNumber&quot;: &quot;A String&quot;, # The serial number encoded in lowercase hexadecimal.
      &quot;lifetime&quot;: &quot;A String&quot;, # For convenience, the actual lifetime of an issued certificate.
      &quot;notAfterTime&quot;: &quot;A String&quot;, # The time after which the certificate is expired. Per RFC 5280, the validity period for a certificate is the period of time from not_before_time through not_after_time, inclusive. Corresponds to &#x27;not_before_time&#x27; + &#x27;lifetime&#x27; - 1 second.
      &quot;notBeforeTime&quot;: &quot;A String&quot;, # The time at which the certificate becomes valid.
      &quot;subject&quot;: { # Subject describes parts of a distinguished name that, in turn, describes the subject of the certificate. # Contains distinguished name fields such as the common name, location and / organization.
        &quot;commonName&quot;: &quot;A String&quot;, # The &quot;common name&quot; of the subject.
        &quot;countryCode&quot;: &quot;A String&quot;, # The country code of the subject.
        &quot;locality&quot;: &quot;A String&quot;, # The locality or city of the subject.
        &quot;organization&quot;: &quot;A String&quot;, # The organization of the subject.
        &quot;organizationalUnit&quot;: &quot;A String&quot;, # The organizational_unit of the subject.
        &quot;postalCode&quot;: &quot;A String&quot;, # The postal code of the subject.
        &quot;province&quot;: &quot;A String&quot;, # The province, territory, or regional state of the subject.
        &quot;streetAddress&quot;: &quot;A String&quot;, # The street address of the subject.
      },
      &quot;subjectAltName&quot;: { # SubjectAltNames corresponds to a more modern way of listing what the asserted identity is in a certificate (i.e., compared to the &quot;common name&quot; in the distinguished name). # The subject alternative name fields.
        &quot;customSans&quot;: [ # Contains additional subject alternative name values. For each custom_san, the `value` field must contain an ASN.1 encoded UTF8String.
          { # An X509Extension specifies an X.509 extension, which may be used in different parts of X.509 objects like certificates, CSRs, and CRLs.
            &quot;critical&quot;: True or False, # Optional. 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).
            &quot;objectId&quot;: { # An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages. # Required. The OID for this X.509 extension.
              &quot;objectIdPath&quot;: [ # Required. The parts of an OID path. The most significant parts of the path come first.
                42,
              ],
            },
            &quot;value&quot;: &quot;A String&quot;, # Required. The value of this X.509 extension.
          },
        ],
        &quot;dnsNames&quot;: [ # Contains only valid, fully-qualified host names.
          &quot;A String&quot;,
        ],
        &quot;emailAddresses&quot;: [ # Contains only valid RFC 2822 E-mail addresses.
          &quot;A String&quot;,
        ],
        &quot;ipAddresses&quot;: [ # Contains only valid 32-bit IPv4 addresses or RFC 4291 IPv6 addresses.
          &quot;A String&quot;,
        ],
        &quot;uris&quot;: [ # Contains only valid RFC 3986 URIs.
          &quot;A String&quot;,
        ],
      },
    },
    &quot;subjectKeyId&quot;: { # A KeyId identifies a specific public key, usually by hashing the public key. # Provides a means of identifiying certificates that contain a particular public key, per https://tools.ietf.org/html/rfc5280#section-4.2.1.2.
      &quot;keyId&quot;: &quot;A String&quot;, # Optional. The value of this KeyId encoded in lowercase hexadecimal. This is most likely the 160 bit SHA-1 hash of the public key.
    },
    &quot;x509Description&quot;: { # An X509Parameters is used to describe certain fields of an X.509 certificate, such as the key usage fields, fields specific to CA certificates, certificate policy extensions and custom extensions. # Describes some of the technical X.509 fields in a certificate.
      &quot;additionalExtensions&quot;: [ # Optional. Describes custom X.509 extensions.
        { # An X509Extension specifies an X.509 extension, which may be used in different parts of X.509 objects like certificates, CSRs, and CRLs.
          &quot;critical&quot;: True or False, # Optional. 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).
          &quot;objectId&quot;: { # An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages. # Required. The OID for this X.509 extension.
            &quot;objectIdPath&quot;: [ # Required. The parts of an OID path. The most significant parts of the path come first.
              42,
            ],
          },
          &quot;value&quot;: &quot;A String&quot;, # Required. The value of this X.509 extension.
        },
      ],
      &quot;aiaOcspServers&quot;: [ # Optional. Describes Online Certificate Status Protocol (OCSP) endpoint addresses that appear in the &quot;Authority Information Access&quot; extension in the certificate.
        &quot;A String&quot;,
      ],
      &quot;caOptions&quot;: { # Describes values that are relevant in a CA certificate. # Optional. Describes options in this X509Parameters that are relevant in a CA certificate.
        &quot;isCa&quot;: True or False, # Optional. Refers to the &quot;CA&quot; X.509 extension, which is a boolean value. When this value is missing, the extension will be omitted from the CA certificate.
        &quot;maxIssuerPathLength&quot;: 42, # Optional. Refers to the path length restriction X.509 extension. For a CA certificate, this value describes the depth of subordinate CA certificates that are allowed. If this value is less than 0, the request will fail. If this value is missing, the max path length will be omitted from the CA certificate.
      },
      &quot;keyUsage&quot;: { # A KeyUsage describes key usage values that may appear in an X.509 certificate. # Optional. Indicates the intended use for keys that correspond to a certificate.
        &quot;baseKeyUsage&quot;: { # KeyUsage.KeyUsageOptions corresponds to the key usage values described in https://tools.ietf.org/html/rfc5280#section-4.2.1.3. # Describes high-level ways in which a key may be used.
          &quot;certSign&quot;: True or False, # The key may be used to sign certificates.
          &quot;contentCommitment&quot;: True or False, # The key may be used for cryptographic commitments. Note that this may also be referred to as &quot;non-repudiation&quot;.
          &quot;crlSign&quot;: True or False, # The key may be used sign certificate revocation lists.
          &quot;dataEncipherment&quot;: True or False, # The key may be used to encipher data.
          &quot;decipherOnly&quot;: True or False, # The key may be used to decipher only.
          &quot;digitalSignature&quot;: True or False, # The key may be used for digital signatures.
          &quot;encipherOnly&quot;: True or False, # The key may be used to encipher only.
          &quot;keyAgreement&quot;: True or False, # The key may be used in a key agreement protocol.
          &quot;keyEncipherment&quot;: True or False, # The key may be used to encipher other keys.
        },
        &quot;extendedKeyUsage&quot;: { # KeyUsage.ExtendedKeyUsageOptions has fields that correspond to certain common OIDs that could be specified as an extended key usage value. # Detailed scenarios in which a key may be used.
          &quot;clientAuth&quot;: True or False, # Corresponds to OID 1.3.6.1.5.5.7.3.2. Officially described as &quot;TLS WWW client authentication&quot;, though regularly used for non-WWW TLS.
          &quot;codeSigning&quot;: True or False, # Corresponds to OID 1.3.6.1.5.5.7.3.3. Officially described as &quot;Signing of downloadable executable code client authentication&quot;.
          &quot;emailProtection&quot;: True or False, # Corresponds to OID 1.3.6.1.5.5.7.3.4. Officially described as &quot;Email protection&quot;.
          &quot;ocspSigning&quot;: True or False, # Corresponds to OID 1.3.6.1.5.5.7.3.9. Officially described as &quot;Signing OCSP responses&quot;.
          &quot;serverAuth&quot;: True or False, # Corresponds to OID 1.3.6.1.5.5.7.3.1. Officially described as &quot;TLS WWW server authentication&quot;, though regularly used for non-WWW TLS.
          &quot;timeStamping&quot;: True or False, # Corresponds to OID 1.3.6.1.5.5.7.3.8. Officially described as &quot;Binding the hash of an object to a time&quot;.
        },
        &quot;unknownExtendedKeyUsages&quot;: [ # Used to describe extended key usages that are not listed in the KeyUsage.ExtendedKeyUsageOptions message.
          { # An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages.
            &quot;objectIdPath&quot;: [ # Required. The parts of an OID path. The most significant parts of the path come first.
              42,
            ],
          },
        ],
      },
      &quot;policyIds&quot;: [ # Optional. Describes the X.509 certificate policy object identifiers, per https://tools.ietf.org/html/rfc5280#section-4.2.1.4.
        { # An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages.
          &quot;objectIdPath&quot;: [ # Required. The parts of an OID path. The most significant parts of the path come first.
            42,
          ],
        },
      ],
    },
  },
  &quot;certificateTemplate&quot;: &quot;A String&quot;, # Immutable. The resource name for a CertificateTemplate used to issue this certificate, in the format `projects/*/locations/*/certificateTemplates/*`. If this is specified, the caller must have the necessary permission to use this template. If this is omitted, no template will be used. This template must be in the same location as the Certificate.
  &quot;config&quot;: { # A CertificateConfig describes an X.509 certificate or CSR that is to be created, as an alternative to using ASN.1. # Immutable. A description of the certificate and key that does not require X.509 or ASN.1.
    &quot;publicKey&quot;: { # A PublicKey describes a public key. # Optional. The public key that corresponds to this config. This is, for example, used when issuing Certificates, but not when creating a self-signed CertificateAuthority or CertificateAuthority CSR.
      &quot;format&quot;: &quot;A String&quot;, # Required. The format of the public key.
      &quot;key&quot;: &quot;A String&quot;, # Required. A public key. The padding and encoding must match with the `KeyFormat` value specified for the `format` field.
    },
    &quot;subjectConfig&quot;: { # These values are used to create the distinguished name and subject alternative name fields in an X.509 certificate. # Required. Specifies some of the values in a certificate that are related to the subject.
      &quot;subject&quot;: { # Subject describes parts of a distinguished name that, in turn, describes the subject of the certificate. # Required. Contains distinguished name fields such as the common name, location and organization.
        &quot;commonName&quot;: &quot;A String&quot;, # The &quot;common name&quot; of the subject.
        &quot;countryCode&quot;: &quot;A String&quot;, # The country code of the subject.
        &quot;locality&quot;: &quot;A String&quot;, # The locality or city of the subject.
        &quot;organization&quot;: &quot;A String&quot;, # The organization of the subject.
        &quot;organizationalUnit&quot;: &quot;A String&quot;, # The organizational_unit of the subject.
        &quot;postalCode&quot;: &quot;A String&quot;, # The postal code of the subject.
        &quot;province&quot;: &quot;A String&quot;, # The province, territory, or regional state of the subject.
        &quot;streetAddress&quot;: &quot;A String&quot;, # The street address of the subject.
      },
      &quot;subjectAltName&quot;: { # SubjectAltNames corresponds to a more modern way of listing what the asserted identity is in a certificate (i.e., compared to the &quot;common name&quot; in the distinguished name). # Optional. The subject alternative name fields.
        &quot;customSans&quot;: [ # Contains additional subject alternative name values. For each custom_san, the `value` field must contain an ASN.1 encoded UTF8String.
          { # An X509Extension specifies an X.509 extension, which may be used in different parts of X.509 objects like certificates, CSRs, and CRLs.
            &quot;critical&quot;: True or False, # Optional. 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).
            &quot;objectId&quot;: { # An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages. # Required. The OID for this X.509 extension.
              &quot;objectIdPath&quot;: [ # Required. The parts of an OID path. The most significant parts of the path come first.
                42,
              ],
            },
            &quot;value&quot;: &quot;A String&quot;, # Required. The value of this X.509 extension.
          },
        ],
        &quot;dnsNames&quot;: [ # Contains only valid, fully-qualified host names.
          &quot;A String&quot;,
        ],
        &quot;emailAddresses&quot;: [ # Contains only valid RFC 2822 E-mail addresses.
          &quot;A String&quot;,
        ],
        &quot;ipAddresses&quot;: [ # Contains only valid 32-bit IPv4 addresses or RFC 4291 IPv6 addresses.
          &quot;A String&quot;,
        ],
        &quot;uris&quot;: [ # Contains only valid RFC 3986 URIs.
          &quot;A String&quot;,
        ],
      },
    },
    &quot;x509Config&quot;: { # An X509Parameters is used to describe certain fields of an X.509 certificate, such as the key usage fields, fields specific to CA certificates, certificate policy extensions and custom extensions. # Required. Describes how some of the technical X.509 fields in a certificate should be populated.
      &quot;additionalExtensions&quot;: [ # Optional. Describes custom X.509 extensions.
        { # An X509Extension specifies an X.509 extension, which may be used in different parts of X.509 objects like certificates, CSRs, and CRLs.
          &quot;critical&quot;: True or False, # Optional. 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).
          &quot;objectId&quot;: { # An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages. # Required. The OID for this X.509 extension.
            &quot;objectIdPath&quot;: [ # Required. The parts of an OID path. The most significant parts of the path come first.
              42,
            ],
          },
          &quot;value&quot;: &quot;A String&quot;, # Required. The value of this X.509 extension.
        },
      ],
      &quot;aiaOcspServers&quot;: [ # Optional. Describes Online Certificate Status Protocol (OCSP) endpoint addresses that appear in the &quot;Authority Information Access&quot; extension in the certificate.
        &quot;A String&quot;,
      ],
      &quot;caOptions&quot;: { # Describes values that are relevant in a CA certificate. # Optional. Describes options in this X509Parameters that are relevant in a CA certificate.
        &quot;isCa&quot;: True or False, # Optional. Refers to the &quot;CA&quot; X.509 extension, which is a boolean value. When this value is missing, the extension will be omitted from the CA certificate.
        &quot;maxIssuerPathLength&quot;: 42, # Optional. Refers to the path length restriction X.509 extension. For a CA certificate, this value describes the depth of subordinate CA certificates that are allowed. If this value is less than 0, the request will fail. If this value is missing, the max path length will be omitted from the CA certificate.
      },
      &quot;keyUsage&quot;: { # A KeyUsage describes key usage values that may appear in an X.509 certificate. # Optional. Indicates the intended use for keys that correspond to a certificate.
        &quot;baseKeyUsage&quot;: { # KeyUsage.KeyUsageOptions corresponds to the key usage values described in https://tools.ietf.org/html/rfc5280#section-4.2.1.3. # Describes high-level ways in which a key may be used.
          &quot;certSign&quot;: True or False, # The key may be used to sign certificates.
          &quot;contentCommitment&quot;: True or False, # The key may be used for cryptographic commitments. Note that this may also be referred to as &quot;non-repudiation&quot;.
          &quot;crlSign&quot;: True or False, # The key may be used sign certificate revocation lists.
          &quot;dataEncipherment&quot;: True or False, # The key may be used to encipher data.
          &quot;decipherOnly&quot;: True or False, # The key may be used to decipher only.
          &quot;digitalSignature&quot;: True or False, # The key may be used for digital signatures.
          &quot;encipherOnly&quot;: True or False, # The key may be used to encipher only.
          &quot;keyAgreement&quot;: True or False, # The key may be used in a key agreement protocol.
          &quot;keyEncipherment&quot;: True or False, # The key may be used to encipher other keys.
        },
        &quot;extendedKeyUsage&quot;: { # KeyUsage.ExtendedKeyUsageOptions has fields that correspond to certain common OIDs that could be specified as an extended key usage value. # Detailed scenarios in which a key may be used.
          &quot;clientAuth&quot;: True or False, # Corresponds to OID 1.3.6.1.5.5.7.3.2. Officially described as &quot;TLS WWW client authentication&quot;, though regularly used for non-WWW TLS.
          &quot;codeSigning&quot;: True or False, # Corresponds to OID 1.3.6.1.5.5.7.3.3. Officially described as &quot;Signing of downloadable executable code client authentication&quot;.
          &quot;emailProtection&quot;: True or False, # Corresponds to OID 1.3.6.1.5.5.7.3.4. Officially described as &quot;Email protection&quot;.
          &quot;ocspSigning&quot;: True or False, # Corresponds to OID 1.3.6.1.5.5.7.3.9. Officially described as &quot;Signing OCSP responses&quot;.
          &quot;serverAuth&quot;: True or False, # Corresponds to OID 1.3.6.1.5.5.7.3.1. Officially described as &quot;TLS WWW server authentication&quot;, though regularly used for non-WWW TLS.
          &quot;timeStamping&quot;: True or False, # Corresponds to OID 1.3.6.1.5.5.7.3.8. Officially described as &quot;Binding the hash of an object to a time&quot;.
        },
        &quot;unknownExtendedKeyUsages&quot;: [ # Used to describe extended key usages that are not listed in the KeyUsage.ExtendedKeyUsageOptions message.
          { # An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages.
            &quot;objectIdPath&quot;: [ # Required. The parts of an OID path. The most significant parts of the path come first.
              42,
            ],
          },
        ],
      },
      &quot;policyIds&quot;: [ # Optional. Describes the X.509 certificate policy object identifiers, per https://tools.ietf.org/html/rfc5280#section-4.2.1.4.
        { # An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages.
          &quot;objectIdPath&quot;: [ # Required. The parts of an OID path. The most significant parts of the path come first.
            42,
          ],
        },
      ],
    },
  },
  &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time at which this Certificate was created.
  &quot;issuerCertificateAuthority&quot;: &quot;A String&quot;, # Output only. The resource name of the issuing CertificateAuthority in the format `projects/*/locations/*/caPools/*/certificateAuthorities/*`.
  &quot;labels&quot;: { # Optional. Labels with user-defined metadata.
    &quot;a_key&quot;: &quot;A String&quot;,
  },
  &quot;lifetime&quot;: &quot;A String&quot;, # Required. Immutable. The desired lifetime of a certificate. Used to create the &quot;not_before_time&quot; and &quot;not_after_time&quot; fields inside an X.509 certificate. Note that the lifetime may be truncated if it would extend past the life of any certificate authority in the issuing chain.
  &quot;name&quot;: &quot;A String&quot;, # Output only. The resource name for this Certificate in the format `projects/*/locations/*/caPools/*/certificates/*`.
  &quot;pemCertificate&quot;: &quot;A String&quot;, # Output only. The pem-encoded, signed X.509 certificate.
  &quot;pemCertificateChain&quot;: [ # Output only. The chain that may be used to verify the X.509 certificate. Expected to be in issuer-to-root order according to RFC 5246.
    &quot;A String&quot;,
  ],
  &quot;pemCsr&quot;: &quot;A String&quot;, # Immutable. A pem-encoded X.509 certificate signing request (CSR).
  &quot;revocationDetails&quot;: { # Describes fields that are relavent to the revocation of a Certificate. # Output only. Details regarding the revocation of this Certificate. This Certificate is considered revoked if and only if this field is present.
    &quot;revocationState&quot;: &quot;A String&quot;, # Indicates why a Certificate was revoked.
    &quot;revocationTime&quot;: &quot;A String&quot;, # The time at which this Certificate was revoked.
  },
  &quot;subjectMode&quot;: &quot;A String&quot;, # Immutable. Specifies how the Certificate&#x27;s identity fields are to be decided. If this is omitted, the `DEFAULT` subject mode will be used.
  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time at which this Certificate was updated.
}</pre>
</div>

<div class="method">
    <code class="details" id="list">list(parent, filter=None, orderBy=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
  <pre>Lists Certificates.

Args:
  parent: string, Required. The resource name of the location associated with the Certificates, in the format `projects/*/locations/*/caPools/*`. (required)
  filter: string, Optional. Only include resources that match the filter in the response. For details on supported filters and syntax, see [Certificates Filtering documentation](https://cloud.google.com/certificate-authority-service/docs/sorting-filtering-certificates#filtering_support).
  orderBy: string, Optional. Specify how the results should be sorted. For details on supported fields and syntax, see [Certificates Sorting documentation](https://cloud.google.com/certificate-authority-service/docs/sorting-filtering-certificates#sorting_support).
  pageSize: integer, Optional. Limit on the number of Certificates to include in the response. Further Certificates can subsequently be obtained by including the ListCertificatesResponse.next_page_token in a subsequent request. If unspecified, the server will pick an appropriate default.
  pageToken: string, Optional. Pagination token, returned earlier via ListCertificatesResponse.next_page_token.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Response message for CertificateAuthorityService.ListCertificates.
  &quot;certificates&quot;: [ # The list of Certificates.
    { # A Certificate corresponds to a signed X.509 certificate issued by a CertificateAuthority.
      &quot;certificateDescription&quot;: { # A CertificateDescription describes an X.509 certificate or CSR that has been issued, as an alternative to using ASN.1 / X.509. # Output only. A structured description of the issued X.509 certificate.
        &quot;aiaIssuingCertificateUrls&quot;: [ # Describes lists of issuer CA certificate URLs that appear in the &quot;Authority Information Access&quot; extension in the certificate.
          &quot;A String&quot;,
        ],
        &quot;authorityKeyId&quot;: { # A KeyId identifies a specific public key, usually by hashing the public key. # Identifies the subject_key_id of the parent certificate, per https://tools.ietf.org/html/rfc5280#section-4.2.1.1
          &quot;keyId&quot;: &quot;A String&quot;, # Optional. The value of this KeyId encoded in lowercase hexadecimal. This is most likely the 160 bit SHA-1 hash of the public key.
        },
        &quot;certFingerprint&quot;: { # A group of fingerprints for the x509 certificate. # The hash of the x.509 certificate.
          &quot;sha256Hash&quot;: &quot;A String&quot;, # The SHA 256 hash, encoded in hexadecimal, of the DER x509 certificate.
        },
        &quot;crlDistributionPoints&quot;: [ # 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
          &quot;A String&quot;,
        ],
        &quot;publicKey&quot;: { # A PublicKey describes a public key. # The public key that corresponds to an issued certificate.
          &quot;format&quot;: &quot;A String&quot;, # Required. The format of the public key.
          &quot;key&quot;: &quot;A String&quot;, # Required. A public key. The padding and encoding must match with the `KeyFormat` value specified for the `format` field.
        },
        &quot;subjectDescription&quot;: { # These values describe fields in an issued X.509 certificate such as the distinguished name, subject alternative names, serial number, and lifetime. # Describes some of the values in a certificate that are related to the subject and lifetime.
          &quot;hexSerialNumber&quot;: &quot;A String&quot;, # The serial number encoded in lowercase hexadecimal.
          &quot;lifetime&quot;: &quot;A String&quot;, # For convenience, the actual lifetime of an issued certificate.
          &quot;notAfterTime&quot;: &quot;A String&quot;, # The time after which the certificate is expired. Per RFC 5280, the validity period for a certificate is the period of time from not_before_time through not_after_time, inclusive. Corresponds to &#x27;not_before_time&#x27; + &#x27;lifetime&#x27; - 1 second.
          &quot;notBeforeTime&quot;: &quot;A String&quot;, # The time at which the certificate becomes valid.
          &quot;subject&quot;: { # Subject describes parts of a distinguished name that, in turn, describes the subject of the certificate. # Contains distinguished name fields such as the common name, location and / organization.
            &quot;commonName&quot;: &quot;A String&quot;, # The &quot;common name&quot; of the subject.
            &quot;countryCode&quot;: &quot;A String&quot;, # The country code of the subject.
            &quot;locality&quot;: &quot;A String&quot;, # The locality or city of the subject.
            &quot;organization&quot;: &quot;A String&quot;, # The organization of the subject.
            &quot;organizationalUnit&quot;: &quot;A String&quot;, # The organizational_unit of the subject.
            &quot;postalCode&quot;: &quot;A String&quot;, # The postal code of the subject.
            &quot;province&quot;: &quot;A String&quot;, # The province, territory, or regional state of the subject.
            &quot;streetAddress&quot;: &quot;A String&quot;, # The street address of the subject.
          },
          &quot;subjectAltName&quot;: { # SubjectAltNames corresponds to a more modern way of listing what the asserted identity is in a certificate (i.e., compared to the &quot;common name&quot; in the distinguished name). # The subject alternative name fields.
            &quot;customSans&quot;: [ # Contains additional subject alternative name values. For each custom_san, the `value` field must contain an ASN.1 encoded UTF8String.
              { # An X509Extension specifies an X.509 extension, which may be used in different parts of X.509 objects like certificates, CSRs, and CRLs.
                &quot;critical&quot;: True or False, # Optional. 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).
                &quot;objectId&quot;: { # An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages. # Required. The OID for this X.509 extension.
                  &quot;objectIdPath&quot;: [ # Required. The parts of an OID path. The most significant parts of the path come first.
                    42,
                  ],
                },
                &quot;value&quot;: &quot;A String&quot;, # Required. The value of this X.509 extension.
              },
            ],
            &quot;dnsNames&quot;: [ # Contains only valid, fully-qualified host names.
              &quot;A String&quot;,
            ],
            &quot;emailAddresses&quot;: [ # Contains only valid RFC 2822 E-mail addresses.
              &quot;A String&quot;,
            ],
            &quot;ipAddresses&quot;: [ # Contains only valid 32-bit IPv4 addresses or RFC 4291 IPv6 addresses.
              &quot;A String&quot;,
            ],
            &quot;uris&quot;: [ # Contains only valid RFC 3986 URIs.
              &quot;A String&quot;,
            ],
          },
        },
        &quot;subjectKeyId&quot;: { # A KeyId identifies a specific public key, usually by hashing the public key. # Provides a means of identifiying certificates that contain a particular public key, per https://tools.ietf.org/html/rfc5280#section-4.2.1.2.
          &quot;keyId&quot;: &quot;A String&quot;, # Optional. The value of this KeyId encoded in lowercase hexadecimal. This is most likely the 160 bit SHA-1 hash of the public key.
        },
        &quot;x509Description&quot;: { # An X509Parameters is used to describe certain fields of an X.509 certificate, such as the key usage fields, fields specific to CA certificates, certificate policy extensions and custom extensions. # Describes some of the technical X.509 fields in a certificate.
          &quot;additionalExtensions&quot;: [ # Optional. Describes custom X.509 extensions.
            { # An X509Extension specifies an X.509 extension, which may be used in different parts of X.509 objects like certificates, CSRs, and CRLs.
              &quot;critical&quot;: True or False, # Optional. 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).
              &quot;objectId&quot;: { # An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages. # Required. The OID for this X.509 extension.
                &quot;objectIdPath&quot;: [ # Required. The parts of an OID path. The most significant parts of the path come first.
                  42,
                ],
              },
              &quot;value&quot;: &quot;A String&quot;, # Required. The value of this X.509 extension.
            },
          ],
          &quot;aiaOcspServers&quot;: [ # Optional. Describes Online Certificate Status Protocol (OCSP) endpoint addresses that appear in the &quot;Authority Information Access&quot; extension in the certificate.
            &quot;A String&quot;,
          ],
          &quot;caOptions&quot;: { # Describes values that are relevant in a CA certificate. # Optional. Describes options in this X509Parameters that are relevant in a CA certificate.
            &quot;isCa&quot;: True or False, # Optional. Refers to the &quot;CA&quot; X.509 extension, which is a boolean value. When this value is missing, the extension will be omitted from the CA certificate.
            &quot;maxIssuerPathLength&quot;: 42, # Optional. Refers to the path length restriction X.509 extension. For a CA certificate, this value describes the depth of subordinate CA certificates that are allowed. If this value is less than 0, the request will fail. If this value is missing, the max path length will be omitted from the CA certificate.
          },
          &quot;keyUsage&quot;: { # A KeyUsage describes key usage values that may appear in an X.509 certificate. # Optional. Indicates the intended use for keys that correspond to a certificate.
            &quot;baseKeyUsage&quot;: { # KeyUsage.KeyUsageOptions corresponds to the key usage values described in https://tools.ietf.org/html/rfc5280#section-4.2.1.3. # Describes high-level ways in which a key may be used.
              &quot;certSign&quot;: True or False, # The key may be used to sign certificates.
              &quot;contentCommitment&quot;: True or False, # The key may be used for cryptographic commitments. Note that this may also be referred to as &quot;non-repudiation&quot;.
              &quot;crlSign&quot;: True or False, # The key may be used sign certificate revocation lists.
              &quot;dataEncipherment&quot;: True or False, # The key may be used to encipher data.
              &quot;decipherOnly&quot;: True or False, # The key may be used to decipher only.
              &quot;digitalSignature&quot;: True or False, # The key may be used for digital signatures.
              &quot;encipherOnly&quot;: True or False, # The key may be used to encipher only.
              &quot;keyAgreement&quot;: True or False, # The key may be used in a key agreement protocol.
              &quot;keyEncipherment&quot;: True or False, # The key may be used to encipher other keys.
            },
            &quot;extendedKeyUsage&quot;: { # KeyUsage.ExtendedKeyUsageOptions has fields that correspond to certain common OIDs that could be specified as an extended key usage value. # Detailed scenarios in which a key may be used.
              &quot;clientAuth&quot;: True or False, # Corresponds to OID 1.3.6.1.5.5.7.3.2. Officially described as &quot;TLS WWW client authentication&quot;, though regularly used for non-WWW TLS.
              &quot;codeSigning&quot;: True or False, # Corresponds to OID 1.3.6.1.5.5.7.3.3. Officially described as &quot;Signing of downloadable executable code client authentication&quot;.
              &quot;emailProtection&quot;: True or False, # Corresponds to OID 1.3.6.1.5.5.7.3.4. Officially described as &quot;Email protection&quot;.
              &quot;ocspSigning&quot;: True or False, # Corresponds to OID 1.3.6.1.5.5.7.3.9. Officially described as &quot;Signing OCSP responses&quot;.
              &quot;serverAuth&quot;: True or False, # Corresponds to OID 1.3.6.1.5.5.7.3.1. Officially described as &quot;TLS WWW server authentication&quot;, though regularly used for non-WWW TLS.
              &quot;timeStamping&quot;: True or False, # Corresponds to OID 1.3.6.1.5.5.7.3.8. Officially described as &quot;Binding the hash of an object to a time&quot;.
            },
            &quot;unknownExtendedKeyUsages&quot;: [ # Used to describe extended key usages that are not listed in the KeyUsage.ExtendedKeyUsageOptions message.
              { # An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages.
                &quot;objectIdPath&quot;: [ # Required. The parts of an OID path. The most significant parts of the path come first.
                  42,
                ],
              },
            ],
          },
          &quot;policyIds&quot;: [ # Optional. Describes the X.509 certificate policy object identifiers, per https://tools.ietf.org/html/rfc5280#section-4.2.1.4.
            { # An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages.
              &quot;objectIdPath&quot;: [ # Required. The parts of an OID path. The most significant parts of the path come first.
                42,
              ],
            },
          ],
        },
      },
      &quot;certificateTemplate&quot;: &quot;A String&quot;, # Immutable. The resource name for a CertificateTemplate used to issue this certificate, in the format `projects/*/locations/*/certificateTemplates/*`. If this is specified, the caller must have the necessary permission to use this template. If this is omitted, no template will be used. This template must be in the same location as the Certificate.
      &quot;config&quot;: { # A CertificateConfig describes an X.509 certificate or CSR that is to be created, as an alternative to using ASN.1. # Immutable. A description of the certificate and key that does not require X.509 or ASN.1.
        &quot;publicKey&quot;: { # A PublicKey describes a public key. # Optional. The public key that corresponds to this config. This is, for example, used when issuing Certificates, but not when creating a self-signed CertificateAuthority or CertificateAuthority CSR.
          &quot;format&quot;: &quot;A String&quot;, # Required. The format of the public key.
          &quot;key&quot;: &quot;A String&quot;, # Required. A public key. The padding and encoding must match with the `KeyFormat` value specified for the `format` field.
        },
        &quot;subjectConfig&quot;: { # These values are used to create the distinguished name and subject alternative name fields in an X.509 certificate. # Required. Specifies some of the values in a certificate that are related to the subject.
          &quot;subject&quot;: { # Subject describes parts of a distinguished name that, in turn, describes the subject of the certificate. # Required. Contains distinguished name fields such as the common name, location and organization.
            &quot;commonName&quot;: &quot;A String&quot;, # The &quot;common name&quot; of the subject.
            &quot;countryCode&quot;: &quot;A String&quot;, # The country code of the subject.
            &quot;locality&quot;: &quot;A String&quot;, # The locality or city of the subject.
            &quot;organization&quot;: &quot;A String&quot;, # The organization of the subject.
            &quot;organizationalUnit&quot;: &quot;A String&quot;, # The organizational_unit of the subject.
            &quot;postalCode&quot;: &quot;A String&quot;, # The postal code of the subject.
            &quot;province&quot;: &quot;A String&quot;, # The province, territory, or regional state of the subject.
            &quot;streetAddress&quot;: &quot;A String&quot;, # The street address of the subject.
          },
          &quot;subjectAltName&quot;: { # SubjectAltNames corresponds to a more modern way of listing what the asserted identity is in a certificate (i.e., compared to the &quot;common name&quot; in the distinguished name). # Optional. The subject alternative name fields.
            &quot;customSans&quot;: [ # Contains additional subject alternative name values. For each custom_san, the `value` field must contain an ASN.1 encoded UTF8String.
              { # An X509Extension specifies an X.509 extension, which may be used in different parts of X.509 objects like certificates, CSRs, and CRLs.
                &quot;critical&quot;: True or False, # Optional. 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).
                &quot;objectId&quot;: { # An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages. # Required. The OID for this X.509 extension.
                  &quot;objectIdPath&quot;: [ # Required. The parts of an OID path. The most significant parts of the path come first.
                    42,
                  ],
                },
                &quot;value&quot;: &quot;A String&quot;, # Required. The value of this X.509 extension.
              },
            ],
            &quot;dnsNames&quot;: [ # Contains only valid, fully-qualified host names.
              &quot;A String&quot;,
            ],
            &quot;emailAddresses&quot;: [ # Contains only valid RFC 2822 E-mail addresses.
              &quot;A String&quot;,
            ],
            &quot;ipAddresses&quot;: [ # Contains only valid 32-bit IPv4 addresses or RFC 4291 IPv6 addresses.
              &quot;A String&quot;,
            ],
            &quot;uris&quot;: [ # Contains only valid RFC 3986 URIs.
              &quot;A String&quot;,
            ],
          },
        },
        &quot;x509Config&quot;: { # An X509Parameters is used to describe certain fields of an X.509 certificate, such as the key usage fields, fields specific to CA certificates, certificate policy extensions and custom extensions. # Required. Describes how some of the technical X.509 fields in a certificate should be populated.
          &quot;additionalExtensions&quot;: [ # Optional. Describes custom X.509 extensions.
            { # An X509Extension specifies an X.509 extension, which may be used in different parts of X.509 objects like certificates, CSRs, and CRLs.
              &quot;critical&quot;: True or False, # Optional. 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).
              &quot;objectId&quot;: { # An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages. # Required. The OID for this X.509 extension.
                &quot;objectIdPath&quot;: [ # Required. The parts of an OID path. The most significant parts of the path come first.
                  42,
                ],
              },
              &quot;value&quot;: &quot;A String&quot;, # Required. The value of this X.509 extension.
            },
          ],
          &quot;aiaOcspServers&quot;: [ # Optional. Describes Online Certificate Status Protocol (OCSP) endpoint addresses that appear in the &quot;Authority Information Access&quot; extension in the certificate.
            &quot;A String&quot;,
          ],
          &quot;caOptions&quot;: { # Describes values that are relevant in a CA certificate. # Optional. Describes options in this X509Parameters that are relevant in a CA certificate.
            &quot;isCa&quot;: True or False, # Optional. Refers to the &quot;CA&quot; X.509 extension, which is a boolean value. When this value is missing, the extension will be omitted from the CA certificate.
            &quot;maxIssuerPathLength&quot;: 42, # Optional. Refers to the path length restriction X.509 extension. For a CA certificate, this value describes the depth of subordinate CA certificates that are allowed. If this value is less than 0, the request will fail. If this value is missing, the max path length will be omitted from the CA certificate.
          },
          &quot;keyUsage&quot;: { # A KeyUsage describes key usage values that may appear in an X.509 certificate. # Optional. Indicates the intended use for keys that correspond to a certificate.
            &quot;baseKeyUsage&quot;: { # KeyUsage.KeyUsageOptions corresponds to the key usage values described in https://tools.ietf.org/html/rfc5280#section-4.2.1.3. # Describes high-level ways in which a key may be used.
              &quot;certSign&quot;: True or False, # The key may be used to sign certificates.
              &quot;contentCommitment&quot;: True or False, # The key may be used for cryptographic commitments. Note that this may also be referred to as &quot;non-repudiation&quot;.
              &quot;crlSign&quot;: True or False, # The key may be used sign certificate revocation lists.
              &quot;dataEncipherment&quot;: True or False, # The key may be used to encipher data.
              &quot;decipherOnly&quot;: True or False, # The key may be used to decipher only.
              &quot;digitalSignature&quot;: True or False, # The key may be used for digital signatures.
              &quot;encipherOnly&quot;: True or False, # The key may be used to encipher only.
              &quot;keyAgreement&quot;: True or False, # The key may be used in a key agreement protocol.
              &quot;keyEncipherment&quot;: True or False, # The key may be used to encipher other keys.
            },
            &quot;extendedKeyUsage&quot;: { # KeyUsage.ExtendedKeyUsageOptions has fields that correspond to certain common OIDs that could be specified as an extended key usage value. # Detailed scenarios in which a key may be used.
              &quot;clientAuth&quot;: True or False, # Corresponds to OID 1.3.6.1.5.5.7.3.2. Officially described as &quot;TLS WWW client authentication&quot;, though regularly used for non-WWW TLS.
              &quot;codeSigning&quot;: True or False, # Corresponds to OID 1.3.6.1.5.5.7.3.3. Officially described as &quot;Signing of downloadable executable code client authentication&quot;.
              &quot;emailProtection&quot;: True or False, # Corresponds to OID 1.3.6.1.5.5.7.3.4. Officially described as &quot;Email protection&quot;.
              &quot;ocspSigning&quot;: True or False, # Corresponds to OID 1.3.6.1.5.5.7.3.9. Officially described as &quot;Signing OCSP responses&quot;.
              &quot;serverAuth&quot;: True or False, # Corresponds to OID 1.3.6.1.5.5.7.3.1. Officially described as &quot;TLS WWW server authentication&quot;, though regularly used for non-WWW TLS.
              &quot;timeStamping&quot;: True or False, # Corresponds to OID 1.3.6.1.5.5.7.3.8. Officially described as &quot;Binding the hash of an object to a time&quot;.
            },
            &quot;unknownExtendedKeyUsages&quot;: [ # Used to describe extended key usages that are not listed in the KeyUsage.ExtendedKeyUsageOptions message.
              { # An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages.
                &quot;objectIdPath&quot;: [ # Required. The parts of an OID path. The most significant parts of the path come first.
                  42,
                ],
              },
            ],
          },
          &quot;policyIds&quot;: [ # Optional. Describes the X.509 certificate policy object identifiers, per https://tools.ietf.org/html/rfc5280#section-4.2.1.4.
            { # An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages.
              &quot;objectIdPath&quot;: [ # Required. The parts of an OID path. The most significant parts of the path come first.
                42,
              ],
            },
          ],
        },
      },
      &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time at which this Certificate was created.
      &quot;issuerCertificateAuthority&quot;: &quot;A String&quot;, # Output only. The resource name of the issuing CertificateAuthority in the format `projects/*/locations/*/caPools/*/certificateAuthorities/*`.
      &quot;labels&quot;: { # Optional. Labels with user-defined metadata.
        &quot;a_key&quot;: &quot;A String&quot;,
      },
      &quot;lifetime&quot;: &quot;A String&quot;, # Required. Immutable. The desired lifetime of a certificate. Used to create the &quot;not_before_time&quot; and &quot;not_after_time&quot; fields inside an X.509 certificate. Note that the lifetime may be truncated if it would extend past the life of any certificate authority in the issuing chain.
      &quot;name&quot;: &quot;A String&quot;, # Output only. The resource name for this Certificate in the format `projects/*/locations/*/caPools/*/certificates/*`.
      &quot;pemCertificate&quot;: &quot;A String&quot;, # Output only. The pem-encoded, signed X.509 certificate.
      &quot;pemCertificateChain&quot;: [ # Output only. The chain that may be used to verify the X.509 certificate. Expected to be in issuer-to-root order according to RFC 5246.
        &quot;A String&quot;,
      ],
      &quot;pemCsr&quot;: &quot;A String&quot;, # Immutable. A pem-encoded X.509 certificate signing request (CSR).
      &quot;revocationDetails&quot;: { # Describes fields that are relavent to the revocation of a Certificate. # Output only. Details regarding the revocation of this Certificate. This Certificate is considered revoked if and only if this field is present.
        &quot;revocationState&quot;: &quot;A String&quot;, # Indicates why a Certificate was revoked.
        &quot;revocationTime&quot;: &quot;A String&quot;, # The time at which this Certificate was revoked.
      },
      &quot;subjectMode&quot;: &quot;A String&quot;, # Immutable. Specifies how the Certificate&#x27;s identity fields are to be decided. If this is omitted, the `DEFAULT` subject mode will be used.
      &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time at which this Certificate was updated.
    },
  ],
  &quot;nextPageToken&quot;: &quot;A String&quot;, # A token to retrieve next page of results. Pass this value in ListCertificatesRequest.next_page_token to retrieve the next page of results.
  &quot;unreachable&quot;: [ # A list of locations (e.g. &quot;us-west1&quot;) that could not be reached.
    &quot;A String&quot;,
  ],
}</pre>
</div>

<div class="method">
    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
  <pre>Retrieves the next page of results.

Args:
  previous_request: The request for the previous page. (required)
  previous_response: The response from the request for the previous page. (required)

Returns:
  A request object that you can call &#x27;execute()&#x27; on to request the next
  page. Returns None if there are no more items in the collection.
    </pre>
</div>

<div class="method">
    <code class="details" id="patch">patch(name, body=None, requestId=None, updateMask=None, x__xgafv=None)</code>
  <pre>Update a Certificate. Currently, the only field you can update is the labels field.

Args:
  name: string, Output only. The resource name for this Certificate in the format `projects/*/locations/*/caPools/*/certificates/*`. (required)
  body: object, The request body.
    The object takes the form of:

{ # A Certificate corresponds to a signed X.509 certificate issued by a CertificateAuthority.
  &quot;certificateDescription&quot;: { # A CertificateDescription describes an X.509 certificate or CSR that has been issued, as an alternative to using ASN.1 / X.509. # Output only. A structured description of the issued X.509 certificate.
    &quot;aiaIssuingCertificateUrls&quot;: [ # Describes lists of issuer CA certificate URLs that appear in the &quot;Authority Information Access&quot; extension in the certificate.
      &quot;A String&quot;,
    ],
    &quot;authorityKeyId&quot;: { # A KeyId identifies a specific public key, usually by hashing the public key. # Identifies the subject_key_id of the parent certificate, per https://tools.ietf.org/html/rfc5280#section-4.2.1.1
      &quot;keyId&quot;: &quot;A String&quot;, # Optional. The value of this KeyId encoded in lowercase hexadecimal. This is most likely the 160 bit SHA-1 hash of the public key.
    },
    &quot;certFingerprint&quot;: { # A group of fingerprints for the x509 certificate. # The hash of the x.509 certificate.
      &quot;sha256Hash&quot;: &quot;A String&quot;, # The SHA 256 hash, encoded in hexadecimal, of the DER x509 certificate.
    },
    &quot;crlDistributionPoints&quot;: [ # 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
      &quot;A String&quot;,
    ],
    &quot;publicKey&quot;: { # A PublicKey describes a public key. # The public key that corresponds to an issued certificate.
      &quot;format&quot;: &quot;A String&quot;, # Required. The format of the public key.
      &quot;key&quot;: &quot;A String&quot;, # Required. A public key. The padding and encoding must match with the `KeyFormat` value specified for the `format` field.
    },
    &quot;subjectDescription&quot;: { # These values describe fields in an issued X.509 certificate such as the distinguished name, subject alternative names, serial number, and lifetime. # Describes some of the values in a certificate that are related to the subject and lifetime.
      &quot;hexSerialNumber&quot;: &quot;A String&quot;, # The serial number encoded in lowercase hexadecimal.
      &quot;lifetime&quot;: &quot;A String&quot;, # For convenience, the actual lifetime of an issued certificate.
      &quot;notAfterTime&quot;: &quot;A String&quot;, # The time after which the certificate is expired. Per RFC 5280, the validity period for a certificate is the period of time from not_before_time through not_after_time, inclusive. Corresponds to &#x27;not_before_time&#x27; + &#x27;lifetime&#x27; - 1 second.
      &quot;notBeforeTime&quot;: &quot;A String&quot;, # The time at which the certificate becomes valid.
      &quot;subject&quot;: { # Subject describes parts of a distinguished name that, in turn, describes the subject of the certificate. # Contains distinguished name fields such as the common name, location and / organization.
        &quot;commonName&quot;: &quot;A String&quot;, # The &quot;common name&quot; of the subject.
        &quot;countryCode&quot;: &quot;A String&quot;, # The country code of the subject.
        &quot;locality&quot;: &quot;A String&quot;, # The locality or city of the subject.
        &quot;organization&quot;: &quot;A String&quot;, # The organization of the subject.
        &quot;organizationalUnit&quot;: &quot;A String&quot;, # The organizational_unit of the subject.
        &quot;postalCode&quot;: &quot;A String&quot;, # The postal code of the subject.
        &quot;province&quot;: &quot;A String&quot;, # The province, territory, or regional state of the subject.
        &quot;streetAddress&quot;: &quot;A String&quot;, # The street address of the subject.
      },
      &quot;subjectAltName&quot;: { # SubjectAltNames corresponds to a more modern way of listing what the asserted identity is in a certificate (i.e., compared to the &quot;common name&quot; in the distinguished name). # The subject alternative name fields.
        &quot;customSans&quot;: [ # Contains additional subject alternative name values. For each custom_san, the `value` field must contain an ASN.1 encoded UTF8String.
          { # An X509Extension specifies an X.509 extension, which may be used in different parts of X.509 objects like certificates, CSRs, and CRLs.
            &quot;critical&quot;: True or False, # Optional. 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).
            &quot;objectId&quot;: { # An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages. # Required. The OID for this X.509 extension.
              &quot;objectIdPath&quot;: [ # Required. The parts of an OID path. The most significant parts of the path come first.
                42,
              ],
            },
            &quot;value&quot;: &quot;A String&quot;, # Required. The value of this X.509 extension.
          },
        ],
        &quot;dnsNames&quot;: [ # Contains only valid, fully-qualified host names.
          &quot;A String&quot;,
        ],
        &quot;emailAddresses&quot;: [ # Contains only valid RFC 2822 E-mail addresses.
          &quot;A String&quot;,
        ],
        &quot;ipAddresses&quot;: [ # Contains only valid 32-bit IPv4 addresses or RFC 4291 IPv6 addresses.
          &quot;A String&quot;,
        ],
        &quot;uris&quot;: [ # Contains only valid RFC 3986 URIs.
          &quot;A String&quot;,
        ],
      },
    },
    &quot;subjectKeyId&quot;: { # A KeyId identifies a specific public key, usually by hashing the public key. # Provides a means of identifiying certificates that contain a particular public key, per https://tools.ietf.org/html/rfc5280#section-4.2.1.2.
      &quot;keyId&quot;: &quot;A String&quot;, # Optional. The value of this KeyId encoded in lowercase hexadecimal. This is most likely the 160 bit SHA-1 hash of the public key.
    },
    &quot;x509Description&quot;: { # An X509Parameters is used to describe certain fields of an X.509 certificate, such as the key usage fields, fields specific to CA certificates, certificate policy extensions and custom extensions. # Describes some of the technical X.509 fields in a certificate.
      &quot;additionalExtensions&quot;: [ # Optional. Describes custom X.509 extensions.
        { # An X509Extension specifies an X.509 extension, which may be used in different parts of X.509 objects like certificates, CSRs, and CRLs.
          &quot;critical&quot;: True or False, # Optional. 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).
          &quot;objectId&quot;: { # An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages. # Required. The OID for this X.509 extension.
            &quot;objectIdPath&quot;: [ # Required. The parts of an OID path. The most significant parts of the path come first.
              42,
            ],
          },
          &quot;value&quot;: &quot;A String&quot;, # Required. The value of this X.509 extension.
        },
      ],
      &quot;aiaOcspServers&quot;: [ # Optional. Describes Online Certificate Status Protocol (OCSP) endpoint addresses that appear in the &quot;Authority Information Access&quot; extension in the certificate.
        &quot;A String&quot;,
      ],
      &quot;caOptions&quot;: { # Describes values that are relevant in a CA certificate. # Optional. Describes options in this X509Parameters that are relevant in a CA certificate.
        &quot;isCa&quot;: True or False, # Optional. Refers to the &quot;CA&quot; X.509 extension, which is a boolean value. When this value is missing, the extension will be omitted from the CA certificate.
        &quot;maxIssuerPathLength&quot;: 42, # Optional. Refers to the path length restriction X.509 extension. For a CA certificate, this value describes the depth of subordinate CA certificates that are allowed. If this value is less than 0, the request will fail. If this value is missing, the max path length will be omitted from the CA certificate.
      },
      &quot;keyUsage&quot;: { # A KeyUsage describes key usage values that may appear in an X.509 certificate. # Optional. Indicates the intended use for keys that correspond to a certificate.
        &quot;baseKeyUsage&quot;: { # KeyUsage.KeyUsageOptions corresponds to the key usage values described in https://tools.ietf.org/html/rfc5280#section-4.2.1.3. # Describes high-level ways in which a key may be used.
          &quot;certSign&quot;: True or False, # The key may be used to sign certificates.
          &quot;contentCommitment&quot;: True or False, # The key may be used for cryptographic commitments. Note that this may also be referred to as &quot;non-repudiation&quot;.
          &quot;crlSign&quot;: True or False, # The key may be used sign certificate revocation lists.
          &quot;dataEncipherment&quot;: True or False, # The key may be used to encipher data.
          &quot;decipherOnly&quot;: True or False, # The key may be used to decipher only.
          &quot;digitalSignature&quot;: True or False, # The key may be used for digital signatures.
          &quot;encipherOnly&quot;: True or False, # The key may be used to encipher only.
          &quot;keyAgreement&quot;: True or False, # The key may be used in a key agreement protocol.
          &quot;keyEncipherment&quot;: True or False, # The key may be used to encipher other keys.
        },
        &quot;extendedKeyUsage&quot;: { # KeyUsage.ExtendedKeyUsageOptions has fields that correspond to certain common OIDs that could be specified as an extended key usage value. # Detailed scenarios in which a key may be used.
          &quot;clientAuth&quot;: True or False, # Corresponds to OID 1.3.6.1.5.5.7.3.2. Officially described as &quot;TLS WWW client authentication&quot;, though regularly used for non-WWW TLS.
          &quot;codeSigning&quot;: True or False, # Corresponds to OID 1.3.6.1.5.5.7.3.3. Officially described as &quot;Signing of downloadable executable code client authentication&quot;.
          &quot;emailProtection&quot;: True or False, # Corresponds to OID 1.3.6.1.5.5.7.3.4. Officially described as &quot;Email protection&quot;.
          &quot;ocspSigning&quot;: True or False, # Corresponds to OID 1.3.6.1.5.5.7.3.9. Officially described as &quot;Signing OCSP responses&quot;.
          &quot;serverAuth&quot;: True or False, # Corresponds to OID 1.3.6.1.5.5.7.3.1. Officially described as &quot;TLS WWW server authentication&quot;, though regularly used for non-WWW TLS.
          &quot;timeStamping&quot;: True or False, # Corresponds to OID 1.3.6.1.5.5.7.3.8. Officially described as &quot;Binding the hash of an object to a time&quot;.
        },
        &quot;unknownExtendedKeyUsages&quot;: [ # Used to describe extended key usages that are not listed in the KeyUsage.ExtendedKeyUsageOptions message.
          { # An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages.
            &quot;objectIdPath&quot;: [ # Required. The parts of an OID path. The most significant parts of the path come first.
              42,
            ],
          },
        ],
      },
      &quot;policyIds&quot;: [ # Optional. Describes the X.509 certificate policy object identifiers, per https://tools.ietf.org/html/rfc5280#section-4.2.1.4.
        { # An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages.
          &quot;objectIdPath&quot;: [ # Required. The parts of an OID path. The most significant parts of the path come first.
            42,
          ],
        },
      ],
    },
  },
  &quot;certificateTemplate&quot;: &quot;A String&quot;, # Immutable. The resource name for a CertificateTemplate used to issue this certificate, in the format `projects/*/locations/*/certificateTemplates/*`. If this is specified, the caller must have the necessary permission to use this template. If this is omitted, no template will be used. This template must be in the same location as the Certificate.
  &quot;config&quot;: { # A CertificateConfig describes an X.509 certificate or CSR that is to be created, as an alternative to using ASN.1. # Immutable. A description of the certificate and key that does not require X.509 or ASN.1.
    &quot;publicKey&quot;: { # A PublicKey describes a public key. # Optional. The public key that corresponds to this config. This is, for example, used when issuing Certificates, but not when creating a self-signed CertificateAuthority or CertificateAuthority CSR.
      &quot;format&quot;: &quot;A String&quot;, # Required. The format of the public key.
      &quot;key&quot;: &quot;A String&quot;, # Required. A public key. The padding and encoding must match with the `KeyFormat` value specified for the `format` field.
    },
    &quot;subjectConfig&quot;: { # These values are used to create the distinguished name and subject alternative name fields in an X.509 certificate. # Required. Specifies some of the values in a certificate that are related to the subject.
      &quot;subject&quot;: { # Subject describes parts of a distinguished name that, in turn, describes the subject of the certificate. # Required. Contains distinguished name fields such as the common name, location and organization.
        &quot;commonName&quot;: &quot;A String&quot;, # The &quot;common name&quot; of the subject.
        &quot;countryCode&quot;: &quot;A String&quot;, # The country code of the subject.
        &quot;locality&quot;: &quot;A String&quot;, # The locality or city of the subject.
        &quot;organization&quot;: &quot;A String&quot;, # The organization of the subject.
        &quot;organizationalUnit&quot;: &quot;A String&quot;, # The organizational_unit of the subject.
        &quot;postalCode&quot;: &quot;A String&quot;, # The postal code of the subject.
        &quot;province&quot;: &quot;A String&quot;, # The province, territory, or regional state of the subject.
        &quot;streetAddress&quot;: &quot;A String&quot;, # The street address of the subject.
      },
      &quot;subjectAltName&quot;: { # SubjectAltNames corresponds to a more modern way of listing what the asserted identity is in a certificate (i.e., compared to the &quot;common name&quot; in the distinguished name). # Optional. The subject alternative name fields.
        &quot;customSans&quot;: [ # Contains additional subject alternative name values. For each custom_san, the `value` field must contain an ASN.1 encoded UTF8String.
          { # An X509Extension specifies an X.509 extension, which may be used in different parts of X.509 objects like certificates, CSRs, and CRLs.
            &quot;critical&quot;: True or False, # Optional. 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).
            &quot;objectId&quot;: { # An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages. # Required. The OID for this X.509 extension.
              &quot;objectIdPath&quot;: [ # Required. The parts of an OID path. The most significant parts of the path come first.
                42,
              ],
            },
            &quot;value&quot;: &quot;A String&quot;, # Required. The value of this X.509 extension.
          },
        ],
        &quot;dnsNames&quot;: [ # Contains only valid, fully-qualified host names.
          &quot;A String&quot;,
        ],
        &quot;emailAddresses&quot;: [ # Contains only valid RFC 2822 E-mail addresses.
          &quot;A String&quot;,
        ],
        &quot;ipAddresses&quot;: [ # Contains only valid 32-bit IPv4 addresses or RFC 4291 IPv6 addresses.
          &quot;A String&quot;,
        ],
        &quot;uris&quot;: [ # Contains only valid RFC 3986 URIs.
          &quot;A String&quot;,
        ],
      },
    },
    &quot;x509Config&quot;: { # An X509Parameters is used to describe certain fields of an X.509 certificate, such as the key usage fields, fields specific to CA certificates, certificate policy extensions and custom extensions. # Required. Describes how some of the technical X.509 fields in a certificate should be populated.
      &quot;additionalExtensions&quot;: [ # Optional. Describes custom X.509 extensions.
        { # An X509Extension specifies an X.509 extension, which may be used in different parts of X.509 objects like certificates, CSRs, and CRLs.
          &quot;critical&quot;: True or False, # Optional. 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).
          &quot;objectId&quot;: { # An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages. # Required. The OID for this X.509 extension.
            &quot;objectIdPath&quot;: [ # Required. The parts of an OID path. The most significant parts of the path come first.
              42,
            ],
          },
          &quot;value&quot;: &quot;A String&quot;, # Required. The value of this X.509 extension.
        },
      ],
      &quot;aiaOcspServers&quot;: [ # Optional. Describes Online Certificate Status Protocol (OCSP) endpoint addresses that appear in the &quot;Authority Information Access&quot; extension in the certificate.
        &quot;A String&quot;,
      ],
      &quot;caOptions&quot;: { # Describes values that are relevant in a CA certificate. # Optional. Describes options in this X509Parameters that are relevant in a CA certificate.
        &quot;isCa&quot;: True or False, # Optional. Refers to the &quot;CA&quot; X.509 extension, which is a boolean value. When this value is missing, the extension will be omitted from the CA certificate.
        &quot;maxIssuerPathLength&quot;: 42, # Optional. Refers to the path length restriction X.509 extension. For a CA certificate, this value describes the depth of subordinate CA certificates that are allowed. If this value is less than 0, the request will fail. If this value is missing, the max path length will be omitted from the CA certificate.
      },
      &quot;keyUsage&quot;: { # A KeyUsage describes key usage values that may appear in an X.509 certificate. # Optional. Indicates the intended use for keys that correspond to a certificate.
        &quot;baseKeyUsage&quot;: { # KeyUsage.KeyUsageOptions corresponds to the key usage values described in https://tools.ietf.org/html/rfc5280#section-4.2.1.3. # Describes high-level ways in which a key may be used.
          &quot;certSign&quot;: True or False, # The key may be used to sign certificates.
          &quot;contentCommitment&quot;: True or False, # The key may be used for cryptographic commitments. Note that this may also be referred to as &quot;non-repudiation&quot;.
          &quot;crlSign&quot;: True or False, # The key may be used sign certificate revocation lists.
          &quot;dataEncipherment&quot;: True or False, # The key may be used to encipher data.
          &quot;decipherOnly&quot;: True or False, # The key may be used to decipher only.
          &quot;digitalSignature&quot;: True or False, # The key may be used for digital signatures.
          &quot;encipherOnly&quot;: True or False, # The key may be used to encipher only.
          &quot;keyAgreement&quot;: True or False, # The key may be used in a key agreement protocol.
          &quot;keyEncipherment&quot;: True or False, # The key may be used to encipher other keys.
        },
        &quot;extendedKeyUsage&quot;: { # KeyUsage.ExtendedKeyUsageOptions has fields that correspond to certain common OIDs that could be specified as an extended key usage value. # Detailed scenarios in which a key may be used.
          &quot;clientAuth&quot;: True or False, # Corresponds to OID 1.3.6.1.5.5.7.3.2. Officially described as &quot;TLS WWW client authentication&quot;, though regularly used for non-WWW TLS.
          &quot;codeSigning&quot;: True or False, # Corresponds to OID 1.3.6.1.5.5.7.3.3. Officially described as &quot;Signing of downloadable executable code client authentication&quot;.
          &quot;emailProtection&quot;: True or False, # Corresponds to OID 1.3.6.1.5.5.7.3.4. Officially described as &quot;Email protection&quot;.
          &quot;ocspSigning&quot;: True or False, # Corresponds to OID 1.3.6.1.5.5.7.3.9. Officially described as &quot;Signing OCSP responses&quot;.
          &quot;serverAuth&quot;: True or False, # Corresponds to OID 1.3.6.1.5.5.7.3.1. Officially described as &quot;TLS WWW server authentication&quot;, though regularly used for non-WWW TLS.
          &quot;timeStamping&quot;: True or False, # Corresponds to OID 1.3.6.1.5.5.7.3.8. Officially described as &quot;Binding the hash of an object to a time&quot;.
        },
        &quot;unknownExtendedKeyUsages&quot;: [ # Used to describe extended key usages that are not listed in the KeyUsage.ExtendedKeyUsageOptions message.
          { # An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages.
            &quot;objectIdPath&quot;: [ # Required. The parts of an OID path. The most significant parts of the path come first.
              42,
            ],
          },
        ],
      },
      &quot;policyIds&quot;: [ # Optional. Describes the X.509 certificate policy object identifiers, per https://tools.ietf.org/html/rfc5280#section-4.2.1.4.
        { # An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages.
          &quot;objectIdPath&quot;: [ # Required. The parts of an OID path. The most significant parts of the path come first.
            42,
          ],
        },
      ],
    },
  },
  &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time at which this Certificate was created.
  &quot;issuerCertificateAuthority&quot;: &quot;A String&quot;, # Output only. The resource name of the issuing CertificateAuthority in the format `projects/*/locations/*/caPools/*/certificateAuthorities/*`.
  &quot;labels&quot;: { # Optional. Labels with user-defined metadata.
    &quot;a_key&quot;: &quot;A String&quot;,
  },
  &quot;lifetime&quot;: &quot;A String&quot;, # Required. Immutable. The desired lifetime of a certificate. Used to create the &quot;not_before_time&quot; and &quot;not_after_time&quot; fields inside an X.509 certificate. Note that the lifetime may be truncated if it would extend past the life of any certificate authority in the issuing chain.
  &quot;name&quot;: &quot;A String&quot;, # Output only. The resource name for this Certificate in the format `projects/*/locations/*/caPools/*/certificates/*`.
  &quot;pemCertificate&quot;: &quot;A String&quot;, # Output only. The pem-encoded, signed X.509 certificate.
  &quot;pemCertificateChain&quot;: [ # Output only. The chain that may be used to verify the X.509 certificate. Expected to be in issuer-to-root order according to RFC 5246.
    &quot;A String&quot;,
  ],
  &quot;pemCsr&quot;: &quot;A String&quot;, # Immutable. A pem-encoded X.509 certificate signing request (CSR).
  &quot;revocationDetails&quot;: { # Describes fields that are relavent to the revocation of a Certificate. # Output only. Details regarding the revocation of this Certificate. This Certificate is considered revoked if and only if this field is present.
    &quot;revocationState&quot;: &quot;A String&quot;, # Indicates why a Certificate was revoked.
    &quot;revocationTime&quot;: &quot;A String&quot;, # The time at which this Certificate was revoked.
  },
  &quot;subjectMode&quot;: &quot;A String&quot;, # Immutable. Specifies how the Certificate&#x27;s identity fields are to be decided. If this is omitted, the `DEFAULT` subject mode will be used.
  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time at which this Certificate was updated.
}

  requestId: string, Optional. An ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and t he request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).
  updateMask: string, Required. A list of fields to be updated in this request.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # A Certificate corresponds to a signed X.509 certificate issued by a CertificateAuthority.
  &quot;certificateDescription&quot;: { # A CertificateDescription describes an X.509 certificate or CSR that has been issued, as an alternative to using ASN.1 / X.509. # Output only. A structured description of the issued X.509 certificate.
    &quot;aiaIssuingCertificateUrls&quot;: [ # Describes lists of issuer CA certificate URLs that appear in the &quot;Authority Information Access&quot; extension in the certificate.
      &quot;A String&quot;,
    ],
    &quot;authorityKeyId&quot;: { # A KeyId identifies a specific public key, usually by hashing the public key. # Identifies the subject_key_id of the parent certificate, per https://tools.ietf.org/html/rfc5280#section-4.2.1.1
      &quot;keyId&quot;: &quot;A String&quot;, # Optional. The value of this KeyId encoded in lowercase hexadecimal. This is most likely the 160 bit SHA-1 hash of the public key.
    },
    &quot;certFingerprint&quot;: { # A group of fingerprints for the x509 certificate. # The hash of the x.509 certificate.
      &quot;sha256Hash&quot;: &quot;A String&quot;, # The SHA 256 hash, encoded in hexadecimal, of the DER x509 certificate.
    },
    &quot;crlDistributionPoints&quot;: [ # 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
      &quot;A String&quot;,
    ],
    &quot;publicKey&quot;: { # A PublicKey describes a public key. # The public key that corresponds to an issued certificate.
      &quot;format&quot;: &quot;A String&quot;, # Required. The format of the public key.
      &quot;key&quot;: &quot;A String&quot;, # Required. A public key. The padding and encoding must match with the `KeyFormat` value specified for the `format` field.
    },
    &quot;subjectDescription&quot;: { # These values describe fields in an issued X.509 certificate such as the distinguished name, subject alternative names, serial number, and lifetime. # Describes some of the values in a certificate that are related to the subject and lifetime.
      &quot;hexSerialNumber&quot;: &quot;A String&quot;, # The serial number encoded in lowercase hexadecimal.
      &quot;lifetime&quot;: &quot;A String&quot;, # For convenience, the actual lifetime of an issued certificate.
      &quot;notAfterTime&quot;: &quot;A String&quot;, # The time after which the certificate is expired. Per RFC 5280, the validity period for a certificate is the period of time from not_before_time through not_after_time, inclusive. Corresponds to &#x27;not_before_time&#x27; + &#x27;lifetime&#x27; - 1 second.
      &quot;notBeforeTime&quot;: &quot;A String&quot;, # The time at which the certificate becomes valid.
      &quot;subject&quot;: { # Subject describes parts of a distinguished name that, in turn, describes the subject of the certificate. # Contains distinguished name fields such as the common name, location and / organization.
        &quot;commonName&quot;: &quot;A String&quot;, # The &quot;common name&quot; of the subject.
        &quot;countryCode&quot;: &quot;A String&quot;, # The country code of the subject.
        &quot;locality&quot;: &quot;A String&quot;, # The locality or city of the subject.
        &quot;organization&quot;: &quot;A String&quot;, # The organization of the subject.
        &quot;organizationalUnit&quot;: &quot;A String&quot;, # The organizational_unit of the subject.
        &quot;postalCode&quot;: &quot;A String&quot;, # The postal code of the subject.
        &quot;province&quot;: &quot;A String&quot;, # The province, territory, or regional state of the subject.
        &quot;streetAddress&quot;: &quot;A String&quot;, # The street address of the subject.
      },
      &quot;subjectAltName&quot;: { # SubjectAltNames corresponds to a more modern way of listing what the asserted identity is in a certificate (i.e., compared to the &quot;common name&quot; in the distinguished name). # The subject alternative name fields.
        &quot;customSans&quot;: [ # Contains additional subject alternative name values. For each custom_san, the `value` field must contain an ASN.1 encoded UTF8String.
          { # An X509Extension specifies an X.509 extension, which may be used in different parts of X.509 objects like certificates, CSRs, and CRLs.
            &quot;critical&quot;: True or False, # Optional. 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).
            &quot;objectId&quot;: { # An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages. # Required. The OID for this X.509 extension.
              &quot;objectIdPath&quot;: [ # Required. The parts of an OID path. The most significant parts of the path come first.
                42,
              ],
            },
            &quot;value&quot;: &quot;A String&quot;, # Required. The value of this X.509 extension.
          },
        ],
        &quot;dnsNames&quot;: [ # Contains only valid, fully-qualified host names.
          &quot;A String&quot;,
        ],
        &quot;emailAddresses&quot;: [ # Contains only valid RFC 2822 E-mail addresses.
          &quot;A String&quot;,
        ],
        &quot;ipAddresses&quot;: [ # Contains only valid 32-bit IPv4 addresses or RFC 4291 IPv6 addresses.
          &quot;A String&quot;,
        ],
        &quot;uris&quot;: [ # Contains only valid RFC 3986 URIs.
          &quot;A String&quot;,
        ],
      },
    },
    &quot;subjectKeyId&quot;: { # A KeyId identifies a specific public key, usually by hashing the public key. # Provides a means of identifiying certificates that contain a particular public key, per https://tools.ietf.org/html/rfc5280#section-4.2.1.2.
      &quot;keyId&quot;: &quot;A String&quot;, # Optional. The value of this KeyId encoded in lowercase hexadecimal. This is most likely the 160 bit SHA-1 hash of the public key.
    },
    &quot;x509Description&quot;: { # An X509Parameters is used to describe certain fields of an X.509 certificate, such as the key usage fields, fields specific to CA certificates, certificate policy extensions and custom extensions. # Describes some of the technical X.509 fields in a certificate.
      &quot;additionalExtensions&quot;: [ # Optional. Describes custom X.509 extensions.
        { # An X509Extension specifies an X.509 extension, which may be used in different parts of X.509 objects like certificates, CSRs, and CRLs.
          &quot;critical&quot;: True or False, # Optional. 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).
          &quot;objectId&quot;: { # An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages. # Required. The OID for this X.509 extension.
            &quot;objectIdPath&quot;: [ # Required. The parts of an OID path. The most significant parts of the path come first.
              42,
            ],
          },
          &quot;value&quot;: &quot;A String&quot;, # Required. The value of this X.509 extension.
        },
      ],
      &quot;aiaOcspServers&quot;: [ # Optional. Describes Online Certificate Status Protocol (OCSP) endpoint addresses that appear in the &quot;Authority Information Access&quot; extension in the certificate.
        &quot;A String&quot;,
      ],
      &quot;caOptions&quot;: { # Describes values that are relevant in a CA certificate. # Optional. Describes options in this X509Parameters that are relevant in a CA certificate.
        &quot;isCa&quot;: True or False, # Optional. Refers to the &quot;CA&quot; X.509 extension, which is a boolean value. When this value is missing, the extension will be omitted from the CA certificate.
        &quot;maxIssuerPathLength&quot;: 42, # Optional. Refers to the path length restriction X.509 extension. For a CA certificate, this value describes the depth of subordinate CA certificates that are allowed. If this value is less than 0, the request will fail. If this value is missing, the max path length will be omitted from the CA certificate.
      },
      &quot;keyUsage&quot;: { # A KeyUsage describes key usage values that may appear in an X.509 certificate. # Optional. Indicates the intended use for keys that correspond to a certificate.
        &quot;baseKeyUsage&quot;: { # KeyUsage.KeyUsageOptions corresponds to the key usage values described in https://tools.ietf.org/html/rfc5280#section-4.2.1.3. # Describes high-level ways in which a key may be used.
          &quot;certSign&quot;: True or False, # The key may be used to sign certificates.
          &quot;contentCommitment&quot;: True or False, # The key may be used for cryptographic commitments. Note that this may also be referred to as &quot;non-repudiation&quot;.
          &quot;crlSign&quot;: True or False, # The key may be used sign certificate revocation lists.
          &quot;dataEncipherment&quot;: True or False, # The key may be used to encipher data.
          &quot;decipherOnly&quot;: True or False, # The key may be used to decipher only.
          &quot;digitalSignature&quot;: True or False, # The key may be used for digital signatures.
          &quot;encipherOnly&quot;: True or False, # The key may be used to encipher only.
          &quot;keyAgreement&quot;: True or False, # The key may be used in a key agreement protocol.
          &quot;keyEncipherment&quot;: True or False, # The key may be used to encipher other keys.
        },
        &quot;extendedKeyUsage&quot;: { # KeyUsage.ExtendedKeyUsageOptions has fields that correspond to certain common OIDs that could be specified as an extended key usage value. # Detailed scenarios in which a key may be used.
          &quot;clientAuth&quot;: True or False, # Corresponds to OID 1.3.6.1.5.5.7.3.2. Officially described as &quot;TLS WWW client authentication&quot;, though regularly used for non-WWW TLS.
          &quot;codeSigning&quot;: True or False, # Corresponds to OID 1.3.6.1.5.5.7.3.3. Officially described as &quot;Signing of downloadable executable code client authentication&quot;.
          &quot;emailProtection&quot;: True or False, # Corresponds to OID 1.3.6.1.5.5.7.3.4. Officially described as &quot;Email protection&quot;.
          &quot;ocspSigning&quot;: True or False, # Corresponds to OID 1.3.6.1.5.5.7.3.9. Officially described as &quot;Signing OCSP responses&quot;.
          &quot;serverAuth&quot;: True or False, # Corresponds to OID 1.3.6.1.5.5.7.3.1. Officially described as &quot;TLS WWW server authentication&quot;, though regularly used for non-WWW TLS.
          &quot;timeStamping&quot;: True or False, # Corresponds to OID 1.3.6.1.5.5.7.3.8. Officially described as &quot;Binding the hash of an object to a time&quot;.
        },
        &quot;unknownExtendedKeyUsages&quot;: [ # Used to describe extended key usages that are not listed in the KeyUsage.ExtendedKeyUsageOptions message.
          { # An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages.
            &quot;objectIdPath&quot;: [ # Required. The parts of an OID path. The most significant parts of the path come first.
              42,
            ],
          },
        ],
      },
      &quot;policyIds&quot;: [ # Optional. Describes the X.509 certificate policy object identifiers, per https://tools.ietf.org/html/rfc5280#section-4.2.1.4.
        { # An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages.
          &quot;objectIdPath&quot;: [ # Required. The parts of an OID path. The most significant parts of the path come first.
            42,
          ],
        },
      ],
    },
  },
  &quot;certificateTemplate&quot;: &quot;A String&quot;, # Immutable. The resource name for a CertificateTemplate used to issue this certificate, in the format `projects/*/locations/*/certificateTemplates/*`. If this is specified, the caller must have the necessary permission to use this template. If this is omitted, no template will be used. This template must be in the same location as the Certificate.
  &quot;config&quot;: { # A CertificateConfig describes an X.509 certificate or CSR that is to be created, as an alternative to using ASN.1. # Immutable. A description of the certificate and key that does not require X.509 or ASN.1.
    &quot;publicKey&quot;: { # A PublicKey describes a public key. # Optional. The public key that corresponds to this config. This is, for example, used when issuing Certificates, but not when creating a self-signed CertificateAuthority or CertificateAuthority CSR.
      &quot;format&quot;: &quot;A String&quot;, # Required. The format of the public key.
      &quot;key&quot;: &quot;A String&quot;, # Required. A public key. The padding and encoding must match with the `KeyFormat` value specified for the `format` field.
    },
    &quot;subjectConfig&quot;: { # These values are used to create the distinguished name and subject alternative name fields in an X.509 certificate. # Required. Specifies some of the values in a certificate that are related to the subject.
      &quot;subject&quot;: { # Subject describes parts of a distinguished name that, in turn, describes the subject of the certificate. # Required. Contains distinguished name fields such as the common name, location and organization.
        &quot;commonName&quot;: &quot;A String&quot;, # The &quot;common name&quot; of the subject.
        &quot;countryCode&quot;: &quot;A String&quot;, # The country code of the subject.
        &quot;locality&quot;: &quot;A String&quot;, # The locality or city of the subject.
        &quot;organization&quot;: &quot;A String&quot;, # The organization of the subject.
        &quot;organizationalUnit&quot;: &quot;A String&quot;, # The organizational_unit of the subject.
        &quot;postalCode&quot;: &quot;A String&quot;, # The postal code of the subject.
        &quot;province&quot;: &quot;A String&quot;, # The province, territory, or regional state of the subject.
        &quot;streetAddress&quot;: &quot;A String&quot;, # The street address of the subject.
      },
      &quot;subjectAltName&quot;: { # SubjectAltNames corresponds to a more modern way of listing what the asserted identity is in a certificate (i.e., compared to the &quot;common name&quot; in the distinguished name). # Optional. The subject alternative name fields.
        &quot;customSans&quot;: [ # Contains additional subject alternative name values. For each custom_san, the `value` field must contain an ASN.1 encoded UTF8String.
          { # An X509Extension specifies an X.509 extension, which may be used in different parts of X.509 objects like certificates, CSRs, and CRLs.
            &quot;critical&quot;: True or False, # Optional. 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).
            &quot;objectId&quot;: { # An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages. # Required. The OID for this X.509 extension.
              &quot;objectIdPath&quot;: [ # Required. The parts of an OID path. The most significant parts of the path come first.
                42,
              ],
            },
            &quot;value&quot;: &quot;A String&quot;, # Required. The value of this X.509 extension.
          },
        ],
        &quot;dnsNames&quot;: [ # Contains only valid, fully-qualified host names.
          &quot;A String&quot;,
        ],
        &quot;emailAddresses&quot;: [ # Contains only valid RFC 2822 E-mail addresses.
          &quot;A String&quot;,
        ],
        &quot;ipAddresses&quot;: [ # Contains only valid 32-bit IPv4 addresses or RFC 4291 IPv6 addresses.
          &quot;A String&quot;,
        ],
        &quot;uris&quot;: [ # Contains only valid RFC 3986 URIs.
          &quot;A String&quot;,
        ],
      },
    },
    &quot;x509Config&quot;: { # An X509Parameters is used to describe certain fields of an X.509 certificate, such as the key usage fields, fields specific to CA certificates, certificate policy extensions and custom extensions. # Required. Describes how some of the technical X.509 fields in a certificate should be populated.
      &quot;additionalExtensions&quot;: [ # Optional. Describes custom X.509 extensions.
        { # An X509Extension specifies an X.509 extension, which may be used in different parts of X.509 objects like certificates, CSRs, and CRLs.
          &quot;critical&quot;: True or False, # Optional. 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).
          &quot;objectId&quot;: { # An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages. # Required. The OID for this X.509 extension.
            &quot;objectIdPath&quot;: [ # Required. The parts of an OID path. The most significant parts of the path come first.
              42,
            ],
          },
          &quot;value&quot;: &quot;A String&quot;, # Required. The value of this X.509 extension.
        },
      ],
      &quot;aiaOcspServers&quot;: [ # Optional. Describes Online Certificate Status Protocol (OCSP) endpoint addresses that appear in the &quot;Authority Information Access&quot; extension in the certificate.
        &quot;A String&quot;,
      ],
      &quot;caOptions&quot;: { # Describes values that are relevant in a CA certificate. # Optional. Describes options in this X509Parameters that are relevant in a CA certificate.
        &quot;isCa&quot;: True or False, # Optional. Refers to the &quot;CA&quot; X.509 extension, which is a boolean value. When this value is missing, the extension will be omitted from the CA certificate.
        &quot;maxIssuerPathLength&quot;: 42, # Optional. Refers to the path length restriction X.509 extension. For a CA certificate, this value describes the depth of subordinate CA certificates that are allowed. If this value is less than 0, the request will fail. If this value is missing, the max path length will be omitted from the CA certificate.
      },
      &quot;keyUsage&quot;: { # A KeyUsage describes key usage values that may appear in an X.509 certificate. # Optional. Indicates the intended use for keys that correspond to a certificate.
        &quot;baseKeyUsage&quot;: { # KeyUsage.KeyUsageOptions corresponds to the key usage values described in https://tools.ietf.org/html/rfc5280#section-4.2.1.3. # Describes high-level ways in which a key may be used.
          &quot;certSign&quot;: True or False, # The key may be used to sign certificates.
          &quot;contentCommitment&quot;: True or False, # The key may be used for cryptographic commitments. Note that this may also be referred to as &quot;non-repudiation&quot;.
          &quot;crlSign&quot;: True or False, # The key may be used sign certificate revocation lists.
          &quot;dataEncipherment&quot;: True or False, # The key may be used to encipher data.
          &quot;decipherOnly&quot;: True or False, # The key may be used to decipher only.
          &quot;digitalSignature&quot;: True or False, # The key may be used for digital signatures.
          &quot;encipherOnly&quot;: True or False, # The key may be used to encipher only.
          &quot;keyAgreement&quot;: True or False, # The key may be used in a key agreement protocol.
          &quot;keyEncipherment&quot;: True or False, # The key may be used to encipher other keys.
        },
        &quot;extendedKeyUsage&quot;: { # KeyUsage.ExtendedKeyUsageOptions has fields that correspond to certain common OIDs that could be specified as an extended key usage value. # Detailed scenarios in which a key may be used.
          &quot;clientAuth&quot;: True or False, # Corresponds to OID 1.3.6.1.5.5.7.3.2. Officially described as &quot;TLS WWW client authentication&quot;, though regularly used for non-WWW TLS.
          &quot;codeSigning&quot;: True or False, # Corresponds to OID 1.3.6.1.5.5.7.3.3. Officially described as &quot;Signing of downloadable executable code client authentication&quot;.
          &quot;emailProtection&quot;: True or False, # Corresponds to OID 1.3.6.1.5.5.7.3.4. Officially described as &quot;Email protection&quot;.
          &quot;ocspSigning&quot;: True or False, # Corresponds to OID 1.3.6.1.5.5.7.3.9. Officially described as &quot;Signing OCSP responses&quot;.
          &quot;serverAuth&quot;: True or False, # Corresponds to OID 1.3.6.1.5.5.7.3.1. Officially described as &quot;TLS WWW server authentication&quot;, though regularly used for non-WWW TLS.
          &quot;timeStamping&quot;: True or False, # Corresponds to OID 1.3.6.1.5.5.7.3.8. Officially described as &quot;Binding the hash of an object to a time&quot;.
        },
        &quot;unknownExtendedKeyUsages&quot;: [ # Used to describe extended key usages that are not listed in the KeyUsage.ExtendedKeyUsageOptions message.
          { # An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages.
            &quot;objectIdPath&quot;: [ # Required. The parts of an OID path. The most significant parts of the path come first.
              42,
            ],
          },
        ],
      },
      &quot;policyIds&quot;: [ # Optional. Describes the X.509 certificate policy object identifiers, per https://tools.ietf.org/html/rfc5280#section-4.2.1.4.
        { # An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages.
          &quot;objectIdPath&quot;: [ # Required. The parts of an OID path. The most significant parts of the path come first.
            42,
          ],
        },
      ],
    },
  },
  &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time at which this Certificate was created.
  &quot;issuerCertificateAuthority&quot;: &quot;A String&quot;, # Output only. The resource name of the issuing CertificateAuthority in the format `projects/*/locations/*/caPools/*/certificateAuthorities/*`.
  &quot;labels&quot;: { # Optional. Labels with user-defined metadata.
    &quot;a_key&quot;: &quot;A String&quot;,
  },
  &quot;lifetime&quot;: &quot;A String&quot;, # Required. Immutable. The desired lifetime of a certificate. Used to create the &quot;not_before_time&quot; and &quot;not_after_time&quot; fields inside an X.509 certificate. Note that the lifetime may be truncated if it would extend past the life of any certificate authority in the issuing chain.
  &quot;name&quot;: &quot;A String&quot;, # Output only. The resource name for this Certificate in the format `projects/*/locations/*/caPools/*/certificates/*`.
  &quot;pemCertificate&quot;: &quot;A String&quot;, # Output only. The pem-encoded, signed X.509 certificate.
  &quot;pemCertificateChain&quot;: [ # Output only. The chain that may be used to verify the X.509 certificate. Expected to be in issuer-to-root order according to RFC 5246.
    &quot;A String&quot;,
  ],
  &quot;pemCsr&quot;: &quot;A String&quot;, # Immutable. A pem-encoded X.509 certificate signing request (CSR).
  &quot;revocationDetails&quot;: { # Describes fields that are relavent to the revocation of a Certificate. # Output only. Details regarding the revocation of this Certificate. This Certificate is considered revoked if and only if this field is present.
    &quot;revocationState&quot;: &quot;A String&quot;, # Indicates why a Certificate was revoked.
    &quot;revocationTime&quot;: &quot;A String&quot;, # The time at which this Certificate was revoked.
  },
  &quot;subjectMode&quot;: &quot;A String&quot;, # Immutable. Specifies how the Certificate&#x27;s identity fields are to be decided. If this is omitted, the `DEFAULT` subject mode will be used.
  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time at which this Certificate was updated.
}</pre>
</div>

<div class="method">
    <code class="details" id="revoke">revoke(name, body=None, x__xgafv=None)</code>
  <pre>Revoke a Certificate.

Args:
  name: string, Required. The resource name for this Certificate in the format `projects/*/locations/*/caPools/*/certificates/*`. (required)
  body: object, The request body.
    The object takes the form of:

{ # Request message for CertificateAuthorityService.RevokeCertificate.
  &quot;reason&quot;: &quot;A String&quot;, # Required. The RevocationReason for revoking this certificate.
  &quot;requestId&quot;: &quot;A String&quot;, # Optional. An ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and t he request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).
}

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # A Certificate corresponds to a signed X.509 certificate issued by a CertificateAuthority.
  &quot;certificateDescription&quot;: { # A CertificateDescription describes an X.509 certificate or CSR that has been issued, as an alternative to using ASN.1 / X.509. # Output only. A structured description of the issued X.509 certificate.
    &quot;aiaIssuingCertificateUrls&quot;: [ # Describes lists of issuer CA certificate URLs that appear in the &quot;Authority Information Access&quot; extension in the certificate.
      &quot;A String&quot;,
    ],
    &quot;authorityKeyId&quot;: { # A KeyId identifies a specific public key, usually by hashing the public key. # Identifies the subject_key_id of the parent certificate, per https://tools.ietf.org/html/rfc5280#section-4.2.1.1
      &quot;keyId&quot;: &quot;A String&quot;, # Optional. The value of this KeyId encoded in lowercase hexadecimal. This is most likely the 160 bit SHA-1 hash of the public key.
    },
    &quot;certFingerprint&quot;: { # A group of fingerprints for the x509 certificate. # The hash of the x.509 certificate.
      &quot;sha256Hash&quot;: &quot;A String&quot;, # The SHA 256 hash, encoded in hexadecimal, of the DER x509 certificate.
    },
    &quot;crlDistributionPoints&quot;: [ # 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
      &quot;A String&quot;,
    ],
    &quot;publicKey&quot;: { # A PublicKey describes a public key. # The public key that corresponds to an issued certificate.
      &quot;format&quot;: &quot;A String&quot;, # Required. The format of the public key.
      &quot;key&quot;: &quot;A String&quot;, # Required. A public key. The padding and encoding must match with the `KeyFormat` value specified for the `format` field.
    },
    &quot;subjectDescription&quot;: { # These values describe fields in an issued X.509 certificate such as the distinguished name, subject alternative names, serial number, and lifetime. # Describes some of the values in a certificate that are related to the subject and lifetime.
      &quot;hexSerialNumber&quot;: &quot;A String&quot;, # The serial number encoded in lowercase hexadecimal.
      &quot;lifetime&quot;: &quot;A String&quot;, # For convenience, the actual lifetime of an issued certificate.
      &quot;notAfterTime&quot;: &quot;A String&quot;, # The time after which the certificate is expired. Per RFC 5280, the validity period for a certificate is the period of time from not_before_time through not_after_time, inclusive. Corresponds to &#x27;not_before_time&#x27; + &#x27;lifetime&#x27; - 1 second.
      &quot;notBeforeTime&quot;: &quot;A String&quot;, # The time at which the certificate becomes valid.
      &quot;subject&quot;: { # Subject describes parts of a distinguished name that, in turn, describes the subject of the certificate. # Contains distinguished name fields such as the common name, location and / organization.
        &quot;commonName&quot;: &quot;A String&quot;, # The &quot;common name&quot; of the subject.
        &quot;countryCode&quot;: &quot;A String&quot;, # The country code of the subject.
        &quot;locality&quot;: &quot;A String&quot;, # The locality or city of the subject.
        &quot;organization&quot;: &quot;A String&quot;, # The organization of the subject.
        &quot;organizationalUnit&quot;: &quot;A String&quot;, # The organizational_unit of the subject.
        &quot;postalCode&quot;: &quot;A String&quot;, # The postal code of the subject.
        &quot;province&quot;: &quot;A String&quot;, # The province, territory, or regional state of the subject.
        &quot;streetAddress&quot;: &quot;A String&quot;, # The street address of the subject.
      },
      &quot;subjectAltName&quot;: { # SubjectAltNames corresponds to a more modern way of listing what the asserted identity is in a certificate (i.e., compared to the &quot;common name&quot; in the distinguished name). # The subject alternative name fields.
        &quot;customSans&quot;: [ # Contains additional subject alternative name values. For each custom_san, the `value` field must contain an ASN.1 encoded UTF8String.
          { # An X509Extension specifies an X.509 extension, which may be used in different parts of X.509 objects like certificates, CSRs, and CRLs.
            &quot;critical&quot;: True or False, # Optional. 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).
            &quot;objectId&quot;: { # An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages. # Required. The OID for this X.509 extension.
              &quot;objectIdPath&quot;: [ # Required. The parts of an OID path. The most significant parts of the path come first.
                42,
              ],
            },
            &quot;value&quot;: &quot;A String&quot;, # Required. The value of this X.509 extension.
          },
        ],
        &quot;dnsNames&quot;: [ # Contains only valid, fully-qualified host names.
          &quot;A String&quot;,
        ],
        &quot;emailAddresses&quot;: [ # Contains only valid RFC 2822 E-mail addresses.
          &quot;A String&quot;,
        ],
        &quot;ipAddresses&quot;: [ # Contains only valid 32-bit IPv4 addresses or RFC 4291 IPv6 addresses.
          &quot;A String&quot;,
        ],
        &quot;uris&quot;: [ # Contains only valid RFC 3986 URIs.
          &quot;A String&quot;,
        ],
      },
    },
    &quot;subjectKeyId&quot;: { # A KeyId identifies a specific public key, usually by hashing the public key. # Provides a means of identifiying certificates that contain a particular public key, per https://tools.ietf.org/html/rfc5280#section-4.2.1.2.
      &quot;keyId&quot;: &quot;A String&quot;, # Optional. The value of this KeyId encoded in lowercase hexadecimal. This is most likely the 160 bit SHA-1 hash of the public key.
    },
    &quot;x509Description&quot;: { # An X509Parameters is used to describe certain fields of an X.509 certificate, such as the key usage fields, fields specific to CA certificates, certificate policy extensions and custom extensions. # Describes some of the technical X.509 fields in a certificate.
      &quot;additionalExtensions&quot;: [ # Optional. Describes custom X.509 extensions.
        { # An X509Extension specifies an X.509 extension, which may be used in different parts of X.509 objects like certificates, CSRs, and CRLs.
          &quot;critical&quot;: True or False, # Optional. 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).
          &quot;objectId&quot;: { # An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages. # Required. The OID for this X.509 extension.
            &quot;objectIdPath&quot;: [ # Required. The parts of an OID path. The most significant parts of the path come first.
              42,
            ],
          },
          &quot;value&quot;: &quot;A String&quot;, # Required. The value of this X.509 extension.
        },
      ],
      &quot;aiaOcspServers&quot;: [ # Optional. Describes Online Certificate Status Protocol (OCSP) endpoint addresses that appear in the &quot;Authority Information Access&quot; extension in the certificate.
        &quot;A String&quot;,
      ],
      &quot;caOptions&quot;: { # Describes values that are relevant in a CA certificate. # Optional. Describes options in this X509Parameters that are relevant in a CA certificate.
        &quot;isCa&quot;: True or False, # Optional. Refers to the &quot;CA&quot; X.509 extension, which is a boolean value. When this value is missing, the extension will be omitted from the CA certificate.
        &quot;maxIssuerPathLength&quot;: 42, # Optional. Refers to the path length restriction X.509 extension. For a CA certificate, this value describes the depth of subordinate CA certificates that are allowed. If this value is less than 0, the request will fail. If this value is missing, the max path length will be omitted from the CA certificate.
      },
      &quot;keyUsage&quot;: { # A KeyUsage describes key usage values that may appear in an X.509 certificate. # Optional. Indicates the intended use for keys that correspond to a certificate.
        &quot;baseKeyUsage&quot;: { # KeyUsage.KeyUsageOptions corresponds to the key usage values described in https://tools.ietf.org/html/rfc5280#section-4.2.1.3. # Describes high-level ways in which a key may be used.
          &quot;certSign&quot;: True or False, # The key may be used to sign certificates.
          &quot;contentCommitment&quot;: True or False, # The key may be used for cryptographic commitments. Note that this may also be referred to as &quot;non-repudiation&quot;.
          &quot;crlSign&quot;: True or False, # The key may be used sign certificate revocation lists.
          &quot;dataEncipherment&quot;: True or False, # The key may be used to encipher data.
          &quot;decipherOnly&quot;: True or False, # The key may be used to decipher only.
          &quot;digitalSignature&quot;: True or False, # The key may be used for digital signatures.
          &quot;encipherOnly&quot;: True or False, # The key may be used to encipher only.
          &quot;keyAgreement&quot;: True or False, # The key may be used in a key agreement protocol.
          &quot;keyEncipherment&quot;: True or False, # The key may be used to encipher other keys.
        },
        &quot;extendedKeyUsage&quot;: { # KeyUsage.ExtendedKeyUsageOptions has fields that correspond to certain common OIDs that could be specified as an extended key usage value. # Detailed scenarios in which a key may be used.
          &quot;clientAuth&quot;: True or False, # Corresponds to OID 1.3.6.1.5.5.7.3.2. Officially described as &quot;TLS WWW client authentication&quot;, though regularly used for non-WWW TLS.
          &quot;codeSigning&quot;: True or False, # Corresponds to OID 1.3.6.1.5.5.7.3.3. Officially described as &quot;Signing of downloadable executable code client authentication&quot;.
          &quot;emailProtection&quot;: True or False, # Corresponds to OID 1.3.6.1.5.5.7.3.4. Officially described as &quot;Email protection&quot;.
          &quot;ocspSigning&quot;: True or False, # Corresponds to OID 1.3.6.1.5.5.7.3.9. Officially described as &quot;Signing OCSP responses&quot;.
          &quot;serverAuth&quot;: True or False, # Corresponds to OID 1.3.6.1.5.5.7.3.1. Officially described as &quot;TLS WWW server authentication&quot;, though regularly used for non-WWW TLS.
          &quot;timeStamping&quot;: True or False, # Corresponds to OID 1.3.6.1.5.5.7.3.8. Officially described as &quot;Binding the hash of an object to a time&quot;.
        },
        &quot;unknownExtendedKeyUsages&quot;: [ # Used to describe extended key usages that are not listed in the KeyUsage.ExtendedKeyUsageOptions message.
          { # An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages.
            &quot;objectIdPath&quot;: [ # Required. The parts of an OID path. The most significant parts of the path come first.
              42,
            ],
          },
        ],
      },
      &quot;policyIds&quot;: [ # Optional. Describes the X.509 certificate policy object identifiers, per https://tools.ietf.org/html/rfc5280#section-4.2.1.4.
        { # An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages.
          &quot;objectIdPath&quot;: [ # Required. The parts of an OID path. The most significant parts of the path come first.
            42,
          ],
        },
      ],
    },
  },
  &quot;certificateTemplate&quot;: &quot;A String&quot;, # Immutable. The resource name for a CertificateTemplate used to issue this certificate, in the format `projects/*/locations/*/certificateTemplates/*`. If this is specified, the caller must have the necessary permission to use this template. If this is omitted, no template will be used. This template must be in the same location as the Certificate.
  &quot;config&quot;: { # A CertificateConfig describes an X.509 certificate or CSR that is to be created, as an alternative to using ASN.1. # Immutable. A description of the certificate and key that does not require X.509 or ASN.1.
    &quot;publicKey&quot;: { # A PublicKey describes a public key. # Optional. The public key that corresponds to this config. This is, for example, used when issuing Certificates, but not when creating a self-signed CertificateAuthority or CertificateAuthority CSR.
      &quot;format&quot;: &quot;A String&quot;, # Required. The format of the public key.
      &quot;key&quot;: &quot;A String&quot;, # Required. A public key. The padding and encoding must match with the `KeyFormat` value specified for the `format` field.
    },
    &quot;subjectConfig&quot;: { # These values are used to create the distinguished name and subject alternative name fields in an X.509 certificate. # Required. Specifies some of the values in a certificate that are related to the subject.
      &quot;subject&quot;: { # Subject describes parts of a distinguished name that, in turn, describes the subject of the certificate. # Required. Contains distinguished name fields such as the common name, location and organization.
        &quot;commonName&quot;: &quot;A String&quot;, # The &quot;common name&quot; of the subject.
        &quot;countryCode&quot;: &quot;A String&quot;, # The country code of the subject.
        &quot;locality&quot;: &quot;A String&quot;, # The locality or city of the subject.
        &quot;organization&quot;: &quot;A String&quot;, # The organization of the subject.
        &quot;organizationalUnit&quot;: &quot;A String&quot;, # The organizational_unit of the subject.
        &quot;postalCode&quot;: &quot;A String&quot;, # The postal code of the subject.
        &quot;province&quot;: &quot;A String&quot;, # The province, territory, or regional state of the subject.
        &quot;streetAddress&quot;: &quot;A String&quot;, # The street address of the subject.
      },
      &quot;subjectAltName&quot;: { # SubjectAltNames corresponds to a more modern way of listing what the asserted identity is in a certificate (i.e., compared to the &quot;common name&quot; in the distinguished name). # Optional. The subject alternative name fields.
        &quot;customSans&quot;: [ # Contains additional subject alternative name values. For each custom_san, the `value` field must contain an ASN.1 encoded UTF8String.
          { # An X509Extension specifies an X.509 extension, which may be used in different parts of X.509 objects like certificates, CSRs, and CRLs.
            &quot;critical&quot;: True or False, # Optional. 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).
            &quot;objectId&quot;: { # An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages. # Required. The OID for this X.509 extension.
              &quot;objectIdPath&quot;: [ # Required. The parts of an OID path. The most significant parts of the path come first.
                42,
              ],
            },
            &quot;value&quot;: &quot;A String&quot;, # Required. The value of this X.509 extension.
          },
        ],
        &quot;dnsNames&quot;: [ # Contains only valid, fully-qualified host names.
          &quot;A String&quot;,
        ],
        &quot;emailAddresses&quot;: [ # Contains only valid RFC 2822 E-mail addresses.
          &quot;A String&quot;,
        ],
        &quot;ipAddresses&quot;: [ # Contains only valid 32-bit IPv4 addresses or RFC 4291 IPv6 addresses.
          &quot;A String&quot;,
        ],
        &quot;uris&quot;: [ # Contains only valid RFC 3986 URIs.
          &quot;A String&quot;,
        ],
      },
    },
    &quot;x509Config&quot;: { # An X509Parameters is used to describe certain fields of an X.509 certificate, such as the key usage fields, fields specific to CA certificates, certificate policy extensions and custom extensions. # Required. Describes how some of the technical X.509 fields in a certificate should be populated.
      &quot;additionalExtensions&quot;: [ # Optional. Describes custom X.509 extensions.
        { # An X509Extension specifies an X.509 extension, which may be used in different parts of X.509 objects like certificates, CSRs, and CRLs.
          &quot;critical&quot;: True or False, # Optional. 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).
          &quot;objectId&quot;: { # An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages. # Required. The OID for this X.509 extension.
            &quot;objectIdPath&quot;: [ # Required. The parts of an OID path. The most significant parts of the path come first.
              42,
            ],
          },
          &quot;value&quot;: &quot;A String&quot;, # Required. The value of this X.509 extension.
        },
      ],
      &quot;aiaOcspServers&quot;: [ # Optional. Describes Online Certificate Status Protocol (OCSP) endpoint addresses that appear in the &quot;Authority Information Access&quot; extension in the certificate.
        &quot;A String&quot;,
      ],
      &quot;caOptions&quot;: { # Describes values that are relevant in a CA certificate. # Optional. Describes options in this X509Parameters that are relevant in a CA certificate.
        &quot;isCa&quot;: True or False, # Optional. Refers to the &quot;CA&quot; X.509 extension, which is a boolean value. When this value is missing, the extension will be omitted from the CA certificate.
        &quot;maxIssuerPathLength&quot;: 42, # Optional. Refers to the path length restriction X.509 extension. For a CA certificate, this value describes the depth of subordinate CA certificates that are allowed. If this value is less than 0, the request will fail. If this value is missing, the max path length will be omitted from the CA certificate.
      },
      &quot;keyUsage&quot;: { # A KeyUsage describes key usage values that may appear in an X.509 certificate. # Optional. Indicates the intended use for keys that correspond to a certificate.
        &quot;baseKeyUsage&quot;: { # KeyUsage.KeyUsageOptions corresponds to the key usage values described in https://tools.ietf.org/html/rfc5280#section-4.2.1.3. # Describes high-level ways in which a key may be used.
          &quot;certSign&quot;: True or False, # The key may be used to sign certificates.
          &quot;contentCommitment&quot;: True or False, # The key may be used for cryptographic commitments. Note that this may also be referred to as &quot;non-repudiation&quot;.
          &quot;crlSign&quot;: True or False, # The key may be used sign certificate revocation lists.
          &quot;dataEncipherment&quot;: True or False, # The key may be used to encipher data.
          &quot;decipherOnly&quot;: True or False, # The key may be used to decipher only.
          &quot;digitalSignature&quot;: True or False, # The key may be used for digital signatures.
          &quot;encipherOnly&quot;: True or False, # The key may be used to encipher only.
          &quot;keyAgreement&quot;: True or False, # The key may be used in a key agreement protocol.
          &quot;keyEncipherment&quot;: True or False, # The key may be used to encipher other keys.
        },
        &quot;extendedKeyUsage&quot;: { # KeyUsage.ExtendedKeyUsageOptions has fields that correspond to certain common OIDs that could be specified as an extended key usage value. # Detailed scenarios in which a key may be used.
          &quot;clientAuth&quot;: True or False, # Corresponds to OID 1.3.6.1.5.5.7.3.2. Officially described as &quot;TLS WWW client authentication&quot;, though regularly used for non-WWW TLS.
          &quot;codeSigning&quot;: True or False, # Corresponds to OID 1.3.6.1.5.5.7.3.3. Officially described as &quot;Signing of downloadable executable code client authentication&quot;.
          &quot;emailProtection&quot;: True or False, # Corresponds to OID 1.3.6.1.5.5.7.3.4. Officially described as &quot;Email protection&quot;.
          &quot;ocspSigning&quot;: True or False, # Corresponds to OID 1.3.6.1.5.5.7.3.9. Officially described as &quot;Signing OCSP responses&quot;.
          &quot;serverAuth&quot;: True or False, # Corresponds to OID 1.3.6.1.5.5.7.3.1. Officially described as &quot;TLS WWW server authentication&quot;, though regularly used for non-WWW TLS.
          &quot;timeStamping&quot;: True or False, # Corresponds to OID 1.3.6.1.5.5.7.3.8. Officially described as &quot;Binding the hash of an object to a time&quot;.
        },
        &quot;unknownExtendedKeyUsages&quot;: [ # Used to describe extended key usages that are not listed in the KeyUsage.ExtendedKeyUsageOptions message.
          { # An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages.
            &quot;objectIdPath&quot;: [ # Required. The parts of an OID path. The most significant parts of the path come first.
              42,
            ],
          },
        ],
      },
      &quot;policyIds&quot;: [ # Optional. Describes the X.509 certificate policy object identifiers, per https://tools.ietf.org/html/rfc5280#section-4.2.1.4.
        { # An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages.
          &quot;objectIdPath&quot;: [ # Required. The parts of an OID path. The most significant parts of the path come first.
            42,
          ],
        },
      ],
    },
  },
  &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time at which this Certificate was created.
  &quot;issuerCertificateAuthority&quot;: &quot;A String&quot;, # Output only. The resource name of the issuing CertificateAuthority in the format `projects/*/locations/*/caPools/*/certificateAuthorities/*`.
  &quot;labels&quot;: { # Optional. Labels with user-defined metadata.
    &quot;a_key&quot;: &quot;A String&quot;,
  },
  &quot;lifetime&quot;: &quot;A String&quot;, # Required. Immutable. The desired lifetime of a certificate. Used to create the &quot;not_before_time&quot; and &quot;not_after_time&quot; fields inside an X.509 certificate. Note that the lifetime may be truncated if it would extend past the life of any certificate authority in the issuing chain.
  &quot;name&quot;: &quot;A String&quot;, # Output only. The resource name for this Certificate in the format `projects/*/locations/*/caPools/*/certificates/*`.
  &quot;pemCertificate&quot;: &quot;A String&quot;, # Output only. The pem-encoded, signed X.509 certificate.
  &quot;pemCertificateChain&quot;: [ # Output only. The chain that may be used to verify the X.509 certificate. Expected to be in issuer-to-root order according to RFC 5246.
    &quot;A String&quot;,
  ],
  &quot;pemCsr&quot;: &quot;A String&quot;, # Immutable. A pem-encoded X.509 certificate signing request (CSR).
  &quot;revocationDetails&quot;: { # Describes fields that are relavent to the revocation of a Certificate. # Output only. Details regarding the revocation of this Certificate. This Certificate is considered revoked if and only if this field is present.
    &quot;revocationState&quot;: &quot;A String&quot;, # Indicates why a Certificate was revoked.
    &quot;revocationTime&quot;: &quot;A String&quot;, # The time at which this Certificate was revoked.
  },
  &quot;subjectMode&quot;: &quot;A String&quot;, # Immutable. Specifies how the Certificate&#x27;s identity fields are to be decided. If this is omitted, the `DEFAULT` subject mode will be used.
  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time at which this Certificate was updated.
}</pre>
</div>

</body></html>