All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.pulumi.alicloud.alikafka.Instance Maven / Gradle / Ivy

There is a newer version: 3.63.0-alpha.1727424957
Show newest version
// *** WARNING: this file was generated by pulumi-java-gen. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***

package com.pulumi.alicloud.alikafka;

import com.pulumi.alicloud.Utilities;
import com.pulumi.alicloud.alikafka.InstanceArgs;
import com.pulumi.alicloud.alikafka.inputs.InstanceState;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Export;
import com.pulumi.core.annotations.ResourceType;
import com.pulumi.core.internal.Codegen;
import java.lang.Integer;
import java.lang.Object;
import java.lang.String;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import javax.annotation.Nullable;

/**
 * ## Import
 * 
 * AliKafka instance can be imported using the id, e.g.
 * 
 * ```sh
 * $ pulumi import alicloud:alikafka/instance:Instance instance <id>
 * ```
 * 
 */
@ResourceType(type="alicloud:alikafka/instance:Instance")
public class Instance extends com.pulumi.resources.CustomResource {
    /**
     * The basic config for this instance. The input should be json type, only the following key allowed: enable.acl, enable.vpc_sasl_ssl, kafka.log.retention.hours, kafka.message.max.bytes.
     * 
     */
    @Export(name="config", refs={String.class}, tree="[0]")
    private Output config;

    /**
     * @return The basic config for this instance. The input should be json type, only the following key allowed: enable.acl, enable.vpc_sasl_ssl, kafka.log.retention.hours, kafka.message.max.bytes.
     * 
     */
    public Output config() {
        return this.config;
    }
    /**
     * The deployment type of the instance. **NOTE:** From version 1.161.0, this attribute supports to be updated. Valid values:
     * - 4: eip/vpc instance
     * - 5: vpc instance.
     * 
     */
    @Export(name="deployType", refs={Integer.class}, tree="[0]")
    private Output deployType;

    /**
     * @return The deployment type of the instance. **NOTE:** From version 1.161.0, this attribute supports to be updated. Valid values:
     * - 4: eip/vpc instance
     * - 5: vpc instance.
     * 
     */
    public Output deployType() {
        return this.deployType;
    }
    /**
     * The disk size of the instance. When modify this value, it only supports adjust to a greater value.
     * 
     */
    @Export(name="diskSize", refs={Integer.class}, tree="[0]")
    private Output diskSize;

    /**
     * @return The disk size of the instance. When modify this value, it only supports adjust to a greater value.
     * 
     */
    public Output diskSize() {
        return this.diskSize;
    }
    /**
     * The disk type of the instance. 0: efficient cloud disk , 1: SSD.
     * 
     */
    @Export(name="diskType", refs={Integer.class}, tree="[0]")
    private Output diskType;

    /**
     * @return The disk type of the instance. 0: efficient cloud disk , 1: SSD.
     * 
     */
    public Output diskType() {
        return this.diskType;
    }
    /**
     * The max bandwidth of the instance. It will be ignored when `deploy_type = 5`. When modify this value, it only supports adjust to a greater value.
     * 
     */
    @Export(name="eipMax", refs={Integer.class}, tree="[0]")
    private Output eipMax;

    /**
     * @return The max bandwidth of the instance. It will be ignored when `deploy_type = 5`. When modify this value, it only supports adjust to a greater value.
     * 
     */
    public Output eipMax() {
        return this.eipMax;
    }
    /**
     * The EndPoint to access the kafka instance.
     * 
     */
    @Export(name="endPoint", refs={String.class}, tree="[0]")
    private Output endPoint;

    /**
     * @return The EndPoint to access the kafka instance.
     * 
     */
    public Output endPoint() {
        return this.endPoint;
    }
    /**
     * (Available since v1.214.1) The number of available groups.
     * 
     */
    @Export(name="groupLeft", refs={Integer.class}, tree="[0]")
    private Output groupLeft;

    /**
     * @return (Available since v1.214.1) The number of available groups.
     * 
     */
    public Output groupLeft() {
        return this.groupLeft;
    }
    /**
     * (Available since v1.214.1) The number of used groups.
     * 
     */
    @Export(name="groupUsed", refs={Integer.class}, tree="[0]")
    private Output groupUsed;

    /**
     * @return (Available since v1.214.1) The number of used groups.
     * 
     */
    public Output groupUsed() {
        return this.groupUsed;
    }
    /**
     * The max value of io of the instance. When modify this value, it only support adjust to a greater value.
     * 
     */
    @Export(name="ioMax", refs={Integer.class}, tree="[0]")
    private Output ioMax;

    /**
     * @return The max value of io of the instance. When modify this value, it only support adjust to a greater value.
     * 
     */
    public Output ioMax() {
        return this.ioMax;
    }
    /**
     * The traffic specification of the instance. We recommend that you configure this parameter.
     * - You should specify one of the `io_max` and `io_max_spec` parameters, and `io_max_spec` is recommended.
     * - For more information about the valid values, see [Billing](https://www.alibabacloud.com/help/en/message-queue-for-apache-kafka/latest/billing-overview).
     * 
     */
    @Export(name="ioMaxSpec", refs={String.class}, tree="[0]")
    private Output ioMaxSpec;

    /**
     * @return The traffic specification of the instance. We recommend that you configure this parameter.
     * - You should specify one of the `io_max` and `io_max_spec` parameters, and `io_max_spec` is recommended.
     * - For more information about the valid values, see [Billing](https://www.alibabacloud.com/help/en/message-queue-for-apache-kafka/latest/billing-overview).
     * 
     */
    public Output ioMaxSpec() {
        return this.ioMaxSpec;
    }
    /**
     * (Available since v1.214.1) The method that you use to purchase partitions.
     * 
     */
    @Export(name="isPartitionBuy", refs={Integer.class}, tree="[0]")
    private Output isPartitionBuy;

    /**
     * @return (Available since v1.214.1) The method that you use to purchase partitions.
     * 
     */
    public Output isPartitionBuy() {
        return this.isPartitionBuy;
    }
    /**
     * The ID of the key that is used to encrypt data on standard SSDs in the region of the instance.
     * 
     */
    @Export(name="kmsKeyId", refs={String.class}, tree="[0]")
    private Output kmsKeyId;

    /**
     * @return The ID of the key that is used to encrypt data on standard SSDs in the region of the instance.
     * 
     */
    public Output> kmsKeyId() {
        return Codegen.optional(this.kmsKeyId);
    }
    /**
     * Name of your Kafka instance. The length should between 3 and 64 characters. If not set, will use instance id as instance name.
     * 
     */
    @Export(name="name", refs={String.class}, tree="[0]")
    private Output name;

    /**
     * @return Name of your Kafka instance. The length should between 3 and 64 characters. If not set, will use instance id as instance name.
     * 
     */
    public Output name() {
        return this.name;
    }
    /**
     * The paid type of the instance. Support two type, "PrePaid": pre paid type instance, "PostPaid": post paid type instance. Default is PostPaid. When modify this value, it only support adjust from post pay to pre pay.
     * 
     */
    @Export(name="paidType", refs={String.class}, tree="[0]")
    private Output paidType;

    /**
     * @return The paid type of the instance. Support two type, "PrePaid": pre paid type instance, "PostPaid": post paid type instance. Default is PostPaid. When modify this value, it only support adjust from post pay to pre pay.
     * 
     */
    public Output> paidType() {
        return Codegen.optional(this.paidType);
    }
    /**
     * (Available since v1.214.1) The number of available partitions.
     * 
     */
    @Export(name="partitionLeft", refs={Integer.class}, tree="[0]")
    private Output partitionLeft;

    /**
     * @return (Available since v1.214.1) The number of available partitions.
     * 
     */
    public Output partitionLeft() {
        return this.partitionLeft;
    }
    /**
     * The number of partitions.
     * 
     */
    @Export(name="partitionNum", refs={Integer.class}, tree="[0]")
    private Output partitionNum;

    /**
     * @return The number of partitions.
     * 
     */
    public Output> partitionNum() {
        return Codegen.optional(this.partitionNum);
    }
    /**
     * (Available since v1.214.1) The number of used partitions.
     * 
     */
    @Export(name="partitionUsed", refs={Integer.class}, tree="[0]")
    private Output partitionUsed;

    /**
     * @return (Available since v1.214.1) The number of used partitions.
     * 
     */
    public Output partitionUsed() {
        return this.partitionUsed;
    }
    /**
     * The ID of the resource group. **Note:** Once you set a value of this property, you cannot set it to an empty string anymore.
     * 
     */
    @Export(name="resourceGroupId", refs={String.class}, tree="[0]")
    private Output resourceGroupId;

    /**
     * @return The ID of the resource group. **Note:** Once you set a value of this property, you cannot set it to an empty string anymore.
     * 
     */
    public Output resourceGroupId() {
        return this.resourceGroupId;
    }
    /**
     * The ID of security group for this instance. If the security group is empty, system will create a default one.
     * 
     */
    @Export(name="securityGroup", refs={String.class}, tree="[0]")
    private Output securityGroup;

    /**
     * @return The ID of security group for this instance. If the security group is empty, system will create a default one.
     * 
     */
    public Output securityGroup() {
        return this.securityGroup;
    }
    /**
     * The zones among which you want to deploy the instance.
     * 
     * > **NOTE:** Arguments io_max, disk_size, topic_quota, eip_max should follow the following constraints.
     * 
     * | io_max | disk_size(min-max:lag) | topic_quota(min-max:lag) | eip_max(min-max:lag) |
     * |------|-------------|:----:|:-----:|
     * |20          |  500-6100:100   |   50-450:1  |    1-160:1  |
     * |30          |  800-6100:100   |   50-450:1  |    1-240:1  |
     * |60          |  1400-6100:100  |   80-450:1  |    1-500:1  |
     * |90          |  2100-6100:100  |   100-450:1 |    1-500:1  |
     * |120         |  2700-6100:100  |   150-450:1 |    1-500:1  |
     * 
     */
    @Export(name="selectedZones", refs={List.class,String.class}, tree="[0,1]")
    private Output> selectedZones;

    /**
     * @return The zones among which you want to deploy the instance.
     * 
     * > **NOTE:** Arguments io_max, disk_size, topic_quota, eip_max should follow the following constraints.
     * 
     * | io_max | disk_size(min-max:lag) | topic_quota(min-max:lag) | eip_max(min-max:lag) |
     * |------|-------------|:----:|:-----:|
     * |20          |  500-6100:100   |   50-450:1  |    1-160:1  |
     * |30          |  800-6100:100   |   50-450:1  |    1-240:1  |
     * |60          |  1400-6100:100  |   80-450:1  |    1-500:1  |
     * |90          |  2100-6100:100  |   100-450:1 |    1-500:1  |
     * |120         |  2700-6100:100  |   150-450:1 |    1-500:1  |
     * 
     */
    public Output>> selectedZones() {
        return Codegen.optional(this.selectedZones);
    }
    /**
     * The kafka openSource version for this instance. Only 0.10.2 or 2.2.0 is allowed, default is 0.10.2.
     * 
     */
    @Export(name="serviceVersion", refs={String.class}, tree="[0]")
    private Output serviceVersion;

    /**
     * @return The kafka openSource version for this instance. Only 0.10.2 or 2.2.0 is allowed, default is 0.10.2.
     * 
     */
    public Output serviceVersion() {
        return this.serviceVersion;
    }
    /**
     * The spec type of the instance. Support two type, "normal": normal version instance, "professional": professional version instance. Default is normal. When modify this value, it only support adjust from normal to professional. Note only pre paid type instance support professional specific type.
     * 
     */
    @Export(name="specType", refs={String.class}, tree="[0]")
    private Output specType;

    /**
     * @return The spec type of the instance. Support two type, "normal": normal version instance, "professional": professional version instance. Default is normal. When modify this value, it only support adjust from normal to professional. Note only pre paid type instance support professional specific type.
     * 
     */
    public Output> specType() {
        return Codegen.optional(this.specType);
    }
    /**
     * The status of the instance.
     * 
     */
    @Export(name="status", refs={Integer.class}, tree="[0]")
    private Output status;

    /**
     * @return The status of the instance.
     * 
     */
    public Output status() {
        return this.status;
    }
    /**
     * A mapping of tags to assign to the resource.
     * 
     */
    @Export(name="tags", refs={Map.class,String.class,Object.class}, tree="[0,1,2]")
    private Output> tags;

    /**
     * @return A mapping of tags to assign to the resource.
     * 
     */
    public Output>> tags() {
        return Codegen.optional(this.tags);
    }
    /**
     * (Available since v1.214.1) The number of available topics.
     * 
     */
    @Export(name="topicLeft", refs={Integer.class}, tree="[0]")
    private Output topicLeft;

    /**
     * @return (Available since v1.214.1) The number of available topics.
     * 
     */
    public Output topicLeft() {
        return this.topicLeft;
    }
    /**
     * (Available since v1.214.1) The number of purchased topics.
     * 
     */
    @Export(name="topicNumOfBuy", refs={Integer.class}, tree="[0]")
    private Output topicNumOfBuy;

    /**
     * @return (Available since v1.214.1) The number of purchased topics.
     * 
     */
    public Output topicNumOfBuy() {
        return this.topicNumOfBuy;
    }
    /**
     * The max num of topic can be creation of the instance.
     * It has been deprecated since version 1.194.0 and using `partition_num` instead.
     * Currently, its value only can be set to 50 when creating it, and finally depends on `partition_num` value: <`topic_quota`> = 1000 + <`partition_num`>.
     * Therefore, you can update it by updating the `partition_num`, and it is the only updating path.
     * 
     * @deprecated
     * Attribute `topic_quota` has been deprecated since 1.194.0 and it will be removed in the next future. Using new attribute `partition_num` instead.
     * 
     */
    @Deprecated /* Attribute `topic_quota` has been deprecated since 1.194.0 and it will be removed in the next future. Using new attribute `partition_num` instead. */
    @Export(name="topicQuota", refs={Integer.class}, tree="[0]")
    private Output topicQuota;

    /**
     * @return The max num of topic can be creation of the instance.
     * It has been deprecated since version 1.194.0 and using `partition_num` instead.
     * Currently, its value only can be set to 50 when creating it, and finally depends on `partition_num` value: <`topic_quota`> = 1000 + <`partition_num`>.
     * Therefore, you can update it by updating the `partition_num`, and it is the only updating path.
     * 
     */
    public Output topicQuota() {
        return this.topicQuota;
    }
    /**
     * (Available since v1.214.1) The number of used topics.
     * 
     */
    @Export(name="topicUsed", refs={Integer.class}, tree="[0]")
    private Output topicUsed;

    /**
     * @return (Available since v1.214.1) The number of used topics.
     * 
     */
    public Output topicUsed() {
        return this.topicUsed;
    }
    /**
     * The VPC ID of the instance.
     * 
     */
    @Export(name="vpcId", refs={String.class}, tree="[0]")
    private Output vpcId;

    /**
     * @return The VPC ID of the instance.
     * 
     */
    public Output vpcId() {
        return this.vpcId;
    }
    /**
     * The ID of attaching vswitch to instance.
     * 
     */
    @Export(name="vswitchId", refs={String.class}, tree="[0]")
    private Output vswitchId;

    /**
     * @return The ID of attaching vswitch to instance.
     * 
     */
    public Output vswitchId() {
        return this.vswitchId;
    }
    /**
     * The zone ID of the instance. The value can be in zone x or region id-x format. **NOTE**: When the available zone is insufficient, another availability zone may be deployed.
     * 
     */
    @Export(name="zoneId", refs={String.class}, tree="[0]")
    private Output zoneId;

    /**
     * @return The zone ID of the instance. The value can be in zone x or region id-x format. **NOTE**: When the available zone is insufficient, another availability zone may be deployed.
     * 
     */
    public Output zoneId() {
        return this.zoneId;
    }

    /**
     *
     * @param name The _unique_ name of the resulting resource.
     */
    public Instance(String name) {
        this(name, InstanceArgs.Empty);
    }
    /**
     *
     * @param name The _unique_ name of the resulting resource.
     * @param args The arguments to use to populate this resource's properties.
     */
    public Instance(String name, InstanceArgs args) {
        this(name, args, null);
    }
    /**
     *
     * @param name The _unique_ name of the resulting resource.
     * @param args The arguments to use to populate this resource's properties.
     * @param options A bag of options that control this resource's behavior.
     */
    public Instance(String name, InstanceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
        super("alicloud:alikafka/instance:Instance", name, args == null ? InstanceArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
    }

    private Instance(String name, Output id, @Nullable InstanceState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
        super("alicloud:alikafka/instance:Instance", name, state, makeResourceOptions(options, id));
    }

    private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
        var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
            .version(Utilities.getVersion())
            .build();
        return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id);
    }

    /**
     * Get an existing Host 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
     * @param options Optional settings to control the behavior of the CustomResource.
     */
    public static Instance get(String name, Output id, @Nullable InstanceState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
        return new Instance(name, id, state, options);
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy