Create a CaPool.

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-ca-pools-create ...

Required Scalar Argument

  • <parent> (string)
    • Required. The resource name of the location associated with the CaPool, 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:

CaPool:
  issuance-policy:
    allowed-issuance-modes:
      allow-config-based-issuance: boolean
      allow-csr-based-issuance: boolean
    baseline-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]
    identity-constraints:
      allow-subject-alt-names-passthrough: boolean
      allow-subject-passthrough: boolean
      cel-expression:
        description: string
        expression: string
        location: string
        title: string
    maximum-lifetime: string
    passthrough-extensions:
      known-extensions: [string]
  labels: { string: string }
  name: string
  publishing-options:
    encoding-format: string
    publish-ca-cert: boolean
    publish-crl: boolean
  tier: 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 .issuance-policy.allowed-issuance-modes allow-config-based-issuance=true
    • Optional. When true, allows callers to create Certificates by specifying a CertificateConfig.
  • allow-csr-based-issuance=false

    • Optional. When true, allows callers to create Certificates by specifying a CSR.
  • ..baseline-values aia-ocsp-servers=invidunt

    • 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=false
    • 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=89

    • 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=false

    • The key may be used to sign certificates.
  • content-commitment=true
    • 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=true
    • The key may be used to decipher only.
  • digital-signature=false
    • The key may be used for digital signatures.
  • encipher-only=false
    • 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=true
    • Corresponds to OID 1.3.6.1.5.5.7.3.4. Officially described as "Email protection".
  • ocsp-signing=false
    • 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=true

    • 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=lorem
    • 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=dolor
    • 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=amet
    • 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=magna
    • 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=magna
    • 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=invidunt
    • 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=et
    • 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.
  • ...identity-constraints allow-subject-alt-names-passthrough=true

    • 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=false
    • 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=dolore
    • Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
  • expression=vero
    • Textual representation of an expression in Common Expression Language syntax.
  • location=ea
    • Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
  • title=et

    • 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.
  • ... maximum-lifetime=amet.

    • Optional. The maximum lifetime allowed 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.
  • passthrough-extensions known-extensions=eirmod

    • 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.
  • ... labels=key=sanctus

    • Optional. Labels with user-defined metadata.
    • the value will be associated with the given key
  • name=sed
    • Output only. The resource name for this CaPool in the format projects/*/locations/*/caPools/*.
  • publishing-options encoding-format=dolor
    • Optional. Specifies the encoding format of each CertificateAuthority's CA certificate and CRLs. If this is omitted, CA certificates and CRLs will be published in PEM.
  • publish-ca-cert=false
    • Optional. When true, publishes each CertificateAuthority's CA certificate and includes its URL in the "Authority Information Access" X.509 extension in all issued Certificates. If this is false, the CA certificate will not be published and the corresponding X.509 extension will not be written in issued certificates.
  • publish-crl=false

    • Optional. When true, publishes each CertificateAuthority's CRL and includes its URL in the "CRL Distribution Points" X.509 extension in all issued Certificates. If this is false, CRLs will not be published and the corresponding X.509 extension will not be written in issued certificates. CRLs will expire 7 days from their creation. However, we will rebuild daily. CRLs are also rebuilt shortly after a certificate is revoked.
  • .. tier=eos

    • Required. Immutable. The Tier of this CaPool.

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 ca-pool-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").