Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
com.pulumi.aws.appconfig.ConfigurationProfileArgs Maven / Gradle / Ivy
Go to download
A Pulumi package for creating and managing Amazon Web Services (AWS) cloud resources.
// *** 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.appconfig;
import com.pulumi.aws.appconfig.inputs.ConfigurationProfileValidatorArgs;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
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 ConfigurationProfileArgs extends com.pulumi.resources.ResourceArgs {
public static final ConfigurationProfileArgs Empty = new ConfigurationProfileArgs();
/**
* Application ID. Must be between 4 and 7 characters in length.
*
*/
@Import(name="applicationId", required=true)
private Output applicationId;
/**
* @return Application ID. Must be between 4 and 7 characters in length.
*
*/
public Output applicationId() {
return this.applicationId;
}
/**
* Description of the configuration profile. Can be at most 1024 characters.
*
*/
@Import(name="description")
private @Nullable Output description;
/**
* @return Description of the configuration profile. Can be at most 1024 characters.
*
*/
public Optional> description() {
return Optional.ofNullable(this.description);
}
/**
* The identifier for an Key Management Service key to encrypt new configuration data versions in the AppConfig hosted configuration store. This attribute is only used for hosted configuration types. The identifier can be an KMS key ID, alias, or the Amazon Resource Name (ARN) of the key ID or alias.
*
*/
@Import(name="kmsKeyIdentifier")
private @Nullable Output kmsKeyIdentifier;
/**
* @return The identifier for an Key Management Service key to encrypt new configuration data versions in the AppConfig hosted configuration store. This attribute is only used for hosted configuration types. The identifier can be an KMS key ID, alias, or the Amazon Resource Name (ARN) of the key ID or alias.
*
*/
public Optional> kmsKeyIdentifier() {
return Optional.ofNullable(this.kmsKeyIdentifier);
}
/**
* URI to locate the configuration. You can specify the AWS AppConfig hosted configuration store, Systems Manager (SSM) document, an SSM Parameter Store parameter, or an Amazon S3 object. For the hosted configuration store, specify `hosted`. For an SSM document, specify either the document name in the format `ssm-document://<Document_name>` or the ARN. For a parameter, specify either the parameter name in the format `ssm-parameter://<Parameter_name>` or the ARN. For an Amazon S3 object, specify the URI in the following format: `s3://<bucket>/<objectKey>`.
*
*/
@Import(name="locationUri", required=true)
private Output locationUri;
/**
* @return URI to locate the configuration. You can specify the AWS AppConfig hosted configuration store, Systems Manager (SSM) document, an SSM Parameter Store parameter, or an Amazon S3 object. For the hosted configuration store, specify `hosted`. For an SSM document, specify either the document name in the format `ssm-document://<Document_name>` or the ARN. For a parameter, specify either the parameter name in the format `ssm-parameter://<Parameter_name>` or the ARN. For an Amazon S3 object, specify the URI in the following format: `s3://<bucket>/<objectKey>`.
*
*/
public Output locationUri() {
return this.locationUri;
}
/**
* Name for the configuration profile. Must be between 1 and 128 characters in length.
*
*/
@Import(name="name")
private @Nullable Output name;
/**
* @return Name for the configuration profile. Must be between 1 and 128 characters in length.
*
*/
public Optional> name() {
return Optional.ofNullable(this.name);
}
/**
* ARN of an IAM role with permission to access the configuration at the specified `location_uri`. A retrieval role ARN is not required for configurations stored in the AWS AppConfig `hosted` configuration store. It is required for all other sources that store your configuration.
*
*/
@Import(name="retrievalRoleArn")
private @Nullable Output retrievalRoleArn;
/**
* @return ARN of an IAM role with permission to access the configuration at the specified `location_uri`. A retrieval role ARN is not required for configurations stored in the AWS AppConfig `hosted` configuration store. It is required for all other sources that store your configuration.
*
*/
public Optional> retrievalRoleArn() {
return Optional.ofNullable(this.retrievalRoleArn);
}
/**
* Map of tags to assign to the resource. 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 Map of tags to assign to the resource. 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);
}
/**
* Type of configurations contained in the profile. Valid values: `AWS.AppConfig.FeatureFlags` and `AWS.Freeform`. Default: `AWS.Freeform`.
*
*/
@Import(name="type")
private @Nullable Output type;
/**
* @return Type of configurations contained in the profile. Valid values: `AWS.AppConfig.FeatureFlags` and `AWS.Freeform`. Default: `AWS.Freeform`.
*
*/
public Optional> type() {
return Optional.ofNullable(this.type);
}
/**
* Set of methods for validating the configuration. Maximum of 2. See Validator below for more details.
*
*/
@Import(name="validators")
private @Nullable Output> validators;
/**
* @return Set of methods for validating the configuration. Maximum of 2. See Validator below for more details.
*
*/
public Optional>> validators() {
return Optional.ofNullable(this.validators);
}
private ConfigurationProfileArgs() {}
private ConfigurationProfileArgs(ConfigurationProfileArgs $) {
this.applicationId = $.applicationId;
this.description = $.description;
this.kmsKeyIdentifier = $.kmsKeyIdentifier;
this.locationUri = $.locationUri;
this.name = $.name;
this.retrievalRoleArn = $.retrievalRoleArn;
this.tags = $.tags;
this.type = $.type;
this.validators = $.validators;
}
public static Builder builder() {
return new Builder();
}
public static Builder builder(ConfigurationProfileArgs defaults) {
return new Builder(defaults);
}
public static final class Builder {
private ConfigurationProfileArgs $;
public Builder() {
$ = new ConfigurationProfileArgs();
}
public Builder(ConfigurationProfileArgs defaults) {
$ = new ConfigurationProfileArgs(Objects.requireNonNull(defaults));
}
/**
* @param applicationId Application ID. Must be between 4 and 7 characters in length.
*
* @return builder
*
*/
public Builder applicationId(Output applicationId) {
$.applicationId = applicationId;
return this;
}
/**
* @param applicationId Application ID. Must be between 4 and 7 characters in length.
*
* @return builder
*
*/
public Builder applicationId(String applicationId) {
return applicationId(Output.of(applicationId));
}
/**
* @param description Description of the configuration profile. Can be at most 1024 characters.
*
* @return builder
*
*/
public Builder description(@Nullable Output description) {
$.description = description;
return this;
}
/**
* @param description Description of the configuration profile. Can be at most 1024 characters.
*
* @return builder
*
*/
public Builder description(String description) {
return description(Output.of(description));
}
/**
* @param kmsKeyIdentifier The identifier for an Key Management Service key to encrypt new configuration data versions in the AppConfig hosted configuration store. This attribute is only used for hosted configuration types. The identifier can be an KMS key ID, alias, or the Amazon Resource Name (ARN) of the key ID or alias.
*
* @return builder
*
*/
public Builder kmsKeyIdentifier(@Nullable Output kmsKeyIdentifier) {
$.kmsKeyIdentifier = kmsKeyIdentifier;
return this;
}
/**
* @param kmsKeyIdentifier The identifier for an Key Management Service key to encrypt new configuration data versions in the AppConfig hosted configuration store. This attribute is only used for hosted configuration types. The identifier can be an KMS key ID, alias, or the Amazon Resource Name (ARN) of the key ID or alias.
*
* @return builder
*
*/
public Builder kmsKeyIdentifier(String kmsKeyIdentifier) {
return kmsKeyIdentifier(Output.of(kmsKeyIdentifier));
}
/**
* @param locationUri URI to locate the configuration. You can specify the AWS AppConfig hosted configuration store, Systems Manager (SSM) document, an SSM Parameter Store parameter, or an Amazon S3 object. For the hosted configuration store, specify `hosted`. For an SSM document, specify either the document name in the format `ssm-document://<Document_name>` or the ARN. For a parameter, specify either the parameter name in the format `ssm-parameter://<Parameter_name>` or the ARN. For an Amazon S3 object, specify the URI in the following format: `s3://<bucket>/<objectKey>`.
*
* @return builder
*
*/
public Builder locationUri(Output locationUri) {
$.locationUri = locationUri;
return this;
}
/**
* @param locationUri URI to locate the configuration. You can specify the AWS AppConfig hosted configuration store, Systems Manager (SSM) document, an SSM Parameter Store parameter, or an Amazon S3 object. For the hosted configuration store, specify `hosted`. For an SSM document, specify either the document name in the format `ssm-document://<Document_name>` or the ARN. For a parameter, specify either the parameter name in the format `ssm-parameter://<Parameter_name>` or the ARN. For an Amazon S3 object, specify the URI in the following format: `s3://<bucket>/<objectKey>`.
*
* @return builder
*
*/
public Builder locationUri(String locationUri) {
return locationUri(Output.of(locationUri));
}
/**
* @param name Name for the configuration profile. Must be between 1 and 128 characters in length.
*
* @return builder
*
*/
public Builder name(@Nullable Output name) {
$.name = name;
return this;
}
/**
* @param name Name for the configuration profile. Must be between 1 and 128 characters in length.
*
* @return builder
*
*/
public Builder name(String name) {
return name(Output.of(name));
}
/**
* @param retrievalRoleArn ARN of an IAM role with permission to access the configuration at the specified `location_uri`. A retrieval role ARN is not required for configurations stored in the AWS AppConfig `hosted` configuration store. It is required for all other sources that store your configuration.
*
* @return builder
*
*/
public Builder retrievalRoleArn(@Nullable Output retrievalRoleArn) {
$.retrievalRoleArn = retrievalRoleArn;
return this;
}
/**
* @param retrievalRoleArn ARN of an IAM role with permission to access the configuration at the specified `location_uri`. A retrieval role ARN is not required for configurations stored in the AWS AppConfig `hosted` configuration store. It is required for all other sources that store your configuration.
*
* @return builder
*
*/
public Builder retrievalRoleArn(String retrievalRoleArn) {
return retrievalRoleArn(Output.of(retrievalRoleArn));
}
/**
* @param tags Map of tags to assign to the resource. 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 Map of tags to assign to the resource. 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 type Type of configurations contained in the profile. Valid values: `AWS.AppConfig.FeatureFlags` and `AWS.Freeform`. Default: `AWS.Freeform`.
*
* @return builder
*
*/
public Builder type(@Nullable Output type) {
$.type = type;
return this;
}
/**
* @param type Type of configurations contained in the profile. Valid values: `AWS.AppConfig.FeatureFlags` and `AWS.Freeform`. Default: `AWS.Freeform`.
*
* @return builder
*
*/
public Builder type(String type) {
return type(Output.of(type));
}
/**
* @param validators Set of methods for validating the configuration. Maximum of 2. See Validator below for more details.
*
* @return builder
*
*/
public Builder validators(@Nullable Output> validators) {
$.validators = validators;
return this;
}
/**
* @param validators Set of methods for validating the configuration. Maximum of 2. See Validator below for more details.
*
* @return builder
*
*/
public Builder validators(List validators) {
return validators(Output.of(validators));
}
/**
* @param validators Set of methods for validating the configuration. Maximum of 2. See Validator below for more details.
*
* @return builder
*
*/
public Builder validators(ConfigurationProfileValidatorArgs... validators) {
return validators(List.of(validators));
}
public ConfigurationProfileArgs build() {
if ($.applicationId == null) {
throw new MissingRequiredPropertyException("ConfigurationProfileArgs", "applicationId");
}
if ($.locationUri == null) {
throw new MissingRequiredPropertyException("ConfigurationProfileArgs", "locationUri");
}
return $;
}
}
}