// *** 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.aws.cloudfront.inputs;

import com.pulumi.aws.cloudfront.inputs.OriginRequestPolicyCookiesConfigCookiesArgs;
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;


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

    public static final OriginRequestPolicyCookiesConfigArgs Empty = new OriginRequestPolicyCookiesConfigArgs();

    @Import(name="cookieBehavior", required=true)
    private Output<String> cookieBehavior;

    public Output<String> cookieBehavior() {
        return this.cookieBehavior;
    }

    @Import(name="cookies")
    private @Nullable Output<OriginRequestPolicyCookiesConfigCookiesArgs> cookies;

    public Optional<Output<OriginRequestPolicyCookiesConfigCookiesArgs>> cookies() {
        return Optional.ofNullable(this.cookies);
    }

    private OriginRequestPolicyCookiesConfigArgs() {}

    private OriginRequestPolicyCookiesConfigArgs(OriginRequestPolicyCookiesConfigArgs $) {
        this.cookieBehavior = $.cookieBehavior;
        this.cookies = $.cookies;
    }

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

    public static final class Builder {
        private OriginRequestPolicyCookiesConfigArgs $;

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

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

        public Builder cookieBehavior(Output<String> cookieBehavior) {
            $.cookieBehavior = cookieBehavior;
            return this;
        }

        public Builder cookieBehavior(String cookieBehavior) {
            return cookieBehavior(Output.of(cookieBehavior));
        }

        public Builder cookies(@Nullable Output<OriginRequestPolicyCookiesConfigCookiesArgs> cookies) {
            $.cookies = cookies;
            return this;
        }

        public Builder cookies(OriginRequestPolicyCookiesConfigCookiesArgs cookies) {
            return cookies(Output.of(cookies));
        }

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

}
