Amazon Chime SDK Messaging

2023/03/23 - Amazon Chime SDK Messaging - 1 new7 updated api methods

Changes  ExpirationSettings provides automatic resource deletion for Channels.

PutChannelExpirationSettings (new) Link ¶

Sets the number of days before the channel is automatically deleted.

See also: AWS API Documentation

Request Syntax

client.put_channel_expiration_settings(
    ChannelArn='string',
    ChimeBearer='string',
    ExpirationSettings={
        'ExpirationDays': 123,
        'ExpirationCriterion': 'CREATED_TIMESTAMP'|'LAST_MESSAGE_TIMESTAMP'
    }
)
type ChannelArn:

string

param ChannelArn:

[REQUIRED]

The ARN of the channel.

type ChimeBearer:

string

param ChimeBearer:

The ARN of the AppInstanceUser or AppInstanceBot that makes the API call.

type ExpirationSettings:

dict

param ExpirationSettings:

Settings that control the interval after which a channel is deleted.

  • ExpirationDays (integer) -- [REQUIRED]

    The period in days after which the system automatically deletes a channel.

  • ExpirationCriterion (string) -- [REQUIRED]

    The conditions that must be met for a channel to expire.

rtype:

dict

returns:

Response Syntax

{
    'ChannelArn': 'string',
    'ExpirationSettings': {
        'ExpirationDays': 123,
        'ExpirationCriterion': 'CREATED_TIMESTAMP'|'LAST_MESSAGE_TIMESTAMP'
    }
}

Response Structure

  • (dict) --

    • ChannelArn (string) --

      The channel ARN.

    • ExpirationSettings (dict) --

      Settings that control the interval after which a channel is deleted.

      • ExpirationDays (integer) --

        The period in days after which the system automatically deletes a channel.

      • ExpirationCriterion (string) --

        The conditions that must be met for a channel to expire.

ChannelFlowCallback (updated) Link ¶
Changes (request)
{'ChannelMessage': {'ContentType': 'string'}}

Calls back Chime SDK Messaging with a processing response message. This should be invoked from the processor Lambda. This is a developer API.

You can return one of the following processing responses:

  • Update message content or metadata

  • Deny a message

  • Make no changes to the message

See also: AWS API Documentation

Request Syntax

client.channel_flow_callback(
    CallbackId='string',
    ChannelArn='string',
    DeleteResource=True|False,
    ChannelMessage={
        'MessageId': 'string',
        'Content': 'string',
        'Metadata': 'string',
        'PushNotification': {
            'Title': 'string',
            'Body': 'string',
            'Type': 'DEFAULT'|'VOIP'
        },
        'MessageAttributes': {
            'string': {
                'StringValues': [
                    'string',
                ]
            }
        },
        'SubChannelId': 'string',
        'ContentType': 'string'
    }
)
type CallbackId:

string

param CallbackId:

[REQUIRED]

The identifier passed to the processor by the service when invoked. Use the identifier to call back the service.

This field is autopopulated if not provided.

type ChannelArn:

string

param ChannelArn:

[REQUIRED]

The ARN of the channel.

type DeleteResource:

boolean

param DeleteResource:

When a processor determines that a message needs to be DENIED, pass this parameter with a value of true.

type ChannelMessage:

dict

param ChannelMessage:

[REQUIRED]

Stores information about the processed message.

  • MessageId (string) -- [REQUIRED]

    The message ID.

  • Content (string) --

    The message content.

  • Metadata (string) --

    The message metadata.

  • PushNotification (dict) --

    The push notification configuration of the message.

    • Title (string) --

      The title of the push notification.

    • Body (string) --

      The body of the push notification.

    • Type (string) --

      Enum value that indicates the type of the push notification for a message. DEFAULT: Normal mobile push notification. VOIP: VOIP mobile push notification.

  • MessageAttributes (dict) --

    The attributes for the message, used for message filtering along with a FilterRule defined in the PushNotificationPreferences.

    • (string) --

      • (dict) --

        A list of message attribute values.

        • StringValues (list) --

          The strings in a message attribute value.

          • (string) --

  • SubChannelId (string) --

    The ID of the SubChannel.

  • ContentType (string) --

    The content type of the call-back message.

rtype:

dict

returns:

Response Syntax

{
    'ChannelArn': 'string',
    'CallbackId': 'string'
}

Response Structure

  • (dict) --

    • ChannelArn (string) --

      The ARN of the channel.

    • CallbackId (string) --

      The call back ID passed in the request.

CreateChannel (updated) Link ¶
Changes (request)
{'ExpirationSettings': {'ExpirationCriterion': 'CREATED_TIMESTAMP | '
                                               'LAST_MESSAGE_TIMESTAMP',
                        'ExpirationDays': 'integer'}}

Creates a channel to which you can add users and send messages.

Restriction: You can't change a channel's privacy.

See also: AWS API Documentation

Request Syntax

client.create_channel(
    AppInstanceArn='string',
    Name='string',
    Mode='UNRESTRICTED'|'RESTRICTED',
    Privacy='PUBLIC'|'PRIVATE',
    Metadata='string',
    ClientRequestToken='string',
    Tags=[
        {
            'Key': 'string',
            'Value': 'string'
        },
    ],
    ChimeBearer='string',
    ChannelId='string',
    MemberArns=[
        'string',
    ],
    ModeratorArns=[
        'string',
    ],
    ElasticChannelConfiguration={
        'MaximumSubChannels': 123,
        'TargetMembershipsPerSubChannel': 123,
        'MinimumMembershipPercentage': 123
    },
    ExpirationSettings={
        'ExpirationDays': 123,
        'ExpirationCriterion': 'CREATED_TIMESTAMP'|'LAST_MESSAGE_TIMESTAMP'
    }
)
type AppInstanceArn:

string

param AppInstanceArn:

[REQUIRED]

The ARN of the channel request.

type Name:

string

param Name:

[REQUIRED]

The name of the channel.

type Mode:

string

param Mode:

The channel mode: UNRESTRICTED or RESTRICTED. Administrators, moderators, and channel members can add themselves and other members to unrestricted channels. Only administrators and moderators can add members to restricted channels.

type Privacy:

string

param Privacy:

The channel's privacy level: PUBLIC or PRIVATE. Private channels aren't discoverable by users outside the channel. Public channels are discoverable by anyone in the AppInstance.

type Metadata:

string

param Metadata:

The metadata of the creation request. Limited to 1KB and UTF-8.

type ClientRequestToken:

string

param ClientRequestToken:

[REQUIRED]

The client token for the request. An Idempotency token.

This field is autopopulated if not provided.

type Tags:

list

param Tags:

The tags for the creation request.

  • (dict) --

    A tag object containing a key-value pair.

    • Key (string) -- [REQUIRED]

      The key in a tag.

    • Value (string) -- [REQUIRED]

      The value in a tag.

type ChimeBearer:

string

param ChimeBearer:

[REQUIRED]

The ARN of the AppInstanceUser or AppInstanceBot that makes the API call.

type ChannelId:

string

param ChannelId:

The ID of the channel in the request.

type MemberArns:

list

param MemberArns:

The ARNs of the channel members in the request.

  • (string) --

type ModeratorArns:

list

param ModeratorArns:

The ARNs of the channel moderators in the request.

  • (string) --

type ElasticChannelConfiguration:

dict

param ElasticChannelConfiguration:

The attributes required to configure and create an elastic channel. An elastic channel can support a maximum of 1-million users, excluding moderators.

  • MaximumSubChannels (integer) -- [REQUIRED]

    The maximum number of SubChannels that you want to allow in the elastic channel.

  • TargetMembershipsPerSubChannel (integer) -- [REQUIRED]

    The maximum number of members allowed in a SubChannel.

  • MinimumMembershipPercentage (integer) -- [REQUIRED]

    The minimum allowed percentage of TargetMembershipsPerSubChannel users. Ceil of the calculated value is used in balancing members among SubChannels of the elastic channel.

type ExpirationSettings:

dict

param ExpirationSettings:

Settings that control the interval after which the channel is automatically deleted.

  • ExpirationDays (integer) -- [REQUIRED]

    The period in days after which the system automatically deletes a channel.

  • ExpirationCriterion (string) -- [REQUIRED]

    The conditions that must be met for a channel to expire.

rtype:

dict

returns:

Response Syntax

{
    'ChannelArn': 'string'
}

Response Structure

  • (dict) --

    • ChannelArn (string) --

      The ARN of the channel.

DescribeChannel (updated) Link ¶
Changes (response)
{'Channel': {'ExpirationSettings': {'ExpirationCriterion': 'CREATED_TIMESTAMP '
                                                           '| '
                                                           'LAST_MESSAGE_TIMESTAMP',
                                    'ExpirationDays': 'integer'}}}

Returns the full details of a channel in an Amazon Chime AppInstance.

See also: AWS API Documentation

Request Syntax

client.describe_channel(
    ChannelArn='string',
    ChimeBearer='string'
)
type ChannelArn:

string

param ChannelArn:

[REQUIRED]

The ARN of the channel.

type ChimeBearer:

string

param ChimeBearer:

[REQUIRED]

The ARN of the AppInstanceUser or AppInstanceBot that makes the API call.

rtype:

dict

returns:

Response Syntax

{
    'Channel': {
        'Name': 'string',
        'ChannelArn': 'string',
        'Mode': 'UNRESTRICTED'|'RESTRICTED',
        'Privacy': 'PUBLIC'|'PRIVATE',
        'Metadata': 'string',
        'CreatedBy': {
            'Arn': 'string',
            'Name': 'string'
        },
        'CreatedTimestamp': datetime(2015, 1, 1),
        'LastMessageTimestamp': datetime(2015, 1, 1),
        'LastUpdatedTimestamp': datetime(2015, 1, 1),
        'ChannelFlowArn': 'string',
        'ElasticChannelConfiguration': {
            'MaximumSubChannels': 123,
            'TargetMembershipsPerSubChannel': 123,
            'MinimumMembershipPercentage': 123
        },
        'ExpirationSettings': {
            'ExpirationDays': 123,
            'ExpirationCriterion': 'CREATED_TIMESTAMP'|'LAST_MESSAGE_TIMESTAMP'
        }
    }
}

Response Structure

  • (dict) --

    • Channel (dict) --

      The channel details.

      • Name (string) --

        The name of a channel.

      • ChannelArn (string) --

        The ARN of a channel.

      • Mode (string) --

        The mode of the channel.

      • Privacy (string) --

        The channel's privacy setting.

      • Metadata (string) --

        The channel's metadata.

      • CreatedBy (dict) --

        The AppInstanceUser who created the channel.

        • Arn (string) --

          The ARN in an Identity.

        • Name (string) --

          The name in an Identity.

      • CreatedTimestamp (datetime) --

        The time at which the AppInstanceUser created the channel.

      • LastMessageTimestamp (datetime) --

        The time at which a member sent the last message in the channel.

      • LastUpdatedTimestamp (datetime) --

        The time at which a channel was last updated.

      • ChannelFlowArn (string) --

        The ARN of the channel flow.

      • ElasticChannelConfiguration (dict) --

        The attributes required to configure and create an elastic channel. An elastic channel can support a maximum of 1-million members.

        • MaximumSubChannels (integer) --

          The maximum number of SubChannels that you want to allow in the elastic channel.

        • TargetMembershipsPerSubChannel (integer) --

          The maximum number of members allowed in a SubChannel.

        • MinimumMembershipPercentage (integer) --

          The minimum allowed percentage of TargetMembershipsPerSubChannel users. Ceil of the calculated value is used in balancing members among SubChannels of the elastic channel.

      • ExpirationSettings (dict) --

        Settings that control when a channel expires.

        • ExpirationDays (integer) --

          The period in days after which the system automatically deletes a channel.

        • ExpirationCriterion (string) --

          The conditions that must be met for a channel to expire.

GetChannelMessage (updated) Link ¶
Changes (response)
{'ChannelMessage': {'ContentType': 'string'}}

Gets the full details of a channel message.

See also: AWS API Documentation

Request Syntax

client.get_channel_message(
    ChannelArn='string',
    MessageId='string',
    ChimeBearer='string',
    SubChannelId='string'
)
type ChannelArn:

string

param ChannelArn:

[REQUIRED]

The ARN of the channel.

type MessageId:

string

param MessageId:

[REQUIRED]

The ID of the message.

type ChimeBearer:

string

param ChimeBearer:

[REQUIRED]

The ARN of the AppInstanceUser or AppInstanceBot that makes the API call.

type SubChannelId:

string

param SubChannelId:

The ID of the SubChannel in the request.

rtype:

dict

returns:

Response Syntax

{
    'ChannelMessage': {
        'ChannelArn': 'string',
        'MessageId': 'string',
        'Content': 'string',
        'Metadata': 'string',
        'Type': 'STANDARD'|'CONTROL',
        'CreatedTimestamp': datetime(2015, 1, 1),
        'LastEditedTimestamp': datetime(2015, 1, 1),
        'LastUpdatedTimestamp': datetime(2015, 1, 1),
        'Sender': {
            'Arn': 'string',
            'Name': 'string'
        },
        'Redacted': True|False,
        'Persistence': 'PERSISTENT'|'NON_PERSISTENT',
        'Status': {
            'Value': 'SENT'|'PENDING'|'FAILED'|'DENIED',
            'Detail': 'string'
        },
        'MessageAttributes': {
            'string': {
                'StringValues': [
                    'string',
                ]
            }
        },
        'SubChannelId': 'string',
        'ContentType': 'string'
    }
}

Response Structure

  • (dict) --

    • ChannelMessage (dict) --

      The details of and content in the message.

      • ChannelArn (string) --

        The ARN of the channel.

      • MessageId (string) --

        The ID of a message.

      • Content (string) --

        The message content.

      • Metadata (string) --

        The message metadata.

      • Type (string) --

        The message type.

      • CreatedTimestamp (datetime) --

        The time at which the message was created.

      • LastEditedTimestamp (datetime) --

        The time at which a message was edited.

      • LastUpdatedTimestamp (datetime) --

        The time at which a message was updated.

      • Sender (dict) --

        The message sender.

        • Arn (string) --

          The ARN in an Identity.

        • Name (string) --

          The name in an Identity.

      • Redacted (boolean) --

        Hides the content of a message.

      • Persistence (string) --

        The persistence setting for a channel message.

      • Status (dict) --

        The status of the channel message.

        • Value (string) --

          The message status value.

        • Detail (string) --

          Contains more details about the messasge status.

      • MessageAttributes (dict) --

        The attributes for the message, used for message filtering along with a FilterRule defined in the PushNotificationPreferences.

        • (string) --

          • (dict) --

            A list of message attribute values.

            • StringValues (list) --

              The strings in a message attribute value.

              • (string) --

      • SubChannelId (string) --

        The ID of the SubChannel.

      • ContentType (string) --

        The content type of the channel message.

ListChannelMessages (updated) Link ¶
Changes (response)
{'ChannelMessages': {'ContentType': 'string'}}

List all the messages in a channel. Returns a paginated list of ChannelMessages. By default, sorted by creation timestamp in descending order.

See also: AWS API Documentation

Request Syntax

client.list_channel_messages(
    ChannelArn='string',
    SortOrder='ASCENDING'|'DESCENDING',
    NotBefore=datetime(2015, 1, 1),
    NotAfter=datetime(2015, 1, 1),
    MaxResults=123,
    NextToken='string',
    ChimeBearer='string',
    SubChannelId='string'
)
type ChannelArn:

string

param ChannelArn:

[REQUIRED]

The ARN of the channel.

type SortOrder:

string

param SortOrder:

The order in which you want messages sorted. Default is Descending, based on time created.

type NotBefore:

datetime

param NotBefore:

The initial or starting time stamp for your requested messages.

type NotAfter:

datetime

param NotAfter:

The final or ending time stamp for your requested messages.

type MaxResults:

integer

param MaxResults:

The maximum number of messages that you want returned.

type NextToken:

string

param NextToken:

The token passed by previous API calls until all requested messages are returned.

type ChimeBearer:

string

param ChimeBearer:

[REQUIRED]

The ARN of the AppInstanceUser or AppInstanceBot that makes the API call.

type SubChannelId:

string

param SubChannelId:

The ID of the SubChannel in the request.

rtype:

dict

returns:

Response Syntax

{
    'ChannelArn': 'string',
    'NextToken': 'string',
    'ChannelMessages': [
        {
            'MessageId': 'string',
            'Content': 'string',
            'Metadata': 'string',
            'Type': 'STANDARD'|'CONTROL',
            'CreatedTimestamp': datetime(2015, 1, 1),
            'LastUpdatedTimestamp': datetime(2015, 1, 1),
            'LastEditedTimestamp': datetime(2015, 1, 1),
            'Sender': {
                'Arn': 'string',
                'Name': 'string'
            },
            'Redacted': True|False,
            'Status': {
                'Value': 'SENT'|'PENDING'|'FAILED'|'DENIED',
                'Detail': 'string'
            },
            'MessageAttributes': {
                'string': {
                    'StringValues': [
                        'string',
                    ]
                }
            },
            'ContentType': 'string'
        },
    ],
    'SubChannelId': 'string'
}

Response Structure

  • (dict) --

    • ChannelArn (string) --

      The ARN of the channel containing the requested messages.

    • NextToken (string) --

      The token passed by previous API calls until all requested messages are returned.

    • ChannelMessages (list) --

      The information about, and content of, each requested message.

      • (dict) --

        Summary of the messages in a Channel.

        • MessageId (string) --

          The ID of the message.

        • Content (string) --

          The content of the message.

        • Metadata (string) --

          The metadata of the message.

        • Type (string) --

          The type of message.

        • CreatedTimestamp (datetime) --

          The time at which the message summary was created.

        • LastUpdatedTimestamp (datetime) --

          The time at which a message was last updated.

        • LastEditedTimestamp (datetime) --

          The time at which a message was last edited.

        • Sender (dict) --

          The message sender.

          • Arn (string) --

            The ARN in an Identity.

          • Name (string) --

            The name in an Identity.

        • Redacted (boolean) --

          Indicates whether a message was redacted.

        • Status (dict) --

          The message status. The status value is SENT for messages sent to a channel without a channel flow. For channels associated with channel flow, the value determines the processing stage.

          • Value (string) --

            The message status value.

          • Detail (string) --

            Contains more details about the messasge status.

        • MessageAttributes (dict) --

          The message attribues listed in a the summary of a channel message.

          • (string) --

            • (dict) --

              A list of message attribute values.

              • StringValues (list) --

                The strings in a message attribute value.

                • (string) --

        • ContentType (string) --

          The content type of the channel messsage listed in the summary.

    • SubChannelId (string) --

      The ID of the SubChannel in the response.

SendChannelMessage (updated) Link ¶
Changes (request)
{'ContentType': 'string'}

Sends a message to a particular channel that the member is a part of.

See also: AWS API Documentation

Request Syntax

client.send_channel_message(
    ChannelArn='string',
    Content='string',
    Type='STANDARD'|'CONTROL',
    Persistence='PERSISTENT'|'NON_PERSISTENT',
    Metadata='string',
    ClientRequestToken='string',
    ChimeBearer='string',
    PushNotification={
        'Title': 'string',
        'Body': 'string',
        'Type': 'DEFAULT'|'VOIP'
    },
    MessageAttributes={
        'string': {
            'StringValues': [
                'string',
            ]
        }
    },
    SubChannelId='string',
    ContentType='string'
)
type ChannelArn:

string

param ChannelArn:

[REQUIRED]

The ARN of the channel.

type Content:

string

param Content:

[REQUIRED]

The content of the message.

type Type:

string

param Type:

[REQUIRED]

The type of message, STANDARD or CONTROL.

type Persistence:

string

param Persistence:

[REQUIRED]

Boolean that controls whether the message is persisted on the back end. Required.

type Metadata:

string

param Metadata:

The optional metadata for each message.

type ClientRequestToken:

string

param ClientRequestToken:

[REQUIRED]

The Idempotency token for each client request.

This field is autopopulated if not provided.

type ChimeBearer:

string

param ChimeBearer:

[REQUIRED]

The ARN of the AppInstanceUser or AppInstanceBot that makes the API call.

type PushNotification:

dict

param PushNotification:

The push notification configuration of the message.

  • Title (string) --

    The title of the push notification.

  • Body (string) --

    The body of the push notification.

  • Type (string) --

    Enum value that indicates the type of the push notification for a message. DEFAULT: Normal mobile push notification. VOIP: VOIP mobile push notification.

type MessageAttributes:

dict

param MessageAttributes:

The attributes for the message, used for message filtering along with a FilterRule defined in the PushNotificationPreferences.

  • (string) --

    • (dict) --

      A list of message attribute values.

      • StringValues (list) --

        The strings in a message attribute value.

        • (string) --

type SubChannelId:

string

param SubChannelId:

The ID of the SubChannel in the request.

type ContentType:

string

param ContentType:

The content type of the channel message.

rtype:

dict

returns:

Response Syntax

{
    'ChannelArn': 'string',
    'MessageId': 'string',
    'Status': {
        'Value': 'SENT'|'PENDING'|'FAILED'|'DENIED',
        'Detail': 'string'
    },
    'SubChannelId': 'string'
}

Response Structure

  • (dict) --

    • ChannelArn (string) --

      The ARN of the channel.

    • MessageId (string) --

      The ID string assigned to each message.

    • Status (dict) --

      The status of the channel message.

      • Value (string) --

        The message status value.

      • Detail (string) --

        Contains more details about the messasge status.

    • SubChannelId (string) --

      The ID of the SubChannel in the response.

UpdateChannelMessage (updated) Link ¶
Changes (request)
{'ContentType': 'string'}

Updates the content of a message.

See also: AWS API Documentation

Request Syntax

client.update_channel_message(
    ChannelArn='string',
    MessageId='string',
    Content='string',
    Metadata='string',
    ChimeBearer='string',
    SubChannelId='string',
    ContentType='string'
)
type ChannelArn:

string

param ChannelArn:

[REQUIRED]

The ARN of the channel.

type MessageId:

string

param MessageId:

[REQUIRED]

The ID string of the message being updated.

type Content:

string

param Content:

[REQUIRED]

The content of the message being updated.

type Metadata:

string

param Metadata:

The metadata of the message being updated.

type ChimeBearer:

string

param ChimeBearer:

[REQUIRED]

The ARN of the AppInstanceUser or AppInstanceBot that makes the API call.

type SubChannelId:

string

param SubChannelId:

The ID of the SubChannel in the request.

type ContentType:

string

param ContentType:

The content type of the channel message.

rtype:

dict

returns:

Response Syntax

{
    'ChannelArn': 'string',
    'MessageId': 'string',
    'Status': {
        'Value': 'SENT'|'PENDING'|'FAILED'|'DENIED',
        'Detail': 'string'
    },
    'SubChannelId': 'string'
}

Response Structure

  • (dict) --

    • ChannelArn (string) --

      The ARN of the channel.

    • MessageId (string) --

      The ID string of the message being updated.

    • Status (dict) --

      The status of the message update.

      • Value (string) --

        The message status value.

      • Detail (string) --

        Contains more details about the messasge status.

    • SubChannelId (string) --

      The ID of the SubChannel in the response.