Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Beskrivning

Funktion som hanterar utgående kommunikation till våra intressenter.

Kommunikationsmöjligheter:

Bubblare:

  • Analog post

  • App-push

Dessutom sparas, för identifierade mottagare, kommunikationshistorik.

Livscykelstatus

Produktion

Lösningsbeskrivning

Gliffy
imageAttachmentIdatt29425686
macroId5403c848-f47c-4944-9cae-039096781462
baseUrlhttps://sundsvall.atlassian.net/wiki
namemessagingAPI
diagramAttachmentIdatt30179333
containerId30081025
timestamp1641819939751

Hantering av personuppgifter

Vilka personuppgifter hanteras och varför?

API-specifikation

Swagger ui
openapi: 3.0.1
info:
  title: Messaging
  contact: {}
  license:
    name: MIT License
    url: https://opensource.org/licenses/MIT
  version: "2.0"
tags'@project.version@'
servers:
- nameurl: Sending Resources
- name: Status and History Resourceshttp://localhost:8080
  description: Generated server url
paths:
  /webmessage:
    post:
      tags:
      - Sending Resources
      summary: Send a single web message
      operationId: sendWebMessage
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WebMessageRequest'
        required: true
      responses:
        "400500":
          description: BadInternal Server RequestError
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Problem'
        "500200":
          description: InternalSuccessful Server ErrorOperation
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemMessageResponse'
        "200400":
          description: SuccessfulBad OperationRequest
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/MessageResponseProblem'
  /sms:
    post:
      tags:
      - Sending Resources
      summary: Send a single SMS
      operationId: sendSms
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SmsRequest'
        required: true
      responses:
        "400500":
          description: Internal BadServer RequestError
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Problem'
        "500200":
          description: InternalSuccessful Server ErrorOperation
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemMessageResponse'
        "200400":
          description: SuccessfulBad OperationRequest
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/MessageResponseProblem'
  /messages:
    post:
      tags:
      - Sending Resources
      summary: Send a batch of messages as e-mail or SMS to a list of parties
      operationId: sendMessage
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MessageRequest'
        required: true
      responses:
        "400500":
          description: BadInternal Server RequestError
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Problem'
        "500200":
          description: InternalSuccessful Server ErrorOperation
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemMessagesResponse'
        "200400":
          description: SuccessfulBad OperationRequest
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/MessagesResponseProblem'
  /email:
    post:
      tags:
      - Sending Resources
      summary: Send a single e-mail
      operationId: sendEmail
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EmailRequest'
        required: true
      responses:
        "400500":
          description: BadInternal Server RequestError
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Problem'
        "500200":
          description: InternalSuccessful Server ErrorOperation
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemMessageResponse'
        "200400":
          description: SuccessfulBad OperationRequest
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/MessageResponseProblem'
  /status/{messageId}digitalmail:
    getpost:
      tags:
      - Status andSending History Resources
      summary: Get the status for Send a single messagedigital mail to one or more  operationId: getMessageStatusparties
      parametersoperationId: sendDigitalMail
     - namerequestBody:
messageId         incontent:
path         required: true application/json:
            schema:
              $ref: '#/components/schemas/DigitalMailRequest'
        typerequired: stringtrue
      responses:
        "500":
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Problem'
        "404200":
          description: NotSuccessful FoundOperation
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProblemMessageResponse'
        "200400":
          description: SuccessfulBad OperationRequest
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/MessageStatusResponseProblem'
  /conversationHistorystatus/{partyIdmessageId}:
    get:
      tags:
      - Status and History Resources
      summary: Get the entire conversationstatus history for a givensingle partymessage
      operationId: getConversationHistorygetMessageStatus
      parameters:
      - name: partyIdmessageId
        in: path
        required: true
        schema:
          type: string
      - nameresponses:
fromDate        "500":
in: query         description: Internal "Format: yyyy-MM-dd (ISO8601)"Server Error
          requiredcontent:
false         schema:       '*/*':
   type: string           formatschema:
date       - name: toDate         in$ref: query'#/components/schemas/Problem'
        description: "200"Format:
yyyy-MM-dd (ISO8601)"         requireddescription: falseSuccessful Operation
       schema:   content:
       type: string    '*/*':
      format: date       responsesschema:
        "500":           description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref$ref: '#/components/schemas/ProblemMessageStatusResponse'
        "200404":
          description: SuccessfulNot OperationFound
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/HistoryResponseProblem'
  /batchStatusconversationHistory/{batchIdpartyId}:
    get:
      tags:
      - Status and History Resources
      summary: Get the statusentire conversation history for a messagegiven batchparty
      operationId: getBatchStatusgetConversationHistory
      parameters:
      - name: batchIdpartyId
        in: path
        required: true
        schema:
          type: string
      - responsesname: fromDate
       "200" in:  query
        description: Successful Operation
"Format: yyyy-MM-dd (ISO8601)"
         contentrequired: false
           '*/*'schema:
          type: string
  schema:        format: date
      - $refname: '#/components/schemas/BatchStatusResponse'toDate
        "500"in: query
         description: Internal Server Error"Format: yyyy-MM-dd (ISO8601)"
          contentrequired: false
           '*/*'schema:
          type: string
  schema:        format: date
       $refresponses:
'#/components/schemas/Problem'
        "404500":
          description: NotInternal Server FoundError
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Problem'
   /api-docs:     get"200":
      tags:    description: Successful Operation
- API       summary: OpenAPI content:
     operationId: getApiDocs       responses'*/*':
        "200":      schema:
    description: OK           content:
   $ref: '#/components/schemas/HistoryResponse'
  /batchStatus/{batchId}:
    get:
      tags:
      - Status and History Resources
      summary: Get the status for a message batch
      operationId: getBatchStatus
      parameters:
      - name: batchId
        in: path
        required: true
        schema:
          type: string
      responses:
        "500":
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Problem'
        "200":
          description: Successful Operation
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/BatchStatusResponse'
        "404":
          description: Not Found
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Problem'
  /api-docs:
    get:
      tags:
      - API
      summary: OpenAPI
      operationId: getApiDocs
      responses:
        "200":
          description: OK
          content:
            application/yaml:
              schema:
                type: string
      x-auth-type: None
      x-throttling-tier: Unlimited
      x-wso2-mutual-ssl: Optional
components:
  schemas:
    ExternalReference:
      required:
      - key
      - value
      type: object
      properties:
        key:
          type: string
          description: The external reference key
          example: flowInstanceId
        value:
          type: string
          description: The external reference value
          example: 356t4r34f
      description: External references
    Header:
      required:
      - name
      - values
      type: object
      properties:
        name:
          type: string
          description: The header name
        values:
          type: array
          description: The header values
          items:
            type: string
            description: The header values
      description: Headers
    Party:
      type: object
      properties:
        partyId:
          type: string
          description: The message party ID
          example: f427952b-247c-4d3b-b081-675a467b3619
        externalReferences:
          type: array
          description: External references
          items:
            $ref: '#/components/schemas/ExternalReference'
      description: Party
    WebMessageRequest:
      required:
      - message
      type: object
      properties:
        party:
          $ref: '#/components/schemas/Party'
        headers:
          type: array
          description: Headers
          items:
            $ref: '#/components/schemas/Header'
        message:
          type: string
          description: Message
    Problem:
      type: object
      properties:
        instance:
          type: string
          format: uri
        application/yamltype:
          type: string
   schema:       format: uri
        parameters:
          type: string object
          additionalProperties:
            x-auth-type: None object
        title:
          x-throttling-tier: Unlimitedtype: string
        x-wso2-mutual-sslstatus:
Optional  components:   schemas:     ExternalReference$ref: '#/components/schemas/StatusType'
        requireddetail:
      -  key  type: string
   - valueStatusType:
      type: object
      properties:
        keyreasonPhrase:
          type: string
          descriptionstatusCode:
The external reference key       type: integer
  example: flowInstanceId       format: int32
value:    MessageResponse:
      type: stringobject
          descriptionproperties:
The external reference value     messageId:
     example: 356t4r34f       descriptiontype: Externalstring
references     HeaderSms:
      required:
      - name
      -type: valuesobject
      typeproperties:
object        propertiesname:
          namemaxLength: 11
          typeminLength: string0
          descriptiontype: Thestring
header name         valuesdescription: The sender of the SMS
     type:  array   example: sender
      description: Sender
  The header valuesSmsRequest:
      required:
   items:   - message
      - mobileNumber
type: string     type: object
      descriptionproperties:
The  header values     Partyparty:
      type: object       properties:$ref: '#/components/schemas/Party'
         partyIdheaders:
          type: stringarray
          description: TheHeaders
message party ID        items:
  example: f427952b-247c-4d3b-b081-675a467b3619         externalReferences$ref: '#/components/schemas/Header'
         typesender: array
          description$ref: External references'#/components/schemas/Sms'
           itemsmobileNumber:
            $reftype: '#/components/schemas/ExternalReference'string
    WebMessageRequest:       requireddescription: Mobile number. Should start with +467x
- message       typemessage:
object        properties:  type: string
     party:     description: Message
    $refEmail:
'#/components/schemas/Party'      required:
   headers:   - address
      type:- arrayname
      type: object
  items:    properties:
        $refname: '#/components/schemas/Header'
          messagetype: string
          typedescription: stringThe sender of the e-mail
 Problem:       typeaddress:
object       properties:   type: string
    instance:      description:     type: stringSender e-mail address
          formatexample: urisender@sender.se
        typereplyTo:
          type: string
          format: uridescription: Reply-to e-mail address
          parametersexample: sender@sender.se
    Message:
    type: object required:
      - message
 additionalProperties:     type: object
      typeproperties:
object         statusparty:
          $ref: '#/components/schemas/StatusTypeParty'
        titleheaders:
          type: stringarray
        detail:  description: Headers
       type: string     StatusTypeitems:

     type: object       properties:
        reasonPhrase:$ref: '#/components/schemas/Header'
        sender:
 type: string         statusCode$ref: '#/components/schemas/Sender'
         typesubject:
integer           formattype: int32string
    MessageResponse:       typedescription: objectThe message subject     properties:(for E-mails)
         messageIdmessage:
          type: string

   Sms:       requireddescription: The message text
   - name  description: A message to be type:sent
object       propertiesMessageRequest:
        nametype: object
         maxLength: 11
properties:
         minLengthmessages: 0
          type: stringarray
          description: The sendermessages ofto thebe SMSsent
          exampleitems:
sender     SmsRequest:       required$ref: '#/components/schemas/Message'
     - messagedescription: Message representation
    -Sender:
mobileNumber       type: object
      properties:
        partysms:
          $ref: '#/components/schemas/PartySms'
        headersemail:
          type$ref: array'#/components/schemas/Email'
          itemsdescription: Sender
           $ref: '#/components/schemas/Header'MessagesResponse:
         sender:
  type: object
       $refproperties:
'#/components/schemas/Sms'         mobileNumberbatchId:
          patterntype: "^\\+467[02369]\\d{7}$"string
          typemessageIds:
string           descriptiontype: Mobile number.array
Should start with +467x       items:
 message:           type: string
    EmailAttachment:
      required:
      - addresscontent
      - name
      type: object
      properties:
        namecontent:
          type: string
          description: The sender of the e-mail: The attachment (file) content as a BASE64-encoded string
          example: aGVsbG8gd29ybGQK
        addressname:
          type: string
          description: SenderThe e-mailattachment addressfilename
          example: sender@sendertest.setxt
        replyTocontentType:
          type: string
          description: The Reply-to e-mail addressattachment content type
          example: text/plain
      description: sender@sender.seAttachments
    MessageEmailRequest:
      required:
      - messageemailAddress
      - subject
      type: object
      properties:
        party:
          $ref: '#/components/schemas/Party'
        headers:
          type: array
          itemsdescription: Headers
           $ref: '#/components/schemas/Header'
        sender:items:
            $ref: '#/components/schemas/SenderHeader'
        subjectemailAddress:
          type: string
          description: TheRecipient messagee-mail subjectaddress
(for E-mails)         messagesubject:
          type: string
          description: E-mail Thesubject
message text       descriptionmessage:
A  message to be sent     MessageRequesttype: string
     type: object    description: E-mail plain-text properties:body
        messageshtmlMessage:
          type: arraystring
          description: TheE-mail messagesHTML to be sentbody (BASE64-encoded)
           items:
 sender:
          $ref: '#/components/schemas/Message'Email'
        attachments:
   description: Message representation     Sendertype: array
     type: object    description: Attachments
 properties:         smsitems:
            $ref: '#/components/schemas/SmsAttachment'
    DigitalMailAttachment:
      emailrequired:
      - content
    $ref: '#/components/schemas/Email'  - filename
      descriptiontype: object
Sender      MessagesResponseproperties:
      type  contentType:
 object         propertiestype: string
         batchId: description: Content type
          typeenum:
string         messageIds: - application/pdf
        typecontent:
array           itemstype: string
           typedescription: stringContent (BASE64-encoded)
   Attachment:       requiredfilename:
      - content   type: string
  - name       typedescription: objectFilename
      propertiesdescription: Attachments
    DigitalMailRequest:
   content   required:
      - body
  type: string   - contentType
      descriptiontype: Theobject
attachment (file) content as a BASE64-encoded stringproperties:
        party:
 example: aGVsbG8gd29ybGQK         name$ref: '#/components/schemas/Parties'
         typeheaders: string
          descriptiontype: The attachment filenamearray
          exampledescription: Headers
 test.txt         contentTypeitems:
          type: string $ref: '#/components/schemas/Header'
        descriptionsubject:
The attachment content type       type: string
  example: text/plain       description: AttachmentsSubject
     EmailRequest:     nullable: true
required:       - emailAddresscontentType:
      - subject   type: string
  type: object       properties:description: Content type
          partyenum:
          $ref:- '#/components/schemas/Party'text/plain
          headers:- text/html
         typebody:
array           itemstype: string
          description: $ref: '#/components/schemas/Header'Body (BASE64-encoded)
        emailAddressattachments:
          type: stringarray
          description: Attachments
Recipient e-mail address        items:
  example: recipient@recipient.se         subject$ref: '#/components/schemas/DigitalMailAttachment'
    Parties:
    type  required:
string      - partyIds
   description: E-mail subject type: object
      messageproperties:
          typepartyIds:
string           descriptiontype: E-mail plain-text bodyarray
          htmlMessagedescription: The message party ID:s
      type: string   items:
       description: E-mail HTML body (BASE64-encoded)  type: string
     sender:       description: The message party $ref: '#/components/schemas/Email'ID:s
        attachmentsexternalReferences:
          type: array
          description: External Attachmentsreferences
          items:
            $ref: '#/components/schemas/AttachmentExternalReference'
      description: Parties
    MessageStatusResponse:
      type: object
      properties:
        messageId:
          type: string
        status:
          type: string
          enum:
          - AWAITING_FEEDBACK
          - PENDING
          - SENT
          - FAILED
          - NO_FEEDBACK_SETTINGS_FOUND
          - NO_FEEDBACK_WANTED
    HistoryResponse:
      type: object
      properties:
        messageType:
          type: string
          enum:
          - MESSAGE
          - EMAIL
          - SMS
          - WEB_MESSAGE
          - DIGITAL_MAIL
        status:
          type: string
          enum:
          - AWAITING_FEEDBACK
          - PENDING
          - SENT
          - FAILED
          - NO_FEEDBACK_SETTINGS_FOUND
          - NO_FEEDBACK_WANTED
        content:
          type: object
        timestamp:
          type: string
          format: date-time
    BatchStatusResponse:
      type: object
      properties:
        messageStatuses:
          type: array
          items:
            $ref: '#/components/schemas/MessageStatusResponse'
  securitySchemes: {}

Säkerhetsklassning

Säkerhetsklass 1

Autentiseringsmetod: Oauth2

Teknisk ägare

Ansvarigt team: Team Dynasty

För tekniska frågor: teamdynasty@sundsvall.se

Källkod

<TBD>

FAQ

<FAQ>

Create from Template
spaceKeySK
templateName22151177
templateId22151177
buttonLabelSkapa från Template