createBuild method
This API works with the following fleet types: EC2, Anywhere
Creates a new Amazon GameLift Servers build resource for your game server
binary files. Combine game server binaries into a zip file for use with
Amazon GameLift Servers.
You can use the CreateBuild operation in the following
scenarios:
- Create a new game build with build files that are in an Amazon S3 location under an Amazon Web Services account that you control. To use this option, you give Amazon GameLift Servers access to the Amazon S3 bucket. With permissions in place, specify a build name, operating system, and the Amazon S3 storage location of your game build.
- Upload your build files to a Amazon GameLift Servers Amazon S3 location. To use this option, specify a build name and operating system. This operation creates a new build resource and also returns an Amazon S3 location with temporary access credentials. Use the credentials to manually upload your build files to the specified Amazon S3 location. For more information, see Uploading Objects in the Amazon S3 Developer Guide. After you upload build files to the Amazon GameLift Servers Amazon S3 location, you can't update them.
INITIALIZED status. A build must be
in READY status before you can create fleets with it.
Learn more
Create a Build with Files in Amazon S3
May throw ConflictException.
May throw InternalServiceException.
May throw InvalidRequestException.
May throw TaggingFailedException.
May throw UnauthorizedException.
Parameter name :
A descriptive label that is associated with a build. Build names do not
need to be unique. You can change this value later.
Parameter operatingSystem :
The operating system 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. You must specify a valid operating system in this
request. There is no default value. You can't change a build's operating
system later.
Parameter serverSdkVersion :
A server SDK version you used when integrating your game server build with
Amazon GameLift Servers. For more information see Integrate
games with custom game servers. By default Amazon GameLift Servers
sets this value to 4.0.2.
Parameter storageLocation :
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 Servers to access your Amazon S3 bucket. The S3
bucket and your new build must be in the same Region.
If a StorageLocation is specified, the size of your file can
be found in your Amazon S3 bucket. Amazon GameLift Servers will report a
SizeOnDisk of 0.
Parameter tags :
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
Tagging Amazon Web Services Resources in the Amazon Web Services
General Reference. Once the resource is created, you can use TagResource,
UntagResource,
and ListTagsForResource
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.
Parameter version :
Version information that is associated with a build or script. Version
strings do not need to be unique. You can change this value later.
Implementation
Future<CreateBuildOutput> createBuild({
String? name,
OperatingSystem? operatingSystem,
String? serverSdkVersion,
S3Location? storageLocation,
List<Tag>? tags,
String? version,
}) async {
final headers = <String, String>{
'Content-Type': 'application/x-amz-json-1.1',
'X-Amz-Target': 'GameLift.CreateBuild'
};
final jsonResponse = await _protocol.send(
method: 'POST',
requestUri: '/',
exceptionFnMap: _exceptionFns,
// TODO queryParams
headers: headers,
payload: {
if (name != null) 'Name': name,
if (operatingSystem != null) 'OperatingSystem': operatingSystem.value,
if (serverSdkVersion != null) 'ServerSdkVersion': serverSdkVersion,
if (storageLocation != null) 'StorageLocation': storageLocation,
if (tags != null) 'Tags': tags,
if (version != null) 'Version': version,
},
);
return CreateBuildOutput.fromJson(jsonResponse.body);
}