SMN API

The Simple Message Notification Service Class

The SMN high-level interface is available through the smn member of a Connection object. The smn member will only be added if the otcextensions.sdk.register_otc_extensions(conn) method is called.

Subscription Operations

class otcextensions.sdk.smn.v2._proxy.Proxy(session, statsd_client=None, statsd_prefix=None, prometheus_counter=None, prometheus_histogram=None, influxdb_config=None, influxdb_client=None, *args, **kwargs)
create_subscription(topic, **attrs)

Create a new Subscription from attributes

Parameters:
  • topic – Either the ID of a topic or a Topic instance.

  • attrs (dict) – Keyword arguments which will be used to create a Subscription

Returns:

Subscription

delete_subscription(subscription, ignore_missing=True)

Delete a subscription

Parameters:
  • subscription – Either the ID of a subscription or a :class: ~otcextensions.sdk.smn.v2.subscription.Subscription instance.

  • ignore_missing (bool) – When set to False ResourceNotFound will be raised if the subscription does not exist. When set to True, no exception will be set when attempting to delete a nonexistent subscription.

Returns:

None

subscriptions(topic=None, **query)

Return a generator of Subscriptions

Parameters:
  • topic – Either the ID of a topic or a :class: ~otcextensions.sdk.smn.v2.topic.Topic instance.

  • query (dict) – Optional query parameters to be sent to limit the resources being returned.

Returns:

A generator of subscription objects

Return type:

Subscription

SMS Operations

class otcextensions.sdk.smn.v2._proxy.Proxy(session, statsd_client=None, statsd_prefix=None, prometheus_counter=None, prometheus_histogram=None, influxdb_config=None, influxdb_client=None, *args, **kwargs)
send_sms(endpoint, message)

Send a transactional SMS message to a specified phone number, usually used for verification code or notification.

Parameters:
  • endpoint – Phone number.

  • message – SMS message content.

Returns:

Message

Template Operations

class otcextensions.sdk.smn.v2._proxy.Proxy(session, statsd_client=None, statsd_prefix=None, prometheus_counter=None, prometheus_histogram=None, influxdb_config=None, influxdb_client=None, *args, **kwargs)
create_template(**attrs)

Create a new message template from attributes

Parameters:

attrs (dict) – Keyword arguments which will be used to create a Template

Returns:

Template

delete_template(template, ignore_missing=True)

Delete a message template

Parameters:
  • template – message template ID or an instance of Template

  • ignore_missing (bool) – When set to False ResourceNotFound will be raised when the template does not exist. When set to True, no exception will be set when attempting to delete a nonexistent template.

Returns:

None

templates(**query)

Return a generator of message templates

Parameters:

query (dict) – Optional query parameters to be sent to limit the resources being returned.

Returns:

A generator of template objects.

Return type:

Template

get_template(template)

Get details a message templates

Parameters:

template – The value can be the ID of a message template or a Template instance.

Returns:

One Template

Raises:

ResourceNotFound when no resource can be found.

update_template(template, **attrs)

Update a message template

Parameters:
  • topic – Either the ID of a message template or a Template instance.

  • attrs (dict) – The attributes to update on the template represented by Template

Returns:

The updated template.

Return type:

Template

find_template(name_or_id, ignore_missing=False)

Find a single message template.

Parameters:
  • name_or_id – The name or ID of a template.

  • ignore_missing (bool) – When set to False ResourceNotFound will be raised when the template does not exist. When set to True, no exception will be set when attempting to delete a nonexistent template.

Returns:

One Template

Topic Operations

class otcextensions.sdk.smn.v2._proxy.Proxy(session, statsd_client=None, statsd_prefix=None, prometheus_counter=None, prometheus_histogram=None, influxdb_config=None, influxdb_client=None, *args, **kwargs)
create_topic(**attrs)

Create a new topic from attributes

Parameters:

attrs (dict) – Keyword arguments which will be used to create a Topic

Returns:

Topic

delete_topic(topic, ignore_missing=True)

Delete a topic

Parameters:
  • topic – topic urn or an instance of Topic

  • ignore_missing (bool) – When set to False ResourceNotFound will be raised when the topic does not exist. When set to True, no exception will be set when attempting to delete a nonexistent topic.

Returns:

None

topics(**query)

Return a generator of SMN topics

Parameters:

query (dict) – Optional query parameters to be sent to limit the resources being returned.

Returns:

A generator of topic objects

Return type:

Topic

get_topic(topic)

Get details a SMN topic

Parameters:

topic – The value can be the ID of a topic or a Topic instance.

Returns:

One Topic

Raises:

ResourceNotFound when no resource can be found.

update_topic(topic, **attrs)

Update a SMN topic

Parameters:
  • topic – Either the ID of a topic or a Topic instance.

  • attrs (dict) – The attributes to update on the topic represented by Topic

Returns:

The updated topic.

Return type:

Topic

Topic Attribute Operations

class otcextensions.sdk.smn.v2._proxy.Proxy(session, statsd_client=None, statsd_prefix=None, prometheus_counter=None, prometheus_histogram=None, influxdb_config=None, influxdb_client=None, *args, **kwargs)
topic_attributes(topic, **query)

Get SMN topic attributes

Parameters:
  • topic – The value can be the ID of a topic or a Topic instance.

  • query – Attribute query params.

Returns:

One TopicAttribute

Raises:

ResourceNotFound when no resource can be found.

update_topic_attribute(topic, name='access_policy', **attrs)

Update SMN topic attributes

Parameters:
  • topic – Either the ID of a topic or a Topic instance.

  • name – Attribute Name.

  • attrs (dict) – The attributes to update on the topic represented by TopicAttribute

Returns:

request_id.

Return type:

TopicAttribute

Raises:

ResourceNotFound when no resource can be found.

delete_topic_attribute(topic, name=None)

Delete all attributes of a topic

Parameters:
  • topic – Either the ID of a topic or a Topic instance.

  • name – Attribute Name.

Returns:

request_id.

Return type:

TopicAttribute

Raises:

ResourceNotFound when no resource can be found.

Message Operations

class otcextensions.sdk.smn.v2._proxy.Proxy(session, statsd_client=None, statsd_prefix=None, prometheus_counter=None, prometheus_histogram=None, influxdb_config=None, influxdb_client=None, *args, **kwargs)
publish_message(topic, **attrs)

Publish messages in the text format or using message structure or using a message template to a topic.

Parameters:
  • topic – Either the ID of a topic or a :class: ~otcextensions.sdk.smn.v2.topic.Topic instance.

  • attrs (dict) – Keyword arguments which will be used to Publish a Message.

Returns:

Message