import * as pulumi from "@pulumi/pulumi";
import * as outputs from "../types/output";
/**
 * Use this data source to query detailed information of cdn domains
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as volcengine from "@pulumi/volcengine";
 * import * as volcengine from "@volcengine/pulumi";
 *
 * const fooCdnCertificate = new volcengine.cdn.CdnCertificate("fooCdnCertificate", {
 *     certificate: "",
 *     privateKey: "",
 *     desc: "tftest",
 *     source: "cdn_cert_hosting",
 * });
 * const fooCdnDomain = new volcengine.cdn.CdnDomain("fooCdnDomain", {
 *     domain: "tftest.byte-test.com",
 *     serviceType: "web",
 *     tags: [
 *         {
 *             key: "tfkey1",
 *             value: "tfvalue1",
 *         },
 *         {
 *             key: "tfkey2",
 *             value: "tfvalue2",
 *         },
 *     ],
 *     domainConfig: pulumi.jsonStringify({
 *         OriginProtocol: "https",
 *         Origin: [{
 *             OriginAction: {
 *                 OriginLines: [{
 *                     Address: "1.1.1.1",
 *                     HttpPort: "80",
 *                     HttpsPort: "443",
 *                     InstanceType: "ip",
 *                     OriginType: "primary",
 *                     PrivateBucketAccess: false,
 *                     Weight: "2",
 *                 }],
 *             },
 *         }],
 *         HTTPS: {
 *             CertInfo: {
 *                 CertId: fooCdnCertificate.id,
 *             },
 *             DisableHttp: false,
 *             HTTP2: true,
 *             Switch: true,
 *             Ocsp: false,
 *             TlsVersion: [
 *                 "tlsv1.1",
 *                 "tlsv1.2",
 *             ],
 *         },
 *     }),
 * });
 * const fooDomains = volcengine.cdn.getDomainsOutput({
 *     domain: fooCdnDomain.id,
 * });
 * ```
 */
export declare function getDomains(args?: GetDomainsArgs, opts?: pulumi.InvokeOptions): Promise<GetDomainsResult>;
/**
 * A collection of arguments for invoking getDomains.
 */
export interface GetDomainsArgs {
    /**
     * Search by specifying domain name keywords, with fuzzy matching.
     */
    domain?: string;
    /**
     * Specify HTTPS configuration to filter accelerated domains. The optional values for this parameter are as follows: `true`: Indicates that the accelerated domain has enabled HTTPS function.`false`: Indicates that the accelerated domain has not enabled HTTPS function.
     */
    https?: boolean;
    /**
     * Specify IPv6 configuration to filter accelerated domain names. The optional values for this parameter are as follows: `true`: Indicates that the accelerated domain name supports requests using IPv6 addresses.`false`: Indicates that the accelerated domain name does not support requests using IPv6 addresses.
     */
    ipv6?: boolean;
    /**
     * Configure the origin protocol for the accelerated domain.
     */
    originProtocol?: string;
    /**
     * File name where to save data source results.
     */
    outputFile?: string;
    /**
     * Specify a primary origin server for filtering accelerated domains.
     */
    primaryOrigin?: string;
    /**
     * The project name of the domain.
     */
    project?: string;
    /**
     * The business type of the domain name is indicated by this parameter. The possible values are: `download`: for file downloads. `web`: for web pages. `video`: for audio and video on demand.
     */
    serviceType?: string;
    /**
     * The status of the domain.
     */
    status?: string;
    /**
     * Filter by specified domain name tags, up to 10 tags can be specified. Each tag is entered as a string in the format of key:value.
     */
    tags?: string[];
}
/**
 * A collection of values returned by getDomains.
 */
export interface GetDomainsResult {
    /**
     * Search by specifying domain name keywords, with fuzzy matching.
     */
    readonly domain?: string;
    /**
     * The collection of query.
     */
    readonly domains: outputs.cdn.GetDomainsDomain[];
    /**
     * Specify HTTPS configuration to filter accelerated domains. The optional values for this parameter are as follows: `true`: Indicates that the accelerated domain has enabled HTTPS function.`false`: Indicates that the accelerated domain has not enabled HTTPS function.
     */
    readonly https?: boolean;
    /**
     * The provider-assigned unique ID for this managed resource.
     */
    readonly id: string;
    /**
     * Specify IPv6 configuration to filter accelerated domain names. The optional values for this parameter are as follows: `true`: Indicates that the accelerated domain name supports requests using IPv6 addresses.`false`: Indicates that the accelerated domain name does not support requests using IPv6 addresses.
     */
    readonly ipv6?: boolean;
    /**
     * Configure the origin protocol for the accelerated domain.
     */
    readonly originProtocol?: string;
    readonly outputFile?: string;
    /**
     * List of primary source servers to accelerate the domain name.
     */
    readonly primaryOrigin?: string;
    /**
     * The project name of the domain.
     */
    readonly project?: string;
    /**
     * The business type of the domain name is indicated by this parameter. The possible values are: `download`: for file downloads. `web`: for web pages. `video`: for audio and video on demand.
     */
    readonly serviceType?: string;
    /**
     * The status of the domain.
     */
    readonly status?: string;
    /**
     * Indicate the tags you have set for this domain name. You can set up to 10 tags.
     */
    readonly tags?: string[];
    /**
     * The total count of query.
     */
    readonly totalCount: number;
}
/**
 * Use this data source to query detailed information of cdn domains
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as volcengine from "@pulumi/volcengine";
 * import * as volcengine from "@volcengine/pulumi";
 *
 * const fooCdnCertificate = new volcengine.cdn.CdnCertificate("fooCdnCertificate", {
 *     certificate: "",
 *     privateKey: "",
 *     desc: "tftest",
 *     source: "cdn_cert_hosting",
 * });
 * const fooCdnDomain = new volcengine.cdn.CdnDomain("fooCdnDomain", {
 *     domain: "tftest.byte-test.com",
 *     serviceType: "web",
 *     tags: [
 *         {
 *             key: "tfkey1",
 *             value: "tfvalue1",
 *         },
 *         {
 *             key: "tfkey2",
 *             value: "tfvalue2",
 *         },
 *     ],
 *     domainConfig: pulumi.jsonStringify({
 *         OriginProtocol: "https",
 *         Origin: [{
 *             OriginAction: {
 *                 OriginLines: [{
 *                     Address: "1.1.1.1",
 *                     HttpPort: "80",
 *                     HttpsPort: "443",
 *                     InstanceType: "ip",
 *                     OriginType: "primary",
 *                     PrivateBucketAccess: false,
 *                     Weight: "2",
 *                 }],
 *             },
 *         }],
 *         HTTPS: {
 *             CertInfo: {
 *                 CertId: fooCdnCertificate.id,
 *             },
 *             DisableHttp: false,
 *             HTTP2: true,
 *             Switch: true,
 *             Ocsp: false,
 *             TlsVersion: [
 *                 "tlsv1.1",
 *                 "tlsv1.2",
 *             ],
 *         },
 *     }),
 * });
 * const fooDomains = volcengine.cdn.getDomainsOutput({
 *     domain: fooCdnDomain.id,
 * });
 * ```
 */
export declare function getDomainsOutput(args?: GetDomainsOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output<GetDomainsResult>;
/**
 * A collection of arguments for invoking getDomains.
 */
export interface GetDomainsOutputArgs {
    /**
     * Search by specifying domain name keywords, with fuzzy matching.
     */
    domain?: pulumi.Input<string>;
    /**
     * Specify HTTPS configuration to filter accelerated domains. The optional values for this parameter are as follows: `true`: Indicates that the accelerated domain has enabled HTTPS function.`false`: Indicates that the accelerated domain has not enabled HTTPS function.
     */
    https?: pulumi.Input<boolean>;
    /**
     * Specify IPv6 configuration to filter accelerated domain names. The optional values for this parameter are as follows: `true`: Indicates that the accelerated domain name supports requests using IPv6 addresses.`false`: Indicates that the accelerated domain name does not support requests using IPv6 addresses.
     */
    ipv6?: pulumi.Input<boolean>;
    /**
     * Configure the origin protocol for the accelerated domain.
     */
    originProtocol?: pulumi.Input<string>;
    /**
     * File name where to save data source results.
     */
    outputFile?: pulumi.Input<string>;
    /**
     * Specify a primary origin server for filtering accelerated domains.
     */
    primaryOrigin?: pulumi.Input<string>;
    /**
     * The project name of the domain.
     */
    project?: pulumi.Input<string>;
    /**
     * The business type of the domain name is indicated by this parameter. The possible values are: `download`: for file downloads. `web`: for web pages. `video`: for audio and video on demand.
     */
    serviceType?: pulumi.Input<string>;
    /**
     * The status of the domain.
     */
    status?: pulumi.Input<string>;
    /**
     * Filter by specified domain name tags, up to 10 tags can be specified. Each tag is entered as a string in the format of key:value.
     */
    tags?: pulumi.Input<pulumi.Input<string>[]>;
}
