/** * 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 namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace CodePipeline { namespace Model { /** *

Represents the structure of actions and stages to be performed in the * pipeline.

See Also:

AWS * API Reference

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

The name of the pipeline.

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

The name of the pipeline.

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

The name of the pipeline.

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

The name of the pipeline.

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

The name of the pipeline.

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

The name of the pipeline.

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

The name of the pipeline.

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

The name of the pipeline.

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

The Amazon Resource Name (ARN) for CodePipeline to use to either perform * actions with no actionRoleArn, or to use to assume roles for * actions with an actionRoleArn.

*/ inline const Aws::String& GetRoleArn() const{ return m_roleArn; } /** *

The Amazon Resource Name (ARN) for CodePipeline to use to either perform * actions with no actionRoleArn, or to use to assume roles for * actions with an actionRoleArn.

*/ inline bool RoleArnHasBeenSet() const { return m_roleArnHasBeenSet; } /** *

The Amazon Resource Name (ARN) for CodePipeline to use to either perform * actions with no actionRoleArn, or to use to assume roles for * actions with an actionRoleArn.

*/ inline void SetRoleArn(const Aws::String& value) { m_roleArnHasBeenSet = true; m_roleArn = value; } /** *

The Amazon Resource Name (ARN) for CodePipeline to use to either perform * actions with no actionRoleArn, or to use to assume roles for * actions with an actionRoleArn.

*/ inline void SetRoleArn(Aws::String&& value) { m_roleArnHasBeenSet = true; m_roleArn = std::move(value); } /** *

The Amazon Resource Name (ARN) for CodePipeline to use to either perform * actions with no actionRoleArn, or to use to assume roles for * actions with an actionRoleArn.

*/ inline void SetRoleArn(const char* value) { m_roleArnHasBeenSet = true; m_roleArn.assign(value); } /** *

The Amazon Resource Name (ARN) for CodePipeline to use to either perform * actions with no actionRoleArn, or to use to assume roles for * actions with an actionRoleArn.

*/ inline PipelineDeclaration& WithRoleArn(const Aws::String& value) { SetRoleArn(value); return *this;} /** *

The Amazon Resource Name (ARN) for CodePipeline to use to either perform * actions with no actionRoleArn, or to use to assume roles for * actions with an actionRoleArn.

*/ inline PipelineDeclaration& WithRoleArn(Aws::String&& value) { SetRoleArn(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) for CodePipeline to use to either perform * actions with no actionRoleArn, or to use to assume roles for * actions with an actionRoleArn.

*/ inline PipelineDeclaration& WithRoleArn(const char* value) { SetRoleArn(value); return *this;} /** *

Represents information about the S3 bucket where artifacts are stored for the * pipeline.

You must include either artifactStore or * artifactStores in your pipeline, but you cannot use both. If you * create a cross-region action in your pipeline, you must use * artifactStores.

*/ inline const ArtifactStore& GetArtifactStore() const{ return m_artifactStore; } /** *

Represents information about the S3 bucket where artifacts are stored for the * pipeline.

You must include either artifactStore or * artifactStores in your pipeline, but you cannot use both. If you * create a cross-region action in your pipeline, you must use * artifactStores.

*/ inline bool ArtifactStoreHasBeenSet() const { return m_artifactStoreHasBeenSet; } /** *

Represents information about the S3 bucket where artifacts are stored for the * pipeline.

You must include either artifactStore or * artifactStores in your pipeline, but you cannot use both. If you * create a cross-region action in your pipeline, you must use * artifactStores.

*/ inline void SetArtifactStore(const ArtifactStore& value) { m_artifactStoreHasBeenSet = true; m_artifactStore = value; } /** *

Represents information about the S3 bucket where artifacts are stored for the * pipeline.

You must include either artifactStore or * artifactStores in your pipeline, but you cannot use both. If you * create a cross-region action in your pipeline, you must use * artifactStores.

*/ inline void SetArtifactStore(ArtifactStore&& value) { m_artifactStoreHasBeenSet = true; m_artifactStore = std::move(value); } /** *

Represents information about the S3 bucket where artifacts are stored for the * pipeline.

You must include either artifactStore or * artifactStores in your pipeline, but you cannot use both. If you * create a cross-region action in your pipeline, you must use * artifactStores.

*/ inline PipelineDeclaration& WithArtifactStore(const ArtifactStore& value) { SetArtifactStore(value); return *this;} /** *

Represents information about the S3 bucket where artifacts are stored for the * pipeline.

You must include either artifactStore or * artifactStores in your pipeline, but you cannot use both. If you * create a cross-region action in your pipeline, you must use * artifactStores.

*/ inline PipelineDeclaration& WithArtifactStore(ArtifactStore&& value) { SetArtifactStore(std::move(value)); return *this;} /** *

A mapping of artifactStore objects and their corresponding * Amazon Web Services Regions. There must be an artifact store for the pipeline * Region and for each cross-region action in the pipeline.

You must * include either artifactStore or artifactStores in your * pipeline, but you cannot use both. If you create a cross-region action in your * pipeline, you must use artifactStores.

*/ inline const Aws::Map& GetArtifactStores() const{ return m_artifactStores; } /** *

A mapping of artifactStore objects and their corresponding * Amazon Web Services Regions. There must be an artifact store for the pipeline * Region and for each cross-region action in the pipeline.

You must * include either artifactStore or artifactStores in your * pipeline, but you cannot use both. If you create a cross-region action in your * pipeline, you must use artifactStores.

*/ inline bool ArtifactStoresHasBeenSet() const { return m_artifactStoresHasBeenSet; } /** *

A mapping of artifactStore objects and their corresponding * Amazon Web Services Regions. There must be an artifact store for the pipeline * Region and for each cross-region action in the pipeline.

You must * include either artifactStore or artifactStores in your * pipeline, but you cannot use both. If you create a cross-region action in your * pipeline, you must use artifactStores.

*/ inline void SetArtifactStores(const Aws::Map& value) { m_artifactStoresHasBeenSet = true; m_artifactStores = value; } /** *

A mapping of artifactStore objects and their corresponding * Amazon Web Services Regions. There must be an artifact store for the pipeline * Region and for each cross-region action in the pipeline.

You must * include either artifactStore or artifactStores in your * pipeline, but you cannot use both. If you create a cross-region action in your * pipeline, you must use artifactStores.

*/ inline void SetArtifactStores(Aws::Map&& value) { m_artifactStoresHasBeenSet = true; m_artifactStores = std::move(value); } /** *

A mapping of artifactStore objects and their corresponding * Amazon Web Services Regions. There must be an artifact store for the pipeline * Region and for each cross-region action in the pipeline.

You must * include either artifactStore or artifactStores in your * pipeline, but you cannot use both. If you create a cross-region action in your * pipeline, you must use artifactStores.

*/ inline PipelineDeclaration& WithArtifactStores(const Aws::Map& value) { SetArtifactStores(value); return *this;} /** *

A mapping of artifactStore objects and their corresponding * Amazon Web Services Regions. There must be an artifact store for the pipeline * Region and for each cross-region action in the pipeline.

You must * include either artifactStore or artifactStores in your * pipeline, but you cannot use both. If you create a cross-region action in your * pipeline, you must use artifactStores.

*/ inline PipelineDeclaration& WithArtifactStores(Aws::Map&& value) { SetArtifactStores(std::move(value)); return *this;} /** *

A mapping of artifactStore objects and their corresponding * Amazon Web Services Regions. There must be an artifact store for the pipeline * Region and for each cross-region action in the pipeline.

You must * include either artifactStore or artifactStores in your * pipeline, but you cannot use both. If you create a cross-region action in your * pipeline, you must use artifactStores.

*/ inline PipelineDeclaration& AddArtifactStores(const Aws::String& key, const ArtifactStore& value) { m_artifactStoresHasBeenSet = true; m_artifactStores.emplace(key, value); return *this; } /** *

A mapping of artifactStore objects and their corresponding * Amazon Web Services Regions. There must be an artifact store for the pipeline * Region and for each cross-region action in the pipeline.

You must * include either artifactStore or artifactStores in your * pipeline, but you cannot use both. If you create a cross-region action in your * pipeline, you must use artifactStores.

*/ inline PipelineDeclaration& AddArtifactStores(Aws::String&& key, const ArtifactStore& value) { m_artifactStoresHasBeenSet = true; m_artifactStores.emplace(std::move(key), value); return *this; } /** *

A mapping of artifactStore objects and their corresponding * Amazon Web Services Regions. There must be an artifact store for the pipeline * Region and for each cross-region action in the pipeline.

You must * include either artifactStore or artifactStores in your * pipeline, but you cannot use both. If you create a cross-region action in your * pipeline, you must use artifactStores.

*/ inline PipelineDeclaration& AddArtifactStores(const Aws::String& key, ArtifactStore&& value) { m_artifactStoresHasBeenSet = true; m_artifactStores.emplace(key, std::move(value)); return *this; } /** *

A mapping of artifactStore objects and their corresponding * Amazon Web Services Regions. There must be an artifact store for the pipeline * Region and for each cross-region action in the pipeline.

You must * include either artifactStore or artifactStores in your * pipeline, but you cannot use both. If you create a cross-region action in your * pipeline, you must use artifactStores.

*/ inline PipelineDeclaration& AddArtifactStores(Aws::String&& key, ArtifactStore&& value) { m_artifactStoresHasBeenSet = true; m_artifactStores.emplace(std::move(key), std::move(value)); return *this; } /** *

A mapping of artifactStore objects and their corresponding * Amazon Web Services Regions. There must be an artifact store for the pipeline * Region and for each cross-region action in the pipeline.

You must * include either artifactStore or artifactStores in your * pipeline, but you cannot use both. If you create a cross-region action in your * pipeline, you must use artifactStores.

*/ inline PipelineDeclaration& AddArtifactStores(const char* key, ArtifactStore&& value) { m_artifactStoresHasBeenSet = true; m_artifactStores.emplace(key, std::move(value)); return *this; } /** *

A mapping of artifactStore objects and their corresponding * Amazon Web Services Regions. There must be an artifact store for the pipeline * Region and for each cross-region action in the pipeline.

You must * include either artifactStore or artifactStores in your * pipeline, but you cannot use both. If you create a cross-region action in your * pipeline, you must use artifactStores.

*/ inline PipelineDeclaration& AddArtifactStores(const char* key, const ArtifactStore& value) { m_artifactStoresHasBeenSet = true; m_artifactStores.emplace(key, value); return *this; } /** *

The stage in which to perform the action.

*/ inline const Aws::Vector& GetStages() const{ return m_stages; } /** *

The stage in which to perform the action.

*/ inline bool StagesHasBeenSet() const { return m_stagesHasBeenSet; } /** *

The stage in which to perform the action.

*/ inline void SetStages(const Aws::Vector& value) { m_stagesHasBeenSet = true; m_stages = value; } /** *

The stage in which to perform the action.

*/ inline void SetStages(Aws::Vector&& value) { m_stagesHasBeenSet = true; m_stages = std::move(value); } /** *

The stage in which to perform the action.

*/ inline PipelineDeclaration& WithStages(const Aws::Vector& value) { SetStages(value); return *this;} /** *

The stage in which to perform the action.

*/ inline PipelineDeclaration& WithStages(Aws::Vector&& value) { SetStages(std::move(value)); return *this;} /** *

The stage in which to perform the action.

*/ inline PipelineDeclaration& AddStages(const StageDeclaration& value) { m_stagesHasBeenSet = true; m_stages.push_back(value); return *this; } /** *

The stage in which to perform the action.

*/ inline PipelineDeclaration& AddStages(StageDeclaration&& value) { m_stagesHasBeenSet = true; m_stages.push_back(std::move(value)); return *this; } /** *

The version number of the pipeline. A new pipeline always has a version * number of 1. This number is incremented when a pipeline is updated.

*/ inline int GetVersion() const{ return m_version; } /** *

The version number of the pipeline. A new pipeline always has a version * number of 1. This number is incremented when a pipeline is updated.

*/ inline bool VersionHasBeenSet() const { return m_versionHasBeenSet; } /** *

The version number of the pipeline. A new pipeline always has a version * number of 1. This number is incremented when a pipeline is updated.

*/ inline void SetVersion(int value) { m_versionHasBeenSet = true; m_version = value; } /** *

The version number of the pipeline. A new pipeline always has a version * number of 1. This number is incremented when a pipeline is updated.

*/ inline PipelineDeclaration& WithVersion(int value) { SetVersion(value); return *this;} private: Aws::String m_name; bool m_nameHasBeenSet = false; Aws::String m_roleArn; bool m_roleArnHasBeenSet = false; ArtifactStore m_artifactStore; bool m_artifactStoreHasBeenSet = false; Aws::Map m_artifactStores; bool m_artifactStoresHasBeenSet = false; Aws::Vector m_stages; bool m_stagesHasBeenSet = false; int m_version; bool m_versionHasBeenSet = false; }; } // namespace Model } // namespace CodePipeline } // namespace Aws