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

com.pulumi.aws.rds.SnapshotCopyArgs Maven / Gradle / Ivy

Go to download

A Pulumi package for creating and managing Amazon Web Services (AWS) cloud resources.

There is a newer version: 6.72.0
Show 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.aws.rds;

import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.Boolean;
import java.lang.String;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final SnapshotCopyArgs Empty = new SnapshotCopyArgs();

    /**
     * Whether to copy existing tags. Defaults to `false`.
     * 
     */
    @Import(name="copyTags")
    private @Nullable Output copyTags;

    /**
     * @return Whether to copy existing tags. Defaults to `false`.
     * 
     */
    public Optional> copyTags() {
        return Optional.ofNullable(this.copyTags);
    }

    /**
     * The Destination region to place snapshot copy.
     * 
     */
    @Import(name="destinationRegion")
    private @Nullable Output destinationRegion;

    /**
     * @return The Destination region to place snapshot copy.
     * 
     */
    public Optional> destinationRegion() {
        return Optional.ofNullable(this.destinationRegion);
    }

    /**
     * KMS key ID.
     * 
     */
    @Import(name="kmsKeyId")
    private @Nullable Output kmsKeyId;

    /**
     * @return KMS key ID.
     * 
     */
    public Optional> kmsKeyId() {
        return Optional.ofNullable(this.kmsKeyId);
    }

    /**
     * The name of an option group to associate with the copy of the snapshot.
     * 
     */
    @Import(name="optionGroupName")
    private @Nullable Output optionGroupName;

    /**
     * @return The name of an option group to associate with the copy of the snapshot.
     * 
     */
    public Optional> optionGroupName() {
        return Optional.ofNullable(this.optionGroupName);
    }

    /**
     * he URL that contains a Signature Version 4 signed request.
     * 
     */
    @Import(name="presignedUrl")
    private @Nullable Output presignedUrl;

    /**
     * @return he URL that contains a Signature Version 4 signed request.
     * 
     */
    public Optional> presignedUrl() {
        return Optional.ofNullable(this.presignedUrl);
    }

    /**
     * List of AWS Account IDs to share the snapshot with. Use `all` to make the snapshot public.
     * 
     */
    @Import(name="sharedAccounts")
    private @Nullable Output> sharedAccounts;

    /**
     * @return List of AWS Account IDs to share the snapshot with. Use `all` to make the snapshot public.
     * 
     */
    public Optional>> sharedAccounts() {
        return Optional.ofNullable(this.sharedAccounts);
    }

    /**
     * Snapshot identifier of the source snapshot.
     * 
     */
    @Import(name="sourceDbSnapshotIdentifier", required=true)
    private Output sourceDbSnapshotIdentifier;

    /**
     * @return Snapshot identifier of the source snapshot.
     * 
     */
    public Output sourceDbSnapshotIdentifier() {
        return this.sourceDbSnapshotIdentifier;
    }

    /**
     * Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
     * 
     */
    @Import(name="tags")
    private @Nullable Output> tags;

    /**
     * @return Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
     * 
     */
    public Optional>> tags() {
        return Optional.ofNullable(this.tags);
    }

    /**
     * The external custom Availability Zone.
     * 
     */
    @Import(name="targetCustomAvailabilityZone")
    private @Nullable Output targetCustomAvailabilityZone;

    /**
     * @return The external custom Availability Zone.
     * 
     */
    public Optional> targetCustomAvailabilityZone() {
        return Optional.ofNullable(this.targetCustomAvailabilityZone);
    }

    /**
     * The Identifier for the snapshot.
     * 
     */
    @Import(name="targetDbSnapshotIdentifier", required=true)
    private Output targetDbSnapshotIdentifier;

    /**
     * @return The Identifier for the snapshot.
     * 
     */
    public Output targetDbSnapshotIdentifier() {
        return this.targetDbSnapshotIdentifier;
    }

    private SnapshotCopyArgs() {}

    private SnapshotCopyArgs(SnapshotCopyArgs $) {
        this.copyTags = $.copyTags;
        this.destinationRegion = $.destinationRegion;
        this.kmsKeyId = $.kmsKeyId;
        this.optionGroupName = $.optionGroupName;
        this.presignedUrl = $.presignedUrl;
        this.sharedAccounts = $.sharedAccounts;
        this.sourceDbSnapshotIdentifier = $.sourceDbSnapshotIdentifier;
        this.tags = $.tags;
        this.targetCustomAvailabilityZone = $.targetCustomAvailabilityZone;
        this.targetDbSnapshotIdentifier = $.targetDbSnapshotIdentifier;
    }

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

    public static final class Builder {
        private SnapshotCopyArgs $;

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

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

        /**
         * @param copyTags Whether to copy existing tags. Defaults to `false`.
         * 
         * @return builder
         * 
         */
        public Builder copyTags(@Nullable Output copyTags) {
            $.copyTags = copyTags;
            return this;
        }

        /**
         * @param copyTags Whether to copy existing tags. Defaults to `false`.
         * 
         * @return builder
         * 
         */
        public Builder copyTags(Boolean copyTags) {
            return copyTags(Output.of(copyTags));
        }

        /**
         * @param destinationRegion The Destination region to place snapshot copy.
         * 
         * @return builder
         * 
         */
        public Builder destinationRegion(@Nullable Output destinationRegion) {
            $.destinationRegion = destinationRegion;
            return this;
        }

        /**
         * @param destinationRegion The Destination region to place snapshot copy.
         * 
         * @return builder
         * 
         */
        public Builder destinationRegion(String destinationRegion) {
            return destinationRegion(Output.of(destinationRegion));
        }

        /**
         * @param kmsKeyId KMS key ID.
         * 
         * @return builder
         * 
         */
        public Builder kmsKeyId(@Nullable Output kmsKeyId) {
            $.kmsKeyId = kmsKeyId;
            return this;
        }

        /**
         * @param kmsKeyId KMS key ID.
         * 
         * @return builder
         * 
         */
        public Builder kmsKeyId(String kmsKeyId) {
            return kmsKeyId(Output.of(kmsKeyId));
        }

        /**
         * @param optionGroupName The name of an option group to associate with the copy of the snapshot.
         * 
         * @return builder
         * 
         */
        public Builder optionGroupName(@Nullable Output optionGroupName) {
            $.optionGroupName = optionGroupName;
            return this;
        }

        /**
         * @param optionGroupName The name of an option group to associate with the copy of the snapshot.
         * 
         * @return builder
         * 
         */
        public Builder optionGroupName(String optionGroupName) {
            return optionGroupName(Output.of(optionGroupName));
        }

        /**
         * @param presignedUrl he URL that contains a Signature Version 4 signed request.
         * 
         * @return builder
         * 
         */
        public Builder presignedUrl(@Nullable Output presignedUrl) {
            $.presignedUrl = presignedUrl;
            return this;
        }

        /**
         * @param presignedUrl he URL that contains a Signature Version 4 signed request.
         * 
         * @return builder
         * 
         */
        public Builder presignedUrl(String presignedUrl) {
            return presignedUrl(Output.of(presignedUrl));
        }

        /**
         * @param sharedAccounts List of AWS Account IDs to share the snapshot with. Use `all` to make the snapshot public.
         * 
         * @return builder
         * 
         */
        public Builder sharedAccounts(@Nullable Output> sharedAccounts) {
            $.sharedAccounts = sharedAccounts;
            return this;
        }

        /**
         * @param sharedAccounts List of AWS Account IDs to share the snapshot with. Use `all` to make the snapshot public.
         * 
         * @return builder
         * 
         */
        public Builder sharedAccounts(List sharedAccounts) {
            return sharedAccounts(Output.of(sharedAccounts));
        }

        /**
         * @param sharedAccounts List of AWS Account IDs to share the snapshot with. Use `all` to make the snapshot public.
         * 
         * @return builder
         * 
         */
        public Builder sharedAccounts(String... sharedAccounts) {
            return sharedAccounts(List.of(sharedAccounts));
        }

        /**
         * @param sourceDbSnapshotIdentifier Snapshot identifier of the source snapshot.
         * 
         * @return builder
         * 
         */
        public Builder sourceDbSnapshotIdentifier(Output sourceDbSnapshotIdentifier) {
            $.sourceDbSnapshotIdentifier = sourceDbSnapshotIdentifier;
            return this;
        }

        /**
         * @param sourceDbSnapshotIdentifier Snapshot identifier of the source snapshot.
         * 
         * @return builder
         * 
         */
        public Builder sourceDbSnapshotIdentifier(String sourceDbSnapshotIdentifier) {
            return sourceDbSnapshotIdentifier(Output.of(sourceDbSnapshotIdentifier));
        }

        /**
         * @param tags Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
         * 
         * @return builder
         * 
         */
        public Builder tags(@Nullable Output> tags) {
            $.tags = tags;
            return this;
        }

        /**
         * @param tags Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
         * 
         * @return builder
         * 
         */
        public Builder tags(Map tags) {
            return tags(Output.of(tags));
        }

        /**
         * @param targetCustomAvailabilityZone The external custom Availability Zone.
         * 
         * @return builder
         * 
         */
        public Builder targetCustomAvailabilityZone(@Nullable Output targetCustomAvailabilityZone) {
            $.targetCustomAvailabilityZone = targetCustomAvailabilityZone;
            return this;
        }

        /**
         * @param targetCustomAvailabilityZone The external custom Availability Zone.
         * 
         * @return builder
         * 
         */
        public Builder targetCustomAvailabilityZone(String targetCustomAvailabilityZone) {
            return targetCustomAvailabilityZone(Output.of(targetCustomAvailabilityZone));
        }

        /**
         * @param targetDbSnapshotIdentifier The Identifier for the snapshot.
         * 
         * @return builder
         * 
         */
        public Builder targetDbSnapshotIdentifier(Output targetDbSnapshotIdentifier) {
            $.targetDbSnapshotIdentifier = targetDbSnapshotIdentifier;
            return this;
        }

        /**
         * @param targetDbSnapshotIdentifier The Identifier for the snapshot.
         * 
         * @return builder
         * 
         */
        public Builder targetDbSnapshotIdentifier(String targetDbSnapshotIdentifier) {
            return targetDbSnapshotIdentifier(Output.of(targetDbSnapshotIdentifier));
        }

        public SnapshotCopyArgs build() {
            if ($.sourceDbSnapshotIdentifier == null) {
                throw new MissingRequiredPropertyException("SnapshotCopyArgs", "sourceDbSnapshotIdentifier");
            }
            if ($.targetDbSnapshotIdentifier == null) {
                throw new MissingRequiredPropertyException("SnapshotCopyArgs", "targetDbSnapshotIdentifier");
            }
            return $;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy