import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
 * Provides a resource to manage tls topic
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as volcengine from "@volcengine/pulumi";
 *
 * const foo = new volcengine.tls.Topic("foo", {
 *     archiveTtl: 0,
 *     autoSplit: true,
 *     coldTtl: 30,
 *     description: "test-modify",
 *     enableHotTtl: true,
 *     enableTracking: true,
 *     encryptConf: {
 *         enable: true,
 *         encryptType: "default",
 *         userCmkInfo: {
 *             regionId: "cn-guilin-boe",
 *             trn: "trn:iam::2100xxxxx:role/ServiceRoleForTLS",
 *             userCmkId: "m_cn-guilin-boe_441a350d-b21c-4760-bd8e-01ec2bc5e58a",
 *         },
 *     },
 *     hotTtl: 30,
 *     logPublicIp: true,
 *     maxSplitShard: 10,
 *     projectId: "bdb87e4d-7dad-4b96-ac43-e1b09e9dc8ac",
 *     shardCount: 2,
 *     tags: [{
 *         key: "k1",
 *         value: "v1",
 *     }],
 *     timeFormat: "%Y-%m-%dT%H:%M:%S,%f",
 *     timeKey: "request_time",
 *     topicName: "tf-topic-with-encrypt",
 *     ttl: 60,
 * });
 * ```
 *
 * ## Import
 *
 * Tls Topic can be imported using the id, e.g.
 *
 * ```sh
 * $ pulumi import volcengine:tls/topic:Topic default edf051ed-3c46-49ba-9339-bea628fe****
 * ```
 */
export declare class Topic extends pulumi.CustomResource {
    /**
     * Get an existing Topic 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?: TopicState, opts?: pulumi.CustomResourceOptions): Topic;
    /**
     * Returns true if the given object is an instance of Topic.  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 Topic;
    /**
     * Archive storage duration, valid when enableHotTtl is true.
     */
    readonly archiveTtl: pulumi.Output<number | undefined>;
    /**
     * Whether to enable automatic partition splitting function of the tls topic.
     * true: (default) When the amount of data written exceeds the capacity of existing partitions for 5 consecutive minutes, Log Service will automatically split partitions based on the data volume to meet business needs. However, the number of partitions after splitting cannot exceed the maximum number of partitions. Newly split partitions within the last 15 minutes will not be automatically split again.
     * false: Disables automatic partition splitting.
     */
    readonly autoSplit: pulumi.Output<boolean>;
    /**
     * Infrequent storage duration, valid when enableHotTtl is true.
     */
    readonly coldTtl: pulumi.Output<number | undefined>;
    /**
     * The create time of the tls topic.
     */
    readonly createTime: pulumi.Output<string>;
    /**
     * The description of the tls project.
     */
    readonly description: pulumi.Output<string>;
    /**
     * Whether to enable tiered storage.
     */
    readonly enableHotTtl: pulumi.Output<boolean | undefined>;
    /**
     * Whether to enable WebTracking function of the tls topic.
     */
    readonly enableTracking: pulumi.Output<boolean>;
    /**
     * Data encryption configuration.
     */
    readonly encryptConf: pulumi.Output<outputs.tls.TopicEncryptConf | undefined>;
    /**
     * Standard storage duration, valid when enableHotTtl is true.
     */
    readonly hotTtl: pulumi.Output<number | undefined>;
    /**
     * Whether to enable the function of recording public IP.
     */
    readonly logPublicIp: pulumi.Output<boolean | undefined>;
    /**
     * The id of shard to be manually split. This field is valid only when modifying the topic.
     * When importing resources, this attribute will not be imported. If this attribute is set, please use lifecycle and ignoreChanges ignore changes in fields.
     */
    readonly manualSplitShardId: pulumi.Output<number | undefined>;
    /**
     * The split number of shard. The valid number should be a non-zero even number, such as 2, 4, 8, or 16. The total number of read-write status shards after splitting cannot exceed 50.
     * When importing resources, this attribute will not be imported. If this attribute is set, please use lifecycle and ignoreChanges ignore changes in fields.
     */
    readonly manualSplitShardNumber: pulumi.Output<number | undefined>;
    /**
     * The maximum number of partitions, which is the maximum number of partitions after partition splitting. The value range is 1 to 10, with a default of 10.
     */
    readonly maxSplitShard: pulumi.Output<number>;
    /**
     * The modify time of the tls topic.
     */
    readonly modifyTime: pulumi.Output<string>;
    /**
     * The project id of the tls topic.
     */
    readonly projectId: pulumi.Output<string>;
    /**
     * The count of shards in the tls topic. Valid value range: 1-10. This field is only valid when creating tls topic.
     */
    readonly shardCount: pulumi.Output<number>;
    /**
     * Tags.
     */
    readonly tags: pulumi.Output<outputs.tls.TopicTag[] | undefined>;
    /**
     * The format of the time field.
     */
    readonly timeFormat: pulumi.Output<string>;
    /**
     * The name of the time field.
     */
    readonly timeKey: pulumi.Output<string>;
    /**
     * The name of the tls topic.
     */
    readonly topicName: pulumi.Output<string>;
    /**
     * The data storage time of the tls topic. Unit: Day. Valid value range: 1-3650.
     */
    readonly ttl: pulumi.Output<number>;
    /**
     * Create a Topic 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: TopicArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering Topic resources.
 */
export interface TopicState {
    /**
     * Archive storage duration, valid when enableHotTtl is true.
     */
    archiveTtl?: pulumi.Input<number>;
    /**
     * Whether to enable automatic partition splitting function of the tls topic.
     * true: (default) When the amount of data written exceeds the capacity of existing partitions for 5 consecutive minutes, Log Service will automatically split partitions based on the data volume to meet business needs. However, the number of partitions after splitting cannot exceed the maximum number of partitions. Newly split partitions within the last 15 minutes will not be automatically split again.
     * false: Disables automatic partition splitting.
     */
    autoSplit?: pulumi.Input<boolean>;
    /**
     * Infrequent storage duration, valid when enableHotTtl is true.
     */
    coldTtl?: pulumi.Input<number>;
    /**
     * The create time of the tls topic.
     */
    createTime?: pulumi.Input<string>;
    /**
     * The description of the tls project.
     */
    description?: pulumi.Input<string>;
    /**
     * Whether to enable tiered storage.
     */
    enableHotTtl?: pulumi.Input<boolean>;
    /**
     * Whether to enable WebTracking function of the tls topic.
     */
    enableTracking?: pulumi.Input<boolean>;
    /**
     * Data encryption configuration.
     */
    encryptConf?: pulumi.Input<inputs.tls.TopicEncryptConf>;
    /**
     * Standard storage duration, valid when enableHotTtl is true.
     */
    hotTtl?: pulumi.Input<number>;
    /**
     * Whether to enable the function of recording public IP.
     */
    logPublicIp?: pulumi.Input<boolean>;
    /**
     * The id of shard to be manually split. This field is valid only when modifying the topic.
     * When importing resources, this attribute will not be imported. If this attribute is set, please use lifecycle and ignoreChanges ignore changes in fields.
     */
    manualSplitShardId?: pulumi.Input<number>;
    /**
     * The split number of shard. The valid number should be a non-zero even number, such as 2, 4, 8, or 16. The total number of read-write status shards after splitting cannot exceed 50.
     * When importing resources, this attribute will not be imported. If this attribute is set, please use lifecycle and ignoreChanges ignore changes in fields.
     */
    manualSplitShardNumber?: pulumi.Input<number>;
    /**
     * The maximum number of partitions, which is the maximum number of partitions after partition splitting. The value range is 1 to 10, with a default of 10.
     */
    maxSplitShard?: pulumi.Input<number>;
    /**
     * The modify time of the tls topic.
     */
    modifyTime?: pulumi.Input<string>;
    /**
     * The project id of the tls topic.
     */
    projectId?: pulumi.Input<string>;
    /**
     * The count of shards in the tls topic. Valid value range: 1-10. This field is only valid when creating tls topic.
     */
    shardCount?: pulumi.Input<number>;
    /**
     * Tags.
     */
    tags?: pulumi.Input<pulumi.Input<inputs.tls.TopicTag>[]>;
    /**
     * The format of the time field.
     */
    timeFormat?: pulumi.Input<string>;
    /**
     * The name of the time field.
     */
    timeKey?: pulumi.Input<string>;
    /**
     * The name of the tls topic.
     */
    topicName?: pulumi.Input<string>;
    /**
     * The data storage time of the tls topic. Unit: Day. Valid value range: 1-3650.
     */
    ttl?: pulumi.Input<number>;
}
/**
 * The set of arguments for constructing a Topic resource.
 */
export interface TopicArgs {
    /**
     * Archive storage duration, valid when enableHotTtl is true.
     */
    archiveTtl?: pulumi.Input<number>;
    /**
     * Whether to enable automatic partition splitting function of the tls topic.
     * true: (default) When the amount of data written exceeds the capacity of existing partitions for 5 consecutive minutes, Log Service will automatically split partitions based on the data volume to meet business needs. However, the number of partitions after splitting cannot exceed the maximum number of partitions. Newly split partitions within the last 15 minutes will not be automatically split again.
     * false: Disables automatic partition splitting.
     */
    autoSplit?: pulumi.Input<boolean>;
    /**
     * Infrequent storage duration, valid when enableHotTtl is true.
     */
    coldTtl?: pulumi.Input<number>;
    /**
     * The description of the tls project.
     */
    description?: pulumi.Input<string>;
    /**
     * Whether to enable tiered storage.
     */
    enableHotTtl?: pulumi.Input<boolean>;
    /**
     * Whether to enable WebTracking function of the tls topic.
     */
    enableTracking?: pulumi.Input<boolean>;
    /**
     * Data encryption configuration.
     */
    encryptConf?: pulumi.Input<inputs.tls.TopicEncryptConf>;
    /**
     * Standard storage duration, valid when enableHotTtl is true.
     */
    hotTtl?: pulumi.Input<number>;
    /**
     * Whether to enable the function of recording public IP.
     */
    logPublicIp?: pulumi.Input<boolean>;
    /**
     * The id of shard to be manually split. This field is valid only when modifying the topic.
     * When importing resources, this attribute will not be imported. If this attribute is set, please use lifecycle and ignoreChanges ignore changes in fields.
     */
    manualSplitShardId?: pulumi.Input<number>;
    /**
     * The split number of shard. The valid number should be a non-zero even number, such as 2, 4, 8, or 16. The total number of read-write status shards after splitting cannot exceed 50.
     * When importing resources, this attribute will not be imported. If this attribute is set, please use lifecycle and ignoreChanges ignore changes in fields.
     */
    manualSplitShardNumber?: pulumi.Input<number>;
    /**
     * The maximum number of partitions, which is the maximum number of partitions after partition splitting. The value range is 1 to 10, with a default of 10.
     */
    maxSplitShard?: pulumi.Input<number>;
    /**
     * The project id of the tls topic.
     */
    projectId: pulumi.Input<string>;
    /**
     * The count of shards in the tls topic. Valid value range: 1-10. This field is only valid when creating tls topic.
     */
    shardCount: pulumi.Input<number>;
    /**
     * Tags.
     */
    tags?: pulumi.Input<pulumi.Input<inputs.tls.TopicTag>[]>;
    /**
     * The format of the time field.
     */
    timeFormat?: pulumi.Input<string>;
    /**
     * The name of the time field.
     */
    timeKey?: pulumi.Input<string>;
    /**
     * The name of the tls topic.
     */
    topicName: pulumi.Input<string>;
    /**
     * The data storage time of the tls topic. Unit: Day. Valid value range: 1-3650.
     */
    ttl: pulumi.Input<number>;
}
