// *** 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.aws.evidently.outputs;

import com.pulumi.aws.evidently.outputs.LaunchScheduledSplitsConfigStep;
import com.pulumi.core.annotations.CustomType;
import java.util.List;
import java.util.Objects;

@CustomType
public final class LaunchScheduledSplitsConfig {
    /**
     * @return One or up to six blocks that define the traffic allocation percentages among the feature variations during each step of the launch. This also defines the start time of each step. Detailed below.
     * 
     */
    private List<LaunchScheduledSplitsConfigStep> steps;

    private LaunchScheduledSplitsConfig() {}
    /**
     * @return One or up to six blocks that define the traffic allocation percentages among the feature variations during each step of the launch. This also defines the start time of each step. Detailed below.
     * 
     */
    public List<LaunchScheduledSplitsConfigStep> steps() {
        return this.steps;
    }

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

    public static Builder builder(LaunchScheduledSplitsConfig defaults) {
        return new Builder(defaults);
    }
    @CustomType.Builder
    public static final class Builder {
        private List<LaunchScheduledSplitsConfigStep> steps;
        public Builder() {}
        public Builder(LaunchScheduledSplitsConfig defaults) {
    	      Objects.requireNonNull(defaults);
    	      this.steps = defaults.steps;
        }

        @CustomType.Setter
        public Builder steps(List<LaunchScheduledSplitsConfigStep> steps) {
            this.steps = Objects.requireNonNull(steps);
            return this;
        }
        public Builder steps(LaunchScheduledSplitsConfigStep... steps) {
            return steps(List.of(steps));
        }
        public LaunchScheduledSplitsConfig build() {
            final var o = new LaunchScheduledSplitsConfig();
            o.steps = steps;
            return o;
        }
    }
}
