Huawei Publish

Huawei Publish

Certified

Publish a notification message to a Huawei Cloud SMN topic

Publishes exactly one message to an SMN (Simple Message Notification) topic, the Huawei Cloud equivalent of io.kestra.plugin.aws.sns.Publish.

Exactly one of message, messageStructure, or messageTemplateName must be set:

  • message: a plain-text body delivered to every subscription protocol as-is.
  • messageStructure: a map of protocol (email, sms, http, https, ...) to per-protocol body, letting each subscription protocol receive a tailored message.
  • messageTemplateName: publishes via a pre-created SMN message template, filling its placeholders from tags.

Authentication uses AK/SK request signing. Provide accessKeyId and secretAccessKey via {{ secret('NAME') }}, or configure temporaryCredentials for inline IAM credential exchange.

yaml
type: io.kestra.plugin.huawei.smn.Publish

Publish a plain-text notification to an SMN topic.

yaml
id: smn_publish
namespace: company.team

tasks:
  - id: publish
    type: io.kestra.plugin.huawei.smn.Publish
    accessKeyId: "{{ secret('HUAWEI_AK') }}"
    secretAccessKey: "{{ secret('HUAWEI_SK') }}"
    region: eu-west-101
    topicUrn: "urn:smn:eu-west-101:0123456789abcdef0123456789abcdef:my-topic"
    subject: "Flow completed"
    message: "The flow {{ flow.id }} finished successfully."

Publish a per-protocol message structure (email vs. SMS body) to an SMN topic.

yaml
id: smn_publish_structured
namespace: company.team

tasks:
  - id: publish
    type: io.kestra.plugin.huawei.smn.Publish
    accessKeyId: "{{ secret('HUAWEI_AK') }}"
    secretAccessKey: "{{ secret('HUAWEI_SK') }}"
    region: eu-west-101
    topicUrn: "urn:smn:eu-west-101:0123456789abcdef0123456789abcdef:my-topic"
    messageStructure:
      default: "The nightly ETL job finished successfully."
      email: "The nightly ETL job finished successfully. See the report attached."
      sms: "ETL OK"
Properties

Topic URN to publish to

Format: urn: smn: <region>: <project_id>: <topic_name>, found on the SMN topic's detail page.

Access Key (AK) used to authenticate with Huawei Cloud

Huawei Cloud access key used together with secretAccessKey to sign API requests. Required for AK/SK-based authentication; not required when providing a pre-obtained securityToken. Sensitive — always provide via {{ secret('NAME') }}.

Huawei Cloud Account Domain ID

Identifies the Huawei Cloud account (domain). Required when authenticating against global services such as IAM, or when requesting a domain-scoped IAM token.

SMN endpoint URL override

Overrides the default endpoint derived from region and endpointSuffix. Use this for private endpoints, non-standard deployments, or tests. When set, endpointSuffix is ignored.

Format: https://smn.<region>.myhuaweicloud.com (without trailing slash).

Huawei Cloud domain suffix

Controls the top-level domain used when deriving the SMN endpoint from region. Defaults to myhuaweicloud.com. Set to myhuaweicloud.eu for the Huawei Cloud European sovereign cloud.

Ignored when endpointOverride is set.

Plain-text message body

Mutually exclusive with messageStructure and messageTemplateName — exactly one must be set.

Structured message attributes

Definitions
name*Requiredstring

Attribute name

value*Requiredstring

Attribute value

typestring
DefaultSTRING

Attribute type

Currently only STRING is supported by SMN.

Per-protocol message structure

A map of subscription protocol (email, sms, http, https, dms, functionstage, ...) to the body delivered to subscribers of that protocol. Must include a default entry, used as the fallback body for any protocol not explicitly listed. Mutually exclusive with message and messageTemplateName — exactly one must be set.

SMN message template name

Publishes via a pre-created SMN message template instead of an inline body. Combine with tags to fill the template's placeholders. Mutually exclusive with message and messageStructure — exactly one must be set.

The template must include a variant with the Default protocol (SMN's mandatory fallback for every subscription protocol); otherwise SMN rejects the publish with SMN.0076 Default message template not found.

Reference (ref) of the pluginDefaults to apply to this task.

Huawei Cloud Project ID

Identifies the region-scoped project against which most regional services authenticate. Mutually exclusive with domainId for global services such as IAM.

Huawei Cloud region

Region identifier such as eu-west-101, ap-southeast-1, or cn-north-4.

Secret Key (SK) used to authenticate with Huawei Cloud

Huawei Cloud secret key paired with accessKeyId. Required for AK/SK-based authentication. Sensitive — always provide via {{ secret('NAME') }}.

Pre-obtained Huawei Cloud IAM token used as bearer credential for downstream API calls

When set, downstream Huawei tasks send this value in the X-Auth-Token header instead of signing requests with AK/SK. Sensitive.

Email subject

Used only by subscriptions with the email protocol; ignored by other protocols.

Template placeholder values

Key/value pairs filling the placeholders of messageTemplateName. Ignored unless messageTemplateName is set.

Inline IAM credential exchange

When set, the connection layer calls the Huawei IAM STS API once per task execution and uses the returned temporary AK/SK + security token instead of the static accessKeyId and secretAccessKey properties.

Configure once via pluginDefaults to apply transparently to every task in a namespace without per-task credential wiring:

pluginDefaults: 
  - type: io.kestra.plugin.huawei.obs
    values: 
      region: eu-west-101
      temporaryCredentials: 
        authMethod: PASSWORD
        username: my-iam-user
        password: "{{ secret('HUAWEI_IAM_PASSWORD') }}"
        domainName: my-account-domain
        durationSeconds: 3600

**Long-running tasks: ** the exchange runs once at execution start. For RealtimeTrigger or long-running Consume tasks that outlive durationSeconds, credentials will expire mid-run. Use long-lived AK/SK properties or refresh externally in that case.

Definitions
authMethodstring
DefaultPASSWORD
Possible Values
PASSWORDTOKEN

Authentication method

Controls which credentials are used to obtain the session token before exchanging for temporary STS credentials.

  • PASSWORD (default): provide username, password, and domainName.
  • TOKEN: provide an existing iamToken (X-Auth-Token).
domainNamestring

Account domain name (PASSWORD method only)

The Huawei Cloud account name (domain name) that owns the IAM user. Required when authMethod is PASSWORD. Visible in the Huawei Cloud console under My Credentials → Domain Name.

durationSecondsintegerstring
Default900

Lifetime of the temporary credentials in seconds

How long the returned temporary AK/SK/security-token should remain valid. Huawei Cloud accepts values between 900 (15 minutes) and 86400 (24 hours). Defaults to 900 seconds.

endpointSuffixstring
Defaultmyhuaweicloud.com

Huawei Cloud IAM endpoint suffix

Domain suffix used to build the IAM endpoint URL when no explicit endpoint override is set. Defaults to myhuaweicloud.com. Set to myhuaweicloud.eu for the European sovereign cloud (region eu-west-101 / EU-Dublin).

iamTokenstring

IAM token to exchange (TOKEN method only)

An existing Huawei Cloud X-Auth-Token to exchange for temporary STS credentials. Required when authMethod is TOKEN. Sensitive — always provide via {{ secret('NAME') }}.

passwordstring

IAM password (PASSWORD method only)

Password for the IAM user identified by username. Required when authMethod is PASSWORD. Sensitive — always provide via {{ secret('NAME') }}.

projectNamestring

Project name for project-scoped tokens (PASSWORD method only)

Overrides the project name used for scope=PROJECT token requests. Defaults to the task's region value when omitted, which is correct for most regions.

scopestring
DefaultPROJECT
Possible Values
PROJECTDOMAIN

Token scope (PASSWORD method only)

Scope of the session token obtained during password authentication.

  • PROJECT (default): token is scoped to the project matching projectName (or the task's region when projectName is omitted). Use for most downstream tasks.
  • DOMAIN: token is scoped to the domain.
usernamestring

IAM username (PASSWORD method only)

Huawei Cloud IAM username. Required when authMethod is PASSWORD.

Time-to-live

How long SMN retains the message for retry before giving up, in seconds. Must be a positive integer from 1 to 86400 (24 hours). Optional; SMN applies its own default (3600s) when omitted.

SMN-assigned message identifier

SMN request identifier, useful for support tickets

Unitmessages

Number of messages successfully published to SMN.