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

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

There is a newer version: 2.72.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.OptimizationType;
import com.pulumi.azurenative.cdn.enums.QueryStringCachingBehavior;
import com.pulumi.azurenative.cdn.inputs.DeepCreatedOriginArgs;
import com.pulumi.azurenative.cdn.inputs.DeepCreatedOriginGroupArgs;
import com.pulumi.azurenative.cdn.inputs.EndpointPropertiesUpdateParametersDeliveryPolicyArgs;
import com.pulumi.azurenative.cdn.inputs.EndpointPropertiesUpdateParametersWebApplicationFirewallPolicyLinkArgs;
import com.pulumi.azurenative.cdn.inputs.GeoFilterArgs;
import com.pulumi.azurenative.cdn.inputs.ResourceReferenceArgs;
import com.pulumi.azurenative.cdn.inputs.UrlSigningKeyArgs;
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.String;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final EndpointArgs Empty = new EndpointArgs();

    /**
     * List of content types on which compression applies. The value should be a valid MIME type.
     * 
     */
    @Import(name="contentTypesToCompress")
    private @Nullable Output> contentTypesToCompress;

    /**
     * @return List of content types on which compression applies. The value should be a valid MIME type.
     * 
     */
    public Optional>> contentTypesToCompress() {
        return Optional.ofNullable(this.contentTypesToCompress);
    }

    /**
     * A reference to the origin group.
     * 
     */
    @Import(name="defaultOriginGroup")
    private @Nullable Output defaultOriginGroup;

    /**
     * @return A reference to the origin group.
     * 
     */
    public Optional> defaultOriginGroup() {
        return Optional.ofNullable(this.defaultOriginGroup);
    }

    /**
     * A policy that specifies the delivery rules to be used for an endpoint.
     * 
     */
    @Import(name="deliveryPolicy")
    private @Nullable Output deliveryPolicy;

    /**
     * @return A policy that specifies the delivery rules to be used for an endpoint.
     * 
     */
    public Optional> deliveryPolicy() {
        return Optional.ofNullable(this.deliveryPolicy);
    }

    /**
     * Name of the endpoint under the profile which is unique globally.
     * 
     */
    @Import(name="endpointName")
    private @Nullable Output endpointName;

    /**
     * @return Name of the endpoint under the profile which is unique globally.
     * 
     */
    public Optional> endpointName() {
        return Optional.ofNullable(this.endpointName);
    }

    /**
     * List of rules defining the user's geo access within a CDN endpoint. Each geo filter defines an access rule to a specified path or content, e.g. block APAC for path /pictures/
     * 
     */
    @Import(name="geoFilters")
    private @Nullable Output> geoFilters;

    /**
     * @return List of rules defining the user's geo access within a CDN endpoint. Each geo filter defines an access rule to a specified path or content, e.g. block APAC for path /pictures/
     * 
     */
    public Optional>> geoFilters() {
        return Optional.ofNullable(this.geoFilters);
    }

    /**
     * Indicates whether content compression is enabled on CDN. Default value is false. If compression is enabled, content will be served as compressed if user requests for a compressed version. Content won't be compressed on CDN when requested content is smaller than 1 byte or larger than 1 MB.
     * 
     */
    @Import(name="isCompressionEnabled")
    private @Nullable Output isCompressionEnabled;

    /**
     * @return Indicates whether content compression is enabled on CDN. Default value is false. If compression is enabled, content will be served as compressed if user requests for a compressed version. Content won't be compressed on CDN when requested content is smaller than 1 byte or larger than 1 MB.
     * 
     */
    public Optional> isCompressionEnabled() {
        return Optional.ofNullable(this.isCompressionEnabled);
    }

    /**
     * Indicates whether HTTP traffic is allowed on the endpoint. Default value is true. At least one protocol (HTTP or HTTPS) must be allowed.
     * 
     */
    @Import(name="isHttpAllowed")
    private @Nullable Output isHttpAllowed;

    /**
     * @return Indicates whether HTTP traffic is allowed on the endpoint. Default value is true. At least one protocol (HTTP or HTTPS) must be allowed.
     * 
     */
    public Optional> isHttpAllowed() {
        return Optional.ofNullable(this.isHttpAllowed);
    }

    /**
     * Indicates whether HTTPS traffic is allowed on the endpoint. Default value is true. At least one protocol (HTTP or HTTPS) must be allowed.
     * 
     */
    @Import(name="isHttpsAllowed")
    private @Nullable Output isHttpsAllowed;

    /**
     * @return Indicates whether HTTPS traffic is allowed on the endpoint. Default value is true. At least one protocol (HTTP or HTTPS) must be allowed.
     * 
     */
    public Optional> isHttpsAllowed() {
        return Optional.ofNullable(this.isHttpsAllowed);
    }

    /**
     * Resource location.
     * 
     */
    @Import(name="location")
    private @Nullable Output location;

    /**
     * @return Resource location.
     * 
     */
    public Optional> location() {
        return Optional.ofNullable(this.location);
    }

    /**
     * Specifies what scenario the customer wants this CDN endpoint to optimize for, e.g. Download, Media services. With this information, CDN can apply scenario driven optimization.
     * 
     */
    @Import(name="optimizationType")
    private @Nullable Output> optimizationType;

    /**
     * @return Specifies what scenario the customer wants this CDN endpoint to optimize for, e.g. Download, Media services. With this information, CDN can apply scenario driven optimization.
     * 
     */
    public Optional>> optimizationType() {
        return Optional.ofNullable(this.optimizationType);
    }

    /**
     * The origin groups comprising of origins that are used for load balancing the traffic based on availability.
     * 
     */
    @Import(name="originGroups")
    private @Nullable Output> originGroups;

    /**
     * @return The origin groups comprising of origins that are used for load balancing the traffic based on availability.
     * 
     */
    public Optional>> originGroups() {
        return Optional.ofNullable(this.originGroups);
    }

    /**
     * The host header value sent to the origin with each request. This property at Endpoint is only allowed when endpoint uses single origin and can be overridden by the same property specified at origin.If you leave this blank, the request hostname determines this value. Azure CDN origins, such as Web Apps, Blob Storage, and Cloud Services require this host header value to match the origin hostname by default.
     * 
     */
    @Import(name="originHostHeader")
    private @Nullable Output originHostHeader;

    /**
     * @return The host header value sent to the origin with each request. This property at Endpoint is only allowed when endpoint uses single origin and can be overridden by the same property specified at origin.If you leave this blank, the request hostname determines this value. Azure CDN origins, such as Web Apps, Blob Storage, and Cloud Services require this host header value to match the origin hostname by default.
     * 
     */
    public Optional> originHostHeader() {
        return Optional.ofNullable(this.originHostHeader);
    }

    /**
     * A directory path on the origin that CDN can use to retrieve content from, e.g. contoso.cloudapp.net/originpath.
     * 
     */
    @Import(name="originPath")
    private @Nullable Output originPath;

    /**
     * @return A directory path on the origin that CDN can use to retrieve content from, e.g. contoso.cloudapp.net/originpath.
     * 
     */
    public Optional> originPath() {
        return Optional.ofNullable(this.originPath);
    }

    /**
     * The source of the content being delivered via CDN.
     * 
     */
    @Import(name="origins", required=true)
    private Output> origins;

    /**
     * @return The source of the content being delivered via CDN.
     * 
     */
    public Output> origins() {
        return this.origins;
    }

    /**
     * Path to a file hosted on the origin which helps accelerate delivery of the dynamic content and calculate the most optimal routes for the CDN. This is relative to the origin path. This property is only relevant when using a single origin.
     * 
     */
    @Import(name="probePath")
    private @Nullable Output probePath;

    /**
     * @return Path to a file hosted on the origin which helps accelerate delivery of the dynamic content and calculate the most optimal routes for the CDN. This is relative to the origin path. This property is only relevant when using a single origin.
     * 
     */
    public Optional> probePath() {
        return Optional.ofNullable(this.probePath);
    }

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

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

    /**
     * Defines how CDN caches requests that include query strings. You can ignore any query strings when caching, bypass caching to prevent requests that contain query strings from being cached, or cache every request with a unique URL.
     * 
     */
    @Import(name="queryStringCachingBehavior")
    private @Nullable Output queryStringCachingBehavior;

    /**
     * @return Defines how CDN caches requests that include query strings. You can ignore any query strings when caching, bypass caching to prevent requests that contain query strings from being cached, or cache every request with a unique URL.
     * 
     */
    public Optional> queryStringCachingBehavior() {
        return Optional.ofNullable(this.queryStringCachingBehavior);
    }

    /**
     * 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;
    }

    /**
     * Resource tags.
     * 
     */
    @Import(name="tags")
    private @Nullable Output> tags;

    /**
     * @return Resource tags.
     * 
     */
    public Optional>> tags() {
        return Optional.ofNullable(this.tags);
    }

    /**
     * List of keys used to validate the signed URL hashes.
     * 
     */
    @Import(name="urlSigningKeys")
    private @Nullable Output> urlSigningKeys;

    /**
     * @return List of keys used to validate the signed URL hashes.
     * 
     */
    public Optional>> urlSigningKeys() {
        return Optional.ofNullable(this.urlSigningKeys);
    }

    /**
     * Defines the Web Application Firewall policy for the endpoint (if applicable)
     * 
     */
    @Import(name="webApplicationFirewallPolicyLink")
    private @Nullable Output webApplicationFirewallPolicyLink;

    /**
     * @return Defines the Web Application Firewall policy for the endpoint (if applicable)
     * 
     */
    public Optional> webApplicationFirewallPolicyLink() {
        return Optional.ofNullable(this.webApplicationFirewallPolicyLink);
    }

    private EndpointArgs() {}

    private EndpointArgs(EndpointArgs $) {
        this.contentTypesToCompress = $.contentTypesToCompress;
        this.defaultOriginGroup = $.defaultOriginGroup;
        this.deliveryPolicy = $.deliveryPolicy;
        this.endpointName = $.endpointName;
        this.geoFilters = $.geoFilters;
        this.isCompressionEnabled = $.isCompressionEnabled;
        this.isHttpAllowed = $.isHttpAllowed;
        this.isHttpsAllowed = $.isHttpsAllowed;
        this.location = $.location;
        this.optimizationType = $.optimizationType;
        this.originGroups = $.originGroups;
        this.originHostHeader = $.originHostHeader;
        this.originPath = $.originPath;
        this.origins = $.origins;
        this.probePath = $.probePath;
        this.profileName = $.profileName;
        this.queryStringCachingBehavior = $.queryStringCachingBehavior;
        this.resourceGroupName = $.resourceGroupName;
        this.tags = $.tags;
        this.urlSigningKeys = $.urlSigningKeys;
        this.webApplicationFirewallPolicyLink = $.webApplicationFirewallPolicyLink;
    }

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

    public static final class Builder {
        private EndpointArgs $;

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

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

        /**
         * @param contentTypesToCompress List of content types on which compression applies. The value should be a valid MIME type.
         * 
         * @return builder
         * 
         */
        public Builder contentTypesToCompress(@Nullable Output> contentTypesToCompress) {
            $.contentTypesToCompress = contentTypesToCompress;
            return this;
        }

        /**
         * @param contentTypesToCompress List of content types on which compression applies. The value should be a valid MIME type.
         * 
         * @return builder
         * 
         */
        public Builder contentTypesToCompress(List contentTypesToCompress) {
            return contentTypesToCompress(Output.of(contentTypesToCompress));
        }

        /**
         * @param contentTypesToCompress List of content types on which compression applies. The value should be a valid MIME type.
         * 
         * @return builder
         * 
         */
        public Builder contentTypesToCompress(String... contentTypesToCompress) {
            return contentTypesToCompress(List.of(contentTypesToCompress));
        }

        /**
         * @param defaultOriginGroup A reference to the origin group.
         * 
         * @return builder
         * 
         */
        public Builder defaultOriginGroup(@Nullable Output defaultOriginGroup) {
            $.defaultOriginGroup = defaultOriginGroup;
            return this;
        }

        /**
         * @param defaultOriginGroup A reference to the origin group.
         * 
         * @return builder
         * 
         */
        public Builder defaultOriginGroup(ResourceReferenceArgs defaultOriginGroup) {
            return defaultOriginGroup(Output.of(defaultOriginGroup));
        }

        /**
         * @param deliveryPolicy A policy that specifies the delivery rules to be used for an endpoint.
         * 
         * @return builder
         * 
         */
        public Builder deliveryPolicy(@Nullable Output deliveryPolicy) {
            $.deliveryPolicy = deliveryPolicy;
            return this;
        }

        /**
         * @param deliveryPolicy A policy that specifies the delivery rules to be used for an endpoint.
         * 
         * @return builder
         * 
         */
        public Builder deliveryPolicy(EndpointPropertiesUpdateParametersDeliveryPolicyArgs deliveryPolicy) {
            return deliveryPolicy(Output.of(deliveryPolicy));
        }

        /**
         * @param endpointName Name of the endpoint under the profile which is unique globally.
         * 
         * @return builder
         * 
         */
        public Builder endpointName(@Nullable Output endpointName) {
            $.endpointName = endpointName;
            return this;
        }

        /**
         * @param endpointName Name of the endpoint under the profile which is unique globally.
         * 
         * @return builder
         * 
         */
        public Builder endpointName(String endpointName) {
            return endpointName(Output.of(endpointName));
        }

        /**
         * @param geoFilters List of rules defining the user's geo access within a CDN endpoint. Each geo filter defines an access rule to a specified path or content, e.g. block APAC for path /pictures/
         * 
         * @return builder
         * 
         */
        public Builder geoFilters(@Nullable Output> geoFilters) {
            $.geoFilters = geoFilters;
            return this;
        }

        /**
         * @param geoFilters List of rules defining the user's geo access within a CDN endpoint. Each geo filter defines an access rule to a specified path or content, e.g. block APAC for path /pictures/
         * 
         * @return builder
         * 
         */
        public Builder geoFilters(List geoFilters) {
            return geoFilters(Output.of(geoFilters));
        }

        /**
         * @param geoFilters List of rules defining the user's geo access within a CDN endpoint. Each geo filter defines an access rule to a specified path or content, e.g. block APAC for path /pictures/
         * 
         * @return builder
         * 
         */
        public Builder geoFilters(GeoFilterArgs... geoFilters) {
            return geoFilters(List.of(geoFilters));
        }

        /**
         * @param isCompressionEnabled Indicates whether content compression is enabled on CDN. Default value is false. If compression is enabled, content will be served as compressed if user requests for a compressed version. Content won't be compressed on CDN when requested content is smaller than 1 byte or larger than 1 MB.
         * 
         * @return builder
         * 
         */
        public Builder isCompressionEnabled(@Nullable Output isCompressionEnabled) {
            $.isCompressionEnabled = isCompressionEnabled;
            return this;
        }

        /**
         * @param isCompressionEnabled Indicates whether content compression is enabled on CDN. Default value is false. If compression is enabled, content will be served as compressed if user requests for a compressed version. Content won't be compressed on CDN when requested content is smaller than 1 byte or larger than 1 MB.
         * 
         * @return builder
         * 
         */
        public Builder isCompressionEnabled(Boolean isCompressionEnabled) {
            return isCompressionEnabled(Output.of(isCompressionEnabled));
        }

        /**
         * @param isHttpAllowed Indicates whether HTTP traffic is allowed on the endpoint. Default value is true. At least one protocol (HTTP or HTTPS) must be allowed.
         * 
         * @return builder
         * 
         */
        public Builder isHttpAllowed(@Nullable Output isHttpAllowed) {
            $.isHttpAllowed = isHttpAllowed;
            return this;
        }

        /**
         * @param isHttpAllowed Indicates whether HTTP traffic is allowed on the endpoint. Default value is true. At least one protocol (HTTP or HTTPS) must be allowed.
         * 
         * @return builder
         * 
         */
        public Builder isHttpAllowed(Boolean isHttpAllowed) {
            return isHttpAllowed(Output.of(isHttpAllowed));
        }

        /**
         * @param isHttpsAllowed Indicates whether HTTPS traffic is allowed on the endpoint. Default value is true. At least one protocol (HTTP or HTTPS) must be allowed.
         * 
         * @return builder
         * 
         */
        public Builder isHttpsAllowed(@Nullable Output isHttpsAllowed) {
            $.isHttpsAllowed = isHttpsAllowed;
            return this;
        }

        /**
         * @param isHttpsAllowed Indicates whether HTTPS traffic is allowed on the endpoint. Default value is true. At least one protocol (HTTP or HTTPS) must be allowed.
         * 
         * @return builder
         * 
         */
        public Builder isHttpsAllowed(Boolean isHttpsAllowed) {
            return isHttpsAllowed(Output.of(isHttpsAllowed));
        }

        /**
         * @param location Resource location.
         * 
         * @return builder
         * 
         */
        public Builder location(@Nullable Output location) {
            $.location = location;
            return this;
        }

        /**
         * @param location Resource location.
         * 
         * @return builder
         * 
         */
        public Builder location(String location) {
            return location(Output.of(location));
        }

        /**
         * @param optimizationType Specifies what scenario the customer wants this CDN endpoint to optimize for, e.g. Download, Media services. With this information, CDN can apply scenario driven optimization.
         * 
         * @return builder
         * 
         */
        public Builder optimizationType(@Nullable Output> optimizationType) {
            $.optimizationType = optimizationType;
            return this;
        }

        /**
         * @param optimizationType Specifies what scenario the customer wants this CDN endpoint to optimize for, e.g. Download, Media services. With this information, CDN can apply scenario driven optimization.
         * 
         * @return builder
         * 
         */
        public Builder optimizationType(Either optimizationType) {
            return optimizationType(Output.of(optimizationType));
        }

        /**
         * @param optimizationType Specifies what scenario the customer wants this CDN endpoint to optimize for, e.g. Download, Media services. With this information, CDN can apply scenario driven optimization.
         * 
         * @return builder
         * 
         */
        public Builder optimizationType(String optimizationType) {
            return optimizationType(Either.ofLeft(optimizationType));
        }

        /**
         * @param optimizationType Specifies what scenario the customer wants this CDN endpoint to optimize for, e.g. Download, Media services. With this information, CDN can apply scenario driven optimization.
         * 
         * @return builder
         * 
         */
        public Builder optimizationType(OptimizationType optimizationType) {
            return optimizationType(Either.ofRight(optimizationType));
        }

        /**
         * @param originGroups The origin groups comprising of origins that are used for load balancing the traffic based on availability.
         * 
         * @return builder
         * 
         */
        public Builder originGroups(@Nullable Output> originGroups) {
            $.originGroups = originGroups;
            return this;
        }

        /**
         * @param originGroups The origin groups comprising of origins that are used for load balancing the traffic based on availability.
         * 
         * @return builder
         * 
         */
        public Builder originGroups(List originGroups) {
            return originGroups(Output.of(originGroups));
        }

        /**
         * @param originGroups The origin groups comprising of origins that are used for load balancing the traffic based on availability.
         * 
         * @return builder
         * 
         */
        public Builder originGroups(DeepCreatedOriginGroupArgs... originGroups) {
            return originGroups(List.of(originGroups));
        }

        /**
         * @param originHostHeader The host header value sent to the origin with each request. This property at Endpoint is only allowed when endpoint uses single origin and can be overridden by the same property specified at origin.If you leave this blank, the request hostname determines this value. Azure CDN origins, such as Web Apps, Blob Storage, and Cloud Services require this host header value to match the origin hostname by default.
         * 
         * @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. This property at Endpoint is only allowed when endpoint uses single origin and can be overridden by the same property specified at origin.If you leave this blank, the request hostname determines this value. Azure CDN origins, such as Web Apps, Blob Storage, and Cloud Services require this host header value to match the origin hostname by default.
         * 
         * @return builder
         * 
         */
        public Builder originHostHeader(String originHostHeader) {
            return originHostHeader(Output.of(originHostHeader));
        }

        /**
         * @param originPath A directory path on the origin that CDN can use to retrieve content from, e.g. contoso.cloudapp.net/originpath.
         * 
         * @return builder
         * 
         */
        public Builder originPath(@Nullable Output originPath) {
            $.originPath = originPath;
            return this;
        }

        /**
         * @param originPath A directory path on the origin that CDN can use to retrieve content from, e.g. contoso.cloudapp.net/originpath.
         * 
         * @return builder
         * 
         */
        public Builder originPath(String originPath) {
            return originPath(Output.of(originPath));
        }

        /**
         * @param origins The source of the content being delivered via CDN.
         * 
         * @return builder
         * 
         */
        public Builder origins(Output> origins) {
            $.origins = origins;
            return this;
        }

        /**
         * @param origins The source of the content being delivered via CDN.
         * 
         * @return builder
         * 
         */
        public Builder origins(List origins) {
            return origins(Output.of(origins));
        }

        /**
         * @param origins The source of the content being delivered via CDN.
         * 
         * @return builder
         * 
         */
        public Builder origins(DeepCreatedOriginArgs... origins) {
            return origins(List.of(origins));
        }

        /**
         * @param probePath Path to a file hosted on the origin which helps accelerate delivery of the dynamic content and calculate the most optimal routes for the CDN. This is relative to the origin path. This property is only relevant when using a single origin.
         * 
         * @return builder
         * 
         */
        public Builder probePath(@Nullable Output probePath) {
            $.probePath = probePath;
            return this;
        }

        /**
         * @param probePath Path to a file hosted on the origin which helps accelerate delivery of the dynamic content and calculate the most optimal routes for the CDN. This is relative to the origin path. This property is only relevant when using a single origin.
         * 
         * @return builder
         * 
         */
        public Builder probePath(String probePath) {
            return probePath(Output.of(probePath));
        }

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

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

        /**
         * @param queryStringCachingBehavior Defines how CDN caches requests that include query strings. You can ignore any query strings when caching, bypass caching to prevent requests that contain query strings from being cached, or cache every request with a unique URL.
         * 
         * @return builder
         * 
         */
        public Builder queryStringCachingBehavior(@Nullable Output queryStringCachingBehavior) {
            $.queryStringCachingBehavior = queryStringCachingBehavior;
            return this;
        }

        /**
         * @param queryStringCachingBehavior Defines how CDN caches requests that include query strings. You can ignore any query strings when caching, bypass caching to prevent requests that contain query strings from being cached, or cache every request with a unique URL.
         * 
         * @return builder
         * 
         */
        public Builder queryStringCachingBehavior(QueryStringCachingBehavior queryStringCachingBehavior) {
            return queryStringCachingBehavior(Output.of(queryStringCachingBehavior));
        }

        /**
         * @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 tags Resource tags.
         * 
         * @return builder
         * 
         */
        public Builder tags(@Nullable Output> tags) {
            $.tags = tags;
            return this;
        }

        /**
         * @param tags Resource tags.
         * 
         * @return builder
         * 
         */
        public Builder tags(Map tags) {
            return tags(Output.of(tags));
        }

        /**
         * @param urlSigningKeys List of keys used to validate the signed URL hashes.
         * 
         * @return builder
         * 
         */
        public Builder urlSigningKeys(@Nullable Output> urlSigningKeys) {
            $.urlSigningKeys = urlSigningKeys;
            return this;
        }

        /**
         * @param urlSigningKeys List of keys used to validate the signed URL hashes.
         * 
         * @return builder
         * 
         */
        public Builder urlSigningKeys(List urlSigningKeys) {
            return urlSigningKeys(Output.of(urlSigningKeys));
        }

        /**
         * @param urlSigningKeys List of keys used to validate the signed URL hashes.
         * 
         * @return builder
         * 
         */
        public Builder urlSigningKeys(UrlSigningKeyArgs... urlSigningKeys) {
            return urlSigningKeys(List.of(urlSigningKeys));
        }

        /**
         * @param webApplicationFirewallPolicyLink Defines the Web Application Firewall policy for the endpoint (if applicable)
         * 
         * @return builder
         * 
         */
        public Builder webApplicationFirewallPolicyLink(@Nullable Output webApplicationFirewallPolicyLink) {
            $.webApplicationFirewallPolicyLink = webApplicationFirewallPolicyLink;
            return this;
        }

        /**
         * @param webApplicationFirewallPolicyLink Defines the Web Application Firewall policy for the endpoint (if applicable)
         * 
         * @return builder
         * 
         */
        public Builder webApplicationFirewallPolicyLink(EndpointPropertiesUpdateParametersWebApplicationFirewallPolicyLinkArgs webApplicationFirewallPolicyLink) {
            return webApplicationFirewallPolicyLink(Output.of(webApplicationFirewallPolicyLink));
        }

        public EndpointArgs build() {
            $.isHttpAllowed = Codegen.booleanProp("isHttpAllowed").output().arg($.isHttpAllowed).def(true).getNullable();
            $.isHttpsAllowed = Codegen.booleanProp("isHttpsAllowed").output().arg($.isHttpsAllowed).def(true).getNullable();
            if ($.origins == null) {
                throw new MissingRequiredPropertyException("EndpointArgs", "origins");
            }
            if ($.profileName == null) {
                throw new MissingRequiredPropertyException("EndpointArgs", "profileName");
            }
            $.queryStringCachingBehavior = Codegen.objectProp("queryStringCachingBehavior", QueryStringCachingBehavior.class).output().arg($.queryStringCachingBehavior).def(QueryStringCachingBehavior.NotSet).getNullable();
            if ($.resourceGroupName == null) {
                throw new MissingRequiredPropertyException("EndpointArgs", "resourceGroupName");
            }
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy