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

com.pulumi.aws.imagebuilder.outputs.DistributionConfigurationDistribution Maven / Gradle / Ivy

Go to download

A Pulumi package for creating and managing Amazon Web Services (AWS) cloud resources.

There is a newer version: 6.60.0-alpha.1731982519
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.aws.imagebuilder.outputs;

import com.pulumi.aws.imagebuilder.outputs.DistributionConfigurationDistributionAmiDistributionConfiguration;
import com.pulumi.aws.imagebuilder.outputs.DistributionConfigurationDistributionContainerDistributionConfiguration;
import com.pulumi.aws.imagebuilder.outputs.DistributionConfigurationDistributionFastLaunchConfiguration;
import com.pulumi.aws.imagebuilder.outputs.DistributionConfigurationDistributionLaunchTemplateConfiguration;
import com.pulumi.aws.imagebuilder.outputs.DistributionConfigurationDistributionS3ExportConfiguration;
import com.pulumi.core.annotations.CustomType;
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;

@CustomType
public final class DistributionConfigurationDistribution {
    /**
     * @return Configuration block with Amazon Machine Image (AMI) distribution settings. Detailed below.
     * 
     */
    private @Nullable DistributionConfigurationDistributionAmiDistributionConfiguration amiDistributionConfiguration;
    /**
     * @return Configuration block with container distribution settings. Detailed below.
     * 
     */
    private @Nullable DistributionConfigurationDistributionContainerDistributionConfiguration containerDistributionConfiguration;
    /**
     * @return Set of Windows faster-launching configurations to use for AMI distribution. Detailed below.
     * 
     */
    private @Nullable List fastLaunchConfigurations;
    /**
     * @return Set of launch template configuration settings that apply to image distribution. Detailed below.
     * 
     */
    private @Nullable List launchTemplateConfigurations;
    /**
     * @return Set of Amazon Resource Names (ARNs) of License Manager License Configurations.
     * 
     */
    private @Nullable List licenseConfigurationArns;
    /**
     * @return AWS Region for the distribution.
     * 
     * The following arguments are optional:
     * 
     */
    private String region;
    /**
     * @return Configuration block with S3 export settings. Detailed below.
     * 
     */
    private @Nullable DistributionConfigurationDistributionS3ExportConfiguration s3ExportConfiguration;

    private DistributionConfigurationDistribution() {}
    /**
     * @return Configuration block with Amazon Machine Image (AMI) distribution settings. Detailed below.
     * 
     */
    public Optional amiDistributionConfiguration() {
        return Optional.ofNullable(this.amiDistributionConfiguration);
    }
    /**
     * @return Configuration block with container distribution settings. Detailed below.
     * 
     */
    public Optional containerDistributionConfiguration() {
        return Optional.ofNullable(this.containerDistributionConfiguration);
    }
    /**
     * @return Set of Windows faster-launching configurations to use for AMI distribution. Detailed below.
     * 
     */
    public List fastLaunchConfigurations() {
        return this.fastLaunchConfigurations == null ? List.of() : this.fastLaunchConfigurations;
    }
    /**
     * @return Set of launch template configuration settings that apply to image distribution. Detailed below.
     * 
     */
    public List launchTemplateConfigurations() {
        return this.launchTemplateConfigurations == null ? List.of() : this.launchTemplateConfigurations;
    }
    /**
     * @return Set of Amazon Resource Names (ARNs) of License Manager License Configurations.
     * 
     */
    public List licenseConfigurationArns() {
        return this.licenseConfigurationArns == null ? List.of() : this.licenseConfigurationArns;
    }
    /**
     * @return AWS Region for the distribution.
     * 
     * The following arguments are optional:
     * 
     */
    public String region() {
        return this.region;
    }
    /**
     * @return Configuration block with S3 export settings. Detailed below.
     * 
     */
    public Optional s3ExportConfiguration() {
        return Optional.ofNullable(this.s3ExportConfiguration);
    }

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

    public static Builder builder(DistributionConfigurationDistribution defaults) {
        return new Builder(defaults);
    }
    @CustomType.Builder
    public static final class Builder {
        private @Nullable DistributionConfigurationDistributionAmiDistributionConfiguration amiDistributionConfiguration;
        private @Nullable DistributionConfigurationDistributionContainerDistributionConfiguration containerDistributionConfiguration;
        private @Nullable List fastLaunchConfigurations;
        private @Nullable List launchTemplateConfigurations;
        private @Nullable List licenseConfigurationArns;
        private String region;
        private @Nullable DistributionConfigurationDistributionS3ExportConfiguration s3ExportConfiguration;
        public Builder() {}
        public Builder(DistributionConfigurationDistribution defaults) {
    	      Objects.requireNonNull(defaults);
    	      this.amiDistributionConfiguration = defaults.amiDistributionConfiguration;
    	      this.containerDistributionConfiguration = defaults.containerDistributionConfiguration;
    	      this.fastLaunchConfigurations = defaults.fastLaunchConfigurations;
    	      this.launchTemplateConfigurations = defaults.launchTemplateConfigurations;
    	      this.licenseConfigurationArns = defaults.licenseConfigurationArns;
    	      this.region = defaults.region;
    	      this.s3ExportConfiguration = defaults.s3ExportConfiguration;
        }

        @CustomType.Setter
        public Builder amiDistributionConfiguration(@Nullable DistributionConfigurationDistributionAmiDistributionConfiguration amiDistributionConfiguration) {

            this.amiDistributionConfiguration = amiDistributionConfiguration;
            return this;
        }
        @CustomType.Setter
        public Builder containerDistributionConfiguration(@Nullable DistributionConfigurationDistributionContainerDistributionConfiguration containerDistributionConfiguration) {

            this.containerDistributionConfiguration = containerDistributionConfiguration;
            return this;
        }
        @CustomType.Setter
        public Builder fastLaunchConfigurations(@Nullable List fastLaunchConfigurations) {

            this.fastLaunchConfigurations = fastLaunchConfigurations;
            return this;
        }
        public Builder fastLaunchConfigurations(DistributionConfigurationDistributionFastLaunchConfiguration... fastLaunchConfigurations) {
            return fastLaunchConfigurations(List.of(fastLaunchConfigurations));
        }
        @CustomType.Setter
        public Builder launchTemplateConfigurations(@Nullable List launchTemplateConfigurations) {

            this.launchTemplateConfigurations = launchTemplateConfigurations;
            return this;
        }
        public Builder launchTemplateConfigurations(DistributionConfigurationDistributionLaunchTemplateConfiguration... launchTemplateConfigurations) {
            return launchTemplateConfigurations(List.of(launchTemplateConfigurations));
        }
        @CustomType.Setter
        public Builder licenseConfigurationArns(@Nullable List licenseConfigurationArns) {

            this.licenseConfigurationArns = licenseConfigurationArns;
            return this;
        }
        public Builder licenseConfigurationArns(String... licenseConfigurationArns) {
            return licenseConfigurationArns(List.of(licenseConfigurationArns));
        }
        @CustomType.Setter
        public Builder region(String region) {
            if (region == null) {
              throw new MissingRequiredPropertyException("DistributionConfigurationDistribution", "region");
            }
            this.region = region;
            return this;
        }
        @CustomType.Setter
        public Builder s3ExportConfiguration(@Nullable DistributionConfigurationDistributionS3ExportConfiguration s3ExportConfiguration) {

            this.s3ExportConfiguration = s3ExportConfiguration;
            return this;
        }
        public DistributionConfigurationDistribution build() {
            final var _resultValue = new DistributionConfigurationDistribution();
            _resultValue.amiDistributionConfiguration = amiDistributionConfiguration;
            _resultValue.containerDistributionConfiguration = containerDistributionConfiguration;
            _resultValue.fastLaunchConfigurations = fastLaunchConfigurations;
            _resultValue.launchTemplateConfigurations = launchTemplateConfigurations;
            _resultValue.licenseConfigurationArns = licenseConfigurationArns;
            _resultValue.region = region;
            _resultValue.s3ExportConfiguration = s3ExportConfiguration;
            return _resultValue;
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy