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

com.pulumi.alicloud.expressconnect.PhysicalConnectionArgs 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.expressconnect;

import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.Integer;
import java.lang.String;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


public final class PhysicalConnectionArgs extends com.pulumi.resources.ResourceArgs {

    public static final PhysicalConnectionArgs Empty = new PhysicalConnectionArgs();

    /**
     * The access point ID of the Express Connect circuit.
     * 
     */
    @Import(name="accessPointId", required=true)
    private Output accessPointId;

    /**
     * @return The access point ID of the Express Connect circuit.
     * 
     */
    public Output accessPointId() {
        return this.accessPointId;
    }

    /**
     * The maximum bandwidth of the hosted connection.
     * 
     */
    @Import(name="bandwidth")
    private @Nullable Output bandwidth;

    /**
     * @return The maximum bandwidth of the hosted connection.
     * 
     */
    public Optional> bandwidth() {
        return Optional.ofNullable(this.bandwidth);
    }

    /**
     * The circuit code of the Express Connect circuit.
     * 
     */
    @Import(name="circuitCode")
    private @Nullable Output circuitCode;

    /**
     * @return The circuit code of the Express Connect circuit.
     * 
     */
    public Optional> circuitCode() {
        return Optional.ofNullable(this.circuitCode);
    }

    /**
     * The description of the Express Connect circuit.
     * 
     */
    @Import(name="description")
    private @Nullable Output description;

    /**
     * @return The description of the Express Connect circuit.
     * 
     */
    public Optional> description() {
        return Optional.ofNullable(this.description);
    }

    /**
     * The connectivity provider of the Express Connect circuit. Valid values:
     * - `CT`: China Telecom.
     * - `CU`: China Unicom.
     * - `CM`: China Mobile.
     * - `CO`: Other connectivity providers in the Chinese mainland.
     * - `Equinix`: Equinix.
     * - `Other`: Other connectivity providers outside the Chinese mainland.
     * 
     */
    @Import(name="lineOperator", required=true)
    private Output lineOperator;

    /**
     * @return The connectivity provider of the Express Connect circuit. Valid values:
     * - `CT`: China Telecom.
     * - `CU`: China Unicom.
     * - `CM`: China Mobile.
     * - `CO`: Other connectivity providers in the Chinese mainland.
     * - `Equinix`: Equinix.
     * - `Other`: Other connectivity providers outside the Chinese mainland.
     * 
     */
    public Output lineOperator() {
        return this.lineOperator;
    }

    /**
     * The geographical location of the data center.
     * 
     */
    @Import(name="peerLocation")
    private @Nullable Output peerLocation;

    /**
     * @return The geographical location of the data center.
     * 
     */
    public Optional> peerLocation() {
        return Optional.ofNullable(this.peerLocation);
    }

    /**
     * The subscription duration. Valid values:
     * - If `pricing_cycle` is set to `Month`. Valid values: `1` to `9`.
     * - If `pricing_cycle` is set to `Year`. Valid values: `1` to `5`.
     * 
     */
    @Import(name="period")
    private @Nullable Output period;

    /**
     * @return The subscription duration. Valid values:
     * - If `pricing_cycle` is set to `Month`. Valid values: `1` to `9`.
     * - If `pricing_cycle` is set to `Year`. Valid values: `1` to `5`.
     * 
     */
    public Optional> period() {
        return Optional.ofNullable(this.period);
    }

    /**
     * The name of the Express Connect circuit.
     * 
     */
    @Import(name="physicalConnectionName")
    private @Nullable Output physicalConnectionName;

    /**
     * @return The name of the Express Connect circuit.
     * 
     */
    public Optional> physicalConnectionName() {
        return Optional.ofNullable(this.physicalConnectionName);
    }

    /**
     * The port type of the Express Connect circuit. Valid values:
     * - `100Base-T`: 100 Mbit/s copper Ethernet port.
     * - `1000Base-T`: 1000 Mbit/s copper Ethernet port.
     * - `1000Base-LX`: 1000 Mbit/s single-mode optical port (10 km).
     * - `10GBase-T`: 10000 Mbit/s copper Ethernet port.
     * - `10GBase-LR`: 10000 Mbit/s single-mode optical port (10 km).
     * - `40GBase-LR`: 40000 Mbit/s single-mode optical port.
     * - `100GBase-LR`: 100000 Mbit/s single-mode optical port.
     * > **NOTE:** From version 1.185.0, `port_type` can be set to `40GBase-LR`, `100GBase-LR`. From version 1.230.1, `port_type` cannot be modified.
     * 
     */
    @Import(name="portType")
    private @Nullable Output portType;

    /**
     * @return The port type of the Express Connect circuit. Valid values:
     * - `100Base-T`: 100 Mbit/s copper Ethernet port.
     * - `1000Base-T`: 1000 Mbit/s copper Ethernet port.
     * - `1000Base-LX`: 1000 Mbit/s single-mode optical port (10 km).
     * - `10GBase-T`: 10000 Mbit/s copper Ethernet port.
     * - `10GBase-LR`: 10000 Mbit/s single-mode optical port (10 km).
     * - `40GBase-LR`: 40000 Mbit/s single-mode optical port.
     * - `100GBase-LR`: 100000 Mbit/s single-mode optical port.
     * > **NOTE:** From version 1.185.0, `port_type` can be set to `40GBase-LR`, `100GBase-LR`. From version 1.230.1, `port_type` cannot be modified.
     * 
     */
    public Optional> portType() {
        return Optional.ofNullable(this.portType);
    }

    /**
     * The billing cycle of the subscription. Default value: `Month`. Valid values: `Month`, `Year`.
     * > **NOTE:** `period` and `pricing_cycle` are valid only when `status` is set to `Enabled`.
     * 
     */
    @Import(name="pricingCycle")
    private @Nullable Output pricingCycle;

    /**
     * @return The billing cycle of the subscription. Default value: `Month`. Valid values: `Month`, `Year`.
     * > **NOTE:** `period` and `pricing_cycle` are valid only when `status` is set to `Enabled`.
     * 
     */
    public Optional> pricingCycle() {
        return Optional.ofNullable(this.pricingCycle);
    }

    /**
     * The ID of the redundant Express Connect circuit. **NOTE:** From version 1.230.1, `redundant_physical_connection_id` cannot be modified.
     * 
     */
    @Import(name="redundantPhysicalConnectionId")
    private @Nullable Output redundantPhysicalConnectionId;

    /**
     * @return The ID of the redundant Express Connect circuit. **NOTE:** From version 1.230.1, `redundant_physical_connection_id` cannot be modified.
     * 
     */
    public Optional> redundantPhysicalConnectionId() {
        return Optional.ofNullable(this.redundantPhysicalConnectionId);
    }

    /**
     * The status of the Express Connect circuit. Valid values: `Confirmed`, `Enabled`, `Canceled`, `Terminated`. **NOTE:** From version 1.230.1, `status` can be set to `Confirmed`. If you want to set `status` to `Enabled`, `period` must be set.
     * 
     */
    @Import(name="status")
    private @Nullable Output status;

    /**
     * @return The status of the Express Connect circuit. Valid values: `Confirmed`, `Enabled`, `Canceled`, `Terminated`. **NOTE:** From version 1.230.1, `status` can be set to `Confirmed`. If you want to set `status` to `Enabled`, `period` must be set.
     * 
     */
    public Optional> status() {
        return Optional.ofNullable(this.status);
    }

    /**
     * The type of Express Connect circuit. Default value: `VPC`. Valid values: `VPC`.
     * 
     */
    @Import(name="type")
    private @Nullable Output type;

    /**
     * @return The type of Express Connect circuit. Default value: `VPC`. Valid values: `VPC`.
     * 
     */
    public Optional> type() {
        return Optional.ofNullable(this.type);
    }

    private PhysicalConnectionArgs() {}

    private PhysicalConnectionArgs(PhysicalConnectionArgs $) {
        this.accessPointId = $.accessPointId;
        this.bandwidth = $.bandwidth;
        this.circuitCode = $.circuitCode;
        this.description = $.description;
        this.lineOperator = $.lineOperator;
        this.peerLocation = $.peerLocation;
        this.period = $.period;
        this.physicalConnectionName = $.physicalConnectionName;
        this.portType = $.portType;
        this.pricingCycle = $.pricingCycle;
        this.redundantPhysicalConnectionId = $.redundantPhysicalConnectionId;
        this.status = $.status;
        this.type = $.type;
    }

    public static Builder builder() {
        return new Builder();
    }
    public static Builder builder(PhysicalConnectionArgs defaults) {
        return new Builder(defaults);
    }

    public static final class Builder {
        private PhysicalConnectionArgs $;

        public Builder() {
            $ = new PhysicalConnectionArgs();
        }

        public Builder(PhysicalConnectionArgs defaults) {
            $ = new PhysicalConnectionArgs(Objects.requireNonNull(defaults));
        }

        /**
         * @param accessPointId The access point ID of the Express Connect circuit.
         * 
         * @return builder
         * 
         */
        public Builder accessPointId(Output accessPointId) {
            $.accessPointId = accessPointId;
            return this;
        }

        /**
         * @param accessPointId The access point ID of the Express Connect circuit.
         * 
         * @return builder
         * 
         */
        public Builder accessPointId(String accessPointId) {
            return accessPointId(Output.of(accessPointId));
        }

        /**
         * @param bandwidth The maximum bandwidth of the hosted connection.
         * 
         * @return builder
         * 
         */
        public Builder bandwidth(@Nullable Output bandwidth) {
            $.bandwidth = bandwidth;
            return this;
        }

        /**
         * @param bandwidth The maximum bandwidth of the hosted connection.
         * 
         * @return builder
         * 
         */
        public Builder bandwidth(String bandwidth) {
            return bandwidth(Output.of(bandwidth));
        }

        /**
         * @param circuitCode The circuit code of the Express Connect circuit.
         * 
         * @return builder
         * 
         */
        public Builder circuitCode(@Nullable Output circuitCode) {
            $.circuitCode = circuitCode;
            return this;
        }

        /**
         * @param circuitCode The circuit code of the Express Connect circuit.
         * 
         * @return builder
         * 
         */
        public Builder circuitCode(String circuitCode) {
            return circuitCode(Output.of(circuitCode));
        }

        /**
         * @param description The description of the Express Connect circuit.
         * 
         * @return builder
         * 
         */
        public Builder description(@Nullable Output description) {
            $.description = description;
            return this;
        }

        /**
         * @param description The description of the Express Connect circuit.
         * 
         * @return builder
         * 
         */
        public Builder description(String description) {
            return description(Output.of(description));
        }

        /**
         * @param lineOperator The connectivity provider of the Express Connect circuit. Valid values:
         * - `CT`: China Telecom.
         * - `CU`: China Unicom.
         * - `CM`: China Mobile.
         * - `CO`: Other connectivity providers in the Chinese mainland.
         * - `Equinix`: Equinix.
         * - `Other`: Other connectivity providers outside the Chinese mainland.
         * 
         * @return builder
         * 
         */
        public Builder lineOperator(Output lineOperator) {
            $.lineOperator = lineOperator;
            return this;
        }

        /**
         * @param lineOperator The connectivity provider of the Express Connect circuit. Valid values:
         * - `CT`: China Telecom.
         * - `CU`: China Unicom.
         * - `CM`: China Mobile.
         * - `CO`: Other connectivity providers in the Chinese mainland.
         * - `Equinix`: Equinix.
         * - `Other`: Other connectivity providers outside the Chinese mainland.
         * 
         * @return builder
         * 
         */
        public Builder lineOperator(String lineOperator) {
            return lineOperator(Output.of(lineOperator));
        }

        /**
         * @param peerLocation The geographical location of the data center.
         * 
         * @return builder
         * 
         */
        public Builder peerLocation(@Nullable Output peerLocation) {
            $.peerLocation = peerLocation;
            return this;
        }

        /**
         * @param peerLocation The geographical location of the data center.
         * 
         * @return builder
         * 
         */
        public Builder peerLocation(String peerLocation) {
            return peerLocation(Output.of(peerLocation));
        }

        /**
         * @param period The subscription duration. Valid values:
         * - If `pricing_cycle` is set to `Month`. Valid values: `1` to `9`.
         * - If `pricing_cycle` is set to `Year`. Valid values: `1` to `5`.
         * 
         * @return builder
         * 
         */
        public Builder period(@Nullable Output period) {
            $.period = period;
            return this;
        }

        /**
         * @param period The subscription duration. Valid values:
         * - If `pricing_cycle` is set to `Month`. Valid values: `1` to `9`.
         * - If `pricing_cycle` is set to `Year`. Valid values: `1` to `5`.
         * 
         * @return builder
         * 
         */
        public Builder period(Integer period) {
            return period(Output.of(period));
        }

        /**
         * @param physicalConnectionName The name of the Express Connect circuit.
         * 
         * @return builder
         * 
         */
        public Builder physicalConnectionName(@Nullable Output physicalConnectionName) {
            $.physicalConnectionName = physicalConnectionName;
            return this;
        }

        /**
         * @param physicalConnectionName The name of the Express Connect circuit.
         * 
         * @return builder
         * 
         */
        public Builder physicalConnectionName(String physicalConnectionName) {
            return physicalConnectionName(Output.of(physicalConnectionName));
        }

        /**
         * @param portType The port type of the Express Connect circuit. Valid values:
         * - `100Base-T`: 100 Mbit/s copper Ethernet port.
         * - `1000Base-T`: 1000 Mbit/s copper Ethernet port.
         * - `1000Base-LX`: 1000 Mbit/s single-mode optical port (10 km).
         * - `10GBase-T`: 10000 Mbit/s copper Ethernet port.
         * - `10GBase-LR`: 10000 Mbit/s single-mode optical port (10 km).
         * - `40GBase-LR`: 40000 Mbit/s single-mode optical port.
         * - `100GBase-LR`: 100000 Mbit/s single-mode optical port.
         * > **NOTE:** From version 1.185.0, `port_type` can be set to `40GBase-LR`, `100GBase-LR`. From version 1.230.1, `port_type` cannot be modified.
         * 
         * @return builder
         * 
         */
        public Builder portType(@Nullable Output portType) {
            $.portType = portType;
            return this;
        }

        /**
         * @param portType The port type of the Express Connect circuit. Valid values:
         * - `100Base-T`: 100 Mbit/s copper Ethernet port.
         * - `1000Base-T`: 1000 Mbit/s copper Ethernet port.
         * - `1000Base-LX`: 1000 Mbit/s single-mode optical port (10 km).
         * - `10GBase-T`: 10000 Mbit/s copper Ethernet port.
         * - `10GBase-LR`: 10000 Mbit/s single-mode optical port (10 km).
         * - `40GBase-LR`: 40000 Mbit/s single-mode optical port.
         * - `100GBase-LR`: 100000 Mbit/s single-mode optical port.
         * > **NOTE:** From version 1.185.0, `port_type` can be set to `40GBase-LR`, `100GBase-LR`. From version 1.230.1, `port_type` cannot be modified.
         * 
         * @return builder
         * 
         */
        public Builder portType(String portType) {
            return portType(Output.of(portType));
        }

        /**
         * @param pricingCycle The billing cycle of the subscription. Default value: `Month`. Valid values: `Month`, `Year`.
         * > **NOTE:** `period` and `pricing_cycle` are valid only when `status` is set to `Enabled`.
         * 
         * @return builder
         * 
         */
        public Builder pricingCycle(@Nullable Output pricingCycle) {
            $.pricingCycle = pricingCycle;
            return this;
        }

        /**
         * @param pricingCycle The billing cycle of the subscription. Default value: `Month`. Valid values: `Month`, `Year`.
         * > **NOTE:** `period` and `pricing_cycle` are valid only when `status` is set to `Enabled`.
         * 
         * @return builder
         * 
         */
        public Builder pricingCycle(String pricingCycle) {
            return pricingCycle(Output.of(pricingCycle));
        }

        /**
         * @param redundantPhysicalConnectionId The ID of the redundant Express Connect circuit. **NOTE:** From version 1.230.1, `redundant_physical_connection_id` cannot be modified.
         * 
         * @return builder
         * 
         */
        public Builder redundantPhysicalConnectionId(@Nullable Output redundantPhysicalConnectionId) {
            $.redundantPhysicalConnectionId = redundantPhysicalConnectionId;
            return this;
        }

        /**
         * @param redundantPhysicalConnectionId The ID of the redundant Express Connect circuit. **NOTE:** From version 1.230.1, `redundant_physical_connection_id` cannot be modified.
         * 
         * @return builder
         * 
         */
        public Builder redundantPhysicalConnectionId(String redundantPhysicalConnectionId) {
            return redundantPhysicalConnectionId(Output.of(redundantPhysicalConnectionId));
        }

        /**
         * @param status The status of the Express Connect circuit. Valid values: `Confirmed`, `Enabled`, `Canceled`, `Terminated`. **NOTE:** From version 1.230.1, `status` can be set to `Confirmed`. If you want to set `status` to `Enabled`, `period` must be set.
         * 
         * @return builder
         * 
         */
        public Builder status(@Nullable Output status) {
            $.status = status;
            return this;
        }

        /**
         * @param status The status of the Express Connect circuit. Valid values: `Confirmed`, `Enabled`, `Canceled`, `Terminated`. **NOTE:** From version 1.230.1, `status` can be set to `Confirmed`. If you want to set `status` to `Enabled`, `period` must be set.
         * 
         * @return builder
         * 
         */
        public Builder status(String status) {
            return status(Output.of(status));
        }

        /**
         * @param type The type of Express Connect circuit. Default value: `VPC`. Valid values: `VPC`.
         * 
         * @return builder
         * 
         */
        public Builder type(@Nullable Output type) {
            $.type = type;
            return this;
        }

        /**
         * @param type The type of Express Connect circuit. Default value: `VPC`. Valid values: `VPC`.
         * 
         * @return builder
         * 
         */
        public Builder type(String type) {
            return type(Output.of(type));
        }

        public PhysicalConnectionArgs build() {
            if ($.accessPointId == null) {
                throw new MissingRequiredPropertyException("PhysicalConnectionArgs", "accessPointId");
            }
            if ($.lineOperator == null) {
                throw new MissingRequiredPropertyException("PhysicalConnectionArgs", "lineOperator");
            }
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy