// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***

using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
using Pulumi;

namespace TencentCloudIAC.PulumiPackage.Tencentcloud.Ssl.Inputs
{

    public sealed class PayCertificateInformationArgs : Pulumi.ResourceArgs
    {
        /// <summary>
        /// The administrator's email address.
        /// </summary>
        [Input("adminEmail", required: true)]
        public Input<string> AdminEmail { get; set; } = null!;

        /// <summary>
        /// The first name of the administrator.
        /// </summary>
        [Input("adminFirstName", required: true)]
        public Input<string> AdminFirstName { get; set; } = null!;

        /// <summary>
        /// The last name of the administrator.
        /// </summary>
        [Input("adminLastName", required: true)]
        public Input<string> AdminLastName { get; set; } = null!;

        /// <summary>
        /// Manager mobile phone number.
        /// </summary>
        [Input("adminPhoneNum", required: true)]
        public Input<string> AdminPhoneNum { get; set; } = null!;

        /// <summary>
        /// Manager position.
        /// </summary>
        [Input("adminPosition", required: true)]
        public Input<string> AdminPosition { get; set; } = null!;

        /// <summary>
        /// Domain name for binding certificate.
        /// </summary>
        [Input("certificateDomain", required: true)]
        public Input<string> CertificateDomain { get; set; } = null!;

        /// <summary>
        /// Contact email address.
        /// </summary>
        [Input("contactEmail", required: true)]
        public Input<string> ContactEmail { get; set; } = null!;

        /// <summary>
        /// Contact first name.
        /// </summary>
        [Input("contactFirstName", required: true)]
        public Input<string> ContactFirstName { get; set; } = null!;

        /// <summary>
        /// Contact last name.
        /// </summary>
        [Input("contactLastName", required: true)]
        public Input<string> ContactLastName { get; set; } = null!;

        /// <summary>
        /// Contact phone number.
        /// </summary>
        [Input("contactNumber", required: true)]
        public Input<string> ContactNumber { get; set; } = null!;

        /// <summary>
        /// Contact position.
        /// </summary>
        [Input("contactPosition", required: true)]
        public Input<string> ContactPosition { get; set; } = null!;

        /// <summary>
        /// CSR content uploaded.
        /// </summary>
        [Input("csrContent")]
        public Input<string>? CsrContent { get; set; }

        /// <summary>
        /// CSR generation method. Valid values: `online`, `parse`. `online` means online generation, `parse` means manual upload.
        /// </summary>
        [Input("csrType")]
        public Input<string>? CsrType { get; set; }

        [Input("domainLists")]
        private InputList<string>? _domainLists;

        /// <summary>
        /// Array of uploaded domain names, multi-domain certificates can be uploaded.
        /// </summary>
        public InputList<string> DomainLists
        {
            get => _domainLists ?? (_domainLists = new InputList<string>());
            set => _domainLists = value;
        }

        /// <summary>
        /// Private key password.
        /// </summary>
        [Input("keyPassword")]
        public Input<string>? KeyPassword { get; set; }

        /// <summary>
        /// Company address.
        /// </summary>
        [Input("organizationAddress", required: true)]
        public Input<string> OrganizationAddress { get; set; } = null!;

        /// <summary>
        /// Company city.
        /// </summary>
        [Input("organizationCity", required: true)]
        public Input<string> OrganizationCity { get; set; } = null!;

        /// <summary>
        /// Country name, such as China: CN.
        /// </summary>
        [Input("organizationCountry", required: true)]
        public Input<string> OrganizationCountry { get; set; } = null!;

        /// <summary>
        /// Department name.
        /// </summary>
        [Input("organizationDivision", required: true)]
        public Input<string> OrganizationDivision { get; set; } = null!;

        /// <summary>
        /// Company name.
        /// </summary>
        [Input("organizationName", required: true)]
        public Input<string> OrganizationName { get; set; } = null!;

        /// <summary>
        /// The province where the company is located.
        /// </summary>
        [Input("organizationRegion", required: true)]
        public Input<string> OrganizationRegion { get; set; } = null!;

        /// <summary>
        /// Company landline area code.
        /// </summary>
        [Input("phoneAreaCode", required: true)]
        public Input<string> PhoneAreaCode { get; set; } = null!;

        /// <summary>
        /// Company landline number.
        /// </summary>
        [Input("phoneNumber", required: true)]
        public Input<string> PhoneNumber { get; set; } = null!;

        /// <summary>
        /// Company postal code.
        /// </summary>
        [Input("postalCode", required: true)]
        public Input<string> PostalCode { get; set; } = null!;

        /// <summary>
        /// Certificate verification method. Valid values: `DNS_AUTO`, `DNS`, `FILE`. `DNS_AUTO` means automatic DNS verification, this verification type is only supported for domain names resolved by Tencent Cloud and the resolution status is normal, `DNS` means manual DNS verification, `FILE` means file verification.
        /// </summary>
        [Input("verifyType", required: true)]
        public Input<string> VerifyType { get; set; } = null!;

        public PayCertificateInformationArgs()
        {
        }
    }
}
