/*
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
/*
* Do not modify this file. This file is generated from the gamelift-2015-10-01.normal.json service model.
*/
using System;
using System.Collections.Generic;
using System.Xml.Serialization;
using System.Text;
using System.IO;
using System.Net;
using Amazon.Runtime;
using Amazon.Runtime.Internal;
namespace Amazon.GameLift.Model
{
///
/// Container for the parameters to the CreateScript operation.
/// Creates a new script record for your Realtime Servers script. Realtime scripts are
/// JavaScript that provide configuration settings and optional custom game logic for
/// your game. The script is deployed when you create a Realtime Servers fleet to host
/// your game sessions. Script logic is executed during an active game session.
///
///
///
/// To create a new script record, specify a script name and provide the script file(s).
/// The script files and all dependencies must be zipped into a single file. You can pull
/// the zip file from either of these locations:
///
/// -
///
/// A locally available directory. Use the ZipFile parameter for this option.
///
///
-
///
/// An Amazon Simple Storage Service (Amazon S3) bucket under your Amazon Web Services
/// account. Use the StorageLocation parameter for this option. You'll need to
/// have an Identity Access Management (IAM) role that allows the Amazon GameLift service
/// to access your S3 bucket.
///
///
///
/// If the call is successful, a new script record is created with a unique script ID.
/// If the script file is provided as a local file, the file is uploaded to an Amazon
/// GameLift-owned S3 bucket and the script record's storage location reflects this location.
/// If the script file is provided as an S3 bucket, Amazon GameLift accesses the file
/// at this storage location as needed for deployment.
///
///
///
/// Learn more
///
///
///
/// Amazon
/// GameLift Realtime Servers
///
///
///
/// Set
/// Up a Role for Amazon GameLift Access
///
///
///
/// Related actions
///
///
///
/// All
/// APIs by task
///
///
public partial class CreateScriptRequest : AmazonGameLiftRequest
{
private string _name;
private S3Location _storageLocation;
private List _tags = new List();
private string _version;
private MemoryStream _zipFile;
///
/// Gets and sets the property Name.
///
/// A descriptive label that is associated with a script. Script names don't need to be
/// unique. You can use UpdateScript
/// to change this value later.
///
///
[AWSProperty(Min=1, Max=1024)]
public string Name
{
get { return this._name; }
set { this._name = value; }
}
// Check to see if Name property is set
internal bool IsSetName()
{
return this._name != null;
}
///
/// Gets and sets the property StorageLocation.
///
/// The location of the Amazon S3 bucket where a zipped file containing your Realtime
/// scripts is stored. The storage location must specify the Amazon S3 bucket name, the
/// zip file name (the "key"), and a role ARN that allows Amazon GameLift to access the
/// Amazon S3 storage location. The S3 bucket must be in the same Region where you want
/// to create a new script. By default, Amazon GameLift uploads the latest version of
/// the zip file; if you have S3 object versioning turned on, you can use the ObjectVersion
/// parameter to specify an earlier version.
///
///
public S3Location StorageLocation
{
get { return this._storageLocation; }
set { this._storageLocation = value; }
}
// Check to see if StorageLocation property is set
internal bool IsSetStorageLocation()
{
return this._storageLocation != null;
}
///
/// Gets and sets the property Tags.
///
/// A list of labels to assign to the new script 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.
///
///
[AWSProperty(Min=0, Max=200)]
public List Tags
{
get { return this._tags; }
set { this._tags = value; }
}
// Check to see if Tags property is set
internal bool IsSetTags()
{
return this._tags != null && this._tags.Count > 0;
}
///
/// Gets and sets the property Version.
///
/// Version information associated with a build or script. Version strings don't need
/// to be unique. You can use UpdateScript
/// to change this value later.
///
///
[AWSProperty(Min=1, Max=1024)]
public string Version
{
get { return this._version; }
set { this._version = value; }
}
// Check to see if Version property is set
internal bool IsSetVersion()
{
return this._version != null;
}
///
/// Gets and sets the property ZipFile.
///
/// A data object containing your Realtime scripts and dependencies as a zip file. The
/// zip file can have one or multiple files. Maximum size of a zip file is 5 MB.
///
///
///
/// When using the Amazon Web Services CLI tool to create a script, this parameter is
/// set to the zip file name. It must be prepended with the string "fileb://" to indicate
/// that the file data is a binary object. For example: --zip-file fileb://myRealtimeScript.zip
.
///
///
[AWSProperty(Max=5000000)]
public MemoryStream ZipFile
{
get { return this._zipFile; }
set { this._zipFile = value; }
}
// Check to see if ZipFile property is set
internal bool IsSetZipFile()
{
return this._zipFile != null;
}
}
}