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

com.pulumi.azurenative.cdn.AFDOriginArgs Maven / Gradle / Ivy

There is a newer version: 2.78.0
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.azurenative.cdn;

import com.pulumi.azurenative.cdn.enums.EnabledState;
import com.pulumi.azurenative.cdn.inputs.ResourceReferenceArgs;
import com.pulumi.azurenative.cdn.inputs.SharedPrivateLinkResourcePropertiesArgs;
import com.pulumi.core.Either;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.core.internal.Codegen;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.Boolean;
import java.lang.Integer;
import java.lang.String;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final AFDOriginArgs Empty = new AFDOriginArgs();

    /**
     * Resource reference to the Azure origin resource.
     * 
     */
    @Import(name="azureOrigin")
    private @Nullable Output azureOrigin;

    /**
     * @return Resource reference to the Azure origin resource.
     * 
     */
    public Optional> azureOrigin() {
        return Optional.ofNullable(this.azureOrigin);
    }

    /**
     * Whether to enable health probes to be made against backends defined under backendPools. Health probes can only be disabled if there is a single enabled backend in single enabled backend pool.
     * 
     */
    @Import(name="enabledState")
    private @Nullable Output> enabledState;

    /**
     * @return Whether to enable health probes to be made against backends defined under backendPools. Health probes can only be disabled if there is a single enabled backend in single enabled backend pool.
     * 
     */
    public Optional>> enabledState() {
        return Optional.ofNullable(this.enabledState);
    }

    /**
     * Whether to enable certificate name check at origin level
     * 
     */
    @Import(name="enforceCertificateNameCheck")
    private @Nullable Output enforceCertificateNameCheck;

    /**
     * @return Whether to enable certificate name check at origin level
     * 
     */
    public Optional> enforceCertificateNameCheck() {
        return Optional.ofNullable(this.enforceCertificateNameCheck);
    }

    /**
     * The address of the origin. Domain names, IPv4 addresses, and IPv6 addresses are supported.This should be unique across all origins in an endpoint.
     * 
     */
    @Import(name="hostName", required=true)
    private Output hostName;

    /**
     * @return The address of the origin. Domain names, IPv4 addresses, and IPv6 addresses are supported.This should be unique across all origins in an endpoint.
     * 
     */
    public Output hostName() {
        return this.hostName;
    }

    /**
     * The value of the HTTP port. Must be between 1 and 65535.
     * 
     */
    @Import(name="httpPort")
    private @Nullable Output httpPort;

    /**
     * @return The value of the HTTP port. Must be between 1 and 65535.
     * 
     */
    public Optional> httpPort() {
        return Optional.ofNullable(this.httpPort);
    }

    /**
     * The value of the HTTPS port. Must be between 1 and 65535.
     * 
     */
    @Import(name="httpsPort")
    private @Nullable Output httpsPort;

    /**
     * @return The value of the HTTPS port. Must be between 1 and 65535.
     * 
     */
    public Optional> httpsPort() {
        return Optional.ofNullable(this.httpsPort);
    }

    /**
     * Name of the origin group which is unique within the profile.
     * 
     */
    @Import(name="originGroupName", required=true)
    private Output originGroupName;

    /**
     * @return Name of the origin group which is unique within the profile.
     * 
     */
    public Output originGroupName() {
        return this.originGroupName;
    }

    /**
     * The host header value sent to the origin with each request. If you leave this blank, the request hostname determines this value. Azure Front Door origins, such as Web Apps, Blob Storage, and Cloud Services require this host header value to match the origin hostname by default. This overrides the host header defined at Endpoint
     * 
     */
    @Import(name="originHostHeader")
    private @Nullable Output originHostHeader;

    /**
     * @return The host header value sent to the origin with each request. If you leave this blank, the request hostname determines this value. Azure Front Door origins, such as Web Apps, Blob Storage, and Cloud Services require this host header value to match the origin hostname by default. This overrides the host header defined at Endpoint
     * 
     */
    public Optional> originHostHeader() {
        return Optional.ofNullable(this.originHostHeader);
    }

    /**
     * Name of the origin that is unique within the profile.
     * 
     */
    @Import(name="originName")
    private @Nullable Output originName;

    /**
     * @return Name of the origin that is unique within the profile.
     * 
     */
    public Optional> originName() {
        return Optional.ofNullable(this.originName);
    }

    /**
     * Priority of origin in given origin group for load balancing. Higher priorities will not be used for load balancing if any lower priority origin is healthy.Must be between 1 and 5
     * 
     */
    @Import(name="priority")
    private @Nullable Output priority;

    /**
     * @return Priority of origin in given origin group for load balancing. Higher priorities will not be used for load balancing if any lower priority origin is healthy.Must be between 1 and 5
     * 
     */
    public Optional> priority() {
        return Optional.ofNullable(this.priority);
    }

    /**
     * Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique within the resource group.
     * 
     */
    @Import(name="profileName", required=true)
    private Output profileName;

    /**
     * @return Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique within the resource group.
     * 
     */
    public Output profileName() {
        return this.profileName;
    }

    /**
     * Name of the Resource group within the Azure subscription.
     * 
     */
    @Import(name="resourceGroupName", required=true)
    private Output resourceGroupName;

    /**
     * @return Name of the Resource group within the Azure subscription.
     * 
     */
    public Output resourceGroupName() {
        return this.resourceGroupName;
    }

    /**
     * The properties of the private link resource for private origin.
     * 
     */
    @Import(name="sharedPrivateLinkResource")
    private @Nullable Output sharedPrivateLinkResource;

    /**
     * @return The properties of the private link resource for private origin.
     * 
     */
    public Optional> sharedPrivateLinkResource() {
        return Optional.ofNullable(this.sharedPrivateLinkResource);
    }

    /**
     * Weight of the origin in given origin group for load balancing. Must be between 1 and 1000
     * 
     */
    @Import(name="weight")
    private @Nullable Output weight;

    /**
     * @return Weight of the origin in given origin group for load balancing. Must be between 1 and 1000
     * 
     */
    public Optional> weight() {
        return Optional.ofNullable(this.weight);
    }

    private AFDOriginArgs() {}

    private AFDOriginArgs(AFDOriginArgs $) {
        this.azureOrigin = $.azureOrigin;
        this.enabledState = $.enabledState;
        this.enforceCertificateNameCheck = $.enforceCertificateNameCheck;
        this.hostName = $.hostName;
        this.httpPort = $.httpPort;
        this.httpsPort = $.httpsPort;
        this.originGroupName = $.originGroupName;
        this.originHostHeader = $.originHostHeader;
        this.originName = $.originName;
        this.priority = $.priority;
        this.profileName = $.profileName;
        this.resourceGroupName = $.resourceGroupName;
        this.sharedPrivateLinkResource = $.sharedPrivateLinkResource;
        this.weight = $.weight;
    }

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

    public static final class Builder {
        private AFDOriginArgs $;

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

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

        /**
         * @param azureOrigin Resource reference to the Azure origin resource.
         * 
         * @return builder
         * 
         */
        public Builder azureOrigin(@Nullable Output azureOrigin) {
            $.azureOrigin = azureOrigin;
            return this;
        }

        /**
         * @param azureOrigin Resource reference to the Azure origin resource.
         * 
         * @return builder
         * 
         */
        public Builder azureOrigin(ResourceReferenceArgs azureOrigin) {
            return azureOrigin(Output.of(azureOrigin));
        }

        /**
         * @param enabledState Whether to enable health probes to be made against backends defined under backendPools. Health probes can only be disabled if there is a single enabled backend in single enabled backend pool.
         * 
         * @return builder
         * 
         */
        public Builder enabledState(@Nullable Output> enabledState) {
            $.enabledState = enabledState;
            return this;
        }

        /**
         * @param enabledState Whether to enable health probes to be made against backends defined under backendPools. Health probes can only be disabled if there is a single enabled backend in single enabled backend pool.
         * 
         * @return builder
         * 
         */
        public Builder enabledState(Either enabledState) {
            return enabledState(Output.of(enabledState));
        }

        /**
         * @param enabledState Whether to enable health probes to be made against backends defined under backendPools. Health probes can only be disabled if there is a single enabled backend in single enabled backend pool.
         * 
         * @return builder
         * 
         */
        public Builder enabledState(String enabledState) {
            return enabledState(Either.ofLeft(enabledState));
        }

        /**
         * @param enabledState Whether to enable health probes to be made against backends defined under backendPools. Health probes can only be disabled if there is a single enabled backend in single enabled backend pool.
         * 
         * @return builder
         * 
         */
        public Builder enabledState(EnabledState enabledState) {
            return enabledState(Either.ofRight(enabledState));
        }

        /**
         * @param enforceCertificateNameCheck Whether to enable certificate name check at origin level
         * 
         * @return builder
         * 
         */
        public Builder enforceCertificateNameCheck(@Nullable Output enforceCertificateNameCheck) {
            $.enforceCertificateNameCheck = enforceCertificateNameCheck;
            return this;
        }

        /**
         * @param enforceCertificateNameCheck Whether to enable certificate name check at origin level
         * 
         * @return builder
         * 
         */
        public Builder enforceCertificateNameCheck(Boolean enforceCertificateNameCheck) {
            return enforceCertificateNameCheck(Output.of(enforceCertificateNameCheck));
        }

        /**
         * @param hostName The address of the origin. Domain names, IPv4 addresses, and IPv6 addresses are supported.This should be unique across all origins in an endpoint.
         * 
         * @return builder
         * 
         */
        public Builder hostName(Output hostName) {
            $.hostName = hostName;
            return this;
        }

        /**
         * @param hostName The address of the origin. Domain names, IPv4 addresses, and IPv6 addresses are supported.This should be unique across all origins in an endpoint.
         * 
         * @return builder
         * 
         */
        public Builder hostName(String hostName) {
            return hostName(Output.of(hostName));
        }

        /**
         * @param httpPort The value of the HTTP port. Must be between 1 and 65535.
         * 
         * @return builder
         * 
         */
        public Builder httpPort(@Nullable Output httpPort) {
            $.httpPort = httpPort;
            return this;
        }

        /**
         * @param httpPort The value of the HTTP port. Must be between 1 and 65535.
         * 
         * @return builder
         * 
         */
        public Builder httpPort(Integer httpPort) {
            return httpPort(Output.of(httpPort));
        }

        /**
         * @param httpsPort The value of the HTTPS port. Must be between 1 and 65535.
         * 
         * @return builder
         * 
         */
        public Builder httpsPort(@Nullable Output httpsPort) {
            $.httpsPort = httpsPort;
            return this;
        }

        /**
         * @param httpsPort The value of the HTTPS port. Must be between 1 and 65535.
         * 
         * @return builder
         * 
         */
        public Builder httpsPort(Integer httpsPort) {
            return httpsPort(Output.of(httpsPort));
        }

        /**
         * @param originGroupName Name of the origin group which is unique within the profile.
         * 
         * @return builder
         * 
         */
        public Builder originGroupName(Output originGroupName) {
            $.originGroupName = originGroupName;
            return this;
        }

        /**
         * @param originGroupName Name of the origin group which is unique within the profile.
         * 
         * @return builder
         * 
         */
        public Builder originGroupName(String originGroupName) {
            return originGroupName(Output.of(originGroupName));
        }

        /**
         * @param originHostHeader The host header value sent to the origin with each request. If you leave this blank, the request hostname determines this value. Azure Front Door origins, such as Web Apps, Blob Storage, and Cloud Services require this host header value to match the origin hostname by default. This overrides the host header defined at Endpoint
         * 
         * @return builder
         * 
         */
        public Builder originHostHeader(@Nullable Output originHostHeader) {
            $.originHostHeader = originHostHeader;
            return this;
        }

        /**
         * @param originHostHeader The host header value sent to the origin with each request. If you leave this blank, the request hostname determines this value. Azure Front Door origins, such as Web Apps, Blob Storage, and Cloud Services require this host header value to match the origin hostname by default. This overrides the host header defined at Endpoint
         * 
         * @return builder
         * 
         */
        public Builder originHostHeader(String originHostHeader) {
            return originHostHeader(Output.of(originHostHeader));
        }

        /**
         * @param originName Name of the origin that is unique within the profile.
         * 
         * @return builder
         * 
         */
        public Builder originName(@Nullable Output originName) {
            $.originName = originName;
            return this;
        }

        /**
         * @param originName Name of the origin that is unique within the profile.
         * 
         * @return builder
         * 
         */
        public Builder originName(String originName) {
            return originName(Output.of(originName));
        }

        /**
         * @param priority Priority of origin in given origin group for load balancing. Higher priorities will not be used for load balancing if any lower priority origin is healthy.Must be between 1 and 5
         * 
         * @return builder
         * 
         */
        public Builder priority(@Nullable Output priority) {
            $.priority = priority;
            return this;
        }

        /**
         * @param priority Priority of origin in given origin group for load balancing. Higher priorities will not be used for load balancing if any lower priority origin is healthy.Must be between 1 and 5
         * 
         * @return builder
         * 
         */
        public Builder priority(Integer priority) {
            return priority(Output.of(priority));
        }

        /**
         * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique within the resource group.
         * 
         * @return builder
         * 
         */
        public Builder profileName(Output profileName) {
            $.profileName = profileName;
            return this;
        }

        /**
         * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique within the resource group.
         * 
         * @return builder
         * 
         */
        public Builder profileName(String profileName) {
            return profileName(Output.of(profileName));
        }

        /**
         * @param resourceGroupName Name of the Resource group within the Azure subscription.
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupName(Output resourceGroupName) {
            $.resourceGroupName = resourceGroupName;
            return this;
        }

        /**
         * @param resourceGroupName Name of the Resource group within the Azure subscription.
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupName(String resourceGroupName) {
            return resourceGroupName(Output.of(resourceGroupName));
        }

        /**
         * @param sharedPrivateLinkResource The properties of the private link resource for private origin.
         * 
         * @return builder
         * 
         */
        public Builder sharedPrivateLinkResource(@Nullable Output sharedPrivateLinkResource) {
            $.sharedPrivateLinkResource = sharedPrivateLinkResource;
            return this;
        }

        /**
         * @param sharedPrivateLinkResource The properties of the private link resource for private origin.
         * 
         * @return builder
         * 
         */
        public Builder sharedPrivateLinkResource(SharedPrivateLinkResourcePropertiesArgs sharedPrivateLinkResource) {
            return sharedPrivateLinkResource(Output.of(sharedPrivateLinkResource));
        }

        /**
         * @param weight Weight of the origin in given origin group for load balancing. Must be between 1 and 1000
         * 
         * @return builder
         * 
         */
        public Builder weight(@Nullable Output weight) {
            $.weight = weight;
            return this;
        }

        /**
         * @param weight Weight of the origin in given origin group for load balancing. Must be between 1 and 1000
         * 
         * @return builder
         * 
         */
        public Builder weight(Integer weight) {
            return weight(Output.of(weight));
        }

        public AFDOriginArgs build() {
            $.enforceCertificateNameCheck = Codegen.booleanProp("enforceCertificateNameCheck").output().arg($.enforceCertificateNameCheck).def(true).getNullable();
            if ($.hostName == null) {
                throw new MissingRequiredPropertyException("AFDOriginArgs", "hostName");
            }
            $.httpPort = Codegen.integerProp("httpPort").output().arg($.httpPort).def(80).getNullable();
            $.httpsPort = Codegen.integerProp("httpsPort").output().arg($.httpsPort).def(443).getNullable();
            if ($.originGroupName == null) {
                throw new MissingRequiredPropertyException("AFDOriginArgs", "originGroupName");
            }
            if ($.profileName == null) {
                throw new MissingRequiredPropertyException("AFDOriginArgs", "profileName");
            }
            if ($.resourceGroupName == null) {
                throw new MissingRequiredPropertyException("AFDOriginArgs", "resourceGroupName");
            }
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy