Files
DedicatedServerCourse/Plugins/GameLiftPlugin/Source/AWSSDK/Include/aws/gamelift/model/CreateBuildRequest.h
2026-02-28 12:32:28 -05:00

181 lines
9.7 KiB
C++

/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include <aws/gamelift/GameLift_EXPORTS.h>
#include <aws/gamelift/GameLiftRequest.h>
#include <aws/core/utils/memory/stl/AWSString.h>
#include <aws/gamelift/model/S3Location.h>
#include <aws/gamelift/model/OperatingSystem.h>
#include <aws/core/utils/memory/stl/AWSVector.h>
#include <aws/gamelift/model/Tag.h>
#include <utility>
namespace Aws
{
namespace GameLift
{
namespace Model
{
/**
*/
class CreateBuildRequest : public GameLiftRequest
{
public:
AWS_GAMELIFT_API CreateBuildRequest();
// Service request name is the Operation name which will send this request out,
// each operation should has unique request name, so that we can get operation's name from this request.
// Note: this is not true for response, multiple operations may have the same response name,
// so we can not get operation's name from response.
inline virtual const char* GetServiceRequestName() const override { return "CreateBuild"; }
AWS_GAMELIFT_API Aws::String SerializePayload() const override;
AWS_GAMELIFT_API Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override;
///@{
/**
* <p>A descriptive label that is associated with a build. Build names do not need
* to be unique. You can change this value later. </p>
*/
inline const Aws::String& GetName() const{ return m_name; }
inline bool NameHasBeenSet() const { return m_nameHasBeenSet; }
inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; }
inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); }
inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); }
inline CreateBuildRequest& WithName(const Aws::String& value) { SetName(value); return *this;}
inline CreateBuildRequest& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;}
inline CreateBuildRequest& WithName(const char* value) { SetName(value); return *this;}
///@}
///@{
/**
* <p>Version information that is associated with a build or script. Version
* strings do not need to be unique. You can change this value later. </p>
*/
inline const Aws::String& GetVersion() const{ return m_version; }
inline bool VersionHasBeenSet() const { return m_versionHasBeenSet; }
inline void SetVersion(const Aws::String& value) { m_versionHasBeenSet = true; m_version = value; }
inline void SetVersion(Aws::String&& value) { m_versionHasBeenSet = true; m_version = std::move(value); }
inline void SetVersion(const char* value) { m_versionHasBeenSet = true; m_version.assign(value); }
inline CreateBuildRequest& WithVersion(const Aws::String& value) { SetVersion(value); return *this;}
inline CreateBuildRequest& WithVersion(Aws::String&& value) { SetVersion(std::move(value)); return *this;}
inline CreateBuildRequest& WithVersion(const char* value) { SetVersion(value); return *this;}
///@}
///@{
/**
* <p>Information indicating where your game build files are stored. Use this
* parameter only when creating a build with files stored in an Amazon S3 bucket
* that you own. The storage location must specify an Amazon S3 bucket name and
* key. The location must also specify a role ARN that you set up to allow Amazon
* GameLift to access your Amazon S3 bucket. The S3 bucket and your new build must
* be in the same Region.</p> <p>If a <code>StorageLocation</code> is specified,
* the size of your file can be found in your Amazon S3 bucket. Amazon GameLift
* will report a <code>SizeOnDisk</code> of 0. </p>
*/
inline const S3Location& GetStorageLocation() const{ return m_storageLocation; }
inline bool StorageLocationHasBeenSet() const { return m_storageLocationHasBeenSet; }
inline void SetStorageLocation(const S3Location& value) { m_storageLocationHasBeenSet = true; m_storageLocation = value; }
inline void SetStorageLocation(S3Location&& value) { m_storageLocationHasBeenSet = true; m_storageLocation = std::move(value); }
inline CreateBuildRequest& WithStorageLocation(const S3Location& value) { SetStorageLocation(value); return *this;}
inline CreateBuildRequest& WithStorageLocation(S3Location&& value) { SetStorageLocation(std::move(value)); return *this;}
///@}
///@{
/**
* <p>The environment that your game server binaries run on. This value determines
* the type of fleet resources that you use for this build. If your game build
* contains multiple executables, they all must run on the same operating system.
* This parameter is required, and there's no default value. You can't change a
* build's operating system later.</p> <p>Amazon Linux 2 (AL2) will reach
* end of support on 6/30/2025. See more details in the <a
* href="https://aws.amazon.com/amazon-linux-2/faqs/">Amazon Linux 2 FAQs</a>. For
* game servers that are hosted on AL2 and use Amazon GameLift server SDK 4.x.,
* first update the game server build to server SDK 5.x, and then deploy to AL2023
* instances. See <a
* href="https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-serversdk5-migration.html">
* Migrate to Amazon GameLift server SDK version 5.</a> </p>
*/
inline const OperatingSystem& GetOperatingSystem() const{ return m_operatingSystem; }
inline bool OperatingSystemHasBeenSet() const { return m_operatingSystemHasBeenSet; }
inline void SetOperatingSystem(const OperatingSystem& value) { m_operatingSystemHasBeenSet = true; m_operatingSystem = value; }
inline void SetOperatingSystem(OperatingSystem&& value) { m_operatingSystemHasBeenSet = true; m_operatingSystem = std::move(value); }
inline CreateBuildRequest& WithOperatingSystem(const OperatingSystem& value) { SetOperatingSystem(value); return *this;}
inline CreateBuildRequest& WithOperatingSystem(OperatingSystem&& value) { SetOperatingSystem(std::move(value)); return *this;}
///@}
///@{
/**
* <p>A list of labels to assign to the new build resource. Tags are developer
* defined key-value pairs. Tagging Amazon Web Services resources are useful for
* resource management, access management and cost allocation. For more
* information, see <a
* href="https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html"> Tagging
* Amazon Web Services Resources</a> in the <i>Amazon Web Services General
* Reference</i>. Once the resource is created, you can use <a
* href="https://docs.aws.amazon.com/gamelift/latest/apireference/API_TagResource.html">TagResource</a>,
* <a
* href="https://docs.aws.amazon.com/gamelift/latest/apireference/API_UntagResource.html">UntagResource</a>,
* and <a
* href="https://docs.aws.amazon.com/gamelift/latest/apireference/API_ListTagsForResource.html">ListTagsForResource</a>
* to add, remove, and view tags. The maximum tag limit may be lower than stated.
* See the Amazon Web Services General Reference for actual tagging limits.</p>
*/
inline const Aws::Vector<Tag>& GetTags() const{ return m_tags; }
inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; }
inline void SetTags(const Aws::Vector<Tag>& value) { m_tagsHasBeenSet = true; m_tags = value; }
inline void SetTags(Aws::Vector<Tag>&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); }
inline CreateBuildRequest& WithTags(const Aws::Vector<Tag>& value) { SetTags(value); return *this;}
inline CreateBuildRequest& WithTags(Aws::Vector<Tag>&& value) { SetTags(std::move(value)); return *this;}
inline CreateBuildRequest& AddTags(const Tag& value) { m_tagsHasBeenSet = true; m_tags.push_back(value); return *this; }
inline CreateBuildRequest& AddTags(Tag&& value) { m_tagsHasBeenSet = true; m_tags.push_back(std::move(value)); return *this; }
///@}
///@{
/**
* <p>A server SDK version you used when integrating your game server build with
* Amazon GameLift. For more information see <a
* href="https://docs.aws.amazon.com/gamelift/latest/developerguide/integration-custom-intro.html">Integrate
* games with custom game servers</a>. By default Amazon GameLift sets this value
* to <code>4.0.2</code>.</p>
*/
inline const Aws::String& GetServerSdkVersion() const{ return m_serverSdkVersion; }
inline bool ServerSdkVersionHasBeenSet() const { return m_serverSdkVersionHasBeenSet; }
inline void SetServerSdkVersion(const Aws::String& value) { m_serverSdkVersionHasBeenSet = true; m_serverSdkVersion = value; }
inline void SetServerSdkVersion(Aws::String&& value) { m_serverSdkVersionHasBeenSet = true; m_serverSdkVersion = std::move(value); }
inline void SetServerSdkVersion(const char* value) { m_serverSdkVersionHasBeenSet = true; m_serverSdkVersion.assign(value); }
inline CreateBuildRequest& WithServerSdkVersion(const Aws::String& value) { SetServerSdkVersion(value); return *this;}
inline CreateBuildRequest& WithServerSdkVersion(Aws::String&& value) { SetServerSdkVersion(std::move(value)); return *this;}
inline CreateBuildRequest& WithServerSdkVersion(const char* value) { SetServerSdkVersion(value); return *this;}
///@}
private:
Aws::String m_name;
bool m_nameHasBeenSet = false;
Aws::String m_version;
bool m_versionHasBeenSet = false;
S3Location m_storageLocation;
bool m_storageLocationHasBeenSet = false;
OperatingSystem m_operatingSystem;
bool m_operatingSystemHasBeenSet = false;
Aws::Vector<Tag> m_tags;
bool m_tagsHasBeenSet = false;
Aws::String m_serverSdkVersion;
bool m_serverSdkVersionHasBeenSet = false;
};
} // namespace Model
} // namespace GameLift
} // namespace Aws