import * as pulumi from "@pulumi/pulumi"; /** * This certificate can be used to secure custom domains on App Services (Windows and Linux) hosted on an App Service Plan of Basic and above (free and shared tiers are not supported). * * > **Note:** A certificate is valid for six months, and about a month before the certificate’s expiration date, App Services renews/rotates the certificate. This is managed by Azure and doesn't require this resource to be changed or reprovisioned. It will change the `thumbprint` computed attribute the next time the resource is refreshed after rotation occurs, so keep that in mind if you have any dependencies on this attribute directly. * * ## Example Usage * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as azure from "@pulumi/azure"; * import * as std from "@pulumi/std"; * * const exampleResourceGroup = new azure.core.ResourceGroup("example", { * name: "example-resources", * location: "West Europe", * }); * const example = azure.dns.getZoneOutput({ * name: "mydomain.com", * resourceGroupName: exampleResourceGroup.name, * }); * const examplePlan = new azure.appservice.Plan("example", { * name: "example-plan", * location: exampleResourceGroup.location, * resourceGroupName: exampleResourceGroup.name, * kind: "Linux", * reserved: true, * sku: { * tier: "Basic", * size: "B1", * }, * }); * const exampleAppService = new azure.appservice.AppService("example", { * name: "example-app", * location: exampleResourceGroup.location, * resourceGroupName: exampleResourceGroup.name, * appServicePlanId: examplePlan.id, * }); * const exampleTxtRecord = new azure.dns.TxtRecord("example", { * name: "asuid.mycustomhost.contoso.com", * zoneName: example.apply(example => example.name), * resourceGroupName: example.apply(example => example.resourceGroupName), * ttl: 300, * records: [{ * value: exampleAppService.customDomainVerificationId, * }], * }); * const exampleCNameRecord = new azure.dns.CNameRecord("example", { * name: "example-adcr", * zoneName: example.apply(example => example.name), * resourceGroupName: example.apply(example => example.resourceGroupName), * ttl: 300, * record: exampleAppService.defaultSiteHostname, * }); * const exampleCustomHostnameBinding = new azure.appservice.CustomHostnameBinding("example", { * hostname: std.joinOutput({ * separator: ".", * input: [ * exampleCNameRecord.name, * exampleCNameRecord.zoneName, * ], * }).apply(invoke => invoke.result), * appServiceName: exampleAppService.name, * resourceGroupName: exampleResourceGroup.name, * }); * const exampleManagedCertificate = new azure.appservice.ManagedCertificate("example", {customHostnameBindingId: exampleCustomHostnameBinding.id}); * const exampleCertificateBinding = new azure.appservice.CertificateBinding("example", { * hostnameBindingId: exampleCustomHostnameBinding.id, * certificateId: exampleManagedCertificate.id, * sslState: "SniEnabled", * }); * ``` * * ## Import * * App Service Managed Certificates can be imported using the `resource id`, e.g. * * ```sh * $ pulumi import azure:appservice/managedCertificate:ManagedCertificate example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resGroup1/providers/Microsoft.Web/certificates/customhost.contoso.com * ``` */ export declare class ManagedCertificate extends pulumi.CustomResource { /** * Get an existing ManagedCertificate 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, state?: ManagedCertificateState, opts?: pulumi.CustomResourceOptions): ManagedCertificate; /** * Returns true if the given object is an instance of ManagedCertificate. 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 ManagedCertificate; /** * The Canonical Name of the Certificate. */ readonly canonicalName: pulumi.Output; /** * The ID of the App Service Custom Hostname Binding for the Certificate. Changing this forces a new App Service Managed Certificate to be created. */ readonly customHostnameBindingId: pulumi.Output; /** * The expiration date of the Certificate. */ readonly expirationDate: pulumi.Output; /** * The friendly name of the Certificate. */ readonly friendlyName: pulumi.Output; /** * The list of Host Names for the Certificate. */ readonly hostNames: pulumi.Output; /** * The Start date for the Certificate. */ readonly issueDate: pulumi.Output; /** * The issuer of the Certificate. */ readonly issuer: pulumi.Output; /** * The Subject Name for the Certificate. */ readonly subjectName: pulumi.Output; /** * A mapping of tags which should be assigned to the App Service Managed Certificate. */ readonly tags: pulumi.Output<{ [key: string]: string; } | undefined>; /** * The Certificate Thumbprint. */ readonly thumbprint: pulumi.Output; /** * Create a ManagedCertificate 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: ManagedCertificateArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering ManagedCertificate resources. */ export interface ManagedCertificateState { /** * The Canonical Name of the Certificate. */ canonicalName?: pulumi.Input; /** * The ID of the App Service Custom Hostname Binding for the Certificate. Changing this forces a new App Service Managed Certificate to be created. */ customHostnameBindingId?: pulumi.Input; /** * The expiration date of the Certificate. */ expirationDate?: pulumi.Input; /** * The friendly name of the Certificate. */ friendlyName?: pulumi.Input; /** * The list of Host Names for the Certificate. */ hostNames?: pulumi.Input[]>; /** * The Start date for the Certificate. */ issueDate?: pulumi.Input; /** * The issuer of the Certificate. */ issuer?: pulumi.Input; /** * The Subject Name for the Certificate. */ subjectName?: pulumi.Input; /** * A mapping of tags which should be assigned to the App Service Managed Certificate. */ tags?: pulumi.Input<{ [key: string]: pulumi.Input; }>; /** * The Certificate Thumbprint. */ thumbprint?: pulumi.Input; } /** * The set of arguments for constructing a ManagedCertificate resource. */ export interface ManagedCertificateArgs { /** * The ID of the App Service Custom Hostname Binding for the Certificate. Changing this forces a new App Service Managed Certificate to be created. */ customHostnameBindingId: pulumi.Input; /** * A mapping of tags which should be assigned to the App Service Managed Certificate. */ tags?: pulumi.Input<{ [key: string]: pulumi.Input; }>; }