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

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


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

    public static final GetCipherTextPlainArgs Empty = new GetCipherTextPlainArgs();

    /**
     * An optional mapping that makes up the encryption context.
     * 
     */
    @Import(name="context")
    private @Nullable Map<String,String> context;

    /**
     * @return An optional mapping that makes up the encryption context.
     * 
     */
    public Optional<Map<String,String>> context() {
        return Optional.ofNullable(this.context);
    }

    /**
     * Globally unique key ID for the customer master key.
     * 
     */
    @Import(name="keyId", required=true)
    private String keyId;

    /**
     * @return Globally unique key ID for the customer master key.
     * 
     */
    public String keyId() {
        return this.keyId;
    }

    /**
     * Data to be encrypted. Note that this may show up in logs, and it will be stored in the state file.
     * 
     */
    @Import(name="plaintext", required=true)
    private String plaintext;

    /**
     * @return Data to be encrypted. Note that this may show up in logs, and it will be stored in the state file.
     * 
     */
    public String plaintext() {
        return this.plaintext;
    }

    private GetCipherTextPlainArgs() {}

    private GetCipherTextPlainArgs(GetCipherTextPlainArgs $) {
        this.context = $.context;
        this.keyId = $.keyId;
        this.plaintext = $.plaintext;
    }

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

    public static final class Builder {
        private GetCipherTextPlainArgs $;

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

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

        /**
         * @param context An optional mapping that makes up the encryption context.
         * 
         * @return builder
         * 
         */
        public Builder context(@Nullable Map<String,String> context) {
            $.context = context;
            return this;
        }

        /**
         * @param keyId Globally unique key ID for the customer master key.
         * 
         * @return builder
         * 
         */
        public Builder keyId(String keyId) {
            $.keyId = keyId;
            return this;
        }

        /**
         * @param plaintext Data to be encrypted. Note that this may show up in logs, and it will be stored in the state file.
         * 
         * @return builder
         * 
         */
        public Builder plaintext(String plaintext) {
            $.plaintext = plaintext;
            return this;
        }

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

}
