// *** 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.gcp.folder.inputs;

import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import java.lang.String;
import java.util.Objects;


public final class GetOrganizationPolicyArgs extends com.pulumi.resources.InvokeArgs {

    public static final GetOrganizationPolicyArgs Empty = new GetOrganizationPolicyArgs();

    /**
     * (Required) The name of the Constraint the Policy is configuring, for example, `serviceuser.services`. Check out the [complete list of available constraints](https://cloud.google.com/resource-manager/docs/organization-policy/understanding-constraints#available_constraints).
     * 
     */
    @Import(name="constraint", required=true)
    private Output<String> constraint;

    /**
     * @return (Required) The name of the Constraint the Policy is configuring, for example, `serviceuser.services`. Check out the [complete list of available constraints](https://cloud.google.com/resource-manager/docs/organization-policy/understanding-constraints#available_constraints).
     * 
     */
    public Output<String> constraint() {
        return this.constraint;
    }

    /**
     * The resource name of the folder to set the policy for. Its format is folders/{folder_id}.
     * 
     */
    @Import(name="folder", required=true)
    private Output<String> folder;

    /**
     * @return The resource name of the folder to set the policy for. Its format is folders/{folder_id}.
     * 
     */
    public Output<String> folder() {
        return this.folder;
    }

    private GetOrganizationPolicyArgs() {}

    private GetOrganizationPolicyArgs(GetOrganizationPolicyArgs $) {
        this.constraint = $.constraint;
        this.folder = $.folder;
    }

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

    public static final class Builder {
        private GetOrganizationPolicyArgs $;

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

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

        /**
         * @param constraint (Required) The name of the Constraint the Policy is configuring, for example, `serviceuser.services`. Check out the [complete list of available constraints](https://cloud.google.com/resource-manager/docs/organization-policy/understanding-constraints#available_constraints).
         * 
         * @return builder
         * 
         */
        public Builder constraint(Output<String> constraint) {
            $.constraint = constraint;
            return this;
        }

        /**
         * @param constraint (Required) The name of the Constraint the Policy is configuring, for example, `serviceuser.services`. Check out the [complete list of available constraints](https://cloud.google.com/resource-manager/docs/organization-policy/understanding-constraints#available_constraints).
         * 
         * @return builder
         * 
         */
        public Builder constraint(String constraint) {
            return constraint(Output.of(constraint));
        }

        /**
         * @param folder The resource name of the folder to set the policy for. Its format is folders/{folder_id}.
         * 
         * @return builder
         * 
         */
        public Builder folder(Output<String> folder) {
            $.folder = folder;
            return this;
        }

        /**
         * @param folder The resource name of the folder to set the policy for. Its format is folders/{folder_id}.
         * 
         * @return builder
         * 
         */
        public Builder folder(String folder) {
            return folder(Output.of(folder));
        }

        public GetOrganizationPolicyArgs build() {
            $.constraint = Objects.requireNonNull($.constraint, "expected parameter 'constraint' to be non-null");
            $.folder = Objects.requireNonNull($.folder, "expected parameter 'folder' to be non-null");
            return $;
        }
    }

}
