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

com.pulumi.spotinst.oceancd.inputs.RolloutSpecState Maven / Gradle / Ivy

The 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.spotinst.oceancd.inputs;

import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.spotinst.oceancd.inputs.RolloutSpecFailurePolicyArgs;
import com.pulumi.spotinst.oceancd.inputs.RolloutSpecSpotDeploymentArgs;
import com.pulumi.spotinst.oceancd.inputs.RolloutSpecStrategyArgs;
import com.pulumi.spotinst.oceancd.inputs.RolloutSpecTrafficArgs;
import java.lang.String;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final RolloutSpecState Empty = new RolloutSpecState();

    /**
     * Holds information on how to react when failure happens.
     * 
     */
    @Import(name="failurePolicy")
    private @Nullable Output failurePolicy;

    /**
     * @return Holds information on how to react when failure happens.
     * 
     */
    public Optional> failurePolicy() {
        return Optional.ofNullable(this.failurePolicy);
    }

    /**
     * Identifier name for Ocean CD Rollout Spec. Must be unique
     * 
     */
    @Import(name="rolloutSpecName")
    private @Nullable Output rolloutSpecName;

    /**
     * @return Identifier name for Ocean CD Rollout Spec. Must be unique
     * 
     */
    public Optional> rolloutSpecName() {
        return Optional.ofNullable(this.rolloutSpecName);
    }

    /**
     * Represents the SpotDeployment selector.
     * 
     */
    @Import(name="spotDeployment")
    private @Nullable Output spotDeployment;

    /**
     * @return Represents the SpotDeployment selector.
     * 
     */
    public Optional> spotDeployment() {
        return Optional.ofNullable(this.spotDeployment);
    }

    /**
     * You must specify either `spotDeployment` OR `spotDeployments` but not both. Every SpotDeployment has to be unique. If more than one `SpotDeployment` has been configured, no `traffic` managers can be set as part of the RolloutSpec.For such case ensure that each of the chosen SpotDeployments are being exposed with different Kubernetes services.
     * 
     */
    @Import(name="spotDeployments")
    private @Nullable Output> spotDeployments;

    /**
     * @return You must specify either `spotDeployment` OR `spotDeployments` but not both. Every SpotDeployment has to be unique. If more than one `SpotDeployment` has been configured, no `traffic` managers can be set as part of the RolloutSpec.For such case ensure that each of the chosen SpotDeployments are being exposed with different Kubernetes services.
     * 
     */
    public Optional>> spotDeployments() {
        return Optional.ofNullable(this.spotDeployments);
    }

    /**
     * Determines the Ocean CD strategy
     * 
     */
    @Import(name="strategy")
    private @Nullable Output strategy;

    /**
     * @return Determines the Ocean CD strategy
     * 
     */
    public Optional> strategy() {
        return Optional.ofNullable(this.strategy);
    }

    /**
     * Hosts all of the supported service meshes needed to enable more fine-grained traffic routing. In case `SpotDeployments` contains more than one SpotDeployment the `traffic` manager may not be configured.
     * 
     */
    @Import(name="traffic")
    private @Nullable Output traffic;

    /**
     * @return Hosts all of the supported service meshes needed to enable more fine-grained traffic routing. In case `SpotDeployments` contains more than one SpotDeployment the `traffic` manager may not be configured.
     * 
     */
    public Optional> traffic() {
        return Optional.ofNullable(this.traffic);
    }

    private RolloutSpecState() {}

    private RolloutSpecState(RolloutSpecState $) {
        this.failurePolicy = $.failurePolicy;
        this.rolloutSpecName = $.rolloutSpecName;
        this.spotDeployment = $.spotDeployment;
        this.spotDeployments = $.spotDeployments;
        this.strategy = $.strategy;
        this.traffic = $.traffic;
    }

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

    public static final class Builder {
        private RolloutSpecState $;

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

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

        /**
         * @param failurePolicy Holds information on how to react when failure happens.
         * 
         * @return builder
         * 
         */
        public Builder failurePolicy(@Nullable Output failurePolicy) {
            $.failurePolicy = failurePolicy;
            return this;
        }

        /**
         * @param failurePolicy Holds information on how to react when failure happens.
         * 
         * @return builder
         * 
         */
        public Builder failurePolicy(RolloutSpecFailurePolicyArgs failurePolicy) {
            return failurePolicy(Output.of(failurePolicy));
        }

        /**
         * @param rolloutSpecName Identifier name for Ocean CD Rollout Spec. Must be unique
         * 
         * @return builder
         * 
         */
        public Builder rolloutSpecName(@Nullable Output rolloutSpecName) {
            $.rolloutSpecName = rolloutSpecName;
            return this;
        }

        /**
         * @param rolloutSpecName Identifier name for Ocean CD Rollout Spec. Must be unique
         * 
         * @return builder
         * 
         */
        public Builder rolloutSpecName(String rolloutSpecName) {
            return rolloutSpecName(Output.of(rolloutSpecName));
        }

        /**
         * @param spotDeployment Represents the SpotDeployment selector.
         * 
         * @return builder
         * 
         */
        public Builder spotDeployment(@Nullable Output spotDeployment) {
            $.spotDeployment = spotDeployment;
            return this;
        }

        /**
         * @param spotDeployment Represents the SpotDeployment selector.
         * 
         * @return builder
         * 
         */
        public Builder spotDeployment(RolloutSpecSpotDeploymentArgs spotDeployment) {
            return spotDeployment(Output.of(spotDeployment));
        }

        /**
         * @param spotDeployments You must specify either `spotDeployment` OR `spotDeployments` but not both. Every SpotDeployment has to be unique. If more than one `SpotDeployment` has been configured, no `traffic` managers can be set as part of the RolloutSpec.For such case ensure that each of the chosen SpotDeployments are being exposed with different Kubernetes services.
         * 
         * @return builder
         * 
         */
        public Builder spotDeployments(@Nullable Output> spotDeployments) {
            $.spotDeployments = spotDeployments;
            return this;
        }

        /**
         * @param spotDeployments You must specify either `spotDeployment` OR `spotDeployments` but not both. Every SpotDeployment has to be unique. If more than one `SpotDeployment` has been configured, no `traffic` managers can be set as part of the RolloutSpec.For such case ensure that each of the chosen SpotDeployments are being exposed with different Kubernetes services.
         * 
         * @return builder
         * 
         */
        public Builder spotDeployments(List spotDeployments) {
            return spotDeployments(Output.of(spotDeployments));
        }

        /**
         * @param spotDeployments You must specify either `spotDeployment` OR `spotDeployments` but not both. Every SpotDeployment has to be unique. If more than one `SpotDeployment` has been configured, no `traffic` managers can be set as part of the RolloutSpec.For such case ensure that each of the chosen SpotDeployments are being exposed with different Kubernetes services.
         * 
         * @return builder
         * 
         */
        public Builder spotDeployments(RolloutSpecSpotDeploymentArgs... spotDeployments) {
            return spotDeployments(List.of(spotDeployments));
        }

        /**
         * @param strategy Determines the Ocean CD strategy
         * 
         * @return builder
         * 
         */
        public Builder strategy(@Nullable Output strategy) {
            $.strategy = strategy;
            return this;
        }

        /**
         * @param strategy Determines the Ocean CD strategy
         * 
         * @return builder
         * 
         */
        public Builder strategy(RolloutSpecStrategyArgs strategy) {
            return strategy(Output.of(strategy));
        }

        /**
         * @param traffic Hosts all of the supported service meshes needed to enable more fine-grained traffic routing. In case `SpotDeployments` contains more than one SpotDeployment the `traffic` manager may not be configured.
         * 
         * @return builder
         * 
         */
        public Builder traffic(@Nullable Output traffic) {
            $.traffic = traffic;
            return this;
        }

        /**
         * @param traffic Hosts all of the supported service meshes needed to enable more fine-grained traffic routing. In case `SpotDeployments` contains more than one SpotDeployment the `traffic` manager may not be configured.
         * 
         * @return builder
         * 
         */
        public Builder traffic(RolloutSpecTrafficArgs traffic) {
            return traffic(Output.of(traffic));
        }

        public RolloutSpecState build() {
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy