aditya-t
3/13/2017 - 9:19 AM

Swagger Spec for Message BAnk DM

Swagger Spec for Message BAnk DM

{
    "swagger": "2.0",
    "info": {
        "description": "MessageBank DM is a domain manager API involved in the provisioning of a NBN Message Bank service. Its purpose is to initiate and manage a workflow of steps to create a Message Bank Service for Voice enabled Customers.\n",
        "version": "1.0.0",
        "title": "Message Bank Domain Manager API",
        "termsOfService": "https://dev.telstra.com/legal",
        "contact": {
            "name": "# NBN+ Fulfilment Teams <D1118152@team.telstra.com>"
        }
    },
    "externalDocs": {
        "description": "MessageBank DM IA",
        "url": "https://wiki.ae.sda.corp.telstra.com/display/Simplicity/GC-7256%3A+AM-SHARED+Solution"
    },
    "host": "api.in.telstra.com.au",
    "basePath": "/messagebank-dm/v1/domain-services",
    "schemes": [
        "http"
    ],
    "paths": {
        "/messagebank": {
            "post": {
                "tags": [
                    "Message Bank Request"
                ],
                "summary": "Create a new Message Bank Service for voice customers",
                "operationId": "createMessageBank",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "parameters": [
                    {
                        "name": "request",
                        "in": "body",
                        "description": "Request body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/MessageBankDMRequest"
                        }
                    }
                ],
                "responses": {
                    "202": {
                        "description": "Operation Accepted",
                        "schema": {
                            "$ref": "#/definitions/MessageBankDMAcceptedResponse"
                        }
                    },
                    "403": {
                        "description": "Forbidden/Unauthorised",
                        "schema": {
                            "$ref": "#/definitions/403Error"
                        }
                    },
                    "404": {
                        "description": "URI Unavailable/Resource Not Found",
                        "schema": {
                            "$ref": "#/definitions/404Error"
                        }
                    },
                    "409": {
                        "description": "The Service is not in a state that supports this Operation e.g. Already exists",
                        "schema": {
                            "$ref": "#/definitions/409Error"
                        }
                    },
                    "422": {
                        "description": "Invalid Parameter Input",
                        "schema": {
                            "$ref": "#/definitions/422Error"
                        }
                    },
                    "503": {
                        "description": "General error.",
                        "schema": {
                            "$ref": "#/definitions/503Error"
                        }
                    }
                },
                "security": [
                    {
                        "okapi_oauth": [
                            "DOMAINMANAGERS"
                        ]
                    }
                ]
            }
        },
        "/messagebank/dsi/{tenant}/{serviceInstanceId}": {
            "get": {
                "tags": [
                    "Get Service Inventory"
                ],
                "summary": "Get Service Inventory by ServiceInstanceId",
                "operationId": "getServiceInventory",
                "produces": [
                    "application/json"
                ],
                "parameters": [
                    {
                        "name": "tenant",
                        "in": "path",
                        "description": "tenant",
                        "type": "string",
                        "required": true
                    },
                    {
                        "name": "serviceInstanceId",
                        "in": "path",
                        "description": "ServiceInstanceId",
                        "type": "string",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful request",
                        "schema": {
                            "$ref": "#/definitions/GetServiceInventoryResponse"
                        }
                    },
                    "401": {
                        "description": "A valid Oauth2.0 access token was not presented to the Messagebank dm service.",
                        "schema": {
                            "$ref": "#/definitions/401Error"
                        }
                    },
                    "403": {
                        "description": "Forbidden/Unauthorised",
                        "schema": {
                            "$ref": "#/definitions/403Error"
                        }
                    },
                    "422": {
                        "description": "Invalid Parameter Input",
                        "schema": {
                            "$ref": "#/definitions/422Error"
                        }
                    },
                    "503": {
                        "description": "General error.",
                        "schema": {
                            "$ref": "#/definitions/503Error"
                        }
                    }
                },
                "security": [
                    {
                        "okapi_oauth": [
                            "DOMAINMANAGERS"
                        ]
                    }
                ]
            }
        },
        "/messagebank/dsi/{tenant}?<search attributes>": {
            "get": {
                "tags": [
                    "Get Service Inventory By Filter Params"
                ],
                "summary": "Get Service Inventory by Filter Params",
                "operationId": "getServiceInventoryByFilterParams",
                "produces": [
                    "application/json"
                ],
                "parameters": [
                    {
                        "name": "tenant",
                        "in": "path",
                        "description": "tenant",
                        "type": "string",
                        "required": true
                    },
                    {
                        "name": "<search attributes>",
                        "in": "query",
                        "description": "Search Attributes",
                        "type": "string",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful request",
                        "schema": {
                            "$ref": "#/definitions/GetServiceInventoryResponse"
                        }
                    },
                    "401": {
                        "description": "A valid Oauth2.0 access token was not presented to the Messagebank dm service.",
                        "schema": {
                            "$ref": "#/definitions/401Error"
                        }
                    },
                    "403": {
                        "description": "Forbidden/Unauthorised",
                        "schema": {
                            "$ref": "#/definitions/403Error"
                        }
                    },
                    "422": {
                        "description": "Invalid Parameter Input",
                        "schema": {
                            "$ref": "#/definitions/422Error"
                        }
                    },
                    "503": {
                        "description": "General error.",
                        "schema": {
                            "$ref": "#/definitions/503Error"
                        }
                    }
                },
                "security": [
                    {
                        "okapi_oauth": [
                            "DOMAINMANAGERS"
                        ]
                    }
                ]
            }
        }
    },
    "securityDefinitions": {
        "okapi_oauth": {
            "type": "oauth2",
            "authorizationUrl": "https://api.in.telstra.com/v1/oauth/token",
            "flow": "implicit",
            "scopes": {
                "DOMAINMANAGERS": "authorisation to use a domain manager"
            }
        }
    },
    "definitions": {
        "MessageBankDMRequest": {
            "type": "object",
            "description": "Message Bank Request",
            "required": [
                "correlationId",
                "data"
            ],
            "properties": {
                "correlationId": {
                    "type": "string",
                    "description": "CorelationId"
                },
                "data": {
                    "type": "object",
                    "description": "Data Block",
                    "required": [
                        "fnn",
                        "cos",
                        "contact"
                    ],
                    "properties": {
                        "fnn": {
                            "type": "string",
                            "description": "The Full national number of the Voice Mail service"
                        },
                        "secondaryFNN": {
                            "type": "string",
                            "description": "An optional secondary number of this Voicemail service"
                        },
                        "cos": {
                            "type": "number",
                            "description": "The COS profile of the Voicemail service this is an integer value from 1 to 999"
                        },
                        "contact": {
                            "type": "object",
                            "description": "Contact Details of Voice Message Bank",
                            "required": [
                                "name"
                            ],
                            "properties": {
                                "name": {
                                    "type": "string",
                                    "description": "Contact Details of Voice Message Bank"
                                },
                                "email": {
                                    "type": "string",
                                    "description": "Email associated to Voice MessageBank"
                                }
                            }
                        }
                    }
                }
            }
        },
        "MessageBankDMAcceptedResponse": {
            "type": "object",
            "description": "Message Bank DM Response",
            "required": [
                "status",
                "code",
                "time",
                "correlationId",
                "data"
            ],
            "properties": {
                "status": {
                    "type": "integer",
                    "format": "int32",
                    "description": "response status for the message"
                },
                "code": {
                    "type": "integer",
                    "format": "int32",
                    "description": "response code for the message"
                },
                "time": {
                    "type": "string",
                    "format": "date-time",
                    "description": "The date and time when the message was received by recipient."
                },
                "correlationId": {
                    "type": "string",
                    "description": "Correlation id of the message receieved"
                },
                "data": {
                    "type": "object",
                    "description": "Data block",
                    "properties": {
                        "voiceMessageBankId": {
                            "type": "string",
                            "description": "Internal Identifier used to retrieve details"
                        },
                        "serviceResourceId": {
                            "type": "string",
                            "description": "Service Instance Resource Id"
                        }
                    }
                },
                "request": {
                    "$ref": "#/definitions/MessageBankDMRequest"
                }
            }
        },
        "GetServiceInventoryResponse": {
            "type": "object",
            "description": "GetServiceInventoryResponse Object",
            "required": [
                "status",
                "time",
                "data",
                "correlationId"
            ],
            "properties": {
                "status": {
                    "type": "integer",
                    "format": "int32",
                    "description": "response status"
                },
                "time": {
                    "type": "string",
                    "format": "data-time",
                    "description": "date time"
                },
                "data": {
                    "type": "object",
                    "description": "data block",
                    "required": [
                        "createdAt",
                        "serviceInstanceId",
                        "resources",
                        "attributes",
                        "type",
                        "tenant",
                        "status",
                        "updatedAt"
                    ],
                    "properties": {
                        "createdAt": {
                            "type": "string",
                            "format": "date-time",
                            "description": "Timestamp of when the object was created"
                        },
                        "serviceInstanceId": {
                            "type": "string",
                            "description": "Service Instance Id"
                        },
                        "resources": {
                            "type": "array",
                            "items": {
                                "type": "object",
                                "description": "Affected Resources",
                                "required": [
                                    "resourceInstanceId",
                                    "createdAt",
                                    "system",
                                    "resourceInstanceIdType",
                                    "href",
                                    "status",
                                    "updatedAt"
                                ],
                                "properties": {
                                    "resourceInstanceId": {
                                        "type": "string",
                                        "description": "The Identifier of the sub-system used during the execution of the flow"
                                    },
                                    "createdAt": {
                                        "type": "string",
                                        "description": "Timestamp of when the object was created"
                                    },
                                    "system": {
                                        "type": "string",
                                        "description": "The sub-system name"
                                    },
                                    "resourceInstanceIdType": {
                                        "type": "string",
                                        "description": "The sub-system parameter name of the Identifier"
                                    },
                                    "href": {
                                        "type": "string",
                                        "format": "uri",
                                        "description": "The URI to access the information from the sub-system"
                                    },
                                    "status": {
                                        "type": "string",
                                        "description": "The status of the execution flow within the sub-system"
                                    },
                                    "updatedAt": {
                                        "type": "string",
                                        "format": "date-time",
                                        "description": "Timestamp of when the object was last updated"
                                    }
                                }
                            }
                        },
                        "attributes": {
                            "type": "object",
                            "description": "Attributes",
                            "required": [
                                "fnn",
                                "voiceMessageBankId"
                            ],
                            "properties": {
                                "fnn": {
                                    "type": "string",
                                    "description": "The Full national number of the Voice Mail service"
                                },
                                "voiceMessageBankId": {
                                    "type": "string",
                                    "description": "voiceMessageBankId"
                                }
                            }
                        },
                        "type": {
                            "type": "string",
                            "description": "Type"
                        },
                        "tenant": {
                            "type": "string",
                            "description": "Tenant"
                        },
                        "status": {
                            "type": "string",
                            "description": "Status"
                        },
                        "updatedAt": {
                            "type": "string",
                            "format": "date-time",
                            "description": "Timestamp of when the object was last updated"
                        }
                    }
                },
                "correlationId": {
                    "type": "string",
                    "description": "CorrelationId"
                }
            }
        },
        "401Error": {
            "type": "object",
            "description": "401 Error",
            "required": [
                "code",
                "message",
                "time",
                "correlationId",
                "errors"
            ],
            "properties": {
                "code": {
                    "type": "integer",
                    "format": "int32",
                    "description": "401 Error Code"
                },
                "message": {
                    "type": "string",
                    "description": "401 Error Message"
                },
                "time": {
                    "type": "string",
                    "format": "date-time",
                    "description": "The date and time when the message was received by recipient."
                },
                "correlationId": {
                    "type": "string",
                    "description": "Correlation id of the message receieved"
                },
                "errors": {
                    "type": "array",
                    "items": {
                        "type": "object",
                        "description": "401 Errors",
                        "required": [
                            "code",
                            "message"
                        ],
                        "properties": {
                            "code": {
                                "type": "integer",
                                "description": "401 Error Code",
                                "format": "int32"
                            },
                            "message": {
                                "type": "string",
                                "description": "401 Error Message"
                            }
                        }
                    }
                }
            }
        },
        "403Error": {
            "type": "object",
            "description": "403 Error",
            "required": [
                "code",
                "message",
                "time",
                "correlationId",
                "errors"
            ],
            "properties": {
                "code": {
                    "type": "integer",
                    "format": "int32",
                    "description": "403 Error Code"
                },
                "message": {
                    "type": "string",
                    "description": "403 Error Message"
                },
                "time": {
                    "type": "string",
                    "format": "date-time",
                    "description": "The date and time when the message was received by recipient."
                },
                "correlationId": {
                    "type": "string",
                    "description": "Correlation id of the message receieved"
                },
                "errors": {
                    "type": "array",
                    "items": {
                        "type": "object",
                        "description": "403 Errors",
                        "required": [
                            "code",
                            "message"
                        ],
                        "properties": {
                            "code": {
                                "type": "integer",
                                "description": "403 Error Code",
                                "format": "int32"
                            },
                            "message": {
                                "type": "string",
                                "description": "403 Error Message"
                            }
                        }
                    }
                }
            }
        },
        "404Error": {
            "type": "object",
            "description": "404 Error",
            "required": [
                "code",
                "message",
                "time",
                "correlationId",
                "errors"
            ],
            "properties": {
                "code": {
                    "type": "integer",
                    "format": "int32",
                    "description": "404 Error Code"
                },
                "message": {
                    "type": "string",
                    "description": "404 Error Message"
                },
                "time": {
                    "type": "string",
                    "format": "date-time",
                    "description": "The date and time when the message was received by recipient."
                },
                "correlationId": {
                    "type": "string",
                    "description": "Correlation id of the message receieved"
                },
                "errors": {
                    "type": "array",
                    "items": {
                        "type": "object",
                        "description": "404 Errors",
                        "required": [
                            "code",
                            "message"
                        ],
                        "properties": {
                            "code": {
                                "type": "integer",
                                "description": "404 Error Code",
                                "format": "int32"
                            },
                            "message": {
                                "type": "string",
                                "description": "404 Error Message"
                            }
                        }
                    }
                }
            }
        },
        "409Error": {
            "type": "object",
            "description": "409 Error",
            "required": [
                "code",
                "message",
                "time",
                "correlationId",
                "errors"
            ],
            "properties": {
                "code": {
                    "type": "integer",
                    "format": "int32",
                    "description": "409 Error Code"
                },
                "message": {
                    "type": "string",
                    "description": "409 Error Message"
                },
                "time": {
                    "type": "string",
                    "format": "date-time",
                    "description": "The date and time when the message was received by recipient."
                },
                "correlationId": {
                    "type": "string",
                    "description": "Correlation id of the message receieved"
                },
                "errors": {
                    "type": "array",
                    "items": {
                        "type": "object",
                        "description": "409 Errors",
                        "required": [
                            "code",
                            "message"
                        ],
                        "properties": {
                            "code": {
                                "type": "integer",
                                "description": "409 Error Code",
                                "format": "int32"
                            },
                            "message": {
                                "type": "string",
                                "description": "409 Error Message"
                            }
                        }
                    }
                }
            }
        },
        "422Error": {
            "type": "object",
            "description": "422 Error",
            "required": [
                "code",
                "message",
                "time",
                "correlationId",
                "errors"
            ],
            "properties": {
                "code": {
                    "type": "integer",
                    "format": "int32",
                    "description": "422 Error Code"
                },
                "message": {
                    "type": "string",
                    "description": "422 Error Message"
                },
                "time": {
                    "type": "string",
                    "format": "date-time",
                    "description": "The date and time when the message was received by recipient."
                },
                "correlationId": {
                    "type": "string",
                    "description": "Correlation id of the message receieved"
                },
                "errors": {
                    "type": "array",
                    "items": {
                        "type": "object",
                        "description": "422 Errors",
                        "required": [
                            "code",
                            "message"
                        ],
                        "properties": {
                            "code": {
                                "type": "integer",
                                "description": "422 Error Code",
                                "format": "int32"
                            },
                            "message": {
                                "type": "string",
                                "description": "422 Error Message"
                            }
                        }
                    }
                }
            }
        },
        "503Error": {
            "type": "object",
            "description": "503 Error",
            "required": [
                "code",
                "message",
                "time",
                "correlationId",
                "errors"
            ],
            "properties": {
                "code": {
                    "type": "integer",
                    "format": "int32",
                    "description": "503 Error Code"
                },
                "message": {
                    "type": "string",
                    "description": "503 Error Message"
                },
                "time": {
                    "type": "string",
                    "format": "date-time",
                    "description": "The date and time when the message was received by recipient."
                },
                "correlationId": {
                    "type": "string",
                    "description": "Correlation id of the message receieved"
                },
                "errors": {
                    "type": "array",
                    "items": {
                        "type": "object",
                        "description": "503 Errors",
                        "required": [
                            "code",
                            "message"
                        ],
                        "properties": {
                            "code": {
                                "type": "integer",
                                "description": "503 Error Code",
                                "format": "int32"
                            },
                            "message": {
                                "type": "string",
                                "description": "503 Error Message"
                            }
                        }
                    }
                }
            }
        }
    }
}