Create a new CertificateTemplate in a given Project and Location.

Scopes

You will need authorization for the https://www.googleapis.com/auth/cloud-platform scope to make a valid call.

If unset, the scope for this method defaults to https://www.googleapis.com/auth/cloud-platform. You can set the scope for this method like this: privateca1 --scope <scope> projects locations-certificate-templates-create ...

Required Scalar Argument

  • <parent> (string)
    • Required. The resource name of the location associated with the CertificateTemplate, in the format projects/*/locations/*.

Required Request Value

The request value is a data-structure with various fields. Each field may be a simple scalar or another data-structure. In the latter case it is advised to set the field-cursor to the data-structure's field to specify values more concisely.

For example, a structure like this:

CertificateTemplate:
  create-time: string
  description: string
  identity-constraints:
    allow-subject-alt-names-passthrough: boolean
    allow-subject-passthrough: boolean
    cel-expression:
      description: string
      expression: string
      location: string
      title: string
  labels: { string: string }
  maximum-lifetime: string
  name: string
  passthrough-extensions:
    known-extensions: [string]
  predefined-values:
    aia-ocsp-servers: [string]
    ca-options:
      is-ca: boolean
      max-issuer-path-length: integer
    key-usage:
      base-key-usage:
        cert-sign: boolean
        content-commitment: boolean
        crl-sign: boolean
        data-encipherment: boolean
        decipher-only: boolean
        digital-signature: boolean
        encipher-only: boolean
        key-agreement: boolean
        key-encipherment: boolean
      extended-key-usage:
        client-auth: boolean
        code-signing: boolean
        email-protection: boolean
        ocsp-signing: boolean
        server-auth: boolean
        time-stamping: boolean
    name-constraints:
      critical: boolean
      excluded-dns-names: [string]
      excluded-email-addresses: [string]
      excluded-ip-ranges: [string]
      excluded-uris: [string]
      permitted-dns-names: [string]
      permitted-email-addresses: [string]
      permitted-ip-ranges: [string]
      permitted-uris: [string]
  update-time: string

can be set completely with the following arguments which are assumed to be executed in the given order. Note how the cursor position is adjusted to the respective structures, allowing simple field names to be used most of the time.

  • -r . create-time=sea
    • Output only. The time at which this CertificateTemplate was created.
  • description=clita
    • Optional. A human-readable description of scenarios this template is intended for.
  • identity-constraints allow-subject-alt-names-passthrough=false
    • Required. If this is true, the SubjectAltNames extension may be copied from a certificate request into the signed certificate. Otherwise, the requested SubjectAltNames will be discarded.
  • allow-subject-passthrough=true
    • Required. If this is true, the Subject field may be copied from a certificate request into the signed certificate. Otherwise, the requested Subject will be discarded.
  • cel-expression description=sit
    • Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
  • expression=sea
    • Textual representation of an expression in Common Expression Language syntax.
  • location=sanctus
    • Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
  • title=kasd

    • Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
  • ... labels=key=eirmod

    • Optional. Labels with user-defined metadata.
    • the value will be associated with the given key
  • maximum-lifetime=dolores
    • Optional. The maximum lifetime allowed for issued Certificates that use this template. If the issuing CaPool's IssuancePolicy specifies a maximum_lifetime the minimum of the two durations will be the maximum lifetime for issued Certificates. Note that if the issuing CertificateAuthority expires before a Certificate's requested maximum_lifetime, the effective lifetime will be explicitly truncated to match it.
  • name=aliquyam
    • Output only. The resource name for this CertificateTemplate in the format projects/*/locations/*/certificateTemplates/*.
  • passthrough-extensions known-extensions=dolor

    • Optional. A set of named X.509 extensions. Will be combined with additional_extensions to determine the full set of X.509 extensions.
    • Each invocation of this argument appends the given value to the array.
  • ..predefined-values aia-ocsp-servers=vero

    • Optional. Describes Online Certificate Status Protocol (OCSP) endpoint addresses that appear in the "Authority Information Access" extension in the certificate.
    • Each invocation of this argument appends the given value to the array.
  • ca-options is-ca=true
    • Optional. Refers to the "CA" X.509 extension, which is a boolean value. When this value is missing, the extension will be omitted from the CA certificate.
  • max-issuer-path-length=68

    • 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.
  • ..key-usage.base-key-usage cert-sign=true

    • The key may be used to sign certificates.
  • content-commitment=false
    • The key may be used for cryptographic commitments. Note that this may also be referred to as "non-repudiation".
  • crl-sign=true
    • The key may be used sign certificate revocation lists.
  • data-encipherment=false
    • The key may be used to encipher data.
  • decipher-only=false
    • The key may be used to decipher only.
  • digital-signature=true
    • The key may be used for digital signatures.
  • encipher-only=true
    • The key may be used to encipher only.
  • key-agreement=true
    • The key may be used in a key agreement protocol.
  • key-encipherment=true

    • The key may be used to encipher other keys.
  • ..extended-key-usage client-auth=false

    • Corresponds to OID 1.3.6.1.5.5.7.3.2. Officially described as "TLS WWW client authentication", though regularly used for non-WWW TLS.
  • code-signing=true
    • Corresponds to OID 1.3.6.1.5.5.7.3.3. Officially described as "Signing of downloadable executable code client authentication".
  • email-protection=false
    • Corresponds to OID 1.3.6.1.5.5.7.3.4. Officially described as "Email protection".
  • ocsp-signing=true
    • Corresponds to OID 1.3.6.1.5.5.7.3.9. Officially described as "Signing OCSP responses".
  • server-auth=false
    • Corresponds to OID 1.3.6.1.5.5.7.3.1. Officially described as "TLS WWW server authentication", though regularly used for non-WWW TLS.
  • time-stamping=false

    • Corresponds to OID 1.3.6.1.5.5.7.3.8. Officially described as "Binding the hash of an object to a time".
  • ...name-constraints critical=true

    • Indicates whether or not the name constraints are marked critical.
  • excluded-dns-names=est
    • Contains excluded DNS names. Any DNS name that can be constructed by simply adding zero or more labels to the left-hand side of the name satisfies the name constraint. For example, example.com, www.example.com, www.sub.example.com would satisfy example.com while example1.com does not.
    • Each invocation of this argument appends the given value to the array.
  • excluded-email-addresses=gubergren
    • Contains the excluded email addresses. The value can be a particular email address, a hostname to indicate all email addresses on that host or a domain with a leading period (e.g. .example.com) to indicate all email addresses in that domain.
    • Each invocation of this argument appends the given value to the array.
  • excluded-ip-ranges=eos
    • Contains the excluded IP ranges. For IPv4 addresses, the ranges are expressed using CIDR notation as specified in RFC 4632. For IPv6 addresses, the ranges are expressed in similar encoding as IPv4 addresses.
    • Each invocation of this argument appends the given value to the array.
  • excluded-uris=dolore
    • Contains the excluded URIs that apply to the host part of the name. The value can be a hostname or a domain with a leading period (like .example.com)
    • Each invocation of this argument appends the given value to the array.
  • permitted-dns-names=tempor
    • Contains permitted DNS names. Any DNS name that can be constructed by simply adding zero or more labels to the left-hand side of the name satisfies the name constraint. For example, example.com, www.example.com, www.sub.example.com would satisfy example.com while example1.com does not.
    • Each invocation of this argument appends the given value to the array.
  • permitted-email-addresses=stet
    • Contains the permitted email addresses. The value can be a particular email address, a hostname to indicate all email addresses on that host or a domain with a leading period (e.g. .example.com) to indicate all email addresses in that domain.
    • Each invocation of this argument appends the given value to the array.
  • permitted-ip-ranges=accusam
    • Contains the permitted IP ranges. For IPv4 addresses, the ranges are expressed using CIDR notation as specified in RFC 4632. For IPv6 addresses, the ranges are expressed in similar encoding as IPv4 addresses.
    • Each invocation of this argument appends the given value to the array.
  • permitted-uris=et

    • Contains the permitted URIs that apply to the host part of the name. The value can be a hostname or a domain with a leading period (like .example.com)
    • Each invocation of this argument appends the given value to the array.
  • ... update-time=dolor

    • Output only. The time at which this CertificateTemplate was updated.

About Cursors

The cursor position is key to comfortably set complex nested structures. The following rules apply:

  • The cursor position is always set relative to the current one, unless the field name starts with the . character. Fields can be nested such as in -r f.s.o .
  • The cursor position is set relative to the top-level structure if it starts with ., e.g. -r .s.s
  • You can also set nested fields without setting the cursor explicitly. For example, to set a value relative to the current cursor position, you would specify -r struct.sub_struct=bar.
  • You can move the cursor one level up by using ... Each additional . moves it up one additional level. E.g. ... would go three levels up.

Optional Output Flags

The method's return value a JSON encoded structure, which will be written to standard output by default.

  • -o out
    • out specifies the destination to which to write the server's result to. It will be a JSON-encoded structure. The destination may be - to indicate standard output, or a filepath that is to contain the received bytes. If unset, it defaults to standard output.

Optional Method Properties

You may set the following properties to further configure the call. Please note that -p is followed by one or more key-value-pairs, and is called like this -p k1=v1 k2=v2 even though the listing below repeats the -p for completeness.

  • -p certificate-template-id=string

    • Required. It must be unique within a location and match the regular expression [a-zA-Z0-9_-]{1,63}
  • -p request-id=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).

Optional General Properties

The following properties can configure any call, and are not specific to this method.

  • -p $-xgafv=string

    • V1 error format.
  • -p access-token=string

    • OAuth access token.
  • -p alt=string

    • Data format for response.
  • -p callback=string

    • JSONP
  • -p fields=string

    • Selector specifying which fields to include in a partial response.
  • -p key=string

    • API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.
  • -p oauth-token=string

    • OAuth 2.0 token for the current user.
  • -p pretty-print=boolean

    • Returns response with indentations and line breaks.
  • -p quota-user=string

    • Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.
  • -p upload-type=string

    • Legacy upload protocol for media (e.g. "media", "multipart").
  • -p upload-protocol=string

    • Upload protocol for media (e.g. "raw", "multipart").