-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Amazon GameLift SDK.
--   
--   The types from this library are intended to be used with
--   <a>amazonka</a>, which provides mechanisms for specifying AuthN/AuthZ
--   information, sending requests, and receiving responses.
--   
--   Lenses are used for constructing and manipulating types, due to the
--   depth of nesting of AWS types and transparency regarding
--   de/serialisation into more palatable Haskell values. The provided
--   lenses should be compatible with any of the major lens libraries such
--   as <a>lens</a> or <a>lens-family-core</a>.
--   
--   See <a>Network.AWS.GameLift</a> or <a>the AWS documentation</a> to get
--   started.
@package amazonka-gamelift
@version 1.6.0


module Network.AWS.GameLift.Types

-- | API version <tt>2015-10-01</tt> of the Amazon GameLift SDK
--   configuration.
gameLift :: Service

-- | The requested operation would cause a conflict with the current state
--   of a resource associated with the request and/or the fleet. Resolve
--   the conflict before retrying.
_InvalidFleetStatusException :: AsError a => Getting (First ServiceError) a ServiceError

-- | One or more parameter values in the request are invalid. Correct the
--   invalid parameter values before retrying.
_InvalidRequestException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The requested operation would cause a conflict with the current state
--   of a service resource associated with the request. Resolve the
--   conflict before retrying this request.
_ConflictException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The service is unable to resolve the routing for a particular alias
--   because it has a terminal <a>RoutingStrategy</a> associated with it.
--   The message returned in this exception is the message defined in the
--   routing strategy itself. Such requests should only be retried if the
--   routing strategy for the specified alias is modified.
_TerminalRoutingStrategyException :: AsError a => Getting (First ServiceError) a ServiceError

-- | A service resource associated with the request could not be found.
--   Clients should not retry such requests.
_NotFoundException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The game instance is currently full and cannot allow the requested
--   player(s) to join. Clients can retry such requests immediately or
--   after a waiting period.
_GameSessionFullException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The requested operation is not supported in the region specified.
_UnsupportedRegionException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The requested operation would cause a conflict with the current state
--   of a resource associated with the request and/or the game instance.
--   Resolve the conflict before retrying.
_InvalidGameSessionStatusException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The service encountered an unrecoverable internal failure while
--   processing the request. Clients can retry such requests immediately or
--   after a waiting period.
_InternalServiceException :: AsError a => Getting (First ServiceError) a ServiceError

-- | A game session with this custom ID string already exists in this
--   fleet. Resolve this conflict before retrying this request.
_IdempotentParameterMismatchException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The client failed authentication. Clients should not retry such
--   requests.
_UnauthorizedException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The specified fleet has no available instances to fulfill a
--   <tt>CreateGameSession</tt> request. Clients can retry such requests
--   immediately or after a waiting period.
_FleetCapacityExceededException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The requested operation would cause the resource to exceed the allowed
--   service limit. Resolve the issue before retrying.
_LimitExceededException :: AsError a => Getting (First ServiceError) a ServiceError
data AcceptanceType
Accept :: AcceptanceType
Reject :: AcceptanceType
data BuildStatus
Failed :: BuildStatus
Initialized :: BuildStatus
Ready :: BuildStatus
data ComparisonOperatorType
GreaterThanOrEqualToThreshold :: ComparisonOperatorType
GreaterThanThreshold :: ComparisonOperatorType
LessThanOrEqualToThreshold :: ComparisonOperatorType
LessThanThreshold :: ComparisonOperatorType
data EC2InstanceType
C3_2XLarge :: EC2InstanceType
C3_4XLarge :: EC2InstanceType
C3_8XLarge :: EC2InstanceType
C3_Large :: EC2InstanceType
C3_XLarge :: EC2InstanceType
C4_2XLarge :: EC2InstanceType
C4_4XLarge :: EC2InstanceType
C4_8XLarge :: EC2InstanceType
C4_Large :: EC2InstanceType
C4_XLarge :: EC2InstanceType
M3_2XLarge :: EC2InstanceType
M3_Large :: EC2InstanceType
M3_Medium :: EC2InstanceType
M3_XLarge :: EC2InstanceType
M4_10XLarge :: EC2InstanceType
M4_2XLarge :: EC2InstanceType
M4_4XLarge :: EC2InstanceType
M4_Large :: EC2InstanceType
M4_XLarge :: EC2InstanceType
R3_2XLarge :: EC2InstanceType
R3_4XLarge :: EC2InstanceType
R3_8XLarge :: EC2InstanceType
R3_Large :: EC2InstanceType
R3_XLarge :: EC2InstanceType
R4_16XLarge :: EC2InstanceType
R4_2XLarge :: EC2InstanceType
R4_4XLarge :: EC2InstanceType
R4_8XLarge :: EC2InstanceType
R4_Large :: EC2InstanceType
R4_XLarge :: EC2InstanceType
T2_Large :: EC2InstanceType
T2_Medium :: EC2InstanceType
T2_Micro :: EC2InstanceType
T2_Small :: EC2InstanceType
data EventCode
FleetActivationFailed :: EventCode
FleetActivationFailedNoInstances :: EventCode
FleetBinaryDownloadFailed :: EventCode
FleetCreated :: EventCode
FleetCreationExtractingBuild :: EventCode
FleetCreationRunningInstaller :: EventCode
FleetCreationValidatingRuntimeConfig :: EventCode
FleetDeleted :: EventCode
FleetInitializationFailed :: EventCode
FleetNewGameSessionProtectionPolicyUpdated :: EventCode
FleetScalingEvent :: EventCode
FleetStateActivating :: EventCode
FleetStateActive :: EventCode
FleetStateBuilding :: EventCode
FleetStateDownloading :: EventCode
FleetStateError :: EventCode
FleetStateValidating :: EventCode
FleetVPCPeeringDeleted :: EventCode
FleetVPCPeeringFailed :: EventCode
FleetVPCPeeringSucceeded :: EventCode
FleetValidationExecutableRuntimeFailure :: EventCode
FleetValidationLaunchPathNotFound :: EventCode
FleetValidationTimedOut :: EventCode
GameSessionActivationTimeout :: EventCode
GenericEvent :: EventCode
InstanceInterrupted :: EventCode
ServerProcessCrashed :: EventCode
ServerProcessForceTerminated :: EventCode
ServerProcessInvalidPath :: EventCode
ServerProcessProcessExitTimeout :: EventCode
ServerProcessProcessReadyTimeout :: EventCode
ServerProcessSDKInitializationTimeout :: EventCode
ServerProcessTerminatedUnhealthy :: EventCode
data FleetAction
AutoScaling :: FleetAction
data FleetStatus
FSActivating :: FleetStatus
FSActive :: FleetStatus
FSBuilding :: FleetStatus
FSDeleting :: FleetStatus
FSDownloading :: FleetStatus
FSError' :: FleetStatus
FSNew :: FleetStatus
FSTerminated :: FleetStatus
FSValidating :: FleetStatus
data FleetType
OnDemand :: FleetType
Spot :: FleetType
data GameSessionPlacementState
Cancelled :: GameSessionPlacementState
Fulfilled :: GameSessionPlacementState
Pending :: GameSessionPlacementState
TimedOut :: GameSessionPlacementState
data GameSessionStatus
GSSActivating :: GameSessionStatus
GSSActive :: GameSessionStatus
GSSError' :: GameSessionStatus
GSSTerminated :: GameSessionStatus
GSSTerminating :: GameSessionStatus
data GameSessionStatusReason
Interrupted :: GameSessionStatusReason
data IPProtocol
TCP :: IPProtocol
Udp :: IPProtocol
data InstanceStatus
ISActive :: InstanceStatus
ISPending :: InstanceStatus
ISTerminating :: InstanceStatus
data MatchmakingConfigurationStatus
MCSCancelled :: MatchmakingConfigurationStatus
MCSCompleted :: MatchmakingConfigurationStatus
MCSFailed :: MatchmakingConfigurationStatus
MCSPlacing :: MatchmakingConfigurationStatus
MCSQueued :: MatchmakingConfigurationStatus
MCSRequiresAcceptance :: MatchmakingConfigurationStatus
MCSSearching :: MatchmakingConfigurationStatus
MCSTimedOut :: MatchmakingConfigurationStatus
data MetricName
ActivatingGameSessions :: MetricName
ActiveGameSessions :: MetricName
ActiveInstances :: MetricName
AvailableGameSessions :: MetricName
AvailablePlayerSessions :: MetricName
CurrentPlayerSessions :: MetricName
IdleInstances :: MetricName
PercentAvailableGameSessions :: MetricName
PercentIdleInstances :: MetricName
QueueDepth :: MetricName
WaitTime :: MetricName
data OperatingSystem
AmazonLinux :: OperatingSystem
Windows2012 :: OperatingSystem
data PlayerSessionCreationPolicy
AcceptAll :: PlayerSessionCreationPolicy
DenyAll :: PlayerSessionCreationPolicy
data PlayerSessionStatus
PSSActive :: PlayerSessionStatus
PSSCompleted :: PlayerSessionStatus
PSSReserved :: PlayerSessionStatus
PSSTimedout :: PlayerSessionStatus
data PolicyType
RuleBased :: PolicyType
TargetBased :: PolicyType
data ProtectionPolicy
FullProtection :: ProtectionPolicy
NoProtection :: ProtectionPolicy
data RoutingStrategyType
Simple :: RoutingStrategyType
Terminal :: RoutingStrategyType
data ScalingAdjustmentType
ChangeInCapacity :: ScalingAdjustmentType
ExactCapacity :: ScalingAdjustmentType
PercentChangeInCapacity :: ScalingAdjustmentType
data ScalingStatusType
Active :: ScalingStatusType
DeleteRequested :: ScalingStatusType
Deleted :: ScalingStatusType
Deleting :: ScalingStatusType
Error' :: ScalingStatusType
UpdateRequested :: ScalingStatusType
Updating :: ScalingStatusType

-- | Temporary access credentials used for uploading game build files to
--   Amazon GameLift. They are valid for a limited time. If they expire
--   before you upload your game build, get a new set by calling
--   <tt>RequestUploadCredentials</tt> .
--   
--   <i>See:</i> <a>awsCredentials</a> smart constructor.
data AWSCredentials

-- | Creates a value of <a>AWSCredentials</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>acSecretAccessKey</a> - Temporary secret key allowing access to
--   the Amazon GameLift S3 account.</li>
--   <li><a>acSessionToken</a> - Token used to associate a specific build
--   ID with the files uploaded using these credentials.</li>
--   <li><a>acAccessKeyId</a> - Temporary key allowing access to the Amazon
--   GameLift S3 account.</li>
--   </ul>
awsCredentials :: AWSCredentials

-- | Temporary secret key allowing access to the Amazon GameLift S3
--   account.
acSecretAccessKey :: Lens' AWSCredentials (Maybe Text)

-- | Token used to associate a specific build ID with the files uploaded
--   using these credentials.
acSessionToken :: Lens' AWSCredentials (Maybe Text)

-- | Temporary key allowing access to the Amazon GameLift S3 account.
acAccessKeyId :: Lens' AWSCredentials (Maybe Text)

-- | Properties describing a fleet alias.
--   
--   Alias-related operations include:
--   
--   <ul>
--   <li><tt>CreateAlias</tt></li>
--   <li><tt>ListAliases</tt></li>
--   <li><tt>DescribeAlias</tt></li>
--   <li><tt>UpdateAlias</tt></li>
--   <li><tt>DeleteAlias</tt></li>
--   <li><tt>ResolveAlias</tt></li>
--   </ul>
--   
--   <i>See:</i> <a>alias</a> smart constructor.
data Alias

-- | Creates a value of <a>Alias</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>aCreationTime</a> - Time stamp indicating when this data object
--   was created. Format is a number expressed in Unix time as milliseconds
--   (for example "1469498468.057").</li>
--   <li><a>aLastUpdatedTime</a> - Time stamp indicating when this data
--   object was last modified. Format is a number expressed in Unix time as
--   milliseconds (for example "1469498468.057").</li>
--   <li><a>aAliasId</a> - Unique identifier for an alias; alias IDs are
--   unique within a region.</li>
--   <li><a>aRoutingStrategy</a> - Alias configuration for the alias,
--   including routing type and settings.</li>
--   <li><a>aName</a> - Descriptive label that is associated with an alias.
--   Alias names do not need to be unique.</li>
--   <li><a>aAliasARN</a> - Unique identifier for an alias; alias ARNs are
--   unique across all regions.</li>
--   <li><a>aDescription</a> - Human-readable description of an alias.</li>
--   </ul>
alias :: Alias

-- | Time stamp indicating when this data object was created. Format is a
--   number expressed in Unix time as milliseconds (for example
--   "1469498468.057").
aCreationTime :: Lens' Alias (Maybe UTCTime)

-- | Time stamp indicating when this data object was last modified. Format
--   is a number expressed in Unix time as milliseconds (for example
--   "1469498468.057").
aLastUpdatedTime :: Lens' Alias (Maybe UTCTime)

-- | Unique identifier for an alias; alias IDs are unique within a region.
aAliasId :: Lens' Alias (Maybe Text)

-- | Alias configuration for the alias, including routing type and
--   settings.
aRoutingStrategy :: Lens' Alias (Maybe RoutingStrategy)

-- | Descriptive label that is associated with an alias. Alias names do not
--   need to be unique.
aName :: Lens' Alias (Maybe Text)

-- | Unique identifier for an alias; alias ARNs are unique across all
--   regions.
aAliasARN :: Lens' Alias (Maybe Text)

-- | Human-readable description of an alias.
aDescription :: Lens' Alias (Maybe Text)

-- | Values for use in <a>Player</a> attribute key:value pairs. This object
--   lets you specify an attribute value using any of the valid data types:
--   string, number, string array or data map. Each <tt>AttributeValue</tt>
--   object can use only one of the available properties.
--   
--   <i>See:</i> <a>attributeValue</a> smart constructor.
data AttributeValue

-- | Creates a value of <a>AttributeValue</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>avSL</a> - For a list of up to 10 strings. Maximum length for
--   each string is 100 characters. Duplicate values are not recognized;
--   all occurrences of the repeated value after the first of a repeated
--   value are ignored.</li>
--   <li><a>avSDM</a> - For a map of up to 10 data type:value pairs.
--   Maximum length for each string value is 100 characters.</li>
--   <li><a>avN</a> - For number values, expressed as double.</li>
--   <li><a>avS</a> - For single string values. Maximum string length is
--   100 characters.</li>
--   </ul>
attributeValue :: AttributeValue

-- | For a list of up to 10 strings. Maximum length for each string is 100
--   characters. Duplicate values are not recognized; all occurrences of
--   the repeated value after the first of a repeated value are ignored.
avSL :: Lens' AttributeValue [Text]

-- | For a map of up to 10 data type:value pairs. Maximum length for each
--   string value is 100 characters.
avSDM :: Lens' AttributeValue (HashMap Text Double)

-- | For number values, expressed as double.
avN :: Lens' AttributeValue (Maybe Double)

-- | For single string values. Maximum string length is 100 characters.
avS :: Lens' AttributeValue (Maybe Text)

-- | Properties describing a game build.
--   
--   Build-related operations include:
--   
--   <ul>
--   <li><tt>CreateBuild</tt></li>
--   <li><tt>ListBuilds</tt></li>
--   <li><tt>DescribeBuild</tt></li>
--   <li><tt>UpdateBuild</tt></li>
--   <li><tt>DeleteBuild</tt></li>
--   </ul>
--   
--   <i>See:</i> <a>build</a> smart constructor.
data Build

-- | Creates a value of <a>Build</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>bCreationTime</a> - Time stamp indicating when this data object
--   was created. Format is a number expressed in Unix time as milliseconds
--   (for example "1469498468.057").</li>
--   <li><a>bStatus</a> - Current status of the build. Possible build
--   statuses include the following: * <b>INITIALIZED</b> -- A new build
--   has been defined, but no files have been uploaded. You cannot create
--   fleets for builds that are in this status. When a build is
--   successfully created, the build status is set to this value. *
--   <b>READY</b> -- The game build has been successfully uploaded. You can
--   now create new fleets for this build. * <b>FAILED</b> -- The game
--   build upload failed. You cannot create new fleets for this build.</li>
--   <li><a>bOperatingSystem</a> - Operating system that the game server
--   binaries are built to run on. This value determines the type of fleet
--   resources that you can use for this build.</li>
--   <li><a>bBuildId</a> - Unique identifier for a build.</li>
--   <li><a>bName</a> - Descriptive label that is associated with a build.
--   Build names do not need to be unique. It can be set using
--   <tt>CreateBuild</tt> or <tt>UpdateBuild</tt> .</li>
--   <li><a>bVersion</a> - Version that is associated with this build.
--   Version strings do not need to be unique. This value can be set using
--   <tt>CreateBuild</tt> or <tt>UpdateBuild</tt> .</li>
--   <li><a>bSizeOnDisk</a> - File size of the uploaded game build,
--   expressed in bytes. When the build status is <tt>INITIALIZED</tt> ,
--   this value is 0.</li>
--   </ul>
build :: Build

-- | Time stamp indicating when this data object was created. Format is a
--   number expressed in Unix time as milliseconds (for example
--   "1469498468.057").
bCreationTime :: Lens' Build (Maybe UTCTime)

-- | Current status of the build. Possible build statuses include the
--   following: * <b>INITIALIZED</b> -- A new build has been defined, but
--   no files have been uploaded. You cannot create fleets for builds that
--   are in this status. When a build is successfully created, the build
--   status is set to this value. * <b>READY</b> -- The game build has been
--   successfully uploaded. You can now create new fleets for this build. *
--   <b>FAILED</b> -- The game build upload failed. You cannot create new
--   fleets for this build.
bStatus :: Lens' Build (Maybe BuildStatus)

-- | Operating system that the game server binaries are built to run on.
--   This value determines the type of fleet resources that you can use for
--   this build.
bOperatingSystem :: Lens' Build (Maybe OperatingSystem)

-- | Unique identifier for a build.
bBuildId :: Lens' Build (Maybe Text)

-- | Descriptive label that is associated with a build. Build names do not
--   need to be unique. It can be set using <tt>CreateBuild</tt> or
--   <tt>UpdateBuild</tt> .
bName :: Lens' Build (Maybe Text)

-- | Version that is associated with this build. Version strings do not
--   need to be unique. This value can be set using <tt>CreateBuild</tt> or
--   <tt>UpdateBuild</tt> .
bVersion :: Lens' Build (Maybe Text)

-- | File size of the uploaded game build, expressed in bytes. When the
--   build status is <tt>INITIALIZED</tt> , this value is 0.
bSizeOnDisk :: Lens' Build (Maybe Natural)

-- | Player information for use when creating player sessions using a game
--   session placement request with <tt>StartGameSessionPlacement</tt> .
--   
--   <i>See:</i> <a>desiredPlayerSession</a> smart constructor.
data DesiredPlayerSession

-- | Creates a value of <a>DesiredPlayerSession</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dpsPlayerData</a> - Developer-defined information related to a
--   player. Amazon GameLift does not use this data, so it can be formatted
--   as needed for use in the game.</li>
--   <li><a>dpsPlayerId</a> - Unique identifier for a player to associate
--   with the player session.</li>
--   </ul>
desiredPlayerSession :: DesiredPlayerSession

-- | Developer-defined information related to a player. Amazon GameLift
--   does not use this data, so it can be formatted as needed for use in
--   the game.
dpsPlayerData :: Lens' DesiredPlayerSession (Maybe Text)

-- | Unique identifier for a player to associate with the player session.
dpsPlayerId :: Lens' DesiredPlayerSession (Maybe Text)

-- | Current status of fleet capacity. The number of active instances
--   should match or be in the process of matching the number of desired
--   instances. Pending and terminating counts are non-zero only if fleet
--   capacity is adjusting to an <tt>UpdateFleetCapacity</tt> request, or
--   if access to resources is temporarily affected.
--   
--   Fleet-related operations include:
--   
--   <ul>
--   <li><tt>CreateFleet</tt></li>
--   <li><tt>ListFleets</tt></li>
--   <li><tt>DeleteFleet</tt></li>
--   <li>Describe fleets:</li>
--   <li><tt>DescribeFleetAttributes</tt></li>
--   <li><tt>DescribeFleetCapacity</tt></li>
--   <li><tt>DescribeFleetPortSettings</tt></li>
--   <li><tt>DescribeFleetUtilization</tt></li>
--   <li><tt>DescribeRuntimeConfiguration</tt></li>
--   <li><tt>DescribeEC2InstanceLimits</tt></li>
--   <li><tt>DescribeFleetEvents</tt></li>
--   <li>Update fleets:</li>
--   <li><tt>UpdateFleetAttributes</tt></li>
--   <li><tt>UpdateFleetCapacity</tt></li>
--   <li><tt>UpdateFleetPortSettings</tt></li>
--   <li><tt>UpdateRuntimeConfiguration</tt></li>
--   <li>Manage fleet actions:</li>
--   <li><tt>StartFleetActions</tt></li>
--   <li><tt>StopFleetActions</tt></li>
--   </ul>
--   
--   <i>See:</i> <a>ec2InstanceCounts</a> smart constructor.
data EC2InstanceCounts

-- | Creates a value of <a>EC2InstanceCounts</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>eicIdLE</a> - Number of active instances in the fleet that are
--   not currently hosting a game session.</li>
--   <li><a>eicTERMINATING</a> - Number of instances in the fleet that are
--   no longer active but haven't yet been terminated.</li>
--   <li><a>eicPENDING</a> - Number of instances in the fleet that are
--   starting but not yet active.</li>
--   <li><a>eicMAXIMUM</a> - Maximum value allowed for the fleet's instance
--   count.</li>
--   <li><a>eicDESIRED</a> - Ideal number of active instances in the
--   fleet.</li>
--   <li><a>eicMINIMUM</a> - Minimum value allowed for the fleet's instance
--   count.</li>
--   <li><a>eicACTIVE</a> - Actual number of active instances in the
--   fleet.</li>
--   </ul>
ec2InstanceCounts :: EC2InstanceCounts

-- | Number of active instances in the fleet that are not currently hosting
--   a game session.
eicIdLE :: Lens' EC2InstanceCounts (Maybe Natural)

-- | Number of instances in the fleet that are no longer active but haven't
--   yet been terminated.
eicTERMINATING :: Lens' EC2InstanceCounts (Maybe Natural)

-- | Number of instances in the fleet that are starting but not yet active.
eicPENDING :: Lens' EC2InstanceCounts (Maybe Natural)

-- | Maximum value allowed for the fleet's instance count.
eicMAXIMUM :: Lens' EC2InstanceCounts (Maybe Natural)

-- | Ideal number of active instances in the fleet.
eicDESIRED :: Lens' EC2InstanceCounts (Maybe Natural)

-- | Minimum value allowed for the fleet's instance count.
eicMINIMUM :: Lens' EC2InstanceCounts (Maybe Natural)

-- | Actual number of active instances in the fleet.
eicACTIVE :: Lens' EC2InstanceCounts (Maybe Natural)

-- | Maximum number of instances allowed based on the Amazon Elastic
--   Compute Cloud (Amazon EC2) instance type. Instance limits can be
--   retrieved by calling <tt>DescribeEC2InstanceLimits</tt> .
--   
--   <i>See:</i> <a>ec2InstanceLimit</a> smart constructor.
data EC2InstanceLimit

-- | Creates a value of <a>EC2InstanceLimit</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>eilEC2InstanceType</a> - Name of an EC2 instance type that is
--   supported in Amazon GameLift. A fleet instance type determines the
--   computing resources of each instance in the fleet, including CPU,
--   memory, storage, and networking capacity. Amazon GameLift supports the
--   following EC2 instance types. See <a>Amazon EC2 Instance Types</a> for
--   detailed descriptions.</li>
--   <li><a>eilCurrentInstances</a> - Number of instances of the specified
--   type that are currently in use by this AWS account.</li>
--   <li><a>eilInstanceLimit</a> - Number of instances allowed.</li>
--   </ul>
ec2InstanceLimit :: EC2InstanceLimit

-- | Name of an EC2 instance type that is supported in Amazon GameLift. A
--   fleet instance type determines the computing resources of each
--   instance in the fleet, including CPU, memory, storage, and networking
--   capacity. Amazon GameLift supports the following EC2 instance types.
--   See <a>Amazon EC2 Instance Types</a> for detailed descriptions.
eilEC2InstanceType :: Lens' EC2InstanceLimit (Maybe EC2InstanceType)

-- | Number of instances of the specified type that are currently in use by
--   this AWS account.
eilCurrentInstances :: Lens' EC2InstanceLimit (Maybe Natural)

-- | Number of instances allowed.
eilInstanceLimit :: Lens' EC2InstanceLimit (Maybe Natural)

-- | Log entry describing an event that involves Amazon GameLift resources
--   (such as a fleet). In addition to tracking activity, event codes and
--   messages can provide additional information for troubleshooting and
--   debugging problems.
--   
--   <i>See:</i> <a>event</a> smart constructor.
data Event

-- | Creates a value of <a>Event</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>eResourceId</a> - Unique identifier for an event resource, such
--   as a fleet ID.</li>
--   <li><a>ePreSignedLogURL</a> - Location of stored logs with additional
--   detail that is related to the event. This is useful for debugging
--   issues. The URL is valid for 15 minutes. You can also access fleet
--   creation logs through the Amazon GameLift console.</li>
--   <li><a>eEventTime</a> - Time stamp indicating when this event
--   occurred. Format is a number expressed in Unix time as milliseconds
--   (for example "1469498468.057").</li>
--   <li><a>eMessage</a> - Additional information related to the
--   event.</li>
--   <li><a>eEventCode</a> - Type of event being logged. The following
--   events are currently in use: <b>Fleet creation events:</b> *
--   FLEET_CREATED -- A fleet record was successfully created with a status
--   of <tt>NEW</tt> . Event messaging includes the fleet ID. *
--   FLEET_STATE_DOWNLOADING -- Fleet status changed from <tt>NEW</tt> to
--   <tt>DOWNLOADING</tt> . The compressed build has started downloading to
--   a fleet instance for installation. * FLEET_BINARY_DOWNLOAD_FAILED --
--   The build failed to download to the fleet instance. *
--   FLEET_CREATION_EXTRACTING_BUILD – The game server build was
--   successfully downloaded to an instance, and the build files are now
--   being extracted from the uploaded build and saved to an instance.
--   Failure at this stage prevents a fleet from moving to <tt>ACTIVE</tt>
--   status. Logs for this stage display a list of the files that are
--   extracted and saved on the instance. Access the logs by using the URL
--   in <i>PreSignedLogUrl</i> . * FLEET_CREATION_RUNNING_INSTALLER – The
--   game server build files were successfully extracted, and the Amazon
--   GameLift is now running the build's install script (if one is
--   included). Failure in this stage prevents a fleet from moving to
--   <tt>ACTIVE</tt> status. Logs for this stage list the installation
--   steps and whether or not the install completed successfully. Access
--   the logs by using the URL in <i>PreSignedLogUrl</i> . *
--   FLEET_CREATION_VALIDATING_RUNTIME_CONFIG -- The build process was
--   successful, and the Amazon GameLift is now verifying that the game
--   server launch paths, which are specified in the fleet's run-time
--   configuration, exist. If any listed launch path exists, Amazon
--   GameLift tries to launch a game server process and waits for the
--   process to report ready. Failures in this stage prevent a fleet from
--   moving to <tt>ACTIVE</tt> status. Logs for this stage list the launch
--   paths in the run-time configuration and indicate whether each is
--   found. Access the logs by using the URL in <i>PreSignedLogUrl</i> . *
--   FLEET_STATE_VALIDATING -- Fleet status changed from
--   <tt>DOWNLOADING</tt> to <tt>VALIDATING</tt> . *
--   FLEET_VALIDATION_LAUNCH_PATH_NOT_FOUND -- Validation of the run-time
--   configuration failed because the executable specified in a launch path
--   does not exist on the instance. * FLEET_STATE_BUILDING -- Fleet status
--   changed from <tt>VALIDATING</tt> to <tt>BUILDING</tt> . *
--   FLEET_VALIDATION_EXECUTABLE_RUNTIME_FAILURE -- Validation of the
--   run-time configuration failed because the executable specified in a
--   launch path failed to run on the fleet instance. *
--   FLEET_STATE_ACTIVATING -- Fleet status changed from <tt>BUILDING</tt>
--   to <tt>ACTIVATING</tt> . * FLEET_ACTIVATION_FAILED - The fleet failed
--   to successfully complete one of the steps in the fleet activation
--   process. This event code indicates that the game build was
--   successfully downloaded to a fleet instance, built, and validated, but
--   was not able to start a server process. A possible reason for failure
--   is that the game server is not reporting "process ready" to the Amazon
--   GameLift service. * FLEET_STATE_ACTIVE -- The fleet's status changed
--   from <tt>ACTIVATING</tt> to <tt>ACTIVE</tt> . The fleet is now ready
--   to host game sessions. <b>VPC peering events:</b> *
--   FLEET_VPC_PEERING_SUCCEEDED -- A VPC peering connection has been
--   established between the VPC for an Amazon GameLift fleet and a VPC in
--   your AWS account. * FLEET_VPC_PEERING_FAILED -- A requested VPC
--   peering connection has failed. Event details and status information
--   (see <tt>DescribeVpcPeeringConnections</tt> ) provide additional
--   detail. A common reason for peering failure is that the two VPCs have
--   overlapping CIDR blocks of IPv4 addresses. To resolve this, change the
--   CIDR block for the VPC in your AWS account. For more information on
--   VPC peering failures, see
--   <a>http://docs.aws.amazon.com/AmazonVPC/latest/PeeringGuide/invalid-peering-configurations.html</a>
--   * FLEET_VPC_PEERING_DELETED -- A VPC peering connection has been
--   successfully deleted. <b>Spot instance events:</b> *
--   INSTANCE_INTERRUPTED -- A spot instance was interrupted by EC2 with a
--   two-minute notification. <b>Other fleet events:</b> *
--   FLEET_SCALING_EVENT -- A change was made to the fleet's capacity
--   settings (desired instances, minimum/maximum scaling limits). Event
--   messaging includes the new capacity settings. *
--   FLEET_NEW_GAME_SESSION_PROTECTION_POLICY_UPDATED -- A change was made
--   to the fleet's game session protection policy setting. Event messaging
--   includes both the old and new policy setting. * FLEET_DELETED -- A
--   request to delete a fleet was initiated. * GENERIC_EVENT -- An
--   unspecified event has occurred.</li>
--   <li><a>eEventId</a> - Unique identifier for a fleet event.</li>
--   </ul>
event :: Event

-- | Unique identifier for an event resource, such as a fleet ID.
eResourceId :: Lens' Event (Maybe Text)

-- | Location of stored logs with additional detail that is related to the
--   event. This is useful for debugging issues. The URL is valid for 15
--   minutes. You can also access fleet creation logs through the Amazon
--   GameLift console.
ePreSignedLogURL :: Lens' Event (Maybe Text)

-- | Time stamp indicating when this event occurred. Format is a number
--   expressed in Unix time as milliseconds (for example "1469498468.057").
eEventTime :: Lens' Event (Maybe UTCTime)

-- | Additional information related to the event.
eMessage :: Lens' Event (Maybe Text)

-- | Type of event being logged. The following events are currently in use:
--   <b>Fleet creation events:</b> * FLEET_CREATED -- A fleet record was
--   successfully created with a status of <tt>NEW</tt> . Event messaging
--   includes the fleet ID. * FLEET_STATE_DOWNLOADING -- Fleet status
--   changed from <tt>NEW</tt> to <tt>DOWNLOADING</tt> . The compressed
--   build has started downloading to a fleet instance for installation. *
--   FLEET_BINARY_DOWNLOAD_FAILED -- The build failed to download to the
--   fleet instance. * FLEET_CREATION_EXTRACTING_BUILD – The game server
--   build was successfully downloaded to an instance, and the build files
--   are now being extracted from the uploaded build and saved to an
--   instance. Failure at this stage prevents a fleet from moving to
--   <tt>ACTIVE</tt> status. Logs for this stage display a list of the
--   files that are extracted and saved on the instance. Access the logs by
--   using the URL in <i>PreSignedLogUrl</i> . *
--   FLEET_CREATION_RUNNING_INSTALLER – The game server build files were
--   successfully extracted, and the Amazon GameLift is now running the
--   build's install script (if one is included). Failure in this stage
--   prevents a fleet from moving to <tt>ACTIVE</tt> status. Logs for this
--   stage list the installation steps and whether or not the install
--   completed successfully. Access the logs by using the URL in
--   <i>PreSignedLogUrl</i> . * FLEET_CREATION_VALIDATING_RUNTIME_CONFIG --
--   The build process was successful, and the Amazon GameLift is now
--   verifying that the game server launch paths, which are specified in
--   the fleet's run-time configuration, exist. If any listed launch path
--   exists, Amazon GameLift tries to launch a game server process and
--   waits for the process to report ready. Failures in this stage prevent
--   a fleet from moving to <tt>ACTIVE</tt> status. Logs for this stage
--   list the launch paths in the run-time configuration and indicate
--   whether each is found. Access the logs by using the URL in
--   <i>PreSignedLogUrl</i> . * FLEET_STATE_VALIDATING -- Fleet status
--   changed from <tt>DOWNLOADING</tt> to <tt>VALIDATING</tt> . *
--   FLEET_VALIDATION_LAUNCH_PATH_NOT_FOUND -- Validation of the run-time
--   configuration failed because the executable specified in a launch path
--   does not exist on the instance. * FLEET_STATE_BUILDING -- Fleet status
--   changed from <tt>VALIDATING</tt> to <tt>BUILDING</tt> . *
--   FLEET_VALIDATION_EXECUTABLE_RUNTIME_FAILURE -- Validation of the
--   run-time configuration failed because the executable specified in a
--   launch path failed to run on the fleet instance. *
--   FLEET_STATE_ACTIVATING -- Fleet status changed from <tt>BUILDING</tt>
--   to <tt>ACTIVATING</tt> . * FLEET_ACTIVATION_FAILED - The fleet failed
--   to successfully complete one of the steps in the fleet activation
--   process. This event code indicates that the game build was
--   successfully downloaded to a fleet instance, built, and validated, but
--   was not able to start a server process. A possible reason for failure
--   is that the game server is not reporting "process ready" to the Amazon
--   GameLift service. * FLEET_STATE_ACTIVE -- The fleet's status changed
--   from <tt>ACTIVATING</tt> to <tt>ACTIVE</tt> . The fleet is now ready
--   to host game sessions. <b>VPC peering events:</b> *
--   FLEET_VPC_PEERING_SUCCEEDED -- A VPC peering connection has been
--   established between the VPC for an Amazon GameLift fleet and a VPC in
--   your AWS account. * FLEET_VPC_PEERING_FAILED -- A requested VPC
--   peering connection has failed. Event details and status information
--   (see <tt>DescribeVpcPeeringConnections</tt> ) provide additional
--   detail. A common reason for peering failure is that the two VPCs have
--   overlapping CIDR blocks of IPv4 addresses. To resolve this, change the
--   CIDR block for the VPC in your AWS account. For more information on
--   VPC peering failures, see
--   <a>http://docs.aws.amazon.com/AmazonVPC/latest/PeeringGuide/invalid-peering-configurations.html</a>
--   * FLEET_VPC_PEERING_DELETED -- A VPC peering connection has been
--   successfully deleted. <b>Spot instance events:</b> *
--   INSTANCE_INTERRUPTED -- A spot instance was interrupted by EC2 with a
--   two-minute notification. <b>Other fleet events:</b> *
--   FLEET_SCALING_EVENT -- A change was made to the fleet's capacity
--   settings (desired instances, minimum/maximum scaling limits). Event
--   messaging includes the new capacity settings. *
--   FLEET_NEW_GAME_SESSION_PROTECTION_POLICY_UPDATED -- A change was made
--   to the fleet's game session protection policy setting. Event messaging
--   includes both the old and new policy setting. * FLEET_DELETED -- A
--   request to delete a fleet was initiated. * GENERIC_EVENT -- An
--   unspecified event has occurred.
eEventCode :: Lens' Event (Maybe EventCode)

-- | Unique identifier for a fleet event.
eEventId :: Lens' Event (Maybe Text)

-- | General properties describing a fleet.
--   
--   Fleet-related operations include:
--   
--   <ul>
--   <li><tt>CreateFleet</tt></li>
--   <li><tt>ListFleets</tt></li>
--   <li><tt>DeleteFleet</tt></li>
--   <li>Describe fleets:</li>
--   <li><tt>DescribeFleetAttributes</tt></li>
--   <li><tt>DescribeFleetCapacity</tt></li>
--   <li><tt>DescribeFleetPortSettings</tt></li>
--   <li><tt>DescribeFleetUtilization</tt></li>
--   <li><tt>DescribeRuntimeConfiguration</tt></li>
--   <li><tt>DescribeEC2InstanceLimits</tt></li>
--   <li><tt>DescribeFleetEvents</tt></li>
--   <li>Update fleets:</li>
--   <li><tt>UpdateFleetAttributes</tt></li>
--   <li><tt>UpdateFleetCapacity</tt></li>
--   <li><tt>UpdateFleetPortSettings</tt></li>
--   <li><tt>UpdateRuntimeConfiguration</tt></li>
--   <li>Manage fleet actions:</li>
--   <li><tt>StartFleetActions</tt></li>
--   <li><tt>StopFleetActions</tt></li>
--   </ul>
--   
--   <i>See:</i> <a>fleetAttributes</a> smart constructor.
data FleetAttributes

-- | Creates a value of <a>FleetAttributes</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>faCreationTime</a> - Time stamp indicating when this data
--   object was created. Format is a number expressed in Unix time as
--   milliseconds (for example "1469498468.057").</li>
--   <li><a>faStatus</a> - Current status of the fleet. Possible fleet
--   statuses include the following: * <b>NEW</b> -- A new fleet has been
--   defined and desired instances is set to 1. *
--   <b>DOWNLOADING<i>VALIDATING</i>BUILDING/ACTIVATING</b> -- Amazon
--   GameLift is setting up the new fleet, creating new instances with the
--   game build and starting server processes. * <b>ACTIVE</b> -- Hosts can
--   now accept game sessions. * <b>ERROR</b> -- An error occurred when
--   downloading, validating, building, or activating the fleet. *
--   <b>DELETING</b> -- Hosts are responding to a delete fleet request. *
--   <b>TERMINATED</b> -- The fleet no longer exists.</li>
--   <li><a>faServerLaunchParameters</a> - Game server launch parameters
--   specified for fleets created before 2016-08-04 (or AWS SDK v.
--   0.12.16). Server launch parameters for fleets created after this date
--   are specified in the fleet's <a>RuntimeConfiguration</a> .</li>
--   <li><a>faLogPaths</a> - Location of default log files. When a server
--   process is shut down, Amazon GameLift captures and stores any log
--   files in this location. These logs are in addition to game session
--   logs; see more on game session logs in the <a>Amazon GameLift
--   Developer Guide</a> . If no default log path for a fleet is specified,
--   Amazon GameLift automatically uploads logs that are stored on each
--   instance at <tt>C:gamelogs</tt> (for Windows) or
--   <tt><i>local</i>game/logs</tt> (for Linux). Use the Amazon GameLift
--   console to access stored logs.</li>
--   <li><a>faOperatingSystem</a> - Operating system of the fleet's
--   computing resources. A fleet's operating system depends on the OS
--   specified for the build that is deployed on this fleet.</li>
--   <li><a>faBuildId</a> - Unique identifier for a build.</li>
--   <li><a>faFleetARN</a> - Identifier for a fleet that is unique across
--   all regions.</li>
--   <li><a>faFleetType</a> - Indicates whether the fleet uses on-demand or
--   spot instances. A spot instance in use may be interrupted with a
--   two-minute notification.</li>
--   <li><a>faTerminationTime</a> - Time stamp indicating when this data
--   object was terminated. Format is a number expressed in Unix time as
--   milliseconds (for example "1469498468.057").</li>
--   <li><a>faInstanceType</a> - EC2 instance type indicating the computing
--   resources of each instance in the fleet, including CPU, memory,
--   storage, and networking capacity. See <a>Amazon EC2 Instance Types</a>
--   for detailed descriptions.</li>
--   <li><a>faStoppedActions</a> - List of fleet actions that have been
--   suspended using <tt>StopFleetActions</tt> . This includes
--   auto-scaling.</li>
--   <li><a>faNewGameSessionProtectionPolicy</a> - Type of game session
--   protection to set for all new instances started in the fleet. *
--   <b>NoProtection</b> -- The game session can be terminated during a
--   scale-down event. * <b>FullProtection</b> -- If the game session is in
--   an <tt>ACTIVE</tt> status, it cannot be terminated during a scale-down
--   event.</li>
--   <li><a>faName</a> - Descriptive label that is associated with a fleet.
--   Fleet names do not need to be unique.</li>
--   <li><a>faServerLaunchPath</a> - Path to a game server executable in
--   the fleet's build, specified for fleets created before 2016-08-04 (or
--   AWS SDK v. 0.12.16). Server launch paths for fleets created after this
--   date are specified in the fleet's <a>RuntimeConfiguration</a> .</li>
--   <li><a>faMetricGroups</a> - Names of metric groups that this fleet is
--   included in. In Amazon CloudWatch, you can view metrics for an
--   individual fleet or aggregated metrics for fleets that are in a fleet
--   metric group. A fleet can be included in only one metric group at a
--   time.</li>
--   <li><a>faFleetId</a> - Unique identifier for a fleet.</li>
--   <li><a>faDescription</a> - Human-readable description of the
--   fleet.</li>
--   <li><a>faResourceCreationLimitPolicy</a> - Fleet policy to limit the
--   number of game sessions an individual player can create over a span of
--   time.</li>
--   </ul>
fleetAttributes :: FleetAttributes

-- | Time stamp indicating when this data object was created. Format is a
--   number expressed in Unix time as milliseconds (for example
--   "1469498468.057").
faCreationTime :: Lens' FleetAttributes (Maybe UTCTime)

-- | Current status of the fleet. Possible fleet statuses include the
--   following: * <b>NEW</b> -- A new fleet has been defined and desired
--   instances is set to 1. *
--   <b>DOWNLOADING<i>VALIDATING</i>BUILDING/ACTIVATING</b> -- Amazon
--   GameLift is setting up the new fleet, creating new instances with the
--   game build and starting server processes. * <b>ACTIVE</b> -- Hosts can
--   now accept game sessions. * <b>ERROR</b> -- An error occurred when
--   downloading, validating, building, or activating the fleet. *
--   <b>DELETING</b> -- Hosts are responding to a delete fleet request. *
--   <b>TERMINATED</b> -- The fleet no longer exists.
faStatus :: Lens' FleetAttributes (Maybe FleetStatus)

-- | Game server launch parameters specified for fleets created before
--   2016-08-04 (or AWS SDK v. 0.12.16). Server launch parameters for
--   fleets created after this date are specified in the fleet's
--   <a>RuntimeConfiguration</a> .
faServerLaunchParameters :: Lens' FleetAttributes (Maybe Text)

-- | Location of default log files. When a server process is shut down,
--   Amazon GameLift captures and stores any log files in this location.
--   These logs are in addition to game session logs; see more on game
--   session logs in the <a>Amazon GameLift Developer Guide</a> . If no
--   default log path for a fleet is specified, Amazon GameLift
--   automatically uploads logs that are stored on each instance at
--   <tt>C:gamelogs</tt> (for Windows) or <tt><i>local</i>game/logs</tt>
--   (for Linux). Use the Amazon GameLift console to access stored logs.
faLogPaths :: Lens' FleetAttributes [Text]

-- | Operating system of the fleet's computing resources. A fleet's
--   operating system depends on the OS specified for the build that is
--   deployed on this fleet.
faOperatingSystem :: Lens' FleetAttributes (Maybe OperatingSystem)

-- | Unique identifier for a build.
faBuildId :: Lens' FleetAttributes (Maybe Text)

-- | Identifier for a fleet that is unique across all regions.
faFleetARN :: Lens' FleetAttributes (Maybe Text)

-- | Indicates whether the fleet uses on-demand or spot instances. A spot
--   instance in use may be interrupted with a two-minute notification.
faFleetType :: Lens' FleetAttributes (Maybe FleetType)

-- | Time stamp indicating when this data object was terminated. Format is
--   a number expressed in Unix time as milliseconds (for example
--   "1469498468.057").
faTerminationTime :: Lens' FleetAttributes (Maybe UTCTime)

-- | EC2 instance type indicating the computing resources of each instance
--   in the fleet, including CPU, memory, storage, and networking capacity.
--   See <a>Amazon EC2 Instance Types</a> for detailed descriptions.
faInstanceType :: Lens' FleetAttributes (Maybe EC2InstanceType)

-- | List of fleet actions that have been suspended using
--   <tt>StopFleetActions</tt> . This includes auto-scaling.
faStoppedActions :: Lens' FleetAttributes (Maybe (NonEmpty FleetAction))

-- | Type of game session protection to set for all new instances started
--   in the fleet. * <b>NoProtection</b> -- The game session can be
--   terminated during a scale-down event. * <b>FullProtection</b> -- If
--   the game session is in an <tt>ACTIVE</tt> status, it cannot be
--   terminated during a scale-down event.
faNewGameSessionProtectionPolicy :: Lens' FleetAttributes (Maybe ProtectionPolicy)

-- | Descriptive label that is associated with a fleet. Fleet names do not
--   need to be unique.
faName :: Lens' FleetAttributes (Maybe Text)

-- | Path to a game server executable in the fleet's build, specified for
--   fleets created before 2016-08-04 (or AWS SDK v. 0.12.16). Server
--   launch paths for fleets created after this date are specified in the
--   fleet's <a>RuntimeConfiguration</a> .
faServerLaunchPath :: Lens' FleetAttributes (Maybe Text)

-- | Names of metric groups that this fleet is included in. In Amazon
--   CloudWatch, you can view metrics for an individual fleet or aggregated
--   metrics for fleets that are in a fleet metric group. A fleet can be
--   included in only one metric group at a time.
faMetricGroups :: Lens' FleetAttributes [Text]

-- | Unique identifier for a fleet.
faFleetId :: Lens' FleetAttributes (Maybe Text)

-- | Human-readable description of the fleet.
faDescription :: Lens' FleetAttributes (Maybe Text)

-- | Fleet policy to limit the number of game sessions an individual player
--   can create over a span of time.
faResourceCreationLimitPolicy :: Lens' FleetAttributes (Maybe ResourceCreationLimitPolicy)

-- | Information about the fleet's capacity. Fleet capacity is measured in
--   EC2 instances. By default, new fleets have a capacity of one instance,
--   but can be updated as needed. The maximum number of instances for a
--   fleet is determined by the fleet's instance type.
--   
--   Fleet-related operations include:
--   
--   <ul>
--   <li><tt>CreateFleet</tt></li>
--   <li><tt>ListFleets</tt></li>
--   <li><tt>DeleteFleet</tt></li>
--   <li>Describe fleets:</li>
--   <li><tt>DescribeFleetAttributes</tt></li>
--   <li><tt>DescribeFleetCapacity</tt></li>
--   <li><tt>DescribeFleetPortSettings</tt></li>
--   <li><tt>DescribeFleetUtilization</tt></li>
--   <li><tt>DescribeRuntimeConfiguration</tt></li>
--   <li><tt>DescribeEC2InstanceLimits</tt></li>
--   <li><tt>DescribeFleetEvents</tt></li>
--   <li>Update fleets:</li>
--   <li><tt>UpdateFleetAttributes</tt></li>
--   <li><tt>UpdateFleetCapacity</tt></li>
--   <li><tt>UpdateFleetPortSettings</tt></li>
--   <li><tt>UpdateRuntimeConfiguration</tt></li>
--   <li>Manage fleet actions:</li>
--   <li><tt>StartFleetActions</tt></li>
--   <li><tt>StopFleetActions</tt></li>
--   </ul>
--   
--   <i>See:</i> <a>fleetCapacity</a> smart constructor.
data FleetCapacity

-- | Creates a value of <a>FleetCapacity</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>fcInstanceType</a> - Name of an EC2 instance type that is
--   supported in Amazon GameLift. A fleet instance type determines the
--   computing resources of each instance in the fleet, including CPU,
--   memory, storage, and networking capacity. Amazon GameLift supports the
--   following EC2 instance types. See <a>Amazon EC2 Instance Types</a> for
--   detailed descriptions.</li>
--   <li><a>fcFleetId</a> - Unique identifier for a fleet.</li>
--   <li><a>fcInstanceCounts</a> - Current status of fleet capacity.</li>
--   </ul>
fleetCapacity :: FleetCapacity

-- | Name of an EC2 instance type that is supported in Amazon GameLift. A
--   fleet instance type determines the computing resources of each
--   instance in the fleet, including CPU, memory, storage, and networking
--   capacity. Amazon GameLift supports the following EC2 instance types.
--   See <a>Amazon EC2 Instance Types</a> for detailed descriptions.
fcInstanceType :: Lens' FleetCapacity (Maybe EC2InstanceType)

-- | Unique identifier for a fleet.
fcFleetId :: Lens' FleetCapacity (Maybe Text)

-- | Current status of fleet capacity.
fcInstanceCounts :: Lens' FleetCapacity (Maybe EC2InstanceCounts)

-- | Current status of fleet utilization, including the number of game and
--   player sessions being hosted.
--   
--   Fleet-related operations include:
--   
--   <ul>
--   <li><tt>CreateFleet</tt></li>
--   <li><tt>ListFleets</tt></li>
--   <li><tt>DeleteFleet</tt></li>
--   <li>Describe fleets:</li>
--   <li><tt>DescribeFleetAttributes</tt></li>
--   <li><tt>DescribeFleetCapacity</tt></li>
--   <li><tt>DescribeFleetPortSettings</tt></li>
--   <li><tt>DescribeFleetUtilization</tt></li>
--   <li><tt>DescribeRuntimeConfiguration</tt></li>
--   <li><tt>DescribeEC2InstanceLimits</tt></li>
--   <li><tt>DescribeFleetEvents</tt></li>
--   <li>Update fleets:</li>
--   <li><tt>UpdateFleetAttributes</tt></li>
--   <li><tt>UpdateFleetCapacity</tt></li>
--   <li><tt>UpdateFleetPortSettings</tt></li>
--   <li><tt>UpdateRuntimeConfiguration</tt></li>
--   <li>Manage fleet actions:</li>
--   <li><tt>StartFleetActions</tt></li>
--   <li><tt>StopFleetActions</tt></li>
--   </ul>
--   
--   <i>See:</i> <a>fleetUtilization</a> smart constructor.
data FleetUtilization

-- | Creates a value of <a>FleetUtilization</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>fuActiveGameSessionCount</a> - Number of active game sessions
--   currently being hosted on all instances in the fleet.</li>
--   <li><a>fuMaximumPlayerSessionCount</a> - Maximum players allowed
--   across all game sessions currently being hosted on all instances in
--   the fleet.</li>
--   <li><a>fuCurrentPlayerSessionCount</a> - Number of active player
--   sessions currently being hosted on all instances in the fleet.</li>
--   <li><a>fuFleetId</a> - Unique identifier for a fleet.</li>
--   <li><a>fuActiveServerProcessCount</a> - Number of server processes in
--   an <tt>ACTIVE</tt> status currently running across all instances in
--   the fleet</li>
--   </ul>
fleetUtilization :: FleetUtilization

-- | Number of active game sessions currently being hosted on all instances
--   in the fleet.
fuActiveGameSessionCount :: Lens' FleetUtilization (Maybe Natural)

-- | Maximum players allowed across all game sessions currently being
--   hosted on all instances in the fleet.
fuMaximumPlayerSessionCount :: Lens' FleetUtilization (Maybe Natural)

-- | Number of active player sessions currently being hosted on all
--   instances in the fleet.
fuCurrentPlayerSessionCount :: Lens' FleetUtilization (Maybe Natural)

-- | Unique identifier for a fleet.
fuFleetId :: Lens' FleetUtilization (Maybe Text)

-- | Number of server processes in an <tt>ACTIVE</tt> status currently
--   running across all instances in the fleet
fuActiveServerProcessCount :: Lens' FleetUtilization (Maybe Natural)

-- | Set of key-value pairs that contain information about a game session.
--   When included in a game session request, these properties communicate
--   details to be used when setting up the new game session, such as to
--   specify a game mode, level, or map. Game properties are passed to the
--   game server process when initiating a new game session; the server
--   process uses the properties as appropriate. For more information, see
--   the <a>Amazon GameLift Developer Guide</a> .
--   
--   <i>See:</i> <a>gameProperty</a> smart constructor.
data GameProperty

-- | Creates a value of <a>GameProperty</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gpKey</a> - Game property identifier.</li>
--   <li><a>gpValue</a> - Game property value.</li>
--   </ul>
gameProperty :: Text -> Text -> GameProperty

-- | Game property identifier.
gpKey :: Lens' GameProperty Text

-- | Game property value.
gpValue :: Lens' GameProperty Text

-- | Properties describing a game session.
--   
--   A game session in ACTIVE status can host players. When a game session
--   ends, its status is set to <tt>TERMINATED</tt> .
--   
--   Once the session ends, the game session object is retained for 30
--   days. This means you can reuse idempotency token values after this
--   time. Game session logs are retained for 14 days.
--   
--   Game-session-related operations include:
--   
--   <ul>
--   <li><tt>CreateGameSession</tt></li>
--   <li><tt>DescribeGameSessions</tt></li>
--   <li><tt>DescribeGameSessionDetails</tt></li>
--   <li><tt>SearchGameSessions</tt></li>
--   <li><tt>UpdateGameSession</tt></li>
--   <li><tt>GetGameSessionLogUrl</tt></li>
--   <li>Game session placements</li>
--   <li><tt>StartGameSessionPlacement</tt></li>
--   <li><tt>DescribeGameSessionPlacement</tt></li>
--   <li><tt>StopGameSessionPlacement</tt></li>
--   </ul>
--   
--   <i>See:</i> <a>gameSession</a> smart constructor.
data GameSession

-- | Creates a value of <a>GameSession</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gsCreationTime</a> - Time stamp indicating when this data
--   object was created. Format is a number expressed in Unix time as
--   milliseconds (for example "1469498468.057").</li>
--   <li><a>gsStatus</a> - Current status of the game session. A game
--   session must have an <tt>ACTIVE</tt> status to have player
--   sessions.</li>
--   <li><a>gsGameProperties</a> - Set of custom properties for a game
--   session, formatted as key:value pairs. These properties are passed to
--   a game server process in the <a>GameSession</a> object with a request
--   to start a new game session (see <a>Start a Game Session</a> ). You
--   can search for active game sessions based on this custom data with
--   <tt>SearchGameSessions</tt> .</li>
--   <li><a>gsIPAddress</a> - IP address of the game session. To connect to
--   a Amazon GameLift game server, an app needs both the IP address and
--   port number.</li>
--   <li><a>gsGameSessionId</a> - Unique identifier for the game session. A
--   game session ARN has the following format:
--   <tt>arn:aws:gamelift:<a>region</a>::gamesession<i><a>ID</a></i><a>ID
--   string or idempotency token</a></tt> .</li>
--   <li><a>gsMatchmakerData</a> - Information about the matchmaking
--   process that was used to create the game session. It is in JSON
--   syntax, formatted as a string. In addition the matchmaking
--   configuration used, it contains data on all players assigned to the
--   match, including player attributes and team assignments. For more
--   details on matchmaker data, see <a>Match Data</a> . Matchmaker data is
--   useful when requesting match backfills, and is updated whenever new
--   players are added during a successful backfill (see
--   <tt>StartMatchBackfill</tt> ).</li>
--   <li><a>gsMaximumPlayerSessionCount</a> - Maximum number of players
--   that can be connected simultaneously to the game session.</li>
--   <li><a>gsTerminationTime</a> - Time stamp indicating when this data
--   object was terminated. Format is a number expressed in Unix time as
--   milliseconds (for example "1469498468.057").</li>
--   <li><a>gsPlayerSessionCreationPolicy</a> - Indicates whether or not
--   the game session is accepting new players.</li>
--   <li><a>gsName</a> - Descriptive label that is associated with a game
--   session. Session names do not need to be unique.</li>
--   <li><a>gsCurrentPlayerSessionCount</a> - Number of players currently
--   in the game session.</li>
--   <li><a>gsStatusReason</a> - Provides additional information about game
--   session status. <tt>INTERRUPTED</tt> indicates that the game session
--   was hosted on a spot instance that was reclaimed, causing the active
--   game session to be terminated.</li>
--   <li><a>gsGameSessionData</a> - Set of custom game session properties,
--   formatted as a single string value. This data is passed to a game
--   server process in the <a>GameSession</a> object with a request to
--   start a new game session (see <a>Start a Game Session</a> ).</li>
--   <li><a>gsFleetId</a> - Unique identifier for a fleet that the game
--   session is running on.</li>
--   <li><a>gsCreatorId</a> - Unique identifier for a player. This ID is
--   used to enforce a resource protection policy (if one exists), that
--   limits the number of game sessions a player can create.</li>
--   <li><a>gsPort</a> - Port number for the game session. To connect to a
--   Amazon GameLift game server, an app needs both the IP address and port
--   number.</li>
--   </ul>
gameSession :: GameSession

-- | Time stamp indicating when this data object was created. Format is a
--   number expressed in Unix time as milliseconds (for example
--   "1469498468.057").
gsCreationTime :: Lens' GameSession (Maybe UTCTime)

-- | Current status of the game session. A game session must have an
--   <tt>ACTIVE</tt> status to have player sessions.
gsStatus :: Lens' GameSession (Maybe GameSessionStatus)

-- | Set of custom properties for a game session, formatted as key:value
--   pairs. These properties are passed to a game server process in the
--   <a>GameSession</a> object with a request to start a new game session
--   (see <a>Start a Game Session</a> ). You can search for active game
--   sessions based on this custom data with <tt>SearchGameSessions</tt> .
gsGameProperties :: Lens' GameSession [GameProperty]

-- | IP address of the game session. To connect to a Amazon GameLift game
--   server, an app needs both the IP address and port number.
gsIPAddress :: Lens' GameSession (Maybe Text)

-- | Unique identifier for the game session. A game session ARN has the
--   following format:
--   <tt>arn:aws:gamelift:<a>region</a>::gamesession<i><a>ID</a></i><a>ID
--   string or idempotency token</a></tt> .
gsGameSessionId :: Lens' GameSession (Maybe Text)

-- | Information about the matchmaking process that was used to create the
--   game session. It is in JSON syntax, formatted as a string. In addition
--   the matchmaking configuration used, it contains data on all players
--   assigned to the match, including player attributes and team
--   assignments. For more details on matchmaker data, see <a>Match
--   Data</a> . Matchmaker data is useful when requesting match backfills,
--   and is updated whenever new players are added during a successful
--   backfill (see <tt>StartMatchBackfill</tt> ).
gsMatchmakerData :: Lens' GameSession (Maybe Text)

-- | Maximum number of players that can be connected simultaneously to the
--   game session.
gsMaximumPlayerSessionCount :: Lens' GameSession (Maybe Natural)

-- | Time stamp indicating when this data object was terminated. Format is
--   a number expressed in Unix time as milliseconds (for example
--   "1469498468.057").
gsTerminationTime :: Lens' GameSession (Maybe UTCTime)

-- | Indicates whether or not the game session is accepting new players.
gsPlayerSessionCreationPolicy :: Lens' GameSession (Maybe PlayerSessionCreationPolicy)

-- | Descriptive label that is associated with a game session. Session
--   names do not need to be unique.
gsName :: Lens' GameSession (Maybe Text)

-- | Number of players currently in the game session.
gsCurrentPlayerSessionCount :: Lens' GameSession (Maybe Natural)

-- | Provides additional information about game session status.
--   <tt>INTERRUPTED</tt> indicates that the game session was hosted on a
--   spot instance that was reclaimed, causing the active game session to
--   be terminated.
gsStatusReason :: Lens' GameSession (Maybe GameSessionStatusReason)

-- | Set of custom game session properties, formatted as a single string
--   value. This data is passed to a game server process in the
--   <a>GameSession</a> object with a request to start a new game session
--   (see <a>Start a Game Session</a> ).
gsGameSessionData :: Lens' GameSession (Maybe Text)

-- | Unique identifier for a fleet that the game session is running on.
gsFleetId :: Lens' GameSession (Maybe Text)

-- | Unique identifier for a player. This ID is used to enforce a resource
--   protection policy (if one exists), that limits the number of game
--   sessions a player can create.
gsCreatorId :: Lens' GameSession (Maybe Text)

-- | Port number for the game session. To connect to a Amazon GameLift game
--   server, an app needs both the IP address and port number.
gsPort :: Lens' GameSession (Maybe Natural)

-- | Connection information for the new game session that is created with
--   matchmaking. (with <tt>StartMatchmaking</tt> ). Once a match is set,
--   the FlexMatch engine places the match and creates a new game session
--   for it. This information, including the game session endpoint and
--   player sessions for each player in the original matchmaking request,
--   is added to the <a>MatchmakingTicket</a> , which can be retrieved by
--   calling <tt>DescribeMatchmaking</tt> .
--   
--   <i>See:</i> <a>gameSessionConnectionInfo</a> smart constructor.
data GameSessionConnectionInfo

-- | Creates a value of <a>GameSessionConnectionInfo</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gsciMatchedPlayerSessions</a> - Collection of player session
--   IDs, one for each player ID that was included in the original
--   matchmaking request.</li>
--   <li><a>gsciIPAddress</a> - IP address of the game session. To connect
--   to a Amazon GameLift game server, an app needs both the IP address and
--   port number.</li>
--   <li><a>gsciGameSessionARN</a> - Amazon Resource Name (<a>ARN</a> )
--   that is assigned to a game session and uniquely identifies it.</li>
--   <li><a>gsciPort</a> - Port number for the game session. To connect to
--   a Amazon GameLift game server, an app needs both the IP address and
--   port number.</li>
--   </ul>
gameSessionConnectionInfo :: GameSessionConnectionInfo

-- | Collection of player session IDs, one for each player ID that was
--   included in the original matchmaking request.
gsciMatchedPlayerSessions :: Lens' GameSessionConnectionInfo [MatchedPlayerSession]

-- | IP address of the game session. To connect to a Amazon GameLift game
--   server, an app needs both the IP address and port number.
gsciIPAddress :: Lens' GameSessionConnectionInfo (Maybe Text)

-- | Amazon Resource Name (<a>ARN</a> ) that is assigned to a game session
--   and uniquely identifies it.
gsciGameSessionARN :: Lens' GameSessionConnectionInfo (Maybe Text)

-- | Port number for the game session. To connect to a Amazon GameLift game
--   server, an app needs both the IP address and port number.
gsciPort :: Lens' GameSessionConnectionInfo (Maybe Natural)

-- | A game session's properties plus the protection policy currently in
--   force.
--   
--   <i>See:</i> <a>gameSessionDetail</a> smart constructor.
data GameSessionDetail

-- | Creates a value of <a>GameSessionDetail</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gsdGameSession</a> - Object that describes a game session.</li>
--   <li><a>gsdProtectionPolicy</a> - Current status of protection for the
--   game session. * <b>NoProtection</b> -- The game session can be
--   terminated during a scale-down event. * <b>FullProtection</b> -- If
--   the game session is in an <tt>ACTIVE</tt> status, it cannot be
--   terminated during a scale-down event.</li>
--   </ul>
gameSessionDetail :: GameSessionDetail

-- | Object that describes a game session.
gsdGameSession :: Lens' GameSessionDetail (Maybe GameSession)

-- | Current status of protection for the game session. *
--   <b>NoProtection</b> -- The game session can be terminated during a
--   scale-down event. * <b>FullProtection</b> -- If the game session is in
--   an <tt>ACTIVE</tt> status, it cannot be terminated during a scale-down
--   event.
gsdProtectionPolicy :: Lens' GameSessionDetail (Maybe ProtectionPolicy)

-- | Object that describes a <tt>StartGameSessionPlacement</tt> request.
--   This object includes the full details of the original request plus the
--   current status and start/end time stamps.
--   
--   Game session placement-related operations include:
--   
--   <ul>
--   <li><tt>StartGameSessionPlacement</tt></li>
--   <li><tt>DescribeGameSessionPlacement</tt></li>
--   <li><tt>StopGameSessionPlacement</tt></li>
--   </ul>
--   
--   <i>See:</i> <a>gameSessionPlacement</a> smart constructor.
data GameSessionPlacement

-- | Creates a value of <a>GameSessionPlacement</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gspStatus</a> - Current status of the game session placement
--   request. * <b>PENDING</b> -- The placement request is currently in the
--   queue waiting to be processed. * <b>FULFILLED</b> -- A new game
--   session and player sessions (if requested) have been successfully
--   created. Values for <i>GameSessionArn</i> and <i>GameSessionRegion</i>
--   are available. * <b>CANCELLED</b> -- The placement request was
--   canceled with a call to <tt>StopGameSessionPlacement</tt> . *
--   <b>TIMED_OUT</b> -- A new game session was not successfully created
--   before the time limit expired. You can resubmit the placement request
--   as needed.</li>
--   <li><a>gspPlacementId</a> - Unique identifier for a game session
--   placement.</li>
--   <li><a>gspGameProperties</a> - Set of custom properties for a game
--   session, formatted as key:value pairs. These properties are passed to
--   a game server process in the <a>GameSession</a> object with a request
--   to start a new game session (see <a>Start a Game Session</a> ).</li>
--   <li><a>gspIPAddress</a> - IP address of the game session. To connect
--   to a Amazon GameLift game server, an app needs both the IP address and
--   port number. This value is set once the new game session is placed
--   (placement status is <tt>FULFILLED</tt> ).</li>
--   <li><a>gspGameSessionName</a> - Descriptive label that is associated
--   with a game session. Session names do not need to be unique.</li>
--   <li><a>gspStartTime</a> - Time stamp indicating when this request was
--   placed in the queue. Format is a number expressed in Unix time as
--   milliseconds (for example "1469498468.057").</li>
--   <li><a>gspGameSessionId</a> - Unique identifier for the game session.
--   This value is set once the new game session is placed (placement
--   status is <tt>FULFILLED</tt> ).</li>
--   <li><a>gspGameSessionRegion</a> - Name of the region where the game
--   session created by this placement request is running. This value is
--   set once the new game session is placed (placement status is
--   <tt>FULFILLED</tt> ).</li>
--   <li><a>gspMatchmakerData</a> - Information on the matchmaking process
--   for this game. Data is in JSON syntax, formatted as a string. It
--   identifies the matchmaking configuration used to create the match, and
--   contains data on all players assigned to the match, including player
--   attributes and team assignments. For more details on matchmaker data,
--   see <a>Match Data</a> .</li>
--   <li><a>gspMaximumPlayerSessionCount</a> - Maximum number of players
--   that can be connected simultaneously to the game session.</li>
--   <li><a>gspEndTime</a> - Time stamp indicating when this request was
--   completed, canceled, or timed out.</li>
--   <li><a>gspGameSessionARN</a> - Identifier for the game session created
--   by this placement request. This value is set once the new game session
--   is placed (placement status is <tt>FULFILLED</tt> ). This identifier
--   is unique across all regions. You can use this value as a
--   <tt>GameSessionId</tt> value as needed.</li>
--   <li><a>gspPlayerLatencies</a> - Set of values, expressed in
--   milliseconds, indicating the amount of latency that a player
--   experiences when connected to AWS regions.</li>
--   <li><a>gspGameSessionData</a> - Set of custom game session properties,
--   formatted as a single string value. This data is passed to a game
--   server process in the <a>GameSession</a> object with a request to
--   start a new game session (see <a>Start a Game Session</a> ).</li>
--   <li><a>gspGameSessionQueueName</a> - Descriptive label that is
--   associated with game session queue. Queue names must be unique within
--   each region.</li>
--   <li><a>gspPlacedPlayerSessions</a> - Collection of information on
--   player sessions created in response to the game session placement
--   request. These player sessions are created only once a new game
--   session is successfully placed (placement status is <tt>FULFILLED</tt>
--   ). This information includes the player ID (as provided in the
--   placement request) and the corresponding player session ID. Retrieve
--   full player sessions by calling <tt>DescribePlayerSessions</tt> with
--   the player session ID.</li>
--   <li><a>gspPort</a> - Port number for the game session. To connect to a
--   Amazon GameLift game server, an app needs both the IP address and port
--   number. This value is set once the new game session is placed
--   (placement status is <tt>FULFILLED</tt> ).</li>
--   </ul>
gameSessionPlacement :: GameSessionPlacement

-- | Current status of the game session placement request. * <b>PENDING</b>
--   -- The placement request is currently in the queue waiting to be
--   processed. * <b>FULFILLED</b> -- A new game session and player
--   sessions (if requested) have been successfully created. Values for
--   <i>GameSessionArn</i> and <i>GameSessionRegion</i> are available. *
--   <b>CANCELLED</b> -- The placement request was canceled with a call to
--   <tt>StopGameSessionPlacement</tt> . * <b>TIMED_OUT</b> -- A new game
--   session was not successfully created before the time limit expired.
--   You can resubmit the placement request as needed.
gspStatus :: Lens' GameSessionPlacement (Maybe GameSessionPlacementState)

-- | Unique identifier for a game session placement.
gspPlacementId :: Lens' GameSessionPlacement (Maybe Text)

-- | Set of custom properties for a game session, formatted as key:value
--   pairs. These properties are passed to a game server process in the
--   <a>GameSession</a> object with a request to start a new game session
--   (see <a>Start a Game Session</a> ).
gspGameProperties :: Lens' GameSessionPlacement [GameProperty]

-- | IP address of the game session. To connect to a Amazon GameLift game
--   server, an app needs both the IP address and port number. This value
--   is set once the new game session is placed (placement status is
--   <tt>FULFILLED</tt> ).
gspIPAddress :: Lens' GameSessionPlacement (Maybe Text)

-- | Descriptive label that is associated with a game session. Session
--   names do not need to be unique.
gspGameSessionName :: Lens' GameSessionPlacement (Maybe Text)

-- | Time stamp indicating when this request was placed in the queue.
--   Format is a number expressed in Unix time as milliseconds (for example
--   "1469498468.057").
gspStartTime :: Lens' GameSessionPlacement (Maybe UTCTime)

-- | Unique identifier for the game session. This value is set once the new
--   game session is placed (placement status is <tt>FULFILLED</tt> ).
gspGameSessionId :: Lens' GameSessionPlacement (Maybe Text)

-- | Name of the region where the game session created by this placement
--   request is running. This value is set once the new game session is
--   placed (placement status is <tt>FULFILLED</tt> ).
gspGameSessionRegion :: Lens' GameSessionPlacement (Maybe Text)

-- | Information on the matchmaking process for this game. Data is in JSON
--   syntax, formatted as a string. It identifies the matchmaking
--   configuration used to create the match, and contains data on all
--   players assigned to the match, including player attributes and team
--   assignments. For more details on matchmaker data, see <a>Match
--   Data</a> .
gspMatchmakerData :: Lens' GameSessionPlacement (Maybe Text)

-- | Maximum number of players that can be connected simultaneously to the
--   game session.
gspMaximumPlayerSessionCount :: Lens' GameSessionPlacement (Maybe Natural)

-- | Time stamp indicating when this request was completed, canceled, or
--   timed out.
gspEndTime :: Lens' GameSessionPlacement (Maybe UTCTime)

-- | Identifier for the game session created by this placement request.
--   This value is set once the new game session is placed (placement
--   status is <tt>FULFILLED</tt> ). This identifier is unique across all
--   regions. You can use this value as a <tt>GameSessionId</tt> value as
--   needed.
gspGameSessionARN :: Lens' GameSessionPlacement (Maybe Text)

-- | Set of values, expressed in milliseconds, indicating the amount of
--   latency that a player experiences when connected to AWS regions.
gspPlayerLatencies :: Lens' GameSessionPlacement [PlayerLatency]

-- | Set of custom game session properties, formatted as a single string
--   value. This data is passed to a game server process in the
--   <a>GameSession</a> object with a request to start a new game session
--   (see <a>Start a Game Session</a> ).
gspGameSessionData :: Lens' GameSessionPlacement (Maybe Text)

-- | Descriptive label that is associated with game session queue. Queue
--   names must be unique within each region.
gspGameSessionQueueName :: Lens' GameSessionPlacement (Maybe Text)

-- | Collection of information on player sessions created in response to
--   the game session placement request. These player sessions are created
--   only once a new game session is successfully placed (placement status
--   is <tt>FULFILLED</tt> ). This information includes the player ID (as
--   provided in the placement request) and the corresponding player
--   session ID. Retrieve full player sessions by calling
--   <tt>DescribePlayerSessions</tt> with the player session ID.
gspPlacedPlayerSessions :: Lens' GameSessionPlacement [PlacedPlayerSession]

-- | Port number for the game session. To connect to a Amazon GameLift game
--   server, an app needs both the IP address and port number. This value
--   is set once the new game session is placed (placement status is
--   <tt>FULFILLED</tt> ).
gspPort :: Lens' GameSessionPlacement (Maybe Natural)

-- | Configuration of a queue that is used to process game session
--   placement requests. The queue configuration identifies several game
--   features:
--   
--   <ul>
--   <li>The destinations where a new game session can potentially be
--   hosted. Amazon GameLift tries these destinations in an order based on
--   either the queue's default order or player latency information, if
--   provided in a placement request. With latency information, Amazon
--   GameLift can place game sessions where the majority of players are
--   reporting the lowest possible latency.</li>
--   <li>The length of time that placement requests can wait in the queue
--   before timing out.</li>
--   <li>A set of optional latency policies that protect individual players
--   from high latencies, preventing game sessions from being placed where
--   any individual player is reporting latency higher than a policy's
--   maximum.</li>
--   </ul>
--   
--   Queue-related operations include:
--   
--   <ul>
--   <li><tt>CreateGameSessionQueue</tt></li>
--   <li><tt>DescribeGameSessionQueues</tt></li>
--   <li><tt>UpdateGameSessionQueue</tt></li>
--   <li><tt>DeleteGameSessionQueue</tt></li>
--   </ul>
--   
--   <i>See:</i> <a>gameSessionQueue</a> smart constructor.
data GameSessionQueue

-- | Creates a value of <a>GameSessionQueue</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gsqGameSessionQueueARN</a> - Amazon Resource Name (<a>ARN</a> )
--   that is assigned to a game session queue and uniquely identifies it.
--   Format is
--   <tt>arn:aws:gamelift:<a>region</a>::fleet/fleet-a1234567-b8c9-0d1e-2fa3-b45c6d7e8912</tt>
--   .</li>
--   <li><a>gsqPlayerLatencyPolicies</a> - Collection of latency policies
--   to apply when processing game sessions placement requests with player
--   latency information. Multiple policies are evaluated in order of the
--   maximum latency value, starting with the lowest latency values. With
--   just one policy, it is enforced at the start of the game session
--   placement for the duration period. With multiple policies, each policy
--   is enforced consecutively for its duration period. For example, a
--   queue might enforce a 60-second policy followed by a 120-second
--   policy, and then no policy for the remainder of the placement.</li>
--   <li><a>gsqTimeoutInSeconds</a> - Maximum time, in seconds, that a new
--   game session placement request remains in the queue. When a request
--   exceeds this time, the game session placement changes to a
--   <tt>TIMED_OUT</tt> status.</li>
--   <li><a>gsqDestinations</a> - List of fleets that can be used to
--   fulfill game session placement requests in the queue. Fleets are
--   identified by either a fleet ARN or a fleet alias ARN. Destinations
--   are listed in default preference order.</li>
--   <li><a>gsqName</a> - Descriptive label that is associated with game
--   session queue. Queue names must be unique within each region.</li>
--   </ul>
gameSessionQueue :: GameSessionQueue

-- | Amazon Resource Name (<a>ARN</a> ) that is assigned to a game session
--   queue and uniquely identifies it. Format is
--   <tt>arn:aws:gamelift:<a>region</a>::fleet/fleet-a1234567-b8c9-0d1e-2fa3-b45c6d7e8912</tt>
--   .
gsqGameSessionQueueARN :: Lens' GameSessionQueue (Maybe Text)

-- | Collection of latency policies to apply when processing game sessions
--   placement requests with player latency information. Multiple policies
--   are evaluated in order of the maximum latency value, starting with the
--   lowest latency values. With just one policy, it is enforced at the
--   start of the game session placement for the duration period. With
--   multiple policies, each policy is enforced consecutively for its
--   duration period. For example, a queue might enforce a 60-second policy
--   followed by a 120-second policy, and then no policy for the remainder
--   of the placement.
gsqPlayerLatencyPolicies :: Lens' GameSessionQueue [PlayerLatencyPolicy]

-- | Maximum time, in seconds, that a new game session placement request
--   remains in the queue. When a request exceeds this time, the game
--   session placement changes to a <tt>TIMED_OUT</tt> status.
gsqTimeoutInSeconds :: Lens' GameSessionQueue (Maybe Natural)

-- | List of fleets that can be used to fulfill game session placement
--   requests in the queue. Fleets are identified by either a fleet ARN or
--   a fleet alias ARN. Destinations are listed in default preference
--   order.
gsqDestinations :: Lens' GameSessionQueue [GameSessionQueueDestination]

-- | Descriptive label that is associated with game session queue. Queue
--   names must be unique within each region.
gsqName :: Lens' GameSessionQueue (Maybe Text)

-- | Fleet designated in a game session queue. Requests for new game
--   sessions in the queue are fulfilled by starting a new game session on
--   any destination configured for a queue.
--   
--   Queue-related operations include:
--   
--   <ul>
--   <li><tt>CreateGameSessionQueue</tt></li>
--   <li><tt>DescribeGameSessionQueues</tt></li>
--   <li><tt>UpdateGameSessionQueue</tt></li>
--   <li><tt>DeleteGameSessionQueue</tt></li>
--   </ul>
--   
--   <i>See:</i> <a>gameSessionQueueDestination</a> smart constructor.
data GameSessionQueueDestination

-- | Creates a value of <a>GameSessionQueueDestination</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gsqdDestinationARN</a> - Amazon Resource Name (ARN) assigned to
--   fleet or fleet alias. ARNs, which include a fleet ID or alias ID and a
--   region name, provide a unique identifier across all regions.</li>
--   </ul>
gameSessionQueueDestination :: GameSessionQueueDestination

-- | Amazon Resource Name (ARN) assigned to fleet or fleet alias. ARNs,
--   which include a fleet ID or alias ID and a region name, provide a
--   unique identifier across all regions.
gsqdDestinationARN :: Lens' GameSessionQueueDestination (Maybe Text)

-- | A range of IP addresses and port settings that allow inbound traffic
--   to connect to server processes on Amazon GameLift. Each game session
--   hosted on a fleet is assigned a unique combination of IP address and
--   port number, which must fall into the fleet's allowed ranges. This
--   combination is included in the <a>GameSession</a> object.
--   
--   <i>See:</i> <a>ipPermission</a> smart constructor.
data IPPermission

-- | Creates a value of <a>IPPermission</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ipFromPort</a> - Starting value for a range of allowed port
--   numbers.</li>
--   <li><a>ipToPort</a> - Ending value for a range of allowed port
--   numbers. Port numbers are end-inclusive. This value must be higher
--   than <tt>FromPort</tt> .</li>
--   <li><a>ipIPRange</a> - Range of allowed IP addresses. This value must
--   be expressed in CIDR notation. Example: "<tt>000.000.000.000/[subnet
--   mask]</tt> " or optionally the shortened version "<tt>0.0.0.0/[subnet
--   mask]</tt> ".</li>
--   <li><a>ipProtocol</a> - Network communication protocol used by the
--   fleet.</li>
--   </ul>
ipPermission :: Natural -> Natural -> Text -> IPProtocol -> IPPermission

-- | Starting value for a range of allowed port numbers.
ipFromPort :: Lens' IPPermission Natural

-- | Ending value for a range of allowed port numbers. Port numbers are
--   end-inclusive. This value must be higher than <tt>FromPort</tt> .
ipToPort :: Lens' IPPermission Natural

-- | Range of allowed IP addresses. This value must be expressed in CIDR
--   notation. Example: "<tt>000.000.000.000/[subnet mask]</tt> " or
--   optionally the shortened version "<tt>0.0.0.0/[subnet mask]</tt> ".
ipIPRange :: Lens' IPPermission Text

-- | Network communication protocol used by the fleet.
ipProtocol :: Lens' IPPermission IPProtocol

-- | Properties that describe an instance of a virtual computing resource
--   that hosts one or more game servers. A fleet may contain zero or more
--   instances.
--   
--   <i>See:</i> <a>instance'</a> smart constructor.
data Instance

-- | Creates a value of <a>Instance</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>iCreationTime</a> - Time stamp indicating when this data object
--   was created. Format is a number expressed in Unix time as milliseconds
--   (for example "1469498468.057").</li>
--   <li><a>iInstanceId</a> - Unique identifier for an instance.</li>
--   <li><a>iStatus</a> - Current status of the instance. Possible statuses
--   include the following: * <b>PENDING</b> -- The instance is in the
--   process of being created and launching server processes as defined in
--   the fleet's run-time configuration. * <b>ACTIVE</b> -- The instance
--   has been successfully created and at least one server process has
--   successfully launched and reported back to Amazon GameLift that it is
--   ready to host a game session. The instance is now considered ready to
--   host game sessions. * <b>TERMINATING</b> -- The instance is in the
--   process of shutting down. This may happen to reduce capacity during a
--   scaling down event or to recycle resources in the event of a
--   problem.</li>
--   <li><a>iIPAddress</a> - IP address assigned to the instance.</li>
--   <li><a>iOperatingSystem</a> - Operating system that is running on this
--   instance.</li>
--   <li><a>iType</a> - EC2 instance type that defines the computing
--   resources of this instance.</li>
--   <li><a>iFleetId</a> - Unique identifier for a fleet that the instance
--   is in.</li>
--   </ul>
instance' :: Instance

-- | Time stamp indicating when this data object was created. Format is a
--   number expressed in Unix time as milliseconds (for example
--   "1469498468.057").
iCreationTime :: Lens' Instance (Maybe UTCTime)

-- | Unique identifier for an instance.
iInstanceId :: Lens' Instance (Maybe Text)

-- | Current status of the instance. Possible statuses include the
--   following: * <b>PENDING</b> -- The instance is in the process of being
--   created and launching server processes as defined in the fleet's
--   run-time configuration. * <b>ACTIVE</b> -- The instance has been
--   successfully created and at least one server process has successfully
--   launched and reported back to Amazon GameLift that it is ready to host
--   a game session. The instance is now considered ready to host game
--   sessions. * <b>TERMINATING</b> -- The instance is in the process of
--   shutting down. This may happen to reduce capacity during a scaling
--   down event or to recycle resources in the event of a problem.
iStatus :: Lens' Instance (Maybe InstanceStatus)

-- | IP address assigned to the instance.
iIPAddress :: Lens' Instance (Maybe Text)

-- | Operating system that is running on this instance.
iOperatingSystem :: Lens' Instance (Maybe OperatingSystem)

-- | EC2 instance type that defines the computing resources of this
--   instance.
iType :: Lens' Instance (Maybe EC2InstanceType)

-- | Unique identifier for a fleet that the instance is in.
iFleetId :: Lens' Instance (Maybe Text)

-- | Information required to remotely connect to a fleet instance. Access
--   is requested by calling <tt>GetInstanceAccess</tt> .
--   
--   <i>See:</i> <a>instanceAccess</a> smart constructor.
data InstanceAccess

-- | Creates a value of <a>InstanceAccess</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>iaInstanceId</a> - Unique identifier for an instance being
--   accessed.</li>
--   <li><a>iaIPAddress</a> - IP address assigned to the instance.</li>
--   <li><a>iaOperatingSystem</a> - Operating system that is running on the
--   instance.</li>
--   <li><a>iaCredentials</a> - Credentials required to access the
--   instance.</li>
--   <li><a>iaFleetId</a> - Unique identifier for a fleet containing the
--   instance being accessed.</li>
--   </ul>
instanceAccess :: InstanceAccess

-- | Unique identifier for an instance being accessed.
iaInstanceId :: Lens' InstanceAccess (Maybe Text)

-- | IP address assigned to the instance.
iaIPAddress :: Lens' InstanceAccess (Maybe Text)

-- | Operating system that is running on the instance.
iaOperatingSystem :: Lens' InstanceAccess (Maybe OperatingSystem)

-- | Credentials required to access the instance.
iaCredentials :: Lens' InstanceAccess (Maybe InstanceCredentials)

-- | Unique identifier for a fleet containing the instance being accessed.
iaFleetId :: Lens' InstanceAccess (Maybe Text)

-- | Set of credentials required to remotely access a fleet instance.
--   Access credentials are requested by calling <tt>GetInstanceAccess</tt>
--   and returned in an <a>InstanceAccess</a> object.
--   
--   <i>See:</i> <a>instanceCredentials</a> smart constructor.
data InstanceCredentials

-- | Creates a value of <a>InstanceCredentials</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>icUserName</a> - User login string.</li>
--   <li><a>icSecret</a> - Secret string. For Windows instances, the secret
--   is a password for use with Windows Remote Desktop. For Linux
--   instances, it is a private key (which must be saved as a <tt>.pem</tt>
--   file) for use with SSH.</li>
--   </ul>
instanceCredentials :: InstanceCredentials

-- | User login string.
icUserName :: Lens' InstanceCredentials (Maybe Text)

-- | Secret string. For Windows instances, the secret is a password for use
--   with Windows Remote Desktop. For Linux instances, it is a private key
--   (which must be saved as a <tt>.pem</tt> file) for use with SSH.
icSecret :: Lens' InstanceCredentials (Maybe Text)

-- | Represents a new player session that is created as a result of a
--   successful FlexMatch match. A successful match automatically creates
--   new player sessions for every player ID in the original matchmaking
--   request.
--   
--   When players connect to the match's game session, they must include
--   both player ID and player session ID in order to claim their assigned
--   player slot.
--   
--   <i>See:</i> <a>matchedPlayerSession</a> smart constructor.
data MatchedPlayerSession

-- | Creates a value of <a>MatchedPlayerSession</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mpsPlayerSessionId</a> - Unique identifier for a player
--   session</li>
--   <li><a>mpsPlayerId</a> - Unique identifier for a player</li>
--   </ul>
matchedPlayerSession :: MatchedPlayerSession

-- | Unique identifier for a player session
mpsPlayerSessionId :: Lens' MatchedPlayerSession (Maybe Text)

-- | Unique identifier for a player
mpsPlayerId :: Lens' MatchedPlayerSession (Maybe Text)

-- | Guidelines for use with FlexMatch to match players into games. All
--   matchmaking requests must specify a matchmaking configuration.
--   
--   <i>See:</i> <a>matchmakingConfiguration</a> smart constructor.
data MatchmakingConfiguration

-- | Creates a value of <a>MatchmakingConfiguration</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mcCreationTime</a> - Time stamp indicating when this data
--   object was created. Format is a number expressed in Unix time as
--   milliseconds (for example "1469498468.057").</li>
--   <li><a>mcGameProperties</a> - Set of custom properties for a game
--   session, formatted as key:value pairs. These properties are passed to
--   a game server process in the <a>GameSession</a> object with a request
--   to start a new game session (see <a>Start a Game Session</a> ). This
--   information is added to the new <a>GameSession</a> object that is
--   created for a successful match.</li>
--   <li><a>mcRuleSetName</a> - Unique identifier for a matchmaking rule
--   set to use with this configuration. A matchmaking configuration can
--   only use rule sets that are defined in the same region.</li>
--   <li><a>mcAcceptanceTimeoutSeconds</a> - Length of time (in seconds) to
--   wait for players to accept a proposed match. If any player rejects the
--   match or fails to accept before the timeout, the ticket continues to
--   look for an acceptable match.</li>
--   <li><a>mcRequestTimeoutSeconds</a> - Maximum duration, in seconds,
--   that a matchmaking ticket can remain in process before timing out.
--   Requests that time out can be resubmitted as needed.</li>
--   <li><a>mcNotificationTarget</a> - SNS topic ARN that is set up to
--   receive matchmaking notifications.</li>
--   <li><a>mcGameSessionQueueARNs</a> - Amazon Resource Name (<a>ARN</a> )
--   that is assigned to a game session queue and uniquely identifies it.
--   Format is
--   <tt>arn:aws:gamelift:<a>region</a>::fleet/fleet-a1234567-b8c9-0d1e-2fa3-b45c6d7e8912</tt>
--   . These queues are used when placing game sessions for matches that
--   are created with this matchmaking configuration. Queues can be located
--   in any region.</li>
--   <li><a>mcName</a> - Unique identifier for a matchmaking configuration.
--   This name is used to identify the configuration associated with a
--   matchmaking request or ticket.</li>
--   <li><a>mcCustomEventData</a> - Information to attached to all events
--   related to the matchmaking configuration.</li>
--   <li><a>mcAcceptanceRequired</a> - Flag that determines whether or not
--   a match that was created with this configuration must be accepted by
--   the matched players. To require acceptance, set to TRUE.</li>
--   <li><a>mcGameSessionData</a> - Set of custom game session properties,
--   formatted as a single string value. This data is passed to a game
--   server process in the <a>GameSession</a> object with a request to
--   start a new game session (see <a>Start a Game Session</a> ). This
--   information is added to the new <a>GameSession</a> object that is
--   created for a successful match.</li>
--   <li><a>mcDescription</a> - Descriptive label that is associated with
--   matchmaking configuration.</li>
--   <li><a>mcAdditionalPlayerCount</a> - Number of player slots in a match
--   to keep open for future players. For example, if the configuration's
--   rule set specifies a match for a single 12-person team, and the
--   additional player count is set to 2, only 10 players are selected for
--   the match.</li>
--   </ul>
matchmakingConfiguration :: MatchmakingConfiguration

-- | Time stamp indicating when this data object was created. Format is a
--   number expressed in Unix time as milliseconds (for example
--   "1469498468.057").
mcCreationTime :: Lens' MatchmakingConfiguration (Maybe UTCTime)

-- | Set of custom properties for a game session, formatted as key:value
--   pairs. These properties are passed to a game server process in the
--   <a>GameSession</a> object with a request to start a new game session
--   (see <a>Start a Game Session</a> ). This information is added to the
--   new <a>GameSession</a> object that is created for a successful match.
mcGameProperties :: Lens' MatchmakingConfiguration [GameProperty]

-- | Unique identifier for a matchmaking rule set to use with this
--   configuration. A matchmaking configuration can only use rule sets that
--   are defined in the same region.
mcRuleSetName :: Lens' MatchmakingConfiguration (Maybe Text)

-- | Length of time (in seconds) to wait for players to accept a proposed
--   match. If any player rejects the match or fails to accept before the
--   timeout, the ticket continues to look for an acceptable match.
mcAcceptanceTimeoutSeconds :: Lens' MatchmakingConfiguration (Maybe Natural)

-- | Maximum duration, in seconds, that a matchmaking ticket can remain in
--   process before timing out. Requests that time out can be resubmitted
--   as needed.
mcRequestTimeoutSeconds :: Lens' MatchmakingConfiguration (Maybe Natural)

-- | SNS topic ARN that is set up to receive matchmaking notifications.
mcNotificationTarget :: Lens' MatchmakingConfiguration (Maybe Text)

-- | Amazon Resource Name (<a>ARN</a> ) that is assigned to a game session
--   queue and uniquely identifies it. Format is
--   <tt>arn:aws:gamelift:<a>region</a>::fleet/fleet-a1234567-b8c9-0d1e-2fa3-b45c6d7e8912</tt>
--   . These queues are used when placing game sessions for matches that
--   are created with this matchmaking configuration. Queues can be located
--   in any region.
mcGameSessionQueueARNs :: Lens' MatchmakingConfiguration [Text]

-- | Unique identifier for a matchmaking configuration. This name is used
--   to identify the configuration associated with a matchmaking request or
--   ticket.
mcName :: Lens' MatchmakingConfiguration (Maybe Text)

-- | Information to attached to all events related to the matchmaking
--   configuration.
mcCustomEventData :: Lens' MatchmakingConfiguration (Maybe Text)

-- | Flag that determines whether or not a match that was created with this
--   configuration must be accepted by the matched players. To require
--   acceptance, set to TRUE.
mcAcceptanceRequired :: Lens' MatchmakingConfiguration (Maybe Bool)

-- | Set of custom game session properties, formatted as a single string
--   value. This data is passed to a game server process in the
--   <a>GameSession</a> object with a request to start a new game session
--   (see <a>Start a Game Session</a> ). This information is added to the
--   new <a>GameSession</a> object that is created for a successful match.
mcGameSessionData :: Lens' MatchmakingConfiguration (Maybe Text)

-- | Descriptive label that is associated with matchmaking configuration.
mcDescription :: Lens' MatchmakingConfiguration (Maybe Text)

-- | Number of player slots in a match to keep open for future players. For
--   example, if the configuration's rule set specifies a match for a
--   single 12-person team, and the additional player count is set to 2,
--   only 10 players are selected for the match.
mcAdditionalPlayerCount :: Lens' MatchmakingConfiguration (Maybe Natural)

-- | Set of rule statements, used with FlexMatch, that determine how to
--   build a certain kind of player match. Each rule set describes a type
--   of group to be created and defines the parameters for acceptable
--   player matches. Rule sets are used in <a>MatchmakingConfiguration</a>
--   objects.
--   
--   A rule set may define the following elements for a match. For detailed
--   information and examples showing how to construct a rule set, see
--   <a>Build a FlexMatch Rule Set</a> .
--   
--   <ul>
--   <li>Teams -- Required. A rule set must define one or multiple teams
--   for the match and set minimum and maximum team sizes. For example, a
--   rule set might describe a 4x4 match that requires all eight slots to
--   be filled.</li>
--   <li>Player attributes -- Optional. These attributes specify a set of
--   player characteristics to evaluate when looking for a match.
--   Matchmaking requests that use a rule set with player attributes must
--   provide the corresponding attribute values. For example, an attribute
--   might specify a player's skill or level.</li>
--   <li>Rules -- Optional. Rules define how to evaluate potential players
--   for a match based on player attributes. A rule might specify minimum
--   requirements for individual players, teams, or entire matches. For
--   example, a rule might require each player to meet a certain skill
--   level, each team to have at least one player in a certain role, or the
--   match to have a minimum average skill level. or may describe an entire
--   group--such as all teams must be evenly matched or have at least one
--   player in a certain role.</li>
--   <li>Expansions -- Optional. Expansions allow you to relax the rules
--   after a period of time when no acceptable matches are found. This
--   feature lets you balance getting players into games in a reasonable
--   amount of time instead of making them wait indefinitely for the best
--   possible match. For example, you might use an expansion to increase
--   the maximum skill variance between players after 30 seconds.</li>
--   </ul>
--   
--   <i>See:</i> <a>matchmakingRuleSet</a> smart constructor.
data MatchmakingRuleSet

-- | Creates a value of <a>MatchmakingRuleSet</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mrsCreationTime</a> - Time stamp indicating when this data
--   object was created. Format is a number expressed in Unix time as
--   milliseconds (for example "1469498468.057").</li>
--   <li><a>mrsRuleSetName</a> - Unique identifier for a matchmaking rule
--   set</li>
--   <li><a>mrsRuleSetBody</a> - Collection of matchmaking rules, formatted
--   as a JSON string. (Note that comments14 are not allowed in JSON, but
--   most elements support a description field.)</li>
--   </ul>
matchmakingRuleSet :: Text -> MatchmakingRuleSet

-- | Time stamp indicating when this data object was created. Format is a
--   number expressed in Unix time as milliseconds (for example
--   "1469498468.057").
mrsCreationTime :: Lens' MatchmakingRuleSet (Maybe UTCTime)

-- | Unique identifier for a matchmaking rule set
mrsRuleSetName :: Lens' MatchmakingRuleSet (Maybe Text)

-- | Collection of matchmaking rules, formatted as a JSON string. (Note
--   that comments14 are not allowed in JSON, but most elements support a
--   description field.)
mrsRuleSetBody :: Lens' MatchmakingRuleSet Text

-- | Ticket generated to track the progress of a matchmaking request. Each
--   ticket is uniquely identified by a ticket ID, supplied by the
--   requester, when creating a matchmaking request with
--   <tt>StartMatchmaking</tt> . Tickets can be retrieved by calling
--   <tt>DescribeMatchmaking</tt> with the ticket ID.
--   
--   <i>See:</i> <a>matchmakingTicket</a> smart constructor.
data MatchmakingTicket

-- | Creates a value of <a>MatchmakingTicket</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mtStatus</a> - Current status of the matchmaking request. *
--   <b>QUEUED</b> -- The matchmaking request has been received and is
--   currently waiting to be processed. * <b>SEARCHING</b> -- The
--   matchmaking request is currently being processed. *
--   <b>REQUIRES_ACCEPTANCE</b> -- A match has been proposed and the
--   players must accept the match (see <tt>AcceptMatch</tt> ). This status
--   is used only with requests that use a matchmaking configuration with a
--   player acceptance requirement. * <b>PLACING</b> -- The FlexMatch
--   engine has matched players and is in the process of placing a new game
--   session for the match. * <b>COMPLETED</b> -- Players have been matched
--   and a game session is ready to host the players. A ticket in this
--   state contains the necessary connection information for players. *
--   <b>FAILED</b> -- The matchmaking request was not completed. Tickets
--   with players who fail to accept a proposed match are placed in
--   <tt>FAILED</tt> status. * <b>CANCELLED</b> -- The matchmaking request
--   was canceled with a call to <tt>StopMatchmaking</tt> . *
--   <b>TIMED_OUT</b> -- The matchmaking request was not successful within
--   the duration specified in the matchmaking configuration.</li>
--   <li><a>mtConfigurationName</a> - Name of the
--   <a>MatchmakingConfiguration</a> that is used with this ticket.
--   Matchmaking configurations determine how players are grouped into a
--   match and how a new game session is created for the match.</li>
--   <li><a>mtStartTime</a> - Time stamp indicating when this matchmaking
--   request was received. Format is a number expressed in Unix time as
--   milliseconds (for example "1469498468.057").</li>
--   <li><a>mtGameSessionConnectionInfo</a> - Identifier and connection
--   information of the game session created for the match. This
--   information is added to the ticket only after the matchmaking request
--   has been successfully completed.</li>
--   <li><a>mtTicketId</a> - Unique identifier for a matchmaking
--   ticket.</li>
--   <li><a>mtEstimatedWaitTime</a> - Average amount of time (in seconds)
--   that players are currently waiting for a match. If there is not enough
--   recent data, this property may be empty.</li>
--   <li><a>mtStatusMessage</a> - Additional information about the current
--   status.</li>
--   <li><a>mtEndTime</a> - Time stamp indicating when this matchmaking
--   request stopped being processed due to success, failure, or
--   cancellation. Format is a number expressed in Unix time as
--   milliseconds (for example "1469498468.057").</li>
--   <li><a>mtStatusReason</a> - Code to explain the current status. For
--   example, a status reason may indicate when a ticket has returned to
--   <tt>SEARCHING</tt> status after a proposed match fails to receive
--   player acceptances.</li>
--   <li><a>mtPlayers</a> - A set of <tt>Player</tt> objects, each
--   representing a player to find matches for. Players are identified by a
--   unique player ID and may include latency data for use during
--   matchmaking. If the ticket is in status <tt>COMPLETED</tt> , the
--   <tt>Player</tt> objects include the team the players were assigned to
--   in the resulting match.</li>
--   </ul>
matchmakingTicket :: MatchmakingTicket

-- | Current status of the matchmaking request. * <b>QUEUED</b> -- The
--   matchmaking request has been received and is currently waiting to be
--   processed. * <b>SEARCHING</b> -- The matchmaking request is currently
--   being processed. * <b>REQUIRES_ACCEPTANCE</b> -- A match has been
--   proposed and the players must accept the match (see
--   <tt>AcceptMatch</tt> ). This status is used only with requests that
--   use a matchmaking configuration with a player acceptance requirement.
--   * <b>PLACING</b> -- The FlexMatch engine has matched players and is in
--   the process of placing a new game session for the match. *
--   <b>COMPLETED</b> -- Players have been matched and a game session is
--   ready to host the players. A ticket in this state contains the
--   necessary connection information for players. * <b>FAILED</b> -- The
--   matchmaking request was not completed. Tickets with players who fail
--   to accept a proposed match are placed in <tt>FAILED</tt> status. *
--   <b>CANCELLED</b> -- The matchmaking request was canceled with a call
--   to <tt>StopMatchmaking</tt> . * <b>TIMED_OUT</b> -- The matchmaking
--   request was not successful within the duration specified in the
--   matchmaking configuration.
mtStatus :: Lens' MatchmakingTicket (Maybe MatchmakingConfigurationStatus)

-- | Name of the <a>MatchmakingConfiguration</a> that is used with this
--   ticket. Matchmaking configurations determine how players are grouped
--   into a match and how a new game session is created for the match.
mtConfigurationName :: Lens' MatchmakingTicket (Maybe Text)

-- | Time stamp indicating when this matchmaking request was received.
--   Format is a number expressed in Unix time as milliseconds (for example
--   "1469498468.057").
mtStartTime :: Lens' MatchmakingTicket (Maybe UTCTime)

-- | Identifier and connection information of the game session created for
--   the match. This information is added to the ticket only after the
--   matchmaking request has been successfully completed.
mtGameSessionConnectionInfo :: Lens' MatchmakingTicket (Maybe GameSessionConnectionInfo)

-- | Unique identifier for a matchmaking ticket.
mtTicketId :: Lens' MatchmakingTicket (Maybe Text)

-- | Average amount of time (in seconds) that players are currently waiting
--   for a match. If there is not enough recent data, this property may be
--   empty.
mtEstimatedWaitTime :: Lens' MatchmakingTicket (Maybe Natural)

-- | Additional information about the current status.
mtStatusMessage :: Lens' MatchmakingTicket (Maybe Text)

-- | Time stamp indicating when this matchmaking request stopped being
--   processed due to success, failure, or cancellation. Format is a number
--   expressed in Unix time as milliseconds (for example "1469498468.057").
mtEndTime :: Lens' MatchmakingTicket (Maybe UTCTime)

-- | Code to explain the current status. For example, a status reason may
--   indicate when a ticket has returned to <tt>SEARCHING</tt> status after
--   a proposed match fails to receive player acceptances.
mtStatusReason :: Lens' MatchmakingTicket (Maybe Text)

-- | A set of <tt>Player</tt> objects, each representing a player to find
--   matches for. Players are identified by a unique player ID and may
--   include latency data for use during matchmaking. If the ticket is in
--   status <tt>COMPLETED</tt> , the <tt>Player</tt> objects include the
--   team the players were assigned to in the resulting match.
mtPlayers :: Lens' MatchmakingTicket [Player]

-- | Information about a player session that was created as part of a
--   <tt>StartGameSessionPlacement</tt> request. This object contains only
--   the player ID and player session ID. To retrieve full details on a
--   player session, call <tt>DescribePlayerSessions</tt> with the player
--   session ID.
--   
--   Player-session-related operations include:
--   
--   <ul>
--   <li><tt>CreatePlayerSession</tt></li>
--   <li><tt>CreatePlayerSessions</tt></li>
--   <li><tt>DescribePlayerSessions</tt></li>
--   <li>Game session placements</li>
--   <li><tt>StartGameSessionPlacement</tt></li>
--   <li><tt>DescribeGameSessionPlacement</tt></li>
--   <li><tt>StopGameSessionPlacement</tt></li>
--   </ul>
--   
--   <i>See:</i> <a>placedPlayerSession</a> smart constructor.
data PlacedPlayerSession

-- | Creates a value of <a>PlacedPlayerSession</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ppsPlayerSessionId</a> - Unique identifier for a player
--   session.</li>
--   <li><a>ppsPlayerId</a> - Unique identifier for a player that is
--   associated with this player session.</li>
--   </ul>
placedPlayerSession :: PlacedPlayerSession

-- | Unique identifier for a player session.
ppsPlayerSessionId :: Lens' PlacedPlayerSession (Maybe Text)

-- | Unique identifier for a player that is associated with this player
--   session.
ppsPlayerId :: Lens' PlacedPlayerSession (Maybe Text)

-- | Represents a player in matchmaking. When starting a matchmaking
--   request, a player has a player ID, attributes, and may have latency
--   data. Team information is added after a match has been successfully
--   completed.
--   
--   <i>See:</i> <a>player</a> smart constructor.
data Player

-- | Creates a value of <a>Player</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pPlayerAttributes</a> - Collection of key:value pairs
--   containing player information for use in matchmaking. Player attribute
--   keys must match the <i>playerAttributes</i> used in a matchmaking rule
--   set. Example: <tt><a>PlayerAttributes</a>: {"skill": {<a>N</a>: "23"},
--   "gameMode": {<a>S</a>: "deathmatch"}}</tt> .</li>
--   <li><a>pTeam</a> - Name of the team that the player is assigned to in
--   a match. Team names are defined in a matchmaking rule set.</li>
--   <li><a>pPlayerId</a> - Unique identifier for a player</li>
--   <li><a>pLatencyInMs</a> - Set of values, expressed in milliseconds,
--   indicating the amount of latency that a player experiences when
--   connected to AWS regions. If this property is present, FlexMatch
--   considers placing the match only in regions for which latency is
--   reported. If a matchmaker has a rule that evaluates player latency,
--   players must report latency in order to be matched. If no latency is
--   reported in this scenario, FlexMatch assumes that no regions are
--   available to the player and the ticket is not matchable.</li>
--   </ul>
player :: Player

-- | Collection of key:value pairs containing player information for use in
--   matchmaking. Player attribute keys must match the
--   <i>playerAttributes</i> used in a matchmaking rule set. Example:
--   <tt><a>PlayerAttributes</a>: {"skill": {<a>N</a>: "23"}, "gameMode":
--   {<a>S</a>: "deathmatch"}}</tt> .
pPlayerAttributes :: Lens' Player (HashMap Text AttributeValue)

-- | Name of the team that the player is assigned to in a match. Team names
--   are defined in a matchmaking rule set.
pTeam :: Lens' Player (Maybe Text)

-- | Unique identifier for a player
pPlayerId :: Lens' Player (Maybe Text)

-- | Set of values, expressed in milliseconds, indicating the amount of
--   latency that a player experiences when connected to AWS regions. If
--   this property is present, FlexMatch considers placing the match only
--   in regions for which latency is reported. If a matchmaker has a rule
--   that evaluates player latency, players must report latency in order to
--   be matched. If no latency is reported in this scenario, FlexMatch
--   assumes that no regions are available to the player and the ticket is
--   not matchable.
pLatencyInMs :: Lens' Player (HashMap Text Natural)

-- | Regional latency information for a player, used when requesting a new
--   game session with <tt>StartGameSessionPlacement</tt> . This value
--   indicates the amount of time lag that exists when the player is
--   connected to a fleet in the specified region. The relative difference
--   between a player's latency values for multiple regions are used to
--   determine which fleets are best suited to place a new game session for
--   the player.
--   
--   <i>See:</i> <a>playerLatency</a> smart constructor.
data PlayerLatency

-- | Creates a value of <a>PlayerLatency</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>plLatencyInMilliseconds</a> - Amount of time that represents
--   the time lag experienced by the player when connected to the specified
--   region.</li>
--   <li><a>plRegionIdentifier</a> - Name of the region that is associated
--   with the latency value.</li>
--   <li><a>plPlayerId</a> - Unique identifier for a player associated with
--   the latency data.</li>
--   </ul>
playerLatency :: PlayerLatency

-- | Amount of time that represents the time lag experienced by the player
--   when connected to the specified region.
plLatencyInMilliseconds :: Lens' PlayerLatency (Maybe Double)

-- | Name of the region that is associated with the latency value.
plRegionIdentifier :: Lens' PlayerLatency (Maybe Text)

-- | Unique identifier for a player associated with the latency data.
plPlayerId :: Lens' PlayerLatency (Maybe Text)

-- | Queue setting that determines the highest latency allowed for
--   individual players when placing a game session. When a latency policy
--   is in force, a game session cannot be placed at any destination in a
--   region where a player is reporting latency higher than the cap.
--   Latency policies are only enforced when the placement request contains
--   player latency information.
--   
--   Queue-related operations include:
--   
--   <ul>
--   <li><tt>CreateGameSessionQueue</tt></li>
--   <li><tt>DescribeGameSessionQueues</tt></li>
--   <li><tt>UpdateGameSessionQueue</tt></li>
--   <li><tt>DeleteGameSessionQueue</tt></li>
--   </ul>
--   
--   <i>See:</i> <a>playerLatencyPolicy</a> smart constructor.
data PlayerLatencyPolicy

-- | Creates a value of <a>PlayerLatencyPolicy</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>plpPolicyDurationSeconds</a> - The length of time, in seconds,
--   that the policy is enforced while placing a new game session. A null
--   value for this property means that the policy is enforced until the
--   queue times out.</li>
--   <li><a>plpMaximumIndividualPlayerLatencyMilliseconds</a> - The maximum
--   latency value that is allowed for any player, in milliseconds. All
--   policies must have a value set for this property.</li>
--   </ul>
playerLatencyPolicy :: PlayerLatencyPolicy

-- | The length of time, in seconds, that the policy is enforced while
--   placing a new game session. A null value for this property means that
--   the policy is enforced until the queue times out.
plpPolicyDurationSeconds :: Lens' PlayerLatencyPolicy (Maybe Natural)

-- | The maximum latency value that is allowed for any player, in
--   milliseconds. All policies must have a value set for this property.
plpMaximumIndividualPlayerLatencyMilliseconds :: Lens' PlayerLatencyPolicy (Maybe Natural)

-- | Properties describing a player session. Player session objects are
--   created either by creating a player session for a specific game
--   session, or as part of a game session placement. A player session
--   represents either a player reservation for a game session (status
--   <tt>RESERVED</tt> ) or actual player activity in a game session
--   (status <tt>ACTIVE</tt> ). A player session object (including player
--   data) is automatically passed to a game session when the player
--   connects to the game session and is validated.
--   
--   When a player disconnects, the player session status changes to
--   <tt>COMPLETED</tt> . Once the session ends, the player session object
--   is retained for 30 days and then removed.
--   
--   Player-session-related operations include:
--   
--   <ul>
--   <li><tt>CreatePlayerSession</tt></li>
--   <li><tt>CreatePlayerSessions</tt></li>
--   <li><tt>DescribePlayerSessions</tt></li>
--   <li>Game session placements</li>
--   <li><tt>StartGameSessionPlacement</tt></li>
--   <li><tt>DescribeGameSessionPlacement</tt></li>
--   <li><tt>StopGameSessionPlacement</tt></li>
--   </ul>
--   
--   <i>See:</i> <a>playerSession</a> smart constructor.
data PlayerSession

-- | Creates a value of <a>PlayerSession</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>psCreationTime</a> - Time stamp indicating when this data
--   object was created. Format is a number expressed in Unix time as
--   milliseconds (for example "1469498468.057").</li>
--   <li><a>psStatus</a> - Current status of the player session. Possible
--   player session statuses include the following: * <b>RESERVED</b> --
--   The player session request has been received, but the player has not
--   yet connected to the server process and<i>or been validated. *
--   <b>ACTIVE</b> -- The player has been validated by the server process
--   and is currently connected. * <b>COMPLETED</b> -- The player
--   connection has been dropped. * <b>TIMEDOUT</b> -- A player session
--   request was received, but the player did not connect and</i>or was not
--   validated within the timeout limit (60 seconds).</li>
--   <li><a>psIPAddress</a> - IP address of the game session. To connect to
--   a Amazon GameLift game server, an app needs both the IP address and
--   port number.</li>
--   <li><a>psGameSessionId</a> - Unique identifier for the game session
--   that the player session is connected to.</li>
--   <li><a>psTerminationTime</a> - Time stamp indicating when this data
--   object was terminated. Format is a number expressed in Unix time as
--   milliseconds (for example "1469498468.057").</li>
--   <li><a>psPlayerSessionId</a> - Unique identifier for a player
--   session.</li>
--   <li><a>psFleetId</a> - Unique identifier for a fleet that the player's
--   game session is running on.</li>
--   <li><a>psPlayerData</a> - Developer-defined information related to a
--   player. Amazon GameLift does not use this data, so it can be formatted
--   as needed for use in the game.</li>
--   <li><a>psPlayerId</a> - Unique identifier for a player that is
--   associated with this player session.</li>
--   <li><a>psPort</a> - Port number for the game session. To connect to a
--   Amazon GameLift server process, an app needs both the IP address and
--   port number.</li>
--   </ul>
playerSession :: PlayerSession

-- | Time stamp indicating when this data object was created. Format is a
--   number expressed in Unix time as milliseconds (for example
--   "1469498468.057").
psCreationTime :: Lens' PlayerSession (Maybe UTCTime)

-- | Current status of the player session. Possible player session statuses
--   include the following: * <b>RESERVED</b> -- The player session request
--   has been received, but the player has not yet connected to the server
--   process and<i>or been validated. * <b>ACTIVE</b> -- The player has
--   been validated by the server process and is currently connected. *
--   <b>COMPLETED</b> -- The player connection has been dropped. *
--   <b>TIMEDOUT</b> -- A player session request was received, but the
--   player did not connect and</i>or was not validated within the timeout
--   limit (60 seconds).
psStatus :: Lens' PlayerSession (Maybe PlayerSessionStatus)

-- | IP address of the game session. To connect to a Amazon GameLift game
--   server, an app needs both the IP address and port number.
psIPAddress :: Lens' PlayerSession (Maybe Text)

-- | Unique identifier for the game session that the player session is
--   connected to.
psGameSessionId :: Lens' PlayerSession (Maybe Text)

-- | Time stamp indicating when this data object was terminated. Format is
--   a number expressed in Unix time as milliseconds (for example
--   "1469498468.057").
psTerminationTime :: Lens' PlayerSession (Maybe UTCTime)

-- | Unique identifier for a player session.
psPlayerSessionId :: Lens' PlayerSession (Maybe Text)

-- | Unique identifier for a fleet that the player's game session is
--   running on.
psFleetId :: Lens' PlayerSession (Maybe Text)

-- | Developer-defined information related to a player. Amazon GameLift
--   does not use this data, so it can be formatted as needed for use in
--   the game.
psPlayerData :: Lens' PlayerSession (Maybe Text)

-- | Unique identifier for a player that is associated with this player
--   session.
psPlayerId :: Lens' PlayerSession (Maybe Text)

-- | Port number for the game session. To connect to a Amazon GameLift
--   server process, an app needs both the IP address and port number.
psPort :: Lens' PlayerSession (Maybe Natural)

-- | Policy that limits the number of game sessions a player can create on
--   the same fleet. This optional policy gives game owners control over
--   how players can consume available game server resources. A resource
--   creation policy makes the following statement: "An individual player
--   can create a maximum number of new game sessions within a specified
--   time period".
--   
--   The policy is evaluated when a player tries to create a new game
--   session. For example, with a policy of 10 new game sessions and a time
--   period of 60 minutes, on receiving a <tt>CreateGameSession</tt>
--   request, Amazon GameLift checks that the player (identified by
--   <tt>CreatorId</tt> ) has created fewer than 10 game sessions in the
--   past 60 minutes.
--   
--   <i>See:</i> <a>resourceCreationLimitPolicy</a> smart constructor.
data ResourceCreationLimitPolicy

-- | Creates a value of <a>ResourceCreationLimitPolicy</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rclpNewGameSessionsPerCreator</a> - Maximum number of game
--   sessions that an individual can create during the policy period.</li>
--   <li><a>rclpPolicyPeriodInMinutes</a> - Time span used in evaluating
--   the resource creation limit policy.</li>
--   </ul>
resourceCreationLimitPolicy :: ResourceCreationLimitPolicy

-- | Maximum number of game sessions that an individual can create during
--   the policy period.
rclpNewGameSessionsPerCreator :: Lens' ResourceCreationLimitPolicy (Maybe Natural)

-- | Time span used in evaluating the resource creation limit policy.
rclpPolicyPeriodInMinutes :: Lens' ResourceCreationLimitPolicy (Maybe Natural)

-- | Routing configuration for a fleet alias.
--   
--   Fleet-related operations include:
--   
--   <ul>
--   <li><tt>CreateFleet</tt></li>
--   <li><tt>ListFleets</tt></li>
--   <li><tt>DeleteFleet</tt></li>
--   <li>Describe fleets:</li>
--   <li><tt>DescribeFleetAttributes</tt></li>
--   <li><tt>DescribeFleetCapacity</tt></li>
--   <li><tt>DescribeFleetPortSettings</tt></li>
--   <li><tt>DescribeFleetUtilization</tt></li>
--   <li><tt>DescribeRuntimeConfiguration</tt></li>
--   <li><tt>DescribeEC2InstanceLimits</tt></li>
--   <li><tt>DescribeFleetEvents</tt></li>
--   <li>Update fleets:</li>
--   <li><tt>UpdateFleetAttributes</tt></li>
--   <li><tt>UpdateFleetCapacity</tt></li>
--   <li><tt>UpdateFleetPortSettings</tt></li>
--   <li><tt>UpdateRuntimeConfiguration</tt></li>
--   <li>Manage fleet actions:</li>
--   <li><tt>StartFleetActions</tt></li>
--   <li><tt>StopFleetActions</tt></li>
--   </ul>
--   
--   <i>See:</i> <a>routingStrategy</a> smart constructor.
data RoutingStrategy

-- | Creates a value of <a>RoutingStrategy</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rsType</a> - Type of routing strategy. Possible routing types
--   include the following: * <b>SIMPLE</b> -- The alias resolves to one
--   specific fleet. Use this type when routing to active fleets. *
--   <b>TERMINAL</b> -- The alias does not resolve to a fleet but instead
--   can be used to display a message to the user. A terminal alias throws
--   a TerminalRoutingStrategyException with the <a>RoutingStrategy</a>
--   message embedded.</li>
--   <li><a>rsMessage</a> - Message text to be used with a terminal routing
--   strategy.</li>
--   <li><a>rsFleetId</a> - Unique identifier for a fleet that the alias
--   points to.</li>
--   </ul>
routingStrategy :: RoutingStrategy

-- | Type of routing strategy. Possible routing types include the
--   following: * <b>SIMPLE</b> -- The alias resolves to one specific
--   fleet. Use this type when routing to active fleets. * <b>TERMINAL</b>
--   -- The alias does not resolve to a fleet but instead can be used to
--   display a message to the user. A terminal alias throws a
--   TerminalRoutingStrategyException with the <a>RoutingStrategy</a>
--   message embedded.
rsType :: Lens' RoutingStrategy (Maybe RoutingStrategyType)

-- | Message text to be used with a terminal routing strategy.
rsMessage :: Lens' RoutingStrategy (Maybe Text)

-- | Unique identifier for a fleet that the alias points to.
rsFleetId :: Lens' RoutingStrategy (Maybe Text)

-- | A collection of server process configurations that describe what
--   processes to run on each instance in a fleet. All fleets must have a
--   run-time configuration. Each instance in the fleet launches the server
--   processes specified in the run-time configuration and launches new
--   ones as existing processes end. Each instance regularly checks for an
--   updated run-time configuration and follows the new instructions.
--   
--   The run-time configuration enables the instances in a fleet to run
--   multiple processes simultaneously. Potential scenarios are as follows:
--   (1) Run multiple processes of a single game server executable to
--   maximize usage of your hosting resources. (2) Run one or more
--   processes of different build executables, such as your game server
--   executable and a related program, or two or more different versions of
--   a game server. (3) Run multiple processes of a single game server but
--   with different launch parameters, for example to run one process on
--   each instance in debug mode.
--   
--   A Amazon GameLift instance is limited to 50 processes running
--   simultaneously. A run-time configuration must specify fewer than this
--   limit. To calculate the total number of processes specified in a
--   run-time configuration, add the values of the
--   <tt>ConcurrentExecutions</tt> parameter for each
--   <tt><a>ServerProcess</a> </tt> object in the run-time configuration.
--   
--   Fleet-related operations include:
--   
--   <ul>
--   <li><tt>CreateFleet</tt></li>
--   <li><tt>ListFleets</tt></li>
--   <li><tt>DeleteFleet</tt></li>
--   <li>Describe fleets:</li>
--   <li><tt>DescribeFleetAttributes</tt></li>
--   <li><tt>DescribeFleetCapacity</tt></li>
--   <li><tt>DescribeFleetPortSettings</tt></li>
--   <li><tt>DescribeFleetUtilization</tt></li>
--   <li><tt>DescribeRuntimeConfiguration</tt></li>
--   <li><tt>DescribeEC2InstanceLimits</tt></li>
--   <li><tt>DescribeFleetEvents</tt></li>
--   <li>Update fleets:</li>
--   <li><tt>UpdateFleetAttributes</tt></li>
--   <li><tt>UpdateFleetCapacity</tt></li>
--   <li><tt>UpdateFleetPortSettings</tt></li>
--   <li><tt>UpdateRuntimeConfiguration</tt></li>
--   <li>Manage fleet actions:</li>
--   <li><tt>StartFleetActions</tt></li>
--   <li><tt>StopFleetActions</tt></li>
--   </ul>
--   
--   <i>See:</i> <a>runtimeConfiguration</a> smart constructor.
data RuntimeConfiguration

-- | Creates a value of <a>RuntimeConfiguration</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rcGameSessionActivationTimeoutSeconds</a> - Maximum amount of
--   time (in seconds) that a game session can remain in status
--   <tt>ACTIVATING</tt> . If the game session is not active before the
--   timeout, activation is terminated and the game session status is
--   changed to <tt>TERMINATED</tt> .</li>
--   <li><a>rcServerProcesses</a> - Collection of server process
--   configurations that describe which server processes to run on each
--   instance in a fleet.</li>
--   <li><a>rcMaxConcurrentGameSessionActivations</a> - Maximum number of
--   game sessions with status <tt>ACTIVATING</tt> to allow on an instance
--   simultaneously. This setting limits the amount of instance resources
--   that can be used for new game activations at any one time.</li>
--   </ul>
runtimeConfiguration :: RuntimeConfiguration

-- | Maximum amount of time (in seconds) that a game session can remain in
--   status <tt>ACTIVATING</tt> . If the game session is not active before
--   the timeout, activation is terminated and the game session status is
--   changed to <tt>TERMINATED</tt> .
rcGameSessionActivationTimeoutSeconds :: Lens' RuntimeConfiguration (Maybe Natural)

-- | Collection of server process configurations that describe which server
--   processes to run on each instance in a fleet.
rcServerProcesses :: Lens' RuntimeConfiguration (Maybe (NonEmpty ServerProcess))

-- | Maximum number of game sessions with status <tt>ACTIVATING</tt> to
--   allow on an instance simultaneously. This setting limits the amount of
--   instance resources that can be used for new game activations at any
--   one time.
rcMaxConcurrentGameSessionActivations :: Lens' RuntimeConfiguration (Maybe Natural)

-- | Location in Amazon Simple Storage Service (Amazon S3) where build
--   files can be stored for access by Amazon GameLift. This location is
--   specified in a <tt>CreateBuild</tt> request. For more details, see the
--   <a>Create a Build with Files in Amazon S3</a> .
--   
--   <i>See:</i> <a>s3Location</a> smart constructor.
data S3Location

-- | Creates a value of <a>S3Location</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>slBucket</a> - Amazon S3 bucket identifier. This is the name of
--   your S3 bucket.</li>
--   <li><a>slKey</a> - Name of the zip file containing your build
--   files.</li>
--   <li><a>slRoleARN</a> - Amazon Resource Name (<a>ARN</a> ) for the
--   access role that allows Amazon GameLift to access your S3 bucket.</li>
--   </ul>
s3Location :: S3Location

-- | Amazon S3 bucket identifier. This is the name of your S3 bucket.
slBucket :: Lens' S3Location (Maybe Text)

-- | Name of the zip file containing your build files.
slKey :: Lens' S3Location (Maybe Text)

-- | Amazon Resource Name (<a>ARN</a> ) for the access role that allows
--   Amazon GameLift to access your S3 bucket.
slRoleARN :: Lens' S3Location (Maybe Text)

-- | Rule that controls how a fleet is scaled. Scaling policies are
--   uniquely identified by the combination of name and fleet ID.
--   
--   Operations related to fleet capacity scaling include:
--   
--   <ul>
--   <li><tt>DescribeFleetCapacity</tt></li>
--   <li><tt>UpdateFleetCapacity</tt></li>
--   <li><tt>DescribeEC2InstanceLimits</tt></li>
--   <li>Manage scaling policies:</li>
--   <li><tt>PutScalingPolicy</tt> (auto-scaling)</li>
--   <li><tt>DescribeScalingPolicies</tt> (auto-scaling)</li>
--   <li><tt>DeleteScalingPolicy</tt> (auto-scaling)</li>
--   <li>Manage fleet actions:</li>
--   <li><tt>StartFleetActions</tt></li>
--   <li><tt>StopFleetActions</tt></li>
--   </ul>
--   
--   <i>See:</i> <a>scalingPolicy</a> smart constructor.
data ScalingPolicy

-- | Creates a value of <a>ScalingPolicy</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>spStatus</a> - Current status of the scaling policy. The
--   scaling policy can be in force only when in an <tt>ACTIVE</tt> status.
--   Scaling policies can be suspended for individual fleets (see
--   <tt>StopFleetActions</tt> ; if suspended for a fleet, the policy
--   status does not change. View a fleet's stopped actions by calling
--   <tt>DescribeFleetCapacity</tt> . * <b>ACTIVE</b> -- The scaling policy
--   can be used for auto-scaling a fleet. * <b>UPDATE_REQUESTED</b> -- A
--   request to update the scaling policy has been received. *
--   <b>UPDATING</b> -- A change is being made to the scaling policy. *
--   <b>DELETE_REQUESTED</b> -- A request to delete the scaling policy has
--   been received. * <b>DELETING</b> -- The scaling policy is being
--   deleted. * <b>DELETED</b> -- The scaling policy has been deleted. *
--   <b>ERROR</b> -- An error occurred in creating the policy. It should be
--   removed and recreated.</li>
--   <li><a>spScalingAdjustmentType</a> - Type of adjustment to make to a
--   fleet's instance count (see <a>FleetCapacity</a> ): *
--   <b>ChangeInCapacity</b> -- add (or subtract) the scaling adjustment
--   value from the current instance count. Positive values scale up while
--   negative values scale down. * <b>ExactCapacity</b> -- set the instance
--   count to the scaling adjustment value. *
--   <b>PercentChangeInCapacity</b> -- increase or reduce the current
--   instance count by the scaling adjustment, read as a percentage.
--   Positive values scale up while negative values scale down.</li>
--   <li><a>spEvaluationPeriods</a> - Length of time (in minutes) the
--   metric must be at or beyond the threshold before a scaling event is
--   triggered.</li>
--   <li><a>spPolicyType</a> - Type of scaling policy to create. For a
--   target-based policy, set the parameter <i>MetricName</i> to
--   <a>PercentAvailableGameSessions</a> and specify a
--   <i>TargetConfiguration</i> . For a rule-based policy set the following
--   parameters: <i>MetricName</i> , <i>ComparisonOperator</i> ,
--   <i>Threshold</i> , <i>EvaluationPeriods</i> ,
--   <i>ScalingAdjustmentType</i> , and <i>ScalingAdjustment</i> .</li>
--   <li><a>spMetricName</a> - Name of the Amazon GameLift-defined metric
--   that is used to trigger a scaling adjustment. For detailed
--   descriptions of fleet metrics, see <a>Monitor Amazon GameLift with
--   Amazon CloudWatch</a> . * <b>ActivatingGameSessions</b> -- Game
--   sessions in the process of being created. * <b>ActiveGameSessions</b>
--   -- Game sessions that are currently running. * <b>ActiveInstances</b>
--   -- Fleet instances that are currently running at least one game
--   session. * <b>AvailableGameSessions</b> -- Additional game sessions
--   that fleet could host simultaneously, given current capacity. *
--   <b>AvailablePlayerSessions</b> -- Empty player slots in currently
--   active game sessions. This includes game sessions that are not
--   currently accepting players. Reserved player slots are not included. *
--   <b>CurrentPlayerSessions</b> -- Player slots in active game sessions
--   that are being used by a player or are reserved for a player. *
--   <b>IdleInstances</b> -- Active instances that are currently hosting
--   zero game sessions. * <b>PercentAvailableGameSessions</b> -- Unused
--   percentage of the total number of game sessions that a fleet could
--   host simultaneously, given current capacity. Use this metric for a
--   target-based scaling policy. * <b>PercentIdleInstances</b> --
--   Percentage of the total number of active instances that are hosting
--   zero game sessions. * <b>QueueDepth</b> -- Pending game session
--   placement requests, in any queue, where the current fleet is the
--   top-priority destination. * <b>WaitTime</b> -- Current wait time for
--   pending game session placement requests, in any queue, where the
--   current fleet is the top-priority destination.</li>
--   <li><a>spComparisonOperator</a> - Comparison operator to use when
--   measuring a metric against the threshold value.</li>
--   <li><a>spName</a> - Descriptive label that is associated with a
--   scaling policy. Policy names do not need to be unique.</li>
--   <li><a>spThreshold</a> - Metric value used to trigger a scaling
--   event.</li>
--   <li><a>spScalingAdjustment</a> - Amount of adjustment to make, based
--   on the scaling adjustment type.</li>
--   <li><a>spFleetId</a> - Unique identifier for a fleet that is
--   associated with this scaling policy.</li>
--   <li><a>spTargetConfiguration</a> - Object that contains settings for a
--   target-based scaling policy.</li>
--   </ul>
scalingPolicy :: ScalingPolicy

-- | Current status of the scaling policy. The scaling policy can be in
--   force only when in an <tt>ACTIVE</tt> status. Scaling policies can be
--   suspended for individual fleets (see <tt>StopFleetActions</tt> ; if
--   suspended for a fleet, the policy status does not change. View a
--   fleet's stopped actions by calling <tt>DescribeFleetCapacity</tt> . *
--   <b>ACTIVE</b> -- The scaling policy can be used for auto-scaling a
--   fleet. * <b>UPDATE_REQUESTED</b> -- A request to update the scaling
--   policy has been received. * <b>UPDATING</b> -- A change is being made
--   to the scaling policy. * <b>DELETE_REQUESTED</b> -- A request to
--   delete the scaling policy has been received. * <b>DELETING</b> -- The
--   scaling policy is being deleted. * <b>DELETED</b> -- The scaling
--   policy has been deleted. * <b>ERROR</b> -- An error occurred in
--   creating the policy. It should be removed and recreated.
spStatus :: Lens' ScalingPolicy (Maybe ScalingStatusType)

-- | Type of adjustment to make to a fleet's instance count (see
--   <a>FleetCapacity</a> ): * <b>ChangeInCapacity</b> -- add (or subtract)
--   the scaling adjustment value from the current instance count. Positive
--   values scale up while negative values scale down. *
--   <b>ExactCapacity</b> -- set the instance count to the scaling
--   adjustment value. * <b>PercentChangeInCapacity</b> -- increase or
--   reduce the current instance count by the scaling adjustment, read as a
--   percentage. Positive values scale up while negative values scale down.
spScalingAdjustmentType :: Lens' ScalingPolicy (Maybe ScalingAdjustmentType)

-- | Length of time (in minutes) the metric must be at or beyond the
--   threshold before a scaling event is triggered.
spEvaluationPeriods :: Lens' ScalingPolicy (Maybe Natural)

-- | Type of scaling policy to create. For a target-based policy, set the
--   parameter <i>MetricName</i> to <a>PercentAvailableGameSessions</a> and
--   specify a <i>TargetConfiguration</i> . For a rule-based policy set the
--   following parameters: <i>MetricName</i> , <i>ComparisonOperator</i> ,
--   <i>Threshold</i> , <i>EvaluationPeriods</i> ,
--   <i>ScalingAdjustmentType</i> , and <i>ScalingAdjustment</i> .
spPolicyType :: Lens' ScalingPolicy (Maybe PolicyType)

-- | Name of the Amazon GameLift-defined metric that is used to trigger a
--   scaling adjustment. For detailed descriptions of fleet metrics, see
--   <a>Monitor Amazon GameLift with Amazon CloudWatch</a> . *
--   <b>ActivatingGameSessions</b> -- Game sessions in the process of being
--   created. * <b>ActiveGameSessions</b> -- Game sessions that are
--   currently running. * <b>ActiveInstances</b> -- Fleet instances that
--   are currently running at least one game session. *
--   <b>AvailableGameSessions</b> -- Additional game sessions that fleet
--   could host simultaneously, given current capacity. *
--   <b>AvailablePlayerSessions</b> -- Empty player slots in currently
--   active game sessions. This includes game sessions that are not
--   currently accepting players. Reserved player slots are not included. *
--   <b>CurrentPlayerSessions</b> -- Player slots in active game sessions
--   that are being used by a player or are reserved for a player. *
--   <b>IdleInstances</b> -- Active instances that are currently hosting
--   zero game sessions. * <b>PercentAvailableGameSessions</b> -- Unused
--   percentage of the total number of game sessions that a fleet could
--   host simultaneously, given current capacity. Use this metric for a
--   target-based scaling policy. * <b>PercentIdleInstances</b> --
--   Percentage of the total number of active instances that are hosting
--   zero game sessions. * <b>QueueDepth</b> -- Pending game session
--   placement requests, in any queue, where the current fleet is the
--   top-priority destination. * <b>WaitTime</b> -- Current wait time for
--   pending game session placement requests, in any queue, where the
--   current fleet is the top-priority destination.
spMetricName :: Lens' ScalingPolicy (Maybe MetricName)

-- | Comparison operator to use when measuring a metric against the
--   threshold value.
spComparisonOperator :: Lens' ScalingPolicy (Maybe ComparisonOperatorType)

-- | Descriptive label that is associated with a scaling policy. Policy
--   names do not need to be unique.
spName :: Lens' ScalingPolicy (Maybe Text)

-- | Metric value used to trigger a scaling event.
spThreshold :: Lens' ScalingPolicy (Maybe Double)

-- | Amount of adjustment to make, based on the scaling adjustment type.
spScalingAdjustment :: Lens' ScalingPolicy (Maybe Int)

-- | Unique identifier for a fleet that is associated with this scaling
--   policy.
spFleetId :: Lens' ScalingPolicy (Maybe Text)

-- | Object that contains settings for a target-based scaling policy.
spTargetConfiguration :: Lens' ScalingPolicy (Maybe TargetConfiguration)

-- | A set of instructions for launching server processes on each instance
--   in a fleet. Each instruction set identifies the location of the server
--   executable, optional launch parameters, and the number of server
--   processes with this configuration to maintain concurrently on the
--   instance. Server process configurations make up a fleet's
--   <tt><a>RuntimeConfiguration</a> </tt> .
--   
--   <i>See:</i> <a>serverProcess</a> smart constructor.
data ServerProcess

-- | Creates a value of <a>ServerProcess</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>spParameters</a> - Optional list of parameters to pass to the
--   server executable on launch.</li>
--   <li><a>spLaunchPath</a> - Location of the server executable in a game
--   build. All game builds are installed on instances at the root : for
--   Windows instances <tt>C:game</tt> , and for Linux instances
--   <tt><i>local</i>game</tt> . A Windows game build with an executable
--   file located at <tt>MyGamelatestserver.exe</tt> must have a launch
--   path of "<tt>C:gameMyGamelatestserver.exe</tt> ". A Linux game build
--   with an executable file located at
--   <tt>MyGame<i>latest</i>server.exe</tt> must have a launch path of
--   "<tt><i>local</i>game<i>MyGame</i>latest/server.exe</tt> ".</li>
--   <li><a>spConcurrentExecutions</a> - Number of server processes using
--   this configuration to run concurrently on an instance.</li>
--   </ul>
serverProcess :: Text -> Natural -> ServerProcess

-- | Optional list of parameters to pass to the server executable on
--   launch.
spParameters :: Lens' ServerProcess (Maybe Text)

-- | Location of the server executable in a game build. All game builds are
--   installed on instances at the root : for Windows instances
--   <tt>C:game</tt> , and for Linux instances <tt><i>local</i>game</tt> .
--   A Windows game build with an executable file located at
--   <tt>MyGamelatestserver.exe</tt> must have a launch path of
--   "<tt>C:gameMyGamelatestserver.exe</tt> ". A Linux game build with an
--   executable file located at <tt>MyGame<i>latest</i>server.exe</tt> must
--   have a launch path of
--   "<tt><i>local</i>game<i>MyGame</i>latest/server.exe</tt> ".
spLaunchPath :: Lens' ServerProcess Text

-- | Number of server processes using this configuration to run
--   concurrently on an instance.
spConcurrentExecutions :: Lens' ServerProcess Natural

-- | Settings for a target-based scaling policy (see <a>ScalingPolicy</a> .
--   A target-based policy tracks a particular fleet metric specifies a
--   target value for the metric. As player usage changes, the policy
--   triggers Amazon GameLift to adjust capacity so that the metric returns
--   to the target value. The target configuration specifies settings as
--   needed for the target based policy, including the target value.
--   
--   Operations related to fleet capacity scaling include:
--   
--   <ul>
--   <li><tt>DescribeFleetCapacity</tt></li>
--   <li><tt>UpdateFleetCapacity</tt></li>
--   <li><tt>DescribeEC2InstanceLimits</tt></li>
--   <li>Manage scaling policies:</li>
--   <li><tt>PutScalingPolicy</tt> (auto-scaling)</li>
--   <li><tt>DescribeScalingPolicies</tt> (auto-scaling)</li>
--   <li><tt>DeleteScalingPolicy</tt> (auto-scaling)</li>
--   <li>Manage fleet actions:</li>
--   <li><tt>StartFleetActions</tt></li>
--   <li><tt>StopFleetActions</tt></li>
--   </ul>
--   
--   <i>See:</i> <a>targetConfiguration</a> smart constructor.
data TargetConfiguration

-- | Creates a value of <a>TargetConfiguration</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tcTargetValue</a> - Desired value to use with a target-based
--   scaling policy. The value must be relevant for whatever metric the
--   scaling policy is using. For example, in a policy using the metric
--   PercentAvailableGameSessions, the target value should be the preferred
--   size of the fleet's buffer (the percent of capacity that should be
--   idle and ready for new game sessions).</li>
--   </ul>
targetConfiguration :: Double -> TargetConfiguration

-- | Desired value to use with a target-based scaling policy. The value
--   must be relevant for whatever metric the scaling policy is using. For
--   example, in a policy using the metric PercentAvailableGameSessions,
--   the target value should be the preferred size of the fleet's buffer
--   (the percent of capacity that should be idle and ready for new game
--   sessions).
tcTargetValue :: Lens' TargetConfiguration Double

-- | Represents an authorization for a VPC peering connection between the
--   VPC for an Amazon GameLift fleet and another VPC on an account you
--   have access to. This authorization must exist and be valid for the
--   peering connection to be established. Authorizations are valid for 24
--   hours after they are issued.
--   
--   VPC peering connection operations include:
--   
--   <ul>
--   <li><tt>CreateVpcPeeringAuthorization</tt></li>
--   <li><tt>DescribeVpcPeeringAuthorizations</tt></li>
--   <li><tt>DeleteVpcPeeringAuthorization</tt></li>
--   <li><tt>CreateVpcPeeringConnection</tt></li>
--   <li><tt>DescribeVpcPeeringConnections</tt></li>
--   <li><tt>DeleteVpcPeeringConnection</tt></li>
--   </ul>
--   
--   <i>See:</i> <a>vpcPeeringAuthorization</a> smart constructor.
data VPCPeeringAuthorization

-- | Creates a value of <a>VPCPeeringAuthorization</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vpaCreationTime</a> - Time stamp indicating when this
--   authorization was issued. Format is a number expressed in Unix time as
--   milliseconds (for example "1469498468.057").</li>
--   <li><a>vpaPeerVPCId</a> - Unique identifier for a VPC with resources
--   to be accessed by your Amazon GameLift fleet. The VPC must be in the
--   same region where your fleet is deployed. To get VPC information,
--   including IDs, use the Virtual Private Cloud service tools, including
--   the VPC Dashboard in the AWS Management Console.</li>
--   <li><a>vpaPeerVPCAWSAccountId</a> -</li>
--   <li><a>vpaGameLiftAWSAccountId</a> - Unique identifier for the AWS
--   account that you use to manage your Amazon GameLift fleet. You can
--   find your Account ID in the AWS Management Console under account
--   settings.</li>
--   <li><a>vpaExpirationTime</a> - Time stamp indicating when this
--   authorization expires (24 hours after issuance). Format is a number
--   expressed in Unix time as milliseconds (for example
--   "1469498468.057").</li>
--   </ul>
vpcPeeringAuthorization :: VPCPeeringAuthorization

-- | Time stamp indicating when this authorization was issued. Format is a
--   number expressed in Unix time as milliseconds (for example
--   "1469498468.057").
vpaCreationTime :: Lens' VPCPeeringAuthorization (Maybe UTCTime)

-- | Unique identifier for a VPC with resources to be accessed by your
--   Amazon GameLift fleet. The VPC must be in the same region where your
--   fleet is deployed. To get VPC information, including IDs, use the
--   Virtual Private Cloud service tools, including the VPC Dashboard in
--   the AWS Management Console.
vpaPeerVPCId :: Lens' VPCPeeringAuthorization (Maybe Text)

vpaPeerVPCAWSAccountId :: Lens' VPCPeeringAuthorization (Maybe Text)

-- | Unique identifier for the AWS account that you use to manage your
--   Amazon GameLift fleet. You can find your Account ID in the AWS
--   Management Console under account settings.
vpaGameLiftAWSAccountId :: Lens' VPCPeeringAuthorization (Maybe Text)

-- | Time stamp indicating when this authorization expires (24 hours after
--   issuance). Format is a number expressed in Unix time as milliseconds
--   (for example "1469498468.057").
vpaExpirationTime :: Lens' VPCPeeringAuthorization (Maybe UTCTime)

-- | Represents a peering connection between a VPC on one of your AWS
--   accounts and the VPC for your Amazon GameLift fleets. This record may
--   be for an active peering connection or a pending connection that has
--   not yet been established.
--   
--   VPC peering connection operations include:
--   
--   <ul>
--   <li><tt>CreateVpcPeeringAuthorization</tt></li>
--   <li><tt>DescribeVpcPeeringAuthorizations</tt></li>
--   <li><tt>DeleteVpcPeeringAuthorization</tt></li>
--   <li><tt>CreateVpcPeeringConnection</tt></li>
--   <li><tt>DescribeVpcPeeringConnections</tt></li>
--   <li><tt>DeleteVpcPeeringConnection</tt></li>
--   </ul>
--   
--   <i>See:</i> <a>vpcPeeringConnection</a> smart constructor.
data VPCPeeringConnection

-- | Creates a value of <a>VPCPeeringConnection</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vpcVPCPeeringConnectionId</a> - Unique identifier that is
--   automatically assigned to the connection record. This ID is referenced
--   in VPC peering connection events, and is used when deleting a
--   connection with <tt>DeleteVpcPeeringConnection</tt> .</li>
--   <li><a>vpcStatus</a> - Object that contains status information about
--   the connection. Status indicates if a connection is pending,
--   successful, or failed.</li>
--   <li><a>vpcPeerVPCId</a> - Unique identifier for a VPC with resources
--   to be accessed by your Amazon GameLift fleet. The VPC must be in the
--   same region where your fleet is deployed. To get VPC information,
--   including IDs, use the Virtual Private Cloud service tools, including
--   the VPC Dashboard in the AWS Management Console.</li>
--   <li><a>vpcIPV4CidrBlock</a> - CIDR block of IPv4 addresses assigned to
--   the VPC peering connection for the GameLift VPC. The peered VPC also
--   has an IPv4 CIDR block associated with it; these blocks cannot overlap
--   or the peering connection cannot be created.</li>
--   <li><a>vpcGameLiftVPCId</a> - Unique identifier for the VPC that
--   contains the Amazon GameLift fleet for this connection. This VPC is
--   managed by Amazon GameLift and does not appear in your AWS
--   account.</li>
--   <li><a>vpcFleetId</a> - Unique identifier for a fleet. This ID
--   determines the ID of the Amazon GameLift VPC for your fleet.</li>
--   </ul>
vpcPeeringConnection :: VPCPeeringConnection

-- | Unique identifier that is automatically assigned to the connection
--   record. This ID is referenced in VPC peering connection events, and is
--   used when deleting a connection with
--   <tt>DeleteVpcPeeringConnection</tt> .
vpcVPCPeeringConnectionId :: Lens' VPCPeeringConnection (Maybe Text)

-- | Object that contains status information about the connection. Status
--   indicates if a connection is pending, successful, or failed.
vpcStatus :: Lens' VPCPeeringConnection (Maybe VPCPeeringConnectionStatus)

-- | Unique identifier for a VPC with resources to be accessed by your
--   Amazon GameLift fleet. The VPC must be in the same region where your
--   fleet is deployed. To get VPC information, including IDs, use the
--   Virtual Private Cloud service tools, including the VPC Dashboard in
--   the AWS Management Console.
vpcPeerVPCId :: Lens' VPCPeeringConnection (Maybe Text)

-- | CIDR block of IPv4 addresses assigned to the VPC peering connection
--   for the GameLift VPC. The peered VPC also has an IPv4 CIDR block
--   associated with it; these blocks cannot overlap or the peering
--   connection cannot be created.
vpcIPV4CidrBlock :: Lens' VPCPeeringConnection (Maybe Text)

-- | Unique identifier for the VPC that contains the Amazon GameLift fleet
--   for this connection. This VPC is managed by Amazon GameLift and does
--   not appear in your AWS account.
vpcGameLiftVPCId :: Lens' VPCPeeringConnection (Maybe Text)

-- | Unique identifier for a fleet. This ID determines the ID of the Amazon
--   GameLift VPC for your fleet.
vpcFleetId :: Lens' VPCPeeringConnection (Maybe Text)

-- | Represents status information for a VPC peering connection. Status is
--   associated with a <tt>VpcPeeringConnection</tt> object. Status codes
--   and messages are provided from EC2 (see
--   <a>VpcPeeringConnectionStateReason</a> ). Connection status
--   information is also communicated as a fleet <a>Event</a> .
--   
--   <i>See:</i> <a>vpcPeeringConnectionStatus</a> smart constructor.
data VPCPeeringConnectionStatus

-- | Creates a value of <a>VPCPeeringConnectionStatus</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vpcsCode</a> - Code indicating the status of a VPC peering
--   connection.</li>
--   <li><a>vpcsMessage</a> - Additional messaging associated with the
--   connection status.</li>
--   </ul>
vpcPeeringConnectionStatus :: VPCPeeringConnectionStatus

-- | Code indicating the status of a VPC peering connection.
vpcsCode :: Lens' VPCPeeringConnectionStatus (Maybe Text)

-- | Additional messaging associated with the connection status.
vpcsMessage :: Lens' VPCPeeringConnectionStatus (Maybe Text)


-- | Cancels a matchmaking ticket that is currently being processed. To
--   stop the matchmaking operation, specify the ticket ID. If successful,
--   work on the ticket is stopped, and the ticket status is changed to
--   <tt>CANCELLED</tt> .
--   
--   Matchmaking-related operations include:
--   
--   <ul>
--   <li><tt>StartMatchmaking</tt></li>
--   <li><tt>DescribeMatchmaking</tt></li>
--   <li><a>StopMatchmaking</a></li>
--   <li><tt>AcceptMatch</tt></li>
--   <li><tt>StartMatchBackfill</tt></li>
--   </ul>
module Network.AWS.GameLift.StopMatchmaking

-- | Creates a value of <a>StopMatchmaking</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>smTicketId</a> - Unique identifier for a matchmaking
--   ticket.</li>
--   </ul>
stopMatchmaking :: Text -> StopMatchmaking

-- | Represents the input for a request action.
--   
--   <i>See:</i> <a>stopMatchmaking</a> smart constructor.
data StopMatchmaking

-- | Unique identifier for a matchmaking ticket.
smTicketId :: Lens' StopMatchmaking Text

-- | Creates a value of <a>StopMatchmakingResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>smrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
stopMatchmakingResponse :: Int -> StopMatchmakingResponse

-- | <i>See:</i> <a>stopMatchmakingResponse</a> smart constructor.
data StopMatchmakingResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
smrsResponseStatus :: Lens' StopMatchmakingResponse Int
instance GHC.Generics.Generic Network.AWS.GameLift.StopMatchmaking.StopMatchmakingResponse
instance Data.Data.Data Network.AWS.GameLift.StopMatchmaking.StopMatchmakingResponse
instance GHC.Show.Show Network.AWS.GameLift.StopMatchmaking.StopMatchmakingResponse
instance GHC.Read.Read Network.AWS.GameLift.StopMatchmaking.StopMatchmakingResponse
instance GHC.Classes.Eq Network.AWS.GameLift.StopMatchmaking.StopMatchmakingResponse
instance GHC.Generics.Generic Network.AWS.GameLift.StopMatchmaking.StopMatchmaking
instance Data.Data.Data Network.AWS.GameLift.StopMatchmaking.StopMatchmaking
instance GHC.Show.Show Network.AWS.GameLift.StopMatchmaking.StopMatchmaking
instance GHC.Read.Read Network.AWS.GameLift.StopMatchmaking.StopMatchmaking
instance GHC.Classes.Eq Network.AWS.GameLift.StopMatchmaking.StopMatchmaking
instance Network.AWS.Types.AWSRequest Network.AWS.GameLift.StopMatchmaking.StopMatchmaking
instance Control.DeepSeq.NFData Network.AWS.GameLift.StopMatchmaking.StopMatchmakingResponse
instance Data.Hashable.Class.Hashable Network.AWS.GameLift.StopMatchmaking.StopMatchmaking
instance Control.DeepSeq.NFData Network.AWS.GameLift.StopMatchmaking.StopMatchmaking
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.GameLift.StopMatchmaking.StopMatchmaking
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.GameLift.StopMatchmaking.StopMatchmaking
instance Network.AWS.Data.Path.ToPath Network.AWS.GameLift.StopMatchmaking.StopMatchmaking
instance Network.AWS.Data.Query.ToQuery Network.AWS.GameLift.StopMatchmaking.StopMatchmaking


-- | Cancels a game session placement that is in <tt>PENDING</tt> status.
--   To stop a placement, provide the placement ID values. If successful,
--   the placement is moved to <tt>CANCELLED</tt> status.
--   
--   Game-session-related operations include:
--   
--   <ul>
--   <li><tt>CreateGameSession</tt></li>
--   <li><tt>DescribeGameSessions</tt></li>
--   <li><tt>DescribeGameSessionDetails</tt></li>
--   <li><tt>SearchGameSessions</tt></li>
--   <li><tt>UpdateGameSession</tt></li>
--   <li><tt>GetGameSessionLogUrl</tt></li>
--   <li>Game session placements</li>
--   <li><tt>StartGameSessionPlacement</tt></li>
--   <li><tt>DescribeGameSessionPlacement</tt></li>
--   <li><a>StopGameSessionPlacement</a></li>
--   </ul>
module Network.AWS.GameLift.StopGameSessionPlacement

-- | Creates a value of <a>StopGameSessionPlacement</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sPlacementId</a> - Unique identifier for a game session
--   placement to cancel.</li>
--   </ul>
stopGameSessionPlacement :: Text -> StopGameSessionPlacement

-- | Represents the input for a request action.
--   
--   <i>See:</i> <a>stopGameSessionPlacement</a> smart constructor.
data StopGameSessionPlacement

-- | Unique identifier for a game session placement to cancel.
sPlacementId :: Lens' StopGameSessionPlacement Text

-- | Creates a value of <a>StopGameSessionPlacementResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>storsGameSessionPlacement</a> - Object that describes the
--   canceled game session placement, with <tt>CANCELLED</tt> status and an
--   end time stamp.</li>
--   <li><a>storsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
stopGameSessionPlacementResponse :: Int -> StopGameSessionPlacementResponse

-- | Represents the returned data in response to a request action.
--   
--   <i>See:</i> <a>stopGameSessionPlacementResponse</a> smart constructor.
data StopGameSessionPlacementResponse

-- | Object that describes the canceled game session placement, with
--   <tt>CANCELLED</tt> status and an end time stamp.
storsGameSessionPlacement :: Lens' StopGameSessionPlacementResponse (Maybe GameSessionPlacement)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
storsResponseStatus :: Lens' StopGameSessionPlacementResponse Int
instance GHC.Generics.Generic Network.AWS.GameLift.StopGameSessionPlacement.StopGameSessionPlacementResponse
instance Data.Data.Data Network.AWS.GameLift.StopGameSessionPlacement.StopGameSessionPlacementResponse
instance GHC.Show.Show Network.AWS.GameLift.StopGameSessionPlacement.StopGameSessionPlacementResponse
instance GHC.Read.Read Network.AWS.GameLift.StopGameSessionPlacement.StopGameSessionPlacementResponse
instance GHC.Classes.Eq Network.AWS.GameLift.StopGameSessionPlacement.StopGameSessionPlacementResponse
instance GHC.Generics.Generic Network.AWS.GameLift.StopGameSessionPlacement.StopGameSessionPlacement
instance Data.Data.Data Network.AWS.GameLift.StopGameSessionPlacement.StopGameSessionPlacement
instance GHC.Show.Show Network.AWS.GameLift.StopGameSessionPlacement.StopGameSessionPlacement
instance GHC.Read.Read Network.AWS.GameLift.StopGameSessionPlacement.StopGameSessionPlacement
instance GHC.Classes.Eq Network.AWS.GameLift.StopGameSessionPlacement.StopGameSessionPlacement
instance Network.AWS.Types.AWSRequest Network.AWS.GameLift.StopGameSessionPlacement.StopGameSessionPlacement
instance Control.DeepSeq.NFData Network.AWS.GameLift.StopGameSessionPlacement.StopGameSessionPlacementResponse
instance Data.Hashable.Class.Hashable Network.AWS.GameLift.StopGameSessionPlacement.StopGameSessionPlacement
instance Control.DeepSeq.NFData Network.AWS.GameLift.StopGameSessionPlacement.StopGameSessionPlacement
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.GameLift.StopGameSessionPlacement.StopGameSessionPlacement
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.GameLift.StopGameSessionPlacement.StopGameSessionPlacement
instance Network.AWS.Data.Path.ToPath Network.AWS.GameLift.StopGameSessionPlacement.StopGameSessionPlacement
instance Network.AWS.Data.Query.ToQuery Network.AWS.GameLift.StopGameSessionPlacement.StopGameSessionPlacement


-- | Suspends activity on a fleet. Currently, this operation is used to
--   stop a fleet's auto-scaling activity. It is used to temporarily stop
--   scaling events triggered by the fleet's scaling policies. The policies
--   can be retained and auto-scaling activity can be restarted using
--   <tt>StartFleetActions</tt> . You can view a fleet's stopped actions
--   using <tt>DescribeFleetAttributes</tt> .
--   
--   To stop fleet actions, specify the fleet ID and the type of actions to
--   suspend. When auto-scaling fleet actions are stopped, Amazon GameLift
--   no longer initiates scaling events except to maintain the fleet's
--   desired instances setting (<a>FleetCapacity</a> . Changes to the
--   fleet's capacity must be done manually using
--   <tt>UpdateFleetCapacity</tt> .
module Network.AWS.GameLift.StopFleetActions

-- | Creates a value of <a>StopFleetActions</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sFleetId</a> - Unique identifier for a fleet</li>
--   <li><a>sActions</a> - List of actions to suspend on the fleet.</li>
--   </ul>
stopFleetActions :: Text -> NonEmpty FleetAction -> StopFleetActions

-- | <i>See:</i> <a>stopFleetActions</a> smart constructor.
data StopFleetActions

-- | Unique identifier for a fleet
sFleetId :: Lens' StopFleetActions Text

-- | List of actions to suspend on the fleet.
sActions :: Lens' StopFleetActions (NonEmpty FleetAction)

-- | Creates a value of <a>StopFleetActionsResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sfasrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
stopFleetActionsResponse :: Int -> StopFleetActionsResponse

-- | <i>See:</i> <a>stopFleetActionsResponse</a> smart constructor.
data StopFleetActionsResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
sfasrsResponseStatus :: Lens' StopFleetActionsResponse Int
instance GHC.Generics.Generic Network.AWS.GameLift.StopFleetActions.StopFleetActionsResponse
instance Data.Data.Data Network.AWS.GameLift.StopFleetActions.StopFleetActionsResponse
instance GHC.Show.Show Network.AWS.GameLift.StopFleetActions.StopFleetActionsResponse
instance GHC.Read.Read Network.AWS.GameLift.StopFleetActions.StopFleetActionsResponse
instance GHC.Classes.Eq Network.AWS.GameLift.StopFleetActions.StopFleetActionsResponse
instance GHC.Generics.Generic Network.AWS.GameLift.StopFleetActions.StopFleetActions
instance Data.Data.Data Network.AWS.GameLift.StopFleetActions.StopFleetActions
instance GHC.Show.Show Network.AWS.GameLift.StopFleetActions.StopFleetActions
instance GHC.Read.Read Network.AWS.GameLift.StopFleetActions.StopFleetActions
instance GHC.Classes.Eq Network.AWS.GameLift.StopFleetActions.StopFleetActions
instance Network.AWS.Types.AWSRequest Network.AWS.GameLift.StopFleetActions.StopFleetActions
instance Control.DeepSeq.NFData Network.AWS.GameLift.StopFleetActions.StopFleetActionsResponse
instance Data.Hashable.Class.Hashable Network.AWS.GameLift.StopFleetActions.StopFleetActions
instance Control.DeepSeq.NFData Network.AWS.GameLift.StopFleetActions.StopFleetActions
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.GameLift.StopFleetActions.StopFleetActions
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.GameLift.StopFleetActions.StopFleetActions
instance Network.AWS.Data.Path.ToPath Network.AWS.GameLift.StopFleetActions.StopFleetActions
instance Network.AWS.Data.Query.ToQuery Network.AWS.GameLift.StopFleetActions.StopFleetActions


-- | Uses FlexMatch to create a game match for a group of players based on
--   custom matchmaking rules, and starts a new game for the matched
--   players. Each matchmaking request specifies the type of match to build
--   (team configuration, rules for an acceptable match, etc.). The request
--   also specifies the players to find a match for and where to host the
--   new game session for optimal performance. A matchmaking request might
--   start with a single player or a group of players who want to play
--   together. FlexMatch finds additional players as needed to fill the
--   match. Match type, rules, and the queue used to place a new game
--   session are defined in a <tt>MatchmakingConfiguration</tt> . For
--   complete information on setting up and using FlexMatch, see the topic
--   <a>Adding FlexMatch to Your Game</a> .
--   
--   To start matchmaking, provide a unique ticket ID, specify a
--   matchmaking configuration, and include the players to be matched. You
--   must also include a set of player attributes relevant for the
--   matchmaking configuration. If successful, a matchmaking ticket is
--   returned with status set to <tt>QUEUED</tt> . Track the status of the
--   ticket to respond as needed and acquire game session connection
--   information for successfully completed matches.
--   
--   <b>Tracking ticket status</b> -- A couple of options are available for
--   tracking the status of matchmaking requests:
--   
--   <ul>
--   <li>Polling -- Call <tt>DescribeMatchmaking</tt> . This operation
--   returns the full ticket object, including current status and (for
--   completed tickets) game session connection info. We recommend polling
--   no more than once every 10 seconds.</li>
--   <li>Notifications -- Get event notifications for changes in ticket
--   status using Amazon Simple Notification Service (SNS). Notifications
--   are easy to set up (see <tt>CreateMatchmakingConfiguration</tt> ) and
--   typically deliver match status changes faster and more efficiently
--   than polling. We recommend that you use polling to back up to
--   notifications (since delivery is not guaranteed) and call
--   <tt>DescribeMatchmaking</tt> only when notifications are not received
--   within 30 seconds.</li>
--   </ul>
--   
--   <b>Processing a matchmaking request</b> -- FlexMatch handles a
--   matchmaking request as follows:
--   
--   <ul>
--   <li>Your client code submits a <tt>StartMatchmaking</tt> request for
--   one or more players and tracks the status of the request ticket.</li>
--   <li>FlexMatch uses this ticket and others in process to build an
--   acceptable match. When a potential match is identified, all tickets in
--   the proposed match are advanced to the next status.</li>
--   <li>If the match requires player acceptance (set in the matchmaking
--   configuration), the tickets move into status
--   <tt>REQUIRES_ACCEPTANCE</tt> . This status triggers your client code
--   to solicit acceptance from all players in every ticket involved in the
--   match, and then call <tt>AcceptMatch</tt> for each player. If any
--   player rejects or fails to accept the match before a specified
--   timeout, the proposed match is dropped (see <tt>AcceptMatch</tt> for
--   more details).</li>
--   <li>Once a match is proposed and accepted, the matchmaking tickets
--   move into status <tt>PLACING</tt> . FlexMatch locates resources for a
--   new game session using the game session queue (set in the matchmaking
--   configuration) and creates the game session based on the match
--   data.</li>
--   <li>When the match is successfully placed, the matchmaking tickets
--   move into <tt>COMPLETED</tt> status. Connection information (including
--   game session endpoint and player session) is added to the matchmaking
--   tickets. Matched players can use the connection information to join
--   the game.</li>
--   </ul>
--   
--   Matchmaking-related operations include:
--   
--   <ul>
--   <li><a>StartMatchmaking</a></li>
--   <li><tt>DescribeMatchmaking</tt></li>
--   <li><tt>StopMatchmaking</tt></li>
--   <li><tt>AcceptMatch</tt></li>
--   <li><tt>StartMatchBackfill</tt></li>
--   </ul>
module Network.AWS.GameLift.StartMatchmaking

-- | Creates a value of <a>StartMatchmaking</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sTicketId</a> - Unique identifier for a matchmaking ticket. If
--   no ticket ID is specified here, Amazon GameLift will generate one in
--   the form of a UUID. Use this identifier to track the matchmaking
--   ticket status and retrieve match results.</li>
--   <li><a>sConfigurationName</a> - Name of the matchmaking configuration
--   to use for this request. Matchmaking configurations must exist in the
--   same region as this request.</li>
--   <li><a>sPlayers</a> - Information on each player to be matched. This
--   information must include a player ID, and may contain player
--   attributes and latency data to be used in the matchmaking process.
--   After a successful match, <tt>Player</tt> objects contain the name of
--   the team the player is assigned to.</li>
--   </ul>
startMatchmaking :: Text -> StartMatchmaking

-- | Represents the input for a request action.
--   
--   <i>See:</i> <a>startMatchmaking</a> smart constructor.
data StartMatchmaking

-- | Unique identifier for a matchmaking ticket. If no ticket ID is
--   specified here, Amazon GameLift will generate one in the form of a
--   UUID. Use this identifier to track the matchmaking ticket status and
--   retrieve match results.
sTicketId :: Lens' StartMatchmaking (Maybe Text)

-- | Name of the matchmaking configuration to use for this request.
--   Matchmaking configurations must exist in the same region as this
--   request.
sConfigurationName :: Lens' StartMatchmaking Text

-- | Information on each player to be matched. This information must
--   include a player ID, and may contain player attributes and latency
--   data to be used in the matchmaking process. After a successful match,
--   <tt>Player</tt> objects contain the name of the team the player is
--   assigned to.
sPlayers :: Lens' StartMatchmaking [Player]

-- | Creates a value of <a>StartMatchmakingResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>srsMatchmakingTicket</a> - Ticket representing the matchmaking
--   request. This object include the information included in the request,
--   ticket status, and match results as generated during the matchmaking
--   process.</li>
--   <li><a>srsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
startMatchmakingResponse :: Int -> StartMatchmakingResponse

-- | Represents the returned data in response to a request action.
--   
--   <i>See:</i> <a>startMatchmakingResponse</a> smart constructor.
data StartMatchmakingResponse

-- | Ticket representing the matchmaking request. This object include the
--   information included in the request, ticket status, and match results
--   as generated during the matchmaking process.
srsMatchmakingTicket :: Lens' StartMatchmakingResponse (Maybe MatchmakingTicket)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
srsResponseStatus :: Lens' StartMatchmakingResponse Int
instance GHC.Generics.Generic Network.AWS.GameLift.StartMatchmaking.StartMatchmakingResponse
instance Data.Data.Data Network.AWS.GameLift.StartMatchmaking.StartMatchmakingResponse
instance GHC.Show.Show Network.AWS.GameLift.StartMatchmaking.StartMatchmakingResponse
instance GHC.Read.Read Network.AWS.GameLift.StartMatchmaking.StartMatchmakingResponse
instance GHC.Classes.Eq Network.AWS.GameLift.StartMatchmaking.StartMatchmakingResponse
instance GHC.Generics.Generic Network.AWS.GameLift.StartMatchmaking.StartMatchmaking
instance Data.Data.Data Network.AWS.GameLift.StartMatchmaking.StartMatchmaking
instance GHC.Show.Show Network.AWS.GameLift.StartMatchmaking.StartMatchmaking
instance GHC.Read.Read Network.AWS.GameLift.StartMatchmaking.StartMatchmaking
instance GHC.Classes.Eq Network.AWS.GameLift.StartMatchmaking.StartMatchmaking
instance Network.AWS.Types.AWSRequest Network.AWS.GameLift.StartMatchmaking.StartMatchmaking
instance Control.DeepSeq.NFData Network.AWS.GameLift.StartMatchmaking.StartMatchmakingResponse
instance Data.Hashable.Class.Hashable Network.AWS.GameLift.StartMatchmaking.StartMatchmaking
instance Control.DeepSeq.NFData Network.AWS.GameLift.StartMatchmaking.StartMatchmaking
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.GameLift.StartMatchmaking.StartMatchmaking
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.GameLift.StartMatchmaking.StartMatchmaking
instance Network.AWS.Data.Path.ToPath Network.AWS.GameLift.StartMatchmaking.StartMatchmaking
instance Network.AWS.Data.Query.ToQuery Network.AWS.GameLift.StartMatchmaking.StartMatchmaking


-- | Finds new players to fill open slots in an existing game session. This
--   operation can be used to add players to matched games that start with
--   fewer than the maximum number of players or to replace players when
--   they drop out. By backfilling with the same matchmaker used to create
--   the original match, you ensure that new players meet the match
--   criteria and maintain a consistent experience throughout the game
--   session. You can backfill a match anytime after a game session has
--   been created.
--   
--   To request a match backfill, specify a unique ticket ID, the existing
--   game session's ARN, a matchmaking configuration, and a set of data
--   that describes all current players in the game session. If successful,
--   a match backfill ticket is created and returned with status set to
--   QUEUED. The ticket is placed in the matchmaker's ticket pool and
--   processed. Track the status of the ticket to respond as needed. For
--   more detail how to set up backfilling, see <a>Backfill Existing Games
--   with FlexMatch</a> .
--   
--   The process of finding backfill matches is essentially identical to
--   the initial matchmaking process. The matchmaker searches the pool and
--   groups tickets together to form potential matches, allowing only one
--   backfill ticket per potential match. Once the a match is formed, the
--   matchmaker creates player sessions for the new players. All tickets in
--   the match are updated with the game session's connection information,
--   and the <a>GameSession</a> object is updated to include matchmaker
--   data on the new players. For more detail on how match backfill
--   requests are processed, see <a>How Amazon GameLift FlexMatch Works</a>
--   .
--   
--   Matchmaking-related operations include:
--   
--   <ul>
--   <li><tt>StartMatchmaking</tt></li>
--   <li><tt>DescribeMatchmaking</tt></li>
--   <li><tt>StopMatchmaking</tt></li>
--   <li><tt>AcceptMatch</tt></li>
--   <li><a>StartMatchBackfill</a></li>
--   </ul>
module Network.AWS.GameLift.StartMatchBackfill

-- | Creates a value of <a>StartMatchBackfill</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>smbTicketId</a> - Unique identifier for a matchmaking ticket.
--   If no ticket ID is specified here, Amazon GameLift will generate one
--   in the form of a UUID. Use this identifier to track the match backfill
--   ticket status and retrieve match results.</li>
--   <li><a>smbConfigurationName</a> - Name of the matchmaker to use for
--   this request. The name of the matchmaker that was used with the
--   original game session is listed in the <a>GameSession</a> object,
--   <tt>MatchmakerData</tt> property. This property contains a matchmaking
--   configuration ARN value, which includes the matchmaker name. (In the
--   ARN value
--   "arn:aws:gamelift:us-west-2:111122223333:matchmakingconfiguration/MM-4v4",
--   the matchmaking configuration name is "MM-4v4".) Use only the name for
--   this parameter.</li>
--   <li><a>smbGameSessionARN</a> - Amazon Resource Name (<a>ARN</a> ) that
--   is assigned to a game session and uniquely identifies it.</li>
--   <li><a>smbPlayers</a> - Match information on all players that are
--   currently assigned to the game session. This information is used by
--   the matchmaker to find new players and add them to the existing game.
--   * PlayerID, PlayerAttributes, Team -\- This information is maintained
--   in the <a>GameSession</a> object, <tt>MatchmakerData</tt> property,
--   for all players who are currently assigned to the game session. The
--   matchmaker data is in JSON syntax, formatted as a string. For more
--   details, see <a>Match Data</a> . * LatencyInMs -\- If the matchmaker
--   uses player latency, include a latency value, in milliseconds, for the
--   region that the game session is currently in. Do not include latency
--   values for any other region.</li>
--   </ul>
startMatchBackfill :: Text -> Text -> StartMatchBackfill

-- | Represents the input for a request action.
--   
--   <i>See:</i> <a>startMatchBackfill</a> smart constructor.
data StartMatchBackfill

-- | Unique identifier for a matchmaking ticket. If no ticket ID is
--   specified here, Amazon GameLift will generate one in the form of a
--   UUID. Use this identifier to track the match backfill ticket status
--   and retrieve match results.
smbTicketId :: Lens' StartMatchBackfill (Maybe Text)

-- | Name of the matchmaker to use for this request. The name of the
--   matchmaker that was used with the original game session is listed in
--   the <a>GameSession</a> object, <tt>MatchmakerData</tt> property. This
--   property contains a matchmaking configuration ARN value, which
--   includes the matchmaker name. (In the ARN value
--   "arn:aws:gamelift:us-west-2:111122223333:matchmakingconfiguration/MM-4v4",
--   the matchmaking configuration name is "MM-4v4".) Use only the name for
--   this parameter.
smbConfigurationName :: Lens' StartMatchBackfill Text

-- | Amazon Resource Name (<a>ARN</a> ) that is assigned to a game session
--   and uniquely identifies it.
smbGameSessionARN :: Lens' StartMatchBackfill Text

-- | Match information on all players that are currently assigned to the
--   game session. This information is used by the matchmaker to find new
--   players and add them to the existing game. * PlayerID,
--   PlayerAttributes, Team -\- This information is maintained in the
--   <a>GameSession</a> object, <tt>MatchmakerData</tt> property, for all
--   players who are currently assigned to the game session. The matchmaker
--   data is in JSON syntax, formatted as a string. For more details, see
--   <a>Match Data</a> . * LatencyInMs -\- If the matchmaker uses player
--   latency, include a latency value, in milliseconds, for the region that
--   the game session is currently in. Do not include latency values for
--   any other region.
smbPlayers :: Lens' StartMatchBackfill [Player]

-- | Creates a value of <a>StartMatchBackfillResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>smbrsMatchmakingTicket</a> - Ticket representing the backfill
--   matchmaking request. This object includes the information in the
--   request, ticket status, and match results as generated during the
--   matchmaking process.</li>
--   <li><a>smbrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
startMatchBackfillResponse :: Int -> StartMatchBackfillResponse

-- | Represents the returned data in response to a request action.
--   
--   <i>See:</i> <a>startMatchBackfillResponse</a> smart constructor.
data StartMatchBackfillResponse

-- | Ticket representing the backfill matchmaking request. This object
--   includes the information in the request, ticket status, and match
--   results as generated during the matchmaking process.
smbrsMatchmakingTicket :: Lens' StartMatchBackfillResponse (Maybe MatchmakingTicket)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
smbrsResponseStatus :: Lens' StartMatchBackfillResponse Int
instance GHC.Generics.Generic Network.AWS.GameLift.StartMatchBackfill.StartMatchBackfillResponse
instance Data.Data.Data Network.AWS.GameLift.StartMatchBackfill.StartMatchBackfillResponse
instance GHC.Show.Show Network.AWS.GameLift.StartMatchBackfill.StartMatchBackfillResponse
instance GHC.Read.Read Network.AWS.GameLift.StartMatchBackfill.StartMatchBackfillResponse
instance GHC.Classes.Eq Network.AWS.GameLift.StartMatchBackfill.StartMatchBackfillResponse
instance GHC.Generics.Generic Network.AWS.GameLift.StartMatchBackfill.StartMatchBackfill
instance Data.Data.Data Network.AWS.GameLift.StartMatchBackfill.StartMatchBackfill
instance GHC.Show.Show Network.AWS.GameLift.StartMatchBackfill.StartMatchBackfill
instance GHC.Read.Read Network.AWS.GameLift.StartMatchBackfill.StartMatchBackfill
instance GHC.Classes.Eq Network.AWS.GameLift.StartMatchBackfill.StartMatchBackfill
instance Network.AWS.Types.AWSRequest Network.AWS.GameLift.StartMatchBackfill.StartMatchBackfill
instance Control.DeepSeq.NFData Network.AWS.GameLift.StartMatchBackfill.StartMatchBackfillResponse
instance Data.Hashable.Class.Hashable Network.AWS.GameLift.StartMatchBackfill.StartMatchBackfill
instance Control.DeepSeq.NFData Network.AWS.GameLift.StartMatchBackfill.StartMatchBackfill
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.GameLift.StartMatchBackfill.StartMatchBackfill
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.GameLift.StartMatchBackfill.StartMatchBackfill
instance Network.AWS.Data.Path.ToPath Network.AWS.GameLift.StartMatchBackfill.StartMatchBackfill
instance Network.AWS.Data.Query.ToQuery Network.AWS.GameLift.StartMatchBackfill.StartMatchBackfill


-- | Places a request for a new game session in a queue (see
--   <tt>CreateGameSessionQueue</tt> ). When processing a placement
--   request, Amazon GameLift searches for available resources on the
--   queue's destinations, scanning each until it finds resources or the
--   placement request times out.
--   
--   A game session placement request can also request player sessions.
--   When a new game session is successfully created, Amazon GameLift
--   creates a player session for each player included in the request.
--   
--   When placing a game session, by default Amazon GameLift tries each
--   fleet in the order they are listed in the queue configuration.
--   Ideally, a queue's destinations are listed in preference order.
--   
--   Alternatively, when requesting a game session with players, you can
--   also provide latency data for each player in relevant regions. Latency
--   data indicates the performance lag a player experiences when connected
--   to a fleet in the region. Amazon GameLift uses latency data to reorder
--   the list of destinations to place the game session in a region with
--   minimal lag. If latency data is provided for multiple players, Amazon
--   GameLift calculates each region's average lag for all players and
--   reorders to get the best game play across all players.
--   
--   To place a new game session request, specify the following:
--   
--   <ul>
--   <li>The queue name and a set of game session properties and
--   settings</li>
--   <li>A unique ID (such as a UUID) for the placement. You use this ID to
--   track the status of the placement request</li>
--   <li>(Optional) A set of IDs and player data for each player you want
--   to join to the new game session</li>
--   <li>Latency data for all players (if you want to optimize game play
--   for the players)</li>
--   </ul>
--   
--   If successful, a new game session placement is created.
--   
--   To track the status of a placement request, call
--   <tt>DescribeGameSessionPlacement</tt> and check the request's status.
--   If the status is <tt>FULFILLED</tt> , a new game session has been
--   created and a game session ARN and region are referenced. If the
--   placement request times out, you can resubmit the request or retry it
--   with a different queue.
--   
--   Game-session-related operations include:
--   
--   <ul>
--   <li><tt>CreateGameSession</tt></li>
--   <li><tt>DescribeGameSessions</tt></li>
--   <li><tt>DescribeGameSessionDetails</tt></li>
--   <li><tt>SearchGameSessions</tt></li>
--   <li><tt>UpdateGameSession</tt></li>
--   <li><tt>GetGameSessionLogUrl</tt></li>
--   <li>Game session placements</li>
--   <li><a>StartGameSessionPlacement</a></li>
--   <li><tt>DescribeGameSessionPlacement</tt></li>
--   <li><tt>StopGameSessionPlacement</tt></li>
--   </ul>
module Network.AWS.GameLift.StartGameSessionPlacement

-- | Creates a value of <a>StartGameSessionPlacement</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sgspGameProperties</a> - Set of custom properties for a game
--   session, formatted as key:value pairs. These properties are passed to
--   a game server process in the <a>GameSession</a> object with a request
--   to start a new game session (see <a>Start a Game Session</a> ).</li>
--   <li><a>sgspGameSessionName</a> - Descriptive label that is associated
--   with a game session. Session names do not need to be unique.</li>
--   <li><a>sgspPlayerLatencies</a> - Set of values, expressed in
--   milliseconds, indicating the amount of latency that a player
--   experiences when connected to AWS regions. This information is used to
--   try to place the new game session where it can offer the best possible
--   gameplay experience for the players.</li>
--   <li><a>sgspGameSessionData</a> - Set of custom game session
--   properties, formatted as a single string value. This data is passed to
--   a game server process in the <a>GameSession</a> object with a request
--   to start a new game session (see <a>Start a Game Session</a> ).</li>
--   <li><a>sgspDesiredPlayerSessions</a> - Set of information on each
--   player to create a player session for.</li>
--   <li><a>sgspPlacementId</a> - Unique identifier to assign to the new
--   game session placement. This value is developer-defined. The value
--   must be unique across all regions and cannot be reused unless you are
--   resubmitting a canceled or timed-out placement request.</li>
--   <li><a>sgspGameSessionQueueName</a> - Name of the queue to use to
--   place the new game session.</li>
--   <li><a>sgspMaximumPlayerSessionCount</a> - Maximum number of players
--   that can be connected simultaneously to the game session.</li>
--   </ul>
startGameSessionPlacement :: Text -> Text -> Natural -> StartGameSessionPlacement

-- | Represents the input for a request action.
--   
--   <i>See:</i> <a>startGameSessionPlacement</a> smart constructor.
data StartGameSessionPlacement

-- | Set of custom properties for a game session, formatted as key:value
--   pairs. These properties are passed to a game server process in the
--   <a>GameSession</a> object with a request to start a new game session
--   (see <a>Start a Game Session</a> ).
sgspGameProperties :: Lens' StartGameSessionPlacement [GameProperty]

-- | Descriptive label that is associated with a game session. Session
--   names do not need to be unique.
sgspGameSessionName :: Lens' StartGameSessionPlacement (Maybe Text)

-- | Set of values, expressed in milliseconds, indicating the amount of
--   latency that a player experiences when connected to AWS regions. This
--   information is used to try to place the new game session where it can
--   offer the best possible gameplay experience for the players.
sgspPlayerLatencies :: Lens' StartGameSessionPlacement [PlayerLatency]

-- | Set of custom game session properties, formatted as a single string
--   value. This data is passed to a game server process in the
--   <a>GameSession</a> object with a request to start a new game session
--   (see <a>Start a Game Session</a> ).
sgspGameSessionData :: Lens' StartGameSessionPlacement (Maybe Text)

-- | Set of information on each player to create a player session for.
sgspDesiredPlayerSessions :: Lens' StartGameSessionPlacement [DesiredPlayerSession]

-- | Unique identifier to assign to the new game session placement. This
--   value is developer-defined. The value must be unique across all
--   regions and cannot be reused unless you are resubmitting a canceled or
--   timed-out placement request.
sgspPlacementId :: Lens' StartGameSessionPlacement Text

-- | Name of the queue to use to place the new game session.
sgspGameSessionQueueName :: Lens' StartGameSessionPlacement Text

-- | Maximum number of players that can be connected simultaneously to the
--   game session.
sgspMaximumPlayerSessionCount :: Lens' StartGameSessionPlacement Natural

-- | Creates a value of <a>StartGameSessionPlacementResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sgsprsGameSessionPlacement</a> - Object that describes the
--   newly created game session placement. This object includes all the
--   information provided in the request, as well as start/end time stamps
--   and placement status.</li>
--   <li><a>sgsprsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
startGameSessionPlacementResponse :: Int -> StartGameSessionPlacementResponse

-- | Represents the returned data in response to a request action.
--   
--   <i>See:</i> <a>startGameSessionPlacementResponse</a> smart
--   constructor.
data StartGameSessionPlacementResponse

-- | Object that describes the newly created game session placement. This
--   object includes all the information provided in the request, as well
--   as start/end time stamps and placement status.
sgsprsGameSessionPlacement :: Lens' StartGameSessionPlacementResponse (Maybe GameSessionPlacement)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
sgsprsResponseStatus :: Lens' StartGameSessionPlacementResponse Int
instance GHC.Generics.Generic Network.AWS.GameLift.StartGameSessionPlacement.StartGameSessionPlacementResponse
instance Data.Data.Data Network.AWS.GameLift.StartGameSessionPlacement.StartGameSessionPlacementResponse
instance GHC.Show.Show Network.AWS.GameLift.StartGameSessionPlacement.StartGameSessionPlacementResponse
instance GHC.Read.Read Network.AWS.GameLift.StartGameSessionPlacement.StartGameSessionPlacementResponse
instance GHC.Classes.Eq Network.AWS.GameLift.StartGameSessionPlacement.StartGameSessionPlacementResponse
instance GHC.Generics.Generic Network.AWS.GameLift.StartGameSessionPlacement.StartGameSessionPlacement
instance Data.Data.Data Network.AWS.GameLift.StartGameSessionPlacement.StartGameSessionPlacement
instance GHC.Show.Show Network.AWS.GameLift.StartGameSessionPlacement.StartGameSessionPlacement
instance GHC.Read.Read Network.AWS.GameLift.StartGameSessionPlacement.StartGameSessionPlacement
instance GHC.Classes.Eq Network.AWS.GameLift.StartGameSessionPlacement.StartGameSessionPlacement
instance Network.AWS.Types.AWSRequest Network.AWS.GameLift.StartGameSessionPlacement.StartGameSessionPlacement
instance Control.DeepSeq.NFData Network.AWS.GameLift.StartGameSessionPlacement.StartGameSessionPlacementResponse
instance Data.Hashable.Class.Hashable Network.AWS.GameLift.StartGameSessionPlacement.StartGameSessionPlacement
instance Control.DeepSeq.NFData Network.AWS.GameLift.StartGameSessionPlacement.StartGameSessionPlacement
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.GameLift.StartGameSessionPlacement.StartGameSessionPlacement
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.GameLift.StartGameSessionPlacement.StartGameSessionPlacement
instance Network.AWS.Data.Path.ToPath Network.AWS.GameLift.StartGameSessionPlacement.StartGameSessionPlacement
instance Network.AWS.Data.Query.ToQuery Network.AWS.GameLift.StartGameSessionPlacement.StartGameSessionPlacement


-- | Resumes activity on a fleet that was suspended with
--   <tt>StopFleetActions</tt> . Currently, this operation is used to
--   restart a fleet's auto-scaling activity.
--   
--   To start fleet actions, specify the fleet ID and the type of actions
--   to restart. When auto-scaling fleet actions are restarted, Amazon
--   GameLift once again initiates scaling events as triggered by the
--   fleet's scaling policies. If actions on the fleet were never stopped,
--   this operation will have no effect. You can view a fleet's stopped
--   actions using <tt>DescribeFleetAttributes</tt> .
--   
--   Operations related to fleet capacity scaling include:
--   
--   <ul>
--   <li><tt>DescribeFleetCapacity</tt></li>
--   <li><tt>UpdateFleetCapacity</tt></li>
--   <li><tt>DescribeEC2InstanceLimits</tt></li>
--   <li>Manage scaling policies:</li>
--   <li><tt>PutScalingPolicy</tt> (auto-scaling)</li>
--   <li><tt>DescribeScalingPolicies</tt> (auto-scaling)</li>
--   <li><tt>DeleteScalingPolicy</tt> (auto-scaling)</li>
--   <li>Manage fleet actions:</li>
--   <li><a>StartFleetActions</a></li>
--   <li><tt>StopFleetActions</tt></li>
--   </ul>
module Network.AWS.GameLift.StartFleetActions

-- | Creates a value of <a>StartFleetActions</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sfaFleetId</a> - Unique identifier for a fleet</li>
--   <li><a>sfaActions</a> - List of actions to restart on the fleet.</li>
--   </ul>
startFleetActions :: Text -> NonEmpty FleetAction -> StartFleetActions

-- | <i>See:</i> <a>startFleetActions</a> smart constructor.
data StartFleetActions

-- | Unique identifier for a fleet
sfaFleetId :: Lens' StartFleetActions Text

-- | List of actions to restart on the fleet.
sfaActions :: Lens' StartFleetActions (NonEmpty FleetAction)

-- | Creates a value of <a>StartFleetActionsResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sfarsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
startFleetActionsResponse :: Int -> StartFleetActionsResponse

-- | <i>See:</i> <a>startFleetActionsResponse</a> smart constructor.
data StartFleetActionsResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
sfarsResponseStatus :: Lens' StartFleetActionsResponse Int
instance GHC.Generics.Generic Network.AWS.GameLift.StartFleetActions.StartFleetActionsResponse
instance Data.Data.Data Network.AWS.GameLift.StartFleetActions.StartFleetActionsResponse
instance GHC.Show.Show Network.AWS.GameLift.StartFleetActions.StartFleetActionsResponse
instance GHC.Read.Read Network.AWS.GameLift.StartFleetActions.StartFleetActionsResponse
instance GHC.Classes.Eq Network.AWS.GameLift.StartFleetActions.StartFleetActionsResponse
instance GHC.Generics.Generic Network.AWS.GameLift.StartFleetActions.StartFleetActions
instance Data.Data.Data Network.AWS.GameLift.StartFleetActions.StartFleetActions
instance GHC.Show.Show Network.AWS.GameLift.StartFleetActions.StartFleetActions
instance GHC.Read.Read Network.AWS.GameLift.StartFleetActions.StartFleetActions
instance GHC.Classes.Eq Network.AWS.GameLift.StartFleetActions.StartFleetActions
instance Network.AWS.Types.AWSRequest Network.AWS.GameLift.StartFleetActions.StartFleetActions
instance Control.DeepSeq.NFData Network.AWS.GameLift.StartFleetActions.StartFleetActionsResponse
instance Data.Hashable.Class.Hashable Network.AWS.GameLift.StartFleetActions.StartFleetActions
instance Control.DeepSeq.NFData Network.AWS.GameLift.StartFleetActions.StartFleetActions
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.GameLift.StartFleetActions.StartFleetActions
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.GameLift.StartFleetActions.StartFleetActions
instance Network.AWS.Data.Path.ToPath Network.AWS.GameLift.StartFleetActions.StartFleetActions
instance Network.AWS.Data.Query.ToQuery Network.AWS.GameLift.StartFleetActions.StartFleetActions


-- | Retrieves all active game sessions that match a set of search criteria
--   and sorts them in a specified order. You can search or sort by the
--   following game session attributes:
--   
--   <ul>
--   <li><b>gameSessionId</b> -- Unique identifier for the game session.
--   You can use either a <tt>GameSessionId</tt> or <tt>GameSessionArn</tt>
--   value.</li>
--   <li><b>gameSessionName</b> -- Name assigned to a game session. This
--   value is set when requesting a new game session with
--   <tt>CreateGameSession</tt> or updating with <tt>UpdateGameSession</tt>
--   . Game session names do not need to be unique to a game session.</li>
--   <li><b>gameSessionProperties</b> -- Custom data defined in a game
--   session's <tt>GameProperty</tt> parameter. <tt>GameProperty</tt>
--   values are stored as key:value pairs; the filter expression must
--   indicate the key and a string to search the data values for. For
--   example, to search for game sessions with custom data containing the
--   key:value pair "gameMode:brawl", specify the following:
--   <tt>gameSessionProperties.gameMode = "brawl"</tt> . All custom data
--   values are searched as strings.</li>
--   <li><b>maximumSessions</b> -- Maximum number of player sessions
--   allowed for a game session. This value is set when requesting a new
--   game session with <tt>CreateGameSession</tt> or updating with
--   <tt>UpdateGameSession</tt> .</li>
--   <li><b>creationTimeMillis</b> -- Value indicating when a game session
--   was created. It is expressed in Unix time as milliseconds.</li>
--   <li><b>playerSessionCount</b> -- Number of players currently connected
--   to a game session. This value changes rapidly as players join the
--   session or drop out.</li>
--   <li><b>hasAvailablePlayerSessions</b> -- Boolean value indicating
--   whether a game session has reached its maximum number of players. It
--   is highly recommended that all search requests include this filter
--   attribute to optimize search performance and return only sessions that
--   players can join.</li>
--   </ul>
--   
--   To search or sort, specify either a fleet ID or an alias ID, and
--   provide a search filter expression, a sort expression, or both. If
--   successful, a collection of <a>GameSession</a> objects matching the
--   request is returned. Use the pagination parameters to retrieve results
--   as a set of sequential pages.
--   
--   You can search for game sessions one fleet at a time only. To find
--   game sessions across multiple fleets, you must search each fleet
--   separately and combine the results. This search feature finds only
--   game sessions that are in <tt>ACTIVE</tt> status. To locate games in
--   statuses other than active, use <tt>DescribeGameSessionDetails</tt> .
--   
--   Game-session-related operations include:
--   
--   <ul>
--   <li><tt>CreateGameSession</tt></li>
--   <li><tt>DescribeGameSessions</tt></li>
--   <li><tt>DescribeGameSessionDetails</tt></li>
--   <li><a>SearchGameSessions</a></li>
--   <li><tt>UpdateGameSession</tt></li>
--   <li><tt>GetGameSessionLogUrl</tt></li>
--   <li>Game session placements</li>
--   <li><tt>StartGameSessionPlacement</tt></li>
--   <li><tt>DescribeGameSessionPlacement</tt></li>
--   <li><tt>StopGameSessionPlacement</tt></li>
--   </ul>
module Network.AWS.GameLift.SearchGameSessions

-- | Creates a value of <a>SearchGameSessions</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sgsFilterExpression</a> - String containing the search criteria
--   for the session search. If no filter expression is included, the
--   request returns results for all game sessions in the fleet that are in
--   <tt>ACTIVE</tt> status. A filter expression can contain one or
--   multiple conditions. Each condition consists of the following: *
--   <b>Operand</b> -- Name of a game session attribute. Valid values are
--   <tt>gameSessionName</tt> , <tt>gameSessionId</tt> ,
--   <tt>gameSessionProperties</tt> , <tt>maximumSessions</tt> ,
--   <tt>creationTimeMillis</tt> , <tt>playerSessionCount</tt> ,
--   <tt>hasAvailablePlayerSessions</tt> . * <b>Comparator</b> -- Valid
--   comparators are: <tt>=</tt> , <tt>&lt;&gt;</tt> , <tt>&lt;</tt> ,
--   <tt>&gt;</tt> , <tt>&lt;=</tt> , <tt>&gt;=</tt> . * <b>Value</b> --
--   Value to be searched for. Values may be numbers, boolean values
--   (true/false) or strings depending on the operand. String values are
--   case sensitive and must be enclosed in single quotes. Special
--   characters must be escaped. Boolean and string values can only be used
--   with the comparators <tt>=</tt> and <tt>&lt;&gt;</tt> . For example,
--   the following filter expression searches on <tt>gameSessionName</tt> :
--   "<tt>FilterExpression": "gameSessionName = 'Matt\\'s Awesome Game
--   1'"</tt> . To chain multiple conditions in a single expression, use
--   the logical keywords <tt>AND</tt> , <tt>OR</tt> , and <tt>NOT</tt> and
--   parentheses as needed. For example: <tt>x AND y AND NOT z</tt> ,
--   <tt>NOT (x OR y)</tt> . Session search evaluates conditions from left
--   to right using the following precedence rules: * <tt>=</tt> ,
--   <tt>&lt;&gt;</tt> , <tt>&lt;</tt> , <tt>&gt;</tt> , <tt>&lt;=</tt> ,
--   <tt>&gt;=</tt> * Parentheses * NOT * AND * OR For example, this filter
--   expression retrieves game sessions hosting at least ten players that
--   have an open player slot: <tt>"maximumSessions&gt;=10 AND
--   hasAvailablePlayerSessions=true"</tt> .</li>
--   <li><a>sgsSortExpression</a> - Instructions on how to sort the search
--   results. If no sort expression is included, the request returns
--   results in random order. A sort expression consists of the following
--   elements: * <b>Operand</b> -- Name of a game session attribute. Valid
--   values are <tt>gameSessionName</tt> , <tt>gameSessionId</tt> ,
--   <tt>gameSessionProperties</tt> , <tt>maximumSessions</tt> ,
--   <tt>creationTimeMillis</tt> , <tt>playerSessionCount</tt> ,
--   <tt>hasAvailablePlayerSessions</tt> . * <b>Order</b> -- Valid sort
--   orders are <tt>ASC</tt> (ascending) and <tt>DESC</tt> (descending).
--   For example, this sort expression returns the oldest active sessions
--   first: <tt><a>SortExpression</a>: "creationTimeMillis ASC"</tt> .
--   Results with a null value for the sort operand are returned at the end
--   of the list.</li>
--   <li><a>sgsAliasId</a> - Unique identifier for an alias associated with
--   the fleet to search for active game sessions. Each request must
--   reference either a fleet ID or alias ID, but not both.</li>
--   <li><a>sgsNextToken</a> - Token that indicates the start of the next
--   sequential page of results. Use the token that is returned with a
--   previous call to this action. To start at the beginning of the result
--   set, do not specify a value.</li>
--   <li><a>sgsLimit</a> - Maximum number of results to return. Use this
--   parameter with <tt>NextToken</tt> to get results as a set of
--   sequential pages. The maximum number of results returned is 20, even
--   if this value is not set or is set higher than 20.</li>
--   <li><a>sgsFleetId</a> - Unique identifier for a fleet to search for
--   active game sessions. Each request must reference either a fleet ID or
--   alias ID, but not both.</li>
--   </ul>
searchGameSessions :: SearchGameSessions

-- | Represents the input for a request action.
--   
--   <i>See:</i> <a>searchGameSessions</a> smart constructor.
data SearchGameSessions

-- | String containing the search criteria for the session search. If no
--   filter expression is included, the request returns results for all
--   game sessions in the fleet that are in <tt>ACTIVE</tt> status. A
--   filter expression can contain one or multiple conditions. Each
--   condition consists of the following: * <b>Operand</b> -- Name of a
--   game session attribute. Valid values are <tt>gameSessionName</tt> ,
--   <tt>gameSessionId</tt> , <tt>gameSessionProperties</tt> ,
--   <tt>maximumSessions</tt> , <tt>creationTimeMillis</tt> ,
--   <tt>playerSessionCount</tt> , <tt>hasAvailablePlayerSessions</tt> . *
--   <b>Comparator</b> -- Valid comparators are: <tt>=</tt> ,
--   <tt>&lt;&gt;</tt> , <tt>&lt;</tt> , <tt>&gt;</tt> , <tt>&lt;=</tt> ,
--   <tt>&gt;=</tt> . * <b>Value</b> -- Value to be searched for. Values
--   may be numbers, boolean values (true/false) or strings depending on
--   the operand. String values are case sensitive and must be enclosed in
--   single quotes. Special characters must be escaped. Boolean and string
--   values can only be used with the comparators <tt>=</tt> and
--   <tt>&lt;&gt;</tt> . For example, the following filter expression
--   searches on <tt>gameSessionName</tt> : "<tt>FilterExpression":
--   "gameSessionName = 'Matt\\'s Awesome Game 1'"</tt> . To chain multiple
--   conditions in a single expression, use the logical keywords
--   <tt>AND</tt> , <tt>OR</tt> , and <tt>NOT</tt> and parentheses as
--   needed. For example: <tt>x AND y AND NOT z</tt> , <tt>NOT (x OR
--   y)</tt> . Session search evaluates conditions from left to right using
--   the following precedence rules: * <tt>=</tt> , <tt>&lt;&gt;</tt> ,
--   <tt>&lt;</tt> , <tt>&gt;</tt> , <tt>&lt;=</tt> , <tt>&gt;=</tt> *
--   Parentheses * NOT * AND * OR For example, this filter expression
--   retrieves game sessions hosting at least ten players that have an open
--   player slot: <tt>"maximumSessions&gt;=10 AND
--   hasAvailablePlayerSessions=true"</tt> .
sgsFilterExpression :: Lens' SearchGameSessions (Maybe Text)

-- | Instructions on how to sort the search results. If no sort expression
--   is included, the request returns results in random order. A sort
--   expression consists of the following elements: * <b>Operand</b> --
--   Name of a game session attribute. Valid values are
--   <tt>gameSessionName</tt> , <tt>gameSessionId</tt> ,
--   <tt>gameSessionProperties</tt> , <tt>maximumSessions</tt> ,
--   <tt>creationTimeMillis</tt> , <tt>playerSessionCount</tt> ,
--   <tt>hasAvailablePlayerSessions</tt> . * <b>Order</b> -- Valid sort
--   orders are <tt>ASC</tt> (ascending) and <tt>DESC</tt> (descending).
--   For example, this sort expression returns the oldest active sessions
--   first: <tt><a>SortExpression</a>: "creationTimeMillis ASC"</tt> .
--   Results with a null value for the sort operand are returned at the end
--   of the list.
sgsSortExpression :: Lens' SearchGameSessions (Maybe Text)

-- | Unique identifier for an alias associated with the fleet to search for
--   active game sessions. Each request must reference either a fleet ID or
--   alias ID, but not both.
sgsAliasId :: Lens' SearchGameSessions (Maybe Text)

-- | Token that indicates the start of the next sequential page of results.
--   Use the token that is returned with a previous call to this action. To
--   start at the beginning of the result set, do not specify a value.
sgsNextToken :: Lens' SearchGameSessions (Maybe Text)

-- | Maximum number of results to return. Use this parameter with
--   <tt>NextToken</tt> to get results as a set of sequential pages. The
--   maximum number of results returned is 20, even if this value is not
--   set or is set higher than 20.
sgsLimit :: Lens' SearchGameSessions (Maybe Natural)

-- | Unique identifier for a fleet to search for active game sessions. Each
--   request must reference either a fleet ID or alias ID, but not both.
sgsFleetId :: Lens' SearchGameSessions (Maybe Text)

-- | Creates a value of <a>SearchGameSessionsResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sgsrsGameSessions</a> - Collection of objects containing game
--   session properties for each session matching the request.</li>
--   <li><a>sgsrsNextToken</a> - Token that indicates where to resume
--   retrieving results on the next call to this action. If no token is
--   returned, these results represent the end of the list.</li>
--   <li><a>sgsrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
searchGameSessionsResponse :: Int -> SearchGameSessionsResponse

-- | Represents the returned data in response to a request action.
--   
--   <i>See:</i> <a>searchGameSessionsResponse</a> smart constructor.
data SearchGameSessionsResponse

-- | Collection of objects containing game session properties for each
--   session matching the request.
sgsrsGameSessions :: Lens' SearchGameSessionsResponse [GameSession]

-- | Token that indicates where to resume retrieving results on the next
--   call to this action. If no token is returned, these results represent
--   the end of the list.
sgsrsNextToken :: Lens' SearchGameSessionsResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
sgsrsResponseStatus :: Lens' SearchGameSessionsResponse Int
instance GHC.Generics.Generic Network.AWS.GameLift.SearchGameSessions.SearchGameSessionsResponse
instance Data.Data.Data Network.AWS.GameLift.SearchGameSessions.SearchGameSessionsResponse
instance GHC.Show.Show Network.AWS.GameLift.SearchGameSessions.SearchGameSessionsResponse
instance GHC.Read.Read Network.AWS.GameLift.SearchGameSessions.SearchGameSessionsResponse
instance GHC.Classes.Eq Network.AWS.GameLift.SearchGameSessions.SearchGameSessionsResponse
instance GHC.Generics.Generic Network.AWS.GameLift.SearchGameSessions.SearchGameSessions
instance Data.Data.Data Network.AWS.GameLift.SearchGameSessions.SearchGameSessions
instance GHC.Show.Show Network.AWS.GameLift.SearchGameSessions.SearchGameSessions
instance GHC.Read.Read Network.AWS.GameLift.SearchGameSessions.SearchGameSessions
instance GHC.Classes.Eq Network.AWS.GameLift.SearchGameSessions.SearchGameSessions
instance Network.AWS.Types.AWSRequest Network.AWS.GameLift.SearchGameSessions.SearchGameSessions
instance Control.DeepSeq.NFData Network.AWS.GameLift.SearchGameSessions.SearchGameSessionsResponse
instance Data.Hashable.Class.Hashable Network.AWS.GameLift.SearchGameSessions.SearchGameSessions
instance Control.DeepSeq.NFData Network.AWS.GameLift.SearchGameSessions.SearchGameSessions
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.GameLift.SearchGameSessions.SearchGameSessions
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.GameLift.SearchGameSessions.SearchGameSessions
instance Network.AWS.Data.Path.ToPath Network.AWS.GameLift.SearchGameSessions.SearchGameSessions
instance Network.AWS.Data.Query.ToQuery Network.AWS.GameLift.SearchGameSessions.SearchGameSessions


-- | Retrieves the fleet ID that a specified alias is currently pointing
--   to.
--   
--   Alias-related operations include:
--   
--   <ul>
--   <li><tt>CreateAlias</tt></li>
--   <li><tt>ListAliases</tt></li>
--   <li><tt>DescribeAlias</tt></li>
--   <li><tt>UpdateAlias</tt></li>
--   <li><tt>DeleteAlias</tt></li>
--   <li><a>ResolveAlias</a></li>
--   </ul>
module Network.AWS.GameLift.ResolveAlias

-- | Creates a value of <a>ResolveAlias</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>raAliasId</a> - Unique identifier for the alias you want to
--   resolve.</li>
--   </ul>
resolveAlias :: Text -> ResolveAlias

-- | Represents the input for a request action.
--   
--   <i>See:</i> <a>resolveAlias</a> smart constructor.
data ResolveAlias

-- | Unique identifier for the alias you want to resolve.
raAliasId :: Lens' ResolveAlias Text

-- | Creates a value of <a>ResolveAliasResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rarsFleetId</a> - Fleet identifier that is associated with the
--   requested alias.</li>
--   <li><a>rarsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
resolveAliasResponse :: Int -> ResolveAliasResponse

-- | Represents the returned data in response to a request action.
--   
--   <i>See:</i> <a>resolveAliasResponse</a> smart constructor.
data ResolveAliasResponse

-- | Fleet identifier that is associated with the requested alias.
rarsFleetId :: Lens' ResolveAliasResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
rarsResponseStatus :: Lens' ResolveAliasResponse Int
instance GHC.Generics.Generic Network.AWS.GameLift.ResolveAlias.ResolveAliasResponse
instance Data.Data.Data Network.AWS.GameLift.ResolveAlias.ResolveAliasResponse
instance GHC.Show.Show Network.AWS.GameLift.ResolveAlias.ResolveAliasResponse
instance GHC.Read.Read Network.AWS.GameLift.ResolveAlias.ResolveAliasResponse
instance GHC.Classes.Eq Network.AWS.GameLift.ResolveAlias.ResolveAliasResponse
instance GHC.Generics.Generic Network.AWS.GameLift.ResolveAlias.ResolveAlias
instance Data.Data.Data Network.AWS.GameLift.ResolveAlias.ResolveAlias
instance GHC.Show.Show Network.AWS.GameLift.ResolveAlias.ResolveAlias
instance GHC.Read.Read Network.AWS.GameLift.ResolveAlias.ResolveAlias
instance GHC.Classes.Eq Network.AWS.GameLift.ResolveAlias.ResolveAlias
instance Network.AWS.Types.AWSRequest Network.AWS.GameLift.ResolveAlias.ResolveAlias
instance Control.DeepSeq.NFData Network.AWS.GameLift.ResolveAlias.ResolveAliasResponse
instance Data.Hashable.Class.Hashable Network.AWS.GameLift.ResolveAlias.ResolveAlias
instance Control.DeepSeq.NFData Network.AWS.GameLift.ResolveAlias.ResolveAlias
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.GameLift.ResolveAlias.ResolveAlias
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.GameLift.ResolveAlias.ResolveAlias
instance Network.AWS.Data.Path.ToPath Network.AWS.GameLift.ResolveAlias.ResolveAlias
instance Network.AWS.Data.Query.ToQuery Network.AWS.GameLift.ResolveAlias.ResolveAlias


-- | Retrieves a fresh set of credentials for use when uploading a new set
--   of game build files to Amazon GameLift's Amazon S3. This is done as
--   part of the build creation process; see <tt>CreateBuild</tt> .
--   
--   To request new credentials, specify the build ID as returned with an
--   initial <tt>CreateBuild</tt> request. If successful, a new set of
--   credentials are returned, along with the S3 storage location
--   associated with the build ID.
module Network.AWS.GameLift.RequestUploadCredentials

-- | Creates a value of <a>RequestUploadCredentials</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rucBuildId</a> - Unique identifier for a build to get
--   credentials for.</li>
--   </ul>
requestUploadCredentials :: Text -> RequestUploadCredentials

-- | Represents the input for a request action.
--   
--   <i>See:</i> <a>requestUploadCredentials</a> smart constructor.
data RequestUploadCredentials

-- | Unique identifier for a build to get credentials for.
rucBuildId :: Lens' RequestUploadCredentials Text

-- | Creates a value of <a>RequestUploadCredentialsResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rucrsStorageLocation</a> - Amazon S3 path and key, identifying
--   where the game build files are stored.</li>
--   <li><a>rucrsUploadCredentials</a> - AWS credentials required when
--   uploading a game build to the storage location. These credentials have
--   a limited lifespan and are valid only for the build they were issued
--   for.</li>
--   <li><a>rucrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
requestUploadCredentialsResponse :: Int -> RequestUploadCredentialsResponse

-- | Represents the returned data in response to a request action.
--   
--   <i>See:</i> <a>requestUploadCredentialsResponse</a> smart constructor.
data RequestUploadCredentialsResponse

-- | Amazon S3 path and key, identifying where the game build files are
--   stored.
rucrsStorageLocation :: Lens' RequestUploadCredentialsResponse (Maybe S3Location)

-- | AWS credentials required when uploading a game build to the storage
--   location. These credentials have a limited lifespan and are valid only
--   for the build they were issued for.
rucrsUploadCredentials :: Lens' RequestUploadCredentialsResponse (Maybe AWSCredentials)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
rucrsResponseStatus :: Lens' RequestUploadCredentialsResponse Int
instance GHC.Generics.Generic Network.AWS.GameLift.RequestUploadCredentials.RequestUploadCredentialsResponse
instance Data.Data.Data Network.AWS.GameLift.RequestUploadCredentials.RequestUploadCredentialsResponse
instance GHC.Show.Show Network.AWS.GameLift.RequestUploadCredentials.RequestUploadCredentialsResponse
instance GHC.Classes.Eq Network.AWS.GameLift.RequestUploadCredentials.RequestUploadCredentialsResponse
instance GHC.Generics.Generic Network.AWS.GameLift.RequestUploadCredentials.RequestUploadCredentials
instance Data.Data.Data Network.AWS.GameLift.RequestUploadCredentials.RequestUploadCredentials
instance GHC.Show.Show Network.AWS.GameLift.RequestUploadCredentials.RequestUploadCredentials
instance GHC.Read.Read Network.AWS.GameLift.RequestUploadCredentials.RequestUploadCredentials
instance GHC.Classes.Eq Network.AWS.GameLift.RequestUploadCredentials.RequestUploadCredentials
instance Network.AWS.Types.AWSRequest Network.AWS.GameLift.RequestUploadCredentials.RequestUploadCredentials
instance Control.DeepSeq.NFData Network.AWS.GameLift.RequestUploadCredentials.RequestUploadCredentialsResponse
instance Data.Hashable.Class.Hashable Network.AWS.GameLift.RequestUploadCredentials.RequestUploadCredentials
instance Control.DeepSeq.NFData Network.AWS.GameLift.RequestUploadCredentials.RequestUploadCredentials
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.GameLift.RequestUploadCredentials.RequestUploadCredentials
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.GameLift.RequestUploadCredentials.RequestUploadCredentials
instance Network.AWS.Data.Path.ToPath Network.AWS.GameLift.RequestUploadCredentials.RequestUploadCredentials
instance Network.AWS.Data.Query.ToQuery Network.AWS.GameLift.RequestUploadCredentials.RequestUploadCredentials


-- | Creates or updates a scaling policy for a fleet. Scaling policies are
--   used to automatically scale a fleet's hosting capacity to meet player
--   demand. An active scaling policy instructs Amazon GameLift to track a
--   fleet metric and automatically change the fleet's capacity when a
--   certain threshold is reached. There are two types of scaling policies:
--   target-based and rule-based. Use a target-based policy to quickly and
--   efficiently manage fleet scaling; this option is the most commonly
--   used. Use rule-based policies when you need to exert fine-grained
--   control over auto-scaling.
--   
--   Fleets can have multiple scaling policies of each type in force at the
--   same time; you can have one target-based policy, one or multiple
--   rule-based scaling policies, or both. We recommend caution, however,
--   because multiple auto-scaling policies can have unintended
--   consequences.
--   
--   You can temporarily suspend all scaling policies for a fleet by
--   calling <tt>StopFleetActions</tt> with the fleet action AUTO_SCALING.
--   To resume scaling policies, call <tt>StartFleetActions</tt> with the
--   same fleet action. To stop just one scaling policy--or to permanently
--   remove it, you must delete the policy with
--   <tt>DeleteScalingPolicy</tt> .
--   
--   Learn more about how to work with auto-scaling in <a>Set Up Fleet
--   Automatic Scaling</a> .
--   
--   <b>Target-based policy</b>
--   
--   A target-based policy tracks a single metric:
--   PercentAvailableGameSessions. This metric tells us how much of a
--   fleet's hosting capacity is ready to host game sessions but is not
--   currently in use. This is the fleet's buffer; it measures the
--   additional player demand that the fleet could handle at current
--   capacity. With a target-based policy, you set your ideal buffer size
--   and leave it to Amazon GameLift to take whatever action is needed to
--   maintain that target.
--   
--   For example, you might choose to maintain a 10% buffer for a fleet
--   that has the capacity to host 100 simultaneous game sessions. This
--   policy tells Amazon GameLift to take action whenever the fleet's
--   available capacity falls below or rises above 10 game sessions. Amazon
--   GameLift will start new instances or stop unused instances in order to
--   return to the 10% buffer.
--   
--   To create or update a target-based policy, specify a fleet ID and
--   name, and set the policy type to <a>TargetBased</a>. Specify the
--   metric to track (PercentAvailableGameSessions) and reference a
--   <a>TargetConfiguration</a> object with your desired buffer value.
--   Exclude all other parameters. On a successful request, the policy name
--   is returned. The scaling policy is automatically in force as soon as
--   it's successfully created. If the fleet's auto-scaling actions are
--   temporarily suspended, the new policy will be in force once the fleet
--   actions are restarted.
--   
--   <b>Rule-based policy</b>
--   
--   A rule-based policy tracks specified fleet metric, sets a threshold
--   value, and specifies the type of action to initiate when triggered.
--   With a rule-based policy, you can select from several available fleet
--   metrics. Each policy specifies whether to scale up or scale down (and
--   by how much), so you need one policy for each type of action.
--   
--   For example, a policy may make the following statement: "If the
--   percentage of idle instances is greater than 20% for more than 15
--   minutes, then reduce the fleet capacity by 10%."
--   
--   A policy's rule statement has the following structure:
--   
--   If <tt>[MetricName]</tt> is <tt>[ComparisonOperator]</tt>
--   <tt>[Threshold]</tt> for <tt>[EvaluationPeriods]</tt> minutes, then
--   <tt>[ScalingAdjustmentType]</tt> to/by <tt>[ScalingAdjustment]</tt> .
--   
--   To implement the example, the rule statement would look like this:
--   
--   If <tt>[PercentIdleInstances]</tt> is <tt>[GreaterThanThreshold]</tt>
--   <tt>[20]</tt> for <tt>[15]</tt> minutes, then
--   <tt>[PercentChangeInCapacity]</tt> to/by <tt>[10]</tt> .
--   
--   To create or update a scaling policy, specify a unique combination of
--   name and fleet ID, and set the policy type to <a>RuleBased</a>.
--   Specify the parameter values for a policy rule statement. On a
--   successful request, the policy name is returned. Scaling policies are
--   automatically in force as soon as they're successfully created. If the
--   fleet's auto-scaling actions are temporarily suspended, the new policy
--   will be in force once the fleet actions are restarted.
--   
--   Operations related to fleet capacity scaling include:
--   
--   <ul>
--   <li><tt>DescribeFleetCapacity</tt></li>
--   <li><tt>UpdateFleetCapacity</tt></li>
--   <li><tt>DescribeEC2InstanceLimits</tt></li>
--   <li>Manage scaling policies:</li>
--   <li><a>PutScalingPolicy</a> (auto-scaling)</li>
--   <li><tt>DescribeScalingPolicies</tt> (auto-scaling)</li>
--   <li><tt>DeleteScalingPolicy</tt> (auto-scaling)</li>
--   <li>Manage fleet actions:</li>
--   <li><tt>StartFleetActions</tt></li>
--   <li><tt>StopFleetActions</tt></li>
--   </ul>
module Network.AWS.GameLift.PutScalingPolicy

-- | Creates a value of <a>PutScalingPolicy</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pspScalingAdjustmentType</a> - Type of adjustment to make to a
--   fleet's instance count (see <a>FleetCapacity</a> ): *
--   <b>ChangeInCapacity</b> -- add (or subtract) the scaling adjustment
--   value from the current instance count. Positive values scale up while
--   negative values scale down. * <b>ExactCapacity</b> -- set the instance
--   count to the scaling adjustment value. *
--   <b>PercentChangeInCapacity</b> -- increase or reduce the current
--   instance count by the scaling adjustment, read as a percentage.
--   Positive values scale up while negative values scale down; for
--   example, a value of "-10" scales the fleet down by 10%.</li>
--   <li><a>pspEvaluationPeriods</a> - Length of time (in minutes) the
--   metric must be at or beyond the threshold before a scaling event is
--   triggered.</li>
--   <li><a>pspPolicyType</a> - Type of scaling policy to create. For a
--   target-based policy, set the parameter <i>MetricName</i> to
--   <a>PercentAvailableGameSessions</a> and specify a
--   <i>TargetConfiguration</i> . For a rule-based policy set the following
--   parameters: <i>MetricName</i> , <i>ComparisonOperator</i> ,
--   <i>Threshold</i> , <i>EvaluationPeriods</i> ,
--   <i>ScalingAdjustmentType</i> , and <i>ScalingAdjustment</i> .</li>
--   <li><a>pspComparisonOperator</a> - Comparison operator to use when
--   measuring the metric against the threshold value.</li>
--   <li><a>pspThreshold</a> - Metric value used to trigger a scaling
--   event.</li>
--   <li><a>pspScalingAdjustment</a> - Amount of adjustment to make, based
--   on the scaling adjustment type.</li>
--   <li><a>pspTargetConfiguration</a> - Object that contains settings for
--   a target-based scaling policy.</li>
--   <li><a>pspName</a> - Descriptive label that is associated with a
--   scaling policy. Policy names do not need to be unique. A fleet can
--   have only one scaling policy with the same name.</li>
--   <li><a>pspFleetId</a> - Unique identifier for a fleet to apply this
--   policy to. The fleet cannot be in any of the following statuses: ERROR
--   or DELETING.</li>
--   <li><a>pspMetricName</a> - Name of the Amazon GameLift-defined metric
--   that is used to trigger a scaling adjustment. For detailed
--   descriptions of fleet metrics, see <a>Monitor Amazon GameLift with
--   Amazon CloudWatch</a> . * <b>ActivatingGameSessions</b> -- Game
--   sessions in the process of being created. * <b>ActiveGameSessions</b>
--   -- Game sessions that are currently running. * <b>ActiveInstances</b>
--   -- Fleet instances that are currently running at least one game
--   session. * <b>AvailableGameSessions</b> -- Additional game sessions
--   that fleet could host simultaneously, given current capacity. *
--   <b>AvailablePlayerSessions</b> -- Empty player slots in currently
--   active game sessions. This includes game sessions that are not
--   currently accepting players. Reserved player slots are not included. *
--   <b>CurrentPlayerSessions</b> -- Player slots in active game sessions
--   that are being used by a player or are reserved for a player. *
--   <b>IdleInstances</b> -- Active instances that are currently hosting
--   zero game sessions. * <b>PercentAvailableGameSessions</b> -- Unused
--   percentage of the total number of game sessions that a fleet could
--   host simultaneously, given current capacity. Use this metric for a
--   target-based scaling policy. * <b>PercentIdleInstances</b> --
--   Percentage of the total number of active instances that are hosting
--   zero game sessions. * <b>QueueDepth</b> -- Pending game session
--   placement requests, in any queue, where the current fleet is the
--   top-priority destination. * <b>WaitTime</b> -- Current wait time for
--   pending game session placement requests, in any queue, where the
--   current fleet is the top-priority destination.</li>
--   </ul>
putScalingPolicy :: Text -> Text -> MetricName -> PutScalingPolicy

-- | Represents the input for a request action.
--   
--   <i>See:</i> <a>putScalingPolicy</a> smart constructor.
data PutScalingPolicy

-- | Type of adjustment to make to a fleet's instance count (see
--   <a>FleetCapacity</a> ): * <b>ChangeInCapacity</b> -- add (or subtract)
--   the scaling adjustment value from the current instance count. Positive
--   values scale up while negative values scale down. *
--   <b>ExactCapacity</b> -- set the instance count to the scaling
--   adjustment value. * <b>PercentChangeInCapacity</b> -- increase or
--   reduce the current instance count by the scaling adjustment, read as a
--   percentage. Positive values scale up while negative values scale down;
--   for example, a value of "-10" scales the fleet down by 10%.
pspScalingAdjustmentType :: Lens' PutScalingPolicy (Maybe ScalingAdjustmentType)

-- | Length of time (in minutes) the metric must be at or beyond the
--   threshold before a scaling event is triggered.
pspEvaluationPeriods :: Lens' PutScalingPolicy (Maybe Natural)

-- | Type of scaling policy to create. For a target-based policy, set the
--   parameter <i>MetricName</i> to <a>PercentAvailableGameSessions</a> and
--   specify a <i>TargetConfiguration</i> . For a rule-based policy set the
--   following parameters: <i>MetricName</i> , <i>ComparisonOperator</i> ,
--   <i>Threshold</i> , <i>EvaluationPeriods</i> ,
--   <i>ScalingAdjustmentType</i> , and <i>ScalingAdjustment</i> .
pspPolicyType :: Lens' PutScalingPolicy (Maybe PolicyType)

-- | Comparison operator to use when measuring the metric against the
--   threshold value.
pspComparisonOperator :: Lens' PutScalingPolicy (Maybe ComparisonOperatorType)

-- | Metric value used to trigger a scaling event.
pspThreshold :: Lens' PutScalingPolicy (Maybe Double)

-- | Amount of adjustment to make, based on the scaling adjustment type.
pspScalingAdjustment :: Lens' PutScalingPolicy (Maybe Int)

-- | Object that contains settings for a target-based scaling policy.
pspTargetConfiguration :: Lens' PutScalingPolicy (Maybe TargetConfiguration)

-- | Descriptive label that is associated with a scaling policy. Policy
--   names do not need to be unique. A fleet can have only one scaling
--   policy with the same name.
pspName :: Lens' PutScalingPolicy Text

-- | Unique identifier for a fleet to apply this policy to. The fleet
--   cannot be in any of the following statuses: ERROR or DELETING.
pspFleetId :: Lens' PutScalingPolicy Text

-- | Name of the Amazon GameLift-defined metric that is used to trigger a
--   scaling adjustment. For detailed descriptions of fleet metrics, see
--   <a>Monitor Amazon GameLift with Amazon CloudWatch</a> . *
--   <b>ActivatingGameSessions</b> -- Game sessions in the process of being
--   created. * <b>ActiveGameSessions</b> -- Game sessions that are
--   currently running. * <b>ActiveInstances</b> -- Fleet instances that
--   are currently running at least one game session. *
--   <b>AvailableGameSessions</b> -- Additional game sessions that fleet
--   could host simultaneously, given current capacity. *
--   <b>AvailablePlayerSessions</b> -- Empty player slots in currently
--   active game sessions. This includes game sessions that are not
--   currently accepting players. Reserved player slots are not included. *
--   <b>CurrentPlayerSessions</b> -- Player slots in active game sessions
--   that are being used by a player or are reserved for a player. *
--   <b>IdleInstances</b> -- Active instances that are currently hosting
--   zero game sessions. * <b>PercentAvailableGameSessions</b> -- Unused
--   percentage of the total number of game sessions that a fleet could
--   host simultaneously, given current capacity. Use this metric for a
--   target-based scaling policy. * <b>PercentIdleInstances</b> --
--   Percentage of the total number of active instances that are hosting
--   zero game sessions. * <b>QueueDepth</b> -- Pending game session
--   placement requests, in any queue, where the current fleet is the
--   top-priority destination. * <b>WaitTime</b> -- Current wait time for
--   pending game session placement requests, in any queue, where the
--   current fleet is the top-priority destination.
pspMetricName :: Lens' PutScalingPolicy MetricName

-- | Creates a value of <a>PutScalingPolicyResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>psprsName</a> - Descriptive label that is associated with a
--   scaling policy. Policy names do not need to be unique.</li>
--   <li><a>psprsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
putScalingPolicyResponse :: Int -> PutScalingPolicyResponse

-- | Represents the returned data in response to a request action.
--   
--   <i>See:</i> <a>putScalingPolicyResponse</a> smart constructor.
data PutScalingPolicyResponse

-- | Descriptive label that is associated with a scaling policy. Policy
--   names do not need to be unique.
psprsName :: Lens' PutScalingPolicyResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
psprsResponseStatus :: Lens' PutScalingPolicyResponse Int
instance GHC.Generics.Generic Network.AWS.GameLift.PutScalingPolicy.PutScalingPolicyResponse
instance Data.Data.Data Network.AWS.GameLift.PutScalingPolicy.PutScalingPolicyResponse
instance GHC.Show.Show Network.AWS.GameLift.PutScalingPolicy.PutScalingPolicyResponse
instance GHC.Read.Read Network.AWS.GameLift.PutScalingPolicy.PutScalingPolicyResponse
instance GHC.Classes.Eq Network.AWS.GameLift.PutScalingPolicy.PutScalingPolicyResponse
instance GHC.Generics.Generic Network.AWS.GameLift.PutScalingPolicy.PutScalingPolicy
instance Data.Data.Data Network.AWS.GameLift.PutScalingPolicy.PutScalingPolicy
instance GHC.Show.Show Network.AWS.GameLift.PutScalingPolicy.PutScalingPolicy
instance GHC.Read.Read Network.AWS.GameLift.PutScalingPolicy.PutScalingPolicy
instance GHC.Classes.Eq Network.AWS.GameLift.PutScalingPolicy.PutScalingPolicy
instance Network.AWS.Types.AWSRequest Network.AWS.GameLift.PutScalingPolicy.PutScalingPolicy
instance Control.DeepSeq.NFData Network.AWS.GameLift.PutScalingPolicy.PutScalingPolicyResponse
instance Data.Hashable.Class.Hashable Network.AWS.GameLift.PutScalingPolicy.PutScalingPolicy
instance Control.DeepSeq.NFData Network.AWS.GameLift.PutScalingPolicy.PutScalingPolicy
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.GameLift.PutScalingPolicy.PutScalingPolicy
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.GameLift.PutScalingPolicy.PutScalingPolicy
instance Network.AWS.Data.Path.ToPath Network.AWS.GameLift.PutScalingPolicy.PutScalingPolicy
instance Network.AWS.Data.Query.ToQuery Network.AWS.GameLift.PutScalingPolicy.PutScalingPolicy


-- | Retrieves a collection of fleet records for this AWS account. You can
--   filter the result set by build ID. Use the pagination parameters to
--   retrieve results in sequential pages.
--   
--   Fleet-related operations include:
--   
--   <ul>
--   <li><tt>CreateFleet</tt></li>
--   <li><a>ListFleets</a></li>
--   <li><tt>DeleteFleet</tt></li>
--   <li>Describe fleets:</li>
--   <li><tt>DescribeFleetAttributes</tt></li>
--   <li><tt>DescribeFleetCapacity</tt></li>
--   <li><tt>DescribeFleetPortSettings</tt></li>
--   <li><tt>DescribeFleetUtilization</tt></li>
--   <li><tt>DescribeRuntimeConfiguration</tt></li>
--   <li><tt>DescribeEC2InstanceLimits</tt></li>
--   <li><tt>DescribeFleetEvents</tt></li>
--   <li>Update fleets:</li>
--   <li><tt>UpdateFleetAttributes</tt></li>
--   <li><tt>UpdateFleetCapacity</tt></li>
--   <li><tt>UpdateFleetPortSettings</tt></li>
--   <li><tt>UpdateRuntimeConfiguration</tt></li>
--   <li>Manage fleet actions:</li>
--   <li><tt>StartFleetActions</tt></li>
--   <li><tt>StopFleetActions</tt></li>
--   </ul>
module Network.AWS.GameLift.ListFleets

-- | Creates a value of <a>ListFleets</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lfBuildId</a> - Unique identifier for a build to return fleets
--   for. Use this parameter to return only fleets using the specified
--   build. To retrieve all fleets, leave this parameter empty.</li>
--   <li><a>lfNextToken</a> - Token that indicates the start of the next
--   sequential page of results. Use the token that is returned with a
--   previous call to this action. To start at the beginning of the result
--   set, do not specify a value.</li>
--   <li><a>lfLimit</a> - Maximum number of results to return. Use this
--   parameter with <tt>NextToken</tt> to get results as a set of
--   sequential pages.</li>
--   </ul>
listFleets :: ListFleets

-- | Represents the input for a request action.
--   
--   <i>See:</i> <a>listFleets</a> smart constructor.
data ListFleets

-- | Unique identifier for a build to return fleets for. Use this parameter
--   to return only fleets using the specified build. To retrieve all
--   fleets, leave this parameter empty.
lfBuildId :: Lens' ListFleets (Maybe Text)

-- | Token that indicates the start of the next sequential page of results.
--   Use the token that is returned with a previous call to this action. To
--   start at the beginning of the result set, do not specify a value.
lfNextToken :: Lens' ListFleets (Maybe Text)

-- | Maximum number of results to return. Use this parameter with
--   <tt>NextToken</tt> to get results as a set of sequential pages.
lfLimit :: Lens' ListFleets (Maybe Natural)

-- | Creates a value of <a>ListFleetsResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lfrsNextToken</a> - Token that indicates where to resume
--   retrieving results on the next call to this action. If no token is
--   returned, these results represent the end of the list.</li>
--   <li><a>lfrsFleetIds</a> - Set of fleet IDs matching the list request.
--   You can retrieve additional information about all returned fleets by
--   passing this result set to a call to <tt>DescribeFleetAttributes</tt>
--   , <tt>DescribeFleetCapacity</tt> , or
--   <tt>DescribeFleetUtilization</tt> .</li>
--   <li><a>lfrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
listFleetsResponse :: Int -> ListFleetsResponse

-- | Represents the returned data in response to a request action.
--   
--   <i>See:</i> <a>listFleetsResponse</a> smart constructor.
data ListFleetsResponse

-- | Token that indicates where to resume retrieving results on the next
--   call to this action. If no token is returned, these results represent
--   the end of the list.
lfrsNextToken :: Lens' ListFleetsResponse (Maybe Text)

-- | Set of fleet IDs matching the list request. You can retrieve
--   additional information about all returned fleets by passing this
--   result set to a call to <tt>DescribeFleetAttributes</tt> ,
--   <tt>DescribeFleetCapacity</tt> , or <tt>DescribeFleetUtilization</tt>
--   .
lfrsFleetIds :: Lens' ListFleetsResponse (Maybe (NonEmpty Text))

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
lfrsResponseStatus :: Lens' ListFleetsResponse Int
instance GHC.Generics.Generic Network.AWS.GameLift.ListFleets.ListFleetsResponse
instance Data.Data.Data Network.AWS.GameLift.ListFleets.ListFleetsResponse
instance GHC.Show.Show Network.AWS.GameLift.ListFleets.ListFleetsResponse
instance GHC.Read.Read Network.AWS.GameLift.ListFleets.ListFleetsResponse
instance GHC.Classes.Eq Network.AWS.GameLift.ListFleets.ListFleetsResponse
instance GHC.Generics.Generic Network.AWS.GameLift.ListFleets.ListFleets
instance Data.Data.Data Network.AWS.GameLift.ListFleets.ListFleets
instance GHC.Show.Show Network.AWS.GameLift.ListFleets.ListFleets
instance GHC.Read.Read Network.AWS.GameLift.ListFleets.ListFleets
instance GHC.Classes.Eq Network.AWS.GameLift.ListFleets.ListFleets
instance Network.AWS.Types.AWSRequest Network.AWS.GameLift.ListFleets.ListFleets
instance Control.DeepSeq.NFData Network.AWS.GameLift.ListFleets.ListFleetsResponse
instance Data.Hashable.Class.Hashable Network.AWS.GameLift.ListFleets.ListFleets
instance Control.DeepSeq.NFData Network.AWS.GameLift.ListFleets.ListFleets
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.GameLift.ListFleets.ListFleets
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.GameLift.ListFleets.ListFleets
instance Network.AWS.Data.Path.ToPath Network.AWS.GameLift.ListFleets.ListFleets
instance Network.AWS.Data.Query.ToQuery Network.AWS.GameLift.ListFleets.ListFleets


-- | Retrieves build records for all builds associated with the AWS account
--   in use. You can limit results to builds that are in a specific status
--   by using the <tt>Status</tt> parameter. Use the pagination parameters
--   to retrieve results in a set of sequential pages.
--   
--   Build-related operations include:
--   
--   <ul>
--   <li><tt>CreateBuild</tt></li>
--   <li><a>ListBuilds</a></li>
--   <li><tt>DescribeBuild</tt></li>
--   <li><tt>UpdateBuild</tt></li>
--   <li><tt>DeleteBuild</tt></li>
--   </ul>
module Network.AWS.GameLift.ListBuilds

-- | Creates a value of <a>ListBuilds</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lbStatus</a> - Build status to filter results by. To retrieve
--   all builds, leave this parameter empty. Possible build statuses
--   include the following: * <b>INITIALIZED</b> -- A new build has been
--   defined, but no files have been uploaded. You cannot create fleets for
--   builds that are in this status. When a build is successfully created,
--   the build status is set to this value. * <b>READY</b> -- The game
--   build has been successfully uploaded. You can now create new fleets
--   for this build. * <b>FAILED</b> -- The game build upload failed. You
--   cannot create new fleets for this build.</li>
--   <li><a>lbNextToken</a> - Token that indicates the start of the next
--   sequential page of results. Use the token that is returned with a
--   previous call to this action. To start at the beginning of the result
--   set, do not specify a value.</li>
--   <li><a>lbLimit</a> - Maximum number of results to return. Use this
--   parameter with <tt>NextToken</tt> to get results as a set of
--   sequential pages.</li>
--   </ul>
listBuilds :: ListBuilds

-- | Represents the input for a request action.
--   
--   <i>See:</i> <a>listBuilds</a> smart constructor.
data ListBuilds

-- | Build status to filter results by. To retrieve all builds, leave this
--   parameter empty. Possible build statuses include the following: *
--   <b>INITIALIZED</b> -- A new build has been defined, but no files have
--   been uploaded. You cannot create fleets for builds that are in this
--   status. When a build is successfully created, the build status is set
--   to this value. * <b>READY</b> -- The game build has been successfully
--   uploaded. You can now create new fleets for this build. *
--   <b>FAILED</b> -- The game build upload failed. You cannot create new
--   fleets for this build.
lbStatus :: Lens' ListBuilds (Maybe BuildStatus)

-- | Token that indicates the start of the next sequential page of results.
--   Use the token that is returned with a previous call to this action. To
--   start at the beginning of the result set, do not specify a value.
lbNextToken :: Lens' ListBuilds (Maybe Text)

-- | Maximum number of results to return. Use this parameter with
--   <tt>NextToken</tt> to get results as a set of sequential pages.
lbLimit :: Lens' ListBuilds (Maybe Natural)

-- | Creates a value of <a>ListBuildsResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lbrsBuilds</a> - Collection of build records that match the
--   request.</li>
--   <li><a>lbrsNextToken</a> - Token that indicates where to resume
--   retrieving results on the next call to this action. If no token is
--   returned, these results represent the end of the list.</li>
--   <li><a>lbrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
listBuildsResponse :: Int -> ListBuildsResponse

-- | Represents the returned data in response to a request action.
--   
--   <i>See:</i> <a>listBuildsResponse</a> smart constructor.
data ListBuildsResponse

-- | Collection of build records that match the request.
lbrsBuilds :: Lens' ListBuildsResponse [Build]

-- | Token that indicates where to resume retrieving results on the next
--   call to this action. If no token is returned, these results represent
--   the end of the list.
lbrsNextToken :: Lens' ListBuildsResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
lbrsResponseStatus :: Lens' ListBuildsResponse Int
instance GHC.Generics.Generic Network.AWS.GameLift.ListBuilds.ListBuildsResponse
instance Data.Data.Data Network.AWS.GameLift.ListBuilds.ListBuildsResponse
instance GHC.Show.Show Network.AWS.GameLift.ListBuilds.ListBuildsResponse
instance GHC.Read.Read Network.AWS.GameLift.ListBuilds.ListBuildsResponse
instance GHC.Classes.Eq Network.AWS.GameLift.ListBuilds.ListBuildsResponse
instance GHC.Generics.Generic Network.AWS.GameLift.ListBuilds.ListBuilds
instance Data.Data.Data Network.AWS.GameLift.ListBuilds.ListBuilds
instance GHC.Show.Show Network.AWS.GameLift.ListBuilds.ListBuilds
instance GHC.Read.Read Network.AWS.GameLift.ListBuilds.ListBuilds
instance GHC.Classes.Eq Network.AWS.GameLift.ListBuilds.ListBuilds
instance Network.AWS.Types.AWSRequest Network.AWS.GameLift.ListBuilds.ListBuilds
instance Control.DeepSeq.NFData Network.AWS.GameLift.ListBuilds.ListBuildsResponse
instance Data.Hashable.Class.Hashable Network.AWS.GameLift.ListBuilds.ListBuilds
instance Control.DeepSeq.NFData Network.AWS.GameLift.ListBuilds.ListBuilds
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.GameLift.ListBuilds.ListBuilds
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.GameLift.ListBuilds.ListBuilds
instance Network.AWS.Data.Path.ToPath Network.AWS.GameLift.ListBuilds.ListBuilds
instance Network.AWS.Data.Query.ToQuery Network.AWS.GameLift.ListBuilds.ListBuilds


-- | Retrieves all aliases for this AWS account. You can filter the result
--   set by alias name and/or routing strategy type. Use the pagination
--   parameters to retrieve results in sequential pages.
--   
--   Alias-related operations include:
--   
--   <ul>
--   <li><tt>CreateAlias</tt></li>
--   <li><a>ListAliases</a></li>
--   <li><tt>DescribeAlias</tt></li>
--   <li><tt>UpdateAlias</tt></li>
--   <li><tt>DeleteAlias</tt></li>
--   <li><tt>ResolveAlias</tt></li>
--   </ul>
module Network.AWS.GameLift.ListAliases

-- | Creates a value of <a>ListAliases</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>laRoutingStrategyType</a> - Type of routing to filter results
--   on. Use this parameter to retrieve only aliases of a certain type. To
--   retrieve all aliases, leave this parameter empty. Possible routing
--   types include the following: * <b>SIMPLE</b> -- The alias resolves to
--   one specific fleet. Use this type when routing to active fleets. *
--   <b>TERMINAL</b> -- The alias does not resolve to a fleet but instead
--   can be used to display a message to the user. A terminal alias throws
--   a TerminalRoutingStrategyException with the <a>RoutingStrategy</a>
--   message embedded.</li>
--   <li><a>laNextToken</a> - Token that indicates the start of the next
--   sequential page of results. Use the token that is returned with a
--   previous call to this action. To start at the beginning of the result
--   set, do not specify a value.</li>
--   <li><a>laName</a> - Descriptive label that is associated with an
--   alias. Alias names do not need to be unique.</li>
--   <li><a>laLimit</a> - Maximum number of results to return. Use this
--   parameter with <tt>NextToken</tt> to get results as a set of
--   sequential pages.</li>
--   </ul>
listAliases :: ListAliases

-- | Represents the input for a request action.
--   
--   <i>See:</i> <a>listAliases</a> smart constructor.
data ListAliases

-- | Type of routing to filter results on. Use this parameter to retrieve
--   only aliases of a certain type. To retrieve all aliases, leave this
--   parameter empty. Possible routing types include the following: *
--   <b>SIMPLE</b> -- The alias resolves to one specific fleet. Use this
--   type when routing to active fleets. * <b>TERMINAL</b> -- The alias
--   does not resolve to a fleet but instead can be used to display a
--   message to the user. A terminal alias throws a
--   TerminalRoutingStrategyException with the <a>RoutingStrategy</a>
--   message embedded.
laRoutingStrategyType :: Lens' ListAliases (Maybe RoutingStrategyType)

-- | Token that indicates the start of the next sequential page of results.
--   Use the token that is returned with a previous call to this action. To
--   start at the beginning of the result set, do not specify a value.
laNextToken :: Lens' ListAliases (Maybe Text)

-- | Descriptive label that is associated with an alias. Alias names do not
--   need to be unique.
laName :: Lens' ListAliases (Maybe Text)

-- | Maximum number of results to return. Use this parameter with
--   <tt>NextToken</tt> to get results as a set of sequential pages.
laLimit :: Lens' ListAliases (Maybe Natural)

-- | Creates a value of <a>ListAliasesResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>larsAliases</a> - Collection of alias records that match the
--   list request.</li>
--   <li><a>larsNextToken</a> - Token that indicates where to resume
--   retrieving results on the next call to this action. If no token is
--   returned, these results represent the end of the list.</li>
--   <li><a>larsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
listAliasesResponse :: Int -> ListAliasesResponse

-- | Represents the returned data in response to a request action.
--   
--   <i>See:</i> <a>listAliasesResponse</a> smart constructor.
data ListAliasesResponse

-- | Collection of alias records that match the list request.
larsAliases :: Lens' ListAliasesResponse [Alias]

-- | Token that indicates where to resume retrieving results on the next
--   call to this action. If no token is returned, these results represent
--   the end of the list.
larsNextToken :: Lens' ListAliasesResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
larsResponseStatus :: Lens' ListAliasesResponse Int
instance GHC.Generics.Generic Network.AWS.GameLift.ListAliases.ListAliasesResponse
instance Data.Data.Data Network.AWS.GameLift.ListAliases.ListAliasesResponse
instance GHC.Show.Show Network.AWS.GameLift.ListAliases.ListAliasesResponse
instance GHC.Read.Read Network.AWS.GameLift.ListAliases.ListAliasesResponse
instance GHC.Classes.Eq Network.AWS.GameLift.ListAliases.ListAliasesResponse
instance GHC.Generics.Generic Network.AWS.GameLift.ListAliases.ListAliases
instance Data.Data.Data Network.AWS.GameLift.ListAliases.ListAliases
instance GHC.Show.Show Network.AWS.GameLift.ListAliases.ListAliases
instance GHC.Read.Read Network.AWS.GameLift.ListAliases.ListAliases
instance GHC.Classes.Eq Network.AWS.GameLift.ListAliases.ListAliases
instance Network.AWS.Types.AWSRequest Network.AWS.GameLift.ListAliases.ListAliases
instance Control.DeepSeq.NFData Network.AWS.GameLift.ListAliases.ListAliasesResponse
instance Data.Hashable.Class.Hashable Network.AWS.GameLift.ListAliases.ListAliases
instance Control.DeepSeq.NFData Network.AWS.GameLift.ListAliases.ListAliases
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.GameLift.ListAliases.ListAliases
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.GameLift.ListAliases.ListAliases
instance Network.AWS.Data.Path.ToPath Network.AWS.GameLift.ListAliases.ListAliases
instance Network.AWS.Data.Query.ToQuery Network.AWS.GameLift.ListAliases.ListAliases


-- | Requests remote access to a fleet instance. Remote access is useful
--   for debugging, gathering benchmarking data, or watching activity in
--   real time.
--   
--   Access requires credentials that match the operating system of the
--   instance. For a Windows instance, Amazon GameLift returns a user name
--   and password as strings for use with a Windows Remote Desktop client.
--   For a Linux instance, Amazon GameLift returns a user name and RSA
--   private key, also as strings, for use with an SSH client. The private
--   key must be saved in the proper format to a <tt>.pem</tt> file before
--   using. If you're making this request using the AWS CLI, saving the
--   secret can be handled as part of the GetInstanceAccess request. (See
--   the example later in this topic). For more information on remote
--   access, see <a>Remotely Accessing an Instance</a> .
--   
--   To request access to a specific instance, specify the IDs of the
--   instance and the fleet it belongs to. If successful, an
--   <a>InstanceAccess</a> object is returned containing the instance's IP
--   address and a set of credentials.
module Network.AWS.GameLift.GetInstanceAccess

-- | Creates a value of <a>GetInstanceAccess</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>giaFleetId</a> - Unique identifier for a fleet that contains
--   the instance you want access to. The fleet can be in any of the
--   following statuses: <tt>ACTIVATING</tt> , <tt>ACTIVE</tt> , or
--   <tt>ERROR</tt> . Fleets with an <tt>ERROR</tt> status may be
--   accessible for a short time before they are deleted.</li>
--   <li><a>giaInstanceId</a> - Unique identifier for an instance you want
--   to get access to. You can access an instance in any status.</li>
--   </ul>
getInstanceAccess :: Text -> Text -> GetInstanceAccess

-- | Represents the input for a request action.
--   
--   <i>See:</i> <a>getInstanceAccess</a> smart constructor.
data GetInstanceAccess

-- | Unique identifier for a fleet that contains the instance you want
--   access to. The fleet can be in any of the following statuses:
--   <tt>ACTIVATING</tt> , <tt>ACTIVE</tt> , or <tt>ERROR</tt> . Fleets
--   with an <tt>ERROR</tt> status may be accessible for a short time
--   before they are deleted.
giaFleetId :: Lens' GetInstanceAccess Text

-- | Unique identifier for an instance you want to get access to. You can
--   access an instance in any status.
giaInstanceId :: Lens' GetInstanceAccess Text

-- | Creates a value of <a>GetInstanceAccessResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>giarsInstanceAccess</a> - Object that contains connection
--   information for a fleet instance, including IP address and access
--   credentials.</li>
--   <li><a>giarsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getInstanceAccessResponse :: Int -> GetInstanceAccessResponse

-- | Represents the returned data in response to a request action.
--   
--   <i>See:</i> <a>getInstanceAccessResponse</a> smart constructor.
data GetInstanceAccessResponse

-- | Object that contains connection information for a fleet instance,
--   including IP address and access credentials.
giarsInstanceAccess :: Lens' GetInstanceAccessResponse (Maybe InstanceAccess)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
giarsResponseStatus :: Lens' GetInstanceAccessResponse Int
instance GHC.Generics.Generic Network.AWS.GameLift.GetInstanceAccess.GetInstanceAccessResponse
instance Data.Data.Data Network.AWS.GameLift.GetInstanceAccess.GetInstanceAccessResponse
instance GHC.Show.Show Network.AWS.GameLift.GetInstanceAccess.GetInstanceAccessResponse
instance GHC.Classes.Eq Network.AWS.GameLift.GetInstanceAccess.GetInstanceAccessResponse
instance GHC.Generics.Generic Network.AWS.GameLift.GetInstanceAccess.GetInstanceAccess
instance Data.Data.Data Network.AWS.GameLift.GetInstanceAccess.GetInstanceAccess
instance GHC.Show.Show Network.AWS.GameLift.GetInstanceAccess.GetInstanceAccess
instance GHC.Read.Read Network.AWS.GameLift.GetInstanceAccess.GetInstanceAccess
instance GHC.Classes.Eq Network.AWS.GameLift.GetInstanceAccess.GetInstanceAccess
instance Network.AWS.Types.AWSRequest Network.AWS.GameLift.GetInstanceAccess.GetInstanceAccess
instance Control.DeepSeq.NFData Network.AWS.GameLift.GetInstanceAccess.GetInstanceAccessResponse
instance Data.Hashable.Class.Hashable Network.AWS.GameLift.GetInstanceAccess.GetInstanceAccess
instance Control.DeepSeq.NFData Network.AWS.GameLift.GetInstanceAccess.GetInstanceAccess
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.GameLift.GetInstanceAccess.GetInstanceAccess
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.GameLift.GetInstanceAccess.GetInstanceAccess
instance Network.AWS.Data.Path.ToPath Network.AWS.GameLift.GetInstanceAccess.GetInstanceAccess
instance Network.AWS.Data.Query.ToQuery Network.AWS.GameLift.GetInstanceAccess.GetInstanceAccess


-- | Retrieves the location of stored game session logs for a specified
--   game session. When a game session is terminated, Amazon GameLift
--   automatically stores the logs in Amazon S3 and retains them for 14
--   days. Use this URL to download the logs.
--   
--   Game-session-related operations include:
--   
--   <ul>
--   <li><tt>CreateGameSession</tt></li>
--   <li><tt>DescribeGameSessions</tt></li>
--   <li><tt>DescribeGameSessionDetails</tt></li>
--   <li><tt>SearchGameSessions</tt></li>
--   <li><tt>UpdateGameSession</tt></li>
--   <li><tt>GetGameSessionLogUrl</tt></li>
--   <li>Game session placements</li>
--   <li><tt>StartGameSessionPlacement</tt></li>
--   <li><tt>DescribeGameSessionPlacement</tt></li>
--   <li><tt>StopGameSessionPlacement</tt></li>
--   </ul>
module Network.AWS.GameLift.GetGameSessionLogURL

-- | Creates a value of <a>GetGameSessionLogURL</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ggsluGameSessionId</a> - Unique identifier for the game session
--   to get logs for.</li>
--   </ul>
getGameSessionLogURL :: Text -> GetGameSessionLogURL

-- | Represents the input for a request action.
--   
--   <i>See:</i> <a>getGameSessionLogURL</a> smart constructor.
data GetGameSessionLogURL

-- | Unique identifier for the game session to get logs for.
ggsluGameSessionId :: Lens' GetGameSessionLogURL Text

-- | Creates a value of <a>GetGameSessionLogURLResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ggslursPreSignedURL</a> - Location of the requested game
--   session logs, available for download.</li>
--   <li><a>ggslursResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getGameSessionLogURLResponse :: Int -> GetGameSessionLogURLResponse

-- | Represents the returned data in response to a request action.
--   
--   <i>See:</i> <a>getGameSessionLogURLResponse</a> smart constructor.
data GetGameSessionLogURLResponse

-- | Location of the requested game session logs, available for download.
ggslursPreSignedURL :: Lens' GetGameSessionLogURLResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
ggslursResponseStatus :: Lens' GetGameSessionLogURLResponse Int
instance GHC.Generics.Generic Network.AWS.GameLift.GetGameSessionLogURL.GetGameSessionLogURLResponse
instance Data.Data.Data Network.AWS.GameLift.GetGameSessionLogURL.GetGameSessionLogURLResponse
instance GHC.Show.Show Network.AWS.GameLift.GetGameSessionLogURL.GetGameSessionLogURLResponse
instance GHC.Read.Read Network.AWS.GameLift.GetGameSessionLogURL.GetGameSessionLogURLResponse
instance GHC.Classes.Eq Network.AWS.GameLift.GetGameSessionLogURL.GetGameSessionLogURLResponse
instance GHC.Generics.Generic Network.AWS.GameLift.GetGameSessionLogURL.GetGameSessionLogURL
instance Data.Data.Data Network.AWS.GameLift.GetGameSessionLogURL.GetGameSessionLogURL
instance GHC.Show.Show Network.AWS.GameLift.GetGameSessionLogURL.GetGameSessionLogURL
instance GHC.Read.Read Network.AWS.GameLift.GetGameSessionLogURL.GetGameSessionLogURL
instance GHC.Classes.Eq Network.AWS.GameLift.GetGameSessionLogURL.GetGameSessionLogURL
instance Network.AWS.Types.AWSRequest Network.AWS.GameLift.GetGameSessionLogURL.GetGameSessionLogURL
instance Control.DeepSeq.NFData Network.AWS.GameLift.GetGameSessionLogURL.GetGameSessionLogURLResponse
instance Data.Hashable.Class.Hashable Network.AWS.GameLift.GetGameSessionLogURL.GetGameSessionLogURL
instance Control.DeepSeq.NFData Network.AWS.GameLift.GetGameSessionLogURL.GetGameSessionLogURL
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.GameLift.GetGameSessionLogURL.GetGameSessionLogURL
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.GameLift.GetGameSessionLogURL.GetGameSessionLogURL
instance Network.AWS.Data.Path.ToPath Network.AWS.GameLift.GetGameSessionLogURL.GetGameSessionLogURL
instance Network.AWS.Data.Query.ToQuery Network.AWS.GameLift.GetGameSessionLogURL.GetGameSessionLogURL


-- | Retrieves information on VPC peering connections. Use this operation
--   to get peering information for all fleets or for one specific fleet
--   ID.
--   
--   To retrieve connection information, call this operation from the AWS
--   account that is used to manage the Amazon GameLift fleets. Specify a
--   fleet ID or leave the parameter empty to retrieve all connection
--   records. If successful, the retrieved information includes both active
--   and pending connections. Active connections identify the IpV4 CIDR
--   block that the VPC uses to connect.
--   
--   VPC peering connection operations include:
--   
--   <ul>
--   <li><tt>CreateVpcPeeringAuthorization</tt></li>
--   <li><tt>DescribeVpcPeeringAuthorizations</tt></li>
--   <li><tt>DeleteVpcPeeringAuthorization</tt></li>
--   <li><tt>CreateVpcPeeringConnection</tt></li>
--   <li><tt>DescribeVpcPeeringConnections</tt></li>
--   <li><tt>DeleteVpcPeeringConnection</tt></li>
--   </ul>
module Network.AWS.GameLift.DescribeVPCPeeringConnections

-- | Creates a value of <a>DescribeVPCPeeringConnections</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dvpcpcFleetId</a> - Unique identifier for a fleet.</li>
--   </ul>
describeVPCPeeringConnections :: DescribeVPCPeeringConnections

-- | Represents the input for a request action.
--   
--   <i>See:</i> <a>describeVPCPeeringConnections</a> smart constructor.
data DescribeVPCPeeringConnections

-- | Unique identifier for a fleet.
dvpcpcFleetId :: Lens' DescribeVPCPeeringConnections (Maybe Text)

-- | Creates a value of <a>DescribeVPCPeeringConnectionsResponse</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dvpcpcrsVPCPeeringConnections</a> - Collection of VPC peering
--   connection records that match the request.</li>
--   <li><a>dvpcpcrsResponseStatus</a> - -- | The response status
--   code.</li>
--   </ul>
describeVPCPeeringConnectionsResponse :: Int -> DescribeVPCPeeringConnectionsResponse

-- | Represents the returned data in response to a request action.
--   
--   <i>See:</i> <a>describeVPCPeeringConnectionsResponse</a> smart
--   constructor.
data DescribeVPCPeeringConnectionsResponse

-- | Collection of VPC peering connection records that match the request.
dvpcpcrsVPCPeeringConnections :: Lens' DescribeVPCPeeringConnectionsResponse [VPCPeeringConnection]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
dvpcpcrsResponseStatus :: Lens' DescribeVPCPeeringConnectionsResponse Int
instance GHC.Generics.Generic Network.AWS.GameLift.DescribeVPCPeeringConnections.DescribeVPCPeeringConnectionsResponse
instance Data.Data.Data Network.AWS.GameLift.DescribeVPCPeeringConnections.DescribeVPCPeeringConnectionsResponse
instance GHC.Show.Show Network.AWS.GameLift.DescribeVPCPeeringConnections.DescribeVPCPeeringConnectionsResponse
instance GHC.Read.Read Network.AWS.GameLift.DescribeVPCPeeringConnections.DescribeVPCPeeringConnectionsResponse
instance GHC.Classes.Eq Network.AWS.GameLift.DescribeVPCPeeringConnections.DescribeVPCPeeringConnectionsResponse
instance GHC.Generics.Generic Network.AWS.GameLift.DescribeVPCPeeringConnections.DescribeVPCPeeringConnections
instance Data.Data.Data Network.AWS.GameLift.DescribeVPCPeeringConnections.DescribeVPCPeeringConnections
instance GHC.Show.Show Network.AWS.GameLift.DescribeVPCPeeringConnections.DescribeVPCPeeringConnections
instance GHC.Read.Read Network.AWS.GameLift.DescribeVPCPeeringConnections.DescribeVPCPeeringConnections
instance GHC.Classes.Eq Network.AWS.GameLift.DescribeVPCPeeringConnections.DescribeVPCPeeringConnections
instance Network.AWS.Types.AWSRequest Network.AWS.GameLift.DescribeVPCPeeringConnections.DescribeVPCPeeringConnections
instance Control.DeepSeq.NFData Network.AWS.GameLift.DescribeVPCPeeringConnections.DescribeVPCPeeringConnectionsResponse
instance Data.Hashable.Class.Hashable Network.AWS.GameLift.DescribeVPCPeeringConnections.DescribeVPCPeeringConnections
instance Control.DeepSeq.NFData Network.AWS.GameLift.DescribeVPCPeeringConnections.DescribeVPCPeeringConnections
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.GameLift.DescribeVPCPeeringConnections.DescribeVPCPeeringConnections
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.GameLift.DescribeVPCPeeringConnections.DescribeVPCPeeringConnections
instance Network.AWS.Data.Path.ToPath Network.AWS.GameLift.DescribeVPCPeeringConnections.DescribeVPCPeeringConnections
instance Network.AWS.Data.Query.ToQuery Network.AWS.GameLift.DescribeVPCPeeringConnections.DescribeVPCPeeringConnections


-- | Retrieves valid VPC peering authorizations that are pending for the
--   AWS account. This operation returns all VPC peering authorizations and
--   requests for peering. This includes those initiated and received by
--   this account.
--   
--   VPC peering connection operations include:
--   
--   <ul>
--   <li><tt>CreateVpcPeeringAuthorization</tt></li>
--   <li><tt>DescribeVpcPeeringAuthorizations</tt></li>
--   <li><tt>DeleteVpcPeeringAuthorization</tt></li>
--   <li><tt>CreateVpcPeeringConnection</tt></li>
--   <li><tt>DescribeVpcPeeringConnections</tt></li>
--   <li><tt>DeleteVpcPeeringConnection</tt></li>
--   </ul>
module Network.AWS.GameLift.DescribeVPCPeeringAuthorizations

-- | Creates a value of <a>DescribeVPCPeeringAuthorizations</a> with the
--   minimum fields required to make a request.
describeVPCPeeringAuthorizations :: DescribeVPCPeeringAuthorizations

-- | <i>See:</i> <a>describeVPCPeeringAuthorizations</a> smart constructor.
data DescribeVPCPeeringAuthorizations

-- | Creates a value of <a>DescribeVPCPeeringAuthorizationsResponse</a>
--   with the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dvpcparsVPCPeeringAuthorizations</a> - Collection of objects
--   that describe all valid VPC peering operations for the current AWS
--   account.</li>
--   <li><a>dvpcparsResponseStatus</a> - -- | The response status
--   code.</li>
--   </ul>
describeVPCPeeringAuthorizationsResponse :: Int -> DescribeVPCPeeringAuthorizationsResponse

-- | <i>See:</i> <a>describeVPCPeeringAuthorizationsResponse</a> smart
--   constructor.
data DescribeVPCPeeringAuthorizationsResponse

-- | Collection of objects that describe all valid VPC peering operations
--   for the current AWS account.
dvpcparsVPCPeeringAuthorizations :: Lens' DescribeVPCPeeringAuthorizationsResponse [VPCPeeringAuthorization]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
dvpcparsResponseStatus :: Lens' DescribeVPCPeeringAuthorizationsResponse Int
instance GHC.Generics.Generic Network.AWS.GameLift.DescribeVPCPeeringAuthorizations.DescribeVPCPeeringAuthorizationsResponse
instance Data.Data.Data Network.AWS.GameLift.DescribeVPCPeeringAuthorizations.DescribeVPCPeeringAuthorizationsResponse
instance GHC.Show.Show Network.AWS.GameLift.DescribeVPCPeeringAuthorizations.DescribeVPCPeeringAuthorizationsResponse
instance GHC.Read.Read Network.AWS.GameLift.DescribeVPCPeeringAuthorizations.DescribeVPCPeeringAuthorizationsResponse
instance GHC.Classes.Eq Network.AWS.GameLift.DescribeVPCPeeringAuthorizations.DescribeVPCPeeringAuthorizationsResponse
instance GHC.Generics.Generic Network.AWS.GameLift.DescribeVPCPeeringAuthorizations.DescribeVPCPeeringAuthorizations
instance Data.Data.Data Network.AWS.GameLift.DescribeVPCPeeringAuthorizations.DescribeVPCPeeringAuthorizations
instance GHC.Show.Show Network.AWS.GameLift.DescribeVPCPeeringAuthorizations.DescribeVPCPeeringAuthorizations
instance GHC.Read.Read Network.AWS.GameLift.DescribeVPCPeeringAuthorizations.DescribeVPCPeeringAuthorizations
instance GHC.Classes.Eq Network.AWS.GameLift.DescribeVPCPeeringAuthorizations.DescribeVPCPeeringAuthorizations
instance Network.AWS.Types.AWSRequest Network.AWS.GameLift.DescribeVPCPeeringAuthorizations.DescribeVPCPeeringAuthorizations
instance Control.DeepSeq.NFData Network.AWS.GameLift.DescribeVPCPeeringAuthorizations.DescribeVPCPeeringAuthorizationsResponse
instance Data.Hashable.Class.Hashable Network.AWS.GameLift.DescribeVPCPeeringAuthorizations.DescribeVPCPeeringAuthorizations
instance Control.DeepSeq.NFData Network.AWS.GameLift.DescribeVPCPeeringAuthorizations.DescribeVPCPeeringAuthorizations
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.GameLift.DescribeVPCPeeringAuthorizations.DescribeVPCPeeringAuthorizations
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.GameLift.DescribeVPCPeeringAuthorizations.DescribeVPCPeeringAuthorizations
instance Network.AWS.Data.Path.ToPath Network.AWS.GameLift.DescribeVPCPeeringAuthorizations.DescribeVPCPeeringAuthorizations
instance Network.AWS.Data.Query.ToQuery Network.AWS.GameLift.DescribeVPCPeeringAuthorizations.DescribeVPCPeeringAuthorizations


-- | Retrieves all scaling policies applied to a fleet.
--   
--   To get a fleet's scaling policies, specify the fleet ID. You can
--   filter this request by policy status, such as to retrieve only active
--   scaling policies. Use the pagination parameters to retrieve results as
--   a set of sequential pages. If successful, set of <a>ScalingPolicy</a>
--   objects is returned for the fleet.
--   
--   A fleet may have all of its scaling policies suspended
--   (<tt>StopFleetActions</tt> ). This action does not affect the status
--   of the scaling policies, which remains ACTIVE. To see whether a
--   fleet's scaling policies are in force or suspended, call
--   <tt>DescribeFleetAttributes</tt> and check the stopped actions.
--   
--   Operations related to fleet capacity scaling include:
--   
--   <ul>
--   <li><tt>DescribeFleetCapacity</tt></li>
--   <li><tt>UpdateFleetCapacity</tt></li>
--   <li><tt>DescribeEC2InstanceLimits</tt></li>
--   <li>Manage scaling policies:</li>
--   <li><tt>PutScalingPolicy</tt> (auto-scaling)</li>
--   <li><a>DescribeScalingPolicies</a> (auto-scaling)</li>
--   <li><tt>DeleteScalingPolicy</tt> (auto-scaling)</li>
--   <li>Manage fleet actions:</li>
--   <li><tt>StartFleetActions</tt></li>
--   <li><tt>StopFleetActions</tt></li>
--   </ul>
module Network.AWS.GameLift.DescribeScalingPolicies

-- | Creates a value of <a>DescribeScalingPolicies</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dNextToken</a> - Token that indicates the start of the next
--   sequential page of results. Use the token that is returned with a
--   previous call to this action. To start at the beginning of the result
--   set, do not specify a value.</li>
--   <li><a>dStatusFilter</a> - Scaling policy status to filter results on.
--   A scaling policy is only in force when in an <tt>ACTIVE</tt> status. *
--   <b>ACTIVE</b> -- The scaling policy is currently in force. *
--   <b>UPDATEREQUESTED</b> -- A request to update the scaling policy has
--   been received. * <b>UPDATING</b> -- A change is being made to the
--   scaling policy. * <b>DELETEREQUESTED</b> -- A request to delete the
--   scaling policy has been received. * <b>DELETING</b> -- The scaling
--   policy is being deleted. * <b>DELETED</b> -- The scaling policy has
--   been deleted. * <b>ERROR</b> -- An error occurred in creating the
--   policy. It should be removed and recreated.</li>
--   <li><a>dLimit</a> - Maximum number of results to return. Use this
--   parameter with <tt>NextToken</tt> to get results as a set of
--   sequential pages.</li>
--   <li><a>dFleetId</a> - Unique identifier for a fleet to retrieve
--   scaling policies for.</li>
--   </ul>
describeScalingPolicies :: Text -> DescribeScalingPolicies

-- | Represents the input for a request action.
--   
--   <i>See:</i> <a>describeScalingPolicies</a> smart constructor.
data DescribeScalingPolicies

-- | Token that indicates the start of the next sequential page of results.
--   Use the token that is returned with a previous call to this action. To
--   start at the beginning of the result set, do not specify a value.
dNextToken :: Lens' DescribeScalingPolicies (Maybe Text)

-- | Scaling policy status to filter results on. A scaling policy is only
--   in force when in an <tt>ACTIVE</tt> status. * <b>ACTIVE</b> -- The
--   scaling policy is currently in force. * <b>UPDATEREQUESTED</b> -- A
--   request to update the scaling policy has been received. *
--   <b>UPDATING</b> -- A change is being made to the scaling policy. *
--   <b>DELETEREQUESTED</b> -- A request to delete the scaling policy has
--   been received. * <b>DELETING</b> -- The scaling policy is being
--   deleted. * <b>DELETED</b> -- The scaling policy has been deleted. *
--   <b>ERROR</b> -- An error occurred in creating the policy. It should be
--   removed and recreated.
dStatusFilter :: Lens' DescribeScalingPolicies (Maybe ScalingStatusType)

-- | Maximum number of results to return. Use this parameter with
--   <tt>NextToken</tt> to get results as a set of sequential pages.
dLimit :: Lens' DescribeScalingPolicies (Maybe Natural)

-- | Unique identifier for a fleet to retrieve scaling policies for.
dFleetId :: Lens' DescribeScalingPolicies Text

-- | Creates a value of <a>DescribeScalingPoliciesResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dsprsNextToken</a> - Token that indicates where to resume
--   retrieving results on the next call to this action. If no token is
--   returned, these results represent the end of the list.</li>
--   <li><a>dsprsScalingPolicies</a> - Collection of objects containing the
--   scaling policies matching the request.</li>
--   <li><a>dsprsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeScalingPoliciesResponse :: Int -> DescribeScalingPoliciesResponse

-- | Represents the returned data in response to a request action.
--   
--   <i>See:</i> <a>describeScalingPoliciesResponse</a> smart constructor.
data DescribeScalingPoliciesResponse

-- | Token that indicates where to resume retrieving results on the next
--   call to this action. If no token is returned, these results represent
--   the end of the list.
dsprsNextToken :: Lens' DescribeScalingPoliciesResponse (Maybe Text)

-- | Collection of objects containing the scaling policies matching the
--   request.
dsprsScalingPolicies :: Lens' DescribeScalingPoliciesResponse [ScalingPolicy]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
dsprsResponseStatus :: Lens' DescribeScalingPoliciesResponse Int
instance GHC.Generics.Generic Network.AWS.GameLift.DescribeScalingPolicies.DescribeScalingPoliciesResponse
instance Data.Data.Data Network.AWS.GameLift.DescribeScalingPolicies.DescribeScalingPoliciesResponse
instance GHC.Show.Show Network.AWS.GameLift.DescribeScalingPolicies.DescribeScalingPoliciesResponse
instance GHC.Read.Read Network.AWS.GameLift.DescribeScalingPolicies.DescribeScalingPoliciesResponse
instance GHC.Classes.Eq Network.AWS.GameLift.DescribeScalingPolicies.DescribeScalingPoliciesResponse
instance GHC.Generics.Generic Network.AWS.GameLift.DescribeScalingPolicies.DescribeScalingPolicies
instance Data.Data.Data Network.AWS.GameLift.DescribeScalingPolicies.DescribeScalingPolicies
instance GHC.Show.Show Network.AWS.GameLift.DescribeScalingPolicies.DescribeScalingPolicies
instance GHC.Read.Read Network.AWS.GameLift.DescribeScalingPolicies.DescribeScalingPolicies
instance GHC.Classes.Eq Network.AWS.GameLift.DescribeScalingPolicies.DescribeScalingPolicies
instance Network.AWS.Types.AWSRequest Network.AWS.GameLift.DescribeScalingPolicies.DescribeScalingPolicies
instance Control.DeepSeq.NFData Network.AWS.GameLift.DescribeScalingPolicies.DescribeScalingPoliciesResponse
instance Data.Hashable.Class.Hashable Network.AWS.GameLift.DescribeScalingPolicies.DescribeScalingPolicies
instance Control.DeepSeq.NFData Network.AWS.GameLift.DescribeScalingPolicies.DescribeScalingPolicies
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.GameLift.DescribeScalingPolicies.DescribeScalingPolicies
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.GameLift.DescribeScalingPolicies.DescribeScalingPolicies
instance Network.AWS.Data.Path.ToPath Network.AWS.GameLift.DescribeScalingPolicies.DescribeScalingPolicies
instance Network.AWS.Data.Query.ToQuery Network.AWS.GameLift.DescribeScalingPolicies.DescribeScalingPolicies


-- | Retrieves the current run-time configuration for the specified fleet.
--   The run-time configuration tells Amazon GameLift how to launch server
--   processes on instances in the fleet.
--   
--   Fleet-related operations include:
--   
--   <ul>
--   <li><tt>CreateFleet</tt></li>
--   <li><tt>ListFleets</tt></li>
--   <li><tt>DeleteFleet</tt></li>
--   <li>Describe fleets:</li>
--   <li><tt>DescribeFleetAttributes</tt></li>
--   <li><tt>DescribeFleetCapacity</tt></li>
--   <li><tt>DescribeFleetPortSettings</tt></li>
--   <li><tt>DescribeFleetUtilization</tt></li>
--   <li><a>DescribeRuntimeConfiguration</a></li>
--   <li><tt>DescribeEC2InstanceLimits</tt></li>
--   <li><tt>DescribeFleetEvents</tt></li>
--   <li>Update fleets:</li>
--   <li><tt>UpdateFleetAttributes</tt></li>
--   <li><tt>UpdateFleetCapacity</tt></li>
--   <li><tt>UpdateFleetPortSettings</tt></li>
--   <li><tt>UpdateRuntimeConfiguration</tt></li>
--   <li>Manage fleet actions:</li>
--   <li><tt>StartFleetActions</tt></li>
--   <li><tt>StopFleetActions</tt></li>
--   </ul>
module Network.AWS.GameLift.DescribeRuntimeConfiguration

-- | Creates a value of <a>DescribeRuntimeConfiguration</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>drcFleetId</a> - Unique identifier for a fleet to get the
--   run-time configuration for.</li>
--   </ul>
describeRuntimeConfiguration :: Text -> DescribeRuntimeConfiguration

-- | Represents the input for a request action.
--   
--   <i>See:</i> <a>describeRuntimeConfiguration</a> smart constructor.
data DescribeRuntimeConfiguration

-- | Unique identifier for a fleet to get the run-time configuration for.
drcFleetId :: Lens' DescribeRuntimeConfiguration Text

-- | Creates a value of <a>DescribeRuntimeConfigurationResponse</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>drcrsRuntimeConfiguration</a> - Instructions describing how
--   server processes should be launched and maintained on each instance in
--   the fleet.</li>
--   <li><a>drcrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeRuntimeConfigurationResponse :: Int -> DescribeRuntimeConfigurationResponse

-- | Represents the returned data in response to a request action.
--   
--   <i>See:</i> <a>describeRuntimeConfigurationResponse</a> smart
--   constructor.
data DescribeRuntimeConfigurationResponse

-- | Instructions describing how server processes should be launched and
--   maintained on each instance in the fleet.
drcrsRuntimeConfiguration :: Lens' DescribeRuntimeConfigurationResponse (Maybe RuntimeConfiguration)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
drcrsResponseStatus :: Lens' DescribeRuntimeConfigurationResponse Int
instance GHC.Generics.Generic Network.AWS.GameLift.DescribeRuntimeConfiguration.DescribeRuntimeConfigurationResponse
instance Data.Data.Data Network.AWS.GameLift.DescribeRuntimeConfiguration.DescribeRuntimeConfigurationResponse
instance GHC.Show.Show Network.AWS.GameLift.DescribeRuntimeConfiguration.DescribeRuntimeConfigurationResponse
instance GHC.Read.Read Network.AWS.GameLift.DescribeRuntimeConfiguration.DescribeRuntimeConfigurationResponse
instance GHC.Classes.Eq Network.AWS.GameLift.DescribeRuntimeConfiguration.DescribeRuntimeConfigurationResponse
instance GHC.Generics.Generic Network.AWS.GameLift.DescribeRuntimeConfiguration.DescribeRuntimeConfiguration
instance Data.Data.Data Network.AWS.GameLift.DescribeRuntimeConfiguration.DescribeRuntimeConfiguration
instance GHC.Show.Show Network.AWS.GameLift.DescribeRuntimeConfiguration.DescribeRuntimeConfiguration
instance GHC.Read.Read Network.AWS.GameLift.DescribeRuntimeConfiguration.DescribeRuntimeConfiguration
instance GHC.Classes.Eq Network.AWS.GameLift.DescribeRuntimeConfiguration.DescribeRuntimeConfiguration
instance Network.AWS.Types.AWSRequest Network.AWS.GameLift.DescribeRuntimeConfiguration.DescribeRuntimeConfiguration
instance Control.DeepSeq.NFData Network.AWS.GameLift.DescribeRuntimeConfiguration.DescribeRuntimeConfigurationResponse
instance Data.Hashable.Class.Hashable Network.AWS.GameLift.DescribeRuntimeConfiguration.DescribeRuntimeConfiguration
instance Control.DeepSeq.NFData Network.AWS.GameLift.DescribeRuntimeConfiguration.DescribeRuntimeConfiguration
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.GameLift.DescribeRuntimeConfiguration.DescribeRuntimeConfiguration
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.GameLift.DescribeRuntimeConfiguration.DescribeRuntimeConfiguration
instance Network.AWS.Data.Path.ToPath Network.AWS.GameLift.DescribeRuntimeConfiguration.DescribeRuntimeConfiguration
instance Network.AWS.Data.Query.ToQuery Network.AWS.GameLift.DescribeRuntimeConfiguration.DescribeRuntimeConfiguration


-- | Retrieves properties for one or more player sessions. This action can
--   be used in several ways: (1) provide a <tt>PlayerSessionId</tt> to
--   request properties for a specific player session; (2) provide a
--   <tt>GameSessionId</tt> to request properties for all player sessions
--   in the specified game session; (3) provide a <tt>PlayerId</tt> to
--   request properties for all player sessions of a specified player.
--   
--   To get game session record(s), specify only one of the following: a
--   player session ID, a game session ID, or a player ID. You can filter
--   this request by player session status. Use the pagination parameters
--   to retrieve results as a set of sequential pages. If successful, a
--   <a>PlayerSession</a> object is returned for each session matching the
--   request.
--   
--   <i>Available in Amazon GameLift Local.</i>
--   
--   Player-session-related operations include:
--   
--   <ul>
--   <li><tt>CreatePlayerSession</tt></li>
--   <li><tt>CreatePlayerSessions</tt></li>
--   <li><a>DescribePlayerSessions</a></li>
--   <li>Game session placements</li>
--   <li><tt>StartGameSessionPlacement</tt></li>
--   <li><tt>DescribeGameSessionPlacement</tt></li>
--   <li><tt>StopGameSessionPlacement</tt></li>
--   </ul>
module Network.AWS.GameLift.DescribePlayerSessions

-- | Creates a value of <a>DescribePlayerSessions</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dpssGameSessionId</a> - Unique identifier for the game session
--   to retrieve player sessions for.</li>
--   <li><a>dpssNextToken</a> - Token that indicates the start of the next
--   sequential page of results. Use the token that is returned with a
--   previous call to this action. To start at the beginning of the result
--   set, do not specify a value. If a player session ID is specified, this
--   parameter is ignored.</li>
--   <li><a>dpssLimit</a> - Maximum number of results to return. Use this
--   parameter with <tt>NextToken</tt> to get results as a set of
--   sequential pages. If a player session ID is specified, this parameter
--   is ignored.</li>
--   <li><a>dpssPlayerSessionId</a> - Unique identifier for a player
--   session to retrieve.</li>
--   <li><a>dpssPlayerId</a> - Unique identifier for a player to retrieve
--   player sessions for.</li>
--   <li><a>dpssPlayerSessionStatusFilter</a> - Player session status to
--   filter results on. Possible player session statuses include the
--   following: * <b>RESERVED</b> -- The player session request has been
--   received, but the player has not yet connected to the server process
--   and<i>or been validated. * <b>ACTIVE</b> -- The player has been
--   validated by the server process and is currently connected. *
--   <b>COMPLETED</b> -- The player connection has been dropped. *
--   <b>TIMEDOUT</b> -- A player session request was received, but the
--   player did not connect and</i>or was not validated within the timeout
--   limit (60 seconds).</li>
--   </ul>
describePlayerSessions :: DescribePlayerSessions

-- | Represents the input for a request action.
--   
--   <i>See:</i> <a>describePlayerSessions</a> smart constructor.
data DescribePlayerSessions

-- | Unique identifier for the game session to retrieve player sessions
--   for.
dpssGameSessionId :: Lens' DescribePlayerSessions (Maybe Text)

-- | Token that indicates the start of the next sequential page of results.
--   Use the token that is returned with a previous call to this action. To
--   start at the beginning of the result set, do not specify a value. If a
--   player session ID is specified, this parameter is ignored.
dpssNextToken :: Lens' DescribePlayerSessions (Maybe Text)

-- | Maximum number of results to return. Use this parameter with
--   <tt>NextToken</tt> to get results as a set of sequential pages. If a
--   player session ID is specified, this parameter is ignored.
dpssLimit :: Lens' DescribePlayerSessions (Maybe Natural)

-- | Unique identifier for a player session to retrieve.
dpssPlayerSessionId :: Lens' DescribePlayerSessions (Maybe Text)

-- | Unique identifier for a player to retrieve player sessions for.
dpssPlayerId :: Lens' DescribePlayerSessions (Maybe Text)

-- | Player session status to filter results on. Possible player session
--   statuses include the following: * <b>RESERVED</b> -- The player
--   session request has been received, but the player has not yet
--   connected to the server process and<i>or been validated. *
--   <b>ACTIVE</b> -- The player has been validated by the server process
--   and is currently connected. * <b>COMPLETED</b> -- The player
--   connection has been dropped. * <b>TIMEDOUT</b> -- A player session
--   request was received, but the player did not connect and</i>or was not
--   validated within the timeout limit (60 seconds).
dpssPlayerSessionStatusFilter :: Lens' DescribePlayerSessions (Maybe Text)

-- | Creates a value of <a>DescribePlayerSessionsResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dpsrsNextToken</a> - Token that indicates where to resume
--   retrieving results on the next call to this action. If no token is
--   returned, these results represent the end of the list.</li>
--   <li><a>dpsrsPlayerSessions</a> - Collection of objects containing
--   properties for each player session that matches the request.</li>
--   <li><a>dpsrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describePlayerSessionsResponse :: Int -> DescribePlayerSessionsResponse

-- | Represents the returned data in response to a request action.
--   
--   <i>See:</i> <a>describePlayerSessionsResponse</a> smart constructor.
data DescribePlayerSessionsResponse

-- | Token that indicates where to resume retrieving results on the next
--   call to this action. If no token is returned, these results represent
--   the end of the list.
dpsrsNextToken :: Lens' DescribePlayerSessionsResponse (Maybe Text)

-- | Collection of objects containing properties for each player session
--   that matches the request.
dpsrsPlayerSessions :: Lens' DescribePlayerSessionsResponse [PlayerSession]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
dpsrsResponseStatus :: Lens' DescribePlayerSessionsResponse Int
instance GHC.Generics.Generic Network.AWS.GameLift.DescribePlayerSessions.DescribePlayerSessionsResponse
instance Data.Data.Data Network.AWS.GameLift.DescribePlayerSessions.DescribePlayerSessionsResponse
instance GHC.Show.Show Network.AWS.GameLift.DescribePlayerSessions.DescribePlayerSessionsResponse
instance GHC.Read.Read Network.AWS.GameLift.DescribePlayerSessions.DescribePlayerSessionsResponse
instance GHC.Classes.Eq Network.AWS.GameLift.DescribePlayerSessions.DescribePlayerSessionsResponse
instance GHC.Generics.Generic Network.AWS.GameLift.DescribePlayerSessions.DescribePlayerSessions
instance Data.Data.Data Network.AWS.GameLift.DescribePlayerSessions.DescribePlayerSessions
instance GHC.Show.Show Network.AWS.GameLift.DescribePlayerSessions.DescribePlayerSessions
instance GHC.Read.Read Network.AWS.GameLift.DescribePlayerSessions.DescribePlayerSessions
instance GHC.Classes.Eq Network.AWS.GameLift.DescribePlayerSessions.DescribePlayerSessions
instance Network.AWS.Types.AWSRequest Network.AWS.GameLift.DescribePlayerSessions.DescribePlayerSessions
instance Control.DeepSeq.NFData Network.AWS.GameLift.DescribePlayerSessions.DescribePlayerSessionsResponse
instance Data.Hashable.Class.Hashable Network.AWS.GameLift.DescribePlayerSessions.DescribePlayerSessions
instance Control.DeepSeq.NFData Network.AWS.GameLift.DescribePlayerSessions.DescribePlayerSessions
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.GameLift.DescribePlayerSessions.DescribePlayerSessions
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.GameLift.DescribePlayerSessions.DescribePlayerSessions
instance Network.AWS.Data.Path.ToPath Network.AWS.GameLift.DescribePlayerSessions.DescribePlayerSessions
instance Network.AWS.Data.Query.ToQuery Network.AWS.GameLift.DescribePlayerSessions.DescribePlayerSessions


-- | Retrieves the details for FlexMatch matchmaking rule sets. You can
--   request all existing rule sets for the region, or provide a list of
--   one or more rule set names. When requesting multiple items, use the
--   pagination parameters to retrieve results as a set of sequential
--   pages. If successful, a rule set is returned for each requested name.
--   
--   Operations related to match configurations and rule sets include:
--   
--   <ul>
--   <li><tt>CreateMatchmakingConfiguration</tt></li>
--   <li><tt>DescribeMatchmakingConfigurations</tt></li>
--   <li><tt>UpdateMatchmakingConfiguration</tt></li>
--   <li><tt>DeleteMatchmakingConfiguration</tt></li>
--   <li><tt>CreateMatchmakingRuleSet</tt></li>
--   <li><a>DescribeMatchmakingRuleSets</a></li>
--   <li><tt>ValidateMatchmakingRuleSet</tt></li>
--   </ul>
module Network.AWS.GameLift.DescribeMatchmakingRuleSets

-- | Creates a value of <a>DescribeMatchmakingRuleSets</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dmrsNextToken</a> - Token that indicates the start of the next
--   sequential page of results. Use the token that is returned with a
--   previous call to this action. To start at the beginning of the result
--   set, do not specify a value.</li>
--   <li><a>dmrsNames</a> - Unique identifier for a matchmaking rule set.
--   This name is used to identify the rule set associated with a
--   matchmaking configuration.</li>
--   <li><a>dmrsLimit</a> - Maximum number of results to return. Use this
--   parameter with <tt>NextToken</tt> to get results as a set of
--   sequential pages.</li>
--   </ul>
describeMatchmakingRuleSets :: DescribeMatchmakingRuleSets

-- | Represents the input for a request action.
--   
--   <i>See:</i> <a>describeMatchmakingRuleSets</a> smart constructor.
data DescribeMatchmakingRuleSets

-- | Token that indicates the start of the next sequential page of results.
--   Use the token that is returned with a previous call to this action. To
--   start at the beginning of the result set, do not specify a value.
dmrsNextToken :: Lens' DescribeMatchmakingRuleSets (Maybe Text)

-- | Unique identifier for a matchmaking rule set. This name is used to
--   identify the rule set associated with a matchmaking configuration.
dmrsNames :: Lens' DescribeMatchmakingRuleSets (Maybe (NonEmpty Text))

-- | Maximum number of results to return. Use this parameter with
--   <tt>NextToken</tt> to get results as a set of sequential pages.
dmrsLimit :: Lens' DescribeMatchmakingRuleSets (Maybe Natural)

-- | Creates a value of <a>DescribeMatchmakingRuleSetsResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dmrsrsNextToken</a> - Token that indicates where to resume
--   retrieving results on the next call to this action. If no token is
--   returned, these results represent the end of the list.</li>
--   <li><a>dmrsrsResponseStatus</a> - -- | The response status code.</li>
--   <li><a>dmrsrsRuleSets</a> - Collection of requested matchmaking rule
--   set objects.</li>
--   </ul>
describeMatchmakingRuleSetsResponse :: Int -> DescribeMatchmakingRuleSetsResponse

-- | Represents the returned data in response to a request action.
--   
--   <i>See:</i> <a>describeMatchmakingRuleSetsResponse</a> smart
--   constructor.
data DescribeMatchmakingRuleSetsResponse

-- | Token that indicates where to resume retrieving results on the next
--   call to this action. If no token is returned, these results represent
--   the end of the list.
dmrsrsNextToken :: Lens' DescribeMatchmakingRuleSetsResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
dmrsrsResponseStatus :: Lens' DescribeMatchmakingRuleSetsResponse Int

-- | Collection of requested matchmaking rule set objects.
dmrsrsRuleSets :: Lens' DescribeMatchmakingRuleSetsResponse [MatchmakingRuleSet]
instance GHC.Generics.Generic Network.AWS.GameLift.DescribeMatchmakingRuleSets.DescribeMatchmakingRuleSetsResponse
instance Data.Data.Data Network.AWS.GameLift.DescribeMatchmakingRuleSets.DescribeMatchmakingRuleSetsResponse
instance GHC.Show.Show Network.AWS.GameLift.DescribeMatchmakingRuleSets.DescribeMatchmakingRuleSetsResponse
instance GHC.Read.Read Network.AWS.GameLift.DescribeMatchmakingRuleSets.DescribeMatchmakingRuleSetsResponse
instance GHC.Classes.Eq Network.AWS.GameLift.DescribeMatchmakingRuleSets.DescribeMatchmakingRuleSetsResponse
instance GHC.Generics.Generic Network.AWS.GameLift.DescribeMatchmakingRuleSets.DescribeMatchmakingRuleSets
instance Data.Data.Data Network.AWS.GameLift.DescribeMatchmakingRuleSets.DescribeMatchmakingRuleSets
instance GHC.Show.Show Network.AWS.GameLift.DescribeMatchmakingRuleSets.DescribeMatchmakingRuleSets
instance GHC.Read.Read Network.AWS.GameLift.DescribeMatchmakingRuleSets.DescribeMatchmakingRuleSets
instance GHC.Classes.Eq Network.AWS.GameLift.DescribeMatchmakingRuleSets.DescribeMatchmakingRuleSets
instance Network.AWS.Types.AWSRequest Network.AWS.GameLift.DescribeMatchmakingRuleSets.DescribeMatchmakingRuleSets
instance Control.DeepSeq.NFData Network.AWS.GameLift.DescribeMatchmakingRuleSets.DescribeMatchmakingRuleSetsResponse
instance Data.Hashable.Class.Hashable Network.AWS.GameLift.DescribeMatchmakingRuleSets.DescribeMatchmakingRuleSets
instance Control.DeepSeq.NFData Network.AWS.GameLift.DescribeMatchmakingRuleSets.DescribeMatchmakingRuleSets
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.GameLift.DescribeMatchmakingRuleSets.DescribeMatchmakingRuleSets
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.GameLift.DescribeMatchmakingRuleSets.DescribeMatchmakingRuleSets
instance Network.AWS.Data.Path.ToPath Network.AWS.GameLift.DescribeMatchmakingRuleSets.DescribeMatchmakingRuleSets
instance Network.AWS.Data.Query.ToQuery Network.AWS.GameLift.DescribeMatchmakingRuleSets.DescribeMatchmakingRuleSets


-- | Retrieves the details of FlexMatch matchmaking configurations. with
--   this operation, you have the following options: (1) retrieve all
--   existing configurations, (2) provide the names of one or more
--   configurations to retrieve, or (3) retrieve all configurations that
--   use a specified rule set name. When requesting multiple items, use the
--   pagination parameters to retrieve results as a set of sequential
--   pages. If successful, a configuration is returned for each requested
--   name. When specifying a list of names, only configurations that
--   currently exist are returned.
--   
--   Operations related to match configurations and rule sets include:
--   
--   <ul>
--   <li><tt>CreateMatchmakingConfiguration</tt></li>
--   <li><a>DescribeMatchmakingConfigurations</a></li>
--   <li><tt>UpdateMatchmakingConfiguration</tt></li>
--   <li><tt>DeleteMatchmakingConfiguration</tt></li>
--   <li><tt>CreateMatchmakingRuleSet</tt></li>
--   <li><tt>DescribeMatchmakingRuleSets</tt></li>
--   <li><tt>ValidateMatchmakingRuleSet</tt></li>
--   </ul>
module Network.AWS.GameLift.DescribeMatchmakingConfigurations

-- | Creates a value of <a>DescribeMatchmakingConfigurations</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dmcRuleSetName</a> - Unique identifier for a matchmaking rule
--   set. Use this parameter to retrieve all matchmaking configurations
--   that use this rule set.</li>
--   <li><a>dmcNextToken</a> - Token that indicates the start of the next
--   sequential page of results. Use the token that is returned with a
--   previous call to this action. To start at the beginning of the result
--   set, do not specify a value.</li>
--   <li><a>dmcNames</a> - Unique identifier for a matchmaking
--   configuration(s) to retrieve. To request all existing configurations,
--   leave this parameter empty.</li>
--   <li><a>dmcLimit</a> - Maximum number of results to return. Use this
--   parameter with <tt>NextToken</tt> to get results as a set of
--   sequential pages. This parameter is limited to 10.</li>
--   </ul>
describeMatchmakingConfigurations :: DescribeMatchmakingConfigurations

-- | Represents the input for a request action.
--   
--   <i>See:</i> <a>describeMatchmakingConfigurations</a> smart
--   constructor.
data DescribeMatchmakingConfigurations

-- | Unique identifier for a matchmaking rule set. Use this parameter to
--   retrieve all matchmaking configurations that use this rule set.
dmcRuleSetName :: Lens' DescribeMatchmakingConfigurations (Maybe Text)

-- | Token that indicates the start of the next sequential page of results.
--   Use the token that is returned with a previous call to this action. To
--   start at the beginning of the result set, do not specify a value.
dmcNextToken :: Lens' DescribeMatchmakingConfigurations (Maybe Text)

-- | Unique identifier for a matchmaking configuration(s) to retrieve. To
--   request all existing configurations, leave this parameter empty.
dmcNames :: Lens' DescribeMatchmakingConfigurations [Text]

-- | Maximum number of results to return. Use this parameter with
--   <tt>NextToken</tt> to get results as a set of sequential pages. This
--   parameter is limited to 10.
dmcLimit :: Lens' DescribeMatchmakingConfigurations (Maybe Natural)

-- | Creates a value of <a>DescribeMatchmakingConfigurationsResponse</a>
--   with the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dmcsrsConfigurations</a> - Collection of requested matchmaking
--   configuration objects.</li>
--   <li><a>dmcsrsNextToken</a> - Token that indicates where to resume
--   retrieving results on the next call to this action. If no token is
--   returned, these results represent the end of the list.</li>
--   <li><a>dmcsrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeMatchmakingConfigurationsResponse :: Int -> DescribeMatchmakingConfigurationsResponse

-- | Represents the returned data in response to a request action.
--   
--   <i>See:</i> <a>describeMatchmakingConfigurationsResponse</a> smart
--   constructor.
data DescribeMatchmakingConfigurationsResponse

-- | Collection of requested matchmaking configuration objects.
dmcsrsConfigurations :: Lens' DescribeMatchmakingConfigurationsResponse [MatchmakingConfiguration]

-- | Token that indicates where to resume retrieving results on the next
--   call to this action. If no token is returned, these results represent
--   the end of the list.
dmcsrsNextToken :: Lens' DescribeMatchmakingConfigurationsResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
dmcsrsResponseStatus :: Lens' DescribeMatchmakingConfigurationsResponse Int
instance GHC.Generics.Generic Network.AWS.GameLift.DescribeMatchmakingConfigurations.DescribeMatchmakingConfigurationsResponse
instance Data.Data.Data Network.AWS.GameLift.DescribeMatchmakingConfigurations.DescribeMatchmakingConfigurationsResponse
instance GHC.Show.Show Network.AWS.GameLift.DescribeMatchmakingConfigurations.DescribeMatchmakingConfigurationsResponse
instance GHC.Read.Read Network.AWS.GameLift.DescribeMatchmakingConfigurations.DescribeMatchmakingConfigurationsResponse
instance GHC.Classes.Eq Network.AWS.GameLift.DescribeMatchmakingConfigurations.DescribeMatchmakingConfigurationsResponse
instance GHC.Generics.Generic Network.AWS.GameLift.DescribeMatchmakingConfigurations.DescribeMatchmakingConfigurations
instance Data.Data.Data Network.AWS.GameLift.DescribeMatchmakingConfigurations.DescribeMatchmakingConfigurations
instance GHC.Show.Show Network.AWS.GameLift.DescribeMatchmakingConfigurations.DescribeMatchmakingConfigurations
instance GHC.Read.Read Network.AWS.GameLift.DescribeMatchmakingConfigurations.DescribeMatchmakingConfigurations
instance GHC.Classes.Eq Network.AWS.GameLift.DescribeMatchmakingConfigurations.DescribeMatchmakingConfigurations
instance Network.AWS.Types.AWSRequest Network.AWS.GameLift.DescribeMatchmakingConfigurations.DescribeMatchmakingConfigurations
instance Control.DeepSeq.NFData Network.AWS.GameLift.DescribeMatchmakingConfigurations.DescribeMatchmakingConfigurationsResponse
instance Data.Hashable.Class.Hashable Network.AWS.GameLift.DescribeMatchmakingConfigurations.DescribeMatchmakingConfigurations
instance Control.DeepSeq.NFData Network.AWS.GameLift.DescribeMatchmakingConfigurations.DescribeMatchmakingConfigurations
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.GameLift.DescribeMatchmakingConfigurations.DescribeMatchmakingConfigurations
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.GameLift.DescribeMatchmakingConfigurations.DescribeMatchmakingConfigurations
instance Network.AWS.Data.Path.ToPath Network.AWS.GameLift.DescribeMatchmakingConfigurations.DescribeMatchmakingConfigurations
instance Network.AWS.Data.Query.ToQuery Network.AWS.GameLift.DescribeMatchmakingConfigurations.DescribeMatchmakingConfigurations


-- | Retrieves one or more matchmaking tickets. Use this operation to
--   retrieve ticket information, including status and--once a successful
--   match is made--acquire connection information for the resulting new
--   game session.
--   
--   You can use this operation to track the progress of matchmaking
--   requests (through polling) as an alternative to using event
--   notifications. See more details on tracking matchmaking requests
--   through polling or notifications in <tt>StartMatchmaking</tt> .
--   
--   To request matchmaking tickets, provide a list of up to 10 ticket IDs.
--   If the request is successful, a ticket object is returned for each
--   requested ID that currently exists.
--   
--   Matchmaking-related operations include:
--   
--   <ul>
--   <li><tt>StartMatchmaking</tt></li>
--   <li><a>DescribeMatchmaking</a></li>
--   <li><tt>StopMatchmaking</tt></li>
--   <li><tt>AcceptMatch</tt></li>
--   <li><tt>StartMatchBackfill</tt></li>
--   </ul>
module Network.AWS.GameLift.DescribeMatchmaking

-- | Creates a value of <a>DescribeMatchmaking</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dmTicketIds</a> - Unique identifier for a matchmaking ticket.
--   You can include up to 10 ID values.</li>
--   </ul>
describeMatchmaking :: DescribeMatchmaking

-- | Represents the input for a request action.
--   
--   <i>See:</i> <a>describeMatchmaking</a> smart constructor.
data DescribeMatchmaking

-- | Unique identifier for a matchmaking ticket. You can include up to 10
--   ID values.
dmTicketIds :: Lens' DescribeMatchmaking [Text]

-- | Creates a value of <a>DescribeMatchmakingResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dmrsTicketList</a> - Collection of existing matchmaking ticket
--   objects matching the request.</li>
--   <li><a>dmrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeMatchmakingResponse :: Int -> DescribeMatchmakingResponse

-- | Represents the returned data in response to a request action.
--   
--   <i>See:</i> <a>describeMatchmakingResponse</a> smart constructor.
data DescribeMatchmakingResponse

-- | Collection of existing matchmaking ticket objects matching the
--   request.
dmrsTicketList :: Lens' DescribeMatchmakingResponse [MatchmakingTicket]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
dmrsResponseStatus :: Lens' DescribeMatchmakingResponse Int
instance GHC.Generics.Generic Network.AWS.GameLift.DescribeMatchmaking.DescribeMatchmakingResponse
instance Data.Data.Data Network.AWS.GameLift.DescribeMatchmaking.DescribeMatchmakingResponse
instance GHC.Show.Show Network.AWS.GameLift.DescribeMatchmaking.DescribeMatchmakingResponse
instance GHC.Read.Read Network.AWS.GameLift.DescribeMatchmaking.DescribeMatchmakingResponse
instance GHC.Classes.Eq Network.AWS.GameLift.DescribeMatchmaking.DescribeMatchmakingResponse
instance GHC.Generics.Generic Network.AWS.GameLift.DescribeMatchmaking.DescribeMatchmaking
instance Data.Data.Data Network.AWS.GameLift.DescribeMatchmaking.DescribeMatchmaking
instance GHC.Show.Show Network.AWS.GameLift.DescribeMatchmaking.DescribeMatchmaking
instance GHC.Read.Read Network.AWS.GameLift.DescribeMatchmaking.DescribeMatchmaking
instance GHC.Classes.Eq Network.AWS.GameLift.DescribeMatchmaking.DescribeMatchmaking
instance Network.AWS.Types.AWSRequest Network.AWS.GameLift.DescribeMatchmaking.DescribeMatchmaking
instance Control.DeepSeq.NFData Network.AWS.GameLift.DescribeMatchmaking.DescribeMatchmakingResponse
instance Data.Hashable.Class.Hashable Network.AWS.GameLift.DescribeMatchmaking.DescribeMatchmaking
instance Control.DeepSeq.NFData Network.AWS.GameLift.DescribeMatchmaking.DescribeMatchmaking
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.GameLift.DescribeMatchmaking.DescribeMatchmaking
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.GameLift.DescribeMatchmaking.DescribeMatchmaking
instance Network.AWS.Data.Path.ToPath Network.AWS.GameLift.DescribeMatchmaking.DescribeMatchmaking
instance Network.AWS.Data.Query.ToQuery Network.AWS.GameLift.DescribeMatchmaking.DescribeMatchmaking


-- | Retrieves information about a fleet's instances, including instance
--   IDs. Use this action to get details on all instances in the fleet or
--   get details on one specific instance.
--   
--   To get a specific instance, specify fleet ID and instance ID. To get
--   all instances in a fleet, specify a fleet ID only. Use the pagination
--   parameters to retrieve results as a set of sequential pages. If
--   successful, an <a>Instance</a> object is returned for each result.
module Network.AWS.GameLift.DescribeInstances

-- | Creates a value of <a>DescribeInstances</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>diInstanceId</a> - Unique identifier for an instance to
--   retrieve. Specify an instance ID or leave blank to retrieve all
--   instances in the fleet.</li>
--   <li><a>diNextToken</a> - Token that indicates the start of the next
--   sequential page of results. Use the token that is returned with a
--   previous call to this action. To start at the beginning of the result
--   set, do not specify a value.</li>
--   <li><a>diLimit</a> - Maximum number of results to return. Use this
--   parameter with <tt>NextToken</tt> to get results as a set of
--   sequential pages.</li>
--   <li><a>diFleetId</a> - Unique identifier for a fleet to retrieve
--   instance information for.</li>
--   </ul>
describeInstances :: Text -> DescribeInstances

-- | Represents the input for a request action.
--   
--   <i>See:</i> <a>describeInstances</a> smart constructor.
data DescribeInstances

-- | Unique identifier for an instance to retrieve. Specify an instance ID
--   or leave blank to retrieve all instances in the fleet.
diInstanceId :: Lens' DescribeInstances (Maybe Text)

-- | Token that indicates the start of the next sequential page of results.
--   Use the token that is returned with a previous call to this action. To
--   start at the beginning of the result set, do not specify a value.
diNextToken :: Lens' DescribeInstances (Maybe Text)

-- | Maximum number of results to return. Use this parameter with
--   <tt>NextToken</tt> to get results as a set of sequential pages.
diLimit :: Lens' DescribeInstances (Maybe Natural)

-- | Unique identifier for a fleet to retrieve instance information for.
diFleetId :: Lens' DescribeInstances Text

-- | Creates a value of <a>DescribeInstancesResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dirsNextToken</a> - Token that indicates where to resume
--   retrieving results on the next call to this action. If no token is
--   returned, these results represent the end of the list.</li>
--   <li><a>dirsInstances</a> - Collection of objects containing properties
--   for each instance returned.</li>
--   <li><a>dirsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeInstancesResponse :: Int -> DescribeInstancesResponse

-- | Represents the returned data in response to a request action.
--   
--   <i>See:</i> <a>describeInstancesResponse</a> smart constructor.
data DescribeInstancesResponse

-- | Token that indicates where to resume retrieving results on the next
--   call to this action. If no token is returned, these results represent
--   the end of the list.
dirsNextToken :: Lens' DescribeInstancesResponse (Maybe Text)

-- | Collection of objects containing properties for each instance
--   returned.
dirsInstances :: Lens' DescribeInstancesResponse [Instance]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
dirsResponseStatus :: Lens' DescribeInstancesResponse Int
instance GHC.Generics.Generic Network.AWS.GameLift.DescribeInstances.DescribeInstancesResponse
instance Data.Data.Data Network.AWS.GameLift.DescribeInstances.DescribeInstancesResponse
instance GHC.Show.Show Network.AWS.GameLift.DescribeInstances.DescribeInstancesResponse
instance GHC.Read.Read Network.AWS.GameLift.DescribeInstances.DescribeInstancesResponse
instance GHC.Classes.Eq Network.AWS.GameLift.DescribeInstances.DescribeInstancesResponse
instance GHC.Generics.Generic Network.AWS.GameLift.DescribeInstances.DescribeInstances
instance Data.Data.Data Network.AWS.GameLift.DescribeInstances.DescribeInstances
instance GHC.Show.Show Network.AWS.GameLift.DescribeInstances.DescribeInstances
instance GHC.Read.Read Network.AWS.GameLift.DescribeInstances.DescribeInstances
instance GHC.Classes.Eq Network.AWS.GameLift.DescribeInstances.DescribeInstances
instance Network.AWS.Types.AWSRequest Network.AWS.GameLift.DescribeInstances.DescribeInstances
instance Control.DeepSeq.NFData Network.AWS.GameLift.DescribeInstances.DescribeInstancesResponse
instance Data.Hashable.Class.Hashable Network.AWS.GameLift.DescribeInstances.DescribeInstances
instance Control.DeepSeq.NFData Network.AWS.GameLift.DescribeInstances.DescribeInstances
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.GameLift.DescribeInstances.DescribeInstances
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.GameLift.DescribeInstances.DescribeInstances
instance Network.AWS.Data.Path.ToPath Network.AWS.GameLift.DescribeInstances.DescribeInstances
instance Network.AWS.Data.Query.ToQuery Network.AWS.GameLift.DescribeInstances.DescribeInstances


-- | Retrieves a set of one or more game sessions. Request a specific game
--   session or request all game sessions on a fleet. Alternatively, use
--   <tt>SearchGameSessions</tt> to request a set of active game sessions
--   that are filtered by certain criteria. To retrieve protection policy
--   settings for game sessions, use <tt>DescribeGameSessionDetails</tt> .
--   
--   To get game sessions, specify one of the following: game session ID,
--   fleet ID, or alias ID. You can filter this request by game session
--   status. Use the pagination parameters to retrieve results as a set of
--   sequential pages. If successful, a <a>GameSession</a> object is
--   returned for each game session matching the request.
--   
--   <i>Available in Amazon GameLift Local.</i>
--   
--   Game-session-related operations include:
--   
--   <ul>
--   <li><tt>CreateGameSession</tt></li>
--   <li><a>DescribeGameSessions</a></li>
--   <li><tt>DescribeGameSessionDetails</tt></li>
--   <li><tt>SearchGameSessions</tt></li>
--   <li><tt>UpdateGameSession</tt></li>
--   <li><tt>GetGameSessionLogUrl</tt></li>
--   <li>Game session placements</li>
--   <li><tt>StartGameSessionPlacement</tt></li>
--   <li><tt>DescribeGameSessionPlacement</tt></li>
--   <li><tt>StopGameSessionPlacement</tt></li>
--   </ul>
module Network.AWS.GameLift.DescribeGameSessions

-- | Creates a value of <a>DescribeGameSessions</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dgsGameSessionId</a> - Unique identifier for the game session
--   to retrieve. You can use either a <tt>GameSessionId</tt> or
--   <tt>GameSessionArn</tt> value.</li>
--   <li><a>dgsAliasId</a> - Unique identifier for an alias associated with
--   the fleet to retrieve all game sessions for.</li>
--   <li><a>dgsNextToken</a> - Token that indicates the start of the next
--   sequential page of results. Use the token that is returned with a
--   previous call to this action. To start at the beginning of the result
--   set, do not specify a value.</li>
--   <li><a>dgsStatusFilter</a> - Game session status to filter results on.
--   Possible game session statuses include <tt>ACTIVE</tt> ,
--   <tt>TERMINATED</tt> , <tt>ACTIVATING</tt> , and <tt>TERMINATING</tt>
--   (the last two are transitory).</li>
--   <li><a>dgsLimit</a> - Maximum number of results to return. Use this
--   parameter with <tt>NextToken</tt> to get results as a set of
--   sequential pages.</li>
--   <li><a>dgsFleetId</a> - Unique identifier for a fleet to retrieve all
--   game sessions for.</li>
--   </ul>
describeGameSessions :: DescribeGameSessions

-- | Represents the input for a request action.
--   
--   <i>See:</i> <a>describeGameSessions</a> smart constructor.
data DescribeGameSessions

-- | Unique identifier for the game session to retrieve. You can use either
--   a <tt>GameSessionId</tt> or <tt>GameSessionArn</tt> value.
dgsGameSessionId :: Lens' DescribeGameSessions (Maybe Text)

-- | Unique identifier for an alias associated with the fleet to retrieve
--   all game sessions for.
dgsAliasId :: Lens' DescribeGameSessions (Maybe Text)

-- | Token that indicates the start of the next sequential page of results.
--   Use the token that is returned with a previous call to this action. To
--   start at the beginning of the result set, do not specify a value.
dgsNextToken :: Lens' DescribeGameSessions (Maybe Text)

-- | Game session status to filter results on. Possible game session
--   statuses include <tt>ACTIVE</tt> , <tt>TERMINATED</tt> ,
--   <tt>ACTIVATING</tt> , and <tt>TERMINATING</tt> (the last two are
--   transitory).
dgsStatusFilter :: Lens' DescribeGameSessions (Maybe Text)

-- | Maximum number of results to return. Use this parameter with
--   <tt>NextToken</tt> to get results as a set of sequential pages.
dgsLimit :: Lens' DescribeGameSessions (Maybe Natural)

-- | Unique identifier for a fleet to retrieve all game sessions for.
dgsFleetId :: Lens' DescribeGameSessions (Maybe Text)

-- | Creates a value of <a>DescribeGameSessionsResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dgsrsGameSessions</a> - Collection of objects containing game
--   session properties for each session matching the request.</li>
--   <li><a>dgsrsNextToken</a> - Token that indicates where to resume
--   retrieving results on the next call to this action. If no token is
--   returned, these results represent the end of the list.</li>
--   <li><a>dgsrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeGameSessionsResponse :: Int -> DescribeGameSessionsResponse

-- | Represents the returned data in response to a request action.
--   
--   <i>See:</i> <a>describeGameSessionsResponse</a> smart constructor.
data DescribeGameSessionsResponse

-- | Collection of objects containing game session properties for each
--   session matching the request.
dgsrsGameSessions :: Lens' DescribeGameSessionsResponse [GameSession]

-- | Token that indicates where to resume retrieving results on the next
--   call to this action. If no token is returned, these results represent
--   the end of the list.
dgsrsNextToken :: Lens' DescribeGameSessionsResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
dgsrsResponseStatus :: Lens' DescribeGameSessionsResponse Int
instance GHC.Generics.Generic Network.AWS.GameLift.DescribeGameSessions.DescribeGameSessionsResponse
instance Data.Data.Data Network.AWS.GameLift.DescribeGameSessions.DescribeGameSessionsResponse
instance GHC.Show.Show Network.AWS.GameLift.DescribeGameSessions.DescribeGameSessionsResponse
instance GHC.Read.Read Network.AWS.GameLift.DescribeGameSessions.DescribeGameSessionsResponse
instance GHC.Classes.Eq Network.AWS.GameLift.DescribeGameSessions.DescribeGameSessionsResponse
instance GHC.Generics.Generic Network.AWS.GameLift.DescribeGameSessions.DescribeGameSessions
instance Data.Data.Data Network.AWS.GameLift.DescribeGameSessions.DescribeGameSessions
instance GHC.Show.Show Network.AWS.GameLift.DescribeGameSessions.DescribeGameSessions
instance GHC.Read.Read Network.AWS.GameLift.DescribeGameSessions.DescribeGameSessions
instance GHC.Classes.Eq Network.AWS.GameLift.DescribeGameSessions.DescribeGameSessions
instance Network.AWS.Types.AWSRequest Network.AWS.GameLift.DescribeGameSessions.DescribeGameSessions
instance Control.DeepSeq.NFData Network.AWS.GameLift.DescribeGameSessions.DescribeGameSessionsResponse
instance Data.Hashable.Class.Hashable Network.AWS.GameLift.DescribeGameSessions.DescribeGameSessions
instance Control.DeepSeq.NFData Network.AWS.GameLift.DescribeGameSessions.DescribeGameSessions
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.GameLift.DescribeGameSessions.DescribeGameSessions
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.GameLift.DescribeGameSessions.DescribeGameSessions
instance Network.AWS.Data.Path.ToPath Network.AWS.GameLift.DescribeGameSessions.DescribeGameSessions
instance Network.AWS.Data.Query.ToQuery Network.AWS.GameLift.DescribeGameSessions.DescribeGameSessions


-- | Retrieves the properties for one or more game session queues. When
--   requesting multiple queues, use the pagination parameters to retrieve
--   results as a set of sequential pages. If successful, a
--   <a>GameSessionQueue</a> object is returned for each requested queue.
--   When specifying a list of queues, objects are returned only for queues
--   that currently exist in the region.
--   
--   Queue-related operations include:
--   
--   <ul>
--   <li><tt>CreateGameSessionQueue</tt></li>
--   <li><a>DescribeGameSessionQueues</a></li>
--   <li><tt>UpdateGameSessionQueue</tt></li>
--   <li><tt>DeleteGameSessionQueue</tt></li>
--   </ul>
module Network.AWS.GameLift.DescribeGameSessionQueues

-- | Creates a value of <a>DescribeGameSessionQueues</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dgsqNextToken</a> - Token that indicates the start of the next
--   sequential page of results. Use the token that is returned with a
--   previous call to this action. To start at the beginning of the result
--   set, do not specify a value.</li>
--   <li><a>dgsqNames</a> - List of queue names to retrieve information
--   for. To request settings for all queues, leave this parameter
--   empty.</li>
--   <li><a>dgsqLimit</a> - Maximum number of results to return. Use this
--   parameter with <tt>NextToken</tt> to get results as a set of
--   sequential pages.</li>
--   </ul>
describeGameSessionQueues :: DescribeGameSessionQueues

-- | Represents the input for a request action.
--   
--   <i>See:</i> <a>describeGameSessionQueues</a> smart constructor.
data DescribeGameSessionQueues

-- | Token that indicates the start of the next sequential page of results.
--   Use the token that is returned with a previous call to this action. To
--   start at the beginning of the result set, do not specify a value.
dgsqNextToken :: Lens' DescribeGameSessionQueues (Maybe Text)

-- | List of queue names to retrieve information for. To request settings
--   for all queues, leave this parameter empty.
dgsqNames :: Lens' DescribeGameSessionQueues [Text]

-- | Maximum number of results to return. Use this parameter with
--   <tt>NextToken</tt> to get results as a set of sequential pages.
dgsqLimit :: Lens' DescribeGameSessionQueues (Maybe Natural)

-- | Creates a value of <a>DescribeGameSessionQueuesResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>drsNextToken</a> - Token that indicates where to resume
--   retrieving results on the next call to this action. If no token is
--   returned, these results represent the end of the list.</li>
--   <li><a>drsGameSessionQueues</a> - Collection of objects that describes
--   the requested game session queues.</li>
--   <li><a>drsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeGameSessionQueuesResponse :: Int -> DescribeGameSessionQueuesResponse

-- | Represents the returned data in response to a request action.
--   
--   <i>See:</i> <a>describeGameSessionQueuesResponse</a> smart
--   constructor.
data DescribeGameSessionQueuesResponse

-- | Token that indicates where to resume retrieving results on the next
--   call to this action. If no token is returned, these results represent
--   the end of the list.
drsNextToken :: Lens' DescribeGameSessionQueuesResponse (Maybe Text)

-- | Collection of objects that describes the requested game session
--   queues.
drsGameSessionQueues :: Lens' DescribeGameSessionQueuesResponse [GameSessionQueue]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
drsResponseStatus :: Lens' DescribeGameSessionQueuesResponse Int
instance GHC.Generics.Generic Network.AWS.GameLift.DescribeGameSessionQueues.DescribeGameSessionQueuesResponse
instance Data.Data.Data Network.AWS.GameLift.DescribeGameSessionQueues.DescribeGameSessionQueuesResponse
instance GHC.Show.Show Network.AWS.GameLift.DescribeGameSessionQueues.DescribeGameSessionQueuesResponse
instance GHC.Read.Read Network.AWS.GameLift.DescribeGameSessionQueues.DescribeGameSessionQueuesResponse
instance GHC.Classes.Eq Network.AWS.GameLift.DescribeGameSessionQueues.DescribeGameSessionQueuesResponse
instance GHC.Generics.Generic Network.AWS.GameLift.DescribeGameSessionQueues.DescribeGameSessionQueues
instance Data.Data.Data Network.AWS.GameLift.DescribeGameSessionQueues.DescribeGameSessionQueues
instance GHC.Show.Show Network.AWS.GameLift.DescribeGameSessionQueues.DescribeGameSessionQueues
instance GHC.Read.Read Network.AWS.GameLift.DescribeGameSessionQueues.DescribeGameSessionQueues
instance GHC.Classes.Eq Network.AWS.GameLift.DescribeGameSessionQueues.DescribeGameSessionQueues
instance Network.AWS.Types.AWSRequest Network.AWS.GameLift.DescribeGameSessionQueues.DescribeGameSessionQueues
instance Control.DeepSeq.NFData Network.AWS.GameLift.DescribeGameSessionQueues.DescribeGameSessionQueuesResponse
instance Data.Hashable.Class.Hashable Network.AWS.GameLift.DescribeGameSessionQueues.DescribeGameSessionQueues
instance Control.DeepSeq.NFData Network.AWS.GameLift.DescribeGameSessionQueues.DescribeGameSessionQueues
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.GameLift.DescribeGameSessionQueues.DescribeGameSessionQueues
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.GameLift.DescribeGameSessionQueues.DescribeGameSessionQueues
instance Network.AWS.Data.Path.ToPath Network.AWS.GameLift.DescribeGameSessionQueues.DescribeGameSessionQueues
instance Network.AWS.Data.Query.ToQuery Network.AWS.GameLift.DescribeGameSessionQueues.DescribeGameSessionQueues


-- | Retrieves properties and current status of a game session placement
--   request. To get game session placement details, specify the placement
--   ID. If successful, a <a>GameSessionPlacement</a> object is returned.
--   
--   Game-session-related operations include:
--   
--   <ul>
--   <li><tt>CreateGameSession</tt></li>
--   <li><tt>DescribeGameSessions</tt></li>
--   <li><tt>DescribeGameSessionDetails</tt></li>
--   <li><tt>SearchGameSessions</tt></li>
--   <li><tt>UpdateGameSession</tt></li>
--   <li><tt>GetGameSessionLogUrl</tt></li>
--   <li>Game session placements</li>
--   <li><tt>StartGameSessionPlacement</tt></li>
--   <li><a>DescribeGameSessionPlacement</a></li>
--   <li><tt>StopGameSessionPlacement</tt></li>
--   </ul>
module Network.AWS.GameLift.DescribeGameSessionPlacement

-- | Creates a value of <a>DescribeGameSessionPlacement</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dgspPlacementId</a> - Unique identifier for a game session
--   placement to retrieve.</li>
--   </ul>
describeGameSessionPlacement :: Text -> DescribeGameSessionPlacement

-- | Represents the input for a request action.
--   
--   <i>See:</i> <a>describeGameSessionPlacement</a> smart constructor.
data DescribeGameSessionPlacement

-- | Unique identifier for a game session placement to retrieve.
dgspPlacementId :: Lens' DescribeGameSessionPlacement Text

-- | Creates a value of <a>DescribeGameSessionPlacementResponse</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dgsprsGameSessionPlacement</a> - Object that describes the
--   requested game session placement.</li>
--   <li><a>dgsprsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeGameSessionPlacementResponse :: Int -> DescribeGameSessionPlacementResponse

-- | Represents the returned data in response to a request action.
--   
--   <i>See:</i> <a>describeGameSessionPlacementResponse</a> smart
--   constructor.
data DescribeGameSessionPlacementResponse

-- | Object that describes the requested game session placement.
dgsprsGameSessionPlacement :: Lens' DescribeGameSessionPlacementResponse (Maybe GameSessionPlacement)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
dgsprsResponseStatus :: Lens' DescribeGameSessionPlacementResponse Int
instance GHC.Generics.Generic Network.AWS.GameLift.DescribeGameSessionPlacement.DescribeGameSessionPlacementResponse
instance Data.Data.Data Network.AWS.GameLift.DescribeGameSessionPlacement.DescribeGameSessionPlacementResponse
instance GHC.Show.Show Network.AWS.GameLift.DescribeGameSessionPlacement.DescribeGameSessionPlacementResponse
instance GHC.Read.Read Network.AWS.GameLift.DescribeGameSessionPlacement.DescribeGameSessionPlacementResponse
instance GHC.Classes.Eq Network.AWS.GameLift.DescribeGameSessionPlacement.DescribeGameSessionPlacementResponse
instance GHC.Generics.Generic Network.AWS.GameLift.DescribeGameSessionPlacement.DescribeGameSessionPlacement
instance Data.Data.Data Network.AWS.GameLift.DescribeGameSessionPlacement.DescribeGameSessionPlacement
instance GHC.Show.Show Network.AWS.GameLift.DescribeGameSessionPlacement.DescribeGameSessionPlacement
instance GHC.Read.Read Network.AWS.GameLift.DescribeGameSessionPlacement.DescribeGameSessionPlacement
instance GHC.Classes.Eq Network.AWS.GameLift.DescribeGameSessionPlacement.DescribeGameSessionPlacement
instance Network.AWS.Types.AWSRequest Network.AWS.GameLift.DescribeGameSessionPlacement.DescribeGameSessionPlacement
instance Control.DeepSeq.NFData Network.AWS.GameLift.DescribeGameSessionPlacement.DescribeGameSessionPlacementResponse
instance Data.Hashable.Class.Hashable Network.AWS.GameLift.DescribeGameSessionPlacement.DescribeGameSessionPlacement
instance Control.DeepSeq.NFData Network.AWS.GameLift.DescribeGameSessionPlacement.DescribeGameSessionPlacement
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.GameLift.DescribeGameSessionPlacement.DescribeGameSessionPlacement
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.GameLift.DescribeGameSessionPlacement.DescribeGameSessionPlacement
instance Network.AWS.Data.Path.ToPath Network.AWS.GameLift.DescribeGameSessionPlacement.DescribeGameSessionPlacement
instance Network.AWS.Data.Query.ToQuery Network.AWS.GameLift.DescribeGameSessionPlacement.DescribeGameSessionPlacement


-- | Retrieves properties, including the protection policy in force, for
--   one or more game sessions. This action can be used in several ways:
--   (1) provide a <tt>GameSessionId</tt> or <tt>GameSessionArn</tt> to
--   request details for a specific game session; (2) provide either a
--   <tt>FleetId</tt> or an <tt>AliasId</tt> to request properties for all
--   game sessions running on a fleet.
--   
--   To get game session record(s), specify just one of the following: game
--   session ID, fleet ID, or alias ID. You can filter this request by game
--   session status. Use the pagination parameters to retrieve results as a
--   set of sequential pages. If successful, a <a>GameSessionDetail</a>
--   object is returned for each session matching the request.
--   
--   Game-session-related operations include:
--   
--   <ul>
--   <li><tt>CreateGameSession</tt></li>
--   <li><tt>DescribeGameSessions</tt></li>
--   <li><a>DescribeGameSessionDetails</a></li>
--   <li><tt>SearchGameSessions</tt></li>
--   <li><tt>UpdateGameSession</tt></li>
--   <li><tt>GetGameSessionLogUrl</tt></li>
--   <li>Game session placements</li>
--   <li><tt>StartGameSessionPlacement</tt></li>
--   <li><tt>DescribeGameSessionPlacement</tt></li>
--   <li><tt>StopGameSessionPlacement</tt></li>
--   </ul>
module Network.AWS.GameLift.DescribeGameSessionDetails

-- | Creates a value of <a>DescribeGameSessionDetails</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dgsdGameSessionId</a> - Unique identifier for the game session
--   to retrieve.</li>
--   <li><a>dgsdAliasId</a> - Unique identifier for an alias associated
--   with the fleet to retrieve all game sessions for.</li>
--   <li><a>dgsdNextToken</a> - Token that indicates the start of the next
--   sequential page of results. Use the token that is returned with a
--   previous call to this action. To start at the beginning of the result
--   set, do not specify a value.</li>
--   <li><a>dgsdStatusFilter</a> - Game session status to filter results
--   on. Possible game session statuses include <tt>ACTIVE</tt> ,
--   <tt>TERMINATED</tt> , <tt>ACTIVATING</tt> and <tt>TERMINATING</tt>
--   (the last two are transitory).</li>
--   <li><a>dgsdLimit</a> - Maximum number of results to return. Use this
--   parameter with <tt>NextToken</tt> to get results as a set of
--   sequential pages.</li>
--   <li><a>dgsdFleetId</a> - Unique identifier for a fleet to retrieve all
--   game sessions active on the fleet.</li>
--   </ul>
describeGameSessionDetails :: DescribeGameSessionDetails

-- | Represents the input for a request action.
--   
--   <i>See:</i> <a>describeGameSessionDetails</a> smart constructor.
data DescribeGameSessionDetails

-- | Unique identifier for the game session to retrieve.
dgsdGameSessionId :: Lens' DescribeGameSessionDetails (Maybe Text)

-- | Unique identifier for an alias associated with the fleet to retrieve
--   all game sessions for.
dgsdAliasId :: Lens' DescribeGameSessionDetails (Maybe Text)

-- | Token that indicates the start of the next sequential page of results.
--   Use the token that is returned with a previous call to this action. To
--   start at the beginning of the result set, do not specify a value.
dgsdNextToken :: Lens' DescribeGameSessionDetails (Maybe Text)

-- | Game session status to filter results on. Possible game session
--   statuses include <tt>ACTIVE</tt> , <tt>TERMINATED</tt> ,
--   <tt>ACTIVATING</tt> and <tt>TERMINATING</tt> (the last two are
--   transitory).
dgsdStatusFilter :: Lens' DescribeGameSessionDetails (Maybe Text)

-- | Maximum number of results to return. Use this parameter with
--   <tt>NextToken</tt> to get results as a set of sequential pages.
dgsdLimit :: Lens' DescribeGameSessionDetails (Maybe Natural)

-- | Unique identifier for a fleet to retrieve all game sessions active on
--   the fleet.
dgsdFleetId :: Lens' DescribeGameSessionDetails (Maybe Text)

-- | Creates a value of <a>DescribeGameSessionDetailsResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dgsdrsGameSessionDetails</a> - Collection of objects containing
--   game session properties and the protection policy currently in force
--   for each session matching the request.</li>
--   <li><a>dgsdrsNextToken</a> - Token that indicates where to resume
--   retrieving results on the next call to this action. If no token is
--   returned, these results represent the end of the list.</li>
--   <li><a>dgsdrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeGameSessionDetailsResponse :: Int -> DescribeGameSessionDetailsResponse

-- | Represents the returned data in response to a request action.
--   
--   <i>See:</i> <a>describeGameSessionDetailsResponse</a> smart
--   constructor.
data DescribeGameSessionDetailsResponse

-- | Collection of objects containing game session properties and the
--   protection policy currently in force for each session matching the
--   request.
dgsdrsGameSessionDetails :: Lens' DescribeGameSessionDetailsResponse [GameSessionDetail]

-- | Token that indicates where to resume retrieving results on the next
--   call to this action. If no token is returned, these results represent
--   the end of the list.
dgsdrsNextToken :: Lens' DescribeGameSessionDetailsResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
dgsdrsResponseStatus :: Lens' DescribeGameSessionDetailsResponse Int
instance GHC.Generics.Generic Network.AWS.GameLift.DescribeGameSessionDetails.DescribeGameSessionDetailsResponse
instance Data.Data.Data Network.AWS.GameLift.DescribeGameSessionDetails.DescribeGameSessionDetailsResponse
instance GHC.Show.Show Network.AWS.GameLift.DescribeGameSessionDetails.DescribeGameSessionDetailsResponse
instance GHC.Read.Read Network.AWS.GameLift.DescribeGameSessionDetails.DescribeGameSessionDetailsResponse
instance GHC.Classes.Eq Network.AWS.GameLift.DescribeGameSessionDetails.DescribeGameSessionDetailsResponse
instance GHC.Generics.Generic Network.AWS.GameLift.DescribeGameSessionDetails.DescribeGameSessionDetails
instance Data.Data.Data Network.AWS.GameLift.DescribeGameSessionDetails.DescribeGameSessionDetails
instance GHC.Show.Show Network.AWS.GameLift.DescribeGameSessionDetails.DescribeGameSessionDetails
instance GHC.Read.Read Network.AWS.GameLift.DescribeGameSessionDetails.DescribeGameSessionDetails
instance GHC.Classes.Eq Network.AWS.GameLift.DescribeGameSessionDetails.DescribeGameSessionDetails
instance Network.AWS.Types.AWSRequest Network.AWS.GameLift.DescribeGameSessionDetails.DescribeGameSessionDetails
instance Control.DeepSeq.NFData Network.AWS.GameLift.DescribeGameSessionDetails.DescribeGameSessionDetailsResponse
instance Data.Hashable.Class.Hashable Network.AWS.GameLift.DescribeGameSessionDetails.DescribeGameSessionDetails
instance Control.DeepSeq.NFData Network.AWS.GameLift.DescribeGameSessionDetails.DescribeGameSessionDetails
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.GameLift.DescribeGameSessionDetails.DescribeGameSessionDetails
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.GameLift.DescribeGameSessionDetails.DescribeGameSessionDetails
instance Network.AWS.Data.Path.ToPath Network.AWS.GameLift.DescribeGameSessionDetails.DescribeGameSessionDetails
instance Network.AWS.Data.Query.ToQuery Network.AWS.GameLift.DescribeGameSessionDetails.DescribeGameSessionDetails


-- | Retrieves utilization statistics for one or more fleets. You can
--   request utilization data for all fleets, or specify a list of one or
--   more fleet IDs. When requesting multiple fleets, use the pagination
--   parameters to retrieve results as a set of sequential pages. If
--   successful, a <a>FleetUtilization</a> object is returned for each
--   requested fleet ID. When specifying a list of fleet IDs, utilization
--   objects are returned only for fleets that currently exist.
--   
--   Fleet-related operations include:
--   
--   <ul>
--   <li><tt>CreateFleet</tt></li>
--   <li><tt>ListFleets</tt></li>
--   <li><tt>DeleteFleet</tt></li>
--   <li>Describe fleets:</li>
--   <li><tt>DescribeFleetAttributes</tt></li>
--   <li><tt>DescribeFleetCapacity</tt></li>
--   <li><tt>DescribeFleetPortSettings</tt></li>
--   <li><a>DescribeFleetUtilization</a></li>
--   <li><tt>DescribeRuntimeConfiguration</tt></li>
--   <li><tt>DescribeEC2InstanceLimits</tt></li>
--   <li><tt>DescribeFleetEvents</tt></li>
--   <li>Update fleets:</li>
--   <li><tt>UpdateFleetAttributes</tt></li>
--   <li><tt>UpdateFleetCapacity</tt></li>
--   <li><tt>UpdateFleetPortSettings</tt></li>
--   <li><tt>UpdateRuntimeConfiguration</tt></li>
--   <li>Manage fleet actions:</li>
--   <li><tt>StartFleetActions</tt></li>
--   <li><tt>StopFleetActions</tt></li>
--   </ul>
module Network.AWS.GameLift.DescribeFleetUtilization

-- | Creates a value of <a>DescribeFleetUtilization</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dfuNextToken</a> - Token that indicates the start of the next
--   sequential page of results. Use the token that is returned with a
--   previous call to this action. To start at the beginning of the result
--   set, do not specify a value. This parameter is ignored when the
--   request specifies one or a list of fleet IDs.</li>
--   <li><a>dfuLimit</a> - Maximum number of results to return. Use this
--   parameter with <tt>NextToken</tt> to get results as a set of
--   sequential pages. This parameter is ignored when the request specifies
--   one or a list of fleet IDs.</li>
--   <li><a>dfuFleetIds</a> - Unique identifier for a fleet(s) to retrieve
--   utilization data for. To request utilization data for all fleets,
--   leave this parameter empty.</li>
--   </ul>
describeFleetUtilization :: DescribeFleetUtilization

-- | Represents the input for a request action.
--   
--   <i>See:</i> <a>describeFleetUtilization</a> smart constructor.
data DescribeFleetUtilization

-- | Token that indicates the start of the next sequential page of results.
--   Use the token that is returned with a previous call to this action. To
--   start at the beginning of the result set, do not specify a value. This
--   parameter is ignored when the request specifies one or a list of fleet
--   IDs.
dfuNextToken :: Lens' DescribeFleetUtilization (Maybe Text)

-- | Maximum number of results to return. Use this parameter with
--   <tt>NextToken</tt> to get results as a set of sequential pages. This
--   parameter is ignored when the request specifies one or a list of fleet
--   IDs.
dfuLimit :: Lens' DescribeFleetUtilization (Maybe Natural)

-- | Unique identifier for a fleet(s) to retrieve utilization data for. To
--   request utilization data for all fleets, leave this parameter empty.
dfuFleetIds :: Lens' DescribeFleetUtilization (Maybe (NonEmpty Text))

-- | Creates a value of <a>DescribeFleetUtilizationResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dfursNextToken</a> - Token that indicates where to resume
--   retrieving results on the next call to this action. If no token is
--   returned, these results represent the end of the list.</li>
--   <li><a>dfursFleetUtilization</a> - Collection of objects containing
--   utilization information for each requested fleet ID.</li>
--   <li><a>dfursResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeFleetUtilizationResponse :: Int -> DescribeFleetUtilizationResponse

-- | Represents the returned data in response to a request action.
--   
--   <i>See:</i> <a>describeFleetUtilizationResponse</a> smart constructor.
data DescribeFleetUtilizationResponse

-- | Token that indicates where to resume retrieving results on the next
--   call to this action. If no token is returned, these results represent
--   the end of the list.
dfursNextToken :: Lens' DescribeFleetUtilizationResponse (Maybe Text)

-- | Collection of objects containing utilization information for each
--   requested fleet ID.
dfursFleetUtilization :: Lens' DescribeFleetUtilizationResponse [FleetUtilization]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
dfursResponseStatus :: Lens' DescribeFleetUtilizationResponse Int
instance GHC.Generics.Generic Network.AWS.GameLift.DescribeFleetUtilization.DescribeFleetUtilizationResponse
instance Data.Data.Data Network.AWS.GameLift.DescribeFleetUtilization.DescribeFleetUtilizationResponse
instance GHC.Show.Show Network.AWS.GameLift.DescribeFleetUtilization.DescribeFleetUtilizationResponse
instance GHC.Read.Read Network.AWS.GameLift.DescribeFleetUtilization.DescribeFleetUtilizationResponse
instance GHC.Classes.Eq Network.AWS.GameLift.DescribeFleetUtilization.DescribeFleetUtilizationResponse
instance GHC.Generics.Generic Network.AWS.GameLift.DescribeFleetUtilization.DescribeFleetUtilization
instance Data.Data.Data Network.AWS.GameLift.DescribeFleetUtilization.DescribeFleetUtilization
instance GHC.Show.Show Network.AWS.GameLift.DescribeFleetUtilization.DescribeFleetUtilization
instance GHC.Read.Read Network.AWS.GameLift.DescribeFleetUtilization.DescribeFleetUtilization
instance GHC.Classes.Eq Network.AWS.GameLift.DescribeFleetUtilization.DescribeFleetUtilization
instance Network.AWS.Types.AWSRequest Network.AWS.GameLift.DescribeFleetUtilization.DescribeFleetUtilization
instance Control.DeepSeq.NFData Network.AWS.GameLift.DescribeFleetUtilization.DescribeFleetUtilizationResponse
instance Data.Hashable.Class.Hashable Network.AWS.GameLift.DescribeFleetUtilization.DescribeFleetUtilization
instance Control.DeepSeq.NFData Network.AWS.GameLift.DescribeFleetUtilization.DescribeFleetUtilization
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.GameLift.DescribeFleetUtilization.DescribeFleetUtilization
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.GameLift.DescribeFleetUtilization.DescribeFleetUtilization
instance Network.AWS.Data.Path.ToPath Network.AWS.GameLift.DescribeFleetUtilization.DescribeFleetUtilization
instance Network.AWS.Data.Query.ToQuery Network.AWS.GameLift.DescribeFleetUtilization.DescribeFleetUtilization


-- | Retrieves the inbound connection permissions for a fleet. Connection
--   permissions include a range of IP addresses and port settings that
--   incoming traffic can use to access server processes in the fleet. To
--   get a fleet's inbound connection permissions, specify a fleet ID. If
--   successful, a collection of <tt>IpPermission</tt> objects is returned
--   for the requested fleet ID. If the requested fleet has been deleted,
--   the result set is empty.
--   
--   Fleet-related operations include:
--   
--   <ul>
--   <li><tt>CreateFleet</tt></li>
--   <li><tt>ListFleets</tt></li>
--   <li><tt>DeleteFleet</tt></li>
--   <li>Describe fleets:</li>
--   <li><tt>DescribeFleetAttributes</tt></li>
--   <li><tt>DescribeFleetCapacity</tt></li>
--   <li><a>DescribeFleetPortSettings</a></li>
--   <li><tt>DescribeFleetUtilization</tt></li>
--   <li><tt>DescribeRuntimeConfiguration</tt></li>
--   <li><tt>DescribeEC2InstanceLimits</tt></li>
--   <li><tt>DescribeFleetEvents</tt></li>
--   <li>Update fleets:</li>
--   <li><tt>UpdateFleetAttributes</tt></li>
--   <li><tt>UpdateFleetCapacity</tt></li>
--   <li><tt>UpdateFleetPortSettings</tt></li>
--   <li><tt>UpdateRuntimeConfiguration</tt></li>
--   <li>Manage fleet actions:</li>
--   <li><tt>StartFleetActions</tt></li>
--   <li><tt>StopFleetActions</tt></li>
--   </ul>
module Network.AWS.GameLift.DescribeFleetPortSettings

-- | Creates a value of <a>DescribeFleetPortSettings</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dfpsFleetId</a> - Unique identifier for a fleet to retrieve
--   port settings for.</li>
--   </ul>
describeFleetPortSettings :: Text -> DescribeFleetPortSettings

-- | Represents the input for a request action.
--   
--   <i>See:</i> <a>describeFleetPortSettings</a> smart constructor.
data DescribeFleetPortSettings

-- | Unique identifier for a fleet to retrieve port settings for.
dfpsFleetId :: Lens' DescribeFleetPortSettings Text

-- | Creates a value of <a>DescribeFleetPortSettingsResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dfpsrsInboundPermissions</a> - Object that contains port
--   settings for the requested fleet ID.</li>
--   <li><a>dfpsrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeFleetPortSettingsResponse :: Int -> DescribeFleetPortSettingsResponse

-- | Represents the returned data in response to a request action.
--   
--   <i>See:</i> <a>describeFleetPortSettingsResponse</a> smart
--   constructor.
data DescribeFleetPortSettingsResponse

-- | Object that contains port settings for the requested fleet ID.
dfpsrsInboundPermissions :: Lens' DescribeFleetPortSettingsResponse [IPPermission]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
dfpsrsResponseStatus :: Lens' DescribeFleetPortSettingsResponse Int
instance GHC.Generics.Generic Network.AWS.GameLift.DescribeFleetPortSettings.DescribeFleetPortSettingsResponse
instance Data.Data.Data Network.AWS.GameLift.DescribeFleetPortSettings.DescribeFleetPortSettingsResponse
instance GHC.Show.Show Network.AWS.GameLift.DescribeFleetPortSettings.DescribeFleetPortSettingsResponse
instance GHC.Read.Read Network.AWS.GameLift.DescribeFleetPortSettings.DescribeFleetPortSettingsResponse
instance GHC.Classes.Eq Network.AWS.GameLift.DescribeFleetPortSettings.DescribeFleetPortSettingsResponse
instance GHC.Generics.Generic Network.AWS.GameLift.DescribeFleetPortSettings.DescribeFleetPortSettings
instance Data.Data.Data Network.AWS.GameLift.DescribeFleetPortSettings.DescribeFleetPortSettings
instance GHC.Show.Show Network.AWS.GameLift.DescribeFleetPortSettings.DescribeFleetPortSettings
instance GHC.Read.Read Network.AWS.GameLift.DescribeFleetPortSettings.DescribeFleetPortSettings
instance GHC.Classes.Eq Network.AWS.GameLift.DescribeFleetPortSettings.DescribeFleetPortSettings
instance Network.AWS.Types.AWSRequest Network.AWS.GameLift.DescribeFleetPortSettings.DescribeFleetPortSettings
instance Control.DeepSeq.NFData Network.AWS.GameLift.DescribeFleetPortSettings.DescribeFleetPortSettingsResponse
instance Data.Hashable.Class.Hashable Network.AWS.GameLift.DescribeFleetPortSettings.DescribeFleetPortSettings
instance Control.DeepSeq.NFData Network.AWS.GameLift.DescribeFleetPortSettings.DescribeFleetPortSettings
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.GameLift.DescribeFleetPortSettings.DescribeFleetPortSettings
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.GameLift.DescribeFleetPortSettings.DescribeFleetPortSettings
instance Network.AWS.Data.Path.ToPath Network.AWS.GameLift.DescribeFleetPortSettings.DescribeFleetPortSettings
instance Network.AWS.Data.Query.ToQuery Network.AWS.GameLift.DescribeFleetPortSettings.DescribeFleetPortSettings


-- | Retrieves entries from the specified fleet's event log. You can
--   specify a time range to limit the result set. Use the pagination
--   parameters to retrieve results as a set of sequential pages. If
--   successful, a collection of event log entries matching the request are
--   returned.
--   
--   Fleet-related operations include:
--   
--   <ul>
--   <li><tt>CreateFleet</tt></li>
--   <li><tt>ListFleets</tt></li>
--   <li><tt>DeleteFleet</tt></li>
--   <li>Describe fleets:</li>
--   <li><tt>DescribeFleetAttributes</tt></li>
--   <li><tt>DescribeFleetCapacity</tt></li>
--   <li><tt>DescribeFleetPortSettings</tt></li>
--   <li><tt>DescribeFleetUtilization</tt></li>
--   <li><tt>DescribeRuntimeConfiguration</tt></li>
--   <li><tt>DescribeEC2InstanceLimits</tt></li>
--   <li><a>DescribeFleetEvents</a></li>
--   <li>Update fleets:</li>
--   <li><tt>UpdateFleetAttributes</tt></li>
--   <li><tt>UpdateFleetCapacity</tt></li>
--   <li><tt>UpdateFleetPortSettings</tt></li>
--   <li><tt>UpdateRuntimeConfiguration</tt></li>
--   <li>Manage fleet actions:</li>
--   <li><tt>StartFleetActions</tt></li>
--   <li><tt>StopFleetActions</tt></li>
--   </ul>
module Network.AWS.GameLift.DescribeFleetEvents

-- | Creates a value of <a>DescribeFleetEvents</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dfeStartTime</a> - Earliest date to retrieve event logs for. If
--   no start time is specified, this call returns entries starting from
--   when the fleet was created to the specified end time. Format is a
--   number expressed in Unix time as milliseconds (ex:
--   "1469498468.057").</li>
--   <li><a>dfeNextToken</a> - Token that indicates the start of the next
--   sequential page of results. Use the token that is returned with a
--   previous call to this action. To start at the beginning of the result
--   set, do not specify a value.</li>
--   <li><a>dfeEndTime</a> - Most recent date to retrieve event logs for.
--   If no end time is specified, this call returns entries from the
--   specified start time up to the present. Format is a number expressed
--   in Unix time as milliseconds (ex: "1469498468.057").</li>
--   <li><a>dfeLimit</a> - Maximum number of results to return. Use this
--   parameter with <tt>NextToken</tt> to get results as a set of
--   sequential pages.</li>
--   <li><a>dfeFleetId</a> - Unique identifier for a fleet to get event
--   logs for.</li>
--   </ul>
describeFleetEvents :: Text -> DescribeFleetEvents

-- | Represents the input for a request action.
--   
--   <i>See:</i> <a>describeFleetEvents</a> smart constructor.
data DescribeFleetEvents

-- | Earliest date to retrieve event logs for. If no start time is
--   specified, this call returns entries starting from when the fleet was
--   created to the specified end time. Format is a number expressed in
--   Unix time as milliseconds (ex: "1469498468.057").
dfeStartTime :: Lens' DescribeFleetEvents (Maybe UTCTime)

-- | Token that indicates the start of the next sequential page of results.
--   Use the token that is returned with a previous call to this action. To
--   start at the beginning of the result set, do not specify a value.
dfeNextToken :: Lens' DescribeFleetEvents (Maybe Text)

-- | Most recent date to retrieve event logs for. If no end time is
--   specified, this call returns entries from the specified start time up
--   to the present. Format is a number expressed in Unix time as
--   milliseconds (ex: "1469498468.057").
dfeEndTime :: Lens' DescribeFleetEvents (Maybe UTCTime)

-- | Maximum number of results to return. Use this parameter with
--   <tt>NextToken</tt> to get results as a set of sequential pages.
dfeLimit :: Lens' DescribeFleetEvents (Maybe Natural)

-- | Unique identifier for a fleet to get event logs for.
dfeFleetId :: Lens' DescribeFleetEvents Text

-- | Creates a value of <a>DescribeFleetEventsResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dfersNextToken</a> - Token that indicates where to resume
--   retrieving results on the next call to this action. If no token is
--   returned, these results represent the end of the list.</li>
--   <li><a>dfersEvents</a> - Collection of objects containing event log
--   entries for the specified fleet.</li>
--   <li><a>dfersResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeFleetEventsResponse :: Int -> DescribeFleetEventsResponse

-- | Represents the returned data in response to a request action.
--   
--   <i>See:</i> <a>describeFleetEventsResponse</a> smart constructor.
data DescribeFleetEventsResponse

-- | Token that indicates where to resume retrieving results on the next
--   call to this action. If no token is returned, these results represent
--   the end of the list.
dfersNextToken :: Lens' DescribeFleetEventsResponse (Maybe Text)

-- | Collection of objects containing event log entries for the specified
--   fleet.
dfersEvents :: Lens' DescribeFleetEventsResponse [Event]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
dfersResponseStatus :: Lens' DescribeFleetEventsResponse Int
instance GHC.Generics.Generic Network.AWS.GameLift.DescribeFleetEvents.DescribeFleetEventsResponse
instance Data.Data.Data Network.AWS.GameLift.DescribeFleetEvents.DescribeFleetEventsResponse
instance GHC.Show.Show Network.AWS.GameLift.DescribeFleetEvents.DescribeFleetEventsResponse
instance GHC.Read.Read Network.AWS.GameLift.DescribeFleetEvents.DescribeFleetEventsResponse
instance GHC.Classes.Eq Network.AWS.GameLift.DescribeFleetEvents.DescribeFleetEventsResponse
instance GHC.Generics.Generic Network.AWS.GameLift.DescribeFleetEvents.DescribeFleetEvents
instance Data.Data.Data Network.AWS.GameLift.DescribeFleetEvents.DescribeFleetEvents
instance GHC.Show.Show Network.AWS.GameLift.DescribeFleetEvents.DescribeFleetEvents
instance GHC.Read.Read Network.AWS.GameLift.DescribeFleetEvents.DescribeFleetEvents
instance GHC.Classes.Eq Network.AWS.GameLift.DescribeFleetEvents.DescribeFleetEvents
instance Network.AWS.Types.AWSRequest Network.AWS.GameLift.DescribeFleetEvents.DescribeFleetEvents
instance Control.DeepSeq.NFData Network.AWS.GameLift.DescribeFleetEvents.DescribeFleetEventsResponse
instance Data.Hashable.Class.Hashable Network.AWS.GameLift.DescribeFleetEvents.DescribeFleetEvents
instance Control.DeepSeq.NFData Network.AWS.GameLift.DescribeFleetEvents.DescribeFleetEvents
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.GameLift.DescribeFleetEvents.DescribeFleetEvents
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.GameLift.DescribeFleetEvents.DescribeFleetEvents
instance Network.AWS.Data.Path.ToPath Network.AWS.GameLift.DescribeFleetEvents.DescribeFleetEvents
instance Network.AWS.Data.Query.ToQuery Network.AWS.GameLift.DescribeFleetEvents.DescribeFleetEvents


-- | Retrieves the current status of fleet capacity for one or more fleets.
--   This information includes the number of instances that have been
--   requested for the fleet and the number currently active. You can
--   request capacity for all fleets, or specify a list of one or more
--   fleet IDs. When requesting multiple fleets, use the pagination
--   parameters to retrieve results as a set of sequential pages. If
--   successful, a <a>FleetCapacity</a> object is returned for each
--   requested fleet ID. When specifying a list of fleet IDs, attribute
--   objects are returned only for fleets that currently exist.
--   
--   Fleet-related operations include:
--   
--   <ul>
--   <li><tt>CreateFleet</tt></li>
--   <li><tt>ListFleets</tt></li>
--   <li><tt>DeleteFleet</tt></li>
--   <li>Describe fleets:</li>
--   <li><tt>DescribeFleetAttributes</tt></li>
--   <li><a>DescribeFleetCapacity</a></li>
--   <li><tt>DescribeFleetPortSettings</tt></li>
--   <li><tt>DescribeFleetUtilization</tt></li>
--   <li><tt>DescribeRuntimeConfiguration</tt></li>
--   <li><tt>DescribeEC2InstanceLimits</tt></li>
--   <li><tt>DescribeFleetEvents</tt></li>
--   <li>Update fleets:</li>
--   <li><tt>UpdateFleetAttributes</tt></li>
--   <li><tt>UpdateFleetCapacity</tt></li>
--   <li><tt>UpdateFleetPortSettings</tt></li>
--   <li><tt>UpdateRuntimeConfiguration</tt></li>
--   <li>Manage fleet actions:</li>
--   <li><tt>StartFleetActions</tt></li>
--   <li><tt>StopFleetActions</tt></li>
--   </ul>
module Network.AWS.GameLift.DescribeFleetCapacity

-- | Creates a value of <a>DescribeFleetCapacity</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dfcNextToken</a> - Token that indicates the start of the next
--   sequential page of results. Use the token that is returned with a
--   previous call to this action. To start at the beginning of the result
--   set, do not specify a value. This parameter is ignored when the
--   request specifies one or a list of fleet IDs.</li>
--   <li><a>dfcLimit</a> - Maximum number of results to return. Use this
--   parameter with <tt>NextToken</tt> to get results as a set of
--   sequential pages. This parameter is ignored when the request specifies
--   one or a list of fleet IDs.</li>
--   <li><a>dfcFleetIds</a> - Unique identifier for a fleet(s) to retrieve
--   capacity information for. To request capacity information for all
--   fleets, leave this parameter empty.</li>
--   </ul>
describeFleetCapacity :: DescribeFleetCapacity

-- | Represents the input for a request action.
--   
--   <i>See:</i> <a>describeFleetCapacity</a> smart constructor.
data DescribeFleetCapacity

-- | Token that indicates the start of the next sequential page of results.
--   Use the token that is returned with a previous call to this action. To
--   start at the beginning of the result set, do not specify a value. This
--   parameter is ignored when the request specifies one or a list of fleet
--   IDs.
dfcNextToken :: Lens' DescribeFleetCapacity (Maybe Text)

-- | Maximum number of results to return. Use this parameter with
--   <tt>NextToken</tt> to get results as a set of sequential pages. This
--   parameter is ignored when the request specifies one or a list of fleet
--   IDs.
dfcLimit :: Lens' DescribeFleetCapacity (Maybe Natural)

-- | Unique identifier for a fleet(s) to retrieve capacity information for.
--   To request capacity information for all fleets, leave this parameter
--   empty.
dfcFleetIds :: Lens' DescribeFleetCapacity (Maybe (NonEmpty Text))

-- | Creates a value of <a>DescribeFleetCapacityResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dfcrsNextToken</a> - Token that indicates where to resume
--   retrieving results on the next call to this action. If no token is
--   returned, these results represent the end of the list.</li>
--   <li><a>dfcrsFleetCapacity</a> - Collection of objects containing
--   capacity information for each requested fleet ID. Leave this parameter
--   empty to retrieve capacity information for all fleets.</li>
--   <li><a>dfcrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeFleetCapacityResponse :: Int -> DescribeFleetCapacityResponse

-- | Represents the returned data in response to a request action.
--   
--   <i>See:</i> <a>describeFleetCapacityResponse</a> smart constructor.
data DescribeFleetCapacityResponse

-- | Token that indicates where to resume retrieving results on the next
--   call to this action. If no token is returned, these results represent
--   the end of the list.
dfcrsNextToken :: Lens' DescribeFleetCapacityResponse (Maybe Text)

-- | Collection of objects containing capacity information for each
--   requested fleet ID. Leave this parameter empty to retrieve capacity
--   information for all fleets.
dfcrsFleetCapacity :: Lens' DescribeFleetCapacityResponse [FleetCapacity]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
dfcrsResponseStatus :: Lens' DescribeFleetCapacityResponse Int
instance GHC.Generics.Generic Network.AWS.GameLift.DescribeFleetCapacity.DescribeFleetCapacityResponse
instance Data.Data.Data Network.AWS.GameLift.DescribeFleetCapacity.DescribeFleetCapacityResponse
instance GHC.Show.Show Network.AWS.GameLift.DescribeFleetCapacity.DescribeFleetCapacityResponse
instance GHC.Read.Read Network.AWS.GameLift.DescribeFleetCapacity.DescribeFleetCapacityResponse
instance GHC.Classes.Eq Network.AWS.GameLift.DescribeFleetCapacity.DescribeFleetCapacityResponse
instance GHC.Generics.Generic Network.AWS.GameLift.DescribeFleetCapacity.DescribeFleetCapacity
instance Data.Data.Data Network.AWS.GameLift.DescribeFleetCapacity.DescribeFleetCapacity
instance GHC.Show.Show Network.AWS.GameLift.DescribeFleetCapacity.DescribeFleetCapacity
instance GHC.Read.Read Network.AWS.GameLift.DescribeFleetCapacity.DescribeFleetCapacity
instance GHC.Classes.Eq Network.AWS.GameLift.DescribeFleetCapacity.DescribeFleetCapacity
instance Network.AWS.Types.AWSRequest Network.AWS.GameLift.DescribeFleetCapacity.DescribeFleetCapacity
instance Control.DeepSeq.NFData Network.AWS.GameLift.DescribeFleetCapacity.DescribeFleetCapacityResponse
instance Data.Hashable.Class.Hashable Network.AWS.GameLift.DescribeFleetCapacity.DescribeFleetCapacity
instance Control.DeepSeq.NFData Network.AWS.GameLift.DescribeFleetCapacity.DescribeFleetCapacity
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.GameLift.DescribeFleetCapacity.DescribeFleetCapacity
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.GameLift.DescribeFleetCapacity.DescribeFleetCapacity
instance Network.AWS.Data.Path.ToPath Network.AWS.GameLift.DescribeFleetCapacity.DescribeFleetCapacity
instance Network.AWS.Data.Query.ToQuery Network.AWS.GameLift.DescribeFleetCapacity.DescribeFleetCapacity


-- | Retrieves fleet properties, including metadata, status, and
--   configuration, for one or more fleets. You can request attributes for
--   all fleets, or specify a list of one or more fleet IDs. When
--   requesting multiple fleets, use the pagination parameters to retrieve
--   results as a set of sequential pages. If successful, a
--   <a>FleetAttributes</a> object is returned for each requested fleet ID.
--   When specifying a list of fleet IDs, attribute objects are returned
--   only for fleets that currently exist.
--   
--   Fleet-related operations include:
--   
--   <ul>
--   <li><tt>CreateFleet</tt></li>
--   <li><tt>ListFleets</tt></li>
--   <li><tt>DeleteFleet</tt></li>
--   <li>Describe fleets:</li>
--   <li><a>DescribeFleetAttributes</a></li>
--   <li><tt>DescribeFleetCapacity</tt></li>
--   <li><tt>DescribeFleetPortSettings</tt></li>
--   <li><tt>DescribeFleetUtilization</tt></li>
--   <li><tt>DescribeRuntimeConfiguration</tt></li>
--   <li><tt>DescribeEC2InstanceLimits</tt></li>
--   <li><tt>DescribeFleetEvents</tt></li>
--   <li>Update fleets:</li>
--   <li><tt>UpdateFleetAttributes</tt></li>
--   <li><tt>UpdateFleetCapacity</tt></li>
--   <li><tt>UpdateFleetPortSettings</tt></li>
--   <li><tt>UpdateRuntimeConfiguration</tt></li>
--   <li>Manage fleet actions:</li>
--   <li><tt>StartFleetActions</tt></li>
--   <li><tt>StopFleetActions</tt></li>
--   </ul>
module Network.AWS.GameLift.DescribeFleetAttributes

-- | Creates a value of <a>DescribeFleetAttributes</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dfaNextToken</a> - Token that indicates the start of the next
--   sequential page of results. Use the token that is returned with a
--   previous call to this action. To start at the beginning of the result
--   set, do not specify a value. This parameter is ignored when the
--   request specifies one or a list of fleet IDs.</li>
--   <li><a>dfaLimit</a> - Maximum number of results to return. Use this
--   parameter with <tt>NextToken</tt> to get results as a set of
--   sequential pages. This parameter is ignored when the request specifies
--   one or a list of fleet IDs.</li>
--   <li><a>dfaFleetIds</a> - Unique identifier for a fleet(s) to retrieve
--   attributes for. To request attributes for all fleets, leave this
--   parameter empty.</li>
--   </ul>
describeFleetAttributes :: DescribeFleetAttributes

-- | Represents the input for a request action.
--   
--   <i>See:</i> <a>describeFleetAttributes</a> smart constructor.
data DescribeFleetAttributes

-- | Token that indicates the start of the next sequential page of results.
--   Use the token that is returned with a previous call to this action. To
--   start at the beginning of the result set, do not specify a value. This
--   parameter is ignored when the request specifies one or a list of fleet
--   IDs.
dfaNextToken :: Lens' DescribeFleetAttributes (Maybe Text)

-- | Maximum number of results to return. Use this parameter with
--   <tt>NextToken</tt> to get results as a set of sequential pages. This
--   parameter is ignored when the request specifies one or a list of fleet
--   IDs.
dfaLimit :: Lens' DescribeFleetAttributes (Maybe Natural)

-- | Unique identifier for a fleet(s) to retrieve attributes for. To
--   request attributes for all fleets, leave this parameter empty.
dfaFleetIds :: Lens' DescribeFleetAttributes (Maybe (NonEmpty Text))

-- | Creates a value of <a>DescribeFleetAttributesResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dfarsNextToken</a> - Token that indicates where to resume
--   retrieving results on the next call to this action. If no token is
--   returned, these results represent the end of the list.</li>
--   <li><a>dfarsFleetAttributes</a> - Collection of objects containing
--   attribute metadata for each requested fleet ID.</li>
--   <li><a>dfarsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeFleetAttributesResponse :: Int -> DescribeFleetAttributesResponse

-- | Represents the returned data in response to a request action.
--   
--   <i>See:</i> <a>describeFleetAttributesResponse</a> smart constructor.
data DescribeFleetAttributesResponse

-- | Token that indicates where to resume retrieving results on the next
--   call to this action. If no token is returned, these results represent
--   the end of the list.
dfarsNextToken :: Lens' DescribeFleetAttributesResponse (Maybe Text)

-- | Collection of objects containing attribute metadata for each requested
--   fleet ID.
dfarsFleetAttributes :: Lens' DescribeFleetAttributesResponse [FleetAttributes]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
dfarsResponseStatus :: Lens' DescribeFleetAttributesResponse Int
instance GHC.Generics.Generic Network.AWS.GameLift.DescribeFleetAttributes.DescribeFleetAttributesResponse
instance Data.Data.Data Network.AWS.GameLift.DescribeFleetAttributes.DescribeFleetAttributesResponse
instance GHC.Show.Show Network.AWS.GameLift.DescribeFleetAttributes.DescribeFleetAttributesResponse
instance GHC.Read.Read Network.AWS.GameLift.DescribeFleetAttributes.DescribeFleetAttributesResponse
instance GHC.Classes.Eq Network.AWS.GameLift.DescribeFleetAttributes.DescribeFleetAttributesResponse
instance GHC.Generics.Generic Network.AWS.GameLift.DescribeFleetAttributes.DescribeFleetAttributes
instance Data.Data.Data Network.AWS.GameLift.DescribeFleetAttributes.DescribeFleetAttributes
instance GHC.Show.Show Network.AWS.GameLift.DescribeFleetAttributes.DescribeFleetAttributes
instance GHC.Read.Read Network.AWS.GameLift.DescribeFleetAttributes.DescribeFleetAttributes
instance GHC.Classes.Eq Network.AWS.GameLift.DescribeFleetAttributes.DescribeFleetAttributes
instance Network.AWS.Types.AWSRequest Network.AWS.GameLift.DescribeFleetAttributes.DescribeFleetAttributes
instance Control.DeepSeq.NFData Network.AWS.GameLift.DescribeFleetAttributes.DescribeFleetAttributesResponse
instance Data.Hashable.Class.Hashable Network.AWS.GameLift.DescribeFleetAttributes.DescribeFleetAttributes
instance Control.DeepSeq.NFData Network.AWS.GameLift.DescribeFleetAttributes.DescribeFleetAttributes
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.GameLift.DescribeFleetAttributes.DescribeFleetAttributes
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.GameLift.DescribeFleetAttributes.DescribeFleetAttributes
instance Network.AWS.Data.Path.ToPath Network.AWS.GameLift.DescribeFleetAttributes.DescribeFleetAttributes
instance Network.AWS.Data.Query.ToQuery Network.AWS.GameLift.DescribeFleetAttributes.DescribeFleetAttributes


-- | Retrieves the following information for the specified EC2 instance
--   type:
--   
--   <ul>
--   <li>maximum number of instances allowed per AWS account (service
--   limit)</li>
--   <li>current usage level for the AWS account</li>
--   </ul>
--   
--   Service limits vary depending on region. Available regions for Amazon
--   GameLift can be found in the AWS Management Console for Amazon
--   GameLift (see the drop-down list in the upper right corner).
--   
--   Fleet-related operations include:
--   
--   <ul>
--   <li><tt>CreateFleet</tt></li>
--   <li><tt>ListFleets</tt></li>
--   <li><tt>DeleteFleet</tt></li>
--   <li>Describe fleets:</li>
--   <li><tt>DescribeFleetAttributes</tt></li>
--   <li><tt>DescribeFleetCapacity</tt></li>
--   <li><tt>DescribeFleetPortSettings</tt></li>
--   <li><tt>DescribeFleetUtilization</tt></li>
--   <li><tt>DescribeRuntimeConfiguration</tt></li>
--   <li><a>DescribeEC2InstanceLimits</a></li>
--   <li><tt>DescribeFleetEvents</tt></li>
--   <li>Update fleets:</li>
--   <li><tt>UpdateFleetAttributes</tt></li>
--   <li><tt>UpdateFleetCapacity</tt></li>
--   <li><tt>UpdateFleetPortSettings</tt></li>
--   <li><tt>UpdateRuntimeConfiguration</tt></li>
--   <li>Manage fleet actions:</li>
--   <li><tt>StartFleetActions</tt></li>
--   <li><tt>StopFleetActions</tt></li>
--   </ul>
module Network.AWS.GameLift.DescribeEC2InstanceLimits

-- | Creates a value of <a>DescribeEC2InstanceLimits</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>deilEC2InstanceType</a> - Name of an EC2 instance type that is
--   supported in Amazon GameLift. A fleet instance type determines the
--   computing resources of each instance in the fleet, including CPU,
--   memory, storage, and networking capacity. Amazon GameLift supports the
--   following EC2 instance types. See <a>Amazon EC2 Instance Types</a> for
--   detailed descriptions. Leave this parameter blank to retrieve limits
--   for all types.</li>
--   </ul>
describeEC2InstanceLimits :: DescribeEC2InstanceLimits

-- | Represents the input for a request action.
--   
--   <i>See:</i> <a>describeEC2InstanceLimits</a> smart constructor.
data DescribeEC2InstanceLimits

-- | Name of an EC2 instance type that is supported in Amazon GameLift. A
--   fleet instance type determines the computing resources of each
--   instance in the fleet, including CPU, memory, storage, and networking
--   capacity. Amazon GameLift supports the following EC2 instance types.
--   See <a>Amazon EC2 Instance Types</a> for detailed descriptions. Leave
--   this parameter blank to retrieve limits for all types.
deilEC2InstanceType :: Lens' DescribeEC2InstanceLimits (Maybe EC2InstanceType)

-- | Creates a value of <a>DescribeEC2InstanceLimitsResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>deilrsEC2InstanceLimits</a> - Object that contains the maximum
--   number of instances for the specified instance type.</li>
--   <li><a>deilrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeEC2InstanceLimitsResponse :: Int -> DescribeEC2InstanceLimitsResponse

-- | Represents the returned data in response to a request action.
--   
--   <i>See:</i> <a>describeEC2InstanceLimitsResponse</a> smart
--   constructor.
data DescribeEC2InstanceLimitsResponse

-- | Object that contains the maximum number of instances for the specified
--   instance type.
deilrsEC2InstanceLimits :: Lens' DescribeEC2InstanceLimitsResponse [EC2InstanceLimit]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
deilrsResponseStatus :: Lens' DescribeEC2InstanceLimitsResponse Int
instance GHC.Generics.Generic Network.AWS.GameLift.DescribeEC2InstanceLimits.DescribeEC2InstanceLimitsResponse
instance Data.Data.Data Network.AWS.GameLift.DescribeEC2InstanceLimits.DescribeEC2InstanceLimitsResponse
instance GHC.Show.Show Network.AWS.GameLift.DescribeEC2InstanceLimits.DescribeEC2InstanceLimitsResponse
instance GHC.Read.Read Network.AWS.GameLift.DescribeEC2InstanceLimits.DescribeEC2InstanceLimitsResponse
instance GHC.Classes.Eq Network.AWS.GameLift.DescribeEC2InstanceLimits.DescribeEC2InstanceLimitsResponse
instance GHC.Generics.Generic Network.AWS.GameLift.DescribeEC2InstanceLimits.DescribeEC2InstanceLimits
instance Data.Data.Data Network.AWS.GameLift.DescribeEC2InstanceLimits.DescribeEC2InstanceLimits
instance GHC.Show.Show Network.AWS.GameLift.DescribeEC2InstanceLimits.DescribeEC2InstanceLimits
instance GHC.Read.Read Network.AWS.GameLift.DescribeEC2InstanceLimits.DescribeEC2InstanceLimits
instance GHC.Classes.Eq Network.AWS.GameLift.DescribeEC2InstanceLimits.DescribeEC2InstanceLimits
instance Network.AWS.Types.AWSRequest Network.AWS.GameLift.DescribeEC2InstanceLimits.DescribeEC2InstanceLimits
instance Control.DeepSeq.NFData Network.AWS.GameLift.DescribeEC2InstanceLimits.DescribeEC2InstanceLimitsResponse
instance Data.Hashable.Class.Hashable Network.AWS.GameLift.DescribeEC2InstanceLimits.DescribeEC2InstanceLimits
instance Control.DeepSeq.NFData Network.AWS.GameLift.DescribeEC2InstanceLimits.DescribeEC2InstanceLimits
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.GameLift.DescribeEC2InstanceLimits.DescribeEC2InstanceLimits
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.GameLift.DescribeEC2InstanceLimits.DescribeEC2InstanceLimits
instance Network.AWS.Data.Path.ToPath Network.AWS.GameLift.DescribeEC2InstanceLimits.DescribeEC2InstanceLimits
instance Network.AWS.Data.Query.ToQuery Network.AWS.GameLift.DescribeEC2InstanceLimits.DescribeEC2InstanceLimits


-- | Retrieves properties for a build. To request a build record, specify a
--   build ID. If successful, an object containing the build properties is
--   returned.
--   
--   Build-related operations include:
--   
--   <ul>
--   <li><tt>CreateBuild</tt></li>
--   <li><tt>ListBuilds</tt></li>
--   <li><a>DescribeBuild</a></li>
--   <li><tt>UpdateBuild</tt></li>
--   <li><tt>DeleteBuild</tt></li>
--   </ul>
module Network.AWS.GameLift.DescribeBuild

-- | Creates a value of <a>DescribeBuild</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dBuildId</a> - Unique identifier for a build to retrieve
--   properties for.</li>
--   </ul>
describeBuild :: Text -> DescribeBuild

-- | Represents the input for a request action.
--   
--   <i>See:</i> <a>describeBuild</a> smart constructor.
data DescribeBuild

-- | Unique identifier for a build to retrieve properties for.
dBuildId :: Lens' DescribeBuild Text

-- | Creates a value of <a>DescribeBuildResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dbrsBuild</a> - Set of properties describing the requested
--   build.</li>
--   <li><a>dbrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeBuildResponse :: Int -> DescribeBuildResponse

-- | Represents the returned data in response to a request action.
--   
--   <i>See:</i> <a>describeBuildResponse</a> smart constructor.
data DescribeBuildResponse

-- | Set of properties describing the requested build.
dbrsBuild :: Lens' DescribeBuildResponse (Maybe Build)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
dbrsResponseStatus :: Lens' DescribeBuildResponse Int
instance GHC.Generics.Generic Network.AWS.GameLift.DescribeBuild.DescribeBuildResponse
instance Data.Data.Data Network.AWS.GameLift.DescribeBuild.DescribeBuildResponse
instance GHC.Show.Show Network.AWS.GameLift.DescribeBuild.DescribeBuildResponse
instance GHC.Read.Read Network.AWS.GameLift.DescribeBuild.DescribeBuildResponse
instance GHC.Classes.Eq Network.AWS.GameLift.DescribeBuild.DescribeBuildResponse
instance GHC.Generics.Generic Network.AWS.GameLift.DescribeBuild.DescribeBuild
instance Data.Data.Data Network.AWS.GameLift.DescribeBuild.DescribeBuild
instance GHC.Show.Show Network.AWS.GameLift.DescribeBuild.DescribeBuild
instance GHC.Read.Read Network.AWS.GameLift.DescribeBuild.DescribeBuild
instance GHC.Classes.Eq Network.AWS.GameLift.DescribeBuild.DescribeBuild
instance Network.AWS.Types.AWSRequest Network.AWS.GameLift.DescribeBuild.DescribeBuild
instance Control.DeepSeq.NFData Network.AWS.GameLift.DescribeBuild.DescribeBuildResponse
instance Data.Hashable.Class.Hashable Network.AWS.GameLift.DescribeBuild.DescribeBuild
instance Control.DeepSeq.NFData Network.AWS.GameLift.DescribeBuild.DescribeBuild
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.GameLift.DescribeBuild.DescribeBuild
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.GameLift.DescribeBuild.DescribeBuild
instance Network.AWS.Data.Path.ToPath Network.AWS.GameLift.DescribeBuild.DescribeBuild
instance Network.AWS.Data.Query.ToQuery Network.AWS.GameLift.DescribeBuild.DescribeBuild


-- | Retrieves properties for an alias. This operation returns all alias
--   metadata and settings. To get an alias's target fleet ID only, use
--   <tt>ResolveAlias</tt> .
--   
--   To get alias properties, specify the alias ID. If successful, the
--   requested alias record is returned.
--   
--   Alias-related operations include:
--   
--   <ul>
--   <li><tt>CreateAlias</tt></li>
--   <li><tt>ListAliases</tt></li>
--   <li><a>DescribeAlias</a></li>
--   <li><tt>UpdateAlias</tt></li>
--   <li><tt>DeleteAlias</tt></li>
--   <li><tt>ResolveAlias</tt></li>
--   </ul>
module Network.AWS.GameLift.DescribeAlias

-- | Creates a value of <a>DescribeAlias</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dAliasId</a> - Unique identifier for a fleet alias. Specify the
--   alias you want to retrieve.</li>
--   </ul>
describeAlias :: Text -> DescribeAlias

-- | Represents the input for a request action.
--   
--   <i>See:</i> <a>describeAlias</a> smart constructor.
data DescribeAlias

-- | Unique identifier for a fleet alias. Specify the alias you want to
--   retrieve.
dAliasId :: Lens' DescribeAlias Text

-- | Creates a value of <a>DescribeAliasResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>darsAlias</a> - Object that contains the requested alias.</li>
--   <li><a>darsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeAliasResponse :: Int -> DescribeAliasResponse

-- | Represents the returned data in response to a request action.
--   
--   <i>See:</i> <a>describeAliasResponse</a> smart constructor.
data DescribeAliasResponse

-- | Object that contains the requested alias.
darsAlias :: Lens' DescribeAliasResponse (Maybe Alias)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
darsResponseStatus :: Lens' DescribeAliasResponse Int
instance GHC.Generics.Generic Network.AWS.GameLift.DescribeAlias.DescribeAliasResponse
instance Data.Data.Data Network.AWS.GameLift.DescribeAlias.DescribeAliasResponse
instance GHC.Show.Show Network.AWS.GameLift.DescribeAlias.DescribeAliasResponse
instance GHC.Read.Read Network.AWS.GameLift.DescribeAlias.DescribeAliasResponse
instance GHC.Classes.Eq Network.AWS.GameLift.DescribeAlias.DescribeAliasResponse
instance GHC.Generics.Generic Network.AWS.GameLift.DescribeAlias.DescribeAlias
instance Data.Data.Data Network.AWS.GameLift.DescribeAlias.DescribeAlias
instance GHC.Show.Show Network.AWS.GameLift.DescribeAlias.DescribeAlias
instance GHC.Read.Read Network.AWS.GameLift.DescribeAlias.DescribeAlias
instance GHC.Classes.Eq Network.AWS.GameLift.DescribeAlias.DescribeAlias
instance Network.AWS.Types.AWSRequest Network.AWS.GameLift.DescribeAlias.DescribeAlias
instance Control.DeepSeq.NFData Network.AWS.GameLift.DescribeAlias.DescribeAliasResponse
instance Data.Hashable.Class.Hashable Network.AWS.GameLift.DescribeAlias.DescribeAlias
instance Control.DeepSeq.NFData Network.AWS.GameLift.DescribeAlias.DescribeAlias
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.GameLift.DescribeAlias.DescribeAlias
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.GameLift.DescribeAlias.DescribeAlias
instance Network.AWS.Data.Path.ToPath Network.AWS.GameLift.DescribeAlias.DescribeAlias
instance Network.AWS.Data.Query.ToQuery Network.AWS.GameLift.DescribeAlias.DescribeAlias


-- | Removes a VPC peering connection. To delete the connection, you must
--   have a valid authorization for the VPC peering connection that you
--   want to delete. You can check for an authorization by calling
--   <tt>DescribeVpcPeeringAuthorizations</tt> or request a new one using
--   <tt>CreateVpcPeeringAuthorization</tt> .
--   
--   Once a valid authorization exists, call this operation from the AWS
--   account that is used to manage the Amazon GameLift fleets. Identify
--   the connection to delete by the connection ID and fleet ID. If
--   successful, the connection is removed.
--   
--   VPC peering connection operations include:
--   
--   <ul>
--   <li><tt>CreateVpcPeeringAuthorization</tt></li>
--   <li><tt>DescribeVpcPeeringAuthorizations</tt></li>
--   <li><tt>DeleteVpcPeeringAuthorization</tt></li>
--   <li><tt>CreateVpcPeeringConnection</tt></li>
--   <li><tt>DescribeVpcPeeringConnections</tt></li>
--   <li><tt>DeleteVpcPeeringConnection</tt></li>
--   </ul>
module Network.AWS.GameLift.DeleteVPCPeeringConnection

-- | Creates a value of <a>DeleteVPCPeeringConnection</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dvpcFleetId</a> - Unique identifier for a fleet. This value
--   must match the fleet ID referenced in the VPC peering connection
--   record.</li>
--   <li><a>dvpcVPCPeeringConnectionId</a> - Unique identifier for a VPC
--   peering connection. This value is included in the
--   <tt>VpcPeeringConnection</tt> object, which can be retrieved by
--   calling <tt>DescribeVpcPeeringConnections</tt> .</li>
--   </ul>
deleteVPCPeeringConnection :: Text -> Text -> DeleteVPCPeeringConnection

-- | Represents the input for a request action.
--   
--   <i>See:</i> <a>deleteVPCPeeringConnection</a> smart constructor.
data DeleteVPCPeeringConnection

-- | Unique identifier for a fleet. This value must match the fleet ID
--   referenced in the VPC peering connection record.
dvpcFleetId :: Lens' DeleteVPCPeeringConnection Text

-- | Unique identifier for a VPC peering connection. This value is included
--   in the <tt>VpcPeeringConnection</tt> object, which can be retrieved by
--   calling <tt>DescribeVpcPeeringConnections</tt> .
dvpcVPCPeeringConnectionId :: Lens' DeleteVPCPeeringConnection Text

-- | Creates a value of <a>DeleteVPCPeeringConnectionResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dvpcrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
deleteVPCPeeringConnectionResponse :: Int -> DeleteVPCPeeringConnectionResponse

-- | <i>See:</i> <a>deleteVPCPeeringConnectionResponse</a> smart
--   constructor.
data DeleteVPCPeeringConnectionResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
dvpcrsResponseStatus :: Lens' DeleteVPCPeeringConnectionResponse Int
instance GHC.Generics.Generic Network.AWS.GameLift.DeleteVPCPeeringConnection.DeleteVPCPeeringConnectionResponse
instance Data.Data.Data Network.AWS.GameLift.DeleteVPCPeeringConnection.DeleteVPCPeeringConnectionResponse
instance GHC.Show.Show Network.AWS.GameLift.DeleteVPCPeeringConnection.DeleteVPCPeeringConnectionResponse
instance GHC.Read.Read Network.AWS.GameLift.DeleteVPCPeeringConnection.DeleteVPCPeeringConnectionResponse
instance GHC.Classes.Eq Network.AWS.GameLift.DeleteVPCPeeringConnection.DeleteVPCPeeringConnectionResponse
instance GHC.Generics.Generic Network.AWS.GameLift.DeleteVPCPeeringConnection.DeleteVPCPeeringConnection
instance Data.Data.Data Network.AWS.GameLift.DeleteVPCPeeringConnection.DeleteVPCPeeringConnection
instance GHC.Show.Show Network.AWS.GameLift.DeleteVPCPeeringConnection.DeleteVPCPeeringConnection
instance GHC.Read.Read Network.AWS.GameLift.DeleteVPCPeeringConnection.DeleteVPCPeeringConnection
instance GHC.Classes.Eq Network.AWS.GameLift.DeleteVPCPeeringConnection.DeleteVPCPeeringConnection
instance Network.AWS.Types.AWSRequest Network.AWS.GameLift.DeleteVPCPeeringConnection.DeleteVPCPeeringConnection
instance Control.DeepSeq.NFData Network.AWS.GameLift.DeleteVPCPeeringConnection.DeleteVPCPeeringConnectionResponse
instance Data.Hashable.Class.Hashable Network.AWS.GameLift.DeleteVPCPeeringConnection.DeleteVPCPeeringConnection
instance Control.DeepSeq.NFData Network.AWS.GameLift.DeleteVPCPeeringConnection.DeleteVPCPeeringConnection
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.GameLift.DeleteVPCPeeringConnection.DeleteVPCPeeringConnection
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.GameLift.DeleteVPCPeeringConnection.DeleteVPCPeeringConnection
instance Network.AWS.Data.Path.ToPath Network.AWS.GameLift.DeleteVPCPeeringConnection.DeleteVPCPeeringConnection
instance Network.AWS.Data.Query.ToQuery Network.AWS.GameLift.DeleteVPCPeeringConnection.DeleteVPCPeeringConnection


-- | Cancels a pending VPC peering authorization for the specified VPC. If
--   the authorization has already been used to create a peering
--   connection, call <tt>DeleteVpcPeeringConnection</tt> to remove the
--   connection.
--   
--   VPC peering connection operations include:
--   
--   <ul>
--   <li><tt>CreateVpcPeeringAuthorization</tt></li>
--   <li><tt>DescribeVpcPeeringAuthorizations</tt></li>
--   <li><tt>DeleteVpcPeeringAuthorization</tt></li>
--   <li><tt>CreateVpcPeeringConnection</tt></li>
--   <li><tt>DescribeVpcPeeringConnections</tt></li>
--   <li><tt>DeleteVpcPeeringConnection</tt></li>
--   </ul>
module Network.AWS.GameLift.DeleteVPCPeeringAuthorization

-- | Creates a value of <a>DeleteVPCPeeringAuthorization</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dvpaGameLiftAWSAccountId</a> - Unique identifier for the AWS
--   account that you use to manage your Amazon GameLift fleet. You can
--   find your Account ID in the AWS Management Console under account
--   settings.</li>
--   <li><a>dvpaPeerVPCId</a> - Unique identifier for a VPC with resources
--   to be accessed by your Amazon GameLift fleet. The VPC must be in the
--   same region where your fleet is deployed. To get VPC information,
--   including IDs, use the Virtual Private Cloud service tools, including
--   the VPC Dashboard in the AWS Management Console.</li>
--   </ul>
deleteVPCPeeringAuthorization :: Text -> Text -> DeleteVPCPeeringAuthorization

-- | Represents the input for a request action.
--   
--   <i>See:</i> <a>deleteVPCPeeringAuthorization</a> smart constructor.
data DeleteVPCPeeringAuthorization

-- | Unique identifier for the AWS account that you use to manage your
--   Amazon GameLift fleet. You can find your Account ID in the AWS
--   Management Console under account settings.
dvpaGameLiftAWSAccountId :: Lens' DeleteVPCPeeringAuthorization Text

-- | Unique identifier for a VPC with resources to be accessed by your
--   Amazon GameLift fleet. The VPC must be in the same region where your
--   fleet is deployed. To get VPC information, including IDs, use the
--   Virtual Private Cloud service tools, including the VPC Dashboard in
--   the AWS Management Console.
dvpaPeerVPCId :: Lens' DeleteVPCPeeringAuthorization Text

-- | Creates a value of <a>DeleteVPCPeeringAuthorizationResponse</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dvparsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
deleteVPCPeeringAuthorizationResponse :: Int -> DeleteVPCPeeringAuthorizationResponse

-- | <i>See:</i> <a>deleteVPCPeeringAuthorizationResponse</a> smart
--   constructor.
data DeleteVPCPeeringAuthorizationResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
dvparsResponseStatus :: Lens' DeleteVPCPeeringAuthorizationResponse Int
instance GHC.Generics.Generic Network.AWS.GameLift.DeleteVPCPeeringAuthorization.DeleteVPCPeeringAuthorizationResponse
instance Data.Data.Data Network.AWS.GameLift.DeleteVPCPeeringAuthorization.DeleteVPCPeeringAuthorizationResponse
instance GHC.Show.Show Network.AWS.GameLift.DeleteVPCPeeringAuthorization.DeleteVPCPeeringAuthorizationResponse
instance GHC.Read.Read Network.AWS.GameLift.DeleteVPCPeeringAuthorization.DeleteVPCPeeringAuthorizationResponse
instance GHC.Classes.Eq Network.AWS.GameLift.DeleteVPCPeeringAuthorization.DeleteVPCPeeringAuthorizationResponse
instance GHC.Generics.Generic Network.AWS.GameLift.DeleteVPCPeeringAuthorization.DeleteVPCPeeringAuthorization
instance Data.Data.Data Network.AWS.GameLift.DeleteVPCPeeringAuthorization.DeleteVPCPeeringAuthorization
instance GHC.Show.Show Network.AWS.GameLift.DeleteVPCPeeringAuthorization.DeleteVPCPeeringAuthorization
instance GHC.Read.Read Network.AWS.GameLift.DeleteVPCPeeringAuthorization.DeleteVPCPeeringAuthorization
instance GHC.Classes.Eq Network.AWS.GameLift.DeleteVPCPeeringAuthorization.DeleteVPCPeeringAuthorization
instance Network.AWS.Types.AWSRequest Network.AWS.GameLift.DeleteVPCPeeringAuthorization.DeleteVPCPeeringAuthorization
instance Control.DeepSeq.NFData Network.AWS.GameLift.DeleteVPCPeeringAuthorization.DeleteVPCPeeringAuthorizationResponse
instance Data.Hashable.Class.Hashable Network.AWS.GameLift.DeleteVPCPeeringAuthorization.DeleteVPCPeeringAuthorization
instance Control.DeepSeq.NFData Network.AWS.GameLift.DeleteVPCPeeringAuthorization.DeleteVPCPeeringAuthorization
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.GameLift.DeleteVPCPeeringAuthorization.DeleteVPCPeeringAuthorization
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.GameLift.DeleteVPCPeeringAuthorization.DeleteVPCPeeringAuthorization
instance Network.AWS.Data.Path.ToPath Network.AWS.GameLift.DeleteVPCPeeringAuthorization.DeleteVPCPeeringAuthorization
instance Network.AWS.Data.Query.ToQuery Network.AWS.GameLift.DeleteVPCPeeringAuthorization.DeleteVPCPeeringAuthorization


-- | Deletes a fleet scaling policy. This action means that the policy is
--   no longer in force and removes all record of it. To delete a scaling
--   policy, specify both the scaling policy name and the fleet ID it is
--   associated with.
--   
--   To temporarily suspend scaling policies, call
--   <tt>StopFleetActions</tt> . This operation suspends all policies for
--   the fleet.
--   
--   Operations related to fleet capacity scaling include:
--   
--   <ul>
--   <li><tt>DescribeFleetCapacity</tt></li>
--   <li><tt>UpdateFleetCapacity</tt></li>
--   <li><tt>DescribeEC2InstanceLimits</tt></li>
--   <li>Manage scaling policies:</li>
--   <li><tt>PutScalingPolicy</tt> (auto-scaling)</li>
--   <li><tt>DescribeScalingPolicies</tt> (auto-scaling)</li>
--   <li><a>DeleteScalingPolicy</a> (auto-scaling)</li>
--   <li>Manage fleet actions:</li>
--   <li><tt>StartFleetActions</tt></li>
--   <li><tt>StopFleetActions</tt></li>
--   </ul>
module Network.AWS.GameLift.DeleteScalingPolicy

-- | Creates a value of <a>DeleteScalingPolicy</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dspName</a> - Descriptive label that is associated with a
--   scaling policy. Policy names do not need to be unique.</li>
--   <li><a>dspFleetId</a> - Unique identifier for a fleet to be
--   deleted.</li>
--   </ul>
deleteScalingPolicy :: Text -> Text -> DeleteScalingPolicy

-- | Represents the input for a request action.
--   
--   <i>See:</i> <a>deleteScalingPolicy</a> smart constructor.
data DeleteScalingPolicy

-- | Descriptive label that is associated with a scaling policy. Policy
--   names do not need to be unique.
dspName :: Lens' DeleteScalingPolicy Text

-- | Unique identifier for a fleet to be deleted.
dspFleetId :: Lens' DeleteScalingPolicy Text

-- | Creates a value of <a>DeleteScalingPolicyResponse</a> with the minimum
--   fields required to make a request.
deleteScalingPolicyResponse :: DeleteScalingPolicyResponse

-- | <i>See:</i> <a>deleteScalingPolicyResponse</a> smart constructor.
data DeleteScalingPolicyResponse
instance GHC.Generics.Generic Network.AWS.GameLift.DeleteScalingPolicy.DeleteScalingPolicyResponse
instance Data.Data.Data Network.AWS.GameLift.DeleteScalingPolicy.DeleteScalingPolicyResponse
instance GHC.Show.Show Network.AWS.GameLift.DeleteScalingPolicy.DeleteScalingPolicyResponse
instance GHC.Read.Read Network.AWS.GameLift.DeleteScalingPolicy.DeleteScalingPolicyResponse
instance GHC.Classes.Eq Network.AWS.GameLift.DeleteScalingPolicy.DeleteScalingPolicyResponse
instance GHC.Generics.Generic Network.AWS.GameLift.DeleteScalingPolicy.DeleteScalingPolicy
instance Data.Data.Data Network.AWS.GameLift.DeleteScalingPolicy.DeleteScalingPolicy
instance GHC.Show.Show Network.AWS.GameLift.DeleteScalingPolicy.DeleteScalingPolicy
instance GHC.Read.Read Network.AWS.GameLift.DeleteScalingPolicy.DeleteScalingPolicy
instance GHC.Classes.Eq Network.AWS.GameLift.DeleteScalingPolicy.DeleteScalingPolicy
instance Network.AWS.Types.AWSRequest Network.AWS.GameLift.DeleteScalingPolicy.DeleteScalingPolicy
instance Control.DeepSeq.NFData Network.AWS.GameLift.DeleteScalingPolicy.DeleteScalingPolicyResponse
instance Data.Hashable.Class.Hashable Network.AWS.GameLift.DeleteScalingPolicy.DeleteScalingPolicy
instance Control.DeepSeq.NFData Network.AWS.GameLift.DeleteScalingPolicy.DeleteScalingPolicy
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.GameLift.DeleteScalingPolicy.DeleteScalingPolicy
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.GameLift.DeleteScalingPolicy.DeleteScalingPolicy
instance Network.AWS.Data.Path.ToPath Network.AWS.GameLift.DeleteScalingPolicy.DeleteScalingPolicy
instance Network.AWS.Data.Query.ToQuery Network.AWS.GameLift.DeleteScalingPolicy.DeleteScalingPolicy


-- | Permanently removes a FlexMatch matchmaking configuration. To delete,
--   specify the configuration name. A matchmaking configuration cannot be
--   deleted if it is being used in any active matchmaking tickets.
--   
--   Operations related to match configurations and rule sets include:
--   
--   <ul>
--   <li><tt>CreateMatchmakingConfiguration</tt></li>
--   <li><tt>DescribeMatchmakingConfigurations</tt></li>
--   <li><tt>UpdateMatchmakingConfiguration</tt></li>
--   <li><a>DeleteMatchmakingConfiguration</a></li>
--   <li><tt>CreateMatchmakingRuleSet</tt></li>
--   <li><tt>DescribeMatchmakingRuleSets</tt></li>
--   <li><tt>ValidateMatchmakingRuleSet</tt></li>
--   </ul>
module Network.AWS.GameLift.DeleteMatchmakingConfiguration

-- | Creates a value of <a>DeleteMatchmakingConfiguration</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dmcName</a> - Unique identifier for a matchmaking
--   configuration</li>
--   </ul>
deleteMatchmakingConfiguration :: Text -> DeleteMatchmakingConfiguration

-- | Represents the input for a request action.
--   
--   <i>See:</i> <a>deleteMatchmakingConfiguration</a> smart constructor.
data DeleteMatchmakingConfiguration

-- | Unique identifier for a matchmaking configuration
dmcName :: Lens' DeleteMatchmakingConfiguration Text

-- | Creates a value of <a>DeleteMatchmakingConfigurationResponse</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dmcrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
deleteMatchmakingConfigurationResponse :: Int -> DeleteMatchmakingConfigurationResponse

-- | <i>See:</i> <a>deleteMatchmakingConfigurationResponse</a> smart
--   constructor.
data DeleteMatchmakingConfigurationResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
dmcrsResponseStatus :: Lens' DeleteMatchmakingConfigurationResponse Int
instance GHC.Generics.Generic Network.AWS.GameLift.DeleteMatchmakingConfiguration.DeleteMatchmakingConfigurationResponse
instance Data.Data.Data Network.AWS.GameLift.DeleteMatchmakingConfiguration.DeleteMatchmakingConfigurationResponse
instance GHC.Show.Show Network.AWS.GameLift.DeleteMatchmakingConfiguration.DeleteMatchmakingConfigurationResponse
instance GHC.Read.Read Network.AWS.GameLift.DeleteMatchmakingConfiguration.DeleteMatchmakingConfigurationResponse
instance GHC.Classes.Eq Network.AWS.GameLift.DeleteMatchmakingConfiguration.DeleteMatchmakingConfigurationResponse
instance GHC.Generics.Generic Network.AWS.GameLift.DeleteMatchmakingConfiguration.DeleteMatchmakingConfiguration
instance Data.Data.Data Network.AWS.GameLift.DeleteMatchmakingConfiguration.DeleteMatchmakingConfiguration
instance GHC.Show.Show Network.AWS.GameLift.DeleteMatchmakingConfiguration.DeleteMatchmakingConfiguration
instance GHC.Read.Read Network.AWS.GameLift.DeleteMatchmakingConfiguration.DeleteMatchmakingConfiguration
instance GHC.Classes.Eq Network.AWS.GameLift.DeleteMatchmakingConfiguration.DeleteMatchmakingConfiguration
instance Network.AWS.Types.AWSRequest Network.AWS.GameLift.DeleteMatchmakingConfiguration.DeleteMatchmakingConfiguration
instance Control.DeepSeq.NFData Network.AWS.GameLift.DeleteMatchmakingConfiguration.DeleteMatchmakingConfigurationResponse
instance Data.Hashable.Class.Hashable Network.AWS.GameLift.DeleteMatchmakingConfiguration.DeleteMatchmakingConfiguration
instance Control.DeepSeq.NFData Network.AWS.GameLift.DeleteMatchmakingConfiguration.DeleteMatchmakingConfiguration
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.GameLift.DeleteMatchmakingConfiguration.DeleteMatchmakingConfiguration
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.GameLift.DeleteMatchmakingConfiguration.DeleteMatchmakingConfiguration
instance Network.AWS.Data.Path.ToPath Network.AWS.GameLift.DeleteMatchmakingConfiguration.DeleteMatchmakingConfiguration
instance Network.AWS.Data.Query.ToQuery Network.AWS.GameLift.DeleteMatchmakingConfiguration.DeleteMatchmakingConfiguration


-- | Deletes a game session queue. This action means that any
--   <tt>StartGameSessionPlacement</tt> requests that reference this queue
--   will fail. To delete a queue, specify the queue name.
--   
--   Queue-related operations include:
--   
--   <ul>
--   <li><tt>CreateGameSessionQueue</tt></li>
--   <li><tt>DescribeGameSessionQueues</tt></li>
--   <li><tt>UpdateGameSessionQueue</tt></li>
--   <li><a>DeleteGameSessionQueue</a></li>
--   </ul>
module Network.AWS.GameLift.DeleteGameSessionQueue

-- | Creates a value of <a>DeleteGameSessionQueue</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dgsqName</a> - Descriptive label that is associated with game
--   session queue. Queue names must be unique within each region.</li>
--   </ul>
deleteGameSessionQueue :: Text -> DeleteGameSessionQueue

-- | Represents the input for a request action.
--   
--   <i>See:</i> <a>deleteGameSessionQueue</a> smart constructor.
data DeleteGameSessionQueue

-- | Descriptive label that is associated with game session queue. Queue
--   names must be unique within each region.
dgsqName :: Lens' DeleteGameSessionQueue Text

-- | Creates a value of <a>DeleteGameSessionQueueResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dgsqrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
deleteGameSessionQueueResponse :: Int -> DeleteGameSessionQueueResponse

-- | <i>See:</i> <a>deleteGameSessionQueueResponse</a> smart constructor.
data DeleteGameSessionQueueResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
dgsqrsResponseStatus :: Lens' DeleteGameSessionQueueResponse Int
instance GHC.Generics.Generic Network.AWS.GameLift.DeleteGameSessionQueue.DeleteGameSessionQueueResponse
instance Data.Data.Data Network.AWS.GameLift.DeleteGameSessionQueue.DeleteGameSessionQueueResponse
instance GHC.Show.Show Network.AWS.GameLift.DeleteGameSessionQueue.DeleteGameSessionQueueResponse
instance GHC.Read.Read Network.AWS.GameLift.DeleteGameSessionQueue.DeleteGameSessionQueueResponse
instance GHC.Classes.Eq Network.AWS.GameLift.DeleteGameSessionQueue.DeleteGameSessionQueueResponse
instance GHC.Generics.Generic Network.AWS.GameLift.DeleteGameSessionQueue.DeleteGameSessionQueue
instance Data.Data.Data Network.AWS.GameLift.DeleteGameSessionQueue.DeleteGameSessionQueue
instance GHC.Show.Show Network.AWS.GameLift.DeleteGameSessionQueue.DeleteGameSessionQueue
instance GHC.Read.Read Network.AWS.GameLift.DeleteGameSessionQueue.DeleteGameSessionQueue
instance GHC.Classes.Eq Network.AWS.GameLift.DeleteGameSessionQueue.DeleteGameSessionQueue
instance Network.AWS.Types.AWSRequest Network.AWS.GameLift.DeleteGameSessionQueue.DeleteGameSessionQueue
instance Control.DeepSeq.NFData Network.AWS.GameLift.DeleteGameSessionQueue.DeleteGameSessionQueueResponse
instance Data.Hashable.Class.Hashable Network.AWS.GameLift.DeleteGameSessionQueue.DeleteGameSessionQueue
instance Control.DeepSeq.NFData Network.AWS.GameLift.DeleteGameSessionQueue.DeleteGameSessionQueue
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.GameLift.DeleteGameSessionQueue.DeleteGameSessionQueue
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.GameLift.DeleteGameSessionQueue.DeleteGameSessionQueue
instance Network.AWS.Data.Path.ToPath Network.AWS.GameLift.DeleteGameSessionQueue.DeleteGameSessionQueue
instance Network.AWS.Data.Query.ToQuery Network.AWS.GameLift.DeleteGameSessionQueue.DeleteGameSessionQueue


-- | Deletes everything related to a fleet. Before deleting a fleet, you
--   must set the fleet's desired capacity to zero. See
--   <tt>UpdateFleetCapacity</tt> .
--   
--   This action removes the fleet's resources and the fleet record. Once a
--   fleet is deleted, you can no longer use that fleet.
--   
--   Fleet-related operations include:
--   
--   <ul>
--   <li><tt>CreateFleet</tt></li>
--   <li><tt>ListFleets</tt></li>
--   <li><a>DeleteFleet</a></li>
--   <li>Describe fleets:</li>
--   <li><tt>DescribeFleetAttributes</tt></li>
--   <li><tt>DescribeFleetCapacity</tt></li>
--   <li><tt>DescribeFleetPortSettings</tt></li>
--   <li><tt>DescribeFleetUtilization</tt></li>
--   <li><tt>DescribeRuntimeConfiguration</tt></li>
--   <li><tt>DescribeEC2InstanceLimits</tt></li>
--   <li><tt>DescribeFleetEvents</tt></li>
--   <li>Update fleets:</li>
--   <li><tt>UpdateFleetAttributes</tt></li>
--   <li><tt>UpdateFleetCapacity</tt></li>
--   <li><tt>UpdateFleetPortSettings</tt></li>
--   <li><tt>UpdateRuntimeConfiguration</tt></li>
--   <li>Manage fleet actions:</li>
--   <li><tt>StartFleetActions</tt></li>
--   <li><tt>StopFleetActions</tt></li>
--   </ul>
module Network.AWS.GameLift.DeleteFleet

-- | Creates a value of <a>DeleteFleet</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dfFleetId</a> - Unique identifier for a fleet to be
--   deleted.</li>
--   </ul>
deleteFleet :: Text -> DeleteFleet

-- | Represents the input for a request action.
--   
--   <i>See:</i> <a>deleteFleet</a> smart constructor.
data DeleteFleet

-- | Unique identifier for a fleet to be deleted.
dfFleetId :: Lens' DeleteFleet Text

-- | Creates a value of <a>DeleteFleetResponse</a> with the minimum fields
--   required to make a request.
deleteFleetResponse :: DeleteFleetResponse

-- | <i>See:</i> <a>deleteFleetResponse</a> smart constructor.
data DeleteFleetResponse
instance GHC.Generics.Generic Network.AWS.GameLift.DeleteFleet.DeleteFleetResponse
instance Data.Data.Data Network.AWS.GameLift.DeleteFleet.DeleteFleetResponse
instance GHC.Show.Show Network.AWS.GameLift.DeleteFleet.DeleteFleetResponse
instance GHC.Read.Read Network.AWS.GameLift.DeleteFleet.DeleteFleetResponse
instance GHC.Classes.Eq Network.AWS.GameLift.DeleteFleet.DeleteFleetResponse
instance GHC.Generics.Generic Network.AWS.GameLift.DeleteFleet.DeleteFleet
instance Data.Data.Data Network.AWS.GameLift.DeleteFleet.DeleteFleet
instance GHC.Show.Show Network.AWS.GameLift.DeleteFleet.DeleteFleet
instance GHC.Read.Read Network.AWS.GameLift.DeleteFleet.DeleteFleet
instance GHC.Classes.Eq Network.AWS.GameLift.DeleteFleet.DeleteFleet
instance Network.AWS.Types.AWSRequest Network.AWS.GameLift.DeleteFleet.DeleteFleet
instance Control.DeepSeq.NFData Network.AWS.GameLift.DeleteFleet.DeleteFleetResponse
instance Data.Hashable.Class.Hashable Network.AWS.GameLift.DeleteFleet.DeleteFleet
instance Control.DeepSeq.NFData Network.AWS.GameLift.DeleteFleet.DeleteFleet
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.GameLift.DeleteFleet.DeleteFleet
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.GameLift.DeleteFleet.DeleteFleet
instance Network.AWS.Data.Path.ToPath Network.AWS.GameLift.DeleteFleet.DeleteFleet
instance Network.AWS.Data.Query.ToQuery Network.AWS.GameLift.DeleteFleet.DeleteFleet


-- | Deletes a build. This action permanently deletes the build record and
--   any uploaded build files.
--   
--   To delete a build, specify its ID. Deleting a build does not affect
--   the status of any active fleets using the build, but you can no longer
--   create new fleets with the deleted build.
--   
--   Build-related operations include:
--   
--   <ul>
--   <li><tt>CreateBuild</tt></li>
--   <li><tt>ListBuilds</tt></li>
--   <li><tt>DescribeBuild</tt></li>
--   <li><tt>UpdateBuild</tt></li>
--   <li><a>DeleteBuild</a></li>
--   </ul>
module Network.AWS.GameLift.DeleteBuild

-- | Creates a value of <a>DeleteBuild</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dbBuildId</a> - Unique identifier for a build to delete.</li>
--   </ul>
deleteBuild :: Text -> DeleteBuild

-- | Represents the input for a request action.
--   
--   <i>See:</i> <a>deleteBuild</a> smart constructor.
data DeleteBuild

-- | Unique identifier for a build to delete.
dbBuildId :: Lens' DeleteBuild Text

-- | Creates a value of <a>DeleteBuildResponse</a> with the minimum fields
--   required to make a request.
deleteBuildResponse :: DeleteBuildResponse

-- | <i>See:</i> <a>deleteBuildResponse</a> smart constructor.
data DeleteBuildResponse
instance GHC.Generics.Generic Network.AWS.GameLift.DeleteBuild.DeleteBuildResponse
instance Data.Data.Data Network.AWS.GameLift.DeleteBuild.DeleteBuildResponse
instance GHC.Show.Show Network.AWS.GameLift.DeleteBuild.DeleteBuildResponse
instance GHC.Read.Read Network.AWS.GameLift.DeleteBuild.DeleteBuildResponse
instance GHC.Classes.Eq Network.AWS.GameLift.DeleteBuild.DeleteBuildResponse
instance GHC.Generics.Generic Network.AWS.GameLift.DeleteBuild.DeleteBuild
instance Data.Data.Data Network.AWS.GameLift.DeleteBuild.DeleteBuild
instance GHC.Show.Show Network.AWS.GameLift.DeleteBuild.DeleteBuild
instance GHC.Read.Read Network.AWS.GameLift.DeleteBuild.DeleteBuild
instance GHC.Classes.Eq Network.AWS.GameLift.DeleteBuild.DeleteBuild
instance Network.AWS.Types.AWSRequest Network.AWS.GameLift.DeleteBuild.DeleteBuild
instance Control.DeepSeq.NFData Network.AWS.GameLift.DeleteBuild.DeleteBuildResponse
instance Data.Hashable.Class.Hashable Network.AWS.GameLift.DeleteBuild.DeleteBuild
instance Control.DeepSeq.NFData Network.AWS.GameLift.DeleteBuild.DeleteBuild
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.GameLift.DeleteBuild.DeleteBuild
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.GameLift.DeleteBuild.DeleteBuild
instance Network.AWS.Data.Path.ToPath Network.AWS.GameLift.DeleteBuild.DeleteBuild
instance Network.AWS.Data.Query.ToQuery Network.AWS.GameLift.DeleteBuild.DeleteBuild


-- | Deletes an alias. This action removes all record of the alias. Game
--   clients attempting to access a server process using the deleted alias
--   receive an error. To delete an alias, specify the alias ID to be
--   deleted.
--   
--   Alias-related operations include:
--   
--   <ul>
--   <li><tt>CreateAlias</tt></li>
--   <li><tt>ListAliases</tt></li>
--   <li><tt>DescribeAlias</tt></li>
--   <li><tt>UpdateAlias</tt></li>
--   <li><a>DeleteAlias</a></li>
--   <li><tt>ResolveAlias</tt></li>
--   </ul>
module Network.AWS.GameLift.DeleteAlias

-- | Creates a value of <a>DeleteAlias</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>daAliasId</a> - Unique identifier for a fleet alias. Specify
--   the alias you want to delete.</li>
--   </ul>
deleteAlias :: Text -> DeleteAlias

-- | Represents the input for a request action.
--   
--   <i>See:</i> <a>deleteAlias</a> smart constructor.
data DeleteAlias

-- | Unique identifier for a fleet alias. Specify the alias you want to
--   delete.
daAliasId :: Lens' DeleteAlias Text

-- | Creates a value of <a>DeleteAliasResponse</a> with the minimum fields
--   required to make a request.
deleteAliasResponse :: DeleteAliasResponse

-- | <i>See:</i> <a>deleteAliasResponse</a> smart constructor.
data DeleteAliasResponse
instance GHC.Generics.Generic Network.AWS.GameLift.DeleteAlias.DeleteAliasResponse
instance Data.Data.Data Network.AWS.GameLift.DeleteAlias.DeleteAliasResponse
instance GHC.Show.Show Network.AWS.GameLift.DeleteAlias.DeleteAliasResponse
instance GHC.Read.Read Network.AWS.GameLift.DeleteAlias.DeleteAliasResponse
instance GHC.Classes.Eq Network.AWS.GameLift.DeleteAlias.DeleteAliasResponse
instance GHC.Generics.Generic Network.AWS.GameLift.DeleteAlias.DeleteAlias
instance Data.Data.Data Network.AWS.GameLift.DeleteAlias.DeleteAlias
instance GHC.Show.Show Network.AWS.GameLift.DeleteAlias.DeleteAlias
instance GHC.Read.Read Network.AWS.GameLift.DeleteAlias.DeleteAlias
instance GHC.Classes.Eq Network.AWS.GameLift.DeleteAlias.DeleteAlias
instance Network.AWS.Types.AWSRequest Network.AWS.GameLift.DeleteAlias.DeleteAlias
instance Control.DeepSeq.NFData Network.AWS.GameLift.DeleteAlias.DeleteAliasResponse
instance Data.Hashable.Class.Hashable Network.AWS.GameLift.DeleteAlias.DeleteAlias
instance Control.DeepSeq.NFData Network.AWS.GameLift.DeleteAlias.DeleteAlias
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.GameLift.DeleteAlias.DeleteAlias
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.GameLift.DeleteAlias.DeleteAlias
instance Network.AWS.Data.Path.ToPath Network.AWS.GameLift.DeleteAlias.DeleteAlias
instance Network.AWS.Data.Query.ToQuery Network.AWS.GameLift.DeleteAlias.DeleteAlias


-- | Establishes a VPC peering connection between a virtual private cloud
--   (VPC) in an AWS account with the VPC for your Amazon GameLift fleet.
--   VPC peering enables the game servers on your fleet to communicate
--   directly with other AWS resources. You can peer with VPCs in any AWS
--   account that you have access to, including the account that you use to
--   manage your Amazon GameLift fleets. You cannot peer with VPCs that are
--   in different regions. For more information, see <a>VPC Peering with
--   Amazon GameLift Fleets</a> .
--   
--   Before calling this operation to establish the peering connection, you
--   first need to call <tt>CreateVpcPeeringAuthorization</tt> and identify
--   the VPC you want to peer with. Once the authorization for the
--   specified VPC is issued, you have 24 hours to establish the
--   connection. These two operations handle all tasks necessary to peer
--   the two VPCs, including acceptance, updating routing tables, etc.
--   
--   To establish the connection, call this operation from the AWS account
--   that is used to manage the Amazon GameLift fleets. Identify the
--   following values: (1) The ID of the fleet you want to be enable a VPC
--   peering connection for; (2) The AWS account with the VPC that you want
--   to peer with; and (3) The ID of the VPC you want to peer with. This
--   operation is asynchronous. If successful, a
--   <tt>VpcPeeringConnection</tt> request is created. You can use
--   continuous polling to track the request's status using
--   <tt>DescribeVpcPeeringConnections</tt> , or by monitoring fleet events
--   for success or failure using <tt>DescribeFleetEvents</tt> .
--   
--   VPC peering connection operations include:
--   
--   <ul>
--   <li><tt>CreateVpcPeeringAuthorization</tt></li>
--   <li><tt>DescribeVpcPeeringAuthorizations</tt></li>
--   <li><tt>DeleteVpcPeeringAuthorization</tt></li>
--   <li><tt>CreateVpcPeeringConnection</tt></li>
--   <li><tt>DescribeVpcPeeringConnections</tt></li>
--   <li><tt>DeleteVpcPeeringConnection</tt></li>
--   </ul>
module Network.AWS.GameLift.CreateVPCPeeringConnection

-- | Creates a value of <a>CreateVPCPeeringConnection</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cvpcFleetId</a> - Unique identifier for a fleet. This tells
--   Amazon GameLift which GameLift VPC to peer with.</li>
--   <li><a>cvpcPeerVPCAWSAccountId</a> - Unique identifier for the AWS
--   account with the VPC that you want to peer your Amazon GameLift fleet
--   with. You can find your Account ID in the AWS Management Console under
--   account settings.</li>
--   <li><a>cvpcPeerVPCId</a> - Unique identifier for a VPC with resources
--   to be accessed by your Amazon GameLift fleet. The VPC must be in the
--   same region where your fleet is deployed. To get VPC information,
--   including IDs, use the Virtual Private Cloud service tools, including
--   the VPC Dashboard in the AWS Management Console.</li>
--   </ul>
createVPCPeeringConnection :: Text -> Text -> Text -> CreateVPCPeeringConnection

-- | Represents the input for a request action.
--   
--   <i>See:</i> <a>createVPCPeeringConnection</a> smart constructor.
data CreateVPCPeeringConnection

-- | Unique identifier for a fleet. This tells Amazon GameLift which
--   GameLift VPC to peer with.
cvpcFleetId :: Lens' CreateVPCPeeringConnection Text

-- | Unique identifier for the AWS account with the VPC that you want to
--   peer your Amazon GameLift fleet with. You can find your Account ID in
--   the AWS Management Console under account settings.
cvpcPeerVPCAWSAccountId :: Lens' CreateVPCPeeringConnection Text

-- | Unique identifier for a VPC with resources to be accessed by your
--   Amazon GameLift fleet. The VPC must be in the same region where your
--   fleet is deployed. To get VPC information, including IDs, use the
--   Virtual Private Cloud service tools, including the VPC Dashboard in
--   the AWS Management Console.
cvpcPeerVPCId :: Lens' CreateVPCPeeringConnection Text

-- | Creates a value of <a>CreateVPCPeeringConnectionResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cvpcrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createVPCPeeringConnectionResponse :: Int -> CreateVPCPeeringConnectionResponse

-- | <i>See:</i> <a>createVPCPeeringConnectionResponse</a> smart
--   constructor.
data CreateVPCPeeringConnectionResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
cvpcrsResponseStatus :: Lens' CreateVPCPeeringConnectionResponse Int
instance GHC.Generics.Generic Network.AWS.GameLift.CreateVPCPeeringConnection.CreateVPCPeeringConnectionResponse
instance Data.Data.Data Network.AWS.GameLift.CreateVPCPeeringConnection.CreateVPCPeeringConnectionResponse
instance GHC.Show.Show Network.AWS.GameLift.CreateVPCPeeringConnection.CreateVPCPeeringConnectionResponse
instance GHC.Read.Read Network.AWS.GameLift.CreateVPCPeeringConnection.CreateVPCPeeringConnectionResponse
instance GHC.Classes.Eq Network.AWS.GameLift.CreateVPCPeeringConnection.CreateVPCPeeringConnectionResponse
instance GHC.Generics.Generic Network.AWS.GameLift.CreateVPCPeeringConnection.CreateVPCPeeringConnection
instance Data.Data.Data Network.AWS.GameLift.CreateVPCPeeringConnection.CreateVPCPeeringConnection
instance GHC.Show.Show Network.AWS.GameLift.CreateVPCPeeringConnection.CreateVPCPeeringConnection
instance GHC.Read.Read Network.AWS.GameLift.CreateVPCPeeringConnection.CreateVPCPeeringConnection
instance GHC.Classes.Eq Network.AWS.GameLift.CreateVPCPeeringConnection.CreateVPCPeeringConnection
instance Network.AWS.Types.AWSRequest Network.AWS.GameLift.CreateVPCPeeringConnection.CreateVPCPeeringConnection
instance Control.DeepSeq.NFData Network.AWS.GameLift.CreateVPCPeeringConnection.CreateVPCPeeringConnectionResponse
instance Data.Hashable.Class.Hashable Network.AWS.GameLift.CreateVPCPeeringConnection.CreateVPCPeeringConnection
instance Control.DeepSeq.NFData Network.AWS.GameLift.CreateVPCPeeringConnection.CreateVPCPeeringConnection
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.GameLift.CreateVPCPeeringConnection.CreateVPCPeeringConnection
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.GameLift.CreateVPCPeeringConnection.CreateVPCPeeringConnection
instance Network.AWS.Data.Path.ToPath Network.AWS.GameLift.CreateVPCPeeringConnection.CreateVPCPeeringConnection
instance Network.AWS.Data.Query.ToQuery Network.AWS.GameLift.CreateVPCPeeringConnection.CreateVPCPeeringConnection


-- | Requests authorization to create or delete a peer connection between
--   the VPC for your Amazon GameLift fleet and a virtual private cloud
--   (VPC) in your AWS account. VPC peering enables the game servers on
--   your fleet to communicate directly with other AWS resources. Once
--   you've received authorization, call
--   <tt>CreateVpcPeeringConnection</tt> to establish the peering
--   connection. For more information, see <a>VPC Peering with Amazon
--   GameLift Fleets</a> .
--   
--   You can peer with VPCs that are owned by any AWS account you have
--   access to, including the account that you use to manage your Amazon
--   GameLift fleets. You cannot peer with VPCs that are in different
--   regions.
--   
--   To request authorization to create a connection, call this operation
--   from the AWS account with the VPC that you want to peer to your Amazon
--   GameLift fleet. For example, to enable your game servers to retrieve
--   data from a DynamoDB table, use the account that manages that DynamoDB
--   resource. Identify the following values: (1) The ID of the VPC that
--   you want to peer with, and (2) the ID of the AWS account that you use
--   to manage Amazon GameLift. If successful, VPC peering is authorized
--   for the specified VPC.
--   
--   To request authorization to delete a connection, call this operation
--   from the AWS account with the VPC that is peered with your Amazon
--   GameLift fleet. Identify the following values: (1) VPC ID that you
--   want to delete the peering connection for, and (2) ID of the AWS
--   account that you use to manage Amazon GameLift.
--   
--   The authorization remains valid for 24 hours unless it is canceled by
--   a call to <tt>DeleteVpcPeeringAuthorization</tt> . You must create or
--   delete the peering connection while the authorization is valid.
--   
--   VPC peering connection operations include:
--   
--   <ul>
--   <li><tt>CreateVpcPeeringAuthorization</tt></li>
--   <li><tt>DescribeVpcPeeringAuthorizations</tt></li>
--   <li><tt>DeleteVpcPeeringAuthorization</tt></li>
--   <li><tt>CreateVpcPeeringConnection</tt></li>
--   <li><tt>DescribeVpcPeeringConnections</tt></li>
--   <li><tt>DeleteVpcPeeringConnection</tt></li>
--   </ul>
module Network.AWS.GameLift.CreateVPCPeeringAuthorization

-- | Creates a value of <a>CreateVPCPeeringAuthorization</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cvpaGameLiftAWSAccountId</a> - Unique identifier for the AWS
--   account that you use to manage your Amazon GameLift fleet. You can
--   find your Account ID in the AWS Management Console under account
--   settings.</li>
--   <li><a>cvpaPeerVPCId</a> - Unique identifier for a VPC with resources
--   to be accessed by your Amazon GameLift fleet. The VPC must be in the
--   same region where your fleet is deployed. To get VPC information,
--   including IDs, use the Virtual Private Cloud service tools, including
--   the VPC Dashboard in the AWS Management Console.</li>
--   </ul>
createVPCPeeringAuthorization :: Text -> Text -> CreateVPCPeeringAuthorization

-- | Represents the input for a request action.
--   
--   <i>See:</i> <a>createVPCPeeringAuthorization</a> smart constructor.
data CreateVPCPeeringAuthorization

-- | Unique identifier for the AWS account that you use to manage your
--   Amazon GameLift fleet. You can find your Account ID in the AWS
--   Management Console under account settings.
cvpaGameLiftAWSAccountId :: Lens' CreateVPCPeeringAuthorization Text

-- | Unique identifier for a VPC with resources to be accessed by your
--   Amazon GameLift fleet. The VPC must be in the same region where your
--   fleet is deployed. To get VPC information, including IDs, use the
--   Virtual Private Cloud service tools, including the VPC Dashboard in
--   the AWS Management Console.
cvpaPeerVPCId :: Lens' CreateVPCPeeringAuthorization Text

-- | Creates a value of <a>CreateVPCPeeringAuthorizationResponse</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cvparsVPCPeeringAuthorization</a> - Details on the requested
--   VPC peering authorization, including expiration.</li>
--   <li><a>cvparsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createVPCPeeringAuthorizationResponse :: Int -> CreateVPCPeeringAuthorizationResponse

-- | Represents the returned data in response to a request action.
--   
--   <i>See:</i> <a>createVPCPeeringAuthorizationResponse</a> smart
--   constructor.
data CreateVPCPeeringAuthorizationResponse

-- | Details on the requested VPC peering authorization, including
--   expiration.
cvparsVPCPeeringAuthorization :: Lens' CreateVPCPeeringAuthorizationResponse (Maybe VPCPeeringAuthorization)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
cvparsResponseStatus :: Lens' CreateVPCPeeringAuthorizationResponse Int
instance GHC.Generics.Generic Network.AWS.GameLift.CreateVPCPeeringAuthorization.CreateVPCPeeringAuthorizationResponse
instance Data.Data.Data Network.AWS.GameLift.CreateVPCPeeringAuthorization.CreateVPCPeeringAuthorizationResponse
instance GHC.Show.Show Network.AWS.GameLift.CreateVPCPeeringAuthorization.CreateVPCPeeringAuthorizationResponse
instance GHC.Read.Read Network.AWS.GameLift.CreateVPCPeeringAuthorization.CreateVPCPeeringAuthorizationResponse
instance GHC.Classes.Eq Network.AWS.GameLift.CreateVPCPeeringAuthorization.CreateVPCPeeringAuthorizationResponse
instance GHC.Generics.Generic Network.AWS.GameLift.CreateVPCPeeringAuthorization.CreateVPCPeeringAuthorization
instance Data.Data.Data Network.AWS.GameLift.CreateVPCPeeringAuthorization.CreateVPCPeeringAuthorization
instance GHC.Show.Show Network.AWS.GameLift.CreateVPCPeeringAuthorization.CreateVPCPeeringAuthorization
instance GHC.Read.Read Network.AWS.GameLift.CreateVPCPeeringAuthorization.CreateVPCPeeringAuthorization
instance GHC.Classes.Eq Network.AWS.GameLift.CreateVPCPeeringAuthorization.CreateVPCPeeringAuthorization
instance Network.AWS.Types.AWSRequest Network.AWS.GameLift.CreateVPCPeeringAuthorization.CreateVPCPeeringAuthorization
instance Control.DeepSeq.NFData Network.AWS.GameLift.CreateVPCPeeringAuthorization.CreateVPCPeeringAuthorizationResponse
instance Data.Hashable.Class.Hashable Network.AWS.GameLift.CreateVPCPeeringAuthorization.CreateVPCPeeringAuthorization
instance Control.DeepSeq.NFData Network.AWS.GameLift.CreateVPCPeeringAuthorization.CreateVPCPeeringAuthorization
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.GameLift.CreateVPCPeeringAuthorization.CreateVPCPeeringAuthorization
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.GameLift.CreateVPCPeeringAuthorization.CreateVPCPeeringAuthorization
instance Network.AWS.Data.Path.ToPath Network.AWS.GameLift.CreateVPCPeeringAuthorization.CreateVPCPeeringAuthorization
instance Network.AWS.Data.Query.ToQuery Network.AWS.GameLift.CreateVPCPeeringAuthorization.CreateVPCPeeringAuthorization


-- | Adds a group of players to a game session. This action is useful with
--   a team matching feature. Before players can be added, a game session
--   must have an <tt>ACTIVE</tt> status, have a creation policy of
--   <tt>ALLOW_ALL</tt> , and have an open player slot. To add a single
--   player to a game session, use <tt>CreatePlayerSession</tt> .
--   
--   To create player sessions, specify a game session ID, a list of player
--   IDs, and optionally a set of player data strings. If successful, the
--   players are added to the game session and a set of new
--   <a>PlayerSession</a> objects is returned. Player sessions cannot be
--   updated.
--   
--   <i>Available in Amazon GameLift Local.</i>
--   
--   Player-session-related operations include:
--   
--   <ul>
--   <li><tt>CreatePlayerSession</tt></li>
--   <li><a>CreatePlayerSessions</a></li>
--   <li><tt>DescribePlayerSessions</tt></li>
--   <li>Game session placements</li>
--   <li><tt>StartGameSessionPlacement</tt></li>
--   <li><tt>DescribeGameSessionPlacement</tt></li>
--   <li><tt>StopGameSessionPlacement</tt></li>
--   </ul>
module Network.AWS.GameLift.CreatePlayerSessions

-- | Creates a value of <a>CreatePlayerSessions</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cpsPlayerDataMap</a> - Map of string pairs, each specifying a
--   player ID and a set of developer-defined information related to the
--   player. Amazon GameLift does not use this data, so it can be formatted
--   as needed for use in the game. Player data strings for player IDs not
--   included in the <tt>PlayerIds</tt> parameter are ignored.</li>
--   <li><a>cpsGameSessionId</a> - Unique identifier for the game session
--   to add players to.</li>
--   <li><a>cpsPlayerIds</a> - List of unique identifiers for the players
--   to be added.</li>
--   </ul>
createPlayerSessions :: Text -> NonEmpty Text -> CreatePlayerSessions

-- | Represents the input for a request action.
--   
--   <i>See:</i> <a>createPlayerSessions</a> smart constructor.
data CreatePlayerSessions

-- | Map of string pairs, each specifying a player ID and a set of
--   developer-defined information related to the player. Amazon GameLift
--   does not use this data, so it can be formatted as needed for use in
--   the game. Player data strings for player IDs not included in the
--   <tt>PlayerIds</tt> parameter are ignored.
cpsPlayerDataMap :: Lens' CreatePlayerSessions (HashMap Text Text)

-- | Unique identifier for the game session to add players to.
cpsGameSessionId :: Lens' CreatePlayerSessions Text

-- | List of unique identifiers for the players to be added.
cpsPlayerIds :: Lens' CreatePlayerSessions (NonEmpty Text)

-- | Creates a value of <a>CreatePlayerSessionsResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>crsPlayerSessions</a> - Collection of player session objects
--   created for the added players.</li>
--   <li><a>crsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createPlayerSessionsResponse :: Int -> CreatePlayerSessionsResponse

-- | Represents the returned data in response to a request action.
--   
--   <i>See:</i> <a>createPlayerSessionsResponse</a> smart constructor.
data CreatePlayerSessionsResponse

-- | Collection of player session objects created for the added players.
crsPlayerSessions :: Lens' CreatePlayerSessionsResponse [PlayerSession]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
crsResponseStatus :: Lens' CreatePlayerSessionsResponse Int
instance GHC.Generics.Generic Network.AWS.GameLift.CreatePlayerSessions.CreatePlayerSessionsResponse
instance Data.Data.Data Network.AWS.GameLift.CreatePlayerSessions.CreatePlayerSessionsResponse
instance GHC.Show.Show Network.AWS.GameLift.CreatePlayerSessions.CreatePlayerSessionsResponse
instance GHC.Read.Read Network.AWS.GameLift.CreatePlayerSessions.CreatePlayerSessionsResponse
instance GHC.Classes.Eq Network.AWS.GameLift.CreatePlayerSessions.CreatePlayerSessionsResponse
instance GHC.Generics.Generic Network.AWS.GameLift.CreatePlayerSessions.CreatePlayerSessions
instance Data.Data.Data Network.AWS.GameLift.CreatePlayerSessions.CreatePlayerSessions
instance GHC.Show.Show Network.AWS.GameLift.CreatePlayerSessions.CreatePlayerSessions
instance GHC.Read.Read Network.AWS.GameLift.CreatePlayerSessions.CreatePlayerSessions
instance GHC.Classes.Eq Network.AWS.GameLift.CreatePlayerSessions.CreatePlayerSessions
instance Network.AWS.Types.AWSRequest Network.AWS.GameLift.CreatePlayerSessions.CreatePlayerSessions
instance Control.DeepSeq.NFData Network.AWS.GameLift.CreatePlayerSessions.CreatePlayerSessionsResponse
instance Data.Hashable.Class.Hashable Network.AWS.GameLift.CreatePlayerSessions.CreatePlayerSessions
instance Control.DeepSeq.NFData Network.AWS.GameLift.CreatePlayerSessions.CreatePlayerSessions
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.GameLift.CreatePlayerSessions.CreatePlayerSessions
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.GameLift.CreatePlayerSessions.CreatePlayerSessions
instance Network.AWS.Data.Path.ToPath Network.AWS.GameLift.CreatePlayerSessions.CreatePlayerSessions
instance Network.AWS.Data.Query.ToQuery Network.AWS.GameLift.CreatePlayerSessions.CreatePlayerSessions


-- | Adds a player to a game session and creates a player session record.
--   Before a player can be added, a game session must have an
--   <tt>ACTIVE</tt> status, have a creation policy of <tt>ALLOW_ALL</tt> ,
--   and have an open player slot. To add a group of players to a game
--   session, use <tt>CreatePlayerSessions</tt> .
--   
--   To create a player session, specify a game session ID, player ID, and
--   optionally a string of player data. If successful, the player is added
--   to the game session and a new <a>PlayerSession</a> object is returned.
--   Player sessions cannot be updated.
--   
--   <i>Available in Amazon GameLift Local.</i>
--   
--   Player-session-related operations include:
--   
--   <ul>
--   <li><a>CreatePlayerSession</a></li>
--   <li><tt>CreatePlayerSessions</tt></li>
--   <li><tt>DescribePlayerSessions</tt></li>
--   <li>Game session placements</li>
--   <li><tt>StartGameSessionPlacement</tt></li>
--   <li><tt>DescribeGameSessionPlacement</tt></li>
--   <li><tt>StopGameSessionPlacement</tt></li>
--   </ul>
module Network.AWS.GameLift.CreatePlayerSession

-- | Creates a value of <a>CreatePlayerSession</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cPlayerData</a> - Developer-defined information related to a
--   player. Amazon GameLift does not use this data, so it can be formatted
--   as needed for use in the game.</li>
--   <li><a>cGameSessionId</a> - Unique identifier for the game session to
--   add a player to.</li>
--   <li><a>cPlayerId</a> - Unique identifier for a player. Player IDs are
--   developer-defined.</li>
--   </ul>
createPlayerSession :: Text -> Text -> CreatePlayerSession

-- | Represents the input for a request action.
--   
--   <i>See:</i> <a>createPlayerSession</a> smart constructor.
data CreatePlayerSession

-- | Developer-defined information related to a player. Amazon GameLift
--   does not use this data, so it can be formatted as needed for use in
--   the game.
cPlayerData :: Lens' CreatePlayerSession (Maybe Text)

-- | Unique identifier for the game session to add a player to.
cGameSessionId :: Lens' CreatePlayerSession Text

-- | Unique identifier for a player. Player IDs are developer-defined.
cPlayerId :: Lens' CreatePlayerSession Text

-- | Creates a value of <a>CreatePlayerSessionResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cpsrsPlayerSession</a> - Object that describes the newly
--   created player session record.</li>
--   <li><a>cpsrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createPlayerSessionResponse :: Int -> CreatePlayerSessionResponse

-- | Represents the returned data in response to a request action.
--   
--   <i>See:</i> <a>createPlayerSessionResponse</a> smart constructor.
data CreatePlayerSessionResponse

-- | Object that describes the newly created player session record.
cpsrsPlayerSession :: Lens' CreatePlayerSessionResponse (Maybe PlayerSession)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
cpsrsResponseStatus :: Lens' CreatePlayerSessionResponse Int
instance GHC.Generics.Generic Network.AWS.GameLift.CreatePlayerSession.CreatePlayerSessionResponse
instance Data.Data.Data Network.AWS.GameLift.CreatePlayerSession.CreatePlayerSessionResponse
instance GHC.Show.Show Network.AWS.GameLift.CreatePlayerSession.CreatePlayerSessionResponse
instance GHC.Read.Read Network.AWS.GameLift.CreatePlayerSession.CreatePlayerSessionResponse
instance GHC.Classes.Eq Network.AWS.GameLift.CreatePlayerSession.CreatePlayerSessionResponse
instance GHC.Generics.Generic Network.AWS.GameLift.CreatePlayerSession.CreatePlayerSession
instance Data.Data.Data Network.AWS.GameLift.CreatePlayerSession.CreatePlayerSession
instance GHC.Show.Show Network.AWS.GameLift.CreatePlayerSession.CreatePlayerSession
instance GHC.Read.Read Network.AWS.GameLift.CreatePlayerSession.CreatePlayerSession
instance GHC.Classes.Eq Network.AWS.GameLift.CreatePlayerSession.CreatePlayerSession
instance Network.AWS.Types.AWSRequest Network.AWS.GameLift.CreatePlayerSession.CreatePlayerSession
instance Control.DeepSeq.NFData Network.AWS.GameLift.CreatePlayerSession.CreatePlayerSessionResponse
instance Data.Hashable.Class.Hashable Network.AWS.GameLift.CreatePlayerSession.CreatePlayerSession
instance Control.DeepSeq.NFData Network.AWS.GameLift.CreatePlayerSession.CreatePlayerSession
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.GameLift.CreatePlayerSession.CreatePlayerSession
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.GameLift.CreatePlayerSession.CreatePlayerSession
instance Network.AWS.Data.Path.ToPath Network.AWS.GameLift.CreatePlayerSession.CreatePlayerSession
instance Network.AWS.Data.Query.ToQuery Network.AWS.GameLift.CreatePlayerSession.CreatePlayerSession


-- | Creates a new rule set for FlexMatch matchmaking. A rule set describes
--   the type of match to create, such as the number and size of teams, and
--   sets the parameters for acceptable player matches, such as minimum
--   skill level or character type. Rule sets are used in matchmaking
--   configurations, which define how matchmaking requests are handled.
--   Each <a>MatchmakingConfiguration</a> uses one rule set; you can set up
--   multiple rule sets to handle the scenarios that suit your game (such
--   as for different game modes), and create a separate matchmaking
--   configuration for each rule set. See additional information on rule
--   set content in the <a>MatchmakingRuleSet</a> structure. For help
--   creating rule sets, including useful examples, see the topic <a>Adding
--   FlexMatch to Your Game</a> .
--   
--   Once created, matchmaking rule sets cannot be changed or deleted, so
--   we recommend checking the rule set syntax using
--   <tt>ValidateMatchmakingRuleSet</tt> before creating the rule set.
--   
--   To create a matchmaking rule set, provide the set of rules and a
--   unique name. Rule sets must be defined in the same region as the
--   matchmaking configuration they will be used with. Rule sets cannot be
--   edited or deleted. If you need to change a rule set, create a new one
--   with the necessary edits and then update matchmaking configurations to
--   use the new rule set.
--   
--   Operations related to match configurations and rule sets include:
--   
--   <ul>
--   <li><tt>CreateMatchmakingConfiguration</tt></li>
--   <li><tt>DescribeMatchmakingConfigurations</tt></li>
--   <li><tt>UpdateMatchmakingConfiguration</tt></li>
--   <li><tt>DeleteMatchmakingConfiguration</tt></li>
--   <li><a>CreateMatchmakingRuleSet</a></li>
--   <li><tt>DescribeMatchmakingRuleSets</tt></li>
--   <li><tt>ValidateMatchmakingRuleSet</tt></li>
--   </ul>
module Network.AWS.GameLift.CreateMatchmakingRuleSet

-- | Creates a value of <a>CreateMatchmakingRuleSet</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cmrsName</a> - Unique identifier for a matchmaking rule set.
--   This name is used to identify the rule set associated with a
--   matchmaking configuration.</li>
--   <li><a>cmrsRuleSetBody</a> - Collection of matchmaking rules,
--   formatted as a JSON string. (Note that comments are not allowed in
--   JSON, but most elements support a description field.)</li>
--   </ul>
createMatchmakingRuleSet :: Text -> Text -> CreateMatchmakingRuleSet

-- | Represents the input for a request action.
--   
--   <i>See:</i> <a>createMatchmakingRuleSet</a> smart constructor.
data CreateMatchmakingRuleSet

-- | Unique identifier for a matchmaking rule set. This name is used to
--   identify the rule set associated with a matchmaking configuration.
cmrsName :: Lens' CreateMatchmakingRuleSet Text

-- | Collection of matchmaking rules, formatted as a JSON string. (Note
--   that comments are not allowed in JSON, but most elements support a
--   description field.)
cmrsRuleSetBody :: Lens' CreateMatchmakingRuleSet Text

-- | Creates a value of <a>CreateMatchmakingRuleSetResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cmrsrsResponseStatus</a> - -- | The response status code.</li>
--   <li><a>cmrsrsRuleSet</a> - Object that describes the newly created
--   matchmaking rule set.</li>
--   </ul>
createMatchmakingRuleSetResponse :: Int -> MatchmakingRuleSet -> CreateMatchmakingRuleSetResponse

-- | Represents the returned data in response to a request action.
--   
--   <i>See:</i> <a>createMatchmakingRuleSetResponse</a> smart constructor.
data CreateMatchmakingRuleSetResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
cmrsrsResponseStatus :: Lens' CreateMatchmakingRuleSetResponse Int

-- | Object that describes the newly created matchmaking rule set.
cmrsrsRuleSet :: Lens' CreateMatchmakingRuleSetResponse MatchmakingRuleSet
instance GHC.Generics.Generic Network.AWS.GameLift.CreateMatchmakingRuleSet.CreateMatchmakingRuleSetResponse
instance Data.Data.Data Network.AWS.GameLift.CreateMatchmakingRuleSet.CreateMatchmakingRuleSetResponse
instance GHC.Show.Show Network.AWS.GameLift.CreateMatchmakingRuleSet.CreateMatchmakingRuleSetResponse
instance GHC.Read.Read Network.AWS.GameLift.CreateMatchmakingRuleSet.CreateMatchmakingRuleSetResponse
instance GHC.Classes.Eq Network.AWS.GameLift.CreateMatchmakingRuleSet.CreateMatchmakingRuleSetResponse
instance GHC.Generics.Generic Network.AWS.GameLift.CreateMatchmakingRuleSet.CreateMatchmakingRuleSet
instance Data.Data.Data Network.AWS.GameLift.CreateMatchmakingRuleSet.CreateMatchmakingRuleSet
instance GHC.Show.Show Network.AWS.GameLift.CreateMatchmakingRuleSet.CreateMatchmakingRuleSet
instance GHC.Read.Read Network.AWS.GameLift.CreateMatchmakingRuleSet.CreateMatchmakingRuleSet
instance GHC.Classes.Eq Network.AWS.GameLift.CreateMatchmakingRuleSet.CreateMatchmakingRuleSet
instance Network.AWS.Types.AWSRequest Network.AWS.GameLift.CreateMatchmakingRuleSet.CreateMatchmakingRuleSet
instance Control.DeepSeq.NFData Network.AWS.GameLift.CreateMatchmakingRuleSet.CreateMatchmakingRuleSetResponse
instance Data.Hashable.Class.Hashable Network.AWS.GameLift.CreateMatchmakingRuleSet.CreateMatchmakingRuleSet
instance Control.DeepSeq.NFData Network.AWS.GameLift.CreateMatchmakingRuleSet.CreateMatchmakingRuleSet
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.GameLift.CreateMatchmakingRuleSet.CreateMatchmakingRuleSet
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.GameLift.CreateMatchmakingRuleSet.CreateMatchmakingRuleSet
instance Network.AWS.Data.Path.ToPath Network.AWS.GameLift.CreateMatchmakingRuleSet.CreateMatchmakingRuleSet
instance Network.AWS.Data.Query.ToQuery Network.AWS.GameLift.CreateMatchmakingRuleSet.CreateMatchmakingRuleSet


-- | Defines a new matchmaking configuration for use with FlexMatch. A
--   matchmaking configuration sets out guidelines for matching players and
--   getting the matches into games. You can set up multiple matchmaking
--   configurations to handle the scenarios needed for your game. Each
--   matchmaking ticket (<tt>StartMatchmaking</tt> or
--   <tt>StartMatchBackfill</tt> ) specifies a configuration for the match
--   and provides player attributes to support the configuration being
--   used.
--   
--   To create a matchmaking configuration, at a minimum you must specify
--   the following: configuration name; a rule set that governs how to
--   evaluate players and find acceptable matches; a game session queue to
--   use when placing a new game session for the match; and the maximum
--   time allowed for a matchmaking attempt.
--   
--   <b>Player acceptance</b> -- In each configuration, you have the option
--   to require that all players accept participation in a proposed match.
--   To enable this feature, set <i>AcceptanceRequired</i> to true and
--   specify a time limit for player acceptance. Players have the option to
--   accept or reject a proposed match, and a match does not move ahead to
--   game session placement unless all matched players accept.
--   
--   <b>Matchmaking status notification</b> -- There are two ways to track
--   the progress of matchmaking tickets: (1) polling ticket status with
--   <tt>DescribeMatchmaking</tt> ; or (2) receiving notifications with
--   Amazon Simple Notification Service (SNS). To use notifications, you
--   first need to set up an SNS topic to receive the notifications, and
--   provide the topic ARN in the matchmaking configuration (see <a>Setting
--   up Notifications for Matchmaking</a> ). Since notifications promise
--   only "best effort" delivery, we recommend calling
--   <tt>DescribeMatchmaking</tt> if no notifications are received within
--   30 seconds.
--   
--   Operations related to match configurations and rule sets include:
--   
--   <ul>
--   <li><a>CreateMatchmakingConfiguration</a></li>
--   <li><tt>DescribeMatchmakingConfigurations</tt></li>
--   <li><tt>UpdateMatchmakingConfiguration</tt></li>
--   <li><tt>DeleteMatchmakingConfiguration</tt></li>
--   <li><tt>CreateMatchmakingRuleSet</tt></li>
--   <li><tt>DescribeMatchmakingRuleSets</tt></li>
--   <li><tt>ValidateMatchmakingRuleSet</tt></li>
--   </ul>
module Network.AWS.GameLift.CreateMatchmakingConfiguration

-- | Creates a value of <a>CreateMatchmakingConfiguration</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cmcGameProperties</a> - Set of custom properties for a game
--   session, formatted as key:value pairs. These properties are passed to
--   a game server process in the <a>GameSession</a> object with a request
--   to start a new game session (see <a>Start a Game Session</a> ). This
--   information is added to the new <a>GameSession</a> object that is
--   created for a successful match.</li>
--   <li><a>cmcAcceptanceTimeoutSeconds</a> - Length of time (in seconds)
--   to wait for players to accept a proposed match. If any player rejects
--   the match or fails to accept before the timeout, the ticket continues
--   to look for an acceptable match.</li>
--   <li><a>cmcNotificationTarget</a> - SNS topic ARN that is set up to
--   receive matchmaking notifications.</li>
--   <li><a>cmcCustomEventData</a> - Information to attached to all events
--   related to the matchmaking configuration.</li>
--   <li><a>cmcGameSessionData</a> - Set of custom game session properties,
--   formatted as a single string value. This data is passed to a game
--   server process in the <a>GameSession</a> object with a request to
--   start a new game session (see <a>Start a Game Session</a> ). This
--   information is added to the new <a>GameSession</a> object that is
--   created for a successful match.</li>
--   <li><a>cmcDescription</a> - Meaningful description of the matchmaking
--   configuration.</li>
--   <li><a>cmcAdditionalPlayerCount</a> - Number of player slots in a
--   match to keep open for future players. For example, if the
--   configuration's rule set specifies a match for a single 12-person
--   team, and the additional player count is set to 2, only 10 players are
--   selected for the match.</li>
--   <li><a>cmcName</a> - Unique identifier for a matchmaking
--   configuration. This name is used to identify the configuration
--   associated with a matchmaking request or ticket.</li>
--   <li><a>cmcGameSessionQueueARNs</a> - Amazon Resource Name (<a>ARN</a>
--   ) that is assigned to a game session queue and uniquely identifies it.
--   Format is
--   <tt>arn:aws:gamelift:<a>region</a>::fleet/fleet-a1234567-b8c9-0d1e-2fa3-b45c6d7e8912</tt>
--   . These queues are used when placing game sessions for matches that
--   are created with this matchmaking configuration. Queues can be located
--   in any region.</li>
--   <li><a>cmcRequestTimeoutSeconds</a> - Maximum duration, in seconds,
--   that a matchmaking ticket can remain in process before timing out.
--   Requests that time out can be resubmitted as needed.</li>
--   <li><a>cmcAcceptanceRequired</a> - Flag that determines whether or not
--   a match that was created with this configuration must be accepted by
--   the matched players. To require acceptance, set to TRUE.</li>
--   <li><a>cmcRuleSetName</a> - Unique identifier for a matchmaking rule
--   set to use with this configuration. A matchmaking configuration can
--   only use rule sets that are defined in the same region.</li>
--   </ul>
createMatchmakingConfiguration :: Text -> Natural -> Bool -> Text -> CreateMatchmakingConfiguration

-- | Represents the input for a request action.
--   
--   <i>See:</i> <a>createMatchmakingConfiguration</a> smart constructor.
data CreateMatchmakingConfiguration

-- | Set of custom properties for a game session, formatted as key:value
--   pairs. These properties are passed to a game server process in the
--   <a>GameSession</a> object with a request to start a new game session
--   (see <a>Start a Game Session</a> ). This information is added to the
--   new <a>GameSession</a> object that is created for a successful match.
cmcGameProperties :: Lens' CreateMatchmakingConfiguration [GameProperty]

-- | Length of time (in seconds) to wait for players to accept a proposed
--   match. If any player rejects the match or fails to accept before the
--   timeout, the ticket continues to look for an acceptable match.
cmcAcceptanceTimeoutSeconds :: Lens' CreateMatchmakingConfiguration (Maybe Natural)

-- | SNS topic ARN that is set up to receive matchmaking notifications.
cmcNotificationTarget :: Lens' CreateMatchmakingConfiguration (Maybe Text)

-- | Information to attached to all events related to the matchmaking
--   configuration.
cmcCustomEventData :: Lens' CreateMatchmakingConfiguration (Maybe Text)

-- | Set of custom game session properties, formatted as a single string
--   value. This data is passed to a game server process in the
--   <a>GameSession</a> object with a request to start a new game session
--   (see <a>Start a Game Session</a> ). This information is added to the
--   new <a>GameSession</a> object that is created for a successful match.
cmcGameSessionData :: Lens' CreateMatchmakingConfiguration (Maybe Text)

-- | Meaningful description of the matchmaking configuration.
cmcDescription :: Lens' CreateMatchmakingConfiguration (Maybe Text)

-- | Number of player slots in a match to keep open for future players. For
--   example, if the configuration's rule set specifies a match for a
--   single 12-person team, and the additional player count is set to 2,
--   only 10 players are selected for the match.
cmcAdditionalPlayerCount :: Lens' CreateMatchmakingConfiguration (Maybe Natural)

-- | Unique identifier for a matchmaking configuration. This name is used
--   to identify the configuration associated with a matchmaking request or
--   ticket.
cmcName :: Lens' CreateMatchmakingConfiguration Text

-- | Amazon Resource Name (<a>ARN</a> ) that is assigned to a game session
--   queue and uniquely identifies it. Format is
--   <tt>arn:aws:gamelift:<a>region</a>::fleet/fleet-a1234567-b8c9-0d1e-2fa3-b45c6d7e8912</tt>
--   . These queues are used when placing game sessions for matches that
--   are created with this matchmaking configuration. Queues can be located
--   in any region.
cmcGameSessionQueueARNs :: Lens' CreateMatchmakingConfiguration [Text]

-- | Maximum duration, in seconds, that a matchmaking ticket can remain in
--   process before timing out. Requests that time out can be resubmitted
--   as needed.
cmcRequestTimeoutSeconds :: Lens' CreateMatchmakingConfiguration Natural

-- | Flag that determines whether or not a match that was created with this
--   configuration must be accepted by the matched players. To require
--   acceptance, set to TRUE.
cmcAcceptanceRequired :: Lens' CreateMatchmakingConfiguration Bool

-- | Unique identifier for a matchmaking rule set to use with this
--   configuration. A matchmaking configuration can only use rule sets that
--   are defined in the same region.
cmcRuleSetName :: Lens' CreateMatchmakingConfiguration Text

-- | Creates a value of <a>CreateMatchmakingConfigurationResponse</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cmcrsConfiguration</a> - Object that describes the newly
--   created matchmaking configuration.</li>
--   <li><a>cmcrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createMatchmakingConfigurationResponse :: Int -> CreateMatchmakingConfigurationResponse

-- | Represents the returned data in response to a request action.
--   
--   <i>See:</i> <a>createMatchmakingConfigurationResponse</a> smart
--   constructor.
data CreateMatchmakingConfigurationResponse

-- | Object that describes the newly created matchmaking configuration.
cmcrsConfiguration :: Lens' CreateMatchmakingConfigurationResponse (Maybe MatchmakingConfiguration)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
cmcrsResponseStatus :: Lens' CreateMatchmakingConfigurationResponse Int
instance GHC.Generics.Generic Network.AWS.GameLift.CreateMatchmakingConfiguration.CreateMatchmakingConfigurationResponse
instance Data.Data.Data Network.AWS.GameLift.CreateMatchmakingConfiguration.CreateMatchmakingConfigurationResponse
instance GHC.Show.Show Network.AWS.GameLift.CreateMatchmakingConfiguration.CreateMatchmakingConfigurationResponse
instance GHC.Read.Read Network.AWS.GameLift.CreateMatchmakingConfiguration.CreateMatchmakingConfigurationResponse
instance GHC.Classes.Eq Network.AWS.GameLift.CreateMatchmakingConfiguration.CreateMatchmakingConfigurationResponse
instance GHC.Generics.Generic Network.AWS.GameLift.CreateMatchmakingConfiguration.CreateMatchmakingConfiguration
instance Data.Data.Data Network.AWS.GameLift.CreateMatchmakingConfiguration.CreateMatchmakingConfiguration
instance GHC.Show.Show Network.AWS.GameLift.CreateMatchmakingConfiguration.CreateMatchmakingConfiguration
instance GHC.Read.Read Network.AWS.GameLift.CreateMatchmakingConfiguration.CreateMatchmakingConfiguration
instance GHC.Classes.Eq Network.AWS.GameLift.CreateMatchmakingConfiguration.CreateMatchmakingConfiguration
instance Network.AWS.Types.AWSRequest Network.AWS.GameLift.CreateMatchmakingConfiguration.CreateMatchmakingConfiguration
instance Control.DeepSeq.NFData Network.AWS.GameLift.CreateMatchmakingConfiguration.CreateMatchmakingConfigurationResponse
instance Data.Hashable.Class.Hashable Network.AWS.GameLift.CreateMatchmakingConfiguration.CreateMatchmakingConfiguration
instance Control.DeepSeq.NFData Network.AWS.GameLift.CreateMatchmakingConfiguration.CreateMatchmakingConfiguration
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.GameLift.CreateMatchmakingConfiguration.CreateMatchmakingConfiguration
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.GameLift.CreateMatchmakingConfiguration.CreateMatchmakingConfiguration
instance Network.AWS.Data.Path.ToPath Network.AWS.GameLift.CreateMatchmakingConfiguration.CreateMatchmakingConfiguration
instance Network.AWS.Data.Query.ToQuery Network.AWS.GameLift.CreateMatchmakingConfiguration.CreateMatchmakingConfiguration


-- | Establishes a new queue for processing requests to place new game
--   sessions. A queue identifies where new game sessions can be hosted --
--   by specifying a list of destinations (fleets or aliases) -- and how
--   long requests can wait in the queue before timing out. You can set up
--   a queue to try to place game sessions on fleets in multiple regions.
--   To add placement requests to a queue, call
--   <tt>StartGameSessionPlacement</tt> and reference the queue name.
--   
--   <b>Destination order.</b> When processing a request for a game
--   session, Amazon GameLift tries each destination in order until it
--   finds one with available resources to host the new game session. A
--   queue's default order is determined by how destinations are listed.
--   The default order is overridden when a game session placement request
--   provides player latency information. Player latency information
--   enables Amazon GameLift to prioritize destinations where players
--   report the lowest average latency, as a result placing the new game
--   session where the majority of players will have the best possible
--   gameplay experience.
--   
--   <b>Player latency policies.</b> For placement requests containing
--   player latency information, use player latency policies to protect
--   individual players from very high latencies. With a latency cap, even
--   when a destination can deliver a low latency for most players, the
--   game is not placed where any individual player is reporting latency
--   higher than a policy's maximum. A queue can have multiple latency
--   policies, which are enforced consecutively starting with the policy
--   with the lowest latency cap. Use multiple policies to gradually relax
--   latency controls; for example, you might set a policy with a low
--   latency cap for the first 60 seconds, a second policy with a higher
--   cap for the next 60 seconds, etc.
--   
--   To create a new queue, provide a name, timeout value, a list of
--   destinations and, if desired, a set of latency policies. If
--   successful, a new queue object is returned.
--   
--   Queue-related operations include:
--   
--   <ul>
--   <li><a>CreateGameSessionQueue</a></li>
--   <li><tt>DescribeGameSessionQueues</tt></li>
--   <li><tt>UpdateGameSessionQueue</tt></li>
--   <li><tt>DeleteGameSessionQueue</tt></li>
--   </ul>
module Network.AWS.GameLift.CreateGameSessionQueue

-- | Creates a value of <a>CreateGameSessionQueue</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cgsqPlayerLatencyPolicies</a> - Collection of latency policies
--   to apply when processing game sessions placement requests with player
--   latency information. Multiple policies are evaluated in order of the
--   maximum latency value, starting with the lowest latency values. With
--   just one policy, it is enforced at the start of the game session
--   placement for the duration period. With multiple policies, each policy
--   is enforced consecutively for its duration period. For example, a
--   queue might enforce a 60-second policy followed by a 120-second
--   policy, and then no policy for the remainder of the placement. A
--   player latency policy must set a value for
--   MaximumIndividualPlayerLatencyMilliseconds; if none is set, this API
--   requests will fail.</li>
--   <li><a>cgsqTimeoutInSeconds</a> - Maximum time, in seconds, that a new
--   game session placement request remains in the queue. When a request
--   exceeds this time, the game session placement changes to a
--   <tt>TIMED_OUT</tt> status.</li>
--   <li><a>cgsqDestinations</a> - List of fleets that can be used to
--   fulfill game session placement requests in the queue. Fleets are
--   identified by either a fleet ARN or a fleet alias ARN. Destinations
--   are listed in default preference order.</li>
--   <li><a>cgsqName</a> - Descriptive label that is associated with game
--   session queue. Queue names must be unique within each region.</li>
--   </ul>
createGameSessionQueue :: Text -> CreateGameSessionQueue

-- | Represents the input for a request action.
--   
--   <i>See:</i> <a>createGameSessionQueue</a> smart constructor.
data CreateGameSessionQueue

-- | Collection of latency policies to apply when processing game sessions
--   placement requests with player latency information. Multiple policies
--   are evaluated in order of the maximum latency value, starting with the
--   lowest latency values. With just one policy, it is enforced at the
--   start of the game session placement for the duration period. With
--   multiple policies, each policy is enforced consecutively for its
--   duration period. For example, a queue might enforce a 60-second policy
--   followed by a 120-second policy, and then no policy for the remainder
--   of the placement. A player latency policy must set a value for
--   MaximumIndividualPlayerLatencyMilliseconds; if none is set, this API
--   requests will fail.
cgsqPlayerLatencyPolicies :: Lens' CreateGameSessionQueue [PlayerLatencyPolicy]

-- | Maximum time, in seconds, that a new game session placement request
--   remains in the queue. When a request exceeds this time, the game
--   session placement changes to a <tt>TIMED_OUT</tt> status.
cgsqTimeoutInSeconds :: Lens' CreateGameSessionQueue (Maybe Natural)

-- | List of fleets that can be used to fulfill game session placement
--   requests in the queue. Fleets are identified by either a fleet ARN or
--   a fleet alias ARN. Destinations are listed in default preference
--   order.
cgsqDestinations :: Lens' CreateGameSessionQueue [GameSessionQueueDestination]

-- | Descriptive label that is associated with game session queue. Queue
--   names must be unique within each region.
cgsqName :: Lens' CreateGameSessionQueue Text

-- | Creates a value of <a>CreateGameSessionQueueResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cgsqrsGameSessionQueue</a> - Object that describes the newly
--   created game session queue.</li>
--   <li><a>cgsqrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createGameSessionQueueResponse :: Int -> CreateGameSessionQueueResponse

-- | Represents the returned data in response to a request action.
--   
--   <i>See:</i> <a>createGameSessionQueueResponse</a> smart constructor.
data CreateGameSessionQueueResponse

-- | Object that describes the newly created game session queue.
cgsqrsGameSessionQueue :: Lens' CreateGameSessionQueueResponse (Maybe GameSessionQueue)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
cgsqrsResponseStatus :: Lens' CreateGameSessionQueueResponse Int
instance GHC.Generics.Generic Network.AWS.GameLift.CreateGameSessionQueue.CreateGameSessionQueueResponse
instance Data.Data.Data Network.AWS.GameLift.CreateGameSessionQueue.CreateGameSessionQueueResponse
instance GHC.Show.Show Network.AWS.GameLift.CreateGameSessionQueue.CreateGameSessionQueueResponse
instance GHC.Read.Read Network.AWS.GameLift.CreateGameSessionQueue.CreateGameSessionQueueResponse
instance GHC.Classes.Eq Network.AWS.GameLift.CreateGameSessionQueue.CreateGameSessionQueueResponse
instance GHC.Generics.Generic Network.AWS.GameLift.CreateGameSessionQueue.CreateGameSessionQueue
instance Data.Data.Data Network.AWS.GameLift.CreateGameSessionQueue.CreateGameSessionQueue
instance GHC.Show.Show Network.AWS.GameLift.CreateGameSessionQueue.CreateGameSessionQueue
instance GHC.Read.Read Network.AWS.GameLift.CreateGameSessionQueue.CreateGameSessionQueue
instance GHC.Classes.Eq Network.AWS.GameLift.CreateGameSessionQueue.CreateGameSessionQueue
instance Network.AWS.Types.AWSRequest Network.AWS.GameLift.CreateGameSessionQueue.CreateGameSessionQueue
instance Control.DeepSeq.NFData Network.AWS.GameLift.CreateGameSessionQueue.CreateGameSessionQueueResponse
instance Data.Hashable.Class.Hashable Network.AWS.GameLift.CreateGameSessionQueue.CreateGameSessionQueue
instance Control.DeepSeq.NFData Network.AWS.GameLift.CreateGameSessionQueue.CreateGameSessionQueue
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.GameLift.CreateGameSessionQueue.CreateGameSessionQueue
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.GameLift.CreateGameSessionQueue.CreateGameSessionQueue
instance Network.AWS.Data.Path.ToPath Network.AWS.GameLift.CreateGameSessionQueue.CreateGameSessionQueue
instance Network.AWS.Data.Query.ToQuery Network.AWS.GameLift.CreateGameSessionQueue.CreateGameSessionQueue


-- | Creates a multiplayer game session for players. This action creates a
--   game session record and assigns an available server process in the
--   specified fleet to host the game session. A fleet must have an
--   <tt>ACTIVE</tt> status before a game session can be created in it.
--   
--   To create a game session, specify either fleet ID or alias ID and
--   indicate a maximum number of players to allow in the game session. You
--   can also provide a name and game-specific properties for this game
--   session. If successful, a <a>GameSession</a> object is returned
--   containing the game session properties and other settings you
--   specified.
--   
--   <b>Idempotency tokens.</b> You can add a token that uniquely
--   identifies game session requests. This is useful for ensuring that
--   game session requests are idempotent. Multiple requests with the same
--   idempotency token are processed only once; subsequent requests return
--   the original result. All response values are the same with the
--   exception of game session status, which may change.
--   
--   <b>Resource creation limits.</b> If you are creating a game session on
--   a fleet with a resource creation limit policy in force, then you must
--   specify a creator ID. Without this ID, Amazon GameLift has no way to
--   evaluate the policy for this new game session request.
--   
--   <b>Player acceptance policy.</b> By default, newly created game
--   sessions are open to new players. You can restrict new player access
--   by using <tt>UpdateGameSession</tt> to change the game session's
--   player session creation policy.
--   
--   <b>Game session logs.</b> Logs are retained for all active game
--   sessions for 14 days. To access the logs, call
--   <tt>GetGameSessionLogUrl</tt> to download the log files.
--   
--   <i>Available in Amazon GameLift Local.</i>
--   
--   Game-session-related operations include:
--   
--   <ul>
--   <li><a>CreateGameSession</a></li>
--   <li><tt>DescribeGameSessions</tt></li>
--   <li><tt>DescribeGameSessionDetails</tt></li>
--   <li><tt>SearchGameSessions</tt></li>
--   <li><tt>UpdateGameSession</tt></li>
--   <li><tt>GetGameSessionLogUrl</tt></li>
--   <li>Game session placements</li>
--   <li><tt>StartGameSessionPlacement</tt></li>
--   <li><tt>DescribeGameSessionPlacement</tt></li>
--   <li><tt>StopGameSessionPlacement</tt></li>
--   </ul>
module Network.AWS.GameLift.CreateGameSession

-- | Creates a value of <a>CreateGameSession</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cgsIdempotencyToken</a> - Custom string that uniquely
--   identifies a request for a new game session. Maximum token length is
--   48 characters. If provided, this string is included in the new game
--   session's ID. (A game session ARN has the following format:
--   <tt>arn:aws:gamelift:<a>region</a>::gamesession<i><a>ID</a></i><a>ID
--   string or idempotency token</a></tt> .) Idempotency tokens remain in
--   use for 30 days after a game session has ended; game session objects
--   are retained for this time period and then deleted.</li>
--   <li><a>cgsGameProperties</a> - Set of custom properties for a game
--   session, formatted as key:value pairs. These properties are passed to
--   a game server process in the <a>GameSession</a> object with a request
--   to start a new game session (see <a>Start a Game Session</a> ).</li>
--   <li><a>cgsGameSessionId</a> - <i>This parameter is no longer
--   preferred. Please use <tt>IdempotencyToken</tt> instead.</i> Custom
--   string that uniquely identifies a request for a new game session.
--   Maximum token length is 48 characters. If provided, this string is
--   included in the new game session's ID. (A game session ARN has the
--   following format:
--   <tt>arn:aws:gamelift:<a>region</a>::gamesession<i><a>ID</a></i><a>ID
--   string or idempotency token</a></tt> .)</li>
--   <li><a>cgsAliasId</a> - Unique identifier for an alias associated with
--   the fleet to create a game session in. Each request must reference
--   either a fleet ID or alias ID, but not both.</li>
--   <li><a>cgsName</a> - Descriptive label that is associated with a game
--   session. Session names do not need to be unique.</li>
--   <li><a>cgsGameSessionData</a> - Set of custom game session properties,
--   formatted as a single string value. This data is passed to a game
--   server process in the <a>GameSession</a> object with a request to
--   start a new game session (see <a>Start a Game Session</a> ).</li>
--   <li><a>cgsFleetId</a> - Unique identifier for a fleet to create a game
--   session in. Each request must reference either a fleet ID or alias ID,
--   but not both.</li>
--   <li><a>cgsCreatorId</a> - Unique identifier for a player or entity
--   creating the game session. This ID is used to enforce a resource
--   protection policy (if one exists) that limits the number of concurrent
--   active game sessions one player can have.</li>
--   <li><a>cgsMaximumPlayerSessionCount</a> - Maximum number of players
--   that can be connected simultaneously to the game session.</li>
--   </ul>
createGameSession :: Natural -> CreateGameSession

-- | Represents the input for a request action.
--   
--   <i>See:</i> <a>createGameSession</a> smart constructor.
data CreateGameSession

-- | Custom string that uniquely identifies a request for a new game
--   session. Maximum token length is 48 characters. If provided, this
--   string is included in the new game session's ID. (A game session ARN
--   has the following format:
--   <tt>arn:aws:gamelift:<a>region</a>::gamesession<i><a>ID</a></i><a>ID
--   string or idempotency token</a></tt> .) Idempotency tokens remain in
--   use for 30 days after a game session has ended; game session objects
--   are retained for this time period and then deleted.
cgsIdempotencyToken :: Lens' CreateGameSession (Maybe Text)

-- | Set of custom properties for a game session, formatted as key:value
--   pairs. These properties are passed to a game server process in the
--   <a>GameSession</a> object with a request to start a new game session
--   (see <a>Start a Game Session</a> ).
cgsGameProperties :: Lens' CreateGameSession [GameProperty]

-- | <i>This parameter is no longer preferred. Please use
--   <tt>IdempotencyToken</tt> instead.</i> Custom string that uniquely
--   identifies a request for a new game session. Maximum token length is
--   48 characters. If provided, this string is included in the new game
--   session's ID. (A game session ARN has the following format:
--   <tt>arn:aws:gamelift:<a>region</a>::gamesession<i><a>ID</a></i><a>ID
--   string or idempotency token</a></tt> .)
cgsGameSessionId :: Lens' CreateGameSession (Maybe Text)

-- | Unique identifier for an alias associated with the fleet to create a
--   game session in. Each request must reference either a fleet ID or
--   alias ID, but not both.
cgsAliasId :: Lens' CreateGameSession (Maybe Text)

-- | Descriptive label that is associated with a game session. Session
--   names do not need to be unique.
cgsName :: Lens' CreateGameSession (Maybe Text)

-- | Set of custom game session properties, formatted as a single string
--   value. This data is passed to a game server process in the
--   <a>GameSession</a> object with a request to start a new game session
--   (see <a>Start a Game Session</a> ).
cgsGameSessionData :: Lens' CreateGameSession (Maybe Text)

-- | Unique identifier for a fleet to create a game session in. Each
--   request must reference either a fleet ID or alias ID, but not both.
cgsFleetId :: Lens' CreateGameSession (Maybe Text)

-- | Unique identifier for a player or entity creating the game session.
--   This ID is used to enforce a resource protection policy (if one
--   exists) that limits the number of concurrent active game sessions one
--   player can have.
cgsCreatorId :: Lens' CreateGameSession (Maybe Text)

-- | Maximum number of players that can be connected simultaneously to the
--   game session.
cgsMaximumPlayerSessionCount :: Lens' CreateGameSession Natural

-- | Creates a value of <a>CreateGameSessionResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cgsrsGameSession</a> - Object that describes the newly created
--   game session record.</li>
--   <li><a>cgsrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createGameSessionResponse :: Int -> CreateGameSessionResponse

-- | Represents the returned data in response to a request action.
--   
--   <i>See:</i> <a>createGameSessionResponse</a> smart constructor.
data CreateGameSessionResponse

-- | Object that describes the newly created game session record.
cgsrsGameSession :: Lens' CreateGameSessionResponse (Maybe GameSession)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
cgsrsResponseStatus :: Lens' CreateGameSessionResponse Int
instance GHC.Generics.Generic Network.AWS.GameLift.CreateGameSession.CreateGameSessionResponse
instance Data.Data.Data Network.AWS.GameLift.CreateGameSession.CreateGameSessionResponse
instance GHC.Show.Show Network.AWS.GameLift.CreateGameSession.CreateGameSessionResponse
instance GHC.Read.Read Network.AWS.GameLift.CreateGameSession.CreateGameSessionResponse
instance GHC.Classes.Eq Network.AWS.GameLift.CreateGameSession.CreateGameSessionResponse
instance GHC.Generics.Generic Network.AWS.GameLift.CreateGameSession.CreateGameSession
instance Data.Data.Data Network.AWS.GameLift.CreateGameSession.CreateGameSession
instance GHC.Show.Show Network.AWS.GameLift.CreateGameSession.CreateGameSession
instance GHC.Read.Read Network.AWS.GameLift.CreateGameSession.CreateGameSession
instance GHC.Classes.Eq Network.AWS.GameLift.CreateGameSession.CreateGameSession
instance Network.AWS.Types.AWSRequest Network.AWS.GameLift.CreateGameSession.CreateGameSession
instance Control.DeepSeq.NFData Network.AWS.GameLift.CreateGameSession.CreateGameSessionResponse
instance Data.Hashable.Class.Hashable Network.AWS.GameLift.CreateGameSession.CreateGameSession
instance Control.DeepSeq.NFData Network.AWS.GameLift.CreateGameSession.CreateGameSession
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.GameLift.CreateGameSession.CreateGameSession
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.GameLift.CreateGameSession.CreateGameSession
instance Network.AWS.Data.Path.ToPath Network.AWS.GameLift.CreateGameSession.CreateGameSession
instance Network.AWS.Data.Query.ToQuery Network.AWS.GameLift.CreateGameSession.CreateGameSession


-- | Creates a new fleet to run your game servers. A fleet is a set of
--   Amazon Elastic Compute Cloud (Amazon EC2) instances, each of which can
--   run multiple server processes to host game sessions. You set up a
--   fleet to use instances with certain hardware specifications (see
--   <a>Amazon EC2 Instance Types</a> for more information), and deploy
--   your game build to run on each instance.
--   
--   To create a new fleet, you must specify the following: (1) a fleet
--   name, (2) the build ID of a successfully uploaded game build, (3) an
--   EC2 instance type, and (4) a run-time configuration, which describes
--   the server processes to run on each instance in the fleet. If you
--   don't specify a fleet type (on-demand or spot), the new fleet uses
--   on-demand instances by default.
--   
--   You can also configure the new fleet with the following settings:
--   
--   <ul>
--   <li>Fleet description</li>
--   <li>Access permissions for inbound traffic</li>
--   <li>Fleet-wide game session protection</li>
--   <li>Resource usage limits</li>
--   <li>VPC peering connection (see <a>VPC Peering with Amazon GameLift
--   Fleets</a> )</li>
--   </ul>
--   
--   If you use Amazon CloudWatch for metrics, you can add the new fleet to
--   a metric group. By adding multiple fleets to a metric group, you can
--   view aggregated metrics for all the fleets in the group.
--   
--   If the <tt>CreateFleet</tt> call is successful, Amazon GameLift
--   performs the following tasks. You can track the process of a fleet by
--   checking the fleet status or by monitoring fleet creation events:
--   
--   <ul>
--   <li>Creates a fleet record. Status: <tt>NEW</tt> .</li>
--   <li>Begins writing events to the fleet event log, which can be
--   accessed in the Amazon GameLift console.</li>
--   </ul>
--   
--   Sets the fleet's target capacity to 1 (desired instances), which
--   triggers Amazon GameLift to start one new EC2 instance.
--   
--   <ul>
--   <li>Downloads the game build to the new instance and installs it.
--   Statuses: <tt>DOWNLOADING</tt> , <tt>VALIDATING</tt> ,
--   <tt>BUILDING</tt> .</li>
--   <li>Starts launching server processes on the instance. If the fleet is
--   configured to run multiple server processes per instance, Amazon
--   GameLift staggers each launch by a few seconds. Status:
--   <tt>ACTIVATING</tt> .</li>
--   <li>Sets the fleet's status to <tt>ACTIVE</tt> as soon as one server
--   process is ready to host a game session.</li>
--   </ul>
--   
--   Fleet-related operations include:
--   
--   <ul>
--   <li><a>CreateFleet</a></li>
--   <li><tt>ListFleets</tt></li>
--   <li><tt>DeleteFleet</tt></li>
--   <li>Describe fleets:</li>
--   <li><tt>DescribeFleetAttributes</tt></li>
--   <li><tt>DescribeFleetCapacity</tt></li>
--   <li><tt>DescribeFleetPortSettings</tt></li>
--   <li><tt>DescribeFleetUtilization</tt></li>
--   <li><tt>DescribeRuntimeConfiguration</tt></li>
--   <li><tt>DescribeEC2InstanceLimits</tt></li>
--   <li><tt>DescribeFleetEvents</tt></li>
--   <li>Update fleets:</li>
--   <li><tt>UpdateFleetAttributes</tt></li>
--   <li><tt>UpdateFleetCapacity</tt></li>
--   <li><tt>UpdateFleetPortSettings</tt></li>
--   <li><tt>UpdateRuntimeConfiguration</tt></li>
--   <li>Manage fleet actions:</li>
--   <li><tt>StartFleetActions</tt></li>
--   <li><tt>StopFleetActions</tt></li>
--   </ul>
module Network.AWS.GameLift.CreateFleet

-- | Creates a value of <a>CreateFleet</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cfServerLaunchParameters</a> - This parameter is no longer
--   used. Instead, specify server launch parameters in the
--   <tt>RuntimeConfiguration</tt> parameter. (Requests that specify a
--   server launch path and launch parameters instead of a run-time
--   configuration will continue to work.)</li>
--   <li><a>cfLogPaths</a> - This parameter is no longer used. Instead, to
--   specify where Amazon GameLift should store log files once a server
--   process shuts down, use the Amazon GameLift server API
--   <tt>ProcessReady()</tt> and specify one or more directory paths in
--   <tt>logParameters</tt> . See more information in the <a>Server API
--   Reference</a> .</li>
--   <li><a>cfPeerVPCId</a> - Unique identifier for a VPC with resources to
--   be accessed by your Amazon GameLift fleet. The VPC must be in the same
--   region where your fleet is deployed. To get VPC information, including
--   IDs, use the Virtual Private Cloud service tools, including the VPC
--   Dashboard in the AWS Management Console.</li>
--   <li><a>cfFleetType</a> - Indicates whether to use on-demand instances
--   or spot instances for this fleet. If empty, the default is ON_DEMAND.
--   Both categories of instances use identical hardware and
--   configurations, based on the instance type selected for this fleet.
--   You can acquire on-demand instances at any time for a fixed price and
--   keep them as long as you need them. Spot instances have lower prices,
--   but spot pricing is variable, and while in use they can be interrupted
--   (with a two-minute notification). Learn more about Amazon GameLift
--   spot instances with at <a>Choose Computing Resources</a> .</li>
--   <li><a>cfPeerVPCAWSAccountId</a> - Unique identifier for the AWS
--   account with the VPC that you want to peer your Amazon GameLift fleet
--   with. You can find your Account ID in the AWS Management Console under
--   account settings.</li>
--   <li><a>cfEC2InboundPermissions</a> - Range of IP addresses and port
--   settings that permit inbound traffic to access server processes
--   running on the fleet. If no inbound permissions are set, including
--   both IP address range and port range, the server processes in the
--   fleet cannot accept connections. You can specify one or more sets of
--   permissions for a fleet.</li>
--   <li><a>cfRuntimeConfiguration</a> - Instructions for launching server
--   processes on each instance in the fleet. The run-time configuration
--   for a fleet has a collection of server process configurations, one for
--   each type of server process to run on an instance. A server process
--   configuration specifies the location of the server executable, launch
--   parameters, and the number of concurrent processes with that
--   configuration to maintain on each instance. A CreateFleet request must
--   include a run-time configuration with at least one server process
--   configuration; otherwise the request fails with an invalid request
--   exception. (This parameter replaces the parameters
--   <tt>ServerLaunchPath</tt> and <tt>ServerLaunchParameters</tt> ;
--   requests that contain values for these parameters instead of a
--   run-time configuration will continue to work.)</li>
--   <li><a>cfNewGameSessionProtectionPolicy</a> - Game session protection
--   policy to apply to all instances in this fleet. If this parameter is
--   not set, instances in this fleet default to no protection. You can
--   change a fleet's protection policy using
--   <tt>UpdateFleetAttributes</tt> , but this change will only affect
--   sessions created after the policy change. You can also set protection
--   for individual instances using <tt>UpdateGameSession</tt> . *
--   <b>NoProtection</b> -- The game session can be terminated during a
--   scale-down event. * <b>FullProtection</b> -- If the game session is in
--   an <tt>ACTIVE</tt> status, it cannot be terminated during a scale-down
--   event.</li>
--   <li><a>cfServerLaunchPath</a> - This parameter is no longer used.
--   Instead, specify a server launch path using the
--   <tt>RuntimeConfiguration</tt> parameter. (Requests that specify a
--   server launch path and launch parameters instead of a run-time
--   configuration will continue to work.)</li>
--   <li><a>cfMetricGroups</a> - Name of a metric group to add this fleet
--   to. A metric group tracks metrics across all fleets in the group. Use
--   an existing metric group name to add this fleet to the group, or use a
--   new name to create a new metric group. A fleet can only be included in
--   one metric group at a time.</li>
--   <li><a>cfDescription</a> - Human-readable description of a fleet.</li>
--   <li><a>cfResourceCreationLimitPolicy</a> - Policy that limits the
--   number of game sessions an individual player can create over a span of
--   time for this fleet.</li>
--   <li><a>cfName</a> - Descriptive label that is associated with a fleet.
--   Fleet names do not need to be unique.</li>
--   <li><a>cfBuildId</a> - Unique identifier for a build to be deployed on
--   the new fleet. The build must have been successfully uploaded to
--   Amazon GameLift and be in a <tt>READY</tt> status. This fleet setting
--   cannot be changed once the fleet is created.</li>
--   <li><a>cfEC2InstanceType</a> - Name of an EC2 instance type that is
--   supported in Amazon GameLift. A fleet instance type determines the
--   computing resources of each instance in the fleet, including CPU,
--   memory, storage, and networking capacity. Amazon GameLift supports the
--   following EC2 instance types. See <a>Amazon EC2 Instance Types</a> for
--   detailed descriptions.</li>
--   </ul>
createFleet :: Text -> Text -> EC2InstanceType -> CreateFleet

-- | Represents the input for a request action.
--   
--   <i>See:</i> <a>createFleet</a> smart constructor.
data CreateFleet

-- | This parameter is no longer used. Instead, specify server launch
--   parameters in the <tt>RuntimeConfiguration</tt> parameter. (Requests
--   that specify a server launch path and launch parameters instead of a
--   run-time configuration will continue to work.)
cfServerLaunchParameters :: Lens' CreateFleet (Maybe Text)

-- | This parameter is no longer used. Instead, to specify where Amazon
--   GameLift should store log files once a server process shuts down, use
--   the Amazon GameLift server API <tt>ProcessReady()</tt> and specify one
--   or more directory paths in <tt>logParameters</tt> . See more
--   information in the <a>Server API Reference</a> .
cfLogPaths :: Lens' CreateFleet [Text]

-- | Unique identifier for a VPC with resources to be accessed by your
--   Amazon GameLift fleet. The VPC must be in the same region where your
--   fleet is deployed. To get VPC information, including IDs, use the
--   Virtual Private Cloud service tools, including the VPC Dashboard in
--   the AWS Management Console.
cfPeerVPCId :: Lens' CreateFleet (Maybe Text)

-- | Indicates whether to use on-demand instances or spot instances for
--   this fleet. If empty, the default is ON_DEMAND. Both categories of
--   instances use identical hardware and configurations, based on the
--   instance type selected for this fleet. You can acquire on-demand
--   instances at any time for a fixed price and keep them as long as you
--   need them. Spot instances have lower prices, but spot pricing is
--   variable, and while in use they can be interrupted (with a two-minute
--   notification). Learn more about Amazon GameLift spot instances with at
--   <a>Choose Computing Resources</a> .
cfFleetType :: Lens' CreateFleet (Maybe FleetType)

-- | Unique identifier for the AWS account with the VPC that you want to
--   peer your Amazon GameLift fleet with. You can find your Account ID in
--   the AWS Management Console under account settings.
cfPeerVPCAWSAccountId :: Lens' CreateFleet (Maybe Text)

-- | Range of IP addresses and port settings that permit inbound traffic to
--   access server processes running on the fleet. If no inbound
--   permissions are set, including both IP address range and port range,
--   the server processes in the fleet cannot accept connections. You can
--   specify one or more sets of permissions for a fleet.
cfEC2InboundPermissions :: Lens' CreateFleet [IPPermission]

-- | Instructions for launching server processes on each instance in the
--   fleet. The run-time configuration for a fleet has a collection of
--   server process configurations, one for each type of server process to
--   run on an instance. A server process configuration specifies the
--   location of the server executable, launch parameters, and the number
--   of concurrent processes with that configuration to maintain on each
--   instance. A CreateFleet request must include a run-time configuration
--   with at least one server process configuration; otherwise the request
--   fails with an invalid request exception. (This parameter replaces the
--   parameters <tt>ServerLaunchPath</tt> and
--   <tt>ServerLaunchParameters</tt> ; requests that contain values for
--   these parameters instead of a run-time configuration will continue to
--   work.)
cfRuntimeConfiguration :: Lens' CreateFleet (Maybe RuntimeConfiguration)

-- | Game session protection policy to apply to all instances in this
--   fleet. If this parameter is not set, instances in this fleet default
--   to no protection. You can change a fleet's protection policy using
--   <tt>UpdateFleetAttributes</tt> , but this change will only affect
--   sessions created after the policy change. You can also set protection
--   for individual instances using <tt>UpdateGameSession</tt> . *
--   <b>NoProtection</b> -- The game session can be terminated during a
--   scale-down event. * <b>FullProtection</b> -- If the game session is in
--   an <tt>ACTIVE</tt> status, it cannot be terminated during a scale-down
--   event.
cfNewGameSessionProtectionPolicy :: Lens' CreateFleet (Maybe ProtectionPolicy)

-- | This parameter is no longer used. Instead, specify a server launch
--   path using the <tt>RuntimeConfiguration</tt> parameter. (Requests that
--   specify a server launch path and launch parameters instead of a
--   run-time configuration will continue to work.)
cfServerLaunchPath :: Lens' CreateFleet (Maybe Text)

-- | Name of a metric group to add this fleet to. A metric group tracks
--   metrics across all fleets in the group. Use an existing metric group
--   name to add this fleet to the group, or use a new name to create a new
--   metric group. A fleet can only be included in one metric group at a
--   time.
cfMetricGroups :: Lens' CreateFleet [Text]

-- | Human-readable description of a fleet.
cfDescription :: Lens' CreateFleet (Maybe Text)

-- | Policy that limits the number of game sessions an individual player
--   can create over a span of time for this fleet.
cfResourceCreationLimitPolicy :: Lens' CreateFleet (Maybe ResourceCreationLimitPolicy)

-- | Descriptive label that is associated with a fleet. Fleet names do not
--   need to be unique.
cfName :: Lens' CreateFleet Text

-- | Unique identifier for a build to be deployed on the new fleet. The
--   build must have been successfully uploaded to Amazon GameLift and be
--   in a <tt>READY</tt> status. This fleet setting cannot be changed once
--   the fleet is created.
cfBuildId :: Lens' CreateFleet Text

-- | Name of an EC2 instance type that is supported in Amazon GameLift. A
--   fleet instance type determines the computing resources of each
--   instance in the fleet, including CPU, memory, storage, and networking
--   capacity. Amazon GameLift supports the following EC2 instance types.
--   See <a>Amazon EC2 Instance Types</a> for detailed descriptions.
cfEC2InstanceType :: Lens' CreateFleet EC2InstanceType

-- | Creates a value of <a>CreateFleetResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cfrsFleetAttributes</a> - Properties for the newly created
--   fleet.</li>
--   <li><a>cfrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createFleetResponse :: Int -> CreateFleetResponse

-- | Represents the returned data in response to a request action.
--   
--   <i>See:</i> <a>createFleetResponse</a> smart constructor.
data CreateFleetResponse

-- | Properties for the newly created fleet.
cfrsFleetAttributes :: Lens' CreateFleetResponse (Maybe FleetAttributes)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
cfrsResponseStatus :: Lens' CreateFleetResponse Int
instance GHC.Generics.Generic Network.AWS.GameLift.CreateFleet.CreateFleetResponse
instance Data.Data.Data Network.AWS.GameLift.CreateFleet.CreateFleetResponse
instance GHC.Show.Show Network.AWS.GameLift.CreateFleet.CreateFleetResponse
instance GHC.Read.Read Network.AWS.GameLift.CreateFleet.CreateFleetResponse
instance GHC.Classes.Eq Network.AWS.GameLift.CreateFleet.CreateFleetResponse
instance GHC.Generics.Generic Network.AWS.GameLift.CreateFleet.CreateFleet
instance Data.Data.Data Network.AWS.GameLift.CreateFleet.CreateFleet
instance GHC.Show.Show Network.AWS.GameLift.CreateFleet.CreateFleet
instance GHC.Read.Read Network.AWS.GameLift.CreateFleet.CreateFleet
instance GHC.Classes.Eq Network.AWS.GameLift.CreateFleet.CreateFleet
instance Network.AWS.Types.AWSRequest Network.AWS.GameLift.CreateFleet.CreateFleet
instance Control.DeepSeq.NFData Network.AWS.GameLift.CreateFleet.CreateFleetResponse
instance Data.Hashable.Class.Hashable Network.AWS.GameLift.CreateFleet.CreateFleet
instance Control.DeepSeq.NFData Network.AWS.GameLift.CreateFleet.CreateFleet
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.GameLift.CreateFleet.CreateFleet
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.GameLift.CreateFleet.CreateFleet
instance Network.AWS.Data.Path.ToPath Network.AWS.GameLift.CreateFleet.CreateFleet
instance Network.AWS.Data.Query.ToQuery Network.AWS.GameLift.CreateFleet.CreateFleet


-- | Creates a new Amazon GameLift build record for your game server binary
--   files and points to the location of your game server build files in an
--   Amazon Simple Storage Service (Amazon S3) location.
--   
--   Game server binaries must be combined into a <tt>.zip</tt> file for
--   use with Amazon GameLift. See <a>Uploading Your Game</a> for more
--   information.
--   
--   <i>Important:</i> To create new builds quickly and easily, use the AWS
--   CLI command <b><a>upload-build</a> </b> . This helper command uploads
--   your build and creates a new build record in one step, and
--   automatically handles the necessary permissions. See <a>Upload Build
--   Files to Amazon GameLift</a> for more help.
--   
--   The <tt>CreateBuild</tt> operation should be used only when you need
--   to manually upload your build files, as in the following scenarios:
--   
--   <ul>
--   <li>Store a build file in an Amazon S3 bucket under your own AWS
--   account. To use this option, you must first give Amazon GameLift
--   access to that Amazon S3 bucket. See <a>Create a Build with Files in
--   Amazon S3</a> for detailed help. To create a new build record using
--   files in your Amazon S3 bucket, call <tt>CreateBuild</tt> and specify
--   a build name, operating system, and the storage location of your game
--   build.</li>
--   <li>Upload a build file directly to Amazon GameLift's Amazon S3
--   account. To use this option, you first call <tt>CreateBuild</tt> with
--   a build name and operating system. This action creates a new build
--   record and returns an Amazon S3 storage location (bucket and key only)
--   and temporary access credentials. Use the credentials to manually
--   upload your build file to the storage location (see the Amazon S3
--   topic <a>Uploading Objects</a> ). You can upload files to a location
--   only once.</li>
--   </ul>
--   
--   If successful, this operation creates a new build record with a unique
--   build ID and places it in <tt>INITIALIZED</tt> status. You can use
--   <tt>DescribeBuild</tt> to check the status of your build. A build must
--   be in <tt>READY</tt> status before it can be used to create fleets.
--   
--   Build-related operations include:
--   
--   <ul>
--   <li><a>CreateBuild</a></li>
--   <li><tt>ListBuilds</tt></li>
--   <li><tt>DescribeBuild</tt></li>
--   <li><tt>UpdateBuild</tt></li>
--   <li><tt>DeleteBuild</tt></li>
--   </ul>
module Network.AWS.GameLift.CreateBuild

-- | Creates a value of <a>CreateBuild</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cbStorageLocation</a> - 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, as well as a
--   role ARN that you set up to allow Amazon GameLift to access your
--   Amazon S3 bucket. The S3 bucket must be in the same region that you
--   want to create a new build in.</li>
--   <li><a>cbOperatingSystem</a> - Operating system that the game server
--   binaries are built to run on. This value determines the type of fleet
--   resources that you can use for this build. If your game build contains
--   multiple executables, they all must run on the same operating system.
--   If an operating system is not specified when creating a build, Amazon
--   GameLift uses the default value (WINDOWS_2012). This value cannot be
--   changed later.</li>
--   <li><a>cbName</a> - Descriptive label that is associated with a build.
--   Build names do not need to be unique. You can use <tt>UpdateBuild</tt>
--   to change this value later.</li>
--   <li><a>cbVersion</a> - Version that is associated with this build.
--   Version strings do not need to be unique. You can use
--   <tt>UpdateBuild</tt> to change this value later.</li>
--   </ul>
createBuild :: CreateBuild

-- | Represents the input for a request action.
--   
--   <i>See:</i> <a>createBuild</a> smart constructor.
data CreateBuild

-- | 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, as well as a role ARN that you set up
--   to allow Amazon GameLift to access your Amazon S3 bucket. The S3
--   bucket must be in the same region that you want to create a new build
--   in.
cbStorageLocation :: Lens' CreateBuild (Maybe S3Location)

-- | Operating system that the game server binaries are built to run on.
--   This value determines the type of fleet resources that you can use for
--   this build. If your game build contains multiple executables, they all
--   must run on the same operating system. If an operating system is not
--   specified when creating a build, Amazon GameLift uses the default
--   value (WINDOWS_2012). This value cannot be changed later.
cbOperatingSystem :: Lens' CreateBuild (Maybe OperatingSystem)

-- | Descriptive label that is associated with a build. Build names do not
--   need to be unique. You can use <tt>UpdateBuild</tt> to change this
--   value later.
cbName :: Lens' CreateBuild (Maybe Text)

-- | Version that is associated with this build. Version strings do not
--   need to be unique. You can use <tt>UpdateBuild</tt> to change this
--   value later.
cbVersion :: Lens' CreateBuild (Maybe Text)

-- | Creates a value of <a>CreateBuildResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cbrsStorageLocation</a> - Amazon S3 location for your game
--   build file, including bucket name and key.</li>
--   <li><a>cbrsUploadCredentials</a> - This element is returned only when
--   the operation is called without a storage location. It contains
--   credentials to use when you are uploading a build file to an Amazon S3
--   bucket that is owned by Amazon GameLift. Credentials have a limited
--   life span. To refresh these credentials, call
--   <tt>RequestUploadCredentials</tt> .</li>
--   <li><a>cbrsBuild</a> - The newly created build record, including a
--   unique build ID and status.</li>
--   <li><a>cbrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createBuildResponse :: Int -> CreateBuildResponse

-- | Represents the returned data in response to a request action.
--   
--   <i>See:</i> <a>createBuildResponse</a> smart constructor.
data CreateBuildResponse

-- | Amazon S3 location for your game build file, including bucket name and
--   key.
cbrsStorageLocation :: Lens' CreateBuildResponse (Maybe S3Location)

-- | This element is returned only when the operation is called without a
--   storage location. It contains credentials to use when you are
--   uploading a build file to an Amazon S3 bucket that is owned by Amazon
--   GameLift. Credentials have a limited life span. To refresh these
--   credentials, call <tt>RequestUploadCredentials</tt> .
cbrsUploadCredentials :: Lens' CreateBuildResponse (Maybe AWSCredentials)

-- | The newly created build record, including a unique build ID and
--   status.
cbrsBuild :: Lens' CreateBuildResponse (Maybe Build)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
cbrsResponseStatus :: Lens' CreateBuildResponse Int
instance GHC.Generics.Generic Network.AWS.GameLift.CreateBuild.CreateBuildResponse
instance Data.Data.Data Network.AWS.GameLift.CreateBuild.CreateBuildResponse
instance GHC.Show.Show Network.AWS.GameLift.CreateBuild.CreateBuildResponse
instance GHC.Classes.Eq Network.AWS.GameLift.CreateBuild.CreateBuildResponse
instance GHC.Generics.Generic Network.AWS.GameLift.CreateBuild.CreateBuild
instance Data.Data.Data Network.AWS.GameLift.CreateBuild.CreateBuild
instance GHC.Show.Show Network.AWS.GameLift.CreateBuild.CreateBuild
instance GHC.Read.Read Network.AWS.GameLift.CreateBuild.CreateBuild
instance GHC.Classes.Eq Network.AWS.GameLift.CreateBuild.CreateBuild
instance Network.AWS.Types.AWSRequest Network.AWS.GameLift.CreateBuild.CreateBuild
instance Control.DeepSeq.NFData Network.AWS.GameLift.CreateBuild.CreateBuildResponse
instance Data.Hashable.Class.Hashable Network.AWS.GameLift.CreateBuild.CreateBuild
instance Control.DeepSeq.NFData Network.AWS.GameLift.CreateBuild.CreateBuild
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.GameLift.CreateBuild.CreateBuild
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.GameLift.CreateBuild.CreateBuild
instance Network.AWS.Data.Path.ToPath Network.AWS.GameLift.CreateBuild.CreateBuild
instance Network.AWS.Data.Query.ToQuery Network.AWS.GameLift.CreateBuild.CreateBuild


-- | Creates an alias for a fleet. In most situations, you can use an alias
--   ID in place of a fleet ID. By using a fleet alias instead of a
--   specific fleet ID, you can switch gameplay and players to a new fleet
--   without changing your game client or other game components. For
--   example, for games in production, using an alias allows you to
--   seamlessly redirect your player base to a new game server update.
--   
--   Amazon GameLift supports two types of routing strategies for aliases:
--   simple and terminal. A simple alias points to an active fleet. A
--   terminal alias is used to display messaging or link to a URL instead
--   of routing players to an active fleet. For example, you might use a
--   terminal alias when a game version is no longer supported and you want
--   to direct players to an upgrade site.
--   
--   To create a fleet alias, specify an alias name, routing strategy, and
--   optional description. Each simple alias can point to only one fleet,
--   but a fleet can have multiple aliases. If successful, a new alias
--   record is returned, including an alias ID, which you can reference
--   when creating a game session. You can reassign an alias to another
--   fleet by calling <tt>UpdateAlias</tt> .
--   
--   Alias-related operations include:
--   
--   <ul>
--   <li><a>CreateAlias</a></li>
--   <li><tt>ListAliases</tt></li>
--   <li><tt>DescribeAlias</tt></li>
--   <li><tt>UpdateAlias</tt></li>
--   <li><tt>DeleteAlias</tt></li>
--   <li><tt>ResolveAlias</tt></li>
--   </ul>
module Network.AWS.GameLift.CreateAlias

-- | Creates a value of <a>CreateAlias</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>caDescription</a> - Human-readable description of an
--   alias.</li>
--   <li><a>caName</a> - Descriptive label that is associated with an
--   alias. Alias names do not need to be unique.</li>
--   <li><a>caRoutingStrategy</a> - Object that specifies the fleet and
--   routing type to use for the alias.</li>
--   </ul>
createAlias :: Text -> RoutingStrategy -> CreateAlias

-- | Represents the input for a request action.
--   
--   <i>See:</i> <a>createAlias</a> smart constructor.
data CreateAlias

-- | Human-readable description of an alias.
caDescription :: Lens' CreateAlias (Maybe Text)

-- | Descriptive label that is associated with an alias. Alias names do not
--   need to be unique.
caName :: Lens' CreateAlias Text

-- | Object that specifies the fleet and routing type to use for the alias.
caRoutingStrategy :: Lens' CreateAlias RoutingStrategy

-- | Creates a value of <a>CreateAliasResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>carsAlias</a> - Object that describes the newly created alias
--   record.</li>
--   <li><a>carsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createAliasResponse :: Int -> CreateAliasResponse

-- | Represents the returned data in response to a request action.
--   
--   <i>See:</i> <a>createAliasResponse</a> smart constructor.
data CreateAliasResponse

-- | Object that describes the newly created alias record.
carsAlias :: Lens' CreateAliasResponse (Maybe Alias)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
carsResponseStatus :: Lens' CreateAliasResponse Int
instance GHC.Generics.Generic Network.AWS.GameLift.CreateAlias.CreateAliasResponse
instance Data.Data.Data Network.AWS.GameLift.CreateAlias.CreateAliasResponse
instance GHC.Show.Show Network.AWS.GameLift.CreateAlias.CreateAliasResponse
instance GHC.Read.Read Network.AWS.GameLift.CreateAlias.CreateAliasResponse
instance GHC.Classes.Eq Network.AWS.GameLift.CreateAlias.CreateAliasResponse
instance GHC.Generics.Generic Network.AWS.GameLift.CreateAlias.CreateAlias
instance Data.Data.Data Network.AWS.GameLift.CreateAlias.CreateAlias
instance GHC.Show.Show Network.AWS.GameLift.CreateAlias.CreateAlias
instance GHC.Read.Read Network.AWS.GameLift.CreateAlias.CreateAlias
instance GHC.Classes.Eq Network.AWS.GameLift.CreateAlias.CreateAlias
instance Network.AWS.Types.AWSRequest Network.AWS.GameLift.CreateAlias.CreateAlias
instance Control.DeepSeq.NFData Network.AWS.GameLift.CreateAlias.CreateAliasResponse
instance Data.Hashable.Class.Hashable Network.AWS.GameLift.CreateAlias.CreateAlias
instance Control.DeepSeq.NFData Network.AWS.GameLift.CreateAlias.CreateAlias
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.GameLift.CreateAlias.CreateAlias
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.GameLift.CreateAlias.CreateAlias
instance Network.AWS.Data.Path.ToPath Network.AWS.GameLift.CreateAlias.CreateAlias
instance Network.AWS.Data.Query.ToQuery Network.AWS.GameLift.CreateAlias.CreateAlias


-- | Registers a player's acceptance or rejection of a proposed FlexMatch
--   match. A matchmaking configuration may require player acceptance; if
--   so, then matches built with that configuration cannot be completed
--   unless all players accept the proposed match within a specified time
--   limit.
--   
--   When FlexMatch builds a match, all the matchmaking tickets involved in
--   the proposed match are placed into status <tt>REQUIRES_ACCEPTANCE</tt>
--   . This is a trigger for your game to get acceptance from all players
--   in the ticket. Acceptances are only valid for tickets when they are in
--   this status; all other acceptances result in an error.
--   
--   To register acceptance, specify the ticket ID, a response, and one or
--   more players. Once all players have registered acceptance, the
--   matchmaking tickets advance to status <tt>PLACING</tt> , where a new
--   game session is created for the match.
--   
--   If any player rejects the match, or if acceptances are not received
--   before a specified timeout, the proposed match is dropped. The
--   matchmaking tickets are then handled in one of two ways: For tickets
--   where all players accepted the match, the ticket status is returned to
--   <tt>SEARCHING</tt> to find a new match. For tickets where one or more
--   players failed to accept the match, the ticket status is set to
--   <tt>FAILED</tt> , and processing is terminated. A new matchmaking
--   request for these players can be submitted as needed.
--   
--   Matchmaking-related operations include:
--   
--   <ul>
--   <li><tt>StartMatchmaking</tt></li>
--   <li><tt>DescribeMatchmaking</tt></li>
--   <li><tt>StopMatchmaking</tt></li>
--   <li><a>AcceptMatch</a></li>
--   <li><tt>StartMatchBackfill</tt></li>
--   </ul>
module Network.AWS.GameLift.AcceptMatch

-- | Creates a value of <a>AcceptMatch</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>amTicketId</a> - Unique identifier for a matchmaking ticket.
--   The ticket must be in status <tt>REQUIRES_ACCEPTANCE</tt> ; otherwise
--   this request will fail.</li>
--   <li><a>amPlayerIds</a> - Unique identifier for a player delivering the
--   response. This parameter can include one or multiple player IDs.</li>
--   <li><a>amAcceptanceType</a> - Player response to the proposed
--   match.</li>
--   </ul>
acceptMatch :: Text -> AcceptanceType -> AcceptMatch

-- | Represents the input for a request action.
--   
--   <i>See:</i> <a>acceptMatch</a> smart constructor.
data AcceptMatch

-- | Unique identifier for a matchmaking ticket. The ticket must be in
--   status <tt>REQUIRES_ACCEPTANCE</tt> ; otherwise this request will
--   fail.
amTicketId :: Lens' AcceptMatch Text

-- | Unique identifier for a player delivering the response. This parameter
--   can include one or multiple player IDs.
amPlayerIds :: Lens' AcceptMatch [Text]

-- | Player response to the proposed match.
amAcceptanceType :: Lens' AcceptMatch AcceptanceType

-- | Creates a value of <a>AcceptMatchResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>amrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
acceptMatchResponse :: Int -> AcceptMatchResponse

-- | <i>See:</i> <a>acceptMatchResponse</a> smart constructor.
data AcceptMatchResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
amrsResponseStatus :: Lens' AcceptMatchResponse Int
instance GHC.Generics.Generic Network.AWS.GameLift.AcceptMatch.AcceptMatchResponse
instance Data.Data.Data Network.AWS.GameLift.AcceptMatch.AcceptMatchResponse
instance GHC.Show.Show Network.AWS.GameLift.AcceptMatch.AcceptMatchResponse
instance GHC.Read.Read Network.AWS.GameLift.AcceptMatch.AcceptMatchResponse
instance GHC.Classes.Eq Network.AWS.GameLift.AcceptMatch.AcceptMatchResponse
instance GHC.Generics.Generic Network.AWS.GameLift.AcceptMatch.AcceptMatch
instance Data.Data.Data Network.AWS.GameLift.AcceptMatch.AcceptMatch
instance GHC.Show.Show Network.AWS.GameLift.AcceptMatch.AcceptMatch
instance GHC.Read.Read Network.AWS.GameLift.AcceptMatch.AcceptMatch
instance GHC.Classes.Eq Network.AWS.GameLift.AcceptMatch.AcceptMatch
instance Network.AWS.Types.AWSRequest Network.AWS.GameLift.AcceptMatch.AcceptMatch
instance Control.DeepSeq.NFData Network.AWS.GameLift.AcceptMatch.AcceptMatchResponse
instance Data.Hashable.Class.Hashable Network.AWS.GameLift.AcceptMatch.AcceptMatch
instance Control.DeepSeq.NFData Network.AWS.GameLift.AcceptMatch.AcceptMatch
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.GameLift.AcceptMatch.AcceptMatch
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.GameLift.AcceptMatch.AcceptMatch
instance Network.AWS.Data.Path.ToPath Network.AWS.GameLift.AcceptMatch.AcceptMatch
instance Network.AWS.Data.Query.ToQuery Network.AWS.GameLift.AcceptMatch.AcceptMatch


-- | Updates properties for an alias. To update properties, specify the
--   alias ID to be updated and provide the information to be changed. To
--   reassign an alias to another fleet, provide an updated routing
--   strategy. If successful, the updated alias record is returned.
--   
--   Alias-related operations include:
--   
--   <ul>
--   <li><tt>CreateAlias</tt></li>
--   <li><tt>ListAliases</tt></li>
--   <li><tt>DescribeAlias</tt></li>
--   <li><a>UpdateAlias</a></li>
--   <li><tt>DeleteAlias</tt></li>
--   <li><tt>ResolveAlias</tt></li>
--   </ul>
module Network.AWS.GameLift.UpdateAlias

-- | Creates a value of <a>UpdateAlias</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>uaRoutingStrategy</a> - Object that specifies the fleet and
--   routing type to use for the alias.</li>
--   <li><a>uaName</a> - Descriptive label that is associated with an
--   alias. Alias names do not need to be unique.</li>
--   <li><a>uaDescription</a> - Human-readable description of an
--   alias.</li>
--   <li><a>uaAliasId</a> - Unique identifier for a fleet alias. Specify
--   the alias you want to update.</li>
--   </ul>
updateAlias :: Text -> UpdateAlias

-- | Represents the input for a request action.
--   
--   <i>See:</i> <a>updateAlias</a> smart constructor.
data UpdateAlias

-- | Object that specifies the fleet and routing type to use for the alias.
uaRoutingStrategy :: Lens' UpdateAlias (Maybe RoutingStrategy)

-- | Descriptive label that is associated with an alias. Alias names do not
--   need to be unique.
uaName :: Lens' UpdateAlias (Maybe Text)

-- | Human-readable description of an alias.
uaDescription :: Lens' UpdateAlias (Maybe Text)

-- | Unique identifier for a fleet alias. Specify the alias you want to
--   update.
uaAliasId :: Lens' UpdateAlias Text

-- | Creates a value of <a>UpdateAliasResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>uarsAlias</a> - Object that contains the updated alias
--   configuration.</li>
--   <li><a>uarsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
updateAliasResponse :: Int -> UpdateAliasResponse

-- | Represents the returned data in response to a request action.
--   
--   <i>See:</i> <a>updateAliasResponse</a> smart constructor.
data UpdateAliasResponse

-- | Object that contains the updated alias configuration.
uarsAlias :: Lens' UpdateAliasResponse (Maybe Alias)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
uarsResponseStatus :: Lens' UpdateAliasResponse Int
instance GHC.Generics.Generic Network.AWS.GameLift.UpdateAlias.UpdateAliasResponse
instance Data.Data.Data Network.AWS.GameLift.UpdateAlias.UpdateAliasResponse
instance GHC.Show.Show Network.AWS.GameLift.UpdateAlias.UpdateAliasResponse
instance GHC.Read.Read Network.AWS.GameLift.UpdateAlias.UpdateAliasResponse
instance GHC.Classes.Eq Network.AWS.GameLift.UpdateAlias.UpdateAliasResponse
instance GHC.Generics.Generic Network.AWS.GameLift.UpdateAlias.UpdateAlias
instance Data.Data.Data Network.AWS.GameLift.UpdateAlias.UpdateAlias
instance GHC.Show.Show Network.AWS.GameLift.UpdateAlias.UpdateAlias
instance GHC.Read.Read Network.AWS.GameLift.UpdateAlias.UpdateAlias
instance GHC.Classes.Eq Network.AWS.GameLift.UpdateAlias.UpdateAlias
instance Network.AWS.Types.AWSRequest Network.AWS.GameLift.UpdateAlias.UpdateAlias
instance Control.DeepSeq.NFData Network.AWS.GameLift.UpdateAlias.UpdateAliasResponse
instance Data.Hashable.Class.Hashable Network.AWS.GameLift.UpdateAlias.UpdateAlias
instance Control.DeepSeq.NFData Network.AWS.GameLift.UpdateAlias.UpdateAlias
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.GameLift.UpdateAlias.UpdateAlias
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.GameLift.UpdateAlias.UpdateAlias
instance Network.AWS.Data.Path.ToPath Network.AWS.GameLift.UpdateAlias.UpdateAlias
instance Network.AWS.Data.Query.ToQuery Network.AWS.GameLift.UpdateAlias.UpdateAlias


-- | Updates metadata in a build record, including the build name and
--   version. To update the metadata, specify the build ID to update and
--   provide the new values. If successful, a build object containing the
--   updated metadata is returned.
--   
--   Build-related operations include:
--   
--   <ul>
--   <li><tt>CreateBuild</tt></li>
--   <li><tt>ListBuilds</tt></li>
--   <li><tt>DescribeBuild</tt></li>
--   <li><a>UpdateBuild</a></li>
--   <li><tt>DeleteBuild</tt></li>
--   </ul>
module Network.AWS.GameLift.UpdateBuild

-- | Creates a value of <a>UpdateBuild</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ubName</a> - Descriptive label that is associated with a build.
--   Build names do not need to be unique.</li>
--   <li><a>ubVersion</a> - Version that is associated with this build.
--   Version strings do not need to be unique.</li>
--   <li><a>ubBuildId</a> - Unique identifier for a build to update.</li>
--   </ul>
updateBuild :: Text -> UpdateBuild

-- | Represents the input for a request action.
--   
--   <i>See:</i> <a>updateBuild</a> smart constructor.
data UpdateBuild

-- | Descriptive label that is associated with a build. Build names do not
--   need to be unique.
ubName :: Lens' UpdateBuild (Maybe Text)

-- | Version that is associated with this build. Version strings do not
--   need to be unique.
ubVersion :: Lens' UpdateBuild (Maybe Text)

-- | Unique identifier for a build to update.
ubBuildId :: Lens' UpdateBuild Text

-- | Creates a value of <a>UpdateBuildResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ubrsBuild</a> - Object that contains the updated build
--   record.</li>
--   <li><a>ubrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
updateBuildResponse :: Int -> UpdateBuildResponse

-- | Represents the returned data in response to a request action.
--   
--   <i>See:</i> <a>updateBuildResponse</a> smart constructor.
data UpdateBuildResponse

-- | Object that contains the updated build record.
ubrsBuild :: Lens' UpdateBuildResponse (Maybe Build)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
ubrsResponseStatus :: Lens' UpdateBuildResponse Int
instance GHC.Generics.Generic Network.AWS.GameLift.UpdateBuild.UpdateBuildResponse
instance Data.Data.Data Network.AWS.GameLift.UpdateBuild.UpdateBuildResponse
instance GHC.Show.Show Network.AWS.GameLift.UpdateBuild.UpdateBuildResponse
instance GHC.Read.Read Network.AWS.GameLift.UpdateBuild.UpdateBuildResponse
instance GHC.Classes.Eq Network.AWS.GameLift.UpdateBuild.UpdateBuildResponse
instance GHC.Generics.Generic Network.AWS.GameLift.UpdateBuild.UpdateBuild
instance Data.Data.Data Network.AWS.GameLift.UpdateBuild.UpdateBuild
instance GHC.Show.Show Network.AWS.GameLift.UpdateBuild.UpdateBuild
instance GHC.Read.Read Network.AWS.GameLift.UpdateBuild.UpdateBuild
instance GHC.Classes.Eq Network.AWS.GameLift.UpdateBuild.UpdateBuild
instance Network.AWS.Types.AWSRequest Network.AWS.GameLift.UpdateBuild.UpdateBuild
instance Control.DeepSeq.NFData Network.AWS.GameLift.UpdateBuild.UpdateBuildResponse
instance Data.Hashable.Class.Hashable Network.AWS.GameLift.UpdateBuild.UpdateBuild
instance Control.DeepSeq.NFData Network.AWS.GameLift.UpdateBuild.UpdateBuild
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.GameLift.UpdateBuild.UpdateBuild
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.GameLift.UpdateBuild.UpdateBuild
instance Network.AWS.Data.Path.ToPath Network.AWS.GameLift.UpdateBuild.UpdateBuild
instance Network.AWS.Data.Query.ToQuery Network.AWS.GameLift.UpdateBuild.UpdateBuild


-- | Updates fleet properties, including name and description, for a fleet.
--   To update metadata, specify the fleet ID and the property values that
--   you want to change. If successful, the fleet ID for the updated fleet
--   is returned.
--   
--   Fleet-related operations include:
--   
--   <ul>
--   <li><tt>CreateFleet</tt></li>
--   <li><tt>ListFleets</tt></li>
--   <li><tt>DeleteFleet</tt></li>
--   <li>Describe fleets:</li>
--   <li><tt>DescribeFleetAttributes</tt></li>
--   <li><tt>DescribeFleetCapacity</tt></li>
--   <li><tt>DescribeFleetPortSettings</tt></li>
--   <li><tt>DescribeFleetUtilization</tt></li>
--   <li><tt>DescribeRuntimeConfiguration</tt></li>
--   <li><tt>DescribeEC2InstanceLimits</tt></li>
--   <li><tt>DescribeFleetEvents</tt></li>
--   <li>Update fleets:</li>
--   <li><a>UpdateFleetAttributes</a></li>
--   <li><tt>UpdateFleetCapacity</tt></li>
--   <li><tt>UpdateFleetPortSettings</tt></li>
--   <li><tt>UpdateRuntimeConfiguration</tt></li>
--   <li>Manage fleet actions:</li>
--   <li><tt>StartFleetActions</tt></li>
--   <li><tt>StopFleetActions</tt></li>
--   </ul>
module Network.AWS.GameLift.UpdateFleetAttributes

-- | Creates a value of <a>UpdateFleetAttributes</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ufaNewGameSessionProtectionPolicy</a> - Game session protection
--   policy to apply to all new instances created in this fleet. Instances
--   that already exist are not affected. You can set protection for
--   individual instances using <tt>UpdateGameSession</tt> . *
--   <b>NoProtection</b> -- The game session can be terminated during a
--   scale-down event. * <b>FullProtection</b> -- If the game session is in
--   an <tt>ACTIVE</tt> status, it cannot be terminated during a scale-down
--   event.</li>
--   <li><a>ufaName</a> - Descriptive label that is associated with a
--   fleet. Fleet names do not need to be unique.</li>
--   <li><a>ufaMetricGroups</a> - Names of metric groups to include this
--   fleet in. Amazon CloudWatch uses a fleet metric group is to aggregate
--   metrics from multiple fleets. Use an existing metric group name to add
--   this fleet to the group. Or use a new name to create a new metric
--   group. A fleet can only be included in one metric group at a
--   time.</li>
--   <li><a>ufaDescription</a> - Human-readable description of a
--   fleet.</li>
--   <li><a>ufaResourceCreationLimitPolicy</a> - Policy that limits the
--   number of game sessions an individual player can create over a span of
--   time.</li>
--   <li><a>ufaFleetId</a> - Unique identifier for a fleet to update
--   attribute metadata for.</li>
--   </ul>
updateFleetAttributes :: Text -> UpdateFleetAttributes

-- | Represents the input for a request action.
--   
--   <i>See:</i> <a>updateFleetAttributes</a> smart constructor.
data UpdateFleetAttributes

-- | Game session protection policy to apply to all new instances created
--   in this fleet. Instances that already exist are not affected. You can
--   set protection for individual instances using
--   <tt>UpdateGameSession</tt> . * <b>NoProtection</b> -- The game session
--   can be terminated during a scale-down event. * <b>FullProtection</b>
--   -- If the game session is in an <tt>ACTIVE</tt> status, it cannot be
--   terminated during a scale-down event.
ufaNewGameSessionProtectionPolicy :: Lens' UpdateFleetAttributes (Maybe ProtectionPolicy)

-- | Descriptive label that is associated with a fleet. Fleet names do not
--   need to be unique.
ufaName :: Lens' UpdateFleetAttributes (Maybe Text)

-- | Names of metric groups to include this fleet in. Amazon CloudWatch
--   uses a fleet metric group is to aggregate metrics from multiple
--   fleets. Use an existing metric group name to add this fleet to the
--   group. Or use a new name to create a new metric group. A fleet can
--   only be included in one metric group at a time.
ufaMetricGroups :: Lens' UpdateFleetAttributes [Text]

-- | Human-readable description of a fleet.
ufaDescription :: Lens' UpdateFleetAttributes (Maybe Text)

-- | Policy that limits the number of game sessions an individual player
--   can create over a span of time.
ufaResourceCreationLimitPolicy :: Lens' UpdateFleetAttributes (Maybe ResourceCreationLimitPolicy)

-- | Unique identifier for a fleet to update attribute metadata for.
ufaFleetId :: Lens' UpdateFleetAttributes Text

-- | Creates a value of <a>UpdateFleetAttributesResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ufarsFleetId</a> - Unique identifier for a fleet that was
--   updated.</li>
--   <li><a>ufarsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
updateFleetAttributesResponse :: Int -> UpdateFleetAttributesResponse

-- | Represents the returned data in response to a request action.
--   
--   <i>See:</i> <a>updateFleetAttributesResponse</a> smart constructor.
data UpdateFleetAttributesResponse

-- | Unique identifier for a fleet that was updated.
ufarsFleetId :: Lens' UpdateFleetAttributesResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
ufarsResponseStatus :: Lens' UpdateFleetAttributesResponse Int
instance GHC.Generics.Generic Network.AWS.GameLift.UpdateFleetAttributes.UpdateFleetAttributesResponse
instance Data.Data.Data Network.AWS.GameLift.UpdateFleetAttributes.UpdateFleetAttributesResponse
instance GHC.Show.Show Network.AWS.GameLift.UpdateFleetAttributes.UpdateFleetAttributesResponse
instance GHC.Read.Read Network.AWS.GameLift.UpdateFleetAttributes.UpdateFleetAttributesResponse
instance GHC.Classes.Eq Network.AWS.GameLift.UpdateFleetAttributes.UpdateFleetAttributesResponse
instance GHC.Generics.Generic Network.AWS.GameLift.UpdateFleetAttributes.UpdateFleetAttributes
instance Data.Data.Data Network.AWS.GameLift.UpdateFleetAttributes.UpdateFleetAttributes
instance GHC.Show.Show Network.AWS.GameLift.UpdateFleetAttributes.UpdateFleetAttributes
instance GHC.Read.Read Network.AWS.GameLift.UpdateFleetAttributes.UpdateFleetAttributes
instance GHC.Classes.Eq Network.AWS.GameLift.UpdateFleetAttributes.UpdateFleetAttributes
instance Network.AWS.Types.AWSRequest Network.AWS.GameLift.UpdateFleetAttributes.UpdateFleetAttributes
instance Control.DeepSeq.NFData Network.AWS.GameLift.UpdateFleetAttributes.UpdateFleetAttributesResponse
instance Data.Hashable.Class.Hashable Network.AWS.GameLift.UpdateFleetAttributes.UpdateFleetAttributes
instance Control.DeepSeq.NFData Network.AWS.GameLift.UpdateFleetAttributes.UpdateFleetAttributes
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.GameLift.UpdateFleetAttributes.UpdateFleetAttributes
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.GameLift.UpdateFleetAttributes.UpdateFleetAttributes
instance Network.AWS.Data.Path.ToPath Network.AWS.GameLift.UpdateFleetAttributes.UpdateFleetAttributes
instance Network.AWS.Data.Query.ToQuery Network.AWS.GameLift.UpdateFleetAttributes.UpdateFleetAttributes


-- | Updates capacity settings for a fleet. Use this action to specify the
--   number of EC2 instances (hosts) that you want this fleet to contain.
--   Before calling this action, you may want to call
--   <tt>DescribeEC2InstanceLimits</tt> to get the maximum capacity based
--   on the fleet's EC2 instance type.
--   
--   Specify minimum and maximum number of instances. Amazon GameLift will
--   not change fleet capacity to values fall outside of this range. This
--   is particularly important when using auto-scaling (see
--   <tt>PutScalingPolicy</tt> ) to allow capacity to adjust based on
--   player demand while imposing limits on automatic adjustments.
--   
--   To update fleet capacity, specify the fleet ID and the number of
--   instances you want the fleet to host. If successful, Amazon GameLift
--   starts or terminates instances so that the fleet's active instance
--   count matches the desired instance count. You can view a fleet's
--   current capacity information by calling <tt>DescribeFleetCapacity</tt>
--   . If the desired instance count is higher than the instance type's
--   limit, the "Limit Exceeded" exception occurs.
--   
--   Fleet-related operations include:
--   
--   <ul>
--   <li><tt>CreateFleet</tt></li>
--   <li><tt>ListFleets</tt></li>
--   <li><tt>DeleteFleet</tt></li>
--   <li>Describe fleets:</li>
--   <li><tt>DescribeFleetAttributes</tt></li>
--   <li><tt>DescribeFleetCapacity</tt></li>
--   <li><tt>DescribeFleetPortSettings</tt></li>
--   <li><tt>DescribeFleetUtilization</tt></li>
--   <li><tt>DescribeRuntimeConfiguration</tt></li>
--   <li><tt>DescribeEC2InstanceLimits</tt></li>
--   <li><tt>DescribeFleetEvents</tt></li>
--   <li>Update fleets:</li>
--   <li><tt>UpdateFleetAttributes</tt></li>
--   <li><a>UpdateFleetCapacity</a></li>
--   <li><tt>UpdateFleetPortSettings</tt></li>
--   <li><tt>UpdateRuntimeConfiguration</tt></li>
--   <li>Manage fleet actions:</li>
--   <li><tt>StartFleetActions</tt></li>
--   <li><tt>StopFleetActions</tt></li>
--   </ul>
module Network.AWS.GameLift.UpdateFleetCapacity

-- | Creates a value of <a>UpdateFleetCapacity</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ufcMaxSize</a> - Maximum value allowed for the fleet's instance
--   count. Default if not set is 1.</li>
--   <li><a>ufcMinSize</a> - Minimum value allowed for the fleet's instance
--   count. Default if not set is 0.</li>
--   <li><a>ufcDesiredInstances</a> - Number of EC2 instances you want this
--   fleet to host.</li>
--   <li><a>ufcFleetId</a> - Unique identifier for a fleet to update
--   capacity for.</li>
--   </ul>
updateFleetCapacity :: Text -> UpdateFleetCapacity

-- | Represents the input for a request action.
--   
--   <i>See:</i> <a>updateFleetCapacity</a> smart constructor.
data UpdateFleetCapacity

-- | Maximum value allowed for the fleet's instance count. Default if not
--   set is 1.
ufcMaxSize :: Lens' UpdateFleetCapacity (Maybe Natural)

-- | Minimum value allowed for the fleet's instance count. Default if not
--   set is 0.
ufcMinSize :: Lens' UpdateFleetCapacity (Maybe Natural)

-- | Number of EC2 instances you want this fleet to host.
ufcDesiredInstances :: Lens' UpdateFleetCapacity (Maybe Natural)

-- | Unique identifier for a fleet to update capacity for.
ufcFleetId :: Lens' UpdateFleetCapacity Text

-- | Creates a value of <a>UpdateFleetCapacityResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ufcrsFleetId</a> - Unique identifier for a fleet that was
--   updated.</li>
--   <li><a>ufcrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
updateFleetCapacityResponse :: Int -> UpdateFleetCapacityResponse

-- | Represents the returned data in response to a request action.
--   
--   <i>See:</i> <a>updateFleetCapacityResponse</a> smart constructor.
data UpdateFleetCapacityResponse

-- | Unique identifier for a fleet that was updated.
ufcrsFleetId :: Lens' UpdateFleetCapacityResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
ufcrsResponseStatus :: Lens' UpdateFleetCapacityResponse Int
instance GHC.Generics.Generic Network.AWS.GameLift.UpdateFleetCapacity.UpdateFleetCapacityResponse
instance Data.Data.Data Network.AWS.GameLift.UpdateFleetCapacity.UpdateFleetCapacityResponse
instance GHC.Show.Show Network.AWS.GameLift.UpdateFleetCapacity.UpdateFleetCapacityResponse
instance GHC.Read.Read Network.AWS.GameLift.UpdateFleetCapacity.UpdateFleetCapacityResponse
instance GHC.Classes.Eq Network.AWS.GameLift.UpdateFleetCapacity.UpdateFleetCapacityResponse
instance GHC.Generics.Generic Network.AWS.GameLift.UpdateFleetCapacity.UpdateFleetCapacity
instance Data.Data.Data Network.AWS.GameLift.UpdateFleetCapacity.UpdateFleetCapacity
instance GHC.Show.Show Network.AWS.GameLift.UpdateFleetCapacity.UpdateFleetCapacity
instance GHC.Read.Read Network.AWS.GameLift.UpdateFleetCapacity.UpdateFleetCapacity
instance GHC.Classes.Eq Network.AWS.GameLift.UpdateFleetCapacity.UpdateFleetCapacity
instance Network.AWS.Types.AWSRequest Network.AWS.GameLift.UpdateFleetCapacity.UpdateFleetCapacity
instance Control.DeepSeq.NFData Network.AWS.GameLift.UpdateFleetCapacity.UpdateFleetCapacityResponse
instance Data.Hashable.Class.Hashable Network.AWS.GameLift.UpdateFleetCapacity.UpdateFleetCapacity
instance Control.DeepSeq.NFData Network.AWS.GameLift.UpdateFleetCapacity.UpdateFleetCapacity
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.GameLift.UpdateFleetCapacity.UpdateFleetCapacity
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.GameLift.UpdateFleetCapacity.UpdateFleetCapacity
instance Network.AWS.Data.Path.ToPath Network.AWS.GameLift.UpdateFleetCapacity.UpdateFleetCapacity
instance Network.AWS.Data.Query.ToQuery Network.AWS.GameLift.UpdateFleetCapacity.UpdateFleetCapacity


-- | Updates port settings for a fleet. To update settings, specify the
--   fleet ID to be updated and list the permissions you want to update.
--   List the permissions you want to add in
--   <tt>InboundPermissionAuthorizations</tt> , and permissions you want to
--   remove in <tt>InboundPermissionRevocations</tt> . Permissions to be
--   removed must match existing fleet permissions. If successful, the
--   fleet ID for the updated fleet is returned.
--   
--   Fleet-related operations include:
--   
--   <ul>
--   <li><tt>CreateFleet</tt></li>
--   <li><tt>ListFleets</tt></li>
--   <li><tt>DeleteFleet</tt></li>
--   <li>Describe fleets:</li>
--   <li><tt>DescribeFleetAttributes</tt></li>
--   <li><tt>DescribeFleetCapacity</tt></li>
--   <li><tt>DescribeFleetPortSettings</tt></li>
--   <li><tt>DescribeFleetUtilization</tt></li>
--   <li><tt>DescribeRuntimeConfiguration</tt></li>
--   <li><tt>DescribeEC2InstanceLimits</tt></li>
--   <li><tt>DescribeFleetEvents</tt></li>
--   <li>Update fleets:</li>
--   <li><tt>UpdateFleetAttributes</tt></li>
--   <li><tt>UpdateFleetCapacity</tt></li>
--   <li><a>UpdateFleetPortSettings</a></li>
--   <li><tt>UpdateRuntimeConfiguration</tt></li>
--   <li>Manage fleet actions:</li>
--   <li><tt>StartFleetActions</tt></li>
--   <li><tt>StopFleetActions</tt></li>
--   </ul>
module Network.AWS.GameLift.UpdateFleetPortSettings

-- | Creates a value of <a>UpdateFleetPortSettings</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ufpsInboundPermissionRevocations</a> - Collection of port
--   settings to be removed from the fleet record.</li>
--   <li><a>ufpsInboundPermissionAuthorizations</a> - Collection of port
--   settings to be added to the fleet record.</li>
--   <li><a>ufpsFleetId</a> - Unique identifier for a fleet to update port
--   settings for.</li>
--   </ul>
updateFleetPortSettings :: Text -> UpdateFleetPortSettings

-- | Represents the input for a request action.
--   
--   <i>See:</i> <a>updateFleetPortSettings</a> smart constructor.
data UpdateFleetPortSettings

-- | Collection of port settings to be removed from the fleet record.
ufpsInboundPermissionRevocations :: Lens' UpdateFleetPortSettings [IPPermission]

-- | Collection of port settings to be added to the fleet record.
ufpsInboundPermissionAuthorizations :: Lens' UpdateFleetPortSettings [IPPermission]

-- | Unique identifier for a fleet to update port settings for.
ufpsFleetId :: Lens' UpdateFleetPortSettings Text

-- | Creates a value of <a>UpdateFleetPortSettingsResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ufpsrsFleetId</a> - Unique identifier for a fleet that was
--   updated.</li>
--   <li><a>ufpsrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
updateFleetPortSettingsResponse :: Int -> UpdateFleetPortSettingsResponse

-- | Represents the returned data in response to a request action.
--   
--   <i>See:</i> <a>updateFleetPortSettingsResponse</a> smart constructor.
data UpdateFleetPortSettingsResponse

-- | Unique identifier for a fleet that was updated.
ufpsrsFleetId :: Lens' UpdateFleetPortSettingsResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
ufpsrsResponseStatus :: Lens' UpdateFleetPortSettingsResponse Int
instance GHC.Generics.Generic Network.AWS.GameLift.UpdateFleetPortSettings.UpdateFleetPortSettingsResponse
instance Data.Data.Data Network.AWS.GameLift.UpdateFleetPortSettings.UpdateFleetPortSettingsResponse
instance GHC.Show.Show Network.AWS.GameLift.UpdateFleetPortSettings.UpdateFleetPortSettingsResponse
instance GHC.Read.Read Network.AWS.GameLift.UpdateFleetPortSettings.UpdateFleetPortSettingsResponse
instance GHC.Classes.Eq Network.AWS.GameLift.UpdateFleetPortSettings.UpdateFleetPortSettingsResponse
instance GHC.Generics.Generic Network.AWS.GameLift.UpdateFleetPortSettings.UpdateFleetPortSettings
instance Data.Data.Data Network.AWS.GameLift.UpdateFleetPortSettings.UpdateFleetPortSettings
instance GHC.Show.Show Network.AWS.GameLift.UpdateFleetPortSettings.UpdateFleetPortSettings
instance GHC.Read.Read Network.AWS.GameLift.UpdateFleetPortSettings.UpdateFleetPortSettings
instance GHC.Classes.Eq Network.AWS.GameLift.UpdateFleetPortSettings.UpdateFleetPortSettings
instance Network.AWS.Types.AWSRequest Network.AWS.GameLift.UpdateFleetPortSettings.UpdateFleetPortSettings
instance Control.DeepSeq.NFData Network.AWS.GameLift.UpdateFleetPortSettings.UpdateFleetPortSettingsResponse
instance Data.Hashable.Class.Hashable Network.AWS.GameLift.UpdateFleetPortSettings.UpdateFleetPortSettings
instance Control.DeepSeq.NFData Network.AWS.GameLift.UpdateFleetPortSettings.UpdateFleetPortSettings
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.GameLift.UpdateFleetPortSettings.UpdateFleetPortSettings
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.GameLift.UpdateFleetPortSettings.UpdateFleetPortSettings
instance Network.AWS.Data.Path.ToPath Network.AWS.GameLift.UpdateFleetPortSettings.UpdateFleetPortSettings
instance Network.AWS.Data.Query.ToQuery Network.AWS.GameLift.UpdateFleetPortSettings.UpdateFleetPortSettings


-- | Updates game session properties. This includes the session name,
--   maximum player count, protection policy, which controls whether or not
--   an active game session can be terminated during a scale-down event,
--   and the player session creation policy, which controls whether or not
--   new players can join the session. To update a game session, specify
--   the game session ID and the values you want to change. If successful,
--   an updated <a>GameSession</a> object is returned.
--   
--   Game-session-related operations include:
--   
--   <ul>
--   <li><tt>CreateGameSession</tt></li>
--   <li><tt>DescribeGameSessions</tt></li>
--   <li><tt>DescribeGameSessionDetails</tt></li>
--   <li><tt>SearchGameSessions</tt></li>
--   <li><a>UpdateGameSession</a></li>
--   <li><tt>GetGameSessionLogUrl</tt></li>
--   <li>Game session placements</li>
--   <li><tt>StartGameSessionPlacement</tt></li>
--   <li><tt>DescribeGameSessionPlacement</tt></li>
--   <li><tt>StopGameSessionPlacement</tt></li>
--   </ul>
module Network.AWS.GameLift.UpdateGameSession

-- | Creates a value of <a>UpdateGameSession</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ugsMaximumPlayerSessionCount</a> - Maximum number of players
--   that can be connected simultaneously to the game session.</li>
--   <li><a>ugsPlayerSessionCreationPolicy</a> - Policy determining whether
--   or not the game session accepts new players.</li>
--   <li><a>ugsName</a> - Descriptive label that is associated with a game
--   session. Session names do not need to be unique.</li>
--   <li><a>ugsProtectionPolicy</a> - Game session protection policy to
--   apply to this game session only. * <b>NoProtection</b> -- The game
--   session can be terminated during a scale-down event. *
--   <b>FullProtection</b> -- If the game session is in an <tt>ACTIVE</tt>
--   status, it cannot be terminated during a scale-down event.</li>
--   <li><a>ugsGameSessionId</a> - Unique identifier for the game session
--   to update.</li>
--   </ul>
updateGameSession :: Text -> UpdateGameSession

-- | Represents the input for a request action.
--   
--   <i>See:</i> <a>updateGameSession</a> smart constructor.
data UpdateGameSession

-- | Maximum number of players that can be connected simultaneously to the
--   game session.
ugsMaximumPlayerSessionCount :: Lens' UpdateGameSession (Maybe Natural)

-- | Policy determining whether or not the game session accepts new
--   players.
ugsPlayerSessionCreationPolicy :: Lens' UpdateGameSession (Maybe PlayerSessionCreationPolicy)

-- | Descriptive label that is associated with a game session. Session
--   names do not need to be unique.
ugsName :: Lens' UpdateGameSession (Maybe Text)

-- | Game session protection policy to apply to this game session only. *
--   <b>NoProtection</b> -- The game session can be terminated during a
--   scale-down event. * <b>FullProtection</b> -- If the game session is in
--   an <tt>ACTIVE</tt> status, it cannot be terminated during a scale-down
--   event.
ugsProtectionPolicy :: Lens' UpdateGameSession (Maybe ProtectionPolicy)

-- | Unique identifier for the game session to update.
ugsGameSessionId :: Lens' UpdateGameSession Text

-- | Creates a value of <a>UpdateGameSessionResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ugsrsGameSession</a> - Object that contains the updated game
--   session metadata.</li>
--   <li><a>ugsrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
updateGameSessionResponse :: Int -> UpdateGameSessionResponse

-- | Represents the returned data in response to a request action.
--   
--   <i>See:</i> <a>updateGameSessionResponse</a> smart constructor.
data UpdateGameSessionResponse

-- | Object that contains the updated game session metadata.
ugsrsGameSession :: Lens' UpdateGameSessionResponse (Maybe GameSession)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
ugsrsResponseStatus :: Lens' UpdateGameSessionResponse Int
instance GHC.Generics.Generic Network.AWS.GameLift.UpdateGameSession.UpdateGameSessionResponse
instance Data.Data.Data Network.AWS.GameLift.UpdateGameSession.UpdateGameSessionResponse
instance GHC.Show.Show Network.AWS.GameLift.UpdateGameSession.UpdateGameSessionResponse
instance GHC.Read.Read Network.AWS.GameLift.UpdateGameSession.UpdateGameSessionResponse
instance GHC.Classes.Eq Network.AWS.GameLift.UpdateGameSession.UpdateGameSessionResponse
instance GHC.Generics.Generic Network.AWS.GameLift.UpdateGameSession.UpdateGameSession
instance Data.Data.Data Network.AWS.GameLift.UpdateGameSession.UpdateGameSession
instance GHC.Show.Show Network.AWS.GameLift.UpdateGameSession.UpdateGameSession
instance GHC.Read.Read Network.AWS.GameLift.UpdateGameSession.UpdateGameSession
instance GHC.Classes.Eq Network.AWS.GameLift.UpdateGameSession.UpdateGameSession
instance Network.AWS.Types.AWSRequest Network.AWS.GameLift.UpdateGameSession.UpdateGameSession
instance Control.DeepSeq.NFData Network.AWS.GameLift.UpdateGameSession.UpdateGameSessionResponse
instance Data.Hashable.Class.Hashable Network.AWS.GameLift.UpdateGameSession.UpdateGameSession
instance Control.DeepSeq.NFData Network.AWS.GameLift.UpdateGameSession.UpdateGameSession
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.GameLift.UpdateGameSession.UpdateGameSession
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.GameLift.UpdateGameSession.UpdateGameSession
instance Network.AWS.Data.Path.ToPath Network.AWS.GameLift.UpdateGameSession.UpdateGameSession
instance Network.AWS.Data.Query.ToQuery Network.AWS.GameLift.UpdateGameSession.UpdateGameSession


-- | Updates settings for a game session queue, which determines how new
--   game session requests in the queue are processed. To update settings,
--   specify the queue name to be updated and provide the new settings.
--   When updating destinations, provide a complete list of destinations.
--   
--   Queue-related operations include:
--   
--   <ul>
--   <li><tt>CreateGameSessionQueue</tt></li>
--   <li><tt>DescribeGameSessionQueues</tt></li>
--   <li><a>UpdateGameSessionQueue</a></li>
--   <li><tt>DeleteGameSessionQueue</tt></li>
--   </ul>
module Network.AWS.GameLift.UpdateGameSessionQueue

-- | Creates a value of <a>UpdateGameSessionQueue</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ugsqPlayerLatencyPolicies</a> - Collection of latency policies
--   to apply when processing game sessions placement requests with player
--   latency information. Multiple policies are evaluated in order of the
--   maximum latency value, starting with the lowest latency values. With
--   just one policy, it is enforced at the start of the game session
--   placement for the duration period. With multiple policies, each policy
--   is enforced consecutively for its duration period. For example, a
--   queue might enforce a 60-second policy followed by a 120-second
--   policy, and then no policy for the remainder of the placement. When
--   updating policies, provide a complete collection of policies.</li>
--   <li><a>ugsqTimeoutInSeconds</a> - Maximum time, in seconds, that a new
--   game session placement request remains in the queue. When a request
--   exceeds this time, the game session placement changes to a
--   <tt>TIMED_OUT</tt> status.</li>
--   <li><a>ugsqDestinations</a> - List of fleets that can be used to
--   fulfill game session placement requests in the queue. Fleets are
--   identified by either a fleet ARN or a fleet alias ARN. Destinations
--   are listed in default preference order. When updating this list,
--   provide a complete list of destinations.</li>
--   <li><a>ugsqName</a> - Descriptive label that is associated with game
--   session queue. Queue names must be unique within each region.</li>
--   </ul>
updateGameSessionQueue :: Text -> UpdateGameSessionQueue

-- | Represents the input for a request action.
--   
--   <i>See:</i> <a>updateGameSessionQueue</a> smart constructor.
data UpdateGameSessionQueue

-- | Collection of latency policies to apply when processing game sessions
--   placement requests with player latency information. Multiple policies
--   are evaluated in order of the maximum latency value, starting with the
--   lowest latency values. With just one policy, it is enforced at the
--   start of the game session placement for the duration period. With
--   multiple policies, each policy is enforced consecutively for its
--   duration period. For example, a queue might enforce a 60-second policy
--   followed by a 120-second policy, and then no policy for the remainder
--   of the placement. When updating policies, provide a complete
--   collection of policies.
ugsqPlayerLatencyPolicies :: Lens' UpdateGameSessionQueue [PlayerLatencyPolicy]

-- | Maximum time, in seconds, that a new game session placement request
--   remains in the queue. When a request exceeds this time, the game
--   session placement changes to a <tt>TIMED_OUT</tt> status.
ugsqTimeoutInSeconds :: Lens' UpdateGameSessionQueue (Maybe Natural)

-- | List of fleets that can be used to fulfill game session placement
--   requests in the queue. Fleets are identified by either a fleet ARN or
--   a fleet alias ARN. Destinations are listed in default preference
--   order. When updating this list, provide a complete list of
--   destinations.
ugsqDestinations :: Lens' UpdateGameSessionQueue [GameSessionQueueDestination]

-- | Descriptive label that is associated with game session queue. Queue
--   names must be unique within each region.
ugsqName :: Lens' UpdateGameSessionQueue Text

-- | Creates a value of <a>UpdateGameSessionQueueResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ugsqrsGameSessionQueue</a> - Object that describes the newly
--   updated game session queue.</li>
--   <li><a>ugsqrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
updateGameSessionQueueResponse :: Int -> UpdateGameSessionQueueResponse

-- | Represents the returned data in response to a request action.
--   
--   <i>See:</i> <a>updateGameSessionQueueResponse</a> smart constructor.
data UpdateGameSessionQueueResponse

-- | Object that describes the newly updated game session queue.
ugsqrsGameSessionQueue :: Lens' UpdateGameSessionQueueResponse (Maybe GameSessionQueue)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
ugsqrsResponseStatus :: Lens' UpdateGameSessionQueueResponse Int
instance GHC.Generics.Generic Network.AWS.GameLift.UpdateGameSessionQueue.UpdateGameSessionQueueResponse
instance Data.Data.Data Network.AWS.GameLift.UpdateGameSessionQueue.UpdateGameSessionQueueResponse
instance GHC.Show.Show Network.AWS.GameLift.UpdateGameSessionQueue.UpdateGameSessionQueueResponse
instance GHC.Read.Read Network.AWS.GameLift.UpdateGameSessionQueue.UpdateGameSessionQueueResponse
instance GHC.Classes.Eq Network.AWS.GameLift.UpdateGameSessionQueue.UpdateGameSessionQueueResponse
instance GHC.Generics.Generic Network.AWS.GameLift.UpdateGameSessionQueue.UpdateGameSessionQueue
instance Data.Data.Data Network.AWS.GameLift.UpdateGameSessionQueue.UpdateGameSessionQueue
instance GHC.Show.Show Network.AWS.GameLift.UpdateGameSessionQueue.UpdateGameSessionQueue
instance GHC.Read.Read Network.AWS.GameLift.UpdateGameSessionQueue.UpdateGameSessionQueue
instance GHC.Classes.Eq Network.AWS.GameLift.UpdateGameSessionQueue.UpdateGameSessionQueue
instance Network.AWS.Types.AWSRequest Network.AWS.GameLift.UpdateGameSessionQueue.UpdateGameSessionQueue
instance Control.DeepSeq.NFData Network.AWS.GameLift.UpdateGameSessionQueue.UpdateGameSessionQueueResponse
instance Data.Hashable.Class.Hashable Network.AWS.GameLift.UpdateGameSessionQueue.UpdateGameSessionQueue
instance Control.DeepSeq.NFData Network.AWS.GameLift.UpdateGameSessionQueue.UpdateGameSessionQueue
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.GameLift.UpdateGameSessionQueue.UpdateGameSessionQueue
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.GameLift.UpdateGameSessionQueue.UpdateGameSessionQueue
instance Network.AWS.Data.Path.ToPath Network.AWS.GameLift.UpdateGameSessionQueue.UpdateGameSessionQueue
instance Network.AWS.Data.Query.ToQuery Network.AWS.GameLift.UpdateGameSessionQueue.UpdateGameSessionQueue


-- | Updates settings for a FlexMatch matchmaking configuration. To update
--   settings, specify the configuration name to be updated and provide the
--   new settings.
--   
--   Operations related to match configurations and rule sets include:
--   
--   <ul>
--   <li><tt>CreateMatchmakingConfiguration</tt></li>
--   <li><tt>DescribeMatchmakingConfigurations</tt></li>
--   <li><a>UpdateMatchmakingConfiguration</a></li>
--   <li><tt>DeleteMatchmakingConfiguration</tt></li>
--   <li><tt>CreateMatchmakingRuleSet</tt></li>
--   <li><tt>DescribeMatchmakingRuleSets</tt></li>
--   <li><tt>ValidateMatchmakingRuleSet</tt></li>
--   </ul>
module Network.AWS.GameLift.UpdateMatchmakingConfiguration

-- | Creates a value of <a>UpdateMatchmakingConfiguration</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>umcGameProperties</a> - Set of custom properties for a game
--   session, formatted as key:value pairs. These properties are passed to
--   a game server process in the <a>GameSession</a> object with a request
--   to start a new game session (see <a>Start a Game Session</a> ). This
--   information is added to the new <a>GameSession</a> object that is
--   created for a successful match.</li>
--   <li><a>umcRuleSetName</a> - Unique identifier for a matchmaking rule
--   set to use with this configuration. A matchmaking configuration can
--   only use rule sets that are defined in the same region.</li>
--   <li><a>umcAcceptanceTimeoutSeconds</a> - Length of time (in seconds)
--   to wait for players to accept a proposed match. If any player rejects
--   the match or fails to accept before the timeout, the ticket continues
--   to look for an acceptable match.</li>
--   <li><a>umcRequestTimeoutSeconds</a> - Maximum duration, in seconds,
--   that a matchmaking ticket can remain in process before timing out.
--   Requests that time out can be resubmitted as needed.</li>
--   <li><a>umcNotificationTarget</a> - SNS topic ARN that is set up to
--   receive matchmaking notifications. See <a>Setting up Notifications for
--   Matchmaking</a> for more information.</li>
--   <li><a>umcGameSessionQueueARNs</a> - Amazon Resource Name (<a>ARN</a>
--   ) that is assigned to a game session queue and uniquely identifies it.
--   Format is
--   <tt>arn:aws:gamelift:<a>region</a>::fleet/fleet-a1234567-b8c9-0d1e-2fa3-b45c6d7e8912</tt>
--   . These queues are used when placing game sessions for matches that
--   are created with this matchmaking configuration. Queues can be located
--   in any region.</li>
--   <li><a>umcCustomEventData</a> - Information to attached to all events
--   related to the matchmaking configuration.</li>
--   <li><a>umcAcceptanceRequired</a> - Flag that determines whether or not
--   a match that was created with this configuration must be accepted by
--   the matched players. To require acceptance, set to TRUE.</li>
--   <li><a>umcGameSessionData</a> - Set of custom game session properties,
--   formatted as a single string value. This data is passed to a game
--   server process in the <a>GameSession</a> object with a request to
--   start a new game session (see <a>Start a Game Session</a> ). This
--   information is added to the new <a>GameSession</a> object that is
--   created for a successful match.</li>
--   <li><a>umcDescription</a> - Descriptive label that is associated with
--   matchmaking configuration.</li>
--   <li><a>umcAdditionalPlayerCount</a> - Number of player slots in a
--   match to keep open for future players. For example, if the
--   configuration's rule set specifies a match for a single 12-person
--   team, and the additional player count is set to 2, only 10 players are
--   selected for the match.</li>
--   <li><a>umcName</a> - Unique identifier for a matchmaking configuration
--   to update.</li>
--   </ul>
updateMatchmakingConfiguration :: Text -> UpdateMatchmakingConfiguration

-- | Represents the input for a request action.
--   
--   <i>See:</i> <a>updateMatchmakingConfiguration</a> smart constructor.
data UpdateMatchmakingConfiguration

-- | Set of custom properties for a game session, formatted as key:value
--   pairs. These properties are passed to a game server process in the
--   <a>GameSession</a> object with a request to start a new game session
--   (see <a>Start a Game Session</a> ). This information is added to the
--   new <a>GameSession</a> object that is created for a successful match.
umcGameProperties :: Lens' UpdateMatchmakingConfiguration [GameProperty]

-- | Unique identifier for a matchmaking rule set to use with this
--   configuration. A matchmaking configuration can only use rule sets that
--   are defined in the same region.
umcRuleSetName :: Lens' UpdateMatchmakingConfiguration (Maybe Text)

-- | Length of time (in seconds) to wait for players to accept a proposed
--   match. If any player rejects the match or fails to accept before the
--   timeout, the ticket continues to look for an acceptable match.
umcAcceptanceTimeoutSeconds :: Lens' UpdateMatchmakingConfiguration (Maybe Natural)

-- | Maximum duration, in seconds, that a matchmaking ticket can remain in
--   process before timing out. Requests that time out can be resubmitted
--   as needed.
umcRequestTimeoutSeconds :: Lens' UpdateMatchmakingConfiguration (Maybe Natural)

-- | SNS topic ARN that is set up to receive matchmaking notifications. See
--   <a>Setting up Notifications for Matchmaking</a> for more information.
umcNotificationTarget :: Lens' UpdateMatchmakingConfiguration (Maybe Text)

-- | Amazon Resource Name (<a>ARN</a> ) that is assigned to a game session
--   queue and uniquely identifies it. Format is
--   <tt>arn:aws:gamelift:<a>region</a>::fleet/fleet-a1234567-b8c9-0d1e-2fa3-b45c6d7e8912</tt>
--   . These queues are used when placing game sessions for matches that
--   are created with this matchmaking configuration. Queues can be located
--   in any region.
umcGameSessionQueueARNs :: Lens' UpdateMatchmakingConfiguration [Text]

-- | Information to attached to all events related to the matchmaking
--   configuration.
umcCustomEventData :: Lens' UpdateMatchmakingConfiguration (Maybe Text)

-- | Flag that determines whether or not a match that was created with this
--   configuration must be accepted by the matched players. To require
--   acceptance, set to TRUE.
umcAcceptanceRequired :: Lens' UpdateMatchmakingConfiguration (Maybe Bool)

-- | Set of custom game session properties, formatted as a single string
--   value. This data is passed to a game server process in the
--   <a>GameSession</a> object with a request to start a new game session
--   (see <a>Start a Game Session</a> ). This information is added to the
--   new <a>GameSession</a> object that is created for a successful match.
umcGameSessionData :: Lens' UpdateMatchmakingConfiguration (Maybe Text)

-- | Descriptive label that is associated with matchmaking configuration.
umcDescription :: Lens' UpdateMatchmakingConfiguration (Maybe Text)

-- | Number of player slots in a match to keep open for future players. For
--   example, if the configuration's rule set specifies a match for a
--   single 12-person team, and the additional player count is set to 2,
--   only 10 players are selected for the match.
umcAdditionalPlayerCount :: Lens' UpdateMatchmakingConfiguration (Maybe Natural)

-- | Unique identifier for a matchmaking configuration to update.
umcName :: Lens' UpdateMatchmakingConfiguration Text

-- | Creates a value of <a>UpdateMatchmakingConfigurationResponse</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>umcrsConfiguration</a> - Object that describes the updated
--   matchmaking configuration.</li>
--   <li><a>umcrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
updateMatchmakingConfigurationResponse :: Int -> UpdateMatchmakingConfigurationResponse

-- | Represents the returned data in response to a request action.
--   
--   <i>See:</i> <a>updateMatchmakingConfigurationResponse</a> smart
--   constructor.
data UpdateMatchmakingConfigurationResponse

-- | Object that describes the updated matchmaking configuration.
umcrsConfiguration :: Lens' UpdateMatchmakingConfigurationResponse (Maybe MatchmakingConfiguration)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
umcrsResponseStatus :: Lens' UpdateMatchmakingConfigurationResponse Int
instance GHC.Generics.Generic Network.AWS.GameLift.UpdateMatchmakingConfiguration.UpdateMatchmakingConfigurationResponse
instance Data.Data.Data Network.AWS.GameLift.UpdateMatchmakingConfiguration.UpdateMatchmakingConfigurationResponse
instance GHC.Show.Show Network.AWS.GameLift.UpdateMatchmakingConfiguration.UpdateMatchmakingConfigurationResponse
instance GHC.Read.Read Network.AWS.GameLift.UpdateMatchmakingConfiguration.UpdateMatchmakingConfigurationResponse
instance GHC.Classes.Eq Network.AWS.GameLift.UpdateMatchmakingConfiguration.UpdateMatchmakingConfigurationResponse
instance GHC.Generics.Generic Network.AWS.GameLift.UpdateMatchmakingConfiguration.UpdateMatchmakingConfiguration
instance Data.Data.Data Network.AWS.GameLift.UpdateMatchmakingConfiguration.UpdateMatchmakingConfiguration
instance GHC.Show.Show Network.AWS.GameLift.UpdateMatchmakingConfiguration.UpdateMatchmakingConfiguration
instance GHC.Read.Read Network.AWS.GameLift.UpdateMatchmakingConfiguration.UpdateMatchmakingConfiguration
instance GHC.Classes.Eq Network.AWS.GameLift.UpdateMatchmakingConfiguration.UpdateMatchmakingConfiguration
instance Network.AWS.Types.AWSRequest Network.AWS.GameLift.UpdateMatchmakingConfiguration.UpdateMatchmakingConfiguration
instance Control.DeepSeq.NFData Network.AWS.GameLift.UpdateMatchmakingConfiguration.UpdateMatchmakingConfigurationResponse
instance Data.Hashable.Class.Hashable Network.AWS.GameLift.UpdateMatchmakingConfiguration.UpdateMatchmakingConfiguration
instance Control.DeepSeq.NFData Network.AWS.GameLift.UpdateMatchmakingConfiguration.UpdateMatchmakingConfiguration
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.GameLift.UpdateMatchmakingConfiguration.UpdateMatchmakingConfiguration
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.GameLift.UpdateMatchmakingConfiguration.UpdateMatchmakingConfiguration
instance Network.AWS.Data.Path.ToPath Network.AWS.GameLift.UpdateMatchmakingConfiguration.UpdateMatchmakingConfiguration
instance Network.AWS.Data.Query.ToQuery Network.AWS.GameLift.UpdateMatchmakingConfiguration.UpdateMatchmakingConfiguration


-- | Updates the current run-time configuration for the specified fleet,
--   which tells Amazon GameLift how to launch server processes on
--   instances in the fleet. You can update a fleet's run-time
--   configuration at any time after the fleet is created; it does not need
--   to be in an <tt>ACTIVE</tt> status.
--   
--   To update run-time configuration, specify the fleet ID and provide a
--   <tt>RuntimeConfiguration</tt> object with the updated collection of
--   server process configurations.
--   
--   Each instance in a Amazon GameLift fleet checks regularly for an
--   updated run-time configuration and changes how it launches server
--   processes to comply with the latest version. Existing server processes
--   are not affected by the update; they continue to run until they end,
--   while Amazon GameLift simply adds new server processes to fit the
--   current run-time configuration. As a result, the run-time
--   configuration changes are applied gradually as existing processes shut
--   down and new processes are launched in Amazon GameLift's normal
--   process recycling activity.
--   
--   Fleet-related operations include:
--   
--   <ul>
--   <li><tt>CreateFleet</tt></li>
--   <li><tt>ListFleets</tt></li>
--   <li><tt>DeleteFleet</tt></li>
--   <li>Describe fleets:</li>
--   <li><tt>DescribeFleetAttributes</tt></li>
--   <li><tt>DescribeFleetCapacity</tt></li>
--   <li><tt>DescribeFleetPortSettings</tt></li>
--   <li><tt>DescribeFleetUtilization</tt></li>
--   <li><tt>DescribeRuntimeConfiguration</tt></li>
--   <li><tt>DescribeEC2InstanceLimits</tt></li>
--   <li><tt>DescribeFleetEvents</tt></li>
--   <li>Update fleets:</li>
--   <li><tt>UpdateFleetAttributes</tt></li>
--   <li><tt>UpdateFleetCapacity</tt></li>
--   <li><tt>UpdateFleetPortSettings</tt></li>
--   <li><a>UpdateRuntimeConfiguration</a></li>
--   <li>Manage fleet actions:</li>
--   <li><tt>StartFleetActions</tt></li>
--   <li><tt>StopFleetActions</tt></li>
--   </ul>
module Network.AWS.GameLift.UpdateRuntimeConfiguration

-- | Creates a value of <a>UpdateRuntimeConfiguration</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>urcFleetId</a> - Unique identifier for a fleet to update
--   run-time configuration for.</li>
--   <li><a>urcRuntimeConfiguration</a> - Instructions for launching server
--   processes on each instance in the fleet. The run-time configuration
--   for a fleet has a collection of server process configurations, one for
--   each type of server process to run on an instance. A server process
--   configuration specifies the location of the server executable, launch
--   parameters, and the number of concurrent processes with that
--   configuration to maintain on each instance.</li>
--   </ul>
updateRuntimeConfiguration :: Text -> RuntimeConfiguration -> UpdateRuntimeConfiguration

-- | Represents the input for a request action.
--   
--   <i>See:</i> <a>updateRuntimeConfiguration</a> smart constructor.
data UpdateRuntimeConfiguration

-- | Unique identifier for a fleet to update run-time configuration for.
urcFleetId :: Lens' UpdateRuntimeConfiguration Text

-- | Instructions for launching server processes on each instance in the
--   fleet. The run-time configuration for a fleet has a collection of
--   server process configurations, one for each type of server process to
--   run on an instance. A server process configuration specifies the
--   location of the server executable, launch parameters, and the number
--   of concurrent processes with that configuration to maintain on each
--   instance.
urcRuntimeConfiguration :: Lens' UpdateRuntimeConfiguration RuntimeConfiguration

-- | Creates a value of <a>UpdateRuntimeConfigurationResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>urcrsRuntimeConfiguration</a> - The run-time configuration
--   currently in force. If the update was successful, this object matches
--   the one in the request.</li>
--   <li><a>urcrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
updateRuntimeConfigurationResponse :: Int -> UpdateRuntimeConfigurationResponse

-- | Represents the returned data in response to a request action.
--   
--   <i>See:</i> <a>updateRuntimeConfigurationResponse</a> smart
--   constructor.
data UpdateRuntimeConfigurationResponse

-- | The run-time configuration currently in force. If the update was
--   successful, this object matches the one in the request.
urcrsRuntimeConfiguration :: Lens' UpdateRuntimeConfigurationResponse (Maybe RuntimeConfiguration)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
urcrsResponseStatus :: Lens' UpdateRuntimeConfigurationResponse Int
instance GHC.Generics.Generic Network.AWS.GameLift.UpdateRuntimeConfiguration.UpdateRuntimeConfigurationResponse
instance Data.Data.Data Network.AWS.GameLift.UpdateRuntimeConfiguration.UpdateRuntimeConfigurationResponse
instance GHC.Show.Show Network.AWS.GameLift.UpdateRuntimeConfiguration.UpdateRuntimeConfigurationResponse
instance GHC.Read.Read Network.AWS.GameLift.UpdateRuntimeConfiguration.UpdateRuntimeConfigurationResponse
instance GHC.Classes.Eq Network.AWS.GameLift.UpdateRuntimeConfiguration.UpdateRuntimeConfigurationResponse
instance GHC.Generics.Generic Network.AWS.GameLift.UpdateRuntimeConfiguration.UpdateRuntimeConfiguration
instance Data.Data.Data Network.AWS.GameLift.UpdateRuntimeConfiguration.UpdateRuntimeConfiguration
instance GHC.Show.Show Network.AWS.GameLift.UpdateRuntimeConfiguration.UpdateRuntimeConfiguration
instance GHC.Read.Read Network.AWS.GameLift.UpdateRuntimeConfiguration.UpdateRuntimeConfiguration
instance GHC.Classes.Eq Network.AWS.GameLift.UpdateRuntimeConfiguration.UpdateRuntimeConfiguration
instance Network.AWS.Types.AWSRequest Network.AWS.GameLift.UpdateRuntimeConfiguration.UpdateRuntimeConfiguration
instance Control.DeepSeq.NFData Network.AWS.GameLift.UpdateRuntimeConfiguration.UpdateRuntimeConfigurationResponse
instance Data.Hashable.Class.Hashable Network.AWS.GameLift.UpdateRuntimeConfiguration.UpdateRuntimeConfiguration
instance Control.DeepSeq.NFData Network.AWS.GameLift.UpdateRuntimeConfiguration.UpdateRuntimeConfiguration
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.GameLift.UpdateRuntimeConfiguration.UpdateRuntimeConfiguration
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.GameLift.UpdateRuntimeConfiguration.UpdateRuntimeConfiguration
instance Network.AWS.Data.Path.ToPath Network.AWS.GameLift.UpdateRuntimeConfiguration.UpdateRuntimeConfiguration
instance Network.AWS.Data.Query.ToQuery Network.AWS.GameLift.UpdateRuntimeConfiguration.UpdateRuntimeConfiguration


-- | Validates the syntax of a matchmaking rule or rule set. This operation
--   checks that the rule set uses syntactically correct JSON and that it
--   conforms to allowed property expressions. To validate syntax, provide
--   a rule set string.
--   
--   Operations related to match configurations and rule sets include:
--   
--   <ul>
--   <li><tt>CreateMatchmakingConfiguration</tt></li>
--   <li><tt>DescribeMatchmakingConfigurations</tt></li>
--   <li><tt>UpdateMatchmakingConfiguration</tt></li>
--   <li><tt>DeleteMatchmakingConfiguration</tt></li>
--   <li><tt>CreateMatchmakingRuleSet</tt></li>
--   <li><tt>DescribeMatchmakingRuleSets</tt></li>
--   <li><a>ValidateMatchmakingRuleSet</a></li>
--   </ul>
module Network.AWS.GameLift.ValidateMatchmakingRuleSet

-- | Creates a value of <a>ValidateMatchmakingRuleSet</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vmrsRuleSetBody</a> - Collection of matchmaking rules to
--   validate, formatted as a JSON string.</li>
--   </ul>
validateMatchmakingRuleSet :: Text -> ValidateMatchmakingRuleSet

-- | Represents the input for a request action.
--   
--   <i>See:</i> <a>validateMatchmakingRuleSet</a> smart constructor.
data ValidateMatchmakingRuleSet

-- | Collection of matchmaking rules to validate, formatted as a JSON
--   string.
vmrsRuleSetBody :: Lens' ValidateMatchmakingRuleSet Text

-- | Creates a value of <a>ValidateMatchmakingRuleSetResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vmrsrsValid</a> - Response indicating whether or not the rule
--   set is valid.</li>
--   <li><a>vmrsrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
validateMatchmakingRuleSetResponse :: Int -> ValidateMatchmakingRuleSetResponse

-- | Represents the returned data in response to a request action.
--   
--   <i>See:</i> <a>validateMatchmakingRuleSetResponse</a> smart
--   constructor.
data ValidateMatchmakingRuleSetResponse

-- | Response indicating whether or not the rule set is valid.
vmrsrsValid :: Lens' ValidateMatchmakingRuleSetResponse (Maybe Bool)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
vmrsrsResponseStatus :: Lens' ValidateMatchmakingRuleSetResponse Int
instance GHC.Generics.Generic Network.AWS.GameLift.ValidateMatchmakingRuleSet.ValidateMatchmakingRuleSetResponse
instance Data.Data.Data Network.AWS.GameLift.ValidateMatchmakingRuleSet.ValidateMatchmakingRuleSetResponse
instance GHC.Show.Show Network.AWS.GameLift.ValidateMatchmakingRuleSet.ValidateMatchmakingRuleSetResponse
instance GHC.Read.Read Network.AWS.GameLift.ValidateMatchmakingRuleSet.ValidateMatchmakingRuleSetResponse
instance GHC.Classes.Eq Network.AWS.GameLift.ValidateMatchmakingRuleSet.ValidateMatchmakingRuleSetResponse
instance GHC.Generics.Generic Network.AWS.GameLift.ValidateMatchmakingRuleSet.ValidateMatchmakingRuleSet
instance Data.Data.Data Network.AWS.GameLift.ValidateMatchmakingRuleSet.ValidateMatchmakingRuleSet
instance GHC.Show.Show Network.AWS.GameLift.ValidateMatchmakingRuleSet.ValidateMatchmakingRuleSet
instance GHC.Read.Read Network.AWS.GameLift.ValidateMatchmakingRuleSet.ValidateMatchmakingRuleSet
instance GHC.Classes.Eq Network.AWS.GameLift.ValidateMatchmakingRuleSet.ValidateMatchmakingRuleSet
instance Network.AWS.Types.AWSRequest Network.AWS.GameLift.ValidateMatchmakingRuleSet.ValidateMatchmakingRuleSet
instance Control.DeepSeq.NFData Network.AWS.GameLift.ValidateMatchmakingRuleSet.ValidateMatchmakingRuleSetResponse
instance Data.Hashable.Class.Hashable Network.AWS.GameLift.ValidateMatchmakingRuleSet.ValidateMatchmakingRuleSet
instance Control.DeepSeq.NFData Network.AWS.GameLift.ValidateMatchmakingRuleSet.ValidateMatchmakingRuleSet
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.GameLift.ValidateMatchmakingRuleSet.ValidateMatchmakingRuleSet
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.GameLift.ValidateMatchmakingRuleSet.ValidateMatchmakingRuleSet
instance Network.AWS.Data.Path.ToPath Network.AWS.GameLift.ValidateMatchmakingRuleSet.ValidateMatchmakingRuleSet
instance Network.AWS.Data.Query.ToQuery Network.AWS.GameLift.ValidateMatchmakingRuleSet.ValidateMatchmakingRuleSet


module Network.AWS.GameLift.Waiters


-- | <b>Amazon GameLift Service</b>
--   
--   Amazon GameLift is a managed service for developers who need a
--   scalable, dedicated server solution for their multiplayer games. Use
--   Amazon GameLift for these tasks: (1) set up computing resources and
--   deploy your game servers, (2) run game sessions and get players into
--   games, (3) automatically scale your resources to meet player demand
--   and manage costs, and (4) track in-depth metrics on game server
--   performance and player usage.
--   
--   The Amazon GameLift service API includes two important function sets:
--   
--   <ul>
--   <li><b>Manage game sessions and player access</b> -- Retrieve
--   information on available game sessions; create new game sessions; send
--   player requests to join a game session.</li>
--   <li><b>Configure and manage game server resources</b> -- Manage
--   builds, fleets, queues, and aliases; set auto-scaling policies;
--   retrieve logs and metrics.</li>
--   </ul>
--   
--   This reference guide describes the low-level service API for Amazon
--   GameLift. You can use the API functionality with these tools:
--   
--   <ul>
--   <li>The Amazon Web Services software development kit (<a>AWS SDK</a> )
--   is available in <a>multiple languages</a> including C++ and C#. Use
--   the SDK to access the API programmatically from an application, such
--   as a game client.</li>
--   <li>The <a>AWS command-line interface</a> (CLI) tool is primarily
--   useful for handling administrative actions, such as setting up and
--   managing Amazon GameLift settings and resources. You can use the AWS
--   CLI to manage all of your AWS services.</li>
--   <li>The <a>AWS Management Console</a> for Amazon GameLift provides a
--   web interface to manage your Amazon GameLift settings and resources.
--   The console includes a dashboard for tracking key resources, including
--   builds and fleets, and displays usage and performance metrics for your
--   games as customizable graphs.</li>
--   <li>Amazon GameLift Local is a tool for testing your game's
--   integration with Amazon GameLift before deploying it on the service.
--   This tools supports a subset of key API actions, which can be called
--   from either the AWS CLI or programmatically. See <a>Testing an
--   Integration</a> .</li>
--   </ul>
--   
--   <b>Learn more</b>
--   
--   <ul>
--   <li><a>Developer Guide</a> -- Read about Amazon GameLift features and
--   how to use them.</li>
--   <li><a>Tutorials</a> -- Get started fast with walkthroughs and sample
--   projects.</li>
--   <li><a>GameDev Blog</a> -- Stay up to date with new features and
--   techniques.</li>
--   <li><a>GameDev Forums</a> -- Connect with the GameDev community.</li>
--   <li><a>Release notes</a> and <a>document history</a> -- Stay current
--   with updates to the Amazon GameLift service, SDKs, and
--   documentation.</li>
--   </ul>
--   
--   <b>API SUMMARY</b>
--   
--   This list offers a functional overview of the Amazon GameLift service
--   API.
--   
--   <b>Managing Games and Players</b>
--   
--   Use these actions to start new game sessions, find existing game
--   sessions, track game session status and other information, and enable
--   player access to game sessions.
--   
--   <ul>
--   <li><b>Discover existing game sessions</b></li>
--   <li><a>SearchGameSessions</a> -- Retrieve all available game sessions
--   or search for game sessions that match a set of criteria.</li>
--   <li><b>Start new game sessions</b></li>
--   <li>Start new games with Queues to find the best available hosting
--   resources across multiple regions, minimize player latency, and
--   balance game session activity for efficiency and cost
--   effectiveness.</li>
--   <li><a>StartGameSessionPlacement</a> -- Request a new game session
--   placement and add one or more players to it.</li>
--   <li><a>DescribeGameSessionPlacement</a> -- Get details on a placement
--   request, including status.</li>
--   <li><a>StopGameSessionPlacement</a> -- Cancel a placement
--   request.</li>
--   <li><a>CreateGameSession</a> -- Start a new game session on a specific
--   fleet. <i>Available in Amazon GameLift Local.</i></li>
--   <li><b>Match players to game sessions with FlexMatch
--   matchmaking</b></li>
--   <li><a>StartMatchmaking</a> -- Request matchmaking for one players or
--   a group who want to play together.</li>
--   <li><a>StartMatchBackfill</a> - Request additional player matches to
--   fill empty slots in an existing game session.</li>
--   <li><a>DescribeMatchmaking</a> -- Get details on a matchmaking
--   request, including status.</li>
--   <li><a>AcceptMatch</a> -- Register that a player accepts a proposed
--   match, for matches that require player acceptance.</li>
--   <li><a>StopMatchmaking</a> -- Cancel a matchmaking request.</li>
--   <li><b>Manage game session data</b></li>
--   <li><a>DescribeGameSessions</a> -- Retrieve metadata for one or more
--   game sessions, including length of time active and current player
--   count. <i>Available in Amazon GameLift Local.</i></li>
--   <li><a>DescribeGameSessionDetails</a> -- Retrieve metadata and the
--   game session protection setting for one or more game sessions.</li>
--   <li><a>UpdateGameSession</a> -- Change game session settings, such as
--   maximum player count and join policy.</li>
--   <li><tt>GetGameSessionLogUrl</tt> -- Get the location of saved logs
--   for a game session.</li>
--   <li><b>Manage player sessions</b></li>
--   <li><a>CreatePlayerSession</a> -- Send a request for a player to join
--   a game session. <i>Available in Amazon GameLift Local.</i></li>
--   <li><a>CreatePlayerSessions</a> -- Send a request for multiple players
--   to join a game session. <i>Available in Amazon GameLift
--   Local.</i></li>
--   <li><a>DescribePlayerSessions</a> -- Get details on player activity,
--   including status, playing time, and player data. <i>Available in
--   Amazon GameLift Local.</i></li>
--   </ul>
--   
--   <b>Setting Up and Managing Game Servers</b>
--   
--   When setting up Amazon GameLift resources for your game, you first
--   <a>create a game build</a> and upload it to Amazon GameLift. You can
--   then use these actions to configure and manage a fleet of resources to
--   run your game servers, scale capacity to meet player demand, access
--   performance and utilization metrics, and more.
--   
--   <ul>
--   <li><b>Manage game builds</b></li>
--   <li><a>CreateBuild</a> -- Create a new build using files stored in an
--   Amazon S3 bucket. To create a build and upload files from a local
--   path, use the AWS CLI command <tt>upload-build</tt> .</li>
--   <li><a>ListBuilds</a> -- Get a list of all builds uploaded to a Amazon
--   GameLift region.</li>
--   <li><a>DescribeBuild</a> -- Retrieve information associated with a
--   build.</li>
--   <li><a>UpdateBuild</a> -- Change build metadata, including build name
--   and version.</li>
--   <li><a>DeleteBuild</a> -- Remove a build from Amazon GameLift.</li>
--   <li><b>Manage fleets</b></li>
--   <li><a>CreateFleet</a> -- Configure and activate a new fleet to run a
--   build's game servers.</li>
--   <li><a>ListFleets</a> -- Get a list of all fleet IDs in a Amazon
--   GameLift region (all statuses).</li>
--   <li><a>DeleteFleet</a> -- Terminate a fleet that is no longer running
--   game servers or hosting players.</li>
--   <li>View / update fleet configurations.</li>
--   <li><a>DescribeFleetAttributes</a> / <a>UpdateFleetAttributes</a> --
--   View or change a fleet's metadata and settings for game session
--   protection and resource creation limits.</li>
--   <li><a>DescribeFleetPortSettings</a> / <a>UpdateFleetPortSettings</a>
--   -- View or change the inbound permissions (IP address and port setting
--   ranges) allowed for a fleet.</li>
--   <li><a>DescribeRuntimeConfiguration</a> /
--   <a>UpdateRuntimeConfiguration</a> -- View or change what server
--   processes (and how many) to run on each instance in a fleet.</li>
--   <li><b>Control fleet capacity</b></li>
--   <li><a>DescribeEC2InstanceLimits</a> -- Retrieve maximum number of
--   instances allowed for the current AWS account and the current usage
--   level.</li>
--   <li><a>DescribeFleetCapacity</a> / <a>UpdateFleetCapacity</a> --
--   Retrieve the capacity settings and the current number of instances in
--   a fleet; adjust fleet capacity settings to scale up or down.</li>
--   <li>Autoscale -- Manage auto-scaling rules and apply them to a
--   fleet.</li>
--   <li><a>PutScalingPolicy</a> -- Create a new auto-scaling policy, or
--   update an existing one.</li>
--   <li><a>DescribeScalingPolicies</a> -- Retrieve an existing
--   auto-scaling policy.</li>
--   <li><a>DeleteScalingPolicy</a> -- Delete an auto-scaling policy and
--   stop it from affecting a fleet's capacity.</li>
--   <li><a>StartFleetActions</a> -- Restart a fleet's auto-scaling
--   policies.</li>
--   <li><a>StopFleetActions</a> -- Suspend a fleet's auto-scaling
--   policies.</li>
--   <li><b>Manage VPC peering connections for fleets</b></li>
--   <li><tt>CreateVpcPeeringAuthorization</tt> -- Authorize a peering
--   connection to one of your VPCs.</li>
--   <li><tt>DescribeVpcPeeringAuthorizations</tt> -- Retrieve valid
--   peering connection authorizations.</li>
--   <li><tt>DeleteVpcPeeringAuthorization</tt> -- Delete a peering
--   connection authorization.</li>
--   <li><tt>CreateVpcPeeringConnection</tt> -- Establish a peering
--   connection between the VPC for a Amazon GameLift fleet and one of your
--   VPCs.</li>
--   <li><tt>DescribeVpcPeeringConnections</tt> -- Retrieve information on
--   active or pending VPC peering connections with a Amazon GameLift
--   fleet.</li>
--   <li><tt>DeleteVpcPeeringConnection</tt> -- Delete a VPC peering
--   connection with a Amazon GameLift fleet.</li>
--   <li><b>Access fleet activity statistics</b></li>
--   <li><a>DescribeFleetUtilization</a> -- Get current data on the number
--   of server processes, game sessions, and players currently active on a
--   fleet.</li>
--   <li><a>DescribeFleetEvents</a> -- Get a fleet's logged events for a
--   specified time span.</li>
--   <li><a>DescribeGameSessions</a> -- Retrieve metadata associated with
--   one or more game sessions, including length of time active and current
--   player count.</li>
--   <li><b>Remotely access an instance</b></li>
--   <li><a>DescribeInstances</a> -- Get information on each instance in a
--   fleet, including instance ID, IP address, and status.</li>
--   <li><a>GetInstanceAccess</a> -- Request access credentials needed to
--   remotely connect to a specified instance in a fleet.</li>
--   <li><b>Manage fleet aliases</b></li>
--   <li><a>CreateAlias</a> -- Define a new alias and optionally assign it
--   to a fleet.</li>
--   <li><a>ListAliases</a> -- Get all fleet aliases defined in a Amazon
--   GameLift region.</li>
--   <li><a>DescribeAlias</a> -- Retrieve information on an existing
--   alias.</li>
--   <li><a>UpdateAlias</a> -- Change settings for a alias, such as
--   redirecting it from one fleet to another.</li>
--   <li><a>DeleteAlias</a> -- Remove an alias from the region.</li>
--   <li><a>ResolveAlias</a> -- Get the fleet ID that a specified alias
--   points to.</li>
--   <li><b>Manage game session queues</b></li>
--   <li><a>CreateGameSessionQueue</a> -- Create a queue for processing
--   requests for new game sessions.</li>
--   <li><a>DescribeGameSessionQueues</a> -- Retrieve game session queues
--   defined in a Amazon GameLift region.</li>
--   <li><a>UpdateGameSessionQueue</a> -- Change the configuration of a
--   game session queue.</li>
--   <li><a>DeleteGameSessionQueue</a> -- Remove a game session queue from
--   the region.</li>
--   <li><b>Manage FlexMatch resources</b></li>
--   <li><a>CreateMatchmakingConfiguration</a> -- Create a matchmaking
--   configuration with instructions for building a player group and
--   placing in a new game session.</li>
--   <li><a>DescribeMatchmakingConfigurations</a> -- Retrieve matchmaking
--   configurations defined a Amazon GameLift region.</li>
--   <li><a>UpdateMatchmakingConfiguration</a> -- Change settings for
--   matchmaking configuration. queue.</li>
--   <li><a>DeleteMatchmakingConfiguration</a> -- Remove a matchmaking
--   configuration from the region.</li>
--   <li><a>CreateMatchmakingRuleSet</a> -- Create a set of rules to use
--   when searching for player matches.</li>
--   <li><a>DescribeMatchmakingRuleSets</a> -- Retrieve matchmaking rule
--   sets defined in a Amazon GameLift region.</li>
--   <li><a>ValidateMatchmakingRuleSet</a> -- Verify syntax for a set of
--   matchmaking rules.</li>
--   </ul>
module Network.AWS.GameLift

-- | API version <tt>2015-10-01</tt> of the Amazon GameLift SDK
--   configuration.
gameLift :: Service

-- | The requested operation would cause a conflict with the current state
--   of a resource associated with the request and/or the fleet. Resolve
--   the conflict before retrying.
_InvalidFleetStatusException :: AsError a => Getting (First ServiceError) a ServiceError

-- | One or more parameter values in the request are invalid. Correct the
--   invalid parameter values before retrying.
_InvalidRequestException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The requested operation would cause a conflict with the current state
--   of a service resource associated with the request. Resolve the
--   conflict before retrying this request.
_ConflictException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The service is unable to resolve the routing for a particular alias
--   because it has a terminal <a>RoutingStrategy</a> associated with it.
--   The message returned in this exception is the message defined in the
--   routing strategy itself. Such requests should only be retried if the
--   routing strategy for the specified alias is modified.
_TerminalRoutingStrategyException :: AsError a => Getting (First ServiceError) a ServiceError

-- | A service resource associated with the request could not be found.
--   Clients should not retry such requests.
_NotFoundException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The game instance is currently full and cannot allow the requested
--   player(s) to join. Clients can retry such requests immediately or
--   after a waiting period.
_GameSessionFullException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The requested operation is not supported in the region specified.
_UnsupportedRegionException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The requested operation would cause a conflict with the current state
--   of a resource associated with the request and/or the game instance.
--   Resolve the conflict before retrying.
_InvalidGameSessionStatusException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The service encountered an unrecoverable internal failure while
--   processing the request. Clients can retry such requests immediately or
--   after a waiting period.
_InternalServiceException :: AsError a => Getting (First ServiceError) a ServiceError

-- | A game session with this custom ID string already exists in this
--   fleet. Resolve this conflict before retrying this request.
_IdempotentParameterMismatchException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The client failed authentication. Clients should not retry such
--   requests.
_UnauthorizedException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The specified fleet has no available instances to fulfill a
--   <tt>CreateGameSession</tt> request. Clients can retry such requests
--   immediately or after a waiting period.
_FleetCapacityExceededException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The requested operation would cause the resource to exceed the allowed
--   service limit. Resolve the issue before retrying.
_LimitExceededException :: AsError a => Getting (First ServiceError) a ServiceError
data AcceptanceType
Accept :: AcceptanceType
Reject :: AcceptanceType
data BuildStatus
Failed :: BuildStatus
Initialized :: BuildStatus
Ready :: BuildStatus
data ComparisonOperatorType
GreaterThanOrEqualToThreshold :: ComparisonOperatorType
GreaterThanThreshold :: ComparisonOperatorType
LessThanOrEqualToThreshold :: ComparisonOperatorType
LessThanThreshold :: ComparisonOperatorType
data EC2InstanceType
C3_2XLarge :: EC2InstanceType
C3_4XLarge :: EC2InstanceType
C3_8XLarge :: EC2InstanceType
C3_Large :: EC2InstanceType
C3_XLarge :: EC2InstanceType
C4_2XLarge :: EC2InstanceType
C4_4XLarge :: EC2InstanceType
C4_8XLarge :: EC2InstanceType
C4_Large :: EC2InstanceType
C4_XLarge :: EC2InstanceType
M3_2XLarge :: EC2InstanceType
M3_Large :: EC2InstanceType
M3_Medium :: EC2InstanceType
M3_XLarge :: EC2InstanceType
M4_10XLarge :: EC2InstanceType
M4_2XLarge :: EC2InstanceType
M4_4XLarge :: EC2InstanceType
M4_Large :: EC2InstanceType
M4_XLarge :: EC2InstanceType
R3_2XLarge :: EC2InstanceType
R3_4XLarge :: EC2InstanceType
R3_8XLarge :: EC2InstanceType
R3_Large :: EC2InstanceType
R3_XLarge :: EC2InstanceType
R4_16XLarge :: EC2InstanceType
R4_2XLarge :: EC2InstanceType
R4_4XLarge :: EC2InstanceType
R4_8XLarge :: EC2InstanceType
R4_Large :: EC2InstanceType
R4_XLarge :: EC2InstanceType
T2_Large :: EC2InstanceType
T2_Medium :: EC2InstanceType
T2_Micro :: EC2InstanceType
T2_Small :: EC2InstanceType
data EventCode
FleetActivationFailed :: EventCode
FleetActivationFailedNoInstances :: EventCode
FleetBinaryDownloadFailed :: EventCode
FleetCreated :: EventCode
FleetCreationExtractingBuild :: EventCode
FleetCreationRunningInstaller :: EventCode
FleetCreationValidatingRuntimeConfig :: EventCode
FleetDeleted :: EventCode
FleetInitializationFailed :: EventCode
FleetNewGameSessionProtectionPolicyUpdated :: EventCode
FleetScalingEvent :: EventCode
FleetStateActivating :: EventCode
FleetStateActive :: EventCode
FleetStateBuilding :: EventCode
FleetStateDownloading :: EventCode
FleetStateError :: EventCode
FleetStateValidating :: EventCode
FleetVPCPeeringDeleted :: EventCode
FleetVPCPeeringFailed :: EventCode
FleetVPCPeeringSucceeded :: EventCode
FleetValidationExecutableRuntimeFailure :: EventCode
FleetValidationLaunchPathNotFound :: EventCode
FleetValidationTimedOut :: EventCode
GameSessionActivationTimeout :: EventCode
GenericEvent :: EventCode
InstanceInterrupted :: EventCode
ServerProcessCrashed :: EventCode
ServerProcessForceTerminated :: EventCode
ServerProcessInvalidPath :: EventCode
ServerProcessProcessExitTimeout :: EventCode
ServerProcessProcessReadyTimeout :: EventCode
ServerProcessSDKInitializationTimeout :: EventCode
ServerProcessTerminatedUnhealthy :: EventCode
data FleetAction
AutoScaling :: FleetAction
data FleetStatus
FSActivating :: FleetStatus
FSActive :: FleetStatus
FSBuilding :: FleetStatus
FSDeleting :: FleetStatus
FSDownloading :: FleetStatus
FSError' :: FleetStatus
FSNew :: FleetStatus
FSTerminated :: FleetStatus
FSValidating :: FleetStatus
data FleetType
OnDemand :: FleetType
Spot :: FleetType
data GameSessionPlacementState
Cancelled :: GameSessionPlacementState
Fulfilled :: GameSessionPlacementState
Pending :: GameSessionPlacementState
TimedOut :: GameSessionPlacementState
data GameSessionStatus
GSSActivating :: GameSessionStatus
GSSActive :: GameSessionStatus
GSSError' :: GameSessionStatus
GSSTerminated :: GameSessionStatus
GSSTerminating :: GameSessionStatus
data GameSessionStatusReason
Interrupted :: GameSessionStatusReason
data IPProtocol
TCP :: IPProtocol
Udp :: IPProtocol
data InstanceStatus
ISActive :: InstanceStatus
ISPending :: InstanceStatus
ISTerminating :: InstanceStatus
data MatchmakingConfigurationStatus
MCSCancelled :: MatchmakingConfigurationStatus
MCSCompleted :: MatchmakingConfigurationStatus
MCSFailed :: MatchmakingConfigurationStatus
MCSPlacing :: MatchmakingConfigurationStatus
MCSQueued :: MatchmakingConfigurationStatus
MCSRequiresAcceptance :: MatchmakingConfigurationStatus
MCSSearching :: MatchmakingConfigurationStatus
MCSTimedOut :: MatchmakingConfigurationStatus
data MetricName
ActivatingGameSessions :: MetricName
ActiveGameSessions :: MetricName
ActiveInstances :: MetricName
AvailableGameSessions :: MetricName
AvailablePlayerSessions :: MetricName
CurrentPlayerSessions :: MetricName
IdleInstances :: MetricName
PercentAvailableGameSessions :: MetricName
PercentIdleInstances :: MetricName
QueueDepth :: MetricName
WaitTime :: MetricName
data OperatingSystem
AmazonLinux :: OperatingSystem
Windows2012 :: OperatingSystem
data PlayerSessionCreationPolicy
AcceptAll :: PlayerSessionCreationPolicy
DenyAll :: PlayerSessionCreationPolicy
data PlayerSessionStatus
PSSActive :: PlayerSessionStatus
PSSCompleted :: PlayerSessionStatus
PSSReserved :: PlayerSessionStatus
PSSTimedout :: PlayerSessionStatus
data PolicyType
RuleBased :: PolicyType
TargetBased :: PolicyType
data ProtectionPolicy
FullProtection :: ProtectionPolicy
NoProtection :: ProtectionPolicy
data RoutingStrategyType
Simple :: RoutingStrategyType
Terminal :: RoutingStrategyType
data ScalingAdjustmentType
ChangeInCapacity :: ScalingAdjustmentType
ExactCapacity :: ScalingAdjustmentType
PercentChangeInCapacity :: ScalingAdjustmentType
data ScalingStatusType
Active :: ScalingStatusType
DeleteRequested :: ScalingStatusType
Deleted :: ScalingStatusType
Deleting :: ScalingStatusType
Error' :: ScalingStatusType
UpdateRequested :: ScalingStatusType
Updating :: ScalingStatusType

-- | Temporary access credentials used for uploading game build files to
--   Amazon GameLift. They are valid for a limited time. If they expire
--   before you upload your game build, get a new set by calling
--   <tt>RequestUploadCredentials</tt> .
--   
--   <i>See:</i> <a>awsCredentials</a> smart constructor.
data AWSCredentials

-- | Creates a value of <a>AWSCredentials</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>acSecretAccessKey</a> - Temporary secret key allowing access to
--   the Amazon GameLift S3 account.</li>
--   <li><a>acSessionToken</a> - Token used to associate a specific build
--   ID with the files uploaded using these credentials.</li>
--   <li><a>acAccessKeyId</a> - Temporary key allowing access to the Amazon
--   GameLift S3 account.</li>
--   </ul>
awsCredentials :: AWSCredentials

-- | Temporary secret key allowing access to the Amazon GameLift S3
--   account.
acSecretAccessKey :: Lens' AWSCredentials (Maybe Text)

-- | Token used to associate a specific build ID with the files uploaded
--   using these credentials.
acSessionToken :: Lens' AWSCredentials (Maybe Text)

-- | Temporary key allowing access to the Amazon GameLift S3 account.
acAccessKeyId :: Lens' AWSCredentials (Maybe Text)

-- | Properties describing a fleet alias.
--   
--   Alias-related operations include:
--   
--   <ul>
--   <li><tt>CreateAlias</tt></li>
--   <li><tt>ListAliases</tt></li>
--   <li><tt>DescribeAlias</tt></li>
--   <li><tt>UpdateAlias</tt></li>
--   <li><tt>DeleteAlias</tt></li>
--   <li><tt>ResolveAlias</tt></li>
--   </ul>
--   
--   <i>See:</i> <a>alias</a> smart constructor.
data Alias

-- | Creates a value of <a>Alias</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>aCreationTime</a> - Time stamp indicating when this data object
--   was created. Format is a number expressed in Unix time as milliseconds
--   (for example "1469498468.057").</li>
--   <li><a>aLastUpdatedTime</a> - Time stamp indicating when this data
--   object was last modified. Format is a number expressed in Unix time as
--   milliseconds (for example "1469498468.057").</li>
--   <li><a>aAliasId</a> - Unique identifier for an alias; alias IDs are
--   unique within a region.</li>
--   <li><a>aRoutingStrategy</a> - Alias configuration for the alias,
--   including routing type and settings.</li>
--   <li><a>aName</a> - Descriptive label that is associated with an alias.
--   Alias names do not need to be unique.</li>
--   <li><a>aAliasARN</a> - Unique identifier for an alias; alias ARNs are
--   unique across all regions.</li>
--   <li><a>aDescription</a> - Human-readable description of an alias.</li>
--   </ul>
alias :: Alias

-- | Time stamp indicating when this data object was created. Format is a
--   number expressed in Unix time as milliseconds (for example
--   "1469498468.057").
aCreationTime :: Lens' Alias (Maybe UTCTime)

-- | Time stamp indicating when this data object was last modified. Format
--   is a number expressed in Unix time as milliseconds (for example
--   "1469498468.057").
aLastUpdatedTime :: Lens' Alias (Maybe UTCTime)

-- | Unique identifier for an alias; alias IDs are unique within a region.
aAliasId :: Lens' Alias (Maybe Text)

-- | Alias configuration for the alias, including routing type and
--   settings.
aRoutingStrategy :: Lens' Alias (Maybe RoutingStrategy)

-- | Descriptive label that is associated with an alias. Alias names do not
--   need to be unique.
aName :: Lens' Alias (Maybe Text)

-- | Unique identifier for an alias; alias ARNs are unique across all
--   regions.
aAliasARN :: Lens' Alias (Maybe Text)

-- | Human-readable description of an alias.
aDescription :: Lens' Alias (Maybe Text)

-- | Values for use in <a>Player</a> attribute key:value pairs. This object
--   lets you specify an attribute value using any of the valid data types:
--   string, number, string array or data map. Each <tt>AttributeValue</tt>
--   object can use only one of the available properties.
--   
--   <i>See:</i> <a>attributeValue</a> smart constructor.
data AttributeValue

-- | Creates a value of <a>AttributeValue</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>avSL</a> - For a list of up to 10 strings. Maximum length for
--   each string is 100 characters. Duplicate values are not recognized;
--   all occurrences of the repeated value after the first of a repeated
--   value are ignored.</li>
--   <li><a>avSDM</a> - For a map of up to 10 data type:value pairs.
--   Maximum length for each string value is 100 characters.</li>
--   <li><a>avN</a> - For number values, expressed as double.</li>
--   <li><a>avS</a> - For single string values. Maximum string length is
--   100 characters.</li>
--   </ul>
attributeValue :: AttributeValue

-- | For a list of up to 10 strings. Maximum length for each string is 100
--   characters. Duplicate values are not recognized; all occurrences of
--   the repeated value after the first of a repeated value are ignored.
avSL :: Lens' AttributeValue [Text]

-- | For a map of up to 10 data type:value pairs. Maximum length for each
--   string value is 100 characters.
avSDM :: Lens' AttributeValue (HashMap Text Double)

-- | For number values, expressed as double.
avN :: Lens' AttributeValue (Maybe Double)

-- | For single string values. Maximum string length is 100 characters.
avS :: Lens' AttributeValue (Maybe Text)

-- | Properties describing a game build.
--   
--   Build-related operations include:
--   
--   <ul>
--   <li><tt>CreateBuild</tt></li>
--   <li><tt>ListBuilds</tt></li>
--   <li><tt>DescribeBuild</tt></li>
--   <li><tt>UpdateBuild</tt></li>
--   <li><tt>DeleteBuild</tt></li>
--   </ul>
--   
--   <i>See:</i> <a>build</a> smart constructor.
data Build

-- | Creates a value of <a>Build</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>bCreationTime</a> - Time stamp indicating when this data object
--   was created. Format is a number expressed in Unix time as milliseconds
--   (for example "1469498468.057").</li>
--   <li><a>bStatus</a> - Current status of the build. Possible build
--   statuses include the following: * <b>INITIALIZED</b> -- A new build
--   has been defined, but no files have been uploaded. You cannot create
--   fleets for builds that are in this status. When a build is
--   successfully created, the build status is set to this value. *
--   <b>READY</b> -- The game build has been successfully uploaded. You can
--   now create new fleets for this build. * <b>FAILED</b> -- The game
--   build upload failed. You cannot create new fleets for this build.</li>
--   <li><a>bOperatingSystem</a> - Operating system that the game server
--   binaries are built to run on. This value determines the type of fleet
--   resources that you can use for this build.</li>
--   <li><a>bBuildId</a> - Unique identifier for a build.</li>
--   <li><a>bName</a> - Descriptive label that is associated with a build.
--   Build names do not need to be unique. It can be set using
--   <tt>CreateBuild</tt> or <tt>UpdateBuild</tt> .</li>
--   <li><a>bVersion</a> - Version that is associated with this build.
--   Version strings do not need to be unique. This value can be set using
--   <tt>CreateBuild</tt> or <tt>UpdateBuild</tt> .</li>
--   <li><a>bSizeOnDisk</a> - File size of the uploaded game build,
--   expressed in bytes. When the build status is <tt>INITIALIZED</tt> ,
--   this value is 0.</li>
--   </ul>
build :: Build

-- | Time stamp indicating when this data object was created. Format is a
--   number expressed in Unix time as milliseconds (for example
--   "1469498468.057").
bCreationTime :: Lens' Build (Maybe UTCTime)

-- | Current status of the build. Possible build statuses include the
--   following: * <b>INITIALIZED</b> -- A new build has been defined, but
--   no files have been uploaded. You cannot create fleets for builds that
--   are in this status. When a build is successfully created, the build
--   status is set to this value. * <b>READY</b> -- The game build has been
--   successfully uploaded. You can now create new fleets for this build. *
--   <b>FAILED</b> -- The game build upload failed. You cannot create new
--   fleets for this build.
bStatus :: Lens' Build (Maybe BuildStatus)

-- | Operating system that the game server binaries are built to run on.
--   This value determines the type of fleet resources that you can use for
--   this build.
bOperatingSystem :: Lens' Build (Maybe OperatingSystem)

-- | Unique identifier for a build.
bBuildId :: Lens' Build (Maybe Text)

-- | Descriptive label that is associated with a build. Build names do not
--   need to be unique. It can be set using <tt>CreateBuild</tt> or
--   <tt>UpdateBuild</tt> .
bName :: Lens' Build (Maybe Text)

-- | Version that is associated with this build. Version strings do not
--   need to be unique. This value can be set using <tt>CreateBuild</tt> or
--   <tt>UpdateBuild</tt> .
bVersion :: Lens' Build (Maybe Text)

-- | File size of the uploaded game build, expressed in bytes. When the
--   build status is <tt>INITIALIZED</tt> , this value is 0.
bSizeOnDisk :: Lens' Build (Maybe Natural)

-- | Player information for use when creating player sessions using a game
--   session placement request with <tt>StartGameSessionPlacement</tt> .
--   
--   <i>See:</i> <a>desiredPlayerSession</a> smart constructor.
data DesiredPlayerSession

-- | Creates a value of <a>DesiredPlayerSession</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dpsPlayerData</a> - Developer-defined information related to a
--   player. Amazon GameLift does not use this data, so it can be formatted
--   as needed for use in the game.</li>
--   <li><a>dpsPlayerId</a> - Unique identifier for a player to associate
--   with the player session.</li>
--   </ul>
desiredPlayerSession :: DesiredPlayerSession

-- | Developer-defined information related to a player. Amazon GameLift
--   does not use this data, so it can be formatted as needed for use in
--   the game.
dpsPlayerData :: Lens' DesiredPlayerSession (Maybe Text)

-- | Unique identifier for a player to associate with the player session.
dpsPlayerId :: Lens' DesiredPlayerSession (Maybe Text)

-- | Current status of fleet capacity. The number of active instances
--   should match or be in the process of matching the number of desired
--   instances. Pending and terminating counts are non-zero only if fleet
--   capacity is adjusting to an <tt>UpdateFleetCapacity</tt> request, or
--   if access to resources is temporarily affected.
--   
--   Fleet-related operations include:
--   
--   <ul>
--   <li><tt>CreateFleet</tt></li>
--   <li><tt>ListFleets</tt></li>
--   <li><tt>DeleteFleet</tt></li>
--   <li>Describe fleets:</li>
--   <li><tt>DescribeFleetAttributes</tt></li>
--   <li><tt>DescribeFleetCapacity</tt></li>
--   <li><tt>DescribeFleetPortSettings</tt></li>
--   <li><tt>DescribeFleetUtilization</tt></li>
--   <li><tt>DescribeRuntimeConfiguration</tt></li>
--   <li><tt>DescribeEC2InstanceLimits</tt></li>
--   <li><tt>DescribeFleetEvents</tt></li>
--   <li>Update fleets:</li>
--   <li><tt>UpdateFleetAttributes</tt></li>
--   <li><tt>UpdateFleetCapacity</tt></li>
--   <li><tt>UpdateFleetPortSettings</tt></li>
--   <li><tt>UpdateRuntimeConfiguration</tt></li>
--   <li>Manage fleet actions:</li>
--   <li><tt>StartFleetActions</tt></li>
--   <li><tt>StopFleetActions</tt></li>
--   </ul>
--   
--   <i>See:</i> <a>ec2InstanceCounts</a> smart constructor.
data EC2InstanceCounts

-- | Creates a value of <a>EC2InstanceCounts</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>eicIdLE</a> - Number of active instances in the fleet that are
--   not currently hosting a game session.</li>
--   <li><a>eicTERMINATING</a> - Number of instances in the fleet that are
--   no longer active but haven't yet been terminated.</li>
--   <li><a>eicPENDING</a> - Number of instances in the fleet that are
--   starting but not yet active.</li>
--   <li><a>eicMAXIMUM</a> - Maximum value allowed for the fleet's instance
--   count.</li>
--   <li><a>eicDESIRED</a> - Ideal number of active instances in the
--   fleet.</li>
--   <li><a>eicMINIMUM</a> - Minimum value allowed for the fleet's instance
--   count.</li>
--   <li><a>eicACTIVE</a> - Actual number of active instances in the
--   fleet.</li>
--   </ul>
ec2InstanceCounts :: EC2InstanceCounts

-- | Number of active instances in the fleet that are not currently hosting
--   a game session.
eicIdLE :: Lens' EC2InstanceCounts (Maybe Natural)

-- | Number of instances in the fleet that are no longer active but haven't
--   yet been terminated.
eicTERMINATING :: Lens' EC2InstanceCounts (Maybe Natural)

-- | Number of instances in the fleet that are starting but not yet active.
eicPENDING :: Lens' EC2InstanceCounts (Maybe Natural)

-- | Maximum value allowed for the fleet's instance count.
eicMAXIMUM :: Lens' EC2InstanceCounts (Maybe Natural)

-- | Ideal number of active instances in the fleet.
eicDESIRED :: Lens' EC2InstanceCounts (Maybe Natural)

-- | Minimum value allowed for the fleet's instance count.
eicMINIMUM :: Lens' EC2InstanceCounts (Maybe Natural)

-- | Actual number of active instances in the fleet.
eicACTIVE :: Lens' EC2InstanceCounts (Maybe Natural)

-- | Maximum number of instances allowed based on the Amazon Elastic
--   Compute Cloud (Amazon EC2) instance type. Instance limits can be
--   retrieved by calling <tt>DescribeEC2InstanceLimits</tt> .
--   
--   <i>See:</i> <a>ec2InstanceLimit</a> smart constructor.
data EC2InstanceLimit

-- | Creates a value of <a>EC2InstanceLimit</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>eilEC2InstanceType</a> - Name of an EC2 instance type that is
--   supported in Amazon GameLift. A fleet instance type determines the
--   computing resources of each instance in the fleet, including CPU,
--   memory, storage, and networking capacity. Amazon GameLift supports the
--   following EC2 instance types. See <a>Amazon EC2 Instance Types</a> for
--   detailed descriptions.</li>
--   <li><a>eilCurrentInstances</a> - Number of instances of the specified
--   type that are currently in use by this AWS account.</li>
--   <li><a>eilInstanceLimit</a> - Number of instances allowed.</li>
--   </ul>
ec2InstanceLimit :: EC2InstanceLimit

-- | Name of an EC2 instance type that is supported in Amazon GameLift. A
--   fleet instance type determines the computing resources of each
--   instance in the fleet, including CPU, memory, storage, and networking
--   capacity. Amazon GameLift supports the following EC2 instance types.
--   See <a>Amazon EC2 Instance Types</a> for detailed descriptions.
eilEC2InstanceType :: Lens' EC2InstanceLimit (Maybe EC2InstanceType)

-- | Number of instances of the specified type that are currently in use by
--   this AWS account.
eilCurrentInstances :: Lens' EC2InstanceLimit (Maybe Natural)

-- | Number of instances allowed.
eilInstanceLimit :: Lens' EC2InstanceLimit (Maybe Natural)

-- | Log entry describing an event that involves Amazon GameLift resources
--   (such as a fleet). In addition to tracking activity, event codes and
--   messages can provide additional information for troubleshooting and
--   debugging problems.
--   
--   <i>See:</i> <a>event</a> smart constructor.
data Event

-- | Creates a value of <a>Event</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>eResourceId</a> - Unique identifier for an event resource, such
--   as a fleet ID.</li>
--   <li><a>ePreSignedLogURL</a> - Location of stored logs with additional
--   detail that is related to the event. This is useful for debugging
--   issues. The URL is valid for 15 minutes. You can also access fleet
--   creation logs through the Amazon GameLift console.</li>
--   <li><a>eEventTime</a> - Time stamp indicating when this event
--   occurred. Format is a number expressed in Unix time as milliseconds
--   (for example "1469498468.057").</li>
--   <li><a>eMessage</a> - Additional information related to the
--   event.</li>
--   <li><a>eEventCode</a> - Type of event being logged. The following
--   events are currently in use: <b>Fleet creation events:</b> *
--   FLEET_CREATED -- A fleet record was successfully created with a status
--   of <tt>NEW</tt> . Event messaging includes the fleet ID. *
--   FLEET_STATE_DOWNLOADING -- Fleet status changed from <tt>NEW</tt> to
--   <tt>DOWNLOADING</tt> . The compressed build has started downloading to
--   a fleet instance for installation. * FLEET_BINARY_DOWNLOAD_FAILED --
--   The build failed to download to the fleet instance. *
--   FLEET_CREATION_EXTRACTING_BUILD – The game server build was
--   successfully downloaded to an instance, and the build files are now
--   being extracted from the uploaded build and saved to an instance.
--   Failure at this stage prevents a fleet from moving to <tt>ACTIVE</tt>
--   status. Logs for this stage display a list of the files that are
--   extracted and saved on the instance. Access the logs by using the URL
--   in <i>PreSignedLogUrl</i> . * FLEET_CREATION_RUNNING_INSTALLER – The
--   game server build files were successfully extracted, and the Amazon
--   GameLift is now running the build's install script (if one is
--   included). Failure in this stage prevents a fleet from moving to
--   <tt>ACTIVE</tt> status. Logs for this stage list the installation
--   steps and whether or not the install completed successfully. Access
--   the logs by using the URL in <i>PreSignedLogUrl</i> . *
--   FLEET_CREATION_VALIDATING_RUNTIME_CONFIG -- The build process was
--   successful, and the Amazon GameLift is now verifying that the game
--   server launch paths, which are specified in the fleet's run-time
--   configuration, exist. If any listed launch path exists, Amazon
--   GameLift tries to launch a game server process and waits for the
--   process to report ready. Failures in this stage prevent a fleet from
--   moving to <tt>ACTIVE</tt> status. Logs for this stage list the launch
--   paths in the run-time configuration and indicate whether each is
--   found. Access the logs by using the URL in <i>PreSignedLogUrl</i> . *
--   FLEET_STATE_VALIDATING -- Fleet status changed from
--   <tt>DOWNLOADING</tt> to <tt>VALIDATING</tt> . *
--   FLEET_VALIDATION_LAUNCH_PATH_NOT_FOUND -- Validation of the run-time
--   configuration failed because the executable specified in a launch path
--   does not exist on the instance. * FLEET_STATE_BUILDING -- Fleet status
--   changed from <tt>VALIDATING</tt> to <tt>BUILDING</tt> . *
--   FLEET_VALIDATION_EXECUTABLE_RUNTIME_FAILURE -- Validation of the
--   run-time configuration failed because the executable specified in a
--   launch path failed to run on the fleet instance. *
--   FLEET_STATE_ACTIVATING -- Fleet status changed from <tt>BUILDING</tt>
--   to <tt>ACTIVATING</tt> . * FLEET_ACTIVATION_FAILED - The fleet failed
--   to successfully complete one of the steps in the fleet activation
--   process. This event code indicates that the game build was
--   successfully downloaded to a fleet instance, built, and validated, but
--   was not able to start a server process. A possible reason for failure
--   is that the game server is not reporting "process ready" to the Amazon
--   GameLift service. * FLEET_STATE_ACTIVE -- The fleet's status changed
--   from <tt>ACTIVATING</tt> to <tt>ACTIVE</tt> . The fleet is now ready
--   to host game sessions. <b>VPC peering events:</b> *
--   FLEET_VPC_PEERING_SUCCEEDED -- A VPC peering connection has been
--   established between the VPC for an Amazon GameLift fleet and a VPC in
--   your AWS account. * FLEET_VPC_PEERING_FAILED -- A requested VPC
--   peering connection has failed. Event details and status information
--   (see <tt>DescribeVpcPeeringConnections</tt> ) provide additional
--   detail. A common reason for peering failure is that the two VPCs have
--   overlapping CIDR blocks of IPv4 addresses. To resolve this, change the
--   CIDR block for the VPC in your AWS account. For more information on
--   VPC peering failures, see
--   <a>http://docs.aws.amazon.com/AmazonVPC/latest/PeeringGuide/invalid-peering-configurations.html</a>
--   * FLEET_VPC_PEERING_DELETED -- A VPC peering connection has been
--   successfully deleted. <b>Spot instance events:</b> *
--   INSTANCE_INTERRUPTED -- A spot instance was interrupted by EC2 with a
--   two-minute notification. <b>Other fleet events:</b> *
--   FLEET_SCALING_EVENT -- A change was made to the fleet's capacity
--   settings (desired instances, minimum/maximum scaling limits). Event
--   messaging includes the new capacity settings. *
--   FLEET_NEW_GAME_SESSION_PROTECTION_POLICY_UPDATED -- A change was made
--   to the fleet's game session protection policy setting. Event messaging
--   includes both the old and new policy setting. * FLEET_DELETED -- A
--   request to delete a fleet was initiated. * GENERIC_EVENT -- An
--   unspecified event has occurred.</li>
--   <li><a>eEventId</a> - Unique identifier for a fleet event.</li>
--   </ul>
event :: Event

-- | Unique identifier for an event resource, such as a fleet ID.
eResourceId :: Lens' Event (Maybe Text)

-- | Location of stored logs with additional detail that is related to the
--   event. This is useful for debugging issues. The URL is valid for 15
--   minutes. You can also access fleet creation logs through the Amazon
--   GameLift console.
ePreSignedLogURL :: Lens' Event (Maybe Text)

-- | Time stamp indicating when this event occurred. Format is a number
--   expressed in Unix time as milliseconds (for example "1469498468.057").
eEventTime :: Lens' Event (Maybe UTCTime)

-- | Additional information related to the event.
eMessage :: Lens' Event (Maybe Text)

-- | Type of event being logged. The following events are currently in use:
--   <b>Fleet creation events:</b> * FLEET_CREATED -- A fleet record was
--   successfully created with a status of <tt>NEW</tt> . Event messaging
--   includes the fleet ID. * FLEET_STATE_DOWNLOADING -- Fleet status
--   changed from <tt>NEW</tt> to <tt>DOWNLOADING</tt> . The compressed
--   build has started downloading to a fleet instance for installation. *
--   FLEET_BINARY_DOWNLOAD_FAILED -- The build failed to download to the
--   fleet instance. * FLEET_CREATION_EXTRACTING_BUILD – The game server
--   build was successfully downloaded to an instance, and the build files
--   are now being extracted from the uploaded build and saved to an
--   instance. Failure at this stage prevents a fleet from moving to
--   <tt>ACTIVE</tt> status. Logs for this stage display a list of the
--   files that are extracted and saved on the instance. Access the logs by
--   using the URL in <i>PreSignedLogUrl</i> . *
--   FLEET_CREATION_RUNNING_INSTALLER – The game server build files were
--   successfully extracted, and the Amazon GameLift is now running the
--   build's install script (if one is included). Failure in this stage
--   prevents a fleet from moving to <tt>ACTIVE</tt> status. Logs for this
--   stage list the installation steps and whether or not the install
--   completed successfully. Access the logs by using the URL in
--   <i>PreSignedLogUrl</i> . * FLEET_CREATION_VALIDATING_RUNTIME_CONFIG --
--   The build process was successful, and the Amazon GameLift is now
--   verifying that the game server launch paths, which are specified in
--   the fleet's run-time configuration, exist. If any listed launch path
--   exists, Amazon GameLift tries to launch a game server process and
--   waits for the process to report ready. Failures in this stage prevent
--   a fleet from moving to <tt>ACTIVE</tt> status. Logs for this stage
--   list the launch paths in the run-time configuration and indicate
--   whether each is found. Access the logs by using the URL in
--   <i>PreSignedLogUrl</i> . * FLEET_STATE_VALIDATING -- Fleet status
--   changed from <tt>DOWNLOADING</tt> to <tt>VALIDATING</tt> . *
--   FLEET_VALIDATION_LAUNCH_PATH_NOT_FOUND -- Validation of the run-time
--   configuration failed because the executable specified in a launch path
--   does not exist on the instance. * FLEET_STATE_BUILDING -- Fleet status
--   changed from <tt>VALIDATING</tt> to <tt>BUILDING</tt> . *
--   FLEET_VALIDATION_EXECUTABLE_RUNTIME_FAILURE -- Validation of the
--   run-time configuration failed because the executable specified in a
--   launch path failed to run on the fleet instance. *
--   FLEET_STATE_ACTIVATING -- Fleet status changed from <tt>BUILDING</tt>
--   to <tt>ACTIVATING</tt> . * FLEET_ACTIVATION_FAILED - The fleet failed
--   to successfully complete one of the steps in the fleet activation
--   process. This event code indicates that the game build was
--   successfully downloaded to a fleet instance, built, and validated, but
--   was not able to start a server process. A possible reason for failure
--   is that the game server is not reporting "process ready" to the Amazon
--   GameLift service. * FLEET_STATE_ACTIVE -- The fleet's status changed
--   from <tt>ACTIVATING</tt> to <tt>ACTIVE</tt> . The fleet is now ready
--   to host game sessions. <b>VPC peering events:</b> *
--   FLEET_VPC_PEERING_SUCCEEDED -- A VPC peering connection has been
--   established between the VPC for an Amazon GameLift fleet and a VPC in
--   your AWS account. * FLEET_VPC_PEERING_FAILED -- A requested VPC
--   peering connection has failed. Event details and status information
--   (see <tt>DescribeVpcPeeringConnections</tt> ) provide additional
--   detail. A common reason for peering failure is that the two VPCs have
--   overlapping CIDR blocks of IPv4 addresses. To resolve this, change the
--   CIDR block for the VPC in your AWS account. For more information on
--   VPC peering failures, see
--   <a>http://docs.aws.amazon.com/AmazonVPC/latest/PeeringGuide/invalid-peering-configurations.html</a>
--   * FLEET_VPC_PEERING_DELETED -- A VPC peering connection has been
--   successfully deleted. <b>Spot instance events:</b> *
--   INSTANCE_INTERRUPTED -- A spot instance was interrupted by EC2 with a
--   two-minute notification. <b>Other fleet events:</b> *
--   FLEET_SCALING_EVENT -- A change was made to the fleet's capacity
--   settings (desired instances, minimum/maximum scaling limits). Event
--   messaging includes the new capacity settings. *
--   FLEET_NEW_GAME_SESSION_PROTECTION_POLICY_UPDATED -- A change was made
--   to the fleet's game session protection policy setting. Event messaging
--   includes both the old and new policy setting. * FLEET_DELETED -- A
--   request to delete a fleet was initiated. * GENERIC_EVENT -- An
--   unspecified event has occurred.
eEventCode :: Lens' Event (Maybe EventCode)

-- | Unique identifier for a fleet event.
eEventId :: Lens' Event (Maybe Text)

-- | General properties describing a fleet.
--   
--   Fleet-related operations include:
--   
--   <ul>
--   <li><tt>CreateFleet</tt></li>
--   <li><tt>ListFleets</tt></li>
--   <li><tt>DeleteFleet</tt></li>
--   <li>Describe fleets:</li>
--   <li><tt>DescribeFleetAttributes</tt></li>
--   <li><tt>DescribeFleetCapacity</tt></li>
--   <li><tt>DescribeFleetPortSettings</tt></li>
--   <li><tt>DescribeFleetUtilization</tt></li>
--   <li><tt>DescribeRuntimeConfiguration</tt></li>
--   <li><tt>DescribeEC2InstanceLimits</tt></li>
--   <li><tt>DescribeFleetEvents</tt></li>
--   <li>Update fleets:</li>
--   <li><tt>UpdateFleetAttributes</tt></li>
--   <li><tt>UpdateFleetCapacity</tt></li>
--   <li><tt>UpdateFleetPortSettings</tt></li>
--   <li><tt>UpdateRuntimeConfiguration</tt></li>
--   <li>Manage fleet actions:</li>
--   <li><tt>StartFleetActions</tt></li>
--   <li><tt>StopFleetActions</tt></li>
--   </ul>
--   
--   <i>See:</i> <a>fleetAttributes</a> smart constructor.
data FleetAttributes

-- | Creates a value of <a>FleetAttributes</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>faCreationTime</a> - Time stamp indicating when this data
--   object was created. Format is a number expressed in Unix time as
--   milliseconds (for example "1469498468.057").</li>
--   <li><a>faStatus</a> - Current status of the fleet. Possible fleet
--   statuses include the following: * <b>NEW</b> -- A new fleet has been
--   defined and desired instances is set to 1. *
--   <b>DOWNLOADING<i>VALIDATING</i>BUILDING/ACTIVATING</b> -- Amazon
--   GameLift is setting up the new fleet, creating new instances with the
--   game build and starting server processes. * <b>ACTIVE</b> -- Hosts can
--   now accept game sessions. * <b>ERROR</b> -- An error occurred when
--   downloading, validating, building, or activating the fleet. *
--   <b>DELETING</b> -- Hosts are responding to a delete fleet request. *
--   <b>TERMINATED</b> -- The fleet no longer exists.</li>
--   <li><a>faServerLaunchParameters</a> - Game server launch parameters
--   specified for fleets created before 2016-08-04 (or AWS SDK v.
--   0.12.16). Server launch parameters for fleets created after this date
--   are specified in the fleet's <a>RuntimeConfiguration</a> .</li>
--   <li><a>faLogPaths</a> - Location of default log files. When a server
--   process is shut down, Amazon GameLift captures and stores any log
--   files in this location. These logs are in addition to game session
--   logs; see more on game session logs in the <a>Amazon GameLift
--   Developer Guide</a> . If no default log path for a fleet is specified,
--   Amazon GameLift automatically uploads logs that are stored on each
--   instance at <tt>C:gamelogs</tt> (for Windows) or
--   <tt><i>local</i>game/logs</tt> (for Linux). Use the Amazon GameLift
--   console to access stored logs.</li>
--   <li><a>faOperatingSystem</a> - Operating system of the fleet's
--   computing resources. A fleet's operating system depends on the OS
--   specified for the build that is deployed on this fleet.</li>
--   <li><a>faBuildId</a> - Unique identifier for a build.</li>
--   <li><a>faFleetARN</a> - Identifier for a fleet that is unique across
--   all regions.</li>
--   <li><a>faFleetType</a> - Indicates whether the fleet uses on-demand or
--   spot instances. A spot instance in use may be interrupted with a
--   two-minute notification.</li>
--   <li><a>faTerminationTime</a> - Time stamp indicating when this data
--   object was terminated. Format is a number expressed in Unix time as
--   milliseconds (for example "1469498468.057").</li>
--   <li><a>faInstanceType</a> - EC2 instance type indicating the computing
--   resources of each instance in the fleet, including CPU, memory,
--   storage, and networking capacity. See <a>Amazon EC2 Instance Types</a>
--   for detailed descriptions.</li>
--   <li><a>faStoppedActions</a> - List of fleet actions that have been
--   suspended using <tt>StopFleetActions</tt> . This includes
--   auto-scaling.</li>
--   <li><a>faNewGameSessionProtectionPolicy</a> - Type of game session
--   protection to set for all new instances started in the fleet. *
--   <b>NoProtection</b> -- The game session can be terminated during a
--   scale-down event. * <b>FullProtection</b> -- If the game session is in
--   an <tt>ACTIVE</tt> status, it cannot be terminated during a scale-down
--   event.</li>
--   <li><a>faName</a> - Descriptive label that is associated with a fleet.
--   Fleet names do not need to be unique.</li>
--   <li><a>faServerLaunchPath</a> - Path to a game server executable in
--   the fleet's build, specified for fleets created before 2016-08-04 (or
--   AWS SDK v. 0.12.16). Server launch paths for fleets created after this
--   date are specified in the fleet's <a>RuntimeConfiguration</a> .</li>
--   <li><a>faMetricGroups</a> - Names of metric groups that this fleet is
--   included in. In Amazon CloudWatch, you can view metrics for an
--   individual fleet or aggregated metrics for fleets that are in a fleet
--   metric group. A fleet can be included in only one metric group at a
--   time.</li>
--   <li><a>faFleetId</a> - Unique identifier for a fleet.</li>
--   <li><a>faDescription</a> - Human-readable description of the
--   fleet.</li>
--   <li><a>faResourceCreationLimitPolicy</a> - Fleet policy to limit the
--   number of game sessions an individual player can create over a span of
--   time.</li>
--   </ul>
fleetAttributes :: FleetAttributes

-- | Time stamp indicating when this data object was created. Format is a
--   number expressed in Unix time as milliseconds (for example
--   "1469498468.057").
faCreationTime :: Lens' FleetAttributes (Maybe UTCTime)

-- | Current status of the fleet. Possible fleet statuses include the
--   following: * <b>NEW</b> -- A new fleet has been defined and desired
--   instances is set to 1. *
--   <b>DOWNLOADING<i>VALIDATING</i>BUILDING/ACTIVATING</b> -- Amazon
--   GameLift is setting up the new fleet, creating new instances with the
--   game build and starting server processes. * <b>ACTIVE</b> -- Hosts can
--   now accept game sessions. * <b>ERROR</b> -- An error occurred when
--   downloading, validating, building, or activating the fleet. *
--   <b>DELETING</b> -- Hosts are responding to a delete fleet request. *
--   <b>TERMINATED</b> -- The fleet no longer exists.
faStatus :: Lens' FleetAttributes (Maybe FleetStatus)

-- | Game server launch parameters specified for fleets created before
--   2016-08-04 (or AWS SDK v. 0.12.16). Server launch parameters for
--   fleets created after this date are specified in the fleet's
--   <a>RuntimeConfiguration</a> .
faServerLaunchParameters :: Lens' FleetAttributes (Maybe Text)

-- | Location of default log files. When a server process is shut down,
--   Amazon GameLift captures and stores any log files in this location.
--   These logs are in addition to game session logs; see more on game
--   session logs in the <a>Amazon GameLift Developer Guide</a> . If no
--   default log path for a fleet is specified, Amazon GameLift
--   automatically uploads logs that are stored on each instance at
--   <tt>C:gamelogs</tt> (for Windows) or <tt><i>local</i>game/logs</tt>
--   (for Linux). Use the Amazon GameLift console to access stored logs.
faLogPaths :: Lens' FleetAttributes [Text]

-- | Operating system of the fleet's computing resources. A fleet's
--   operating system depends on the OS specified for the build that is
--   deployed on this fleet.
faOperatingSystem :: Lens' FleetAttributes (Maybe OperatingSystem)

-- | Unique identifier for a build.
faBuildId :: Lens' FleetAttributes (Maybe Text)

-- | Identifier for a fleet that is unique across all regions.
faFleetARN :: Lens' FleetAttributes (Maybe Text)

-- | Indicates whether the fleet uses on-demand or spot instances. A spot
--   instance in use may be interrupted with a two-minute notification.
faFleetType :: Lens' FleetAttributes (Maybe FleetType)

-- | Time stamp indicating when this data object was terminated. Format is
--   a number expressed in Unix time as milliseconds (for example
--   "1469498468.057").
faTerminationTime :: Lens' FleetAttributes (Maybe UTCTime)

-- | EC2 instance type indicating the computing resources of each instance
--   in the fleet, including CPU, memory, storage, and networking capacity.
--   See <a>Amazon EC2 Instance Types</a> for detailed descriptions.
faInstanceType :: Lens' FleetAttributes (Maybe EC2InstanceType)

-- | List of fleet actions that have been suspended using
--   <tt>StopFleetActions</tt> . This includes auto-scaling.
faStoppedActions :: Lens' FleetAttributes (Maybe (NonEmpty FleetAction))

-- | Type of game session protection to set for all new instances started
--   in the fleet. * <b>NoProtection</b> -- The game session can be
--   terminated during a scale-down event. * <b>FullProtection</b> -- If
--   the game session is in an <tt>ACTIVE</tt> status, it cannot be
--   terminated during a scale-down event.
faNewGameSessionProtectionPolicy :: Lens' FleetAttributes (Maybe ProtectionPolicy)

-- | Descriptive label that is associated with a fleet. Fleet names do not
--   need to be unique.
faName :: Lens' FleetAttributes (Maybe Text)

-- | Path to a game server executable in the fleet's build, specified for
--   fleets created before 2016-08-04 (or AWS SDK v. 0.12.16). Server
--   launch paths for fleets created after this date are specified in the
--   fleet's <a>RuntimeConfiguration</a> .
faServerLaunchPath :: Lens' FleetAttributes (Maybe Text)

-- | Names of metric groups that this fleet is included in. In Amazon
--   CloudWatch, you can view metrics for an individual fleet or aggregated
--   metrics for fleets that are in a fleet metric group. A fleet can be
--   included in only one metric group at a time.
faMetricGroups :: Lens' FleetAttributes [Text]

-- | Unique identifier for a fleet.
faFleetId :: Lens' FleetAttributes (Maybe Text)

-- | Human-readable description of the fleet.
faDescription :: Lens' FleetAttributes (Maybe Text)

-- | Fleet policy to limit the number of game sessions an individual player
--   can create over a span of time.
faResourceCreationLimitPolicy :: Lens' FleetAttributes (Maybe ResourceCreationLimitPolicy)

-- | Information about the fleet's capacity. Fleet capacity is measured in
--   EC2 instances. By default, new fleets have a capacity of one instance,
--   but can be updated as needed. The maximum number of instances for a
--   fleet is determined by the fleet's instance type.
--   
--   Fleet-related operations include:
--   
--   <ul>
--   <li><tt>CreateFleet</tt></li>
--   <li><tt>ListFleets</tt></li>
--   <li><tt>DeleteFleet</tt></li>
--   <li>Describe fleets:</li>
--   <li><tt>DescribeFleetAttributes</tt></li>
--   <li><tt>DescribeFleetCapacity</tt></li>
--   <li><tt>DescribeFleetPortSettings</tt></li>
--   <li><tt>DescribeFleetUtilization</tt></li>
--   <li><tt>DescribeRuntimeConfiguration</tt></li>
--   <li><tt>DescribeEC2InstanceLimits</tt></li>
--   <li><tt>DescribeFleetEvents</tt></li>
--   <li>Update fleets:</li>
--   <li><tt>UpdateFleetAttributes</tt></li>
--   <li><tt>UpdateFleetCapacity</tt></li>
--   <li><tt>UpdateFleetPortSettings</tt></li>
--   <li><tt>UpdateRuntimeConfiguration</tt></li>
--   <li>Manage fleet actions:</li>
--   <li><tt>StartFleetActions</tt></li>
--   <li><tt>StopFleetActions</tt></li>
--   </ul>
--   
--   <i>See:</i> <a>fleetCapacity</a> smart constructor.
data FleetCapacity

-- | Creates a value of <a>FleetCapacity</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>fcInstanceType</a> - Name of an EC2 instance type that is
--   supported in Amazon GameLift. A fleet instance type determines the
--   computing resources of each instance in the fleet, including CPU,
--   memory, storage, and networking capacity. Amazon GameLift supports the
--   following EC2 instance types. See <a>Amazon EC2 Instance Types</a> for
--   detailed descriptions.</li>
--   <li><a>fcFleetId</a> - Unique identifier for a fleet.</li>
--   <li><a>fcInstanceCounts</a> - Current status of fleet capacity.</li>
--   </ul>
fleetCapacity :: FleetCapacity

-- | Name of an EC2 instance type that is supported in Amazon GameLift. A
--   fleet instance type determines the computing resources of each
--   instance in the fleet, including CPU, memory, storage, and networking
--   capacity. Amazon GameLift supports the following EC2 instance types.
--   See <a>Amazon EC2 Instance Types</a> for detailed descriptions.
fcInstanceType :: Lens' FleetCapacity (Maybe EC2InstanceType)

-- | Unique identifier for a fleet.
fcFleetId :: Lens' FleetCapacity (Maybe Text)

-- | Current status of fleet capacity.
fcInstanceCounts :: Lens' FleetCapacity (Maybe EC2InstanceCounts)

-- | Current status of fleet utilization, including the number of game and
--   player sessions being hosted.
--   
--   Fleet-related operations include:
--   
--   <ul>
--   <li><tt>CreateFleet</tt></li>
--   <li><tt>ListFleets</tt></li>
--   <li><tt>DeleteFleet</tt></li>
--   <li>Describe fleets:</li>
--   <li><tt>DescribeFleetAttributes</tt></li>
--   <li><tt>DescribeFleetCapacity</tt></li>
--   <li><tt>DescribeFleetPortSettings</tt></li>
--   <li><tt>DescribeFleetUtilization</tt></li>
--   <li><tt>DescribeRuntimeConfiguration</tt></li>
--   <li><tt>DescribeEC2InstanceLimits</tt></li>
--   <li><tt>DescribeFleetEvents</tt></li>
--   <li>Update fleets:</li>
--   <li><tt>UpdateFleetAttributes</tt></li>
--   <li><tt>UpdateFleetCapacity</tt></li>
--   <li><tt>UpdateFleetPortSettings</tt></li>
--   <li><tt>UpdateRuntimeConfiguration</tt></li>
--   <li>Manage fleet actions:</li>
--   <li><tt>StartFleetActions</tt></li>
--   <li><tt>StopFleetActions</tt></li>
--   </ul>
--   
--   <i>See:</i> <a>fleetUtilization</a> smart constructor.
data FleetUtilization

-- | Creates a value of <a>FleetUtilization</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>fuActiveGameSessionCount</a> - Number of active game sessions
--   currently being hosted on all instances in the fleet.</li>
--   <li><a>fuMaximumPlayerSessionCount</a> - Maximum players allowed
--   across all game sessions currently being hosted on all instances in
--   the fleet.</li>
--   <li><a>fuCurrentPlayerSessionCount</a> - Number of active player
--   sessions currently being hosted on all instances in the fleet.</li>
--   <li><a>fuFleetId</a> - Unique identifier for a fleet.</li>
--   <li><a>fuActiveServerProcessCount</a> - Number of server processes in
--   an <tt>ACTIVE</tt> status currently running across all instances in
--   the fleet</li>
--   </ul>
fleetUtilization :: FleetUtilization

-- | Number of active game sessions currently being hosted on all instances
--   in the fleet.
fuActiveGameSessionCount :: Lens' FleetUtilization (Maybe Natural)

-- | Maximum players allowed across all game sessions currently being
--   hosted on all instances in the fleet.
fuMaximumPlayerSessionCount :: Lens' FleetUtilization (Maybe Natural)

-- | Number of active player sessions currently being hosted on all
--   instances in the fleet.
fuCurrentPlayerSessionCount :: Lens' FleetUtilization (Maybe Natural)

-- | Unique identifier for a fleet.
fuFleetId :: Lens' FleetUtilization (Maybe Text)

-- | Number of server processes in an <tt>ACTIVE</tt> status currently
--   running across all instances in the fleet
fuActiveServerProcessCount :: Lens' FleetUtilization (Maybe Natural)

-- | Set of key-value pairs that contain information about a game session.
--   When included in a game session request, these properties communicate
--   details to be used when setting up the new game session, such as to
--   specify a game mode, level, or map. Game properties are passed to the
--   game server process when initiating a new game session; the server
--   process uses the properties as appropriate. For more information, see
--   the <a>Amazon GameLift Developer Guide</a> .
--   
--   <i>See:</i> <a>gameProperty</a> smart constructor.
data GameProperty

-- | Creates a value of <a>GameProperty</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gpKey</a> - Game property identifier.</li>
--   <li><a>gpValue</a> - Game property value.</li>
--   </ul>
gameProperty :: Text -> Text -> GameProperty

-- | Game property identifier.
gpKey :: Lens' GameProperty Text

-- | Game property value.
gpValue :: Lens' GameProperty Text

-- | Properties describing a game session.
--   
--   A game session in ACTIVE status can host players. When a game session
--   ends, its status is set to <tt>TERMINATED</tt> .
--   
--   Once the session ends, the game session object is retained for 30
--   days. This means you can reuse idempotency token values after this
--   time. Game session logs are retained for 14 days.
--   
--   Game-session-related operations include:
--   
--   <ul>
--   <li><tt>CreateGameSession</tt></li>
--   <li><tt>DescribeGameSessions</tt></li>
--   <li><tt>DescribeGameSessionDetails</tt></li>
--   <li><tt>SearchGameSessions</tt></li>
--   <li><tt>UpdateGameSession</tt></li>
--   <li><tt>GetGameSessionLogUrl</tt></li>
--   <li>Game session placements</li>
--   <li><tt>StartGameSessionPlacement</tt></li>
--   <li><tt>DescribeGameSessionPlacement</tt></li>
--   <li><tt>StopGameSessionPlacement</tt></li>
--   </ul>
--   
--   <i>See:</i> <a>gameSession</a> smart constructor.
data GameSession

-- | Creates a value of <a>GameSession</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gsCreationTime</a> - Time stamp indicating when this data
--   object was created. Format is a number expressed in Unix time as
--   milliseconds (for example "1469498468.057").</li>
--   <li><a>gsStatus</a> - Current status of the game session. A game
--   session must have an <tt>ACTIVE</tt> status to have player
--   sessions.</li>
--   <li><a>gsGameProperties</a> - Set of custom properties for a game
--   session, formatted as key:value pairs. These properties are passed to
--   a game server process in the <a>GameSession</a> object with a request
--   to start a new game session (see <a>Start a Game Session</a> ). You
--   can search for active game sessions based on this custom data with
--   <tt>SearchGameSessions</tt> .</li>
--   <li><a>gsIPAddress</a> - IP address of the game session. To connect to
--   a Amazon GameLift game server, an app needs both the IP address and
--   port number.</li>
--   <li><a>gsGameSessionId</a> - Unique identifier for the game session. A
--   game session ARN has the following format:
--   <tt>arn:aws:gamelift:<a>region</a>::gamesession<i><a>ID</a></i><a>ID
--   string or idempotency token</a></tt> .</li>
--   <li><a>gsMatchmakerData</a> - Information about the matchmaking
--   process that was used to create the game session. It is in JSON
--   syntax, formatted as a string. In addition the matchmaking
--   configuration used, it contains data on all players assigned to the
--   match, including player attributes and team assignments. For more
--   details on matchmaker data, see <a>Match Data</a> . Matchmaker data is
--   useful when requesting match backfills, and is updated whenever new
--   players are added during a successful backfill (see
--   <tt>StartMatchBackfill</tt> ).</li>
--   <li><a>gsMaximumPlayerSessionCount</a> - Maximum number of players
--   that can be connected simultaneously to the game session.</li>
--   <li><a>gsTerminationTime</a> - Time stamp indicating when this data
--   object was terminated. Format is a number expressed in Unix time as
--   milliseconds (for example "1469498468.057").</li>
--   <li><a>gsPlayerSessionCreationPolicy</a> - Indicates whether or not
--   the game session is accepting new players.</li>
--   <li><a>gsName</a> - Descriptive label that is associated with a game
--   session. Session names do not need to be unique.</li>
--   <li><a>gsCurrentPlayerSessionCount</a> - Number of players currently
--   in the game session.</li>
--   <li><a>gsStatusReason</a> - Provides additional information about game
--   session status. <tt>INTERRUPTED</tt> indicates that the game session
--   was hosted on a spot instance that was reclaimed, causing the active
--   game session to be terminated.</li>
--   <li><a>gsGameSessionData</a> - Set of custom game session properties,
--   formatted as a single string value. This data is passed to a game
--   server process in the <a>GameSession</a> object with a request to
--   start a new game session (see <a>Start a Game Session</a> ).</li>
--   <li><a>gsFleetId</a> - Unique identifier for a fleet that the game
--   session is running on.</li>
--   <li><a>gsCreatorId</a> - Unique identifier for a player. This ID is
--   used to enforce a resource protection policy (if one exists), that
--   limits the number of game sessions a player can create.</li>
--   <li><a>gsPort</a> - Port number for the game session. To connect to a
--   Amazon GameLift game server, an app needs both the IP address and port
--   number.</li>
--   </ul>
gameSession :: GameSession

-- | Time stamp indicating when this data object was created. Format is a
--   number expressed in Unix time as milliseconds (for example
--   "1469498468.057").
gsCreationTime :: Lens' GameSession (Maybe UTCTime)

-- | Current status of the game session. A game session must have an
--   <tt>ACTIVE</tt> status to have player sessions.
gsStatus :: Lens' GameSession (Maybe GameSessionStatus)

-- | Set of custom properties for a game session, formatted as key:value
--   pairs. These properties are passed to a game server process in the
--   <a>GameSession</a> object with a request to start a new game session
--   (see <a>Start a Game Session</a> ). You can search for active game
--   sessions based on this custom data with <tt>SearchGameSessions</tt> .
gsGameProperties :: Lens' GameSession [GameProperty]

-- | IP address of the game session. To connect to a Amazon GameLift game
--   server, an app needs both the IP address and port number.
gsIPAddress :: Lens' GameSession (Maybe Text)

-- | Unique identifier for the game session. A game session ARN has the
--   following format:
--   <tt>arn:aws:gamelift:<a>region</a>::gamesession<i><a>ID</a></i><a>ID
--   string or idempotency token</a></tt> .
gsGameSessionId :: Lens' GameSession (Maybe Text)

-- | Information about the matchmaking process that was used to create the
--   game session. It is in JSON syntax, formatted as a string. In addition
--   the matchmaking configuration used, it contains data on all players
--   assigned to the match, including player attributes and team
--   assignments. For more details on matchmaker data, see <a>Match
--   Data</a> . Matchmaker data is useful when requesting match backfills,
--   and is updated whenever new players are added during a successful
--   backfill (see <tt>StartMatchBackfill</tt> ).
gsMatchmakerData :: Lens' GameSession (Maybe Text)

-- | Maximum number of players that can be connected simultaneously to the
--   game session.
gsMaximumPlayerSessionCount :: Lens' GameSession (Maybe Natural)

-- | Time stamp indicating when this data object was terminated. Format is
--   a number expressed in Unix time as milliseconds (for example
--   "1469498468.057").
gsTerminationTime :: Lens' GameSession (Maybe UTCTime)

-- | Indicates whether or not the game session is accepting new players.
gsPlayerSessionCreationPolicy :: Lens' GameSession (Maybe PlayerSessionCreationPolicy)

-- | Descriptive label that is associated with a game session. Session
--   names do not need to be unique.
gsName :: Lens' GameSession (Maybe Text)

-- | Number of players currently in the game session.
gsCurrentPlayerSessionCount :: Lens' GameSession (Maybe Natural)

-- | Provides additional information about game session status.
--   <tt>INTERRUPTED</tt> indicates that the game session was hosted on a
--   spot instance that was reclaimed, causing the active game session to
--   be terminated.
gsStatusReason :: Lens' GameSession (Maybe GameSessionStatusReason)

-- | Set of custom game session properties, formatted as a single string
--   value. This data is passed to a game server process in the
--   <a>GameSession</a> object with a request to start a new game session
--   (see <a>Start a Game Session</a> ).
gsGameSessionData :: Lens' GameSession (Maybe Text)

-- | Unique identifier for a fleet that the game session is running on.
gsFleetId :: Lens' GameSession (Maybe Text)

-- | Unique identifier for a player. This ID is used to enforce a resource
--   protection policy (if one exists), that limits the number of game
--   sessions a player can create.
gsCreatorId :: Lens' GameSession (Maybe Text)

-- | Port number for the game session. To connect to a Amazon GameLift game
--   server, an app needs both the IP address and port number.
gsPort :: Lens' GameSession (Maybe Natural)

-- | Connection information for the new game session that is created with
--   matchmaking. (with <tt>StartMatchmaking</tt> ). Once a match is set,
--   the FlexMatch engine places the match and creates a new game session
--   for it. This information, including the game session endpoint and
--   player sessions for each player in the original matchmaking request,
--   is added to the <a>MatchmakingTicket</a> , which can be retrieved by
--   calling <tt>DescribeMatchmaking</tt> .
--   
--   <i>See:</i> <a>gameSessionConnectionInfo</a> smart constructor.
data GameSessionConnectionInfo

-- | Creates a value of <a>GameSessionConnectionInfo</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gsciMatchedPlayerSessions</a> - Collection of player session
--   IDs, one for each player ID that was included in the original
--   matchmaking request.</li>
--   <li><a>gsciIPAddress</a> - IP address of the game session. To connect
--   to a Amazon GameLift game server, an app needs both the IP address and
--   port number.</li>
--   <li><a>gsciGameSessionARN</a> - Amazon Resource Name (<a>ARN</a> )
--   that is assigned to a game session and uniquely identifies it.</li>
--   <li><a>gsciPort</a> - Port number for the game session. To connect to
--   a Amazon GameLift game server, an app needs both the IP address and
--   port number.</li>
--   </ul>
gameSessionConnectionInfo :: GameSessionConnectionInfo

-- | Collection of player session IDs, one for each player ID that was
--   included in the original matchmaking request.
gsciMatchedPlayerSessions :: Lens' GameSessionConnectionInfo [MatchedPlayerSession]

-- | IP address of the game session. To connect to a Amazon GameLift game
--   server, an app needs both the IP address and port number.
gsciIPAddress :: Lens' GameSessionConnectionInfo (Maybe Text)

-- | Amazon Resource Name (<a>ARN</a> ) that is assigned to a game session
--   and uniquely identifies it.
gsciGameSessionARN :: Lens' GameSessionConnectionInfo (Maybe Text)

-- | Port number for the game session. To connect to a Amazon GameLift game
--   server, an app needs both the IP address and port number.
gsciPort :: Lens' GameSessionConnectionInfo (Maybe Natural)

-- | A game session's properties plus the protection policy currently in
--   force.
--   
--   <i>See:</i> <a>gameSessionDetail</a> smart constructor.
data GameSessionDetail

-- | Creates a value of <a>GameSessionDetail</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gsdGameSession</a> - Object that describes a game session.</li>
--   <li><a>gsdProtectionPolicy</a> - Current status of protection for the
--   game session. * <b>NoProtection</b> -- The game session can be
--   terminated during a scale-down event. * <b>FullProtection</b> -- If
--   the game session is in an <tt>ACTIVE</tt> status, it cannot be
--   terminated during a scale-down event.</li>
--   </ul>
gameSessionDetail :: GameSessionDetail

-- | Object that describes a game session.
gsdGameSession :: Lens' GameSessionDetail (Maybe GameSession)

-- | Current status of protection for the game session. *
--   <b>NoProtection</b> -- The game session can be terminated during a
--   scale-down event. * <b>FullProtection</b> -- If the game session is in
--   an <tt>ACTIVE</tt> status, it cannot be terminated during a scale-down
--   event.
gsdProtectionPolicy :: Lens' GameSessionDetail (Maybe ProtectionPolicy)

-- | Object that describes a <tt>StartGameSessionPlacement</tt> request.
--   This object includes the full details of the original request plus the
--   current status and start/end time stamps.
--   
--   Game session placement-related operations include:
--   
--   <ul>
--   <li><tt>StartGameSessionPlacement</tt></li>
--   <li><tt>DescribeGameSessionPlacement</tt></li>
--   <li><tt>StopGameSessionPlacement</tt></li>
--   </ul>
--   
--   <i>See:</i> <a>gameSessionPlacement</a> smart constructor.
data GameSessionPlacement

-- | Creates a value of <a>GameSessionPlacement</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gspStatus</a> - Current status of the game session placement
--   request. * <b>PENDING</b> -- The placement request is currently in the
--   queue waiting to be processed. * <b>FULFILLED</b> -- A new game
--   session and player sessions (if requested) have been successfully
--   created. Values for <i>GameSessionArn</i> and <i>GameSessionRegion</i>
--   are available. * <b>CANCELLED</b> -- The placement request was
--   canceled with a call to <tt>StopGameSessionPlacement</tt> . *
--   <b>TIMED_OUT</b> -- A new game session was not successfully created
--   before the time limit expired. You can resubmit the placement request
--   as needed.</li>
--   <li><a>gspPlacementId</a> - Unique identifier for a game session
--   placement.</li>
--   <li><a>gspGameProperties</a> - Set of custom properties for a game
--   session, formatted as key:value pairs. These properties are passed to
--   a game server process in the <a>GameSession</a> object with a request
--   to start a new game session (see <a>Start a Game Session</a> ).</li>
--   <li><a>gspIPAddress</a> - IP address of the game session. To connect
--   to a Amazon GameLift game server, an app needs both the IP address and
--   port number. This value is set once the new game session is placed
--   (placement status is <tt>FULFILLED</tt> ).</li>
--   <li><a>gspGameSessionName</a> - Descriptive label that is associated
--   with a game session. Session names do not need to be unique.</li>
--   <li><a>gspStartTime</a> - Time stamp indicating when this request was
--   placed in the queue. Format is a number expressed in Unix time as
--   milliseconds (for example "1469498468.057").</li>
--   <li><a>gspGameSessionId</a> - Unique identifier for the game session.
--   This value is set once the new game session is placed (placement
--   status is <tt>FULFILLED</tt> ).</li>
--   <li><a>gspGameSessionRegion</a> - Name of the region where the game
--   session created by this placement request is running. This value is
--   set once the new game session is placed (placement status is
--   <tt>FULFILLED</tt> ).</li>
--   <li><a>gspMatchmakerData</a> - Information on the matchmaking process
--   for this game. Data is in JSON syntax, formatted as a string. It
--   identifies the matchmaking configuration used to create the match, and
--   contains data on all players assigned to the match, including player
--   attributes and team assignments. For more details on matchmaker data,
--   see <a>Match Data</a> .</li>
--   <li><a>gspMaximumPlayerSessionCount</a> - Maximum number of players
--   that can be connected simultaneously to the game session.</li>
--   <li><a>gspEndTime</a> - Time stamp indicating when this request was
--   completed, canceled, or timed out.</li>
--   <li><a>gspGameSessionARN</a> - Identifier for the game session created
--   by this placement request. This value is set once the new game session
--   is placed (placement status is <tt>FULFILLED</tt> ). This identifier
--   is unique across all regions. You can use this value as a
--   <tt>GameSessionId</tt> value as needed.</li>
--   <li><a>gspPlayerLatencies</a> - Set of values, expressed in
--   milliseconds, indicating the amount of latency that a player
--   experiences when connected to AWS regions.</li>
--   <li><a>gspGameSessionData</a> - Set of custom game session properties,
--   formatted as a single string value. This data is passed to a game
--   server process in the <a>GameSession</a> object with a request to
--   start a new game session (see <a>Start a Game Session</a> ).</li>
--   <li><a>gspGameSessionQueueName</a> - Descriptive label that is
--   associated with game session queue. Queue names must be unique within
--   each region.</li>
--   <li><a>gspPlacedPlayerSessions</a> - Collection of information on
--   player sessions created in response to the game session placement
--   request. These player sessions are created only once a new game
--   session is successfully placed (placement status is <tt>FULFILLED</tt>
--   ). This information includes the player ID (as provided in the
--   placement request) and the corresponding player session ID. Retrieve
--   full player sessions by calling <tt>DescribePlayerSessions</tt> with
--   the player session ID.</li>
--   <li><a>gspPort</a> - Port number for the game session. To connect to a
--   Amazon GameLift game server, an app needs both the IP address and port
--   number. This value is set once the new game session is placed
--   (placement status is <tt>FULFILLED</tt> ).</li>
--   </ul>
gameSessionPlacement :: GameSessionPlacement

-- | Current status of the game session placement request. * <b>PENDING</b>
--   -- The placement request is currently in the queue waiting to be
--   processed. * <b>FULFILLED</b> -- A new game session and player
--   sessions (if requested) have been successfully created. Values for
--   <i>GameSessionArn</i> and <i>GameSessionRegion</i> are available. *
--   <b>CANCELLED</b> -- The placement request was canceled with a call to
--   <tt>StopGameSessionPlacement</tt> . * <b>TIMED_OUT</b> -- A new game
--   session was not successfully created before the time limit expired.
--   You can resubmit the placement request as needed.
gspStatus :: Lens' GameSessionPlacement (Maybe GameSessionPlacementState)

-- | Unique identifier for a game session placement.
gspPlacementId :: Lens' GameSessionPlacement (Maybe Text)

-- | Set of custom properties for a game session, formatted as key:value
--   pairs. These properties are passed to a game server process in the
--   <a>GameSession</a> object with a request to start a new game session
--   (see <a>Start a Game Session</a> ).
gspGameProperties :: Lens' GameSessionPlacement [GameProperty]

-- | IP address of the game session. To connect to a Amazon GameLift game
--   server, an app needs both the IP address and port number. This value
--   is set once the new game session is placed (placement status is
--   <tt>FULFILLED</tt> ).
gspIPAddress :: Lens' GameSessionPlacement (Maybe Text)

-- | Descriptive label that is associated with a game session. Session
--   names do not need to be unique.
gspGameSessionName :: Lens' GameSessionPlacement (Maybe Text)

-- | Time stamp indicating when this request was placed in the queue.
--   Format is a number expressed in Unix time as milliseconds (for example
--   "1469498468.057").
gspStartTime :: Lens' GameSessionPlacement (Maybe UTCTime)

-- | Unique identifier for the game session. This value is set once the new
--   game session is placed (placement status is <tt>FULFILLED</tt> ).
gspGameSessionId :: Lens' GameSessionPlacement (Maybe Text)

-- | Name of the region where the game session created by this placement
--   request is running. This value is set once the new game session is
--   placed (placement status is <tt>FULFILLED</tt> ).
gspGameSessionRegion :: Lens' GameSessionPlacement (Maybe Text)

-- | Information on the matchmaking process for this game. Data is in JSON
--   syntax, formatted as a string. It identifies the matchmaking
--   configuration used to create the match, and contains data on all
--   players assigned to the match, including player attributes and team
--   assignments. For more details on matchmaker data, see <a>Match
--   Data</a> .
gspMatchmakerData :: Lens' GameSessionPlacement (Maybe Text)

-- | Maximum number of players that can be connected simultaneously to the
--   game session.
gspMaximumPlayerSessionCount :: Lens' GameSessionPlacement (Maybe Natural)

-- | Time stamp indicating when this request was completed, canceled, or
--   timed out.
gspEndTime :: Lens' GameSessionPlacement (Maybe UTCTime)

-- | Identifier for the game session created by this placement request.
--   This value is set once the new game session is placed (placement
--   status is <tt>FULFILLED</tt> ). This identifier is unique across all
--   regions. You can use this value as a <tt>GameSessionId</tt> value as
--   needed.
gspGameSessionARN :: Lens' GameSessionPlacement (Maybe Text)

-- | Set of values, expressed in milliseconds, indicating the amount of
--   latency that a player experiences when connected to AWS regions.
gspPlayerLatencies :: Lens' GameSessionPlacement [PlayerLatency]

-- | Set of custom game session properties, formatted as a single string
--   value. This data is passed to a game server process in the
--   <a>GameSession</a> object with a request to start a new game session
--   (see <a>Start a Game Session</a> ).
gspGameSessionData :: Lens' GameSessionPlacement (Maybe Text)

-- | Descriptive label that is associated with game session queue. Queue
--   names must be unique within each region.
gspGameSessionQueueName :: Lens' GameSessionPlacement (Maybe Text)

-- | Collection of information on player sessions created in response to
--   the game session placement request. These player sessions are created
--   only once a new game session is successfully placed (placement status
--   is <tt>FULFILLED</tt> ). This information includes the player ID (as
--   provided in the placement request) and the corresponding player
--   session ID. Retrieve full player sessions by calling
--   <tt>DescribePlayerSessions</tt> with the player session ID.
gspPlacedPlayerSessions :: Lens' GameSessionPlacement [PlacedPlayerSession]

-- | Port number for the game session. To connect to a Amazon GameLift game
--   server, an app needs both the IP address and port number. This value
--   is set once the new game session is placed (placement status is
--   <tt>FULFILLED</tt> ).
gspPort :: Lens' GameSessionPlacement (Maybe Natural)

-- | Configuration of a queue that is used to process game session
--   placement requests. The queue configuration identifies several game
--   features:
--   
--   <ul>
--   <li>The destinations where a new game session can potentially be
--   hosted. Amazon GameLift tries these destinations in an order based on
--   either the queue's default order or player latency information, if
--   provided in a placement request. With latency information, Amazon
--   GameLift can place game sessions where the majority of players are
--   reporting the lowest possible latency.</li>
--   <li>The length of time that placement requests can wait in the queue
--   before timing out.</li>
--   <li>A set of optional latency policies that protect individual players
--   from high latencies, preventing game sessions from being placed where
--   any individual player is reporting latency higher than a policy's
--   maximum.</li>
--   </ul>
--   
--   Queue-related operations include:
--   
--   <ul>
--   <li><tt>CreateGameSessionQueue</tt></li>
--   <li><tt>DescribeGameSessionQueues</tt></li>
--   <li><tt>UpdateGameSessionQueue</tt></li>
--   <li><tt>DeleteGameSessionQueue</tt></li>
--   </ul>
--   
--   <i>See:</i> <a>gameSessionQueue</a> smart constructor.
data GameSessionQueue

-- | Creates a value of <a>GameSessionQueue</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gsqGameSessionQueueARN</a> - Amazon Resource Name (<a>ARN</a> )
--   that is assigned to a game session queue and uniquely identifies it.
--   Format is
--   <tt>arn:aws:gamelift:<a>region</a>::fleet/fleet-a1234567-b8c9-0d1e-2fa3-b45c6d7e8912</tt>
--   .</li>
--   <li><a>gsqPlayerLatencyPolicies</a> - Collection of latency policies
--   to apply when processing game sessions placement requests with player
--   latency information. Multiple policies are evaluated in order of the
--   maximum latency value, starting with the lowest latency values. With
--   just one policy, it is enforced at the start of the game session
--   placement for the duration period. With multiple policies, each policy
--   is enforced consecutively for its duration period. For example, a
--   queue might enforce a 60-second policy followed by a 120-second
--   policy, and then no policy for the remainder of the placement.</li>
--   <li><a>gsqTimeoutInSeconds</a> - Maximum time, in seconds, that a new
--   game session placement request remains in the queue. When a request
--   exceeds this time, the game session placement changes to a
--   <tt>TIMED_OUT</tt> status.</li>
--   <li><a>gsqDestinations</a> - List of fleets that can be used to
--   fulfill game session placement requests in the queue. Fleets are
--   identified by either a fleet ARN or a fleet alias ARN. Destinations
--   are listed in default preference order.</li>
--   <li><a>gsqName</a> - Descriptive label that is associated with game
--   session queue. Queue names must be unique within each region.</li>
--   </ul>
gameSessionQueue :: GameSessionQueue

-- | Amazon Resource Name (<a>ARN</a> ) that is assigned to a game session
--   queue and uniquely identifies it. Format is
--   <tt>arn:aws:gamelift:<a>region</a>::fleet/fleet-a1234567-b8c9-0d1e-2fa3-b45c6d7e8912</tt>
--   .
gsqGameSessionQueueARN :: Lens' GameSessionQueue (Maybe Text)

-- | Collection of latency policies to apply when processing game sessions
--   placement requests with player latency information. Multiple policies
--   are evaluated in order of the maximum latency value, starting with the
--   lowest latency values. With just one policy, it is enforced at the
--   start of the game session placement for the duration period. With
--   multiple policies, each policy is enforced consecutively for its
--   duration period. For example, a queue might enforce a 60-second policy
--   followed by a 120-second policy, and then no policy for the remainder
--   of the placement.
gsqPlayerLatencyPolicies :: Lens' GameSessionQueue [PlayerLatencyPolicy]

-- | Maximum time, in seconds, that a new game session placement request
--   remains in the queue. When a request exceeds this time, the game
--   session placement changes to a <tt>TIMED_OUT</tt> status.
gsqTimeoutInSeconds :: Lens' GameSessionQueue (Maybe Natural)

-- | List of fleets that can be used to fulfill game session placement
--   requests in the queue. Fleets are identified by either a fleet ARN or
--   a fleet alias ARN. Destinations are listed in default preference
--   order.
gsqDestinations :: Lens' GameSessionQueue [GameSessionQueueDestination]

-- | Descriptive label that is associated with game session queue. Queue
--   names must be unique within each region.
gsqName :: Lens' GameSessionQueue (Maybe Text)

-- | Fleet designated in a game session queue. Requests for new game
--   sessions in the queue are fulfilled by starting a new game session on
--   any destination configured for a queue.
--   
--   Queue-related operations include:
--   
--   <ul>
--   <li><tt>CreateGameSessionQueue</tt></li>
--   <li><tt>DescribeGameSessionQueues</tt></li>
--   <li><tt>UpdateGameSessionQueue</tt></li>
--   <li><tt>DeleteGameSessionQueue</tt></li>
--   </ul>
--   
--   <i>See:</i> <a>gameSessionQueueDestination</a> smart constructor.
data GameSessionQueueDestination

-- | Creates a value of <a>GameSessionQueueDestination</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gsqdDestinationARN</a> - Amazon Resource Name (ARN) assigned to
--   fleet or fleet alias. ARNs, which include a fleet ID or alias ID and a
--   region name, provide a unique identifier across all regions.</li>
--   </ul>
gameSessionQueueDestination :: GameSessionQueueDestination

-- | Amazon Resource Name (ARN) assigned to fleet or fleet alias. ARNs,
--   which include a fleet ID or alias ID and a region name, provide a
--   unique identifier across all regions.
gsqdDestinationARN :: Lens' GameSessionQueueDestination (Maybe Text)

-- | A range of IP addresses and port settings that allow inbound traffic
--   to connect to server processes on Amazon GameLift. Each game session
--   hosted on a fleet is assigned a unique combination of IP address and
--   port number, which must fall into the fleet's allowed ranges. This
--   combination is included in the <a>GameSession</a> object.
--   
--   <i>See:</i> <a>ipPermission</a> smart constructor.
data IPPermission

-- | Creates a value of <a>IPPermission</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ipFromPort</a> - Starting value for a range of allowed port
--   numbers.</li>
--   <li><a>ipToPort</a> - Ending value for a range of allowed port
--   numbers. Port numbers are end-inclusive. This value must be higher
--   than <tt>FromPort</tt> .</li>
--   <li><a>ipIPRange</a> - Range of allowed IP addresses. This value must
--   be expressed in CIDR notation. Example: "<tt>000.000.000.000/[subnet
--   mask]</tt> " or optionally the shortened version "<tt>0.0.0.0/[subnet
--   mask]</tt> ".</li>
--   <li><a>ipProtocol</a> - Network communication protocol used by the
--   fleet.</li>
--   </ul>
ipPermission :: Natural -> Natural -> Text -> IPProtocol -> IPPermission

-- | Starting value for a range of allowed port numbers.
ipFromPort :: Lens' IPPermission Natural

-- | Ending value for a range of allowed port numbers. Port numbers are
--   end-inclusive. This value must be higher than <tt>FromPort</tt> .
ipToPort :: Lens' IPPermission Natural

-- | Range of allowed IP addresses. This value must be expressed in CIDR
--   notation. Example: "<tt>000.000.000.000/[subnet mask]</tt> " or
--   optionally the shortened version "<tt>0.0.0.0/[subnet mask]</tt> ".
ipIPRange :: Lens' IPPermission Text

-- | Network communication protocol used by the fleet.
ipProtocol :: Lens' IPPermission IPProtocol

-- | Properties that describe an instance of a virtual computing resource
--   that hosts one or more game servers. A fleet may contain zero or more
--   instances.
--   
--   <i>See:</i> <a>instance'</a> smart constructor.
data Instance

-- | Creates a value of <a>Instance</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>iCreationTime</a> - Time stamp indicating when this data object
--   was created. Format is a number expressed in Unix time as milliseconds
--   (for example "1469498468.057").</li>
--   <li><a>iInstanceId</a> - Unique identifier for an instance.</li>
--   <li><a>iStatus</a> - Current status of the instance. Possible statuses
--   include the following: * <b>PENDING</b> -- The instance is in the
--   process of being created and launching server processes as defined in
--   the fleet's run-time configuration. * <b>ACTIVE</b> -- The instance
--   has been successfully created and at least one server process has
--   successfully launched and reported back to Amazon GameLift that it is
--   ready to host a game session. The instance is now considered ready to
--   host game sessions. * <b>TERMINATING</b> -- The instance is in the
--   process of shutting down. This may happen to reduce capacity during a
--   scaling down event or to recycle resources in the event of a
--   problem.</li>
--   <li><a>iIPAddress</a> - IP address assigned to the instance.</li>
--   <li><a>iOperatingSystem</a> - Operating system that is running on this
--   instance.</li>
--   <li><a>iType</a> - EC2 instance type that defines the computing
--   resources of this instance.</li>
--   <li><a>iFleetId</a> - Unique identifier for a fleet that the instance
--   is in.</li>
--   </ul>
instance' :: Instance

-- | Time stamp indicating when this data object was created. Format is a
--   number expressed in Unix time as milliseconds (for example
--   "1469498468.057").
iCreationTime :: Lens' Instance (Maybe UTCTime)

-- | Unique identifier for an instance.
iInstanceId :: Lens' Instance (Maybe Text)

-- | Current status of the instance. Possible statuses include the
--   following: * <b>PENDING</b> -- The instance is in the process of being
--   created and launching server processes as defined in the fleet's
--   run-time configuration. * <b>ACTIVE</b> -- The instance has been
--   successfully created and at least one server process has successfully
--   launched and reported back to Amazon GameLift that it is ready to host
--   a game session. The instance is now considered ready to host game
--   sessions. * <b>TERMINATING</b> -- The instance is in the process of
--   shutting down. This may happen to reduce capacity during a scaling
--   down event or to recycle resources in the event of a problem.
iStatus :: Lens' Instance (Maybe InstanceStatus)

-- | IP address assigned to the instance.
iIPAddress :: Lens' Instance (Maybe Text)

-- | Operating system that is running on this instance.
iOperatingSystem :: Lens' Instance (Maybe OperatingSystem)

-- | EC2 instance type that defines the computing resources of this
--   instance.
iType :: Lens' Instance (Maybe EC2InstanceType)

-- | Unique identifier for a fleet that the instance is in.
iFleetId :: Lens' Instance (Maybe Text)

-- | Information required to remotely connect to a fleet instance. Access
--   is requested by calling <tt>GetInstanceAccess</tt> .
--   
--   <i>See:</i> <a>instanceAccess</a> smart constructor.
data InstanceAccess

-- | Creates a value of <a>InstanceAccess</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>iaInstanceId</a> - Unique identifier for an instance being
--   accessed.</li>
--   <li><a>iaIPAddress</a> - IP address assigned to the instance.</li>
--   <li><a>iaOperatingSystem</a> - Operating system that is running on the
--   instance.</li>
--   <li><a>iaCredentials</a> - Credentials required to access the
--   instance.</li>
--   <li><a>iaFleetId</a> - Unique identifier for a fleet containing the
--   instance being accessed.</li>
--   </ul>
instanceAccess :: InstanceAccess

-- | Unique identifier for an instance being accessed.
iaInstanceId :: Lens' InstanceAccess (Maybe Text)

-- | IP address assigned to the instance.
iaIPAddress :: Lens' InstanceAccess (Maybe Text)

-- | Operating system that is running on the instance.
iaOperatingSystem :: Lens' InstanceAccess (Maybe OperatingSystem)

-- | Credentials required to access the instance.
iaCredentials :: Lens' InstanceAccess (Maybe InstanceCredentials)

-- | Unique identifier for a fleet containing the instance being accessed.
iaFleetId :: Lens' InstanceAccess (Maybe Text)

-- | Set of credentials required to remotely access a fleet instance.
--   Access credentials are requested by calling <tt>GetInstanceAccess</tt>
--   and returned in an <a>InstanceAccess</a> object.
--   
--   <i>See:</i> <a>instanceCredentials</a> smart constructor.
data InstanceCredentials

-- | Creates a value of <a>InstanceCredentials</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>icUserName</a> - User login string.</li>
--   <li><a>icSecret</a> - Secret string. For Windows instances, the secret
--   is a password for use with Windows Remote Desktop. For Linux
--   instances, it is a private key (which must be saved as a <tt>.pem</tt>
--   file) for use with SSH.</li>
--   </ul>
instanceCredentials :: InstanceCredentials

-- | User login string.
icUserName :: Lens' InstanceCredentials (Maybe Text)

-- | Secret string. For Windows instances, the secret is a password for use
--   with Windows Remote Desktop. For Linux instances, it is a private key
--   (which must be saved as a <tt>.pem</tt> file) for use with SSH.
icSecret :: Lens' InstanceCredentials (Maybe Text)

-- | Represents a new player session that is created as a result of a
--   successful FlexMatch match. A successful match automatically creates
--   new player sessions for every player ID in the original matchmaking
--   request.
--   
--   When players connect to the match's game session, they must include
--   both player ID and player session ID in order to claim their assigned
--   player slot.
--   
--   <i>See:</i> <a>matchedPlayerSession</a> smart constructor.
data MatchedPlayerSession

-- | Creates a value of <a>MatchedPlayerSession</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mpsPlayerSessionId</a> - Unique identifier for a player
--   session</li>
--   <li><a>mpsPlayerId</a> - Unique identifier for a player</li>
--   </ul>
matchedPlayerSession :: MatchedPlayerSession

-- | Unique identifier for a player session
mpsPlayerSessionId :: Lens' MatchedPlayerSession (Maybe Text)

-- | Unique identifier for a player
mpsPlayerId :: Lens' MatchedPlayerSession (Maybe Text)

-- | Guidelines for use with FlexMatch to match players into games. All
--   matchmaking requests must specify a matchmaking configuration.
--   
--   <i>See:</i> <a>matchmakingConfiguration</a> smart constructor.
data MatchmakingConfiguration

-- | Creates a value of <a>MatchmakingConfiguration</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mcCreationTime</a> - Time stamp indicating when this data
--   object was created. Format is a number expressed in Unix time as
--   milliseconds (for example "1469498468.057").</li>
--   <li><a>mcGameProperties</a> - Set of custom properties for a game
--   session, formatted as key:value pairs. These properties are passed to
--   a game server process in the <a>GameSession</a> object with a request
--   to start a new game session (see <a>Start a Game Session</a> ). This
--   information is added to the new <a>GameSession</a> object that is
--   created for a successful match.</li>
--   <li><a>mcRuleSetName</a> - Unique identifier for a matchmaking rule
--   set to use with this configuration. A matchmaking configuration can
--   only use rule sets that are defined in the same region.</li>
--   <li><a>mcAcceptanceTimeoutSeconds</a> - Length of time (in seconds) to
--   wait for players to accept a proposed match. If any player rejects the
--   match or fails to accept before the timeout, the ticket continues to
--   look for an acceptable match.</li>
--   <li><a>mcRequestTimeoutSeconds</a> - Maximum duration, in seconds,
--   that a matchmaking ticket can remain in process before timing out.
--   Requests that time out can be resubmitted as needed.</li>
--   <li><a>mcNotificationTarget</a> - SNS topic ARN that is set up to
--   receive matchmaking notifications.</li>
--   <li><a>mcGameSessionQueueARNs</a> - Amazon Resource Name (<a>ARN</a> )
--   that is assigned to a game session queue and uniquely identifies it.
--   Format is
--   <tt>arn:aws:gamelift:<a>region</a>::fleet/fleet-a1234567-b8c9-0d1e-2fa3-b45c6d7e8912</tt>
--   . These queues are used when placing game sessions for matches that
--   are created with this matchmaking configuration. Queues can be located
--   in any region.</li>
--   <li><a>mcName</a> - Unique identifier for a matchmaking configuration.
--   This name is used to identify the configuration associated with a
--   matchmaking request or ticket.</li>
--   <li><a>mcCustomEventData</a> - Information to attached to all events
--   related to the matchmaking configuration.</li>
--   <li><a>mcAcceptanceRequired</a> - Flag that determines whether or not
--   a match that was created with this configuration must be accepted by
--   the matched players. To require acceptance, set to TRUE.</li>
--   <li><a>mcGameSessionData</a> - Set of custom game session properties,
--   formatted as a single string value. This data is passed to a game
--   server process in the <a>GameSession</a> object with a request to
--   start a new game session (see <a>Start a Game Session</a> ). This
--   information is added to the new <a>GameSession</a> object that is
--   created for a successful match.</li>
--   <li><a>mcDescription</a> - Descriptive label that is associated with
--   matchmaking configuration.</li>
--   <li><a>mcAdditionalPlayerCount</a> - Number of player slots in a match
--   to keep open for future players. For example, if the configuration's
--   rule set specifies a match for a single 12-person team, and the
--   additional player count is set to 2, only 10 players are selected for
--   the match.</li>
--   </ul>
matchmakingConfiguration :: MatchmakingConfiguration

-- | Time stamp indicating when this data object was created. Format is a
--   number expressed in Unix time as milliseconds (for example
--   "1469498468.057").
mcCreationTime :: Lens' MatchmakingConfiguration (Maybe UTCTime)

-- | Set of custom properties for a game session, formatted as key:value
--   pairs. These properties are passed to a game server process in the
--   <a>GameSession</a> object with a request to start a new game session
--   (see <a>Start a Game Session</a> ). This information is added to the
--   new <a>GameSession</a> object that is created for a successful match.
mcGameProperties :: Lens' MatchmakingConfiguration [GameProperty]

-- | Unique identifier for a matchmaking rule set to use with this
--   configuration. A matchmaking configuration can only use rule sets that
--   are defined in the same region.
mcRuleSetName :: Lens' MatchmakingConfiguration (Maybe Text)

-- | Length of time (in seconds) to wait for players to accept a proposed
--   match. If any player rejects the match or fails to accept before the
--   timeout, the ticket continues to look for an acceptable match.
mcAcceptanceTimeoutSeconds :: Lens' MatchmakingConfiguration (Maybe Natural)

-- | Maximum duration, in seconds, that a matchmaking ticket can remain in
--   process before timing out. Requests that time out can be resubmitted
--   as needed.
mcRequestTimeoutSeconds :: Lens' MatchmakingConfiguration (Maybe Natural)

-- | SNS topic ARN that is set up to receive matchmaking notifications.
mcNotificationTarget :: Lens' MatchmakingConfiguration (Maybe Text)

-- | Amazon Resource Name (<a>ARN</a> ) that is assigned to a game session
--   queue and uniquely identifies it. Format is
--   <tt>arn:aws:gamelift:<a>region</a>::fleet/fleet-a1234567-b8c9-0d1e-2fa3-b45c6d7e8912</tt>
--   . These queues are used when placing game sessions for matches that
--   are created with this matchmaking configuration. Queues can be located
--   in any region.
mcGameSessionQueueARNs :: Lens' MatchmakingConfiguration [Text]

-- | Unique identifier for a matchmaking configuration. This name is used
--   to identify the configuration associated with a matchmaking request or
--   ticket.
mcName :: Lens' MatchmakingConfiguration (Maybe Text)

-- | Information to attached to all events related to the matchmaking
--   configuration.
mcCustomEventData :: Lens' MatchmakingConfiguration (Maybe Text)

-- | Flag that determines whether or not a match that was created with this
--   configuration must be accepted by the matched players. To require
--   acceptance, set to TRUE.
mcAcceptanceRequired :: Lens' MatchmakingConfiguration (Maybe Bool)

-- | Set of custom game session properties, formatted as a single string
--   value. This data is passed to a game server process in the
--   <a>GameSession</a> object with a request to start a new game session
--   (see <a>Start a Game Session</a> ). This information is added to the
--   new <a>GameSession</a> object that is created for a successful match.
mcGameSessionData :: Lens' MatchmakingConfiguration (Maybe Text)

-- | Descriptive label that is associated with matchmaking configuration.
mcDescription :: Lens' MatchmakingConfiguration (Maybe Text)

-- | Number of player slots in a match to keep open for future players. For
--   example, if the configuration's rule set specifies a match for a
--   single 12-person team, and the additional player count is set to 2,
--   only 10 players are selected for the match.
mcAdditionalPlayerCount :: Lens' MatchmakingConfiguration (Maybe Natural)

-- | Set of rule statements, used with FlexMatch, that determine how to
--   build a certain kind of player match. Each rule set describes a type
--   of group to be created and defines the parameters for acceptable
--   player matches. Rule sets are used in <a>MatchmakingConfiguration</a>
--   objects.
--   
--   A rule set may define the following elements for a match. For detailed
--   information and examples showing how to construct a rule set, see
--   <a>Build a FlexMatch Rule Set</a> .
--   
--   <ul>
--   <li>Teams -- Required. A rule set must define one or multiple teams
--   for the match and set minimum and maximum team sizes. For example, a
--   rule set might describe a 4x4 match that requires all eight slots to
--   be filled.</li>
--   <li>Player attributes -- Optional. These attributes specify a set of
--   player characteristics to evaluate when looking for a match.
--   Matchmaking requests that use a rule set with player attributes must
--   provide the corresponding attribute values. For example, an attribute
--   might specify a player's skill or level.</li>
--   <li>Rules -- Optional. Rules define how to evaluate potential players
--   for a match based on player attributes. A rule might specify minimum
--   requirements for individual players, teams, or entire matches. For
--   example, a rule might require each player to meet a certain skill
--   level, each team to have at least one player in a certain role, or the
--   match to have a minimum average skill level. or may describe an entire
--   group--such as all teams must be evenly matched or have at least one
--   player in a certain role.</li>
--   <li>Expansions -- Optional. Expansions allow you to relax the rules
--   after a period of time when no acceptable matches are found. This
--   feature lets you balance getting players into games in a reasonable
--   amount of time instead of making them wait indefinitely for the best
--   possible match. For example, you might use an expansion to increase
--   the maximum skill variance between players after 30 seconds.</li>
--   </ul>
--   
--   <i>See:</i> <a>matchmakingRuleSet</a> smart constructor.
data MatchmakingRuleSet

-- | Creates a value of <a>MatchmakingRuleSet</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mrsCreationTime</a> - Time stamp indicating when this data
--   object was created. Format is a number expressed in Unix time as
--   milliseconds (for example "1469498468.057").</li>
--   <li><a>mrsRuleSetName</a> - Unique identifier for a matchmaking rule
--   set</li>
--   <li><a>mrsRuleSetBody</a> - Collection of matchmaking rules, formatted
--   as a JSON string. (Note that comments14 are not allowed in JSON, but
--   most elements support a description field.)</li>
--   </ul>
matchmakingRuleSet :: Text -> MatchmakingRuleSet

-- | Time stamp indicating when this data object was created. Format is a
--   number expressed in Unix time as milliseconds (for example
--   "1469498468.057").
mrsCreationTime :: Lens' MatchmakingRuleSet (Maybe UTCTime)

-- | Unique identifier for a matchmaking rule set
mrsRuleSetName :: Lens' MatchmakingRuleSet (Maybe Text)

-- | Collection of matchmaking rules, formatted as a JSON string. (Note
--   that comments14 are not allowed in JSON, but most elements support a
--   description field.)
mrsRuleSetBody :: Lens' MatchmakingRuleSet Text

-- | Ticket generated to track the progress of a matchmaking request. Each
--   ticket is uniquely identified by a ticket ID, supplied by the
--   requester, when creating a matchmaking request with
--   <tt>StartMatchmaking</tt> . Tickets can be retrieved by calling
--   <tt>DescribeMatchmaking</tt> with the ticket ID.
--   
--   <i>See:</i> <a>matchmakingTicket</a> smart constructor.
data MatchmakingTicket

-- | Creates a value of <a>MatchmakingTicket</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mtStatus</a> - Current status of the matchmaking request. *
--   <b>QUEUED</b> -- The matchmaking request has been received and is
--   currently waiting to be processed. * <b>SEARCHING</b> -- The
--   matchmaking request is currently being processed. *
--   <b>REQUIRES_ACCEPTANCE</b> -- A match has been proposed and the
--   players must accept the match (see <tt>AcceptMatch</tt> ). This status
--   is used only with requests that use a matchmaking configuration with a
--   player acceptance requirement. * <b>PLACING</b> -- The FlexMatch
--   engine has matched players and is in the process of placing a new game
--   session for the match. * <b>COMPLETED</b> -- Players have been matched
--   and a game session is ready to host the players. A ticket in this
--   state contains the necessary connection information for players. *
--   <b>FAILED</b> -- The matchmaking request was not completed. Tickets
--   with players who fail to accept a proposed match are placed in
--   <tt>FAILED</tt> status. * <b>CANCELLED</b> -- The matchmaking request
--   was canceled with a call to <tt>StopMatchmaking</tt> . *
--   <b>TIMED_OUT</b> -- The matchmaking request was not successful within
--   the duration specified in the matchmaking configuration.</li>
--   <li><a>mtConfigurationName</a> - Name of the
--   <a>MatchmakingConfiguration</a> that is used with this ticket.
--   Matchmaking configurations determine how players are grouped into a
--   match and how a new game session is created for the match.</li>
--   <li><a>mtStartTime</a> - Time stamp indicating when this matchmaking
--   request was received. Format is a number expressed in Unix time as
--   milliseconds (for example "1469498468.057").</li>
--   <li><a>mtGameSessionConnectionInfo</a> - Identifier and connection
--   information of the game session created for the match. This
--   information is added to the ticket only after the matchmaking request
--   has been successfully completed.</li>
--   <li><a>mtTicketId</a> - Unique identifier for a matchmaking
--   ticket.</li>
--   <li><a>mtEstimatedWaitTime</a> - Average amount of time (in seconds)
--   that players are currently waiting for a match. If there is not enough
--   recent data, this property may be empty.</li>
--   <li><a>mtStatusMessage</a> - Additional information about the current
--   status.</li>
--   <li><a>mtEndTime</a> - Time stamp indicating when this matchmaking
--   request stopped being processed due to success, failure, or
--   cancellation. Format is a number expressed in Unix time as
--   milliseconds (for example "1469498468.057").</li>
--   <li><a>mtStatusReason</a> - Code to explain the current status. For
--   example, a status reason may indicate when a ticket has returned to
--   <tt>SEARCHING</tt> status after a proposed match fails to receive
--   player acceptances.</li>
--   <li><a>mtPlayers</a> - A set of <tt>Player</tt> objects, each
--   representing a player to find matches for. Players are identified by a
--   unique player ID and may include latency data for use during
--   matchmaking. If the ticket is in status <tt>COMPLETED</tt> , the
--   <tt>Player</tt> objects include the team the players were assigned to
--   in the resulting match.</li>
--   </ul>
matchmakingTicket :: MatchmakingTicket

-- | Current status of the matchmaking request. * <b>QUEUED</b> -- The
--   matchmaking request has been received and is currently waiting to be
--   processed. * <b>SEARCHING</b> -- The matchmaking request is currently
--   being processed. * <b>REQUIRES_ACCEPTANCE</b> -- A match has been
--   proposed and the players must accept the match (see
--   <tt>AcceptMatch</tt> ). This status is used only with requests that
--   use a matchmaking configuration with a player acceptance requirement.
--   * <b>PLACING</b> -- The FlexMatch engine has matched players and is in
--   the process of placing a new game session for the match. *
--   <b>COMPLETED</b> -- Players have been matched and a game session is
--   ready to host the players. A ticket in this state contains the
--   necessary connection information for players. * <b>FAILED</b> -- The
--   matchmaking request was not completed. Tickets with players who fail
--   to accept a proposed match are placed in <tt>FAILED</tt> status. *
--   <b>CANCELLED</b> -- The matchmaking request was canceled with a call
--   to <tt>StopMatchmaking</tt> . * <b>TIMED_OUT</b> -- The matchmaking
--   request was not successful within the duration specified in the
--   matchmaking configuration.
mtStatus :: Lens' MatchmakingTicket (Maybe MatchmakingConfigurationStatus)

-- | Name of the <a>MatchmakingConfiguration</a> that is used with this
--   ticket. Matchmaking configurations determine how players are grouped
--   into a match and how a new game session is created for the match.
mtConfigurationName :: Lens' MatchmakingTicket (Maybe Text)

-- | Time stamp indicating when this matchmaking request was received.
--   Format is a number expressed in Unix time as milliseconds (for example
--   "1469498468.057").
mtStartTime :: Lens' MatchmakingTicket (Maybe UTCTime)

-- | Identifier and connection information of the game session created for
--   the match. This information is added to the ticket only after the
--   matchmaking request has been successfully completed.
mtGameSessionConnectionInfo :: Lens' MatchmakingTicket (Maybe GameSessionConnectionInfo)

-- | Unique identifier for a matchmaking ticket.
mtTicketId :: Lens' MatchmakingTicket (Maybe Text)

-- | Average amount of time (in seconds) that players are currently waiting
--   for a match. If there is not enough recent data, this property may be
--   empty.
mtEstimatedWaitTime :: Lens' MatchmakingTicket (Maybe Natural)

-- | Additional information about the current status.
mtStatusMessage :: Lens' MatchmakingTicket (Maybe Text)

-- | Time stamp indicating when this matchmaking request stopped being
--   processed due to success, failure, or cancellation. Format is a number
--   expressed in Unix time as milliseconds (for example "1469498468.057").
mtEndTime :: Lens' MatchmakingTicket (Maybe UTCTime)

-- | Code to explain the current status. For example, a status reason may
--   indicate when a ticket has returned to <tt>SEARCHING</tt> status after
--   a proposed match fails to receive player acceptances.
mtStatusReason :: Lens' MatchmakingTicket (Maybe Text)

-- | A set of <tt>Player</tt> objects, each representing a player to find
--   matches for. Players are identified by a unique player ID and may
--   include latency data for use during matchmaking. If the ticket is in
--   status <tt>COMPLETED</tt> , the <tt>Player</tt> objects include the
--   team the players were assigned to in the resulting match.
mtPlayers :: Lens' MatchmakingTicket [Player]

-- | Information about a player session that was created as part of a
--   <tt>StartGameSessionPlacement</tt> request. This object contains only
--   the player ID and player session ID. To retrieve full details on a
--   player session, call <tt>DescribePlayerSessions</tt> with the player
--   session ID.
--   
--   Player-session-related operations include:
--   
--   <ul>
--   <li><tt>CreatePlayerSession</tt></li>
--   <li><tt>CreatePlayerSessions</tt></li>
--   <li><tt>DescribePlayerSessions</tt></li>
--   <li>Game session placements</li>
--   <li><tt>StartGameSessionPlacement</tt></li>
--   <li><tt>DescribeGameSessionPlacement</tt></li>
--   <li><tt>StopGameSessionPlacement</tt></li>
--   </ul>
--   
--   <i>See:</i> <a>placedPlayerSession</a> smart constructor.
data PlacedPlayerSession

-- | Creates a value of <a>PlacedPlayerSession</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ppsPlayerSessionId</a> - Unique identifier for a player
--   session.</li>
--   <li><a>ppsPlayerId</a> - Unique identifier for a player that is
--   associated with this player session.</li>
--   </ul>
placedPlayerSession :: PlacedPlayerSession

-- | Unique identifier for a player session.
ppsPlayerSessionId :: Lens' PlacedPlayerSession (Maybe Text)

-- | Unique identifier for a player that is associated with this player
--   session.
ppsPlayerId :: Lens' PlacedPlayerSession (Maybe Text)

-- | Represents a player in matchmaking. When starting a matchmaking
--   request, a player has a player ID, attributes, and may have latency
--   data. Team information is added after a match has been successfully
--   completed.
--   
--   <i>See:</i> <a>player</a> smart constructor.
data Player

-- | Creates a value of <a>Player</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pPlayerAttributes</a> - Collection of key:value pairs
--   containing player information for use in matchmaking. Player attribute
--   keys must match the <i>playerAttributes</i> used in a matchmaking rule
--   set. Example: <tt><a>PlayerAttributes</a>: {"skill": {<a>N</a>: "23"},
--   "gameMode": {<a>S</a>: "deathmatch"}}</tt> .</li>
--   <li><a>pTeam</a> - Name of the team that the player is assigned to in
--   a match. Team names are defined in a matchmaking rule set.</li>
--   <li><a>pPlayerId</a> - Unique identifier for a player</li>
--   <li><a>pLatencyInMs</a> - Set of values, expressed in milliseconds,
--   indicating the amount of latency that a player experiences when
--   connected to AWS regions. If this property is present, FlexMatch
--   considers placing the match only in regions for which latency is
--   reported. If a matchmaker has a rule that evaluates player latency,
--   players must report latency in order to be matched. If no latency is
--   reported in this scenario, FlexMatch assumes that no regions are
--   available to the player and the ticket is not matchable.</li>
--   </ul>
player :: Player

-- | Collection of key:value pairs containing player information for use in
--   matchmaking. Player attribute keys must match the
--   <i>playerAttributes</i> used in a matchmaking rule set. Example:
--   <tt><a>PlayerAttributes</a>: {"skill": {<a>N</a>: "23"}, "gameMode":
--   {<a>S</a>: "deathmatch"}}</tt> .
pPlayerAttributes :: Lens' Player (HashMap Text AttributeValue)

-- | Name of the team that the player is assigned to in a match. Team names
--   are defined in a matchmaking rule set.
pTeam :: Lens' Player (Maybe Text)

-- | Unique identifier for a player
pPlayerId :: Lens' Player (Maybe Text)

-- | Set of values, expressed in milliseconds, indicating the amount of
--   latency that a player experiences when connected to AWS regions. If
--   this property is present, FlexMatch considers placing the match only
--   in regions for which latency is reported. If a matchmaker has a rule
--   that evaluates player latency, players must report latency in order to
--   be matched. If no latency is reported in this scenario, FlexMatch
--   assumes that no regions are available to the player and the ticket is
--   not matchable.
pLatencyInMs :: Lens' Player (HashMap Text Natural)

-- | Regional latency information for a player, used when requesting a new
--   game session with <tt>StartGameSessionPlacement</tt> . This value
--   indicates the amount of time lag that exists when the player is
--   connected to a fleet in the specified region. The relative difference
--   between a player's latency values for multiple regions are used to
--   determine which fleets are best suited to place a new game session for
--   the player.
--   
--   <i>See:</i> <a>playerLatency</a> smart constructor.
data PlayerLatency

-- | Creates a value of <a>PlayerLatency</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>plLatencyInMilliseconds</a> - Amount of time that represents
--   the time lag experienced by the player when connected to the specified
--   region.</li>
--   <li><a>plRegionIdentifier</a> - Name of the region that is associated
--   with the latency value.</li>
--   <li><a>plPlayerId</a> - Unique identifier for a player associated with
--   the latency data.</li>
--   </ul>
playerLatency :: PlayerLatency

-- | Amount of time that represents the time lag experienced by the player
--   when connected to the specified region.
plLatencyInMilliseconds :: Lens' PlayerLatency (Maybe Double)

-- | Name of the region that is associated with the latency value.
plRegionIdentifier :: Lens' PlayerLatency (Maybe Text)

-- | Unique identifier for a player associated with the latency data.
plPlayerId :: Lens' PlayerLatency (Maybe Text)

-- | Queue setting that determines the highest latency allowed for
--   individual players when placing a game session. When a latency policy
--   is in force, a game session cannot be placed at any destination in a
--   region where a player is reporting latency higher than the cap.
--   Latency policies are only enforced when the placement request contains
--   player latency information.
--   
--   Queue-related operations include:
--   
--   <ul>
--   <li><tt>CreateGameSessionQueue</tt></li>
--   <li><tt>DescribeGameSessionQueues</tt></li>
--   <li><tt>UpdateGameSessionQueue</tt></li>
--   <li><tt>DeleteGameSessionQueue</tt></li>
--   </ul>
--   
--   <i>See:</i> <a>playerLatencyPolicy</a> smart constructor.
data PlayerLatencyPolicy

-- | Creates a value of <a>PlayerLatencyPolicy</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>plpPolicyDurationSeconds</a> - The length of time, in seconds,
--   that the policy is enforced while placing a new game session. A null
--   value for this property means that the policy is enforced until the
--   queue times out.</li>
--   <li><a>plpMaximumIndividualPlayerLatencyMilliseconds</a> - The maximum
--   latency value that is allowed for any player, in milliseconds. All
--   policies must have a value set for this property.</li>
--   </ul>
playerLatencyPolicy :: PlayerLatencyPolicy

-- | The length of time, in seconds, that the policy is enforced while
--   placing a new game session. A null value for this property means that
--   the policy is enforced until the queue times out.
plpPolicyDurationSeconds :: Lens' PlayerLatencyPolicy (Maybe Natural)

-- | The maximum latency value that is allowed for any player, in
--   milliseconds. All policies must have a value set for this property.
plpMaximumIndividualPlayerLatencyMilliseconds :: Lens' PlayerLatencyPolicy (Maybe Natural)

-- | Properties describing a player session. Player session objects are
--   created either by creating a player session for a specific game
--   session, or as part of a game session placement. A player session
--   represents either a player reservation for a game session (status
--   <tt>RESERVED</tt> ) or actual player activity in a game session
--   (status <tt>ACTIVE</tt> ). A player session object (including player
--   data) is automatically passed to a game session when the player
--   connects to the game session and is validated.
--   
--   When a player disconnects, the player session status changes to
--   <tt>COMPLETED</tt> . Once the session ends, the player session object
--   is retained for 30 days and then removed.
--   
--   Player-session-related operations include:
--   
--   <ul>
--   <li><tt>CreatePlayerSession</tt></li>
--   <li><tt>CreatePlayerSessions</tt></li>
--   <li><tt>DescribePlayerSessions</tt></li>
--   <li>Game session placements</li>
--   <li><tt>StartGameSessionPlacement</tt></li>
--   <li><tt>DescribeGameSessionPlacement</tt></li>
--   <li><tt>StopGameSessionPlacement</tt></li>
--   </ul>
--   
--   <i>See:</i> <a>playerSession</a> smart constructor.
data PlayerSession

-- | Creates a value of <a>PlayerSession</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>psCreationTime</a> - Time stamp indicating when this data
--   object was created. Format is a number expressed in Unix time as
--   milliseconds (for example "1469498468.057").</li>
--   <li><a>psStatus</a> - Current status of the player session. Possible
--   player session statuses include the following: * <b>RESERVED</b> --
--   The player session request has been received, but the player has not
--   yet connected to the server process and<i>or been validated. *
--   <b>ACTIVE</b> -- The player has been validated by the server process
--   and is currently connected. * <b>COMPLETED</b> -- The player
--   connection has been dropped. * <b>TIMEDOUT</b> -- A player session
--   request was received, but the player did not connect and</i>or was not
--   validated within the timeout limit (60 seconds).</li>
--   <li><a>psIPAddress</a> - IP address of the game session. To connect to
--   a Amazon GameLift game server, an app needs both the IP address and
--   port number.</li>
--   <li><a>psGameSessionId</a> - Unique identifier for the game session
--   that the player session is connected to.</li>
--   <li><a>psTerminationTime</a> - Time stamp indicating when this data
--   object was terminated. Format is a number expressed in Unix time as
--   milliseconds (for example "1469498468.057").</li>
--   <li><a>psPlayerSessionId</a> - Unique identifier for a player
--   session.</li>
--   <li><a>psFleetId</a> - Unique identifier for a fleet that the player's
--   game session is running on.</li>
--   <li><a>psPlayerData</a> - Developer-defined information related to a
--   player. Amazon GameLift does not use this data, so it can be formatted
--   as needed for use in the game.</li>
--   <li><a>psPlayerId</a> - Unique identifier for a player that is
--   associated with this player session.</li>
--   <li><a>psPort</a> - Port number for the game session. To connect to a
--   Amazon GameLift server process, an app needs both the IP address and
--   port number.</li>
--   </ul>
playerSession :: PlayerSession

-- | Time stamp indicating when this data object was created. Format is a
--   number expressed in Unix time as milliseconds (for example
--   "1469498468.057").
psCreationTime :: Lens' PlayerSession (Maybe UTCTime)

-- | Current status of the player session. Possible player session statuses
--   include the following: * <b>RESERVED</b> -- The player session request
--   has been received, but the player has not yet connected to the server
--   process and<i>or been validated. * <b>ACTIVE</b> -- The player has
--   been validated by the server process and is currently connected. *
--   <b>COMPLETED</b> -- The player connection has been dropped. *
--   <b>TIMEDOUT</b> -- A player session request was received, but the
--   player did not connect and</i>or was not validated within the timeout
--   limit (60 seconds).
psStatus :: Lens' PlayerSession (Maybe PlayerSessionStatus)

-- | IP address of the game session. To connect to a Amazon GameLift game
--   server, an app needs both the IP address and port number.
psIPAddress :: Lens' PlayerSession (Maybe Text)

-- | Unique identifier for the game session that the player session is
--   connected to.
psGameSessionId :: Lens' PlayerSession (Maybe Text)

-- | Time stamp indicating when this data object was terminated. Format is
--   a number expressed in Unix time as milliseconds (for example
--   "1469498468.057").
psTerminationTime :: Lens' PlayerSession (Maybe UTCTime)

-- | Unique identifier for a player session.
psPlayerSessionId :: Lens' PlayerSession (Maybe Text)

-- | Unique identifier for a fleet that the player's game session is
--   running on.
psFleetId :: Lens' PlayerSession (Maybe Text)

-- | Developer-defined information related to a player. Amazon GameLift
--   does not use this data, so it can be formatted as needed for use in
--   the game.
psPlayerData :: Lens' PlayerSession (Maybe Text)

-- | Unique identifier for a player that is associated with this player
--   session.
psPlayerId :: Lens' PlayerSession (Maybe Text)

-- | Port number for the game session. To connect to a Amazon GameLift
--   server process, an app needs both the IP address and port number.
psPort :: Lens' PlayerSession (Maybe Natural)

-- | Policy that limits the number of game sessions a player can create on
--   the same fleet. This optional policy gives game owners control over
--   how players can consume available game server resources. A resource
--   creation policy makes the following statement: "An individual player
--   can create a maximum number of new game sessions within a specified
--   time period".
--   
--   The policy is evaluated when a player tries to create a new game
--   session. For example, with a policy of 10 new game sessions and a time
--   period of 60 minutes, on receiving a <tt>CreateGameSession</tt>
--   request, Amazon GameLift checks that the player (identified by
--   <tt>CreatorId</tt> ) has created fewer than 10 game sessions in the
--   past 60 minutes.
--   
--   <i>See:</i> <a>resourceCreationLimitPolicy</a> smart constructor.
data ResourceCreationLimitPolicy

-- | Creates a value of <a>ResourceCreationLimitPolicy</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rclpNewGameSessionsPerCreator</a> - Maximum number of game
--   sessions that an individual can create during the policy period.</li>
--   <li><a>rclpPolicyPeriodInMinutes</a> - Time span used in evaluating
--   the resource creation limit policy.</li>
--   </ul>
resourceCreationLimitPolicy :: ResourceCreationLimitPolicy

-- | Maximum number of game sessions that an individual can create during
--   the policy period.
rclpNewGameSessionsPerCreator :: Lens' ResourceCreationLimitPolicy (Maybe Natural)

-- | Time span used in evaluating the resource creation limit policy.
rclpPolicyPeriodInMinutes :: Lens' ResourceCreationLimitPolicy (Maybe Natural)

-- | Routing configuration for a fleet alias.
--   
--   Fleet-related operations include:
--   
--   <ul>
--   <li><tt>CreateFleet</tt></li>
--   <li><tt>ListFleets</tt></li>
--   <li><tt>DeleteFleet</tt></li>
--   <li>Describe fleets:</li>
--   <li><tt>DescribeFleetAttributes</tt></li>
--   <li><tt>DescribeFleetCapacity</tt></li>
--   <li><tt>DescribeFleetPortSettings</tt></li>
--   <li><tt>DescribeFleetUtilization</tt></li>
--   <li><tt>DescribeRuntimeConfiguration</tt></li>
--   <li><tt>DescribeEC2InstanceLimits</tt></li>
--   <li><tt>DescribeFleetEvents</tt></li>
--   <li>Update fleets:</li>
--   <li><tt>UpdateFleetAttributes</tt></li>
--   <li><tt>UpdateFleetCapacity</tt></li>
--   <li><tt>UpdateFleetPortSettings</tt></li>
--   <li><tt>UpdateRuntimeConfiguration</tt></li>
--   <li>Manage fleet actions:</li>
--   <li><tt>StartFleetActions</tt></li>
--   <li><tt>StopFleetActions</tt></li>
--   </ul>
--   
--   <i>See:</i> <a>routingStrategy</a> smart constructor.
data RoutingStrategy

-- | Creates a value of <a>RoutingStrategy</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rsType</a> - Type of routing strategy. Possible routing types
--   include the following: * <b>SIMPLE</b> -- The alias resolves to one
--   specific fleet. Use this type when routing to active fleets. *
--   <b>TERMINAL</b> -- The alias does not resolve to a fleet but instead
--   can be used to display a message to the user. A terminal alias throws
--   a TerminalRoutingStrategyException with the <a>RoutingStrategy</a>
--   message embedded.</li>
--   <li><a>rsMessage</a> - Message text to be used with a terminal routing
--   strategy.</li>
--   <li><a>rsFleetId</a> - Unique identifier for a fleet that the alias
--   points to.</li>
--   </ul>
routingStrategy :: RoutingStrategy

-- | Type of routing strategy. Possible routing types include the
--   following: * <b>SIMPLE</b> -- The alias resolves to one specific
--   fleet. Use this type when routing to active fleets. * <b>TERMINAL</b>
--   -- The alias does not resolve to a fleet but instead can be used to
--   display a message to the user. A terminal alias throws a
--   TerminalRoutingStrategyException with the <a>RoutingStrategy</a>
--   message embedded.
rsType :: Lens' RoutingStrategy (Maybe RoutingStrategyType)

-- | Message text to be used with a terminal routing strategy.
rsMessage :: Lens' RoutingStrategy (Maybe Text)

-- | Unique identifier for a fleet that the alias points to.
rsFleetId :: Lens' RoutingStrategy (Maybe Text)

-- | A collection of server process configurations that describe what
--   processes to run on each instance in a fleet. All fleets must have a
--   run-time configuration. Each instance in the fleet launches the server
--   processes specified in the run-time configuration and launches new
--   ones as existing processes end. Each instance regularly checks for an
--   updated run-time configuration and follows the new instructions.
--   
--   The run-time configuration enables the instances in a fleet to run
--   multiple processes simultaneously. Potential scenarios are as follows:
--   (1) Run multiple processes of a single game server executable to
--   maximize usage of your hosting resources. (2) Run one or more
--   processes of different build executables, such as your game server
--   executable and a related program, or two or more different versions of
--   a game server. (3) Run multiple processes of a single game server but
--   with different launch parameters, for example to run one process on
--   each instance in debug mode.
--   
--   A Amazon GameLift instance is limited to 50 processes running
--   simultaneously. A run-time configuration must specify fewer than this
--   limit. To calculate the total number of processes specified in a
--   run-time configuration, add the values of the
--   <tt>ConcurrentExecutions</tt> parameter for each
--   <tt><a>ServerProcess</a> </tt> object in the run-time configuration.
--   
--   Fleet-related operations include:
--   
--   <ul>
--   <li><tt>CreateFleet</tt></li>
--   <li><tt>ListFleets</tt></li>
--   <li><tt>DeleteFleet</tt></li>
--   <li>Describe fleets:</li>
--   <li><tt>DescribeFleetAttributes</tt></li>
--   <li><tt>DescribeFleetCapacity</tt></li>
--   <li><tt>DescribeFleetPortSettings</tt></li>
--   <li><tt>DescribeFleetUtilization</tt></li>
--   <li><tt>DescribeRuntimeConfiguration</tt></li>
--   <li><tt>DescribeEC2InstanceLimits</tt></li>
--   <li><tt>DescribeFleetEvents</tt></li>
--   <li>Update fleets:</li>
--   <li><tt>UpdateFleetAttributes</tt></li>
--   <li><tt>UpdateFleetCapacity</tt></li>
--   <li><tt>UpdateFleetPortSettings</tt></li>
--   <li><tt>UpdateRuntimeConfiguration</tt></li>
--   <li>Manage fleet actions:</li>
--   <li><tt>StartFleetActions</tt></li>
--   <li><tt>StopFleetActions</tt></li>
--   </ul>
--   
--   <i>See:</i> <a>runtimeConfiguration</a> smart constructor.
data RuntimeConfiguration

-- | Creates a value of <a>RuntimeConfiguration</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rcGameSessionActivationTimeoutSeconds</a> - Maximum amount of
--   time (in seconds) that a game session can remain in status
--   <tt>ACTIVATING</tt> . If the game session is not active before the
--   timeout, activation is terminated and the game session status is
--   changed to <tt>TERMINATED</tt> .</li>
--   <li><a>rcServerProcesses</a> - Collection of server process
--   configurations that describe which server processes to run on each
--   instance in a fleet.</li>
--   <li><a>rcMaxConcurrentGameSessionActivations</a> - Maximum number of
--   game sessions with status <tt>ACTIVATING</tt> to allow on an instance
--   simultaneously. This setting limits the amount of instance resources
--   that can be used for new game activations at any one time.</li>
--   </ul>
runtimeConfiguration :: RuntimeConfiguration

-- | Maximum amount of time (in seconds) that a game session can remain in
--   status <tt>ACTIVATING</tt> . If the game session is not active before
--   the timeout, activation is terminated and the game session status is
--   changed to <tt>TERMINATED</tt> .
rcGameSessionActivationTimeoutSeconds :: Lens' RuntimeConfiguration (Maybe Natural)

-- | Collection of server process configurations that describe which server
--   processes to run on each instance in a fleet.
rcServerProcesses :: Lens' RuntimeConfiguration (Maybe (NonEmpty ServerProcess))

-- | Maximum number of game sessions with status <tt>ACTIVATING</tt> to
--   allow on an instance simultaneously. This setting limits the amount of
--   instance resources that can be used for new game activations at any
--   one time.
rcMaxConcurrentGameSessionActivations :: Lens' RuntimeConfiguration (Maybe Natural)

-- | Location in Amazon Simple Storage Service (Amazon S3) where build
--   files can be stored for access by Amazon GameLift. This location is
--   specified in a <tt>CreateBuild</tt> request. For more details, see the
--   <a>Create a Build with Files in Amazon S3</a> .
--   
--   <i>See:</i> <a>s3Location</a> smart constructor.
data S3Location

-- | Creates a value of <a>S3Location</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>slBucket</a> - Amazon S3 bucket identifier. This is the name of
--   your S3 bucket.</li>
--   <li><a>slKey</a> - Name of the zip file containing your build
--   files.</li>
--   <li><a>slRoleARN</a> - Amazon Resource Name (<a>ARN</a> ) for the
--   access role that allows Amazon GameLift to access your S3 bucket.</li>
--   </ul>
s3Location :: S3Location

-- | Amazon S3 bucket identifier. This is the name of your S3 bucket.
slBucket :: Lens' S3Location (Maybe Text)

-- | Name of the zip file containing your build files.
slKey :: Lens' S3Location (Maybe Text)

-- | Amazon Resource Name (<a>ARN</a> ) for the access role that allows
--   Amazon GameLift to access your S3 bucket.
slRoleARN :: Lens' S3Location (Maybe Text)

-- | Rule that controls how a fleet is scaled. Scaling policies are
--   uniquely identified by the combination of name and fleet ID.
--   
--   Operations related to fleet capacity scaling include:
--   
--   <ul>
--   <li><tt>DescribeFleetCapacity</tt></li>
--   <li><tt>UpdateFleetCapacity</tt></li>
--   <li><tt>DescribeEC2InstanceLimits</tt></li>
--   <li>Manage scaling policies:</li>
--   <li><tt>PutScalingPolicy</tt> (auto-scaling)</li>
--   <li><tt>DescribeScalingPolicies</tt> (auto-scaling)</li>
--   <li><tt>DeleteScalingPolicy</tt> (auto-scaling)</li>
--   <li>Manage fleet actions:</li>
--   <li><tt>StartFleetActions</tt></li>
--   <li><tt>StopFleetActions</tt></li>
--   </ul>
--   
--   <i>See:</i> <a>scalingPolicy</a> smart constructor.
data ScalingPolicy

-- | Creates a value of <a>ScalingPolicy</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>spStatus</a> - Current status of the scaling policy. The
--   scaling policy can be in force only when in an <tt>ACTIVE</tt> status.
--   Scaling policies can be suspended for individual fleets (see
--   <tt>StopFleetActions</tt> ; if suspended for a fleet, the policy
--   status does not change. View a fleet's stopped actions by calling
--   <tt>DescribeFleetCapacity</tt> . * <b>ACTIVE</b> -- The scaling policy
--   can be used for auto-scaling a fleet. * <b>UPDATE_REQUESTED</b> -- A
--   request to update the scaling policy has been received. *
--   <b>UPDATING</b> -- A change is being made to the scaling policy. *
--   <b>DELETE_REQUESTED</b> -- A request to delete the scaling policy has
--   been received. * <b>DELETING</b> -- The scaling policy is being
--   deleted. * <b>DELETED</b> -- The scaling policy has been deleted. *
--   <b>ERROR</b> -- An error occurred in creating the policy. It should be
--   removed and recreated.</li>
--   <li><a>spScalingAdjustmentType</a> - Type of adjustment to make to a
--   fleet's instance count (see <a>FleetCapacity</a> ): *
--   <b>ChangeInCapacity</b> -- add (or subtract) the scaling adjustment
--   value from the current instance count. Positive values scale up while
--   negative values scale down. * <b>ExactCapacity</b> -- set the instance
--   count to the scaling adjustment value. *
--   <b>PercentChangeInCapacity</b> -- increase or reduce the current
--   instance count by the scaling adjustment, read as a percentage.
--   Positive values scale up while negative values scale down.</li>
--   <li><a>spEvaluationPeriods</a> - Length of time (in minutes) the
--   metric must be at or beyond the threshold before a scaling event is
--   triggered.</li>
--   <li><a>spPolicyType</a> - Type of scaling policy to create. For a
--   target-based policy, set the parameter <i>MetricName</i> to
--   <a>PercentAvailableGameSessions</a> and specify a
--   <i>TargetConfiguration</i> . For a rule-based policy set the following
--   parameters: <i>MetricName</i> , <i>ComparisonOperator</i> ,
--   <i>Threshold</i> , <i>EvaluationPeriods</i> ,
--   <i>ScalingAdjustmentType</i> , and <i>ScalingAdjustment</i> .</li>
--   <li><a>spMetricName</a> - Name of the Amazon GameLift-defined metric
--   that is used to trigger a scaling adjustment. For detailed
--   descriptions of fleet metrics, see <a>Monitor Amazon GameLift with
--   Amazon CloudWatch</a> . * <b>ActivatingGameSessions</b> -- Game
--   sessions in the process of being created. * <b>ActiveGameSessions</b>
--   -- Game sessions that are currently running. * <b>ActiveInstances</b>
--   -- Fleet instances that are currently running at least one game
--   session. * <b>AvailableGameSessions</b> -- Additional game sessions
--   that fleet could host simultaneously, given current capacity. *
--   <b>AvailablePlayerSessions</b> -- Empty player slots in currently
--   active game sessions. This includes game sessions that are not
--   currently accepting players. Reserved player slots are not included. *
--   <b>CurrentPlayerSessions</b> -- Player slots in active game sessions
--   that are being used by a player or are reserved for a player. *
--   <b>IdleInstances</b> -- Active instances that are currently hosting
--   zero game sessions. * <b>PercentAvailableGameSessions</b> -- Unused
--   percentage of the total number of game sessions that a fleet could
--   host simultaneously, given current capacity. Use this metric for a
--   target-based scaling policy. * <b>PercentIdleInstances</b> --
--   Percentage of the total number of active instances that are hosting
--   zero game sessions. * <b>QueueDepth</b> -- Pending game session
--   placement requests, in any queue, where the current fleet is the
--   top-priority destination. * <b>WaitTime</b> -- Current wait time for
--   pending game session placement requests, in any queue, where the
--   current fleet is the top-priority destination.</li>
--   <li><a>spComparisonOperator</a> - Comparison operator to use when
--   measuring a metric against the threshold value.</li>
--   <li><a>spName</a> - Descriptive label that is associated with a
--   scaling policy. Policy names do not need to be unique.</li>
--   <li><a>spThreshold</a> - Metric value used to trigger a scaling
--   event.</li>
--   <li><a>spScalingAdjustment</a> - Amount of adjustment to make, based
--   on the scaling adjustment type.</li>
--   <li><a>spFleetId</a> - Unique identifier for a fleet that is
--   associated with this scaling policy.</li>
--   <li><a>spTargetConfiguration</a> - Object that contains settings for a
--   target-based scaling policy.</li>
--   </ul>
scalingPolicy :: ScalingPolicy

-- | Current status of the scaling policy. The scaling policy can be in
--   force only when in an <tt>ACTIVE</tt> status. Scaling policies can be
--   suspended for individual fleets (see <tt>StopFleetActions</tt> ; if
--   suspended for a fleet, the policy status does not change. View a
--   fleet's stopped actions by calling <tt>DescribeFleetCapacity</tt> . *
--   <b>ACTIVE</b> -- The scaling policy can be used for auto-scaling a
--   fleet. * <b>UPDATE_REQUESTED</b> -- A request to update the scaling
--   policy has been received. * <b>UPDATING</b> -- A change is being made
--   to the scaling policy. * <b>DELETE_REQUESTED</b> -- A request to
--   delete the scaling policy has been received. * <b>DELETING</b> -- The
--   scaling policy is being deleted. * <b>DELETED</b> -- The scaling
--   policy has been deleted. * <b>ERROR</b> -- An error occurred in
--   creating the policy. It should be removed and recreated.
spStatus :: Lens' ScalingPolicy (Maybe ScalingStatusType)

-- | Type of adjustment to make to a fleet's instance count (see
--   <a>FleetCapacity</a> ): * <b>ChangeInCapacity</b> -- add (or subtract)
--   the scaling adjustment value from the current instance count. Positive
--   values scale up while negative values scale down. *
--   <b>ExactCapacity</b> -- set the instance count to the scaling
--   adjustment value. * <b>PercentChangeInCapacity</b> -- increase or
--   reduce the current instance count by the scaling adjustment, read as a
--   percentage. Positive values scale up while negative values scale down.
spScalingAdjustmentType :: Lens' ScalingPolicy (Maybe ScalingAdjustmentType)

-- | Length of time (in minutes) the metric must be at or beyond the
--   threshold before a scaling event is triggered.
spEvaluationPeriods :: Lens' ScalingPolicy (Maybe Natural)

-- | Type of scaling policy to create. For a target-based policy, set the
--   parameter <i>MetricName</i> to <a>PercentAvailableGameSessions</a> and
--   specify a <i>TargetConfiguration</i> . For a rule-based policy set the
--   following parameters: <i>MetricName</i> , <i>ComparisonOperator</i> ,
--   <i>Threshold</i> , <i>EvaluationPeriods</i> ,
--   <i>ScalingAdjustmentType</i> , and <i>ScalingAdjustment</i> .
spPolicyType :: Lens' ScalingPolicy (Maybe PolicyType)

-- | Name of the Amazon GameLift-defined metric that is used to trigger a
--   scaling adjustment. For detailed descriptions of fleet metrics, see
--   <a>Monitor Amazon GameLift with Amazon CloudWatch</a> . *
--   <b>ActivatingGameSessions</b> -- Game sessions in the process of being
--   created. * <b>ActiveGameSessions</b> -- Game sessions that are
--   currently running. * <b>ActiveInstances</b> -- Fleet instances that
--   are currently running at least one game session. *
--   <b>AvailableGameSessions</b> -- Additional game sessions that fleet
--   could host simultaneously, given current capacity. *
--   <b>AvailablePlayerSessions</b> -- Empty player slots in currently
--   active game sessions. This includes game sessions that are not
--   currently accepting players. Reserved player slots are not included. *
--   <b>CurrentPlayerSessions</b> -- Player slots in active game sessions
--   that are being used by a player or are reserved for a player. *
--   <b>IdleInstances</b> -- Active instances that are currently hosting
--   zero game sessions. * <b>PercentAvailableGameSessions</b> -- Unused
--   percentage of the total number of game sessions that a fleet could
--   host simultaneously, given current capacity. Use this metric for a
--   target-based scaling policy. * <b>PercentIdleInstances</b> --
--   Percentage of the total number of active instances that are hosting
--   zero game sessions. * <b>QueueDepth</b> -- Pending game session
--   placement requests, in any queue, where the current fleet is the
--   top-priority destination. * <b>WaitTime</b> -- Current wait time for
--   pending game session placement requests, in any queue, where the
--   current fleet is the top-priority destination.
spMetricName :: Lens' ScalingPolicy (Maybe MetricName)

-- | Comparison operator to use when measuring a metric against the
--   threshold value.
spComparisonOperator :: Lens' ScalingPolicy (Maybe ComparisonOperatorType)

-- | Descriptive label that is associated with a scaling policy. Policy
--   names do not need to be unique.
spName :: Lens' ScalingPolicy (Maybe Text)

-- | Metric value used to trigger a scaling event.
spThreshold :: Lens' ScalingPolicy (Maybe Double)

-- | Amount of adjustment to make, based on the scaling adjustment type.
spScalingAdjustment :: Lens' ScalingPolicy (Maybe Int)

-- | Unique identifier for a fleet that is associated with this scaling
--   policy.
spFleetId :: Lens' ScalingPolicy (Maybe Text)

-- | Object that contains settings for a target-based scaling policy.
spTargetConfiguration :: Lens' ScalingPolicy (Maybe TargetConfiguration)

-- | A set of instructions for launching server processes on each instance
--   in a fleet. Each instruction set identifies the location of the server
--   executable, optional launch parameters, and the number of server
--   processes with this configuration to maintain concurrently on the
--   instance. Server process configurations make up a fleet's
--   <tt><a>RuntimeConfiguration</a> </tt> .
--   
--   <i>See:</i> <a>serverProcess</a> smart constructor.
data ServerProcess

-- | Creates a value of <a>ServerProcess</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>spParameters</a> - Optional list of parameters to pass to the
--   server executable on launch.</li>
--   <li><a>spLaunchPath</a> - Location of the server executable in a game
--   build. All game builds are installed on instances at the root : for
--   Windows instances <tt>C:game</tt> , and for Linux instances
--   <tt><i>local</i>game</tt> . A Windows game build with an executable
--   file located at <tt>MyGamelatestserver.exe</tt> must have a launch
--   path of "<tt>C:gameMyGamelatestserver.exe</tt> ". A Linux game build
--   with an executable file located at
--   <tt>MyGame<i>latest</i>server.exe</tt> must have a launch path of
--   "<tt><i>local</i>game<i>MyGame</i>latest/server.exe</tt> ".</li>
--   <li><a>spConcurrentExecutions</a> - Number of server processes using
--   this configuration to run concurrently on an instance.</li>
--   </ul>
serverProcess :: Text -> Natural -> ServerProcess

-- | Optional list of parameters to pass to the server executable on
--   launch.
spParameters :: Lens' ServerProcess (Maybe Text)

-- | Location of the server executable in a game build. All game builds are
--   installed on instances at the root : for Windows instances
--   <tt>C:game</tt> , and for Linux instances <tt><i>local</i>game</tt> .
--   A Windows game build with an executable file located at
--   <tt>MyGamelatestserver.exe</tt> must have a launch path of
--   "<tt>C:gameMyGamelatestserver.exe</tt> ". A Linux game build with an
--   executable file located at <tt>MyGame<i>latest</i>server.exe</tt> must
--   have a launch path of
--   "<tt><i>local</i>game<i>MyGame</i>latest/server.exe</tt> ".
spLaunchPath :: Lens' ServerProcess Text

-- | Number of server processes using this configuration to run
--   concurrently on an instance.
spConcurrentExecutions :: Lens' ServerProcess Natural

-- | Settings for a target-based scaling policy (see <a>ScalingPolicy</a> .
--   A target-based policy tracks a particular fleet metric specifies a
--   target value for the metric. As player usage changes, the policy
--   triggers Amazon GameLift to adjust capacity so that the metric returns
--   to the target value. The target configuration specifies settings as
--   needed for the target based policy, including the target value.
--   
--   Operations related to fleet capacity scaling include:
--   
--   <ul>
--   <li><tt>DescribeFleetCapacity</tt></li>
--   <li><tt>UpdateFleetCapacity</tt></li>
--   <li><tt>DescribeEC2InstanceLimits</tt></li>
--   <li>Manage scaling policies:</li>
--   <li><tt>PutScalingPolicy</tt> (auto-scaling)</li>
--   <li><tt>DescribeScalingPolicies</tt> (auto-scaling)</li>
--   <li><tt>DeleteScalingPolicy</tt> (auto-scaling)</li>
--   <li>Manage fleet actions:</li>
--   <li><tt>StartFleetActions</tt></li>
--   <li><tt>StopFleetActions</tt></li>
--   </ul>
--   
--   <i>See:</i> <a>targetConfiguration</a> smart constructor.
data TargetConfiguration

-- | Creates a value of <a>TargetConfiguration</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tcTargetValue</a> - Desired value to use with a target-based
--   scaling policy. The value must be relevant for whatever metric the
--   scaling policy is using. For example, in a policy using the metric
--   PercentAvailableGameSessions, the target value should be the preferred
--   size of the fleet's buffer (the percent of capacity that should be
--   idle and ready for new game sessions).</li>
--   </ul>
targetConfiguration :: Double -> TargetConfiguration

-- | Desired value to use with a target-based scaling policy. The value
--   must be relevant for whatever metric the scaling policy is using. For
--   example, in a policy using the metric PercentAvailableGameSessions,
--   the target value should be the preferred size of the fleet's buffer
--   (the percent of capacity that should be idle and ready for new game
--   sessions).
tcTargetValue :: Lens' TargetConfiguration Double

-- | Represents an authorization for a VPC peering connection between the
--   VPC for an Amazon GameLift fleet and another VPC on an account you
--   have access to. This authorization must exist and be valid for the
--   peering connection to be established. Authorizations are valid for 24
--   hours after they are issued.
--   
--   VPC peering connection operations include:
--   
--   <ul>
--   <li><tt>CreateVpcPeeringAuthorization</tt></li>
--   <li><tt>DescribeVpcPeeringAuthorizations</tt></li>
--   <li><tt>DeleteVpcPeeringAuthorization</tt></li>
--   <li><tt>CreateVpcPeeringConnection</tt></li>
--   <li><tt>DescribeVpcPeeringConnections</tt></li>
--   <li><tt>DeleteVpcPeeringConnection</tt></li>
--   </ul>
--   
--   <i>See:</i> <a>vpcPeeringAuthorization</a> smart constructor.
data VPCPeeringAuthorization

-- | Creates a value of <a>VPCPeeringAuthorization</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vpaCreationTime</a> - Time stamp indicating when this
--   authorization was issued. Format is a number expressed in Unix time as
--   milliseconds (for example "1469498468.057").</li>
--   <li><a>vpaPeerVPCId</a> - Unique identifier for a VPC with resources
--   to be accessed by your Amazon GameLift fleet. The VPC must be in the
--   same region where your fleet is deployed. To get VPC information,
--   including IDs, use the Virtual Private Cloud service tools, including
--   the VPC Dashboard in the AWS Management Console.</li>
--   <li><a>vpaPeerVPCAWSAccountId</a> -</li>
--   <li><a>vpaGameLiftAWSAccountId</a> - Unique identifier for the AWS
--   account that you use to manage your Amazon GameLift fleet. You can
--   find your Account ID in the AWS Management Console under account
--   settings.</li>
--   <li><a>vpaExpirationTime</a> - Time stamp indicating when this
--   authorization expires (24 hours after issuance). Format is a number
--   expressed in Unix time as milliseconds (for example
--   "1469498468.057").</li>
--   </ul>
vpcPeeringAuthorization :: VPCPeeringAuthorization

-- | Time stamp indicating when this authorization was issued. Format is a
--   number expressed in Unix time as milliseconds (for example
--   "1469498468.057").
vpaCreationTime :: Lens' VPCPeeringAuthorization (Maybe UTCTime)

-- | Unique identifier for a VPC with resources to be accessed by your
--   Amazon GameLift fleet. The VPC must be in the same region where your
--   fleet is deployed. To get VPC information, including IDs, use the
--   Virtual Private Cloud service tools, including the VPC Dashboard in
--   the AWS Management Console.
vpaPeerVPCId :: Lens' VPCPeeringAuthorization (Maybe Text)

vpaPeerVPCAWSAccountId :: Lens' VPCPeeringAuthorization (Maybe Text)

-- | Unique identifier for the AWS account that you use to manage your
--   Amazon GameLift fleet. You can find your Account ID in the AWS
--   Management Console under account settings.
vpaGameLiftAWSAccountId :: Lens' VPCPeeringAuthorization (Maybe Text)

-- | Time stamp indicating when this authorization expires (24 hours after
--   issuance). Format is a number expressed in Unix time as milliseconds
--   (for example "1469498468.057").
vpaExpirationTime :: Lens' VPCPeeringAuthorization (Maybe UTCTime)

-- | Represents a peering connection between a VPC on one of your AWS
--   accounts and the VPC for your Amazon GameLift fleets. This record may
--   be for an active peering connection or a pending connection that has
--   not yet been established.
--   
--   VPC peering connection operations include:
--   
--   <ul>
--   <li><tt>CreateVpcPeeringAuthorization</tt></li>
--   <li><tt>DescribeVpcPeeringAuthorizations</tt></li>
--   <li><tt>DeleteVpcPeeringAuthorization</tt></li>
--   <li><tt>CreateVpcPeeringConnection</tt></li>
--   <li><tt>DescribeVpcPeeringConnections</tt></li>
--   <li><tt>DeleteVpcPeeringConnection</tt></li>
--   </ul>
--   
--   <i>See:</i> <a>vpcPeeringConnection</a> smart constructor.
data VPCPeeringConnection

-- | Creates a value of <a>VPCPeeringConnection</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vpcVPCPeeringConnectionId</a> - Unique identifier that is
--   automatically assigned to the connection record. This ID is referenced
--   in VPC peering connection events, and is used when deleting a
--   connection with <tt>DeleteVpcPeeringConnection</tt> .</li>
--   <li><a>vpcStatus</a> - Object that contains status information about
--   the connection. Status indicates if a connection is pending,
--   successful, or failed.</li>
--   <li><a>vpcPeerVPCId</a> - Unique identifier for a VPC with resources
--   to be accessed by your Amazon GameLift fleet. The VPC must be in the
--   same region where your fleet is deployed. To get VPC information,
--   including IDs, use the Virtual Private Cloud service tools, including
--   the VPC Dashboard in the AWS Management Console.</li>
--   <li><a>vpcIPV4CidrBlock</a> - CIDR block of IPv4 addresses assigned to
--   the VPC peering connection for the GameLift VPC. The peered VPC also
--   has an IPv4 CIDR block associated with it; these blocks cannot overlap
--   or the peering connection cannot be created.</li>
--   <li><a>vpcGameLiftVPCId</a> - Unique identifier for the VPC that
--   contains the Amazon GameLift fleet for this connection. This VPC is
--   managed by Amazon GameLift and does not appear in your AWS
--   account.</li>
--   <li><a>vpcFleetId</a> - Unique identifier for a fleet. This ID
--   determines the ID of the Amazon GameLift VPC for your fleet.</li>
--   </ul>
vpcPeeringConnection :: VPCPeeringConnection

-- | Unique identifier that is automatically assigned to the connection
--   record. This ID is referenced in VPC peering connection events, and is
--   used when deleting a connection with
--   <tt>DeleteVpcPeeringConnection</tt> .
vpcVPCPeeringConnectionId :: Lens' VPCPeeringConnection (Maybe Text)

-- | Object that contains status information about the connection. Status
--   indicates if a connection is pending, successful, or failed.
vpcStatus :: Lens' VPCPeeringConnection (Maybe VPCPeeringConnectionStatus)

-- | Unique identifier for a VPC with resources to be accessed by your
--   Amazon GameLift fleet. The VPC must be in the same region where your
--   fleet is deployed. To get VPC information, including IDs, use the
--   Virtual Private Cloud service tools, including the VPC Dashboard in
--   the AWS Management Console.
vpcPeerVPCId :: Lens' VPCPeeringConnection (Maybe Text)

-- | CIDR block of IPv4 addresses assigned to the VPC peering connection
--   for the GameLift VPC. The peered VPC also has an IPv4 CIDR block
--   associated with it; these blocks cannot overlap or the peering
--   connection cannot be created.
vpcIPV4CidrBlock :: Lens' VPCPeeringConnection (Maybe Text)

-- | Unique identifier for the VPC that contains the Amazon GameLift fleet
--   for this connection. This VPC is managed by Amazon GameLift and does
--   not appear in your AWS account.
vpcGameLiftVPCId :: Lens' VPCPeeringConnection (Maybe Text)

-- | Unique identifier for a fleet. This ID determines the ID of the Amazon
--   GameLift VPC for your fleet.
vpcFleetId :: Lens' VPCPeeringConnection (Maybe Text)

-- | Represents status information for a VPC peering connection. Status is
--   associated with a <tt>VpcPeeringConnection</tt> object. Status codes
--   and messages are provided from EC2 (see
--   <a>VpcPeeringConnectionStateReason</a> ). Connection status
--   information is also communicated as a fleet <a>Event</a> .
--   
--   <i>See:</i> <a>vpcPeeringConnectionStatus</a> smart constructor.
data VPCPeeringConnectionStatus

-- | Creates a value of <a>VPCPeeringConnectionStatus</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vpcsCode</a> - Code indicating the status of a VPC peering
--   connection.</li>
--   <li><a>vpcsMessage</a> - Additional messaging associated with the
--   connection status.</li>
--   </ul>
vpcPeeringConnectionStatus :: VPCPeeringConnectionStatus

-- | Code indicating the status of a VPC peering connection.
vpcsCode :: Lens' VPCPeeringConnectionStatus (Maybe Text)

-- | Additional messaging associated with the connection status.
vpcsMessage :: Lens' VPCPeeringConnectionStatus (Maybe Text)
