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: session.Session, *, service_type: str | None = None, service_name: str | None = None, interface: str | None = None, region_name: str | None = None, endpoint_override: str | None = None, version: str | None = None, auth: plugin.BaseAuthPlugin | None = None, user_agent: str | None = None, connect_retries: int | None = None, logger: logging.Logger | None = None, allow: dict[str, ty.Any] | None = None, additional_headers: collections.abc.MutableMapping[str, str] | None = None, client_name: str | None = None, client_version: str | None = None, allow_version_hack: bool | None = None, global_request_id: str | None = None, min_version: str | None = None, max_version: str | None = None, default_microversion: str | None = None, status_code_retries: int | None = None, retriable_status_codes: list[int] | None = None, raise_exc: bool | None = None, rate_limit: float | None = None, concurrency: int | None = None, connect_retry_delay: float | None = None, status_code_retry_delay: float | None = None, statsd_client: statsd_client.StatsClient | None = None, statsd_prefix: str | None = None, prometheus_counter: prometheus_client.Counter | None = None, prometheus_histogram: prometheus_client.Histogram | None = None, influxdb_config: dict[str, ty.Any] | None = None, influxdb_client: influxdb_client.InfluxDBClient | None = None)
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: session.Session, *, service_type: str | None = None, service_name: str | None = None, interface: str | None = None, region_name: str | None = None, endpoint_override: str | None = None, version: str | None = None, auth: plugin.BaseAuthPlugin | None = None, user_agent: str | None = None, connect_retries: int | None = None, logger: logging.Logger | None = None, allow: dict[str, ty.Any] | None = None, additional_headers: collections.abc.MutableMapping[str, str] | None = None, client_name: str | None = None, client_version: str | None = None, allow_version_hack: bool | None = None, global_request_id: str | None = None, min_version: str | None = None, max_version: str | None = None, default_microversion: str | None = None, status_code_retries: int | None = None, retriable_status_codes: list[int] | None = None, raise_exc: bool | None = None, rate_limit: float | None = None, concurrency: int | None = None, connect_retry_delay: float | None = None, status_code_retry_delay: float | None = None, statsd_client: statsd_client.StatsClient | None = None, statsd_prefix: str | None = None, prometheus_counter: prometheus_client.Counter | None = None, prometheus_histogram: prometheus_client.Histogram | None = None, influxdb_config: dict[str, ty.Any] | None = None, influxdb_client: influxdb_client.InfluxDBClient | None = None)
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: session.Session, *, service_type: str | None = None, service_name: str | None = None, interface: str | None = None, region_name: str | None = None, endpoint_override: str | None = None, version: str | None = None, auth: plugin.BaseAuthPlugin | None = None, user_agent: str | None = None, connect_retries: int | None = None, logger: logging.Logger | None = None, allow: dict[str, ty.Any] | None = None, additional_headers: collections.abc.MutableMapping[str, str] | None = None, client_name: str | None = None, client_version: str | None = None, allow_version_hack: bool | None = None, global_request_id: str | None = None, min_version: str | None = None, max_version: str | None = None, default_microversion: str | None = None, status_code_retries: int | None = None, retriable_status_codes: list[int] | None = None, raise_exc: bool | None = None, rate_limit: float | None = None, concurrency: int | None = None, connect_retry_delay: float | None = None, status_code_retry_delay: float | None = None, statsd_client: statsd_client.StatsClient | None = None, statsd_prefix: str | None = None, prometheus_counter: prometheus_client.Counter | None = None, prometheus_histogram: prometheus_client.Histogram | None = None, influxdb_config: dict[str, ty.Any] | None = None, influxdb_client: influxdb_client.InfluxDBClient | None = None)
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: session.Session, *, service_type: str | None = None, service_name: str | None = None, interface: str | None = None, region_name: str | None = None, endpoint_override: str | None = None, version: str | None = None, auth: plugin.BaseAuthPlugin | None = None, user_agent: str | None = None, connect_retries: int | None = None, logger: logging.Logger | None = None, allow: dict[str, ty.Any] | None = None, additional_headers: collections.abc.MutableMapping[str, str] | None = None, client_name: str | None = None, client_version: str | None = None, allow_version_hack: bool | None = None, global_request_id: str | None = None, min_version: str | None = None, max_version: str | None = None, default_microversion: str | None = None, status_code_retries: int | None = None, retriable_status_codes: list[int] | None = None, raise_exc: bool | None = None, rate_limit: float | None = None, concurrency: int | None = None, connect_retry_delay: float | None = None, status_code_retry_delay: float | None = None, statsd_client: statsd_client.StatsClient | None = None, statsd_prefix: str | None = None, prometheus_counter: prometheus_client.Counter | None = None, prometheus_histogram: prometheus_client.Histogram | None = None, influxdb_config: dict[str, ty.Any] | None = None, influxdb_client: influxdb_client.InfluxDBClient | None = None)
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: session.Session, *, service_type: str | None = None, service_name: str | None = None, interface: str | None = None, region_name: str | None = None, endpoint_override: str | None = None, version: str | None = None, auth: plugin.BaseAuthPlugin | None = None, user_agent: str | None = None, connect_retries: int | None = None, logger: logging.Logger | None = None, allow: dict[str, ty.Any] | None = None, additional_headers: collections.abc.MutableMapping[str, str] | None = None, client_name: str | None = None, client_version: str | None = None, allow_version_hack: bool | None = None, global_request_id: str | None = None, min_version: str | None = None, max_version: str | None = None, default_microversion: str | None = None, status_code_retries: int | None = None, retriable_status_codes: list[int] | None = None, raise_exc: bool | None = None, rate_limit: float | None = None, concurrency: int | None = None, connect_retry_delay: float | None = None, status_code_retry_delay: float | None = None, statsd_client: statsd_client.StatsClient | None = None, statsd_prefix: str | None = None, prometheus_counter: prometheus_client.Counter | None = None, prometheus_histogram: prometheus_client.Histogram | None = None, influxdb_config: dict[str, ty.Any] | None = None, influxdb_client: influxdb_client.InfluxDBClient | None = None)
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: session.Session, *, service_type: str | None = None, service_name: str | None = None, interface: str | None = None, region_name: str | None = None, endpoint_override: str | None = None, version: str | None = None, auth: plugin.BaseAuthPlugin | None = None, user_agent: str | None = None, connect_retries: int | None = None, logger: logging.Logger | None = None, allow: dict[str, ty.Any] | None = None, additional_headers: collections.abc.MutableMapping[str, str] | None = None, client_name: str | None = None, client_version: str | None = None, allow_version_hack: bool | None = None, global_request_id: str | None = None, min_version: str | None = None, max_version: str | None = None, default_microversion: str | None = None, status_code_retries: int | None = None, retriable_status_codes: list[int] | None = None, raise_exc: bool | None = None, rate_limit: float | None = None, concurrency: int | None = None, connect_retry_delay: float | None = None, status_code_retry_delay: float | None = None, statsd_client: statsd_client.StatsClient | None = None, statsd_prefix: str | None = None, prometheus_counter: prometheus_client.Counter | None = None, prometheus_histogram: prometheus_client.Histogram | None = None, influxdb_config: dict[str, ty.Any] | None = None, influxdb_client: influxdb_client.InfluxDBClient | None = None)
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