Skip to content

/AWS1/IF_GMZ=>UPDATESTREAMGROUP()

About UpdateStreamGroup

Updates the configuration settings for an Amazon GameLift Streams stream group resource. To update a stream group, it must be in ACTIVE status. You can change the description, the set of locations, and the requested capacity of a stream group per location. If you want to change the stream class, create a new stream group.

Stream capacity represents the number of concurrent streams that can be active at a time. You set stream capacity per location, per stream group. The following capacity settings are available:

  • Always-on capacity: This setting, if non-zero, indicates minimum streaming capacity which is allocated to you and is never released back to the service. You pay for this base level of capacity at all times, whether used or idle.

  • Maximum capacity: This indicates the maximum capacity that the service can allocate for you. Newly created streams may take a few minutes to start. Capacity is released back to the service when idle. You pay for capacity that is allocated to you until it is released.

  • Target-idle capacity: This indicates idle capacity which the service pre-allocates and holds for you in anticipation of future activity. This helps to insulate your users from capacity-allocation delays. You pay for capacity which is held in this intentional idle state.

Values for capacity must be whole number multiples of the tenancy value of the stream group's stream class.

To update a stream group, specify the stream group's Amazon Resource Name (ARN) and provide the new values. If the request is successful, Amazon GameLift Streams returns the complete updated metadata for the stream group. Expired stream groups cannot be updated.

Method Signature

METHODS /AWS1/IF_GMZ~UPDATESTREAMGROUP
  IMPORTING
    !IV_IDENTIFIER TYPE /AWS1/GMZIDENTIFIER OPTIONAL
    !IT_LOCATIONCONFIGURATIONS TYPE /AWS1/CL_GMZLOCATIONCONF=>TT_LOCATIONCONFIGURATIONS OPTIONAL
    !IV_DESCRIPTION TYPE /AWS1/GMZDESCRIPTION OPTIONAL
    !IV_DEFAULTAPPLICATIONID TYPE /AWS1/GMZIDENTIFIER OPTIONAL
  RETURNING
    VALUE(OO_OUTPUT) TYPE REF TO /aws1/cl_gmzupdstreamgroupout
  RAISING
    /AWS1/CX_GMZACCESSDENIEDEX
    /AWS1/CX_GMZCONFLICTEXCEPTION
    /AWS1/CX_GMZINTERNALSERVEREX
    /AWS1/CX_GMZRESOURCENOTFOUNDEX
    /AWS1/CX_GMZSERVICEQUOTAEXCDEX
    /AWS1/CX_GMZTHROTTLINGEX
    /AWS1/CX_GMZVALIDATIONEX
    /AWS1/CX_GMZCLIENTEXC
    /AWS1/CX_GMZSERVEREXC
    /AWS1/CX_RT_TECHNICAL_GENERIC
    /AWS1/CX_RT_SERVICE_GENERIC.

IMPORTING

Required arguments:

iv_identifier TYPE /AWS1/GMZIDENTIFIER /AWS1/GMZIDENTIFIER

An Amazon Resource Name (ARN) or ID that uniquely identifies the stream group resource. Example ARN: arn:aws:gameliftstreams:us-west-2:111122223333:streamgroup/sg-1AB2C3De4. Example ID: sg-1AB2C3De4.

Optional arguments:

it_locationconfigurations TYPE /AWS1/CL_GMZLOCATIONCONF=>TT_LOCATIONCONFIGURATIONS TT_LOCATIONCONFIGURATIONS

A set of one or more locations and the streaming capacity for each location.

iv_description TYPE /AWS1/GMZDESCRIPTION /AWS1/GMZDESCRIPTION

A descriptive label for the stream group.

iv_defaultapplicationid TYPE /AWS1/GMZIDENTIFIER /AWS1/GMZIDENTIFIER

The unique identifier of the Amazon GameLift Streams application that you want to set as the default application in a stream group. The application that you specify must be in READY status. The default application is pre-cached on always-on compute resources, reducing stream startup times. Other applications are automatically cached as needed.

Note that this parameter only sets the default application in a stream group. To associate a new application to an existing stream group, you must use AssociateApplications.

When you switch default applications in a stream group, it can take up to a few hours for the new default application to be pre-cached.

This value is an Amazon Resource Name (ARN) or ID that uniquely identifies the application resource. Example ARN: arn:aws:gameliftstreams:us-west-2:111122223333:application/a-9ZY8X7Wv6. Example ID: a-9ZY8X7Wv6.

RETURNING

oo_output TYPE REF TO /aws1/cl_gmzupdstreamgroupout /AWS1/CL_GMZUPDSTREAMGROUPOUT

Domain /AWS1/RT_ACCOUNT_ID
Primitive Type NUMC

Examples

Syntax Example

This is an example of the syntax for calling the method. It includes every possible argument and initializes every possible value. The data provided is not necessarily semantically accurate (for example the value "string" may be provided for something that is intended to be an instance ID, or in some cases two arguments may be mutually exclusive). The syntax shows the ABAP syntax for creating the various data structures.

DATA(lo_result) = lo_client->updatestreamgroup(
  it_locationconfigurations = VALUE /aws1/cl_gmzlocationconf=>tt_locationconfigurations(
    (
      new /aws1/cl_gmzlocationconf(
        iv_alwaysoncapacity = 123
        iv_locationname = |string|
        iv_maximumcapacity = 123
        iv_ondemandcapacity = 123
        iv_targetidlecapacity = 123
      )
    )
  )
  iv_defaultapplicationid = |string|
  iv_description = |string|
  iv_identifier = |string|
).

This is an example of reading all possible response values

lo_result = lo_result.
IF lo_result IS NOT INITIAL.
  lv_identifier = lo_result->get_arn( ).
  lv_description = lo_result->get_description( ).
  lo_defaultapplication = lo_result->get_defaultapplication( ).
  IF lo_defaultapplication IS NOT INITIAL.
    lv_id = lo_defaultapplication->get_id( ).
    lv_arn = lo_defaultapplication->get_arn( ).
  ENDIF.
  LOOP AT lo_result->get_locationstates( ) into lo_row.
    lo_row_1 = lo_row.
    IF lo_row_1 IS NOT INITIAL.
      lv_locationname = lo_row_1->get_locationname( ).
      lv_streamgrouplocationstat = lo_row_1->get_status( ).
      lv_alwaysoncapacity = lo_row_1->get_alwaysoncapacity( ).
      lv_ondemandcapacity = lo_row_1->get_ondemandcapacity( ).
      lv_targetidlecapacity = lo_row_1->get_targetidlecapacity( ).
      lv_maximumcapacity = lo_row_1->get_maximumcapacity( ).
      lv_capacityvalue = lo_row_1->get_requestedcapacity( ).
      lv_capacityvalue = lo_row_1->get_allocatedcapacity( ).
      lv_capacityvalue = lo_row_1->get_idlecapacity( ).
    ENDIF.
  ENDLOOP.
  lv_streamclass = lo_result->get_streamclass( ).
  lv_id = lo_result->get_id( ).
  lv_streamgroupstatus = lo_result->get_status( ).
  lv_streamgroupstatusreason = lo_result->get_statusreason( ).
  lv_timestamp = lo_result->get_lastupdatedat( ).
  lv_timestamp = lo_result->get_createdat( ).
  lv_timestamp = lo_result->get_expiresat( ).
  LOOP AT lo_result->get_associatedapplications( ) into lo_row_2.
    lo_row_3 = lo_row_2.
    IF lo_row_3 IS NOT INITIAL.
      lv_arn = lo_row_3->get_value( ).
    ENDIF.
  ENDLOOP.
ENDIF.