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

com.pulumi.aws.imagebuilder.inputs.DistributionConfigurationDistributionArgs Maven / Gradle / Ivy

// *** 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.imagebuilder.inputs;

import com.pulumi.aws.imagebuilder.inputs.DistributionConfigurationDistributionAmiDistributionConfigurationArgs;
import com.pulumi.aws.imagebuilder.inputs.DistributionConfigurationDistributionContainerDistributionConfigurationArgs;
import com.pulumi.aws.imagebuilder.inputs.DistributionConfigurationDistributionFastLaunchConfigurationArgs;
import com.pulumi.aws.imagebuilder.inputs.DistributionConfigurationDistributionLaunchTemplateConfigurationArgs;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.String;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final DistributionConfigurationDistributionArgs Empty = new DistributionConfigurationDistributionArgs();

    /**
     * Configuration block with Amazon Machine Image (AMI) distribution settings. Detailed below.
     * 
     */
    @Import(name="amiDistributionConfiguration")
    private @Nullable Output amiDistributionConfiguration;

    /**
     * @return Configuration block with Amazon Machine Image (AMI) distribution settings. Detailed below.
     * 
     */
    public Optional> amiDistributionConfiguration() {
        return Optional.ofNullable(this.amiDistributionConfiguration);
    }

    /**
     * Configuration block with container distribution settings. Detailed below.
     * 
     */
    @Import(name="containerDistributionConfiguration")
    private @Nullable Output containerDistributionConfiguration;

    /**
     * @return Configuration block with container distribution settings. Detailed below.
     * 
     */
    public Optional> containerDistributionConfiguration() {
        return Optional.ofNullable(this.containerDistributionConfiguration);
    }

    /**
     * Set of Windows faster-launching configurations to use for AMI distribution. Detailed below.
     * 
     */
    @Import(name="fastLaunchConfigurations")
    private @Nullable Output> fastLaunchConfigurations;

    /**
     * @return Set of Windows faster-launching configurations to use for AMI distribution. Detailed below.
     * 
     */
    public Optional>> fastLaunchConfigurations() {
        return Optional.ofNullable(this.fastLaunchConfigurations);
    }

    /**
     * Set of launch template configuration settings that apply to image distribution. Detailed below.
     * 
     */
    @Import(name="launchTemplateConfigurations")
    private @Nullable Output> launchTemplateConfigurations;

    /**
     * @return Set of launch template configuration settings that apply to image distribution. Detailed below.
     * 
     */
    public Optional>> launchTemplateConfigurations() {
        return Optional.ofNullable(this.launchTemplateConfigurations);
    }

    /**
     * Set of Amazon Resource Names (ARNs) of License Manager License Configurations.
     * 
     */
    @Import(name="licenseConfigurationArns")
    private @Nullable Output> licenseConfigurationArns;

    /**
     * @return Set of Amazon Resource Names (ARNs) of License Manager License Configurations.
     * 
     */
    public Optional>> licenseConfigurationArns() {
        return Optional.ofNullable(this.licenseConfigurationArns);
    }

    /**
     * AWS Region for the distribution.
     * 
     * The following arguments are optional:
     * 
     */
    @Import(name="region", required=true)
    private Output region;

    /**
     * @return AWS Region for the distribution.
     * 
     * The following arguments are optional:
     * 
     */
    public Output region() {
        return this.region;
    }

    private DistributionConfigurationDistributionArgs() {}

    private DistributionConfigurationDistributionArgs(DistributionConfigurationDistributionArgs $) {
        this.amiDistributionConfiguration = $.amiDistributionConfiguration;
        this.containerDistributionConfiguration = $.containerDistributionConfiguration;
        this.fastLaunchConfigurations = $.fastLaunchConfigurations;
        this.launchTemplateConfigurations = $.launchTemplateConfigurations;
        this.licenseConfigurationArns = $.licenseConfigurationArns;
        this.region = $.region;
    }

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

    public static final class Builder {
        private DistributionConfigurationDistributionArgs $;

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

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

        /**
         * @param amiDistributionConfiguration Configuration block with Amazon Machine Image (AMI) distribution settings. Detailed below.
         * 
         * @return builder
         * 
         */
        public Builder amiDistributionConfiguration(@Nullable Output amiDistributionConfiguration) {
            $.amiDistributionConfiguration = amiDistributionConfiguration;
            return this;
        }

        /**
         * @param amiDistributionConfiguration Configuration block with Amazon Machine Image (AMI) distribution settings. Detailed below.
         * 
         * @return builder
         * 
         */
        public Builder amiDistributionConfiguration(DistributionConfigurationDistributionAmiDistributionConfigurationArgs amiDistributionConfiguration) {
            return amiDistributionConfiguration(Output.of(amiDistributionConfiguration));
        }

        /**
         * @param containerDistributionConfiguration Configuration block with container distribution settings. Detailed below.
         * 
         * @return builder
         * 
         */
        public Builder containerDistributionConfiguration(@Nullable Output containerDistributionConfiguration) {
            $.containerDistributionConfiguration = containerDistributionConfiguration;
            return this;
        }

        /**
         * @param containerDistributionConfiguration Configuration block with container distribution settings. Detailed below.
         * 
         * @return builder
         * 
         */
        public Builder containerDistributionConfiguration(DistributionConfigurationDistributionContainerDistributionConfigurationArgs containerDistributionConfiguration) {
            return containerDistributionConfiguration(Output.of(containerDistributionConfiguration));
        }

        /**
         * @param fastLaunchConfigurations Set of Windows faster-launching configurations to use for AMI distribution. Detailed below.
         * 
         * @return builder
         * 
         */
        public Builder fastLaunchConfigurations(@Nullable Output> fastLaunchConfigurations) {
            $.fastLaunchConfigurations = fastLaunchConfigurations;
            return this;
        }

        /**
         * @param fastLaunchConfigurations Set of Windows faster-launching configurations to use for AMI distribution. Detailed below.
         * 
         * @return builder
         * 
         */
        public Builder fastLaunchConfigurations(List fastLaunchConfigurations) {
            return fastLaunchConfigurations(Output.of(fastLaunchConfigurations));
        }

        /**
         * @param fastLaunchConfigurations Set of Windows faster-launching configurations to use for AMI distribution. Detailed below.
         * 
         * @return builder
         * 
         */
        public Builder fastLaunchConfigurations(DistributionConfigurationDistributionFastLaunchConfigurationArgs... fastLaunchConfigurations) {
            return fastLaunchConfigurations(List.of(fastLaunchConfigurations));
        }

        /**
         * @param launchTemplateConfigurations Set of launch template configuration settings that apply to image distribution. Detailed below.
         * 
         * @return builder
         * 
         */
        public Builder launchTemplateConfigurations(@Nullable Output> launchTemplateConfigurations) {
            $.launchTemplateConfigurations = launchTemplateConfigurations;
            return this;
        }

        /**
         * @param launchTemplateConfigurations Set of launch template configuration settings that apply to image distribution. Detailed below.
         * 
         * @return builder
         * 
         */
        public Builder launchTemplateConfigurations(List launchTemplateConfigurations) {
            return launchTemplateConfigurations(Output.of(launchTemplateConfigurations));
        }

        /**
         * @param launchTemplateConfigurations Set of launch template configuration settings that apply to image distribution. Detailed below.
         * 
         * @return builder
         * 
         */
        public Builder launchTemplateConfigurations(DistributionConfigurationDistributionLaunchTemplateConfigurationArgs... launchTemplateConfigurations) {
            return launchTemplateConfigurations(List.of(launchTemplateConfigurations));
        }

        /**
         * @param licenseConfigurationArns Set of Amazon Resource Names (ARNs) of License Manager License Configurations.
         * 
         * @return builder
         * 
         */
        public Builder licenseConfigurationArns(@Nullable Output> licenseConfigurationArns) {
            $.licenseConfigurationArns = licenseConfigurationArns;
            return this;
        }

        /**
         * @param licenseConfigurationArns Set of Amazon Resource Names (ARNs) of License Manager License Configurations.
         * 
         * @return builder
         * 
         */
        public Builder licenseConfigurationArns(List licenseConfigurationArns) {
            return licenseConfigurationArns(Output.of(licenseConfigurationArns));
        }

        /**
         * @param licenseConfigurationArns Set of Amazon Resource Names (ARNs) of License Manager License Configurations.
         * 
         * @return builder
         * 
         */
        public Builder licenseConfigurationArns(String... licenseConfigurationArns) {
            return licenseConfigurationArns(List.of(licenseConfigurationArns));
        }

        /**
         * @param region AWS Region for the distribution.
         * 
         * The following arguments are optional:
         * 
         * @return builder
         * 
         */
        public Builder region(Output region) {
            $.region = region;
            return this;
        }

        /**
         * @param region AWS Region for the distribution.
         * 
         * The following arguments are optional:
         * 
         * @return builder
         * 
         */
        public Builder region(String region) {
            return region(Output.of(region));
        }

        public DistributionConfigurationDistributionArgs build() {
            if ($.region == null) {
                throw new MissingRequiredPropertyException("DistributionConfigurationDistributionArgs", "region");
            }
            return $;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy