/** * 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 CodeDeploy { namespace Model { /** *

Information about the location of an application revision.

See * Also:

AWS * API Reference

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

The type of application revision:

  • S3: An application * revision stored in Amazon S3.

  • GitHub: An application revision * stored in GitHub (EC2/On-premises deployments only).

  • String: A * YAML-formatted or JSON-formatted string (Lambda deployments only).

  • *
  • AppSpecContent: An AppSpecContent object that contains the * contents of an AppSpec file for an Lambda or Amazon ECS deployment. The content * is formatted as JSON or YAML stored as a RawString.

*/ inline const RevisionLocationType& GetRevisionType() const{ return m_revisionType; } /** *

The type of application revision:

  • S3: An application * revision stored in Amazon S3.

  • GitHub: An application revision * stored in GitHub (EC2/On-premises deployments only).

  • String: A * YAML-formatted or JSON-formatted string (Lambda deployments only).

  • *
  • AppSpecContent: An AppSpecContent object that contains the * contents of an AppSpec file for an Lambda or Amazon ECS deployment. The content * is formatted as JSON or YAML stored as a RawString.

*/ inline bool RevisionTypeHasBeenSet() const { return m_revisionTypeHasBeenSet; } /** *

The type of application revision:

  • S3: An application * revision stored in Amazon S3.

  • GitHub: An application revision * stored in GitHub (EC2/On-premises deployments only).

  • String: A * YAML-formatted or JSON-formatted string (Lambda deployments only).

  • *
  • AppSpecContent: An AppSpecContent object that contains the * contents of an AppSpec file for an Lambda or Amazon ECS deployment. The content * is formatted as JSON or YAML stored as a RawString.

*/ inline void SetRevisionType(const RevisionLocationType& value) { m_revisionTypeHasBeenSet = true; m_revisionType = value; } /** *

The type of application revision:

  • S3: An application * revision stored in Amazon S3.

  • GitHub: An application revision * stored in GitHub (EC2/On-premises deployments only).

  • String: A * YAML-formatted or JSON-formatted string (Lambda deployments only).

  • *
  • AppSpecContent: An AppSpecContent object that contains the * contents of an AppSpec file for an Lambda or Amazon ECS deployment. The content * is formatted as JSON or YAML stored as a RawString.

*/ inline void SetRevisionType(RevisionLocationType&& value) { m_revisionTypeHasBeenSet = true; m_revisionType = std::move(value); } /** *

The type of application revision:

  • S3: An application * revision stored in Amazon S3.

  • GitHub: An application revision * stored in GitHub (EC2/On-premises deployments only).

  • String: A * YAML-formatted or JSON-formatted string (Lambda deployments only).

  • *
  • AppSpecContent: An AppSpecContent object that contains the * contents of an AppSpec file for an Lambda or Amazon ECS deployment. The content * is formatted as JSON or YAML stored as a RawString.

*/ inline RevisionLocation& WithRevisionType(const RevisionLocationType& value) { SetRevisionType(value); return *this;} /** *

The type of application revision:

  • S3: An application * revision stored in Amazon S3.

  • GitHub: An application revision * stored in GitHub (EC2/On-premises deployments only).

  • String: A * YAML-formatted or JSON-formatted string (Lambda deployments only).

  • *
  • AppSpecContent: An AppSpecContent object that contains the * contents of an AppSpec file for an Lambda or Amazon ECS deployment. The content * is formatted as JSON or YAML stored as a RawString.

*/ inline RevisionLocation& WithRevisionType(RevisionLocationType&& value) { SetRevisionType(std::move(value)); return *this;} /** *

Information about the location of a revision stored in Amazon S3.

*/ inline const S3Location& GetS3Location() const{ return m_s3Location; } /** *

Information about the location of a revision stored in Amazon S3.

*/ inline bool S3LocationHasBeenSet() const { return m_s3LocationHasBeenSet; } /** *

Information about the location of a revision stored in Amazon S3.

*/ inline void SetS3Location(const S3Location& value) { m_s3LocationHasBeenSet = true; m_s3Location = value; } /** *

Information about the location of a revision stored in Amazon S3.

*/ inline void SetS3Location(S3Location&& value) { m_s3LocationHasBeenSet = true; m_s3Location = std::move(value); } /** *

Information about the location of a revision stored in Amazon S3.

*/ inline RevisionLocation& WithS3Location(const S3Location& value) { SetS3Location(value); return *this;} /** *

Information about the location of a revision stored in Amazon S3.

*/ inline RevisionLocation& WithS3Location(S3Location&& value) { SetS3Location(std::move(value)); return *this;} /** *

Information about the location of application artifacts stored in GitHub.

*/ inline const GitHubLocation& GetGitHubLocation() const{ return m_gitHubLocation; } /** *

Information about the location of application artifacts stored in GitHub.

*/ inline bool GitHubLocationHasBeenSet() const { return m_gitHubLocationHasBeenSet; } /** *

Information about the location of application artifacts stored in GitHub.

*/ inline void SetGitHubLocation(const GitHubLocation& value) { m_gitHubLocationHasBeenSet = true; m_gitHubLocation = value; } /** *

Information about the location of application artifacts stored in GitHub.

*/ inline void SetGitHubLocation(GitHubLocation&& value) { m_gitHubLocationHasBeenSet = true; m_gitHubLocation = std::move(value); } /** *

Information about the location of application artifacts stored in GitHub.

*/ inline RevisionLocation& WithGitHubLocation(const GitHubLocation& value) { SetGitHubLocation(value); return *this;} /** *

Information about the location of application artifacts stored in GitHub.

*/ inline RevisionLocation& WithGitHubLocation(GitHubLocation&& value) { SetGitHubLocation(std::move(value)); return *this;} /** *

Information about the location of an Lambda deployment revision stored as a * RawString.

*/ inline const RawString& GetString() const{ return m_string; } /** *

Information about the location of an Lambda deployment revision stored as a * RawString.

*/ inline bool StringHasBeenSet() const { return m_stringHasBeenSet; } /** *

Information about the location of an Lambda deployment revision stored as a * RawString.

*/ inline void SetString(const RawString& value) { m_stringHasBeenSet = true; m_string = value; } /** *

Information about the location of an Lambda deployment revision stored as a * RawString.

*/ inline void SetString(RawString&& value) { m_stringHasBeenSet = true; m_string = std::move(value); } /** *

Information about the location of an Lambda deployment revision stored as a * RawString.

*/ inline RevisionLocation& WithString(const RawString& value) { SetString(value); return *this;} /** *

Information about the location of an Lambda deployment revision stored as a * RawString.

*/ inline RevisionLocation& WithString(RawString&& value) { SetString(std::move(value)); return *this;} /** *

The content of an AppSpec file for an Lambda or Amazon ECS deployment. The * content is formatted as JSON or YAML and stored as a RawString.

*/ inline const AppSpecContent& GetAppSpecContent() const{ return m_appSpecContent; } /** *

The content of an AppSpec file for an Lambda or Amazon ECS deployment. The * content is formatted as JSON or YAML and stored as a RawString.

*/ inline bool AppSpecContentHasBeenSet() const { return m_appSpecContentHasBeenSet; } /** *

The content of an AppSpec file for an Lambda or Amazon ECS deployment. The * content is formatted as JSON or YAML and stored as a RawString.

*/ inline void SetAppSpecContent(const AppSpecContent& value) { m_appSpecContentHasBeenSet = true; m_appSpecContent = value; } /** *

The content of an AppSpec file for an Lambda or Amazon ECS deployment. The * content is formatted as JSON or YAML and stored as a RawString.

*/ inline void SetAppSpecContent(AppSpecContent&& value) { m_appSpecContentHasBeenSet = true; m_appSpecContent = std::move(value); } /** *

The content of an AppSpec file for an Lambda or Amazon ECS deployment. The * content is formatted as JSON or YAML and stored as a RawString.

*/ inline RevisionLocation& WithAppSpecContent(const AppSpecContent& value) { SetAppSpecContent(value); return *this;} /** *

The content of an AppSpec file for an Lambda or Amazon ECS deployment. The * content is formatted as JSON or YAML and stored as a RawString.

*/ inline RevisionLocation& WithAppSpecContent(AppSpecContent&& value) { SetAppSpecContent(std::move(value)); return *this;} private: RevisionLocationType m_revisionType; bool m_revisionTypeHasBeenSet = false; S3Location m_s3Location; bool m_s3LocationHasBeenSet = false; GitHubLocation m_gitHubLocation; bool m_gitHubLocationHasBeenSet = false; RawString m_string; bool m_stringHasBeenSet = false; AppSpecContent m_appSpecContent; bool m_appSpecContentHasBeenSet = false; }; } // namespace Model } // namespace CodeDeploy } // namespace Aws