/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace SecurityHub { namespace Model { /** *

Information about an CodeBuild project.

See Also:

AWS * API Reference

*/ class AwsCodeBuildProjectDetails { public: AWS_SECURITYHUB_API AwsCodeBuildProjectDetails(); AWS_SECURITYHUB_API AwsCodeBuildProjectDetails(Aws::Utils::Json::JsonView jsonValue); AWS_SECURITYHUB_API AwsCodeBuildProjectDetails& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_SECURITYHUB_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

The KMS key used to encrypt the build output artifacts.

You can * specify either the ARN of the KMS key or, if available, the KMS key alias (using * the format alias/alias-name).

*/ inline const Aws::String& GetEncryptionKey() const{ return m_encryptionKey; } /** *

The KMS key used to encrypt the build output artifacts.

You can * specify either the ARN of the KMS key or, if available, the KMS key alias (using * the format alias/alias-name).

*/ inline bool EncryptionKeyHasBeenSet() const { return m_encryptionKeyHasBeenSet; } /** *

The KMS key used to encrypt the build output artifacts.

You can * specify either the ARN of the KMS key or, if available, the KMS key alias (using * the format alias/alias-name).

*/ inline void SetEncryptionKey(const Aws::String& value) { m_encryptionKeyHasBeenSet = true; m_encryptionKey = value; } /** *

The KMS key used to encrypt the build output artifacts.

You can * specify either the ARN of the KMS key or, if available, the KMS key alias (using * the format alias/alias-name).

*/ inline void SetEncryptionKey(Aws::String&& value) { m_encryptionKeyHasBeenSet = true; m_encryptionKey = std::move(value); } /** *

The KMS key used to encrypt the build output artifacts.

You can * specify either the ARN of the KMS key or, if available, the KMS key alias (using * the format alias/alias-name).

*/ inline void SetEncryptionKey(const char* value) { m_encryptionKeyHasBeenSet = true; m_encryptionKey.assign(value); } /** *

The KMS key used to encrypt the build output artifacts.

You can * specify either the ARN of the KMS key or, if available, the KMS key alias (using * the format alias/alias-name).

*/ inline AwsCodeBuildProjectDetails& WithEncryptionKey(const Aws::String& value) { SetEncryptionKey(value); return *this;} /** *

The KMS key used to encrypt the build output artifacts.

You can * specify either the ARN of the KMS key or, if available, the KMS key alias (using * the format alias/alias-name).

*/ inline AwsCodeBuildProjectDetails& WithEncryptionKey(Aws::String&& value) { SetEncryptionKey(std::move(value)); return *this;} /** *

The KMS key used to encrypt the build output artifacts.

You can * specify either the ARN of the KMS key or, if available, the KMS key alias (using * the format alias/alias-name).

*/ inline AwsCodeBuildProjectDetails& WithEncryptionKey(const char* value) { SetEncryptionKey(value); return *this;} /** *

Information about the build artifacts for the CodeBuild project.

*/ inline const Aws::Vector& GetArtifacts() const{ return m_artifacts; } /** *

Information about the build artifacts for the CodeBuild project.

*/ inline bool ArtifactsHasBeenSet() const { return m_artifactsHasBeenSet; } /** *

Information about the build artifacts for the CodeBuild project.

*/ inline void SetArtifacts(const Aws::Vector& value) { m_artifactsHasBeenSet = true; m_artifacts = value; } /** *

Information about the build artifacts for the CodeBuild project.

*/ inline void SetArtifacts(Aws::Vector&& value) { m_artifactsHasBeenSet = true; m_artifacts = std::move(value); } /** *

Information about the build artifacts for the CodeBuild project.

*/ inline AwsCodeBuildProjectDetails& WithArtifacts(const Aws::Vector& value) { SetArtifacts(value); return *this;} /** *

Information about the build artifacts for the CodeBuild project.

*/ inline AwsCodeBuildProjectDetails& WithArtifacts(Aws::Vector&& value) { SetArtifacts(std::move(value)); return *this;} /** *

Information about the build artifacts for the CodeBuild project.

*/ inline AwsCodeBuildProjectDetails& AddArtifacts(const AwsCodeBuildProjectArtifactsDetails& value) { m_artifactsHasBeenSet = true; m_artifacts.push_back(value); return *this; } /** *

Information about the build artifacts for the CodeBuild project.

*/ inline AwsCodeBuildProjectDetails& AddArtifacts(AwsCodeBuildProjectArtifactsDetails&& value) { m_artifactsHasBeenSet = true; m_artifacts.push_back(std::move(value)); return *this; } /** *

Information about the build environment for this build project.

*/ inline const AwsCodeBuildProjectEnvironment& GetEnvironment() const{ return m_environment; } /** *

Information about the build environment for this build project.

*/ inline bool EnvironmentHasBeenSet() const { return m_environmentHasBeenSet; } /** *

Information about the build environment for this build project.

*/ inline void SetEnvironment(const AwsCodeBuildProjectEnvironment& value) { m_environmentHasBeenSet = true; m_environment = value; } /** *

Information about the build environment for this build project.

*/ inline void SetEnvironment(AwsCodeBuildProjectEnvironment&& value) { m_environmentHasBeenSet = true; m_environment = std::move(value); } /** *

Information about the build environment for this build project.

*/ inline AwsCodeBuildProjectDetails& WithEnvironment(const AwsCodeBuildProjectEnvironment& value) { SetEnvironment(value); return *this;} /** *

Information about the build environment for this build project.

*/ inline AwsCodeBuildProjectDetails& WithEnvironment(AwsCodeBuildProjectEnvironment&& value) { SetEnvironment(std::move(value)); return *this;} /** *

The name of the build project.

*/ inline const Aws::String& GetName() const{ return m_name; } /** *

The name of the build project.

*/ inline bool NameHasBeenSet() const { return m_nameHasBeenSet; } /** *

The name of the build project.

*/ inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; } /** *

The name of the build project.

*/ inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); } /** *

The name of the build project.

*/ inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); } /** *

The name of the build project.

*/ inline AwsCodeBuildProjectDetails& WithName(const Aws::String& value) { SetName(value); return *this;} /** *

The name of the build project.

*/ inline AwsCodeBuildProjectDetails& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;} /** *

The name of the build project.

*/ inline AwsCodeBuildProjectDetails& WithName(const char* value) { SetName(value); return *this;} /** *

Information about the build input source code for this build project.

*/ inline const AwsCodeBuildProjectSource& GetSource() const{ return m_source; } /** *

Information about the build input source code for this build project.

*/ inline bool SourceHasBeenSet() const { return m_sourceHasBeenSet; } /** *

Information about the build input source code for this build project.

*/ inline void SetSource(const AwsCodeBuildProjectSource& value) { m_sourceHasBeenSet = true; m_source = value; } /** *

Information about the build input source code for this build project.

*/ inline void SetSource(AwsCodeBuildProjectSource&& value) { m_sourceHasBeenSet = true; m_source = std::move(value); } /** *

Information about the build input source code for this build project.

*/ inline AwsCodeBuildProjectDetails& WithSource(const AwsCodeBuildProjectSource& value) { SetSource(value); return *this;} /** *

Information about the build input source code for this build project.

*/ inline AwsCodeBuildProjectDetails& WithSource(AwsCodeBuildProjectSource&& value) { SetSource(std::move(value)); return *this;} /** *

The ARN of the IAM role that enables CodeBuild to interact with dependent * Amazon Web Services services on behalf of the Amazon Web Services account.

*/ inline const Aws::String& GetServiceRole() const{ return m_serviceRole; } /** *

The ARN of the IAM role that enables CodeBuild to interact with dependent * Amazon Web Services services on behalf of the Amazon Web Services account.

*/ inline bool ServiceRoleHasBeenSet() const { return m_serviceRoleHasBeenSet; } /** *

The ARN of the IAM role that enables CodeBuild to interact with dependent * Amazon Web Services services on behalf of the Amazon Web Services account.

*/ inline void SetServiceRole(const Aws::String& value) { m_serviceRoleHasBeenSet = true; m_serviceRole = value; } /** *

The ARN of the IAM role that enables CodeBuild to interact with dependent * Amazon Web Services services on behalf of the Amazon Web Services account.

*/ inline void SetServiceRole(Aws::String&& value) { m_serviceRoleHasBeenSet = true; m_serviceRole = std::move(value); } /** *

The ARN of the IAM role that enables CodeBuild to interact with dependent * Amazon Web Services services on behalf of the Amazon Web Services account.

*/ inline void SetServiceRole(const char* value) { m_serviceRoleHasBeenSet = true; m_serviceRole.assign(value); } /** *

The ARN of the IAM role that enables CodeBuild to interact with dependent * Amazon Web Services services on behalf of the Amazon Web Services account.

*/ inline AwsCodeBuildProjectDetails& WithServiceRole(const Aws::String& value) { SetServiceRole(value); return *this;} /** *

The ARN of the IAM role that enables CodeBuild to interact with dependent * Amazon Web Services services on behalf of the Amazon Web Services account.

*/ inline AwsCodeBuildProjectDetails& WithServiceRole(Aws::String&& value) { SetServiceRole(std::move(value)); return *this;} /** *

The ARN of the IAM role that enables CodeBuild to interact with dependent * Amazon Web Services services on behalf of the Amazon Web Services account.

*/ inline AwsCodeBuildProjectDetails& WithServiceRole(const char* value) { SetServiceRole(value); return *this;} /** *

Information about logs for the build project.

*/ inline const AwsCodeBuildProjectLogsConfigDetails& GetLogsConfig() const{ return m_logsConfig; } /** *

Information about logs for the build project.

*/ inline bool LogsConfigHasBeenSet() const { return m_logsConfigHasBeenSet; } /** *

Information about logs for the build project.

*/ inline void SetLogsConfig(const AwsCodeBuildProjectLogsConfigDetails& value) { m_logsConfigHasBeenSet = true; m_logsConfig = value; } /** *

Information about logs for the build project.

*/ inline void SetLogsConfig(AwsCodeBuildProjectLogsConfigDetails&& value) { m_logsConfigHasBeenSet = true; m_logsConfig = std::move(value); } /** *

Information about logs for the build project.

*/ inline AwsCodeBuildProjectDetails& WithLogsConfig(const AwsCodeBuildProjectLogsConfigDetails& value) { SetLogsConfig(value); return *this;} /** *

Information about logs for the build project.

*/ inline AwsCodeBuildProjectDetails& WithLogsConfig(AwsCodeBuildProjectLogsConfigDetails&& value) { SetLogsConfig(std::move(value)); return *this;} /** *

Information about the VPC configuration that CodeBuild accesses.

*/ inline const AwsCodeBuildProjectVpcConfig& GetVpcConfig() const{ return m_vpcConfig; } /** *

Information about the VPC configuration that CodeBuild accesses.

*/ inline bool VpcConfigHasBeenSet() const { return m_vpcConfigHasBeenSet; } /** *

Information about the VPC configuration that CodeBuild accesses.

*/ inline void SetVpcConfig(const AwsCodeBuildProjectVpcConfig& value) { m_vpcConfigHasBeenSet = true; m_vpcConfig = value; } /** *

Information about the VPC configuration that CodeBuild accesses.

*/ inline void SetVpcConfig(AwsCodeBuildProjectVpcConfig&& value) { m_vpcConfigHasBeenSet = true; m_vpcConfig = std::move(value); } /** *

Information about the VPC configuration that CodeBuild accesses.

*/ inline AwsCodeBuildProjectDetails& WithVpcConfig(const AwsCodeBuildProjectVpcConfig& value) { SetVpcConfig(value); return *this;} /** *

Information about the VPC configuration that CodeBuild accesses.

*/ inline AwsCodeBuildProjectDetails& WithVpcConfig(AwsCodeBuildProjectVpcConfig&& value) { SetVpcConfig(std::move(value)); return *this;} /** *

Information about the secondary artifacts for the CodeBuild project.

*/ inline const Aws::Vector& GetSecondaryArtifacts() const{ return m_secondaryArtifacts; } /** *

Information about the secondary artifacts for the CodeBuild project.

*/ inline bool SecondaryArtifactsHasBeenSet() const { return m_secondaryArtifactsHasBeenSet; } /** *

Information about the secondary artifacts for the CodeBuild project.

*/ inline void SetSecondaryArtifacts(const Aws::Vector& value) { m_secondaryArtifactsHasBeenSet = true; m_secondaryArtifacts = value; } /** *

Information about the secondary artifacts for the CodeBuild project.

*/ inline void SetSecondaryArtifacts(Aws::Vector&& value) { m_secondaryArtifactsHasBeenSet = true; m_secondaryArtifacts = std::move(value); } /** *

Information about the secondary artifacts for the CodeBuild project.

*/ inline AwsCodeBuildProjectDetails& WithSecondaryArtifacts(const Aws::Vector& value) { SetSecondaryArtifacts(value); return *this;} /** *

Information about the secondary artifacts for the CodeBuild project.

*/ inline AwsCodeBuildProjectDetails& WithSecondaryArtifacts(Aws::Vector&& value) { SetSecondaryArtifacts(std::move(value)); return *this;} /** *

Information about the secondary artifacts for the CodeBuild project.

*/ inline AwsCodeBuildProjectDetails& AddSecondaryArtifacts(const AwsCodeBuildProjectArtifactsDetails& value) { m_secondaryArtifactsHasBeenSet = true; m_secondaryArtifacts.push_back(value); return *this; } /** *

Information about the secondary artifacts for the CodeBuild project.

*/ inline AwsCodeBuildProjectDetails& AddSecondaryArtifacts(AwsCodeBuildProjectArtifactsDetails&& value) { m_secondaryArtifactsHasBeenSet = true; m_secondaryArtifacts.push_back(std::move(value)); return *this; } private: Aws::String m_encryptionKey; bool m_encryptionKeyHasBeenSet = false; Aws::Vector m_artifacts; bool m_artifactsHasBeenSet = false; AwsCodeBuildProjectEnvironment m_environment; bool m_environmentHasBeenSet = false; Aws::String m_name; bool m_nameHasBeenSet = false; AwsCodeBuildProjectSource m_source; bool m_sourceHasBeenSet = false; Aws::String m_serviceRole; bool m_serviceRoleHasBeenSet = false; AwsCodeBuildProjectLogsConfigDetails m_logsConfig; bool m_logsConfigHasBeenSet = false; AwsCodeBuildProjectVpcConfig m_vpcConfig; bool m_vpcConfigHasBeenSet = false; Aws::Vector m_secondaryArtifacts; bool m_secondaryArtifactsHasBeenSet = false; }; } // namespace Model } // namespace SecurityHub } // namespace Aws