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

com.pulumi.aws.cloudfront.inputs.DistributionOriginCustomOriginConfigArgs 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.cloudfront.inputs;

import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
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 DistributionOriginCustomOriginConfigArgs extends com.pulumi.resources.ResourceArgs {

    public static final DistributionOriginCustomOriginConfigArgs Empty = new DistributionOriginCustomOriginConfigArgs();

    /**
     * HTTP port the custom origin listens on.
     * 
     */
    @Import(name="httpPort", required=true)
    private Output httpPort;

    /**
     * @return HTTP port the custom origin listens on.
     * 
     */
    public Output httpPort() {
        return this.httpPort;
    }

    /**
     * HTTPS port the custom origin listens on.
     * 
     */
    @Import(name="httpsPort", required=true)
    private Output httpsPort;

    /**
     * @return HTTPS port the custom origin listens on.
     * 
     */
    public Output httpsPort() {
        return this.httpsPort;
    }

    @Import(name="originKeepaliveTimeout")
    private @Nullable Output originKeepaliveTimeout;

    public Optional> originKeepaliveTimeout() {
        return Optional.ofNullable(this.originKeepaliveTimeout);
    }

    /**
     * Origin protocol policy to apply to your origin. One of `http-only`, `https-only`, or `match-viewer`.
     * 
     */
    @Import(name="originProtocolPolicy", required=true)
    private Output originProtocolPolicy;

    /**
     * @return Origin protocol policy to apply to your origin. One of `http-only`, `https-only`, or `match-viewer`.
     * 
     */
    public Output originProtocolPolicy() {
        return this.originProtocolPolicy;
    }

    @Import(name="originReadTimeout")
    private @Nullable Output originReadTimeout;

    public Optional> originReadTimeout() {
        return Optional.ofNullable(this.originReadTimeout);
    }

    /**
     * List of SSL/TLS protocols that CloudFront can use when connecting to your origin over HTTPS. Valid values: `SSLv3`, `TLSv1`, `TLSv1.1`, `TLSv1.2`. For more information, see [Minimum Origin SSL Protocol](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesOriginSSLProtocols) in the Amazon CloudFront Developer Guide.
     * 
     */
    @Import(name="originSslProtocols", required=true)
    private Output> originSslProtocols;

    /**
     * @return List of SSL/TLS protocols that CloudFront can use when connecting to your origin over HTTPS. Valid values: `SSLv3`, `TLSv1`, `TLSv1.1`, `TLSv1.2`. For more information, see [Minimum Origin SSL Protocol](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesOriginSSLProtocols) in the Amazon CloudFront Developer Guide.
     * 
     */
    public Output> originSslProtocols() {
        return this.originSslProtocols;
    }

    private DistributionOriginCustomOriginConfigArgs() {}

    private DistributionOriginCustomOriginConfigArgs(DistributionOriginCustomOriginConfigArgs $) {
        this.httpPort = $.httpPort;
        this.httpsPort = $.httpsPort;
        this.originKeepaliveTimeout = $.originKeepaliveTimeout;
        this.originProtocolPolicy = $.originProtocolPolicy;
        this.originReadTimeout = $.originReadTimeout;
        this.originSslProtocols = $.originSslProtocols;
    }

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

    public static final class Builder {
        private DistributionOriginCustomOriginConfigArgs $;

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

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

        /**
         * @param httpPort HTTP port the custom origin listens on.
         * 
         * @return builder
         * 
         */
        public Builder httpPort(Output httpPort) {
            $.httpPort = httpPort;
            return this;
        }

        /**
         * @param httpPort HTTP port the custom origin listens on.
         * 
         * @return builder
         * 
         */
        public Builder httpPort(Integer httpPort) {
            return httpPort(Output.of(httpPort));
        }

        /**
         * @param httpsPort HTTPS port the custom origin listens on.
         * 
         * @return builder
         * 
         */
        public Builder httpsPort(Output httpsPort) {
            $.httpsPort = httpsPort;
            return this;
        }

        /**
         * @param httpsPort HTTPS port the custom origin listens on.
         * 
         * @return builder
         * 
         */
        public Builder httpsPort(Integer httpsPort) {
            return httpsPort(Output.of(httpsPort));
        }

        public Builder originKeepaliveTimeout(@Nullable Output originKeepaliveTimeout) {
            $.originKeepaliveTimeout = originKeepaliveTimeout;
            return this;
        }

        public Builder originKeepaliveTimeout(Integer originKeepaliveTimeout) {
            return originKeepaliveTimeout(Output.of(originKeepaliveTimeout));
        }

        /**
         * @param originProtocolPolicy Origin protocol policy to apply to your origin. One of `http-only`, `https-only`, or `match-viewer`.
         * 
         * @return builder
         * 
         */
        public Builder originProtocolPolicy(Output originProtocolPolicy) {
            $.originProtocolPolicy = originProtocolPolicy;
            return this;
        }

        /**
         * @param originProtocolPolicy Origin protocol policy to apply to your origin. One of `http-only`, `https-only`, or `match-viewer`.
         * 
         * @return builder
         * 
         */
        public Builder originProtocolPolicy(String originProtocolPolicy) {
            return originProtocolPolicy(Output.of(originProtocolPolicy));
        }

        public Builder originReadTimeout(@Nullable Output originReadTimeout) {
            $.originReadTimeout = originReadTimeout;
            return this;
        }

        public Builder originReadTimeout(Integer originReadTimeout) {
            return originReadTimeout(Output.of(originReadTimeout));
        }

        /**
         * @param originSslProtocols List of SSL/TLS protocols that CloudFront can use when connecting to your origin over HTTPS. Valid values: `SSLv3`, `TLSv1`, `TLSv1.1`, `TLSv1.2`. For more information, see [Minimum Origin SSL Protocol](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesOriginSSLProtocols) in the Amazon CloudFront Developer Guide.
         * 
         * @return builder
         * 
         */
        public Builder originSslProtocols(Output> originSslProtocols) {
            $.originSslProtocols = originSslProtocols;
            return this;
        }

        /**
         * @param originSslProtocols List of SSL/TLS protocols that CloudFront can use when connecting to your origin over HTTPS. Valid values: `SSLv3`, `TLSv1`, `TLSv1.1`, `TLSv1.2`. For more information, see [Minimum Origin SSL Protocol](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesOriginSSLProtocols) in the Amazon CloudFront Developer Guide.
         * 
         * @return builder
         * 
         */
        public Builder originSslProtocols(List originSslProtocols) {
            return originSslProtocols(Output.of(originSslProtocols));
        }

        /**
         * @param originSslProtocols List of SSL/TLS protocols that CloudFront can use when connecting to your origin over HTTPS. Valid values: `SSLv3`, `TLSv1`, `TLSv1.1`, `TLSv1.2`. For more information, see [Minimum Origin SSL Protocol](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesOriginSSLProtocols) in the Amazon CloudFront Developer Guide.
         * 
         * @return builder
         * 
         */
        public Builder originSslProtocols(String... originSslProtocols) {
            return originSslProtocols(List.of(originSslProtocols));
        }

        public DistributionOriginCustomOriginConfigArgs build() {
            if ($.httpPort == null) {
                throw new MissingRequiredPropertyException("DistributionOriginCustomOriginConfigArgs", "httpPort");
            }
            if ($.httpsPort == null) {
                throw new MissingRequiredPropertyException("DistributionOriginCustomOriginConfigArgs", "httpsPort");
            }
            if ($.originProtocolPolicy == null) {
                throw new MissingRequiredPropertyException("DistributionOriginCustomOriginConfigArgs", "originProtocolPolicy");
            }
            if ($.originSslProtocols == null) {
                throw new MissingRequiredPropertyException("DistributionOriginCustomOriginConfigArgs", "originSslProtocols");
            }
            return $;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy