Class StartStreamSessionResponse
- All Implemented Interfaces:
SdkPojo,ToCopyableBuilder<StartStreamSessionResponse.Builder,StartStreamSessionResponse>
-
Nested Class Summary
Nested Classes -
Method Summary
Modifier and TypeMethodDescriptionA set of options that you can use to control the stream session runtime environment, expressed as a set of key-value pairs.A list of CLI arguments that are sent to the streaming server when a stream session launches.final StringThe application streaming in this session.final Stringarn()The Amazon Resource Name (ARN) that's assigned to a stream session resource.builder()final IntegerThe length of time that Amazon GameLift Streams should wait for a client to connect or reconnect to the stream session.final InstantA timestamp that indicates when this resource was created.final StringA human-readable label for the stream session.final booleanfinal booleanequalsBySdkFields(Object obj) Indicates whether some other object is "equal to" this one by SDK fields.final ExportFilesMetadataProvides details about the stream session's exported files.final <T> Optional<T> getValueForField(String fieldName, Class<T> clazz) Used to retrieve the value of a field from any class that extendsSdkResponse.final booleanFor responses, this returns true if the service returned a value for the AdditionalEnvironmentVariables property.final booleanFor responses, this returns true if the service returned a value for the AdditionalLaunchArgs property.final inthashCode()final InstantA timestamp that indicates when this resource was last updated.final Stringlocation()The location where Amazon GameLift Streams hosts and streams your application.final StringAccess location for log files that your content generates during a stream session.final Protocolprotocol()The data transfer protocol in use with the stream session.final StringThe data transfer protocol in use with the stream session.static Class<? extends StartStreamSessionResponse.Builder> final IntegerThe maximum duration of a session.final StringThe WebRTC ICE offer string that a client generates to initiate a connection to the stream session.final StringThe WebRTC answer string that the stream server generates in response to theSignalRequest.final StreamSessionStatusstatus()The current status of the stream session.final StringThe current status of the stream session.A short description of the reason the stream session is inERRORstatus orTERMINATEDstatus.final StringA short description of the reason the stream session is inERRORstatus orTERMINATEDstatus.final StringThe unique identifier for the Amazon GameLift Streams stream group that is hosting the stream session.Take this object and create a builder that contains all of the current property values of this object.final StringtoString()Returns a string representation of this object.final StringuserId()An opaque, unique identifier for an end-user, defined by the developer.final StringThe URL of an S3 bucket that stores Amazon GameLift Streams WebSDK files.Methods inherited from class software.amazon.awssdk.services.gameliftstreams.model.GameLiftStreamsResponse
responseMetadataMethods inherited from class software.amazon.awssdk.core.SdkResponse
sdkHttpResponseMethods inherited from interface software.amazon.awssdk.utils.builder.ToCopyableBuilder
copy
-
Method Details
-
arn
The Amazon Resource Name (ARN) that's assigned to a stream session resource. When combined with the stream group resource ID, this value uniquely identifies the stream session across all Amazon Web Services Regions. Format is
arn:aws:gameliftstreams:[AWS Region]:[AWS account]:streamsession/[stream group resource ID]/[stream session resource ID].- Returns:
- The Amazon Resource Name
(ARN) that's assigned to a stream session resource. When combined with the stream group resource ID,
this value uniquely identifies the stream session across all Amazon Web Services Regions. Format is
arn:aws:gameliftstreams:[AWS Region]:[AWS account]:streamsession/[stream group resource ID]/[stream session resource ID].
-
description
A human-readable label for the stream session. You can update this value at any time.
- Returns:
- A human-readable label for the stream session. You can update this value at any time.
-
streamGroupId
The unique identifier for the Amazon GameLift Streams stream group that is hosting the stream session. Format example:
sg-1AB2C3De4.- Returns:
- The unique identifier for the Amazon GameLift Streams stream group that is hosting the stream session.
Format example:
sg-1AB2C3De4.
-
userId
An opaque, unique identifier for an end-user, defined by the developer.
- Returns:
- An opaque, unique identifier for an end-user, defined by the developer.
-
status
The current status of the stream session. A stream session is ready for a client to connect when in
ACTIVEstatus.-
ACTIVATING: The stream session is starting and preparing to stream. -
ACTIVE: The stream session is ready and waiting for a client connection. A client hasConnectionTimeoutSeconds(specified inStartStreamSession) from when the session reachesACTIVEstate to establish a connection. If no client connects within this timeframe, the session automatically terminates. -
CONNECTED: The stream session has a connected client. A session will automatically terminate if there is no user input for 60 minutes, or if the maximum length of a session specified bySessionLengthSecondsinStartStreamSessionis exceeded. -
ERROR: The stream session failed to activate. SeeStatusReason(returned byGetStreamSessionandStartStreamSession) for more information. -
PENDING_CLIENT_RECONNECTION: A client has recently disconnected and the stream session is waiting for the client to reconnect. A client hasConnectionTimeoutSeconds(specified inStartStreamSession) from when the session reachesPENDING_CLIENT_RECONNECTIONstate to re-establish a connection. If no client connects within this timeframe, the session automatically terminates. -
RECONNECTING: A client has initiated a reconnect to a session that was inPENDING_CLIENT_RECONNECTIONstate. -
TERMINATING: The stream session is ending. -
TERMINATED: The stream session has ended.
If the service returns an enum value that is not available in the current SDK version,
statuswill returnStreamSessionStatus.UNKNOWN_TO_SDK_VERSION. The raw value returned by the service is available fromstatusAsString().- Returns:
- The current status of the stream session. A stream session is ready for a client to connect when in
ACTIVEstatus.-
ACTIVATING: The stream session is starting and preparing to stream. -
ACTIVE: The stream session is ready and waiting for a client connection. A client hasConnectionTimeoutSeconds(specified inStartStreamSession) from when the session reachesACTIVEstate to establish a connection. If no client connects within this timeframe, the session automatically terminates. -
CONNECTED: The stream session has a connected client. A session will automatically terminate if there is no user input for 60 minutes, or if the maximum length of a session specified bySessionLengthSecondsinStartStreamSessionis exceeded. -
ERROR: The stream session failed to activate. SeeStatusReason(returned byGetStreamSessionandStartStreamSession) for more information. -
PENDING_CLIENT_RECONNECTION: A client has recently disconnected and the stream session is waiting for the client to reconnect. A client hasConnectionTimeoutSeconds(specified inStartStreamSession) from when the session reachesPENDING_CLIENT_RECONNECTIONstate to re-establish a connection. If no client connects within this timeframe, the session automatically terminates. -
RECONNECTING: A client has initiated a reconnect to a session that was inPENDING_CLIENT_RECONNECTIONstate. -
TERMINATING: The stream session is ending. -
TERMINATED: The stream session has ended.
-
- See Also:
-
-
statusAsString
The current status of the stream session. A stream session is ready for a client to connect when in
ACTIVEstatus.-
ACTIVATING: The stream session is starting and preparing to stream. -
ACTIVE: The stream session is ready and waiting for a client connection. A client hasConnectionTimeoutSeconds(specified inStartStreamSession) from when the session reachesACTIVEstate to establish a connection. If no client connects within this timeframe, the session automatically terminates. -
CONNECTED: The stream session has a connected client. A session will automatically terminate if there is no user input for 60 minutes, or if the maximum length of a session specified bySessionLengthSecondsinStartStreamSessionis exceeded. -
ERROR: The stream session failed to activate. SeeStatusReason(returned byGetStreamSessionandStartStreamSession) for more information. -
PENDING_CLIENT_RECONNECTION: A client has recently disconnected and the stream session is waiting for the client to reconnect. A client hasConnectionTimeoutSeconds(specified inStartStreamSession) from when the session reachesPENDING_CLIENT_RECONNECTIONstate to re-establish a connection. If no client connects within this timeframe, the session automatically terminates. -
RECONNECTING: A client has initiated a reconnect to a session that was inPENDING_CLIENT_RECONNECTIONstate. -
TERMINATING: The stream session is ending. -
TERMINATED: The stream session has ended.
If the service returns an enum value that is not available in the current SDK version,
statuswill returnStreamSessionStatus.UNKNOWN_TO_SDK_VERSION. The raw value returned by the service is available fromstatusAsString().- Returns:
- The current status of the stream session. A stream session is ready for a client to connect when in
ACTIVEstatus.-
ACTIVATING: The stream session is starting and preparing to stream. -
ACTIVE: The stream session is ready and waiting for a client connection. A client hasConnectionTimeoutSeconds(specified inStartStreamSession) from when the session reachesACTIVEstate to establish a connection. If no client connects within this timeframe, the session automatically terminates. -
CONNECTED: The stream session has a connected client. A session will automatically terminate if there is no user input for 60 minutes, or if the maximum length of a session specified bySessionLengthSecondsinStartStreamSessionis exceeded. -
ERROR: The stream session failed to activate. SeeStatusReason(returned byGetStreamSessionandStartStreamSession) for more information. -
PENDING_CLIENT_RECONNECTION: A client has recently disconnected and the stream session is waiting for the client to reconnect. A client hasConnectionTimeoutSeconds(specified inStartStreamSession) from when the session reachesPENDING_CLIENT_RECONNECTIONstate to re-establish a connection. If no client connects within this timeframe, the session automatically terminates. -
RECONNECTING: A client has initiated a reconnect to a session that was inPENDING_CLIENT_RECONNECTIONstate. -
TERMINATING: The stream session is ending. -
TERMINATED: The stream session has ended.
-
- See Also:
-
-
statusReason
A short description of the reason the stream session is in
ERRORstatus orTERMINATEDstatus.ERRORstatus reasons:-
applicationLogS3DestinationError: Could not write the application log to the Amazon S3 bucket that is configured for the streaming application. Make sure the bucket still exists. -
internalError: An internal service error occurred. Start a new stream session to continue streaming. -
invalidSignalRequest: The WebRTC signal request that was sent is not valid. When starting or reconnecting to a stream session, usegenerateSignalRequestin the Amazon GameLift Streams Web SDK to generate a new signal request. -
placementTimeout: Amazon GameLift Streams could not find available stream capacity to start a stream session. Increase the stream capacity in the stream group or wait until capacity becomes available.
TERMINATEDstatus reasons:-
apiTerminated: The stream session was terminated by an API call to TerminateStreamSession. -
applicationExit: The streaming application exited or crashed. The stream session was terminated because the application is no longer running. -
connectionTimeout: The stream session was terminated because the client failed to connect within the connection timeout period specified byConnectionTimeoutSeconds. -
idleTimeout: The stream session was terminated because it exceeded the idle timeout period of 60 minutes with no user input activity. -
maxSessionLengthTimeout: The stream session was terminated because it exceeded the maximum session length timeout period specified bySessionLengthSeconds. -
reconnectionTimeout: The stream session was terminated because the client failed to reconnect within the reconnection timeout period specified byConnectionTimeoutSecondsafter losing connection.
If the service returns an enum value that is not available in the current SDK version,
statusReasonwill returnStreamSessionStatusReason.UNKNOWN_TO_SDK_VERSION. The raw value returned by the service is available fromstatusReasonAsString().- Returns:
- A short description of the reason the stream session is in
ERRORstatus orTERMINATEDstatus.ERRORstatus reasons:-
applicationLogS3DestinationError: Could not write the application log to the Amazon S3 bucket that is configured for the streaming application. Make sure the bucket still exists. -
internalError: An internal service error occurred. Start a new stream session to continue streaming. -
invalidSignalRequest: The WebRTC signal request that was sent is not valid. When starting or reconnecting to a stream session, usegenerateSignalRequestin the Amazon GameLift Streams Web SDK to generate a new signal request. -
placementTimeout: Amazon GameLift Streams could not find available stream capacity to start a stream session. Increase the stream capacity in the stream group or wait until capacity becomes available.
TERMINATEDstatus reasons:-
apiTerminated: The stream session was terminated by an API call to TerminateStreamSession. -
applicationExit: The streaming application exited or crashed. The stream session was terminated because the application is no longer running. -
connectionTimeout: The stream session was terminated because the client failed to connect within the connection timeout period specified byConnectionTimeoutSeconds. -
idleTimeout: The stream session was terminated because it exceeded the idle timeout period of 60 minutes with no user input activity. -
maxSessionLengthTimeout: The stream session was terminated because it exceeded the maximum session length timeout period specified bySessionLengthSeconds. -
reconnectionTimeout: The stream session was terminated because the client failed to reconnect within the reconnection timeout period specified byConnectionTimeoutSecondsafter losing connection.
-
- See Also:
-
-
statusReasonAsString
A short description of the reason the stream session is in
ERRORstatus orTERMINATEDstatus.ERRORstatus reasons:-
applicationLogS3DestinationError: Could not write the application log to the Amazon S3 bucket that is configured for the streaming application. Make sure the bucket still exists. -
internalError: An internal service error occurred. Start a new stream session to continue streaming. -
invalidSignalRequest: The WebRTC signal request that was sent is not valid. When starting or reconnecting to a stream session, usegenerateSignalRequestin the Amazon GameLift Streams Web SDK to generate a new signal request. -
placementTimeout: Amazon GameLift Streams could not find available stream capacity to start a stream session. Increase the stream capacity in the stream group or wait until capacity becomes available.
TERMINATEDstatus reasons:-
apiTerminated: The stream session was terminated by an API call to TerminateStreamSession. -
applicationExit: The streaming application exited or crashed. The stream session was terminated because the application is no longer running. -
connectionTimeout: The stream session was terminated because the client failed to connect within the connection timeout period specified byConnectionTimeoutSeconds. -
idleTimeout: The stream session was terminated because it exceeded the idle timeout period of 60 minutes with no user input activity. -
maxSessionLengthTimeout: The stream session was terminated because it exceeded the maximum session length timeout period specified bySessionLengthSeconds. -
reconnectionTimeout: The stream session was terminated because the client failed to reconnect within the reconnection timeout period specified byConnectionTimeoutSecondsafter losing connection.
If the service returns an enum value that is not available in the current SDK version,
statusReasonwill returnStreamSessionStatusReason.UNKNOWN_TO_SDK_VERSION. The raw value returned by the service is available fromstatusReasonAsString().- Returns:
- A short description of the reason the stream session is in
ERRORstatus orTERMINATEDstatus.ERRORstatus reasons:-
applicationLogS3DestinationError: Could not write the application log to the Amazon S3 bucket that is configured for the streaming application. Make sure the bucket still exists. -
internalError: An internal service error occurred. Start a new stream session to continue streaming. -
invalidSignalRequest: The WebRTC signal request that was sent is not valid. When starting or reconnecting to a stream session, usegenerateSignalRequestin the Amazon GameLift Streams Web SDK to generate a new signal request. -
placementTimeout: Amazon GameLift Streams could not find available stream capacity to start a stream session. Increase the stream capacity in the stream group or wait until capacity becomes available.
TERMINATEDstatus reasons:-
apiTerminated: The stream session was terminated by an API call to TerminateStreamSession. -
applicationExit: The streaming application exited or crashed. The stream session was terminated because the application is no longer running. -
connectionTimeout: The stream session was terminated because the client failed to connect within the connection timeout period specified byConnectionTimeoutSeconds. -
idleTimeout: The stream session was terminated because it exceeded the idle timeout period of 60 minutes with no user input activity. -
maxSessionLengthTimeout: The stream session was terminated because it exceeded the maximum session length timeout period specified bySessionLengthSeconds. -
reconnectionTimeout: The stream session was terminated because the client failed to reconnect within the reconnection timeout period specified byConnectionTimeoutSecondsafter losing connection.
-
- See Also:
-
-
protocol
The data transfer protocol in use with the stream session.
If the service returns an enum value that is not available in the current SDK version,
protocolwill returnProtocol.UNKNOWN_TO_SDK_VERSION. The raw value returned by the service is available fromprotocolAsString().- Returns:
- The data transfer protocol in use with the stream session.
- See Also:
-
protocolAsString
The data transfer protocol in use with the stream session.
If the service returns an enum value that is not available in the current SDK version,
protocolwill returnProtocol.UNKNOWN_TO_SDK_VERSION. The raw value returned by the service is available fromprotocolAsString().- Returns:
- The data transfer protocol in use with the stream session.
- See Also:
-
location
The location where Amazon GameLift Streams hosts and streams your application. For example,
us-east-1. For a complete list of locations that Amazon GameLift Streams supports, refer to Regions, quotas, and limitations in the Amazon GameLift Streams Developer Guide.- Returns:
- The location where Amazon GameLift Streams hosts and streams your application. For example,
us-east-1. For a complete list of locations that Amazon GameLift Streams supports, refer to Regions, quotas, and limitations in the Amazon GameLift Streams Developer Guide.
-
signalRequest
The WebRTC ICE offer string that a client generates to initiate a connection to the stream session.
- Returns:
- The WebRTC ICE offer string that a client generates to initiate a connection to the stream session.
-
signalResponse
The WebRTC answer string that the stream server generates in response to the
SignalRequest.- Returns:
- The WebRTC answer string that the stream server generates in response to the
SignalRequest.
-
connectionTimeoutSeconds
The length of time that Amazon GameLift Streams should wait for a client to connect or reconnect to the stream session. This time span starts when the stream session reaches
ACTIVEorPENDING_CLIENT_RECONNECTIONstate. If no client connects (or reconnects) before the timeout, Amazon GameLift Streams terminates the stream session.- Returns:
- The length of time that Amazon GameLift Streams should wait for a client to connect or reconnect to the
stream session. This time span starts when the stream session reaches
ACTIVEorPENDING_CLIENT_RECONNECTIONstate. If no client connects (or reconnects) before the timeout, Amazon GameLift Streams terminates the stream session.
-
sessionLengthSeconds
The maximum duration of a session. Amazon GameLift Streams will automatically terminate a session after this amount of time has elapsed, regardless of any existing client connections.
- Returns:
- The maximum duration of a session. Amazon GameLift Streams will automatically terminate a session after this amount of time has elapsed, regardless of any existing client connections.
-
hasAdditionalLaunchArgs
public final boolean hasAdditionalLaunchArgs()For responses, this returns true if the service returned a value for the AdditionalLaunchArgs property. This DOES NOT check that the value is non-empty (for which, you should check theisEmpty()method on the property). This is useful because the SDK will never return a null collection or map, but you may need to differentiate between the service returning nothing (or null) and the service returning an empty collection or map. For requests, this returns true if a value for the property was specified in the request builder, and false if a value was not specified. -
additionalLaunchArgs
A list of CLI arguments that are sent to the streaming server when a stream session launches. You can use this to configure the application or stream session details. You can also provide custom arguments that Amazon GameLift Streams passes to your game client.
AdditionalEnvironmentVariablesandAdditionalLaunchArgshave similar purposes.AdditionalEnvironmentVariablespasses data using environment variables; whileAdditionalLaunchArgspasses data using command-line arguments.Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.
This method will never return null. If you would like to know whether the service returned this field (so that you can differentiate between null and empty), you can use the
hasAdditionalLaunchArgs()method.- Returns:
- A list of CLI arguments that are sent to the streaming server when a stream session launches. You can use
this to configure the application or stream session details. You can also provide custom arguments that
Amazon GameLift Streams passes to your game client.
AdditionalEnvironmentVariablesandAdditionalLaunchArgshave similar purposes.AdditionalEnvironmentVariablespasses data using environment variables; whileAdditionalLaunchArgspasses data using command-line arguments.
-
hasAdditionalEnvironmentVariables
public final boolean hasAdditionalEnvironmentVariables()For responses, this returns true if the service returned a value for the AdditionalEnvironmentVariables property. This DOES NOT check that the value is non-empty (for which, you should check theisEmpty()method on the property). This is useful because the SDK will never return a null collection or map, but you may need to differentiate between the service returning nothing (or null) and the service returning an empty collection or map. For requests, this returns true if a value for the property was specified in the request builder, and false if a value was not specified. -
additionalEnvironmentVariables
A set of options that you can use to control the stream session runtime environment, expressed as a set of key-value pairs. You can use this to configure the application or stream session details. You can also provide custom environment variables that Amazon GameLift Streams passes to your game client.
If you want to debug your application with environment variables, we recommend that you do so in a local environment outside of Amazon GameLift Streams. For more information, refer to the Compatibility Guidance in the troubleshooting section of the Developer Guide.
AdditionalEnvironmentVariablesandAdditionalLaunchArgshave similar purposes.AdditionalEnvironmentVariablespasses data using environment variables; whileAdditionalLaunchArgspasses data using command-line arguments.Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.
This method will never return null. If you would like to know whether the service returned this field (so that you can differentiate between null and empty), you can use the
hasAdditionalEnvironmentVariables()method.- Returns:
- A set of options that you can use to control the stream session runtime environment, expressed as a set
of key-value pairs. You can use this to configure the application or stream session details. You can also
provide custom environment variables that Amazon GameLift Streams passes to your game client.
If you want to debug your application with environment variables, we recommend that you do so in a local environment outside of Amazon GameLift Streams. For more information, refer to the Compatibility Guidance in the troubleshooting section of the Developer Guide.
AdditionalEnvironmentVariablesandAdditionalLaunchArgshave similar purposes.AdditionalEnvironmentVariablespasses data using environment variables; whileAdditionalLaunchArgspasses data using command-line arguments.
-
logFileLocationUri
Access location for log files that your content generates during a stream session. These log files are uploaded to cloud storage location at the end of a stream session. The Amazon GameLift Streams application resource defines which log files to upload.
- Returns:
- Access location for log files that your content generates during a stream session. These log files are uploaded to cloud storage location at the end of a stream session. The Amazon GameLift Streams application resource defines which log files to upload.
-
webSdkProtocolUrl
The URL of an S3 bucket that stores Amazon GameLift Streams WebSDK files. The URL is used to establish connection with the client.
- Returns:
- The URL of an S3 bucket that stores Amazon GameLift Streams WebSDK files. The URL is used to establish connection with the client.
-
lastUpdatedAt
A timestamp that indicates when this resource was last updated. Timestamps are expressed using in ISO8601 format, such as:
2022-12-27T22:29:40+00:00(UTC).- Returns:
- A timestamp that indicates when this resource was last updated. Timestamps are expressed using in ISO8601
format, such as:
2022-12-27T22:29:40+00:00(UTC).
-
createdAt
A timestamp that indicates when this resource was created. Timestamps are expressed using in ISO8601 format, such as:
2022-12-27T22:29:40+00:00(UTC).- Returns:
- A timestamp that indicates when this resource was created. Timestamps are expressed using in ISO8601
format, such as:
2022-12-27T22:29:40+00:00(UTC).
-
applicationArn
The application streaming in this session.
This value is an Amazon Resource Name (ARN) that uniquely identifies the application resource. Example ARN:
arn:aws:gameliftstreams:us-west-2:111122223333:application/a-9ZY8X7Wv6.- Returns:
- The application streaming in this session.
This value is an Amazon Resource Name (ARN) that uniquely identifies the application resource. Example ARN:
arn:aws:gameliftstreams:us-west-2:111122223333:application/a-9ZY8X7Wv6.
-
exportFilesMetadata
Provides details about the stream session's exported files.
- Returns:
- Provides details about the stream session's exported files.
-
toBuilder
Description copied from interface:ToCopyableBuilderTake this object and create a builder that contains all of the current property values of this object.- Specified by:
toBuilderin interfaceToCopyableBuilder<StartStreamSessionResponse.Builder,StartStreamSessionResponse> - Specified by:
toBuilderin classAwsResponse- Returns:
- a builder for type T
-
builder
-
serializableBuilderClass
-
hashCode
public final int hashCode()- Overrides:
hashCodein classAwsResponse
-
equals
- Overrides:
equalsin classAwsResponse
-
equalsBySdkFields
Description copied from interface:SdkPojoIndicates whether some other object is "equal to" this one by SDK fields. An SDK field is a modeled, non-inherited field in anSdkPojoclass, and is generated based on a service model.If an
SdkPojoclass does not have any inherited fields,equalsBySdkFieldsandequalsare essentially the same.- Specified by:
equalsBySdkFieldsin interfaceSdkPojo- Parameters:
obj- the object to be compared with- Returns:
- true if the other object equals to this object by sdk fields, false otherwise.
-
toString
-
getValueForField
Description copied from class:SdkResponseUsed to retrieve the value of a field from any class that extendsSdkResponse. The field name specified should match the member name from the corresponding service-2.json model specified in the codegen-resources folder for a given service. The class specifies what class to cast the returned value to. If the returned value is also a modeled class, theSdkResponse.getValueForField(String, Class)method will again be available.- Overrides:
getValueForFieldin classSdkResponse- Parameters:
fieldName- The name of the member to be retrieved.clazz- The class to cast the returned object to.- Returns:
- Optional containing the casted return value
-
sdkFields
-
sdkFieldNameToField
- Specified by:
sdkFieldNameToFieldin interfaceSdkPojo- Returns:
- The mapping between the field name and its corresponding field.
-