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

com.pulumi.meraki.devices.inputs.SwitchPortsState Maven / Gradle / Ivy

There is a newer version: 0.4.0-alpha.1731736975
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.meraki.devices.inputs;

import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.meraki.devices.inputs.SwitchPortsMirrorArgs;
import com.pulumi.meraki.devices.inputs.SwitchPortsModuleArgs;
import com.pulumi.meraki.devices.inputs.SwitchPortsProfileArgs;
import java.lang.Boolean;
import java.lang.Integer;
import java.lang.String;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final SwitchPortsState Empty = new SwitchPortsState();

    /**
     * The number of a custom access policy to configure on the switch port. Only applicable when 'accessPolicyType' is 'Custom access policy'.
     * 
     */
    @Import(name="accessPolicyNumber")
    private @Nullable Output accessPolicyNumber;

    /**
     * @return The number of a custom access policy to configure on the switch port. Only applicable when 'accessPolicyType' is 'Custom access policy'.
     * 
     */
    public Optional> accessPolicyNumber() {
        return Optional.ofNullable(this.accessPolicyNumber);
    }

    /**
     * The type of the access policy of the switch port. Only applicable to access ports. Can be one of 'Open', 'Custom access policy', 'MAC allow list' or 'Sticky MAC allow list'.
     * 
     */
    @Import(name="accessPolicyType")
    private @Nullable Output accessPolicyType;

    /**
     * @return The type of the access policy of the switch port. Only applicable to access ports. Can be one of 'Open', 'Custom access policy', 'MAC allow list' or 'Sticky MAC allow list'.
     * 
     */
    public Optional> accessPolicyType() {
        return Optional.ofNullable(this.accessPolicyType);
    }

    /**
     * The adaptive policy group ID that will be used to tag traffic through this switch port. This ID must pre-exist during the configuration, else needs to be created using adaptivePolicy/groups API. Cannot be applied to a port on a switch bound to profile.
     * 
     */
    @Import(name="adaptivePolicyGroupId")
    private @Nullable Output adaptivePolicyGroupId;

    /**
     * @return The adaptive policy group ID that will be used to tag traffic through this switch port. This ID must pre-exist during the configuration, else needs to be created using adaptivePolicy/groups API. Cannot be applied to a port on a switch bound to profile.
     * 
     */
    public Optional> adaptivePolicyGroupId() {
        return Optional.ofNullable(this.adaptivePolicyGroupId);
    }

    /**
     * The VLANs allowed on the switch port. Only applicable to trunk ports.
     * 
     */
    @Import(name="allowedVlans")
    private @Nullable Output allowedVlans;

    /**
     * @return The VLANs allowed on the switch port. Only applicable to trunk ports.
     * 
     */
    public Optional> allowedVlans() {
        return Optional.ofNullable(this.allowedVlans);
    }

    /**
     * If true, ARP packets for this port will be considered trusted, and Dynamic ARP Inspection will allow the traffic.
     * 
     */
    @Import(name="daiTrusted")
    private @Nullable Output daiTrusted;

    /**
     * @return If true, ARP packets for this port will be considered trusted, and Dynamic ARP Inspection will allow the traffic.
     * 
     */
    public Optional> daiTrusted() {
        return Optional.ofNullable(this.daiTrusted);
    }

    /**
     * The status of the switch port.
     * 
     */
    @Import(name="enabled")
    private @Nullable Output enabled;

    /**
     * @return The status of the switch port.
     * 
     */
    public Optional> enabled() {
        return Optional.ofNullable(this.enabled);
    }

    /**
     * For supported switches (e.g. MS420/MS425), whether or not the port has flexible stacking enabled.
     * 
     */
    @Import(name="flexibleStackingEnabled")
    private @Nullable Output flexibleStackingEnabled;

    /**
     * @return For supported switches (e.g. MS420/MS425), whether or not the port has flexible stacking enabled.
     * 
     */
    public Optional> flexibleStackingEnabled() {
        return Optional.ofNullable(this.flexibleStackingEnabled);
    }

    /**
     * The isolation status of the switch port.
     * 
     */
    @Import(name="isolationEnabled")
    private @Nullable Output isolationEnabled;

    /**
     * @return The isolation status of the switch port.
     * 
     */
    public Optional> isolationEnabled() {
        return Optional.ofNullable(this.isolationEnabled);
    }

    /**
     * The link speed for the switch port.
     * 
     */
    @Import(name="linkNegotiation")
    private @Nullable Output linkNegotiation;

    /**
     * @return The link speed for the switch port.
     * 
     */
    public Optional> linkNegotiation() {
        return Optional.ofNullable(this.linkNegotiation);
    }

    /**
     * Available link speeds for the switch port.
     * 
     */
    @Import(name="linkNegotiationCapabilities")
    private @Nullable Output> linkNegotiationCapabilities;

    /**
     * @return Available link speeds for the switch port.
     * 
     */
    public Optional>> linkNegotiationCapabilities() {
        return Optional.ofNullable(this.linkNegotiationCapabilities);
    }

    /**
     * Only devices with MAC addresses specified in this list will have access to this port. Up to 20 MAC addresses can be defined. Only applicable when 'accessPolicyType' is 'MAC allow list'.
     * 
     */
    @Import(name="macAllowLists")
    private @Nullable Output> macAllowLists;

    /**
     * @return Only devices with MAC addresses specified in this list will have access to this port. Up to 20 MAC addresses can be defined. Only applicable when 'accessPolicyType' is 'MAC allow list'.
     * 
     */
    public Optional>> macAllowLists() {
        return Optional.ofNullable(this.macAllowLists);
    }

    /**
     * Port mirror
     * 
     */
    @Import(name="mirror")
    private @Nullable Output mirror;

    /**
     * @return Port mirror
     * 
     */
    public Optional> mirror() {
        return Optional.ofNullable(this.mirror);
    }

    /**
     * Expansion module
     * 
     */
    @Import(name="module")
    private @Nullable Output module;

    /**
     * @return Expansion module
     * 
     */
    public Optional> module() {
        return Optional.ofNullable(this.module);
    }

    /**
     * The name of the switch port.
     * 
     */
    @Import(name="name")
    private @Nullable Output name;

    /**
     * @return The name of the switch port.
     * 
     */
    public Optional> name() {
        return Optional.ofNullable(this.name);
    }

    /**
     * If true, Peer SGT is enabled for traffic through this switch port. Applicable to trunk port only, not access port. Cannot be applied to a port on a switch bound to profile.
     * 
     */
    @Import(name="peerSgtCapable")
    private @Nullable Output peerSgtCapable;

    /**
     * @return If true, Peer SGT is enabled for traffic through this switch port. Applicable to trunk port only, not access port. Cannot be applied to a port on a switch bound to profile.
     * 
     */
    public Optional> peerSgtCapable() {
        return Optional.ofNullable(this.peerSgtCapable);
    }

    /**
     * The PoE status of the switch port.
     * 
     */
    @Import(name="poeEnabled")
    private @Nullable Output poeEnabled;

    /**
     * @return The PoE status of the switch port.
     * 
     */
    public Optional> poeEnabled() {
        return Optional.ofNullable(this.poeEnabled);
    }

    /**
     * The identifier of the switch port.
     * 
     */
    @Import(name="portId")
    private @Nullable Output portId;

    /**
     * @return The identifier of the switch port.
     * 
     */
    public Optional> portId() {
        return Optional.ofNullable(this.portId);
    }

    /**
     * The ID of the port schedule. A value of null will clear the port schedule.
     * 
     */
    @Import(name="portScheduleId")
    private @Nullable Output portScheduleId;

    /**
     * @return The ID of the port schedule. A value of null will clear the port schedule.
     * 
     */
    public Optional> portScheduleId() {
        return Optional.ofNullable(this.portScheduleId);
    }

    /**
     * Profile attributes
     * 
     */
    @Import(name="profile")
    private @Nullable Output profile;

    /**
     * @return Profile attributes
     * 
     */
    public Optional> profile() {
        return Optional.ofNullable(this.profile);
    }

    /**
     * The rapid spanning tree protocol status.
     * 
     */
    @Import(name="rstpEnabled")
    private @Nullable Output rstpEnabled;

    /**
     * @return The rapid spanning tree protocol status.
     * 
     */
    public Optional> rstpEnabled() {
        return Optional.ofNullable(this.rstpEnabled);
    }

    /**
     * serial path parameter.
     * 
     */
    @Import(name="serial")
    private @Nullable Output serial;

    /**
     * @return serial path parameter.
     * 
     */
    public Optional> serial() {
        return Optional.ofNullable(this.serial);
    }

    /**
     * The maximum number of MAC addresses for sticky MAC allow list. Only applicable when 'accessPolicyType' is 'Sticky MAC allow list'.
     * 
     */
    @Import(name="stickyMacAllowListLimit")
    private @Nullable Output stickyMacAllowListLimit;

    /**
     * @return The maximum number of MAC addresses for sticky MAC allow list. Only applicable when 'accessPolicyType' is 'Sticky MAC allow list'.
     * 
     */
    public Optional> stickyMacAllowListLimit() {
        return Optional.ofNullable(this.stickyMacAllowListLimit);
    }

    /**
     * The initial list of MAC addresses for sticky Mac allow list. Only applicable when 'accessPolicyType' is 'Sticky MAC allow list'.
     * 
     */
    @Import(name="stickyMacAllowLists")
    private @Nullable Output> stickyMacAllowLists;

    /**
     * @return The initial list of MAC addresses for sticky Mac allow list. Only applicable when 'accessPolicyType' is 'Sticky MAC allow list'.
     * 
     */
    public Optional>> stickyMacAllowLists() {
        return Optional.ofNullable(this.stickyMacAllowLists);
    }

    /**
     * The storm control status of the switch port.
     * 
     */
    @Import(name="stormControlEnabled")
    private @Nullable Output stormControlEnabled;

    /**
     * @return The storm control status of the switch port.
     * 
     */
    public Optional> stormControlEnabled() {
        return Optional.ofNullable(this.stormControlEnabled);
    }

    /**
     * The state of the STP guard ('disabled', 'root guard', 'bpdu guard' or 'loop guard').
     * 
     */
    @Import(name="stpGuard")
    private @Nullable Output stpGuard;

    /**
     * @return The state of the STP guard ('disabled', 'root guard', 'bpdu guard' or 'loop guard').
     * 
     */
    public Optional> stpGuard() {
        return Optional.ofNullable(this.stpGuard);
    }

    /**
     * The list of tags of the switch port.
     * 
     */
    @Import(name="tags")
    private @Nullable Output> tags;

    /**
     * @return The list of tags of the switch port.
     * 
     */
    public Optional>> tags() {
        return Optional.ofNullable(this.tags);
    }

    /**
     * The type of the switch port ('trunk' or 'access').
     * 
     */
    @Import(name="type")
    private @Nullable Output type;

    /**
     * @return The type of the switch port ('trunk' or 'access').
     * 
     */
    public Optional> type() {
        return Optional.ofNullable(this.type);
    }

    /**
     * The action to take when Unidirectional Link is detected (Alert only, Enforce). Default configuration is Alert only.
     * 
     */
    @Import(name="udld")
    private @Nullable Output udld;

    /**
     * @return The action to take when Unidirectional Link is detected (Alert only, Enforce). Default configuration is Alert only.
     * 
     */
    public Optional> udld() {
        return Optional.ofNullable(this.udld);
    }

    /**
     * The VLAN of the switch port. For a trunk port, this is the native VLAN. A null value will clear the value set for trunk ports.
     * 
     */
    @Import(name="vlan")
    private @Nullable Output vlan;

    /**
     * @return The VLAN of the switch port. For a trunk port, this is the native VLAN. A null value will clear the value set for trunk ports.
     * 
     */
    public Optional> vlan() {
        return Optional.ofNullable(this.vlan);
    }

    /**
     * The voice VLAN of the switch port. Only applicable to access ports.
     * 
     */
    @Import(name="voiceVlan")
    private @Nullable Output voiceVlan;

    /**
     * @return The voice VLAN of the switch port. Only applicable to access ports.
     * 
     */
    public Optional> voiceVlan() {
        return Optional.ofNullable(this.voiceVlan);
    }

    private SwitchPortsState() {}

    private SwitchPortsState(SwitchPortsState $) {
        this.accessPolicyNumber = $.accessPolicyNumber;
        this.accessPolicyType = $.accessPolicyType;
        this.adaptivePolicyGroupId = $.adaptivePolicyGroupId;
        this.allowedVlans = $.allowedVlans;
        this.daiTrusted = $.daiTrusted;
        this.enabled = $.enabled;
        this.flexibleStackingEnabled = $.flexibleStackingEnabled;
        this.isolationEnabled = $.isolationEnabled;
        this.linkNegotiation = $.linkNegotiation;
        this.linkNegotiationCapabilities = $.linkNegotiationCapabilities;
        this.macAllowLists = $.macAllowLists;
        this.mirror = $.mirror;
        this.module = $.module;
        this.name = $.name;
        this.peerSgtCapable = $.peerSgtCapable;
        this.poeEnabled = $.poeEnabled;
        this.portId = $.portId;
        this.portScheduleId = $.portScheduleId;
        this.profile = $.profile;
        this.rstpEnabled = $.rstpEnabled;
        this.serial = $.serial;
        this.stickyMacAllowListLimit = $.stickyMacAllowListLimit;
        this.stickyMacAllowLists = $.stickyMacAllowLists;
        this.stormControlEnabled = $.stormControlEnabled;
        this.stpGuard = $.stpGuard;
        this.tags = $.tags;
        this.type = $.type;
        this.udld = $.udld;
        this.vlan = $.vlan;
        this.voiceVlan = $.voiceVlan;
    }

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

    public static final class Builder {
        private SwitchPortsState $;

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

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

        /**
         * @param accessPolicyNumber The number of a custom access policy to configure on the switch port. Only applicable when 'accessPolicyType' is 'Custom access policy'.
         * 
         * @return builder
         * 
         */
        public Builder accessPolicyNumber(@Nullable Output accessPolicyNumber) {
            $.accessPolicyNumber = accessPolicyNumber;
            return this;
        }

        /**
         * @param accessPolicyNumber The number of a custom access policy to configure on the switch port. Only applicable when 'accessPolicyType' is 'Custom access policy'.
         * 
         * @return builder
         * 
         */
        public Builder accessPolicyNumber(Integer accessPolicyNumber) {
            return accessPolicyNumber(Output.of(accessPolicyNumber));
        }

        /**
         * @param accessPolicyType The type of the access policy of the switch port. Only applicable to access ports. Can be one of 'Open', 'Custom access policy', 'MAC allow list' or 'Sticky MAC allow list'.
         * 
         * @return builder
         * 
         */
        public Builder accessPolicyType(@Nullable Output accessPolicyType) {
            $.accessPolicyType = accessPolicyType;
            return this;
        }

        /**
         * @param accessPolicyType The type of the access policy of the switch port. Only applicable to access ports. Can be one of 'Open', 'Custom access policy', 'MAC allow list' or 'Sticky MAC allow list'.
         * 
         * @return builder
         * 
         */
        public Builder accessPolicyType(String accessPolicyType) {
            return accessPolicyType(Output.of(accessPolicyType));
        }

        /**
         * @param adaptivePolicyGroupId The adaptive policy group ID that will be used to tag traffic through this switch port. This ID must pre-exist during the configuration, else needs to be created using adaptivePolicy/groups API. Cannot be applied to a port on a switch bound to profile.
         * 
         * @return builder
         * 
         */
        public Builder adaptivePolicyGroupId(@Nullable Output adaptivePolicyGroupId) {
            $.adaptivePolicyGroupId = adaptivePolicyGroupId;
            return this;
        }

        /**
         * @param adaptivePolicyGroupId The adaptive policy group ID that will be used to tag traffic through this switch port. This ID must pre-exist during the configuration, else needs to be created using adaptivePolicy/groups API. Cannot be applied to a port on a switch bound to profile.
         * 
         * @return builder
         * 
         */
        public Builder adaptivePolicyGroupId(String adaptivePolicyGroupId) {
            return adaptivePolicyGroupId(Output.of(adaptivePolicyGroupId));
        }

        /**
         * @param allowedVlans The VLANs allowed on the switch port. Only applicable to trunk ports.
         * 
         * @return builder
         * 
         */
        public Builder allowedVlans(@Nullable Output allowedVlans) {
            $.allowedVlans = allowedVlans;
            return this;
        }

        /**
         * @param allowedVlans The VLANs allowed on the switch port. Only applicable to trunk ports.
         * 
         * @return builder
         * 
         */
        public Builder allowedVlans(String allowedVlans) {
            return allowedVlans(Output.of(allowedVlans));
        }

        /**
         * @param daiTrusted If true, ARP packets for this port will be considered trusted, and Dynamic ARP Inspection will allow the traffic.
         * 
         * @return builder
         * 
         */
        public Builder daiTrusted(@Nullable Output daiTrusted) {
            $.daiTrusted = daiTrusted;
            return this;
        }

        /**
         * @param daiTrusted If true, ARP packets for this port will be considered trusted, and Dynamic ARP Inspection will allow the traffic.
         * 
         * @return builder
         * 
         */
        public Builder daiTrusted(Boolean daiTrusted) {
            return daiTrusted(Output.of(daiTrusted));
        }

        /**
         * @param enabled The status of the switch port.
         * 
         * @return builder
         * 
         */
        public Builder enabled(@Nullable Output enabled) {
            $.enabled = enabled;
            return this;
        }

        /**
         * @param enabled The status of the switch port.
         * 
         * @return builder
         * 
         */
        public Builder enabled(Boolean enabled) {
            return enabled(Output.of(enabled));
        }

        /**
         * @param flexibleStackingEnabled For supported switches (e.g. MS420/MS425), whether or not the port has flexible stacking enabled.
         * 
         * @return builder
         * 
         */
        public Builder flexibleStackingEnabled(@Nullable Output flexibleStackingEnabled) {
            $.flexibleStackingEnabled = flexibleStackingEnabled;
            return this;
        }

        /**
         * @param flexibleStackingEnabled For supported switches (e.g. MS420/MS425), whether or not the port has flexible stacking enabled.
         * 
         * @return builder
         * 
         */
        public Builder flexibleStackingEnabled(Boolean flexibleStackingEnabled) {
            return flexibleStackingEnabled(Output.of(flexibleStackingEnabled));
        }

        /**
         * @param isolationEnabled The isolation status of the switch port.
         * 
         * @return builder
         * 
         */
        public Builder isolationEnabled(@Nullable Output isolationEnabled) {
            $.isolationEnabled = isolationEnabled;
            return this;
        }

        /**
         * @param isolationEnabled The isolation status of the switch port.
         * 
         * @return builder
         * 
         */
        public Builder isolationEnabled(Boolean isolationEnabled) {
            return isolationEnabled(Output.of(isolationEnabled));
        }

        /**
         * @param linkNegotiation The link speed for the switch port.
         * 
         * @return builder
         * 
         */
        public Builder linkNegotiation(@Nullable Output linkNegotiation) {
            $.linkNegotiation = linkNegotiation;
            return this;
        }

        /**
         * @param linkNegotiation The link speed for the switch port.
         * 
         * @return builder
         * 
         */
        public Builder linkNegotiation(String linkNegotiation) {
            return linkNegotiation(Output.of(linkNegotiation));
        }

        /**
         * @param linkNegotiationCapabilities Available link speeds for the switch port.
         * 
         * @return builder
         * 
         */
        public Builder linkNegotiationCapabilities(@Nullable Output> linkNegotiationCapabilities) {
            $.linkNegotiationCapabilities = linkNegotiationCapabilities;
            return this;
        }

        /**
         * @param linkNegotiationCapabilities Available link speeds for the switch port.
         * 
         * @return builder
         * 
         */
        public Builder linkNegotiationCapabilities(List linkNegotiationCapabilities) {
            return linkNegotiationCapabilities(Output.of(linkNegotiationCapabilities));
        }

        /**
         * @param linkNegotiationCapabilities Available link speeds for the switch port.
         * 
         * @return builder
         * 
         */
        public Builder linkNegotiationCapabilities(String... linkNegotiationCapabilities) {
            return linkNegotiationCapabilities(List.of(linkNegotiationCapabilities));
        }

        /**
         * @param macAllowLists Only devices with MAC addresses specified in this list will have access to this port. Up to 20 MAC addresses can be defined. Only applicable when 'accessPolicyType' is 'MAC allow list'.
         * 
         * @return builder
         * 
         */
        public Builder macAllowLists(@Nullable Output> macAllowLists) {
            $.macAllowLists = macAllowLists;
            return this;
        }

        /**
         * @param macAllowLists Only devices with MAC addresses specified in this list will have access to this port. Up to 20 MAC addresses can be defined. Only applicable when 'accessPolicyType' is 'MAC allow list'.
         * 
         * @return builder
         * 
         */
        public Builder macAllowLists(List macAllowLists) {
            return macAllowLists(Output.of(macAllowLists));
        }

        /**
         * @param macAllowLists Only devices with MAC addresses specified in this list will have access to this port. Up to 20 MAC addresses can be defined. Only applicable when 'accessPolicyType' is 'MAC allow list'.
         * 
         * @return builder
         * 
         */
        public Builder macAllowLists(String... macAllowLists) {
            return macAllowLists(List.of(macAllowLists));
        }

        /**
         * @param mirror Port mirror
         * 
         * @return builder
         * 
         */
        public Builder mirror(@Nullable Output mirror) {
            $.mirror = mirror;
            return this;
        }

        /**
         * @param mirror Port mirror
         * 
         * @return builder
         * 
         */
        public Builder mirror(SwitchPortsMirrorArgs mirror) {
            return mirror(Output.of(mirror));
        }

        /**
         * @param module Expansion module
         * 
         * @return builder
         * 
         */
        public Builder module(@Nullable Output module) {
            $.module = module;
            return this;
        }

        /**
         * @param module Expansion module
         * 
         * @return builder
         * 
         */
        public Builder module(SwitchPortsModuleArgs module) {
            return module(Output.of(module));
        }

        /**
         * @param name The name of the switch port.
         * 
         * @return builder
         * 
         */
        public Builder name(@Nullable Output name) {
            $.name = name;
            return this;
        }

        /**
         * @param name The name of the switch port.
         * 
         * @return builder
         * 
         */
        public Builder name(String name) {
            return name(Output.of(name));
        }

        /**
         * @param peerSgtCapable If true, Peer SGT is enabled for traffic through this switch port. Applicable to trunk port only, not access port. Cannot be applied to a port on a switch bound to profile.
         * 
         * @return builder
         * 
         */
        public Builder peerSgtCapable(@Nullable Output peerSgtCapable) {
            $.peerSgtCapable = peerSgtCapable;
            return this;
        }

        /**
         * @param peerSgtCapable If true, Peer SGT is enabled for traffic through this switch port. Applicable to trunk port only, not access port. Cannot be applied to a port on a switch bound to profile.
         * 
         * @return builder
         * 
         */
        public Builder peerSgtCapable(Boolean peerSgtCapable) {
            return peerSgtCapable(Output.of(peerSgtCapable));
        }

        /**
         * @param poeEnabled The PoE status of the switch port.
         * 
         * @return builder
         * 
         */
        public Builder poeEnabled(@Nullable Output poeEnabled) {
            $.poeEnabled = poeEnabled;
            return this;
        }

        /**
         * @param poeEnabled The PoE status of the switch port.
         * 
         * @return builder
         * 
         */
        public Builder poeEnabled(Boolean poeEnabled) {
            return poeEnabled(Output.of(poeEnabled));
        }

        /**
         * @param portId The identifier of the switch port.
         * 
         * @return builder
         * 
         */
        public Builder portId(@Nullable Output portId) {
            $.portId = portId;
            return this;
        }

        /**
         * @param portId The identifier of the switch port.
         * 
         * @return builder
         * 
         */
        public Builder portId(String portId) {
            return portId(Output.of(portId));
        }

        /**
         * @param portScheduleId The ID of the port schedule. A value of null will clear the port schedule.
         * 
         * @return builder
         * 
         */
        public Builder portScheduleId(@Nullable Output portScheduleId) {
            $.portScheduleId = portScheduleId;
            return this;
        }

        /**
         * @param portScheduleId The ID of the port schedule. A value of null will clear the port schedule.
         * 
         * @return builder
         * 
         */
        public Builder portScheduleId(String portScheduleId) {
            return portScheduleId(Output.of(portScheduleId));
        }

        /**
         * @param profile Profile attributes
         * 
         * @return builder
         * 
         */
        public Builder profile(@Nullable Output profile) {
            $.profile = profile;
            return this;
        }

        /**
         * @param profile Profile attributes
         * 
         * @return builder
         * 
         */
        public Builder profile(SwitchPortsProfileArgs profile) {
            return profile(Output.of(profile));
        }

        /**
         * @param rstpEnabled The rapid spanning tree protocol status.
         * 
         * @return builder
         * 
         */
        public Builder rstpEnabled(@Nullable Output rstpEnabled) {
            $.rstpEnabled = rstpEnabled;
            return this;
        }

        /**
         * @param rstpEnabled The rapid spanning tree protocol status.
         * 
         * @return builder
         * 
         */
        public Builder rstpEnabled(Boolean rstpEnabled) {
            return rstpEnabled(Output.of(rstpEnabled));
        }

        /**
         * @param serial serial path parameter.
         * 
         * @return builder
         * 
         */
        public Builder serial(@Nullable Output serial) {
            $.serial = serial;
            return this;
        }

        /**
         * @param serial serial path parameter.
         * 
         * @return builder
         * 
         */
        public Builder serial(String serial) {
            return serial(Output.of(serial));
        }

        /**
         * @param stickyMacAllowListLimit The maximum number of MAC addresses for sticky MAC allow list. Only applicable when 'accessPolicyType' is 'Sticky MAC allow list'.
         * 
         * @return builder
         * 
         */
        public Builder stickyMacAllowListLimit(@Nullable Output stickyMacAllowListLimit) {
            $.stickyMacAllowListLimit = stickyMacAllowListLimit;
            return this;
        }

        /**
         * @param stickyMacAllowListLimit The maximum number of MAC addresses for sticky MAC allow list. Only applicable when 'accessPolicyType' is 'Sticky MAC allow list'.
         * 
         * @return builder
         * 
         */
        public Builder stickyMacAllowListLimit(Integer stickyMacAllowListLimit) {
            return stickyMacAllowListLimit(Output.of(stickyMacAllowListLimit));
        }

        /**
         * @param stickyMacAllowLists The initial list of MAC addresses for sticky Mac allow list. Only applicable when 'accessPolicyType' is 'Sticky MAC allow list'.
         * 
         * @return builder
         * 
         */
        public Builder stickyMacAllowLists(@Nullable Output> stickyMacAllowLists) {
            $.stickyMacAllowLists = stickyMacAllowLists;
            return this;
        }

        /**
         * @param stickyMacAllowLists The initial list of MAC addresses for sticky Mac allow list. Only applicable when 'accessPolicyType' is 'Sticky MAC allow list'.
         * 
         * @return builder
         * 
         */
        public Builder stickyMacAllowLists(List stickyMacAllowLists) {
            return stickyMacAllowLists(Output.of(stickyMacAllowLists));
        }

        /**
         * @param stickyMacAllowLists The initial list of MAC addresses for sticky Mac allow list. Only applicable when 'accessPolicyType' is 'Sticky MAC allow list'.
         * 
         * @return builder
         * 
         */
        public Builder stickyMacAllowLists(String... stickyMacAllowLists) {
            return stickyMacAllowLists(List.of(stickyMacAllowLists));
        }

        /**
         * @param stormControlEnabled The storm control status of the switch port.
         * 
         * @return builder
         * 
         */
        public Builder stormControlEnabled(@Nullable Output stormControlEnabled) {
            $.stormControlEnabled = stormControlEnabled;
            return this;
        }

        /**
         * @param stormControlEnabled The storm control status of the switch port.
         * 
         * @return builder
         * 
         */
        public Builder stormControlEnabled(Boolean stormControlEnabled) {
            return stormControlEnabled(Output.of(stormControlEnabled));
        }

        /**
         * @param stpGuard The state of the STP guard ('disabled', 'root guard', 'bpdu guard' or 'loop guard').
         * 
         * @return builder
         * 
         */
        public Builder stpGuard(@Nullable Output stpGuard) {
            $.stpGuard = stpGuard;
            return this;
        }

        /**
         * @param stpGuard The state of the STP guard ('disabled', 'root guard', 'bpdu guard' or 'loop guard').
         * 
         * @return builder
         * 
         */
        public Builder stpGuard(String stpGuard) {
            return stpGuard(Output.of(stpGuard));
        }

        /**
         * @param tags The list of tags of the switch port.
         * 
         * @return builder
         * 
         */
        public Builder tags(@Nullable Output> tags) {
            $.tags = tags;
            return this;
        }

        /**
         * @param tags The list of tags of the switch port.
         * 
         * @return builder
         * 
         */
        public Builder tags(List tags) {
            return tags(Output.of(tags));
        }

        /**
         * @param tags The list of tags of the switch port.
         * 
         * @return builder
         * 
         */
        public Builder tags(String... tags) {
            return tags(List.of(tags));
        }

        /**
         * @param type The type of the switch port ('trunk' or 'access').
         * 
         * @return builder
         * 
         */
        public Builder type(@Nullable Output type) {
            $.type = type;
            return this;
        }

        /**
         * @param type The type of the switch port ('trunk' or 'access').
         * 
         * @return builder
         * 
         */
        public Builder type(String type) {
            return type(Output.of(type));
        }

        /**
         * @param udld The action to take when Unidirectional Link is detected (Alert only, Enforce). Default configuration is Alert only.
         * 
         * @return builder
         * 
         */
        public Builder udld(@Nullable Output udld) {
            $.udld = udld;
            return this;
        }

        /**
         * @param udld The action to take when Unidirectional Link is detected (Alert only, Enforce). Default configuration is Alert only.
         * 
         * @return builder
         * 
         */
        public Builder udld(String udld) {
            return udld(Output.of(udld));
        }

        /**
         * @param vlan The VLAN of the switch port. For a trunk port, this is the native VLAN. A null value will clear the value set for trunk ports.
         * 
         * @return builder
         * 
         */
        public Builder vlan(@Nullable Output vlan) {
            $.vlan = vlan;
            return this;
        }

        /**
         * @param vlan The VLAN of the switch port. For a trunk port, this is the native VLAN. A null value will clear the value set for trunk ports.
         * 
         * @return builder
         * 
         */
        public Builder vlan(Integer vlan) {
            return vlan(Output.of(vlan));
        }

        /**
         * @param voiceVlan The voice VLAN of the switch port. Only applicable to access ports.
         * 
         * @return builder
         * 
         */
        public Builder voiceVlan(@Nullable Output voiceVlan) {
            $.voiceVlan = voiceVlan;
            return this;
        }

        /**
         * @param voiceVlan The voice VLAN of the switch port. Only applicable to access ports.
         * 
         * @return builder
         * 
         */
        public Builder voiceVlan(Integer voiceVlan) {
            return voiceVlan(Output.of(voiceVlan));
        }

        public SwitchPortsState build() {
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy