import * as pulumi from "@pulumi/pulumi"; import * as inputs from "../../types/input"; import * as outputs from "../../types/output"; import * as enums from "../../types/enums"; /** * Create a new Certificate in a given Project, Location from a particular CaPool. * Auto-naming is currently not supported for this resource. * Note - this resource's API doesn't support deletion. When deleted, the resource will persist * on Google Cloud even though it will be deleted from Pulumi state. */ export declare class Certificate extends pulumi.CustomResource { /** * Get an existing Certificate resource's state with the given name, ID, and optional extra * properties used to qualify the lookup. * * @param name The _unique_ name of the resulting resource. * @param id The _unique_ provider ID of the resource to lookup. * @param opts Optional settings to control the behavior of the CustomResource. */ static get(name: string, id: pulumi.Input, opts?: pulumi.CustomResourceOptions): Certificate; /** * Returns true if the given object is an instance of Certificate. This is designed to work even * when multiple copies of the Pulumi SDK have been loaded into the same process. */ static isInstance(obj: any): obj is Certificate; readonly caPoolId: pulumi.Output; /** * A structured description of the issued X.509 certificate. */ readonly certificateDescription: pulumi.Output; /** * 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. */ readonly certificateId: pulumi.Output; /** * 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. */ readonly certificateTemplate: pulumi.Output; /** * Immutable. A description of the certificate and key that does not require X.509 or ASN.1. */ readonly config: pulumi.Output; /** * The time at which this Certificate was created. */ readonly createTime: pulumi.Output; /** * The resource name of the issuing CertificateAuthority in the format `projects/*/locations/*/caPools/*/certificateAuthorities/*`. */ readonly issuerCertificateAuthority: pulumi.Output; /** * 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 "projects/my-project/locations/us-central1/caPools/my-pool/certificateAuthorities/my-ca", you can set the parent to "projects/my-project/locations/us-central1/caPools/my-pool" and the issuing_certificate_authority_id to "my-ca". */ readonly issuingCertificateAuthorityId: pulumi.Output; /** * Optional. Labels with user-defined metadata. */ readonly labels: pulumi.Output<{ [key: string]: string; }>; /** * Immutable. The desired lifetime of a certificate. Used to create the "not_before_time" and "not_after_time" 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. */ readonly lifetime: pulumi.Output; readonly location: pulumi.Output; /** * The resource name for this Certificate in the format `projects/*/locations/*/caPools/*/certificates/*`. */ readonly name: pulumi.Output; /** * The pem-encoded, signed X.509 certificate. */ readonly pemCertificate: pulumi.Output; /** * The chain that may be used to verify the X.509 certificate. Expected to be in issuer-to-root order according to RFC 5246. */ readonly pemCertificateChain: pulumi.Output; /** * Immutable. A pem-encoded X.509 certificate signing request (CSR). */ readonly pemCsr: pulumi.Output; readonly project: pulumi.Output; /** * 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). */ readonly requestId: pulumi.Output; /** * Details regarding the revocation of this Certificate. This Certificate is considered revoked if and only if this field is present. */ readonly revocationDetails: pulumi.Output; /** * Immutable. Specifies how the Certificate's identity fields are to be decided. If this is omitted, the `DEFAULT` subject mode will be used. */ readonly subjectMode: pulumi.Output; /** * The time at which this Certificate was updated. */ readonly updateTime: pulumi.Output; /** * Create a Certificate resource with the given unique name, arguments, and options. * * @param name The _unique_ name of the resource. * @param args The arguments to use to populate this resource's properties. * @param opts A bag of options that control this resource's behavior. */ constructor(name: string, args: CertificateArgs, opts?: pulumi.CustomResourceOptions); } /** * The set of arguments for constructing a Certificate resource. */ export interface CertificateArgs { caPoolId: pulumi.Input; /** * 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. */ certificateId?: pulumi.Input; /** * 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. */ certificateTemplate?: pulumi.Input; /** * Immutable. A description of the certificate and key that does not require X.509 or ASN.1. */ config?: pulumi.Input; /** * 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 "projects/my-project/locations/us-central1/caPools/my-pool/certificateAuthorities/my-ca", you can set the parent to "projects/my-project/locations/us-central1/caPools/my-pool" and the issuing_certificate_authority_id to "my-ca". */ issuingCertificateAuthorityId?: pulumi.Input; /** * Optional. Labels with user-defined metadata. */ labels?: pulumi.Input<{ [key: string]: pulumi.Input; }>; /** * Immutable. The desired lifetime of a certificate. Used to create the "not_before_time" and "not_after_time" 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. */ lifetime: pulumi.Input; location?: pulumi.Input; /** * Immutable. A pem-encoded X.509 certificate signing request (CSR). */ pemCsr?: pulumi.Input; project?: pulumi.Input; /** * 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). */ requestId?: pulumi.Input; /** * Immutable. Specifies how the Certificate's identity fields are to be decided. If this is omitted, the `DEFAULT` subject mode will be used. */ subjectMode?: pulumi.Input; }