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

com.pulumi.akamai.outputs.GetPropertyRulesBuilderRulesV20240212CriterionPath Maven / Gradle / Ivy

The 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.akamai.outputs;

import com.pulumi.core.annotations.CustomType;
import java.lang.Boolean;
import java.lang.String;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;

@CustomType
public final class GetPropertyRulesBuilderRulesV20240212CriterionPath {
    /**
     * @return Indicates that your Akamai representative has locked this behavior or criteria so that you can't modify it. This option is for internal usage only.
     * 
     */
    private @Nullable Boolean locked;
    /**
     * @return Sets a case-sensitive match.
     * 
     */
    private @Nullable Boolean matchCaseSensitive;
    /**
     * @return Matches the contents of the `values` array.
     * 
     */
    private @Nullable String matchOperator;
    /**
     * @return Transforms URLs before comparing them with the provided value. URLs are decoded, and any directory syntax such as `../..` or `//` is stripped as a security measure. This protects URL paths from being accessed by unauthorized users.
     * 
     */
    private @Nullable Boolean normalize;
    /**
     * @return This option is for internal usage only.
     * 
     */
    private @Nullable String templateUuid;
    /**
     * @return A uuid member indicates that at least one of its component behaviors or criteria is advanced and read-only. You need to preserve this uuid as well when modifying the rule tree. This option is for internal usage only.
     * 
     */
    private @Nullable String uuid;
    /**
     * @return Matches the URL path, excluding leading hostname and trailing query parameters. The path is relative to the server root, for example `/blog`. This field allows wildcards, where `?` matches a single character and `*` matches zero or more characters. For example, `/blog/*/2014` matches paths with two fixed segments and other varying segments between them.
     * 
     */
    private @Nullable List values;

    private GetPropertyRulesBuilderRulesV20240212CriterionPath() {}
    /**
     * @return Indicates that your Akamai representative has locked this behavior or criteria so that you can't modify it. This option is for internal usage only.
     * 
     */
    public Optional locked() {
        return Optional.ofNullable(this.locked);
    }
    /**
     * @return Sets a case-sensitive match.
     * 
     */
    public Optional matchCaseSensitive() {
        return Optional.ofNullable(this.matchCaseSensitive);
    }
    /**
     * @return Matches the contents of the `values` array.
     * 
     */
    public Optional matchOperator() {
        return Optional.ofNullable(this.matchOperator);
    }
    /**
     * @return Transforms URLs before comparing them with the provided value. URLs are decoded, and any directory syntax such as `../..` or `//` is stripped as a security measure. This protects URL paths from being accessed by unauthorized users.
     * 
     */
    public Optional normalize() {
        return Optional.ofNullable(this.normalize);
    }
    /**
     * @return This option is for internal usage only.
     * 
     */
    public Optional templateUuid() {
        return Optional.ofNullable(this.templateUuid);
    }
    /**
     * @return A uuid member indicates that at least one of its component behaviors or criteria is advanced and read-only. You need to preserve this uuid as well when modifying the rule tree. This option is for internal usage only.
     * 
     */
    public Optional uuid() {
        return Optional.ofNullable(this.uuid);
    }
    /**
     * @return Matches the URL path, excluding leading hostname and trailing query parameters. The path is relative to the server root, for example `/blog`. This field allows wildcards, where `?` matches a single character and `*` matches zero or more characters. For example, `/blog/*/2014` matches paths with two fixed segments and other varying segments between them.
     * 
     */
    public List values() {
        return this.values == null ? List.of() : this.values;
    }

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

    public static Builder builder(GetPropertyRulesBuilderRulesV20240212CriterionPath defaults) {
        return new Builder(defaults);
    }
    @CustomType.Builder
    public static final class Builder {
        private @Nullable Boolean locked;
        private @Nullable Boolean matchCaseSensitive;
        private @Nullable String matchOperator;
        private @Nullable Boolean normalize;
        private @Nullable String templateUuid;
        private @Nullable String uuid;
        private @Nullable List values;
        public Builder() {}
        public Builder(GetPropertyRulesBuilderRulesV20240212CriterionPath defaults) {
    	      Objects.requireNonNull(defaults);
    	      this.locked = defaults.locked;
    	      this.matchCaseSensitive = defaults.matchCaseSensitive;
    	      this.matchOperator = defaults.matchOperator;
    	      this.normalize = defaults.normalize;
    	      this.templateUuid = defaults.templateUuid;
    	      this.uuid = defaults.uuid;
    	      this.values = defaults.values;
        }

        @CustomType.Setter
        public Builder locked(@Nullable Boolean locked) {

            this.locked = locked;
            return this;
        }
        @CustomType.Setter
        public Builder matchCaseSensitive(@Nullable Boolean matchCaseSensitive) {

            this.matchCaseSensitive = matchCaseSensitive;
            return this;
        }
        @CustomType.Setter
        public Builder matchOperator(@Nullable String matchOperator) {

            this.matchOperator = matchOperator;
            return this;
        }
        @CustomType.Setter
        public Builder normalize(@Nullable Boolean normalize) {

            this.normalize = normalize;
            return this;
        }
        @CustomType.Setter
        public Builder templateUuid(@Nullable String templateUuid) {

            this.templateUuid = templateUuid;
            return this;
        }
        @CustomType.Setter
        public Builder uuid(@Nullable String uuid) {

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

            this.values = values;
            return this;
        }
        public Builder values(String... values) {
            return values(List.of(values));
        }
        public GetPropertyRulesBuilderRulesV20240212CriterionPath build() {
            final var _resultValue = new GetPropertyRulesBuilderRulesV20240212CriterionPath();
            _resultValue.locked = locked;
            _resultValue.matchCaseSensitive = matchCaseSensitive;
            _resultValue.matchOperator = matchOperator;
            _resultValue.normalize = normalize;
            _resultValue.templateUuid = templateUuid;
            _resultValue.uuid = uuid;
            _resultValue.values = values;
            return _resultValue;
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy