UNPKG

@pulumiverse/scaleway

Version:

A Pulumi package for creating and managing Scaleway cloud resources.

177 lines 6.79 kB
import * as pulumi from "@pulumi/pulumi"; import * as inputs from "./types/input"; import * as outputs from "./types/output"; /** * Creates and manages Scaleway Load Balancer certificates. * * For more information, see the [main documentation](https://www.scaleway.com/en/docs/load-balancer/how-to/add-certificate/) or [API documentation](https://www.scaleway.com/en/developers/api/load-balancer/zoned-api/#path-certificate). * * ## Example Usage * * ### Custom Certificate * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as scaleway from "@pulumiverse/scaleway"; * * const cert01 = new scaleway.loadbalancers.Certificate("cert01", { * lbId: lb01.id, * name: "custom-cert", * customCertificate: { * certificateChain: "CERTIFICATE_CHAIN_CONTENTS\n", * }, * }); * ``` * * ## Additional notes * * - Ensure that all domain names used in the configuration are pointing to the Load Balancer IP. * You can achieve this by creating a DNS record through Terraform pointing to the `ipAddress` property of the `lbBeta` entity. * - If there are any issues with the certificate, you will receive a `400` error from the `apply` operation. * Use `export TF_LOG=DEBUG` to view the exact problem returned by the API. * - Wildcards are not yet supported with Let's Encrypt. * - Use `lifecycle` instruction with `createBeforeDestroy = true` to permit correct certificate replacement and prevent a `400` error from the `apply` operation. * * ## Import * * Load Balancer certificates can be imported using the `{zone}/{id}`, e.g. * * ```sh * $ pulumi import scaleway:index/loadbalancerCertificate:LoadbalancerCertificate cert01 fr-par-1/11111111-1111-1111-1111-111111111111 * ``` * * @deprecated scaleway.index/loadbalancercertificate.LoadbalancerCertificate has been deprecated in favor of scaleway.loadbalancers/certificate.Certificate */ export declare class LoadbalancerCertificate extends pulumi.CustomResource { /** * Get an existing LoadbalancerCertificate 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 state Any extra arguments used during the lookup. * @param opts Optional settings to control the behavior of the CustomResource. */ static get(name: string, id: pulumi.Input<pulumi.ID>, state?: LoadbalancerCertificateState, opts?: pulumi.CustomResourceOptions): LoadbalancerCertificate; /** * Returns true if the given object is an instance of LoadbalancerCertificate. 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 LoadbalancerCertificate; /** * Main domain of the certificate */ readonly commonName: pulumi.Output<string>; /** * The custom type certificate type configuration */ readonly customCertificate: pulumi.Output<outputs.LoadbalancerCertificateCustomCertificate | undefined>; /** * The identifier (SHA-1) of the certificate */ readonly fingerprint: pulumi.Output<string>; /** * The load-balancer ID */ readonly lbId: pulumi.Output<string>; /** * The Let's Encrypt type certificate configuration */ readonly letsencrypt: pulumi.Output<outputs.LoadbalancerCertificateLetsencrypt | undefined>; /** * The name of the load-balancer certificate */ readonly name: pulumi.Output<string>; /** * The not valid after validity bound timestamp */ readonly notValidAfter: pulumi.Output<string>; /** * The not valid before validity bound timestamp */ readonly notValidBefore: pulumi.Output<string>; /** * Certificate status */ readonly status: pulumi.Output<string>; /** * The alternative domain names of the certificate */ readonly subjectAlternativeNames: pulumi.Output<string[]>; /** * Create a LoadbalancerCertificate 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. */ /** @deprecated scaleway.index/loadbalancercertificate.LoadbalancerCertificate has been deprecated in favor of scaleway.loadbalancers/certificate.Certificate */ constructor(name: string, args: LoadbalancerCertificateArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering LoadbalancerCertificate resources. */ export interface LoadbalancerCertificateState { /** * Main domain of the certificate */ commonName?: pulumi.Input<string | undefined>; /** * The custom type certificate type configuration */ customCertificate?: pulumi.Input<inputs.LoadbalancerCertificateCustomCertificate | undefined>; /** * The identifier (SHA-1) of the certificate */ fingerprint?: pulumi.Input<string | undefined>; /** * The load-balancer ID */ lbId?: pulumi.Input<string | undefined>; /** * The Let's Encrypt type certificate configuration */ letsencrypt?: pulumi.Input<inputs.LoadbalancerCertificateLetsencrypt | undefined>; /** * The name of the load-balancer certificate */ name?: pulumi.Input<string | undefined>; /** * The not valid after validity bound timestamp */ notValidAfter?: pulumi.Input<string | undefined>; /** * The not valid before validity bound timestamp */ notValidBefore?: pulumi.Input<string | undefined>; /** * Certificate status */ status?: pulumi.Input<string | undefined>; /** * The alternative domain names of the certificate */ subjectAlternativeNames?: pulumi.Input<pulumi.Input<string>[] | undefined>; } /** * The set of arguments for constructing a LoadbalancerCertificate resource. */ export interface LoadbalancerCertificateArgs { /** * The custom type certificate type configuration */ customCertificate?: pulumi.Input<inputs.LoadbalancerCertificateCustomCertificate | undefined>; /** * The load-balancer ID */ lbId: pulumi.Input<string>; /** * The Let's Encrypt type certificate configuration */ letsencrypt?: pulumi.Input<inputs.LoadbalancerCertificateLetsencrypt | undefined>; /** * The name of the load-balancer certificate */ name?: pulumi.Input<string | undefined>; } //# sourceMappingURL=loadbalancerCertificate.d.ts.map