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

com.pulumi.googlenative.compute.alpha.inputs.BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicyArgs 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.googlenative.compute.alpha.inputs;

import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import java.lang.String;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


/**
 * The configuration for a custom policy implemented by the user and deployed with the client.
 * 
 */
public final class BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicyArgs extends com.pulumi.resources.ResourceArgs {

    public static final BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicyArgs Empty = new BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicyArgs();

    /**
     * An optional, arbitrary JSON object with configuration data, understood by a locally installed custom policy implementation.
     * 
     */
    @Import(name="data")
    private @Nullable Output data;

    /**
     * @return An optional, arbitrary JSON object with configuration data, understood by a locally installed custom policy implementation.
     * 
     */
    public Optional> data() {
        return Optional.ofNullable(this.data);
    }

    /**
     * Identifies the custom policy. The value should match the name of a custom implementation registered on the gRPC clients. It should follow protocol buffer message naming conventions and include the full path (for example, myorg.CustomLbPolicy). The maximum length is 256 characters. Do not specify the same custom policy more than once for a backend. If you do, the configuration is rejected. For an example of how to use this field, see Use a custom policy.
     * 
     */
    @Import(name="name")
    private @Nullable Output name;

    /**
     * @return Identifies the custom policy. The value should match the name of a custom implementation registered on the gRPC clients. It should follow protocol buffer message naming conventions and include the full path (for example, myorg.CustomLbPolicy). The maximum length is 256 characters. Do not specify the same custom policy more than once for a backend. If you do, the configuration is rejected. For an example of how to use this field, see Use a custom policy.
     * 
     */
    public Optional> name() {
        return Optional.ofNullable(this.name);
    }

    private BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicyArgs() {}

    private BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicyArgs(BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicyArgs $) {
        this.data = $.data;
        this.name = $.name;
    }

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

    public static final class Builder {
        private BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicyArgs $;

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

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

        /**
         * @param data An optional, arbitrary JSON object with configuration data, understood by a locally installed custom policy implementation.
         * 
         * @return builder
         * 
         */
        public Builder data(@Nullable Output data) {
            $.data = data;
            return this;
        }

        /**
         * @param data An optional, arbitrary JSON object with configuration data, understood by a locally installed custom policy implementation.
         * 
         * @return builder
         * 
         */
        public Builder data(String data) {
            return data(Output.of(data));
        }

        /**
         * @param name Identifies the custom policy. The value should match the name of a custom implementation registered on the gRPC clients. It should follow protocol buffer message naming conventions and include the full path (for example, myorg.CustomLbPolicy). The maximum length is 256 characters. Do not specify the same custom policy more than once for a backend. If you do, the configuration is rejected. For an example of how to use this field, see Use a custom policy.
         * 
         * @return builder
         * 
         */
        public Builder name(@Nullable Output name) {
            $.name = name;
            return this;
        }

        /**
         * @param name Identifies the custom policy. The value should match the name of a custom implementation registered on the gRPC clients. It should follow protocol buffer message naming conventions and include the full path (for example, myorg.CustomLbPolicy). The maximum length is 256 characters. Do not specify the same custom policy more than once for a backend. If you do, the configuration is rejected. For an example of how to use this field, see Use a custom policy.
         * 
         * @return builder
         * 
         */
        public Builder name(String name) {
            return name(Output.of(name));
        }

        public BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicyArgs build() {
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy