/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include Access control configuration structures for your resource. You specify the
* configuration as a type-value pair. You can specify only one type of access
* control configuration.See Also:
AWS
* API Reference
The access control configuration is for an Amazon EBS volume snapshot.
*/ inline const EbsSnapshotConfiguration& GetEbsSnapshot() const{ return m_ebsSnapshot; } /** *The access control configuration is for an Amazon EBS volume snapshot.
*/ inline bool EbsSnapshotHasBeenSet() const { return m_ebsSnapshotHasBeenSet; } /** *The access control configuration is for an Amazon EBS volume snapshot.
*/ inline void SetEbsSnapshot(const EbsSnapshotConfiguration& value) { m_ebsSnapshotHasBeenSet = true; m_ebsSnapshot = value; } /** *The access control configuration is for an Amazon EBS volume snapshot.
*/ inline void SetEbsSnapshot(EbsSnapshotConfiguration&& value) { m_ebsSnapshotHasBeenSet = true; m_ebsSnapshot = std::move(value); } /** *The access control configuration is for an Amazon EBS volume snapshot.
*/ inline Configuration& WithEbsSnapshot(const EbsSnapshotConfiguration& value) { SetEbsSnapshot(value); return *this;} /** *The access control configuration is for an Amazon EBS volume snapshot.
*/ inline Configuration& WithEbsSnapshot(EbsSnapshotConfiguration&& value) { SetEbsSnapshot(std::move(value)); return *this;} /** *The access control configuration is for an Amazon ECR repository.
*/ inline const EcrRepositoryConfiguration& GetEcrRepository() const{ return m_ecrRepository; } /** *The access control configuration is for an Amazon ECR repository.
*/ inline bool EcrRepositoryHasBeenSet() const { return m_ecrRepositoryHasBeenSet; } /** *The access control configuration is for an Amazon ECR repository.
*/ inline void SetEcrRepository(const EcrRepositoryConfiguration& value) { m_ecrRepositoryHasBeenSet = true; m_ecrRepository = value; } /** *The access control configuration is for an Amazon ECR repository.
*/ inline void SetEcrRepository(EcrRepositoryConfiguration&& value) { m_ecrRepositoryHasBeenSet = true; m_ecrRepository = std::move(value); } /** *The access control configuration is for an Amazon ECR repository.
*/ inline Configuration& WithEcrRepository(const EcrRepositoryConfiguration& value) { SetEcrRepository(value); return *this;} /** *The access control configuration is for an Amazon ECR repository.
*/ inline Configuration& WithEcrRepository(EcrRepositoryConfiguration&& value) { SetEcrRepository(std::move(value)); return *this;} /** *The access control configuration is for an IAM role.
*/ inline const IamRoleConfiguration& GetIamRole() const{ return m_iamRole; } /** *The access control configuration is for an IAM role.
*/ inline bool IamRoleHasBeenSet() const { return m_iamRoleHasBeenSet; } /** *The access control configuration is for an IAM role.
*/ inline void SetIamRole(const IamRoleConfiguration& value) { m_iamRoleHasBeenSet = true; m_iamRole = value; } /** *The access control configuration is for an IAM role.
*/ inline void SetIamRole(IamRoleConfiguration&& value) { m_iamRoleHasBeenSet = true; m_iamRole = std::move(value); } /** *The access control configuration is for an IAM role.
*/ inline Configuration& WithIamRole(const IamRoleConfiguration& value) { SetIamRole(value); return *this;} /** *The access control configuration is for an IAM role.
*/ inline Configuration& WithIamRole(IamRoleConfiguration&& value) { SetIamRole(std::move(value)); return *this;} /** *The access control configuration is for an Amazon EFS file system.
*/ inline const EfsFileSystemConfiguration& GetEfsFileSystem() const{ return m_efsFileSystem; } /** *The access control configuration is for an Amazon EFS file system.
*/ inline bool EfsFileSystemHasBeenSet() const { return m_efsFileSystemHasBeenSet; } /** *The access control configuration is for an Amazon EFS file system.
*/ inline void SetEfsFileSystem(const EfsFileSystemConfiguration& value) { m_efsFileSystemHasBeenSet = true; m_efsFileSystem = value; } /** *The access control configuration is for an Amazon EFS file system.
*/ inline void SetEfsFileSystem(EfsFileSystemConfiguration&& value) { m_efsFileSystemHasBeenSet = true; m_efsFileSystem = std::move(value); } /** *The access control configuration is for an Amazon EFS file system.
*/ inline Configuration& WithEfsFileSystem(const EfsFileSystemConfiguration& value) { SetEfsFileSystem(value); return *this;} /** *The access control configuration is for an Amazon EFS file system.
*/ inline Configuration& WithEfsFileSystem(EfsFileSystemConfiguration&& value) { SetEfsFileSystem(std::move(value)); return *this;} /** *The access control configuration is for a KMS key.
*/ inline const KmsKeyConfiguration& GetKmsKey() const{ return m_kmsKey; } /** *The access control configuration is for a KMS key.
*/ inline bool KmsKeyHasBeenSet() const { return m_kmsKeyHasBeenSet; } /** *The access control configuration is for a KMS key.
*/ inline void SetKmsKey(const KmsKeyConfiguration& value) { m_kmsKeyHasBeenSet = true; m_kmsKey = value; } /** *The access control configuration is for a KMS key.
*/ inline void SetKmsKey(KmsKeyConfiguration&& value) { m_kmsKeyHasBeenSet = true; m_kmsKey = std::move(value); } /** *The access control configuration is for a KMS key.
*/ inline Configuration& WithKmsKey(const KmsKeyConfiguration& value) { SetKmsKey(value); return *this;} /** *The access control configuration is for a KMS key.
*/ inline Configuration& WithKmsKey(KmsKeyConfiguration&& value) { SetKmsKey(std::move(value)); return *this;} /** *The access control configuration is for an Amazon RDS DB cluster * snapshot.
*/ inline const RdsDbClusterSnapshotConfiguration& GetRdsDbClusterSnapshot() const{ return m_rdsDbClusterSnapshot; } /** *The access control configuration is for an Amazon RDS DB cluster * snapshot.
*/ inline bool RdsDbClusterSnapshotHasBeenSet() const { return m_rdsDbClusterSnapshotHasBeenSet; } /** *The access control configuration is for an Amazon RDS DB cluster * snapshot.
*/ inline void SetRdsDbClusterSnapshot(const RdsDbClusterSnapshotConfiguration& value) { m_rdsDbClusterSnapshotHasBeenSet = true; m_rdsDbClusterSnapshot = value; } /** *The access control configuration is for an Amazon RDS DB cluster * snapshot.
*/ inline void SetRdsDbClusterSnapshot(RdsDbClusterSnapshotConfiguration&& value) { m_rdsDbClusterSnapshotHasBeenSet = true; m_rdsDbClusterSnapshot = std::move(value); } /** *The access control configuration is for an Amazon RDS DB cluster * snapshot.
*/ inline Configuration& WithRdsDbClusterSnapshot(const RdsDbClusterSnapshotConfiguration& value) { SetRdsDbClusterSnapshot(value); return *this;} /** *The access control configuration is for an Amazon RDS DB cluster * snapshot.
*/ inline Configuration& WithRdsDbClusterSnapshot(RdsDbClusterSnapshotConfiguration&& value) { SetRdsDbClusterSnapshot(std::move(value)); return *this;} /** *The access control configuration is for an Amazon RDS DB snapshot.
*/ inline const RdsDbSnapshotConfiguration& GetRdsDbSnapshot() const{ return m_rdsDbSnapshot; } /** *The access control configuration is for an Amazon RDS DB snapshot.
*/ inline bool RdsDbSnapshotHasBeenSet() const { return m_rdsDbSnapshotHasBeenSet; } /** *The access control configuration is for an Amazon RDS DB snapshot.
*/ inline void SetRdsDbSnapshot(const RdsDbSnapshotConfiguration& value) { m_rdsDbSnapshotHasBeenSet = true; m_rdsDbSnapshot = value; } /** *The access control configuration is for an Amazon RDS DB snapshot.
*/ inline void SetRdsDbSnapshot(RdsDbSnapshotConfiguration&& value) { m_rdsDbSnapshotHasBeenSet = true; m_rdsDbSnapshot = std::move(value); } /** *The access control configuration is for an Amazon RDS DB snapshot.
*/ inline Configuration& WithRdsDbSnapshot(const RdsDbSnapshotConfiguration& value) { SetRdsDbSnapshot(value); return *this;} /** *The access control configuration is for an Amazon RDS DB snapshot.
*/ inline Configuration& WithRdsDbSnapshot(RdsDbSnapshotConfiguration&& value) { SetRdsDbSnapshot(std::move(value)); return *this;} /** *The access control configuration is for a Secrets Manager secret.
*/ inline const SecretsManagerSecretConfiguration& GetSecretsManagerSecret() const{ return m_secretsManagerSecret; } /** *The access control configuration is for a Secrets Manager secret.
*/ inline bool SecretsManagerSecretHasBeenSet() const { return m_secretsManagerSecretHasBeenSet; } /** *The access control configuration is for a Secrets Manager secret.
*/ inline void SetSecretsManagerSecret(const SecretsManagerSecretConfiguration& value) { m_secretsManagerSecretHasBeenSet = true; m_secretsManagerSecret = value; } /** *The access control configuration is for a Secrets Manager secret.
*/ inline void SetSecretsManagerSecret(SecretsManagerSecretConfiguration&& value) { m_secretsManagerSecretHasBeenSet = true; m_secretsManagerSecret = std::move(value); } /** *The access control configuration is for a Secrets Manager secret.
*/ inline Configuration& WithSecretsManagerSecret(const SecretsManagerSecretConfiguration& value) { SetSecretsManagerSecret(value); return *this;} /** *The access control configuration is for a Secrets Manager secret.
*/ inline Configuration& WithSecretsManagerSecret(SecretsManagerSecretConfiguration&& value) { SetSecretsManagerSecret(std::move(value)); return *this;} /** *The access control configuration is for an Amazon S3 Bucket.
*/ inline const S3BucketConfiguration& GetS3Bucket() const{ return m_s3Bucket; } /** *The access control configuration is for an Amazon S3 Bucket.
*/ inline bool S3BucketHasBeenSet() const { return m_s3BucketHasBeenSet; } /** *The access control configuration is for an Amazon S3 Bucket.
*/ inline void SetS3Bucket(const S3BucketConfiguration& value) { m_s3BucketHasBeenSet = true; m_s3Bucket = value; } /** *The access control configuration is for an Amazon S3 Bucket.
*/ inline void SetS3Bucket(S3BucketConfiguration&& value) { m_s3BucketHasBeenSet = true; m_s3Bucket = std::move(value); } /** *The access control configuration is for an Amazon S3 Bucket.
*/ inline Configuration& WithS3Bucket(const S3BucketConfiguration& value) { SetS3Bucket(value); return *this;} /** *The access control configuration is for an Amazon S3 Bucket.
*/ inline Configuration& WithS3Bucket(S3BucketConfiguration&& value) { SetS3Bucket(std::move(value)); return *this;} /** *The access control configuration is for an Amazon SNS topic
*/ inline const SnsTopicConfiguration& GetSnsTopic() const{ return m_snsTopic; } /** *The access control configuration is for an Amazon SNS topic
*/ inline bool SnsTopicHasBeenSet() const { return m_snsTopicHasBeenSet; } /** *The access control configuration is for an Amazon SNS topic
*/ inline void SetSnsTopic(const SnsTopicConfiguration& value) { m_snsTopicHasBeenSet = true; m_snsTopic = value; } /** *The access control configuration is for an Amazon SNS topic
*/ inline void SetSnsTopic(SnsTopicConfiguration&& value) { m_snsTopicHasBeenSet = true; m_snsTopic = std::move(value); } /** *The access control configuration is for an Amazon SNS topic
*/ inline Configuration& WithSnsTopic(const SnsTopicConfiguration& value) { SetSnsTopic(value); return *this;} /** *The access control configuration is for an Amazon SNS topic
*/ inline Configuration& WithSnsTopic(SnsTopicConfiguration&& value) { SetSnsTopic(std::move(value)); return *this;} /** *The access control configuration is for an Amazon SQS queue.
*/ inline const SqsQueueConfiguration& GetSqsQueue() const{ return m_sqsQueue; } /** *The access control configuration is for an Amazon SQS queue.
*/ inline bool SqsQueueHasBeenSet() const { return m_sqsQueueHasBeenSet; } /** *The access control configuration is for an Amazon SQS queue.
*/ inline void SetSqsQueue(const SqsQueueConfiguration& value) { m_sqsQueueHasBeenSet = true; m_sqsQueue = value; } /** *The access control configuration is for an Amazon SQS queue.
*/ inline void SetSqsQueue(SqsQueueConfiguration&& value) { m_sqsQueueHasBeenSet = true; m_sqsQueue = std::move(value); } /** *The access control configuration is for an Amazon SQS queue.
*/ inline Configuration& WithSqsQueue(const SqsQueueConfiguration& value) { SetSqsQueue(value); return *this;} /** *The access control configuration is for an Amazon SQS queue.
*/ inline Configuration& WithSqsQueue(SqsQueueConfiguration&& value) { SetSqsQueue(std::move(value)); return *this;} private: EbsSnapshotConfiguration m_ebsSnapshot; bool m_ebsSnapshotHasBeenSet = false; EcrRepositoryConfiguration m_ecrRepository; bool m_ecrRepositoryHasBeenSet = false; IamRoleConfiguration m_iamRole; bool m_iamRoleHasBeenSet = false; EfsFileSystemConfiguration m_efsFileSystem; bool m_efsFileSystemHasBeenSet = false; KmsKeyConfiguration m_kmsKey; bool m_kmsKeyHasBeenSet = false; RdsDbClusterSnapshotConfiguration m_rdsDbClusterSnapshot; bool m_rdsDbClusterSnapshotHasBeenSet = false; RdsDbSnapshotConfiguration m_rdsDbSnapshot; bool m_rdsDbSnapshotHasBeenSet = false; SecretsManagerSecretConfiguration m_secretsManagerSecret; bool m_secretsManagerSecretHasBeenSet = false; S3BucketConfiguration m_s3Bucket; bool m_s3BucketHasBeenSet = false; SnsTopicConfiguration m_snsTopic; bool m_snsTopicHasBeenSet = false; SqsQueueConfiguration m_sqsQueue; bool m_sqsQueueHasBeenSet = false; }; } // namespace Model } // namespace AccessAnalyzer } // namespace Aws