openapi: 3.0.1
info:
title: Services.Developer
description: 'Developer provide end points related to apps.
NOTE: This is an early developer preview. At this point, all data may not be correct, complete or available in the live environment.
'
version: 1.1.124+9dcc268efa
x-framework-version: 43.0.9+b005aba300
x-machine: SIMOAWEB11-DK1
servers:
- url: https://gateway.saxobank.com/sim/openapi
paths:
'/developer/apps/resource/{AppKey}':
get:
tags:
- Apps
description: Returns requested resource by appKey
operationId: DeveloperAppGetResourceByAppKey
parameters:
- name: AppKey
in: path
description: Unique key for each application
required: true
style: simple
schema:
type: string
example: 75767c64-1452-4fcf-b858-958c1e33678d
responses:
'200':
description: Indicates that the request was performed correctly.
content:
application/json:
schema:
$ref: '#/components/schemas/AppResourceDto'
example:
AppKey: stringValue
Branding:
- Description: stringValue
Id: 99
Name: stringValue
CreatedBy:
Name: stringValue
UserKey: stringValue
Description: stringValue
Endpoints:
AuthorizationEndpoint: stringValue
TokenEndpoint: stringValue
Flow: stringValue
IsActive: false
IsTradingEnabled: true
Name: stringValue
RedirectUris:
- Branding:
Description: stringValue
Id: 99
Name: stringValue
Description: stringValue
RedirectUriId: 99
Uri: stringValue
Secrets:
- Secret: stringValue
SecretId: 99
ValidFrom: '0001-01-01T00:00:00Z'
ValidUntil: '0001-01-01T00:00:00Z'
Status: Requested
'403':
description: Forbidden
content:
application/json:
schema:
required:
- ErrorCode
- Message
type: object
properties:
ErrorCode:
enum:
- NotAbleToIdentifyUserId
type: string
example: None
x-enum-descriptions:
NotAbleToIdentifyUserId: Not able to identify user id
Message:
type: string
ModelState:
$ref: '#/components/schemas/ModelStateDictionary'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'503':
$ref: '#/components/responses/ServiceUnavailable'
'429':
$ref: '#/components/responses/TooManyRequests'
security:
- OpenApiOAuthSecurityScheme: [ ]
- OpenApiJWTSecurityScheme: [ ]
x-required-permissions:
confidential: Read
'/developer/apps/{AppKey}':
get:
tags:
- Apps
summary: Get app by appKey
description: Returns requested app by appKey
operationId: DeveloperAppGetAppByAppKey
parameters:
- name: AppKey
in: path
description: Unique key for each application
required: true
style: simple
schema:
type: string
example: 76caa3a4-5eb5-45d3-88cf-bb74847a1d0e
responses:
'200':
description: Indicates that the request was performed correctly.
content:
application/json:
schema:
$ref: '#/components/schemas/AppResourceDto'
example:
AppKey: stringValue
Branding:
- Description: stringValue
Id: 99
Name: stringValue
CreatedBy:
Name: stringValue
UserKey: stringValue
Description: stringValue
Endpoints:
AuthorizationEndpoint: stringValue
TokenEndpoint: stringValue
Flow: stringValue
IsActive: false
IsTradingEnabled: true
Name: stringValue
RedirectUris:
- Branding:
Description: stringValue
Id: 99
Name: stringValue
Description: stringValue
RedirectUriId: 99
Uri: stringValue
Secrets:
- Secret: stringValue
SecretId: 99
ValidFrom: '0001-01-01T00:00:00Z'
ValidUntil: '0001-01-01T00:00:00Z'
Status: Requested
'403':
description: Forbidden
content:
application/json:
schema:
required:
- ErrorCode
- Message
type: object
properties:
ErrorCode:
enum:
- NotAbleToIdentifyUserId
type: string
example: None
x-enum-descriptions:
NotAbleToIdentifyUserId: Not able to identify user id
Message:
type: string
ModelState:
$ref: '#/components/schemas/ModelStateDictionary'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'503':
$ref: '#/components/responses/ServiceUnavailable'
'429':
$ref: '#/components/responses/TooManyRequests'
security:
- OpenApiOAuthSecurityScheme: [ ]
- OpenApiJWTSecurityScheme: [ ]
x-required-permissions:
confidential: Read
delete:
tags:
- Apps
summary: Deletes an app
description: Deactivate an existing application
operationId: DeveloperAppDeactivateApp
parameters:
- name: AppKey
in: path
description: Unique key for each application
required: true
style: simple
schema:
type: string
example: 50fb26e9b4bc4e7ba78dc19f46bc84bf
responses:
'204':
description: No Content
'403':
description: Forbidden
content:
application/json:
schema:
required:
- ErrorCode
- Message
type: object
properties:
ErrorCode:
enum:
- NotAbleToIdentifyUserId
type: string
example: None
x-enum-descriptions:
NotAbleToIdentifyUserId: Not able to identify user id
Message:
type: string
ModelState:
$ref: '#/components/schemas/ModelStateDictionary'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'503':
$ref: '#/components/responses/ServiceUnavailable'
'429':
$ref: '#/components/responses/TooManyRequests'
security:
- OpenApiOAuthSecurityScheme: [ ]
- OpenApiJWTSecurityScheme: [ ]
x-required-permissions:
confidential: Write
patch:
tags:
- Apps
summary: Updates an app
description: "Updates an existing application\n Inactive app cannot be updated\n App can be updated if (1) app is active or (2) user requests to activate the app and app can be made active"
operationId: DeveloperAppUpdateApp
parameters:
- name: AppKey
in: path
description: Unique key for each application
required: true
style: simple
schema:
type: string
example: 50fb26e9b4bc4e7ba78dc19f46bc84bf
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AppUpdateRequest'
example:
Description: some description
Name: App Name1
responses:
'204':
description: No Content
'403':
description: Forbidden
content:
application/json:
schema:
required:
- ErrorCode
- Message
type: object
properties:
ErrorCode:
enum:
- NotAbleToIdentifyClientInfo
type: string
example: None
x-enum-descriptions:
NotAbleToIdentifyClientInfo: Not able to identify required client info
Message:
type: string
ModelState:
$ref: '#/components/schemas/ModelStateDictionary'
'400':
description: Bad Request
content:
application/json:
schema:
required:
- ErrorCode
- Message
type: object
properties:
ErrorCode:
enum:
- UnableToActivateApp
type: string
example: None
x-enum-descriptions:
UnableToActivateApp: Unable to activate an app
Message:
type: string
ModelState:
$ref: '#/components/schemas/ModelStateDictionary'
'401':
$ref: '#/components/responses/Unauthorized'
'503':
$ref: '#/components/responses/ServiceUnavailable'
'429':
$ref: '#/components/responses/TooManyRequests'
security:
- OpenApiOAuthSecurityScheme: [ ]
- OpenApiJWTSecurityScheme: [ ]
x-required-permissions:
confidential: Write
/developer/apps:
get:
tags:
- Apps
description: Gets the apps owned by the client of the user
operationId: DeveloperAppGetApps
parameters:
- name: $inlinecount
in: query
description: Specifies that the response to the request should include a count of the number of entries in the collection
style: form
explode: false
schema:
enum:
- AllPages
- None
type: string
x-enum-descriptions:
None: The result will not contain an inline count
AllPages: The result will contain a total count of items in the queried collection
example: AllPages
- name: $skip
in: query
description: The number of entries to skip from the beginning of the collection
style: form
explode: false
schema:
minimum: 0
type: integer
format: int32
example: 1
- name: $top
in: query
description: The number of entries to return from the beginning of the collection
style: form
explode: false
schema:
minimum: 0
type: integer
format: int32
default: 20
example: 1
responses:
'200':
description: Indicates that the request was performed correctly.
content:
application/json:
schema:
$ref: '#/components/schemas/AppDtoListResult'
example:
Data:
- AppKey: stringValue
Brandings:
- Description: stringValue
Id: 99
Name: stringValue
CreatedBy:
Name: stringValue
UserKey: stringValue
Description: stringValue
Endpoints:
AuthorizationEndpoint: stringValue
TokenEndpoint: stringValue
Flow: stringValue
IsActive: true
IsTradingEnabled: false
ManualOrderIndicationDefault: stringValue
ManualOrderIndicator: stringValue
Name: stringValue
Status: Approved
MaxRows: 99
'403':
description: Forbidden
content:
application/json:
schema:
required:
- ErrorCode
- Message
type: object
properties:
ErrorCode:
enum:
- NotAbleToIdentifyUserId
type: string
example: None
x-enum-descriptions:
NotAbleToIdentifyUserId: Not able to identify user id
Message:
type: string
ModelState:
$ref: '#/components/schemas/ModelStateDictionary'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'503':
$ref: '#/components/responses/ServiceUnavailable'
'429':
$ref: '#/components/responses/TooManyRequests'
security:
- OpenApiOAuthSecurityScheme: [ ]
- OpenApiJWTSecurityScheme: [ ]
x-required-permissions:
confidential: Read
post:
tags:
- Apps
description: Create a app
operationId: DeveloperAppCreateApp
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AppCreationRequest'
example:
Description: New App Description
Flow: Code
IsTradingEnabled: true
Name: New App Name
RedirectUri: http://my.domain/myApp
responses:
'201':
description: Indicates that the request was performed correctly.
content:
application/json:
schema:
$ref: '#/components/schemas/AppDto'
example:
AppKey: stringValue
Brandings:
- Description: stringValue
Id: 99
Name: stringValue
CreatedBy:
Name: stringValue
UserKey: stringValue
Description: stringValue
Endpoints:
AuthorizationEndpoint: stringValue
TokenEndpoint: stringValue
Flow: stringValue
IsActive: true
IsTradingEnabled: false
ManualOrderIndicationDefault: stringValue
ManualOrderIndicator: stringValue
Name: stringValue
Status: Requested
'400':
description: Indicates that the request is not correct.
content:
application/json:
schema:
required:
- ErrorCode
- Message
type: object
properties:
ErrorCode:
enum:
- InvalidRequest
type: string
example: None
x-enum-descriptions:
InvalidRequest: Default error code returned when it cannot be determined which part of the request is malformed.
Message:
type: string
ModelState:
$ref: '#/components/schemas/ModelStateDictionary'
'403':
description: Forbidden
content:
application/json:
schema:
required:
- ErrorCode
- Message
type: object
properties:
ErrorCode:
enum:
- NotAbleToIdentifyClientInfo
type: string
example: None
x-enum-descriptions:
NotAbleToIdentifyClientInfo: Not able to identify required client info
Message:
type: string
ModelState:
$ref: '#/components/schemas/ModelStateDictionary'
'401':
$ref: '#/components/responses/Unauthorized'
'503':
$ref: '#/components/responses/ServiceUnavailable'
'429':
$ref: '#/components/responses/TooManyRequests'
security:
- OpenApiOAuthSecurityScheme: [ ]
- OpenApiJWTSecurityScheme: [ ]
x-required-permissions:
confidential: Write
/developer/featureflags:
get:
tags:
- Feature Flags
description: Get all feature flags
operationId: FeatureFlagsGetFlags
responses:
'200':
description: Indicates that the request was performed correctly.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/StringBooleanKeyValuePair'
example:
stringValue: false
example:
stringValue: false
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'503':
$ref: '#/components/responses/ServiceUnavailable'
'429':
$ref: '#/components/responses/TooManyRequests'
'/developer/apps/{AppKey}/redirecturis/{RedirectUriId}':
get:
tags:
- Apps
description: Gets a redirect uri by id
operationId: DeveloperRedirectGetRedirectUriFromId
parameters:
- name: $inlinecount
in: query
description: Specifies that the response to the request should include a count of the number of entries in the collection
style: form
explode: false
schema:
enum:
- AllPages
- None
type: string
x-enum-descriptions:
None: The result will not contain an inline count
AllPages: The result will contain a total count of items in the queried collection
example: AllPages
- name: $skip
in: query
description: The number of entries to skip from the beginning of the collection
style: form
explode: false
schema:
minimum: 0
type: integer
format: int32
example: 1
- name: $skiptoken
in: query
description: Specifies an entity id to start retrieving entries from. This is normally only used in generated nextlinks.
style: form
explode: false
schema:
type: string
example: B17D8890-3C7A-4A47-A9AA-01B022ED03A5
- name: $top
in: query
description: The number of entries to return from the beginning of the collection
style: form
explode: false
schema:
minimum: 0
type: integer
format: int32
default: 0
example: 1
- name: AppKey
in: path
description: Unique key for each application
required: true
style: simple
schema:
type: string
example: 50fb26e9b4bc4e7ba78dc19f46bc84bf
- name: RedirectUriId
in: path
description: Unique key for each app redirect uri
required: true
style: simple
schema:
type: integer
format: int32
example: 1
responses:
'200':
description: Indicates that the request was performed correctly.
content:
application/json:
schema:
$ref: '#/components/schemas/AppRedirectDto'
example:
Branding:
Description: stringValue
Id: 99
Name: stringValue
Description: stringValue
RedirectUriId: 99
Uri: stringValue
'404':
description: Not Found
content:
application/json:
schema:
required:
- ErrorCode
- Message
type: object
properties:
ErrorCode:
enum:
- NoResultFound
type: string
example: None
x-enum-descriptions:
NoResultFound: Record cannot be found based on input crieterias
Message:
type: string
ModelState:
$ref: '#/components/schemas/ModelStateDictionary'
'403':
description: Forbidden
content:
application/json:
schema:
required:
- ErrorCode
- Message
type: object
properties:
ErrorCode:
enum:
- NotAbleToIdentifyUserId
type: string
example: None
x-enum-descriptions:
NotAbleToIdentifyUserId: Not able to identify user id
Message:
type: string
ModelState:
$ref: '#/components/schemas/ModelStateDictionary'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'503':
$ref: '#/components/responses/ServiceUnavailable'
'429':
$ref: '#/components/responses/TooManyRequests'
security:
- OpenApiOAuthSecurityScheme: [ ]
- OpenApiJWTSecurityScheme: [ ]
delete:
tags:
- Apps
description: Deletes a redirect uri
operationId: DeveloperRedirectDeleteRedirectUri
parameters:
- name: AppKey
in: path
description: Unique key for each application
required: true
style: simple
schema:
type: string
example: 50fb26e9b4bc4e7ba78dc19f46bc84bf
- name: RedirectUriId
in: path
description: Unique key for each app redirect uri
required: true
style: simple
schema:
type: integer
format: int32
example: 1
responses:
'204':
description: Indicates that the delete request was performed correctly.
'404':
description: Not Found
content:
application/json:
schema:
required:
- ErrorCode
- Message
type: object
properties:
ErrorCode:
enum:
- NoResultFound
type: string
example: None
x-enum-descriptions:
NoResultFound: Record cannot be found based on input crieterias
Message:
type: string
ModelState:
$ref: '#/components/schemas/ModelStateDictionary'
'403':
description: Forbidden
content:
application/json:
schema:
required:
- ErrorCode
- Message
type: object
properties:
ErrorCode:
enum:
- NotAbleToIdentifyClientInfo
type: string
example: None
x-enum-descriptions:
NotAbleToIdentifyClientInfo: Not able to identify required client info
Message:
type: string
ModelState:
$ref: '#/components/schemas/ModelStateDictionary'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'503':
$ref: '#/components/responses/ServiceUnavailable'
'429':
$ref: '#/components/responses/TooManyRequests'
security:
- OpenApiOAuthSecurityScheme: [ ]
- OpenApiJWTSecurityScheme: [ ]
patch:
tags:
- Apps
description: Updates a redirect uri
operationId: DeveloperRedirectUpdateRedirectUri
parameters:
- name: AppKey
in: path
description: Unique key for each application
required: true
style: simple
schema:
type: string
example: 50fb26e9b4bc4e7ba78dc19f46bc84bf
- name: RedirectUriId
in: path
description: Unique key for each redirect uri
required: true
style: simple
schema:
type: integer
format: int32
example: 1
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/RedirectUriUpdateRequest'
example:
Description: some description
Uri: http://mycompany.com/myapp
responses:
'204':
description: No Content
content:
application/json:
schema:
$ref: '#/components/schemas/AppRedirectDto'
example:
Branding:
Description: stringValue
Id: 99
Name: stringValue
Description: stringValue
RedirectUriId: 99
Uri: stringValue
'200':
description: Indicates that the request was performed correctly.
'404':
description: Not Found
content:
application/json:
schema:
required:
- ErrorCode
- Message
type: object
properties:
ErrorCode:
enum:
- NoResultFound
type: string
example: None
x-enum-descriptions:
NoResultFound: Record cannot be found based on input crieterias
Message:
type: string
ModelState:
$ref: '#/components/schemas/ModelStateDictionary'
'403':
description: Forbidden
content:
application/json:
schema:
required:
- ErrorCode
- Message
type: object
properties:
ErrorCode:
enum:
- NotAbleToIdentifyUserId
type: string
example: None
x-enum-descriptions:
NotAbleToIdentifyUserId: Not able to identify user id
Message:
type: string
ModelState:
$ref: '#/components/schemas/ModelStateDictionary'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'503':
$ref: '#/components/responses/ServiceUnavailable'
'429':
$ref: '#/components/responses/TooManyRequests'
security:
- OpenApiOAuthSecurityScheme: [ ]
- OpenApiJWTSecurityScheme: [ ]
'/developer/apps/{AppKey}/redirecturis':
get:
tags:
- Apps
description: Gets redirect uris for a given app
operationId: DeveloperRedirectGetRedirectUris
parameters:
- name: $inlinecount
in: query
description: Specifies that the response to the request should include a count of the number of entries in the collection
style: form
explode: false
schema:
enum:
- AllPages
- None
type: string
x-enum-descriptions:
None: The result will not contain an inline count
AllPages: The result will contain a total count of items in the queried collection
example: AllPages
- name: $skip
in: query
description: The number of entries to skip from the beginning of the collection
style: form
explode: false
schema:
minimum: 0
type: integer
format: int32
example: 1
- name: $top
in: query
description: The number of entries to return from the beginning of the collection
style: form
explode: false
schema:
maximum: 1000
minimum: 0
type: integer
format: int32
default: 20
example: 1
- name: AppKey
in: path
description: Unique key for each application
required: true
style: simple
schema:
type: string
example: 50fb26e9b4bc4e7ba78dc19f46bc84bf
responses:
'200':
description: Indicates that the request was performed correctly.
content:
application/json:
schema:
$ref: '#/components/schemas/AppRedirectDtoListResult'
example:
Data:
- Branding:
Description: stringValue
Id: 99
Name: stringValue
Description: stringValue
RedirectUriId: 99
Uri: stringValue
MaxRows: 99
'404':
description: Not Found
content:
application/json:
schema:
required:
- ErrorCode
- Message
type: object
properties:
ErrorCode:
enum:
- NoResultFound
type: string
example: None
x-enum-descriptions:
NoResultFound: Record cannot be found based on input crieterias
Message:
type: string
ModelState:
$ref: '#/components/schemas/ModelStateDictionary'
'403':
description: Forbidden
content:
application/json:
schema:
required:
- ErrorCode
- Message
type: object
properties:
ErrorCode:
enum:
- NotAbleToIdentifyUserId
type: string
example: None
x-enum-descriptions:
NotAbleToIdentifyUserId: Not able to identify user id
Message:
type: string
ModelState:
$ref: '#/components/schemas/ModelStateDictionary'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'503':
$ref: '#/components/responses/ServiceUnavailable'
'429':
$ref: '#/components/responses/TooManyRequests'
security:
- OpenApiOAuthSecurityScheme: [ ]
- OpenApiJWTSecurityScheme: [ ]
post:
tags:
- Apps
description: Creates a redirect uri
operationId: DeveloperRedirectCreateRedirectUri
parameters:
- name: AppKey
in: path
description: Unique key for each application
required: true
style: simple
schema:
type: string
example: f0232f57-9d4a-40a7-adeb-82d347536d35
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AppRedirectUriCreationRequest'
example:
Description: New App Description
Uri: http://my.com/myapp
responses:
'201':
description: Indicates that the request was performed correctly.
content:
application/json:
schema:
$ref: '#/components/schemas/AppRedirectUriResponse'
example:
Data:
Branding:
Description: stringValue
Id: 99
Name: stringValue
Description: stringValue
RedirectUriId: 99
Uri: stringValue
FoundAndUpdated: false
'403':
description: Forbidden
content:
application/json:
schema:
required:
- ErrorCode
- Message
type: object
properties:
ErrorCode:
enum:
- NotAbleToIdentifyClientInfo
type: string
example: None
x-enum-descriptions:
NotAbleToIdentifyClientInfo: Not able to identify required client info
Message:
type: string
ModelState:
$ref: '#/components/schemas/ModelStateDictionary'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'503':
$ref: '#/components/responses/ServiceUnavailable'
'429':
$ref: '#/components/responses/TooManyRequests'
security:
- OpenApiOAuthSecurityScheme: [ ]
- OpenApiJWTSecurityScheme: [ ]
'/developer/apps/{AppKey}/secrets/{SecretId}':
get:
tags:
- Apps
description: Gets a secret by id
operationId: DeveloperSecretGetSecretById
parameters:
- name: AppKey
in: path
description: Unique key for each application
required: true
style: simple
schema:
type: string
example: 49beae3b-211c-4cec-bf28-a0673436779b
- name: SecretId
in: path
description: Unique key for each secret
required: true
style: simple
schema:
type: integer
format: int32
example: 240
responses:
'200':
description: OK
'204':
description: Indicates that the get request was performed correctly.
'403':
description: Forbidden
content:
application/json:
schema:
required:
- ErrorCode
- Message
type: object
properties:
ErrorCode:
enum:
- NotAbleToIdentifyUserId
type: string
example: None
x-enum-descriptions:
NotAbleToIdentifyUserId: Not able to identify user id
Message:
type: string
ModelState:
$ref: '#/components/schemas/ModelStateDictionary'
'404':
description: Not Found
content:
application/json:
schema:
required:
- ErrorCode
- Message
type: object
properties:
ErrorCode:
enum:
- UnavailableSecretId
type: string
example: None
x-enum-descriptions:
UnavailableSecretId: Could not find any app secret with the provided Id.
Message:
type: string
ModelState:
$ref: '#/components/schemas/ModelStateDictionary'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'503':
$ref: '#/components/responses/ServiceUnavailable'
'429':
$ref: '#/components/responses/TooManyRequests'
security:
- OpenApiOAuthSecurityScheme: [ ]
- OpenApiJWTSecurityScheme: [ ]
delete:
tags:
- Apps
description: Deletes a secret
operationId: DeveloperSecretDeleteSecret
parameters:
- name: AppKey
in: path
description: Unique key for each application
required: true
style: simple
schema:
type: string
example: ac8302f7-5fb8-495d-97d6-f1f8f6ec6c0f
- name: SecretId
in: path
description: Unique key for each secret
required: true
style: simple
schema:
type: integer
format: int32
example: 99
responses:
'204':
description: Indicates that the delete request was performed correctly.
'403':
description: Forbidden
content:
application/json:
schema:
required:
- ErrorCode
- Message
type: object
properties:
ErrorCode:
enum:
- NotAbleToIdentifyClientInfo
type: string
example: None
x-enum-descriptions:
NotAbleToIdentifyClientInfo: Not able to identify required client info
Message:
type: string
ModelState:
$ref: '#/components/schemas/ModelStateDictionary'
'404':
description: Not Found
content:
application/json:
schema:
required:
- ErrorCode
- Message
type: object
properties:
ErrorCode:
enum:
- NoResultFound
type: string
example: None
x-enum-descriptions:
NoResultFound: Record cannot be found based on input crieterias
Message:
type: string
ModelState:
$ref: '#/components/schemas/ModelStateDictionary'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'503':
$ref: '#/components/responses/ServiceUnavailable'
'429':
$ref: '#/components/responses/TooManyRequests'
security:
- OpenApiOAuthSecurityScheme: [ ]
- OpenApiJWTSecurityScheme: [ ]
patch:
tags:
- Apps
description: Update an app secret
operationId: DeveloperSecretUpdateSecret
parameters:
- name: AppKey
in: path
description: Unique key for each application
required: true
style: simple
schema:
type: string
example: 49beae3b-211c-4cec-bf28-a0673436779b
- name: SecretId
in: path
description: Unique key for each secret
required: true
style: simple
schema:
type: integer
format: int32
example: 240
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SecretUpdateRequest'
example:
Regenerate: false
ValidFrom: '2019-06-20T07:27:42Z'
ValidUntil: '2021-06-20T07:27:42Z'
responses:
'204':
description: No Content
content:
application/json:
schema:
$ref: '#/components/schemas/AppSecretDto'
example:
Secret: stringValue
SecretId: 99
ValidFrom: '0001-01-01T00:00:00Z'
ValidUntil: '0001-01-01T00:00:00Z'
'200':
description: Indicates that the request was performed correctly.
'403':
description: Forbidden
content:
application/json:
schema:
required:
- ErrorCode
- Message
type: object
properties:
ErrorCode:
enum:
- NotAbleToIdentifyClientInfo
type: string
example: None
x-enum-descriptions:
NotAbleToIdentifyClientInfo: Not able to identify required client info
Message:
type: string
ModelState:
$ref: '#/components/schemas/ModelStateDictionary'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'503':
$ref: '#/components/responses/ServiceUnavailable'
'429':
$ref: '#/components/responses/TooManyRequests'
security:
- OpenApiOAuthSecurityScheme: [ ]
- OpenApiJWTSecurityScheme: [ ]
'/developer/apps/{AppKey}/secrets':
get:
tags:
- Apps
description: Gets secrets for a given app
operationId: DeveloperSecretGetSecrets
parameters:
- name: $inlinecount
in: query
description: Specifies that the response to the request should include a count of the number of entries in the collection
style: form
explode: false
schema:
enum:
- AllPages
- None
type: string
x-enum-descriptions:
None: The result will not contain an inline count
AllPages: The result will contain a total count of items in the queried collection
example: AllPages
- name: $skip
in: query
description: The number of entries to skip from the beginning of the collection
style: form
explode: false
schema:
minimum: 0
type: integer
format: int32
example: 1
- name: $top
in: query
description: The number of entries to return from the beginning of the collection
style: form
explode: false
schema:
maximum: 1000
minimum: 0
type: integer
format: int32
default: 20
example: 1
- name: AppKey
in: path
description: Unique key for each application
required: true
style: simple
schema:
type: string
example: 50fb26e9b4bc4e7ba78dc19f46bc84bf
responses:
'200':
description: Indicates that the request was performed correctly.
content:
application/json:
schema:
$ref: '#/components/schemas/AppSecretDtoListResult'
example:
Data:
- Secret: stringValue
SecretId: 99
ValidFrom: '0001-01-01T00:00:00Z'
ValidUntil: '0001-01-01T00:00:00Z'
MaxRows: 99
'404':
description: Not Found
content:
application/json:
schema:
required:
- ErrorCode
- Message
type: object
properties:
ErrorCode:
enum:
- UnavailableAppKey
type: string
example: None
x-enum-descriptions:
UnavailableAppKey: Could not find any app secret with the provided appKey.
Message:
type: string
ModelState:
$ref: '#/components/schemas/ModelStateDictionary'
'403':
description: Forbidden
content:
application/json:
schema:
required:
- ErrorCode
- Message
type: object
properties:
ErrorCode:
enum:
- NotAbleToIdentifyClientInfo
type: string
example: None
x-enum-descriptions:
NotAbleToIdentifyClientInfo: Not able to identify required client info
Message:
type: string
ModelState:
$ref: '#/components/schemas/ModelStateDictionary'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'503':
$ref: '#/components/responses/ServiceUnavailable'
'429':
$ref: '#/components/responses/TooManyRequests'
security:
- OpenApiOAuthSecurityScheme: [ ]
- OpenApiJWTSecurityScheme: [ ]
post:
tags:
- Apps
description: Create an app secret
operationId: DeveloperSecretCreateSecret
parameters:
- name: AppKey
in: path
description: Unique key for each application
required: true
style: simple
schema:
type: string
example: fad18b00-c651-4bb4-ace6-5028f26f6b12
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SecretCreationRequest'
example:
ValidFrom: '2019-06-20T07:27:42Z'
ValidUntil: '2021-06-20T07:27:42Z'
responses:
'201':
description: Indicates that the request was performed correctly.
content:
application/json:
schema:
$ref: '#/components/schemas/AppSecretDto'
example:
Secret: stringValue
SecretId: 99
ValidFrom: '0001-01-01T00:00:00Z'
ValidUntil: '0001-01-01T00:00:00Z'
'403':
description: Forbidden
content:
application/json:
schema:
required:
- ErrorCode
- Message
type: object
properties:
ErrorCode:
enum:
- NotAbleToIdentifyClientInfo
type: string
example: None
x-enum-descriptions:
NotAbleToIdentifyClientInfo: Not able to identify required client info
Message:
type: string
ModelState:
$ref: '#/components/schemas/ModelStateDictionary'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'503':
$ref: '#/components/responses/ServiceUnavailable'
'429':
$ref: '#/components/responses/TooManyRequests'
security:
- OpenApiOAuthSecurityScheme: [ ]
- OpenApiJWTSecurityScheme: [ ]
components:
schemas:
AppCreationRequest:
title: Application create request parameters
required:
- Name
- Description
- Flow
type: object
properties:
Description:
title: App Description
type: string
example: stringValue
Flow:
title: App Grant Type
type: string
example: stringValue
IsTradingEnabled:
title: 'Enable trading capability for OAuth2App, default is false. Optional field.'
type: boolean
example: false
Name:
title: App Name
pattern: '[a-zA-Z0-9\@\-\]\[\''\!\ ]+$'
type: string
example: stringValue
RedirectUri:
title: Optional input param to specify redirect uri during app creation
type: string
example: stringValue
additionalProperties: false
example:
Description: New App Description
Flow: Code
IsTradingEnabled: true
Name: New App Name
RedirectUri: http://my.domain/myApp
AppDto:
title: Represents an app as mapped from fields in the database
type: object
properties:
AppKey:
title: Unique app key - exposed to end users
type: string
example: stringValue
Brandings:
title: Service providers
type: array
items:
$ref: '#/components/schemas/BrandingDto'
example:
- Description: stringValue
Id: 99
Name: stringValue
CreatedBy:
title: Created by user reference default
allOf:
- $ref: '#/components/schemas/UserDto'
Description:
title: Description
type: string
example: stringValue
Endpoints:
title: Endpoint list for OAuth app
allOf:
- $ref: '#/components/schemas/EndpointDto'
Flow:
title: SSO Authentication flow
type: string
example: stringValue
IsActive:
title: App is active
type: boolean
example: false
IsTradingEnabled:
title: Derived field from 'OnlineAuthzLevels' and 'OfflineAuthzLevels'
type: boolean
example: false
ManualOrderIndicationDefault:
title: Manual order indication default
type: string
example: stringValue
ManualOrderIndicator:
title: Manual order indication default
type: string
example: stringValue
Name:
title: The name of the app
type: string
example: stringValue
Status:
title: App status
allOf:
- $ref: '#/components/schemas/AppStatus'
additionalProperties: false
example:
AppKey: stringValue
Brandings:
- Description: stringValue
Id: 99
Name: stringValue
CreatedBy:
Name: stringValue
UserKey: stringValue
Description: stringValue
Endpoints:
AuthorizationEndpoint: stringValue
TokenEndpoint: stringValue
Flow: stringValue
IsActive: true
IsTradingEnabled: false
ManualOrderIndicationDefault: stringValue
ManualOrderIndicator: stringValue
Name: stringValue
Status: Requested
AppDtoListResult:
type: object
properties:
Data:
type: array
items:
$ref: '#/components/schemas/AppDto'
description: The collection of entities for this feed.
MaxRows:
type: number
description: The maximum number of rows that can be returned (if applicable).
__count:
type: number
description: The total count of items in the feed.
__next:
type: string
description: The link for the next page of items in the feed.
additionalProperties: false
example:
Data:
- AppKey: stringValue
Brandings:
- Description: stringValue
Id: 99
Name: stringValue
CreatedBy:
Name: stringValue
UserKey: stringValue
Description: stringValue
Endpoints:
AuthorizationEndpoint: stringValue
TokenEndpoint: stringValue
Flow: stringValue
IsActive: true
IsTradingEnabled: false
ManualOrderIndicationDefault: stringValue
ManualOrderIndicator: stringValue
Name: stringValue
Status: Approved
MaxRows: 99
AppRedirectDto:
title: App redirect data transfer object
type: object
properties:
Branding:
title: Service Provider
allOf:
- $ref: '#/components/schemas/BrandingDto'
Description:
title: Description of OAuth app
type: string
example: stringValue
RedirectUriId:
title: Redirect Uri Id
type: integer
format: int32
example: 99
Uri:
title: Redirect Uri of OAuth app
type: string
example: stringValue
additionalProperties: false
example:
Branding:
Description: stringValue
Id: 99
Name: stringValue
Description: stringValue
RedirectUriId: 99
Uri: stringValue
AppRedirectDtoListResult:
type: object
properties:
Data:
type: array
items:
$ref: '#/components/schemas/AppRedirectDto'
description: The collection of entities for this feed.
MaxRows:
type: number
description: The maximum number of rows that can be returned (if applicable).
__count:
type: number
description: The total count of items in the feed.
__next:
type: string
description: The link for the next page of items in the feed.
additionalProperties: false
example:
Data:
- Branding:
Description: stringValue
Id: 99
Name: stringValue
Description: stringValue
RedirectUriId: 99
Uri: stringValue
MaxRows: 99
AppRedirectUriCreationRequest:
title: Redirect Uri create request parameters
required:
- Uri
type: object
properties:
BrandingId:
title: App branding id
type: integer
format: int32
example: 99
Description:
title: App description
type: string
example: stringValue
Uri:
title: App redirect uri
type: string
example: stringValue
additionalProperties: false
example:
Description: New App Description
Uri: http://my.com/myapp
AppRedirectUriResponse:
title: New redirectUri creation response
type: object
properties:
Data:
title: The app data
allOf:
- $ref: '#/components/schemas/AppRedirectDto'
FoundAndUpdated:
title: Was the redirect uri found and was some properties updated
type: boolean
example: false
additionalProperties: false
example:
Data:
Branding:
Description: stringValue
Id: 99
Name: stringValue
Description: stringValue
RedirectUriId: 99
Uri: stringValue
FoundAndUpdated: false
AppResourceDto:
title: App resource
type: object
properties:
AppKey:
title: Unique app key - exposed to end users
type: string
example: stringValue
Branding:
title: Branding info
type: array
items:
$ref: '#/components/schemas/BrandingDto'
example:
- Description: stringValue
Id: 99
Name: stringValue
CreatedBy:
title: Created by user hash key and name
allOf:
- $ref: '#/components/schemas/UserDto'
Description:
title: Description
type: string
example: stringValue
Endpoints:
title: Endpoints
allOf:
- $ref: '#/components/schemas/EndpointDto'
Flow:
title: SSO Authentication flow
type: string
example: stringValue
IsActive:
title: Is app active
type: boolean
example: false
IsTradingEnabled:
title: Derived field from 'OnlineAuthzLevels' and 'OfflineAuthzLevels'
type: boolean
example: false
Name:
title: The name of the app
type: string
example: stringValue
RedirectUris:
title: Redirect uris
type: array
items:
$ref: '#/components/schemas/AppRedirectDto'
example:
- Branding:
Description: stringValue
Id: 99
Name: stringValue
Description: stringValue
RedirectUriId: 99
Uri: stringValue
Secrets:
title: Secrets
type: array
items:
$ref: '#/components/schemas/AppSecretDto'
example:
- Secret: stringValue
SecretId: 99
ValidFrom: '0001-01-01T00:00:00Z'
ValidUntil: '0001-01-01T00:00:00Z'
Status:
title: 'App status, OK or Pending'
allOf:
- $ref: '#/components/schemas/AppStatus'
additionalProperties: false
example:
AppKey: stringValue
Branding:
- Description: stringValue
Id: 99
Name: stringValue
CreatedBy:
Name: stringValue
UserKey: stringValue
Description: stringValue
Endpoints:
AuthorizationEndpoint: stringValue
TokenEndpoint: stringValue
Flow: stringValue
IsActive: false
IsTradingEnabled: true
Name: stringValue
RedirectUris:
- Branding:
Description: stringValue
Id: 99
Name: stringValue
Description: stringValue
RedirectUriId: 99
Uri: stringValue
Secrets:
- Secret: stringValue
SecretId: 99
ValidFrom: '0001-01-01T00:00:00Z'
ValidUntil: '0001-01-01T00:00:00Z'
Status: Requested
AppSecretDto:
title: App secret data transfer object
type: object
properties:
Secret:
title: Add secret
type: string
example: stringValue
SecretId:
title: Add secret id
type: integer
format: int32
example: 99
ValidFrom:
title: Add valid date from
type: string
example: stringValue
ValidUntil:
title: Add valid date until
type: string
example: stringValue
additionalProperties: false
example:
Secret: stringValue
SecretId: 99
ValidFrom: '0001-01-01T00:00:00Z'
ValidUntil: '0001-01-01T00:00:00Z'
AppSecretDtoListResult:
type: object
properties:
Data:
type: array
items:
$ref: '#/components/schemas/AppSecretDto'
description: The collection of entities for this feed.
MaxRows:
type: number
description: The maximum number of rows that can be returned (if applicable).
__count:
type: number
description: The total count of items in the feed.
__next:
type: string
description: The link for the next page of items in the feed.
additionalProperties: false
example:
Data:
- Secret: stringValue
SecretId: 99
ValidFrom: '0001-01-01T00:00:00Z'
ValidUntil: '0001-01-01T00:00:00Z'
MaxRows: 99
AppStatus:
title: Enum class representing OAuth app status
enum:
- Approved
- PendingUserApprovalCheck
- Rejected
- Requestable
- Requested
type: string
example: Rejected
x-enum-descriptions:
Approved: Active status
PendingUserApprovalCheck: 'Inactive status, pending user approval status check'
Requestable: 'Inactive status, access requestable'
Requested: 'Inactive status, access request submitted'
Rejected: 'Inactive status, access request rejected'
AppUpdateRequest:
title: Update app request
type: object
properties:
Description:
title: App description
type: string
example: stringValue
Name:
title: App name
pattern: '[a-zA-Z0-9\@\-\]\[\''\!\ ]+$'
type: string
example: stringValue
additionalProperties: false
example:
Description: some description
Name: App Name1
BrandingDto:
title: Branding details
type: object
properties:
Description:
title: Service Provider Description
type: string
example: stringValue
Id:
title: Id
type: integer
format: int32
example: 99
Name:
title: Service Provider Name
type: string
example: stringValue
additionalProperties: false
example:
Description: stringValue
Id: 99
Name: stringValue
EndpointDto:
title: Represents endpoints associated with OAuth application
type: object
properties:
AuthorizationEndpoint:
title: 'SSO auth endpoint, e.g. https://idp.blue.sso.sys.dom/authorize'
type: string
example: stringValue
TokenEndpoint:
title: 'SSO token endpoint, e.g. https://idp.blue.sso.sys.dom/token'
type: string
example: stringValue
additionalProperties: false
example:
AuthorizationEndpoint: stringValue
TokenEndpoint: stringValue
ModelStateDictionary:
type: object
additionalProperties:
type: array
items:
type: string
RedirectUriUpdateRequest:
title: The request to update redirect uri
type: object
properties:
BrandingId:
title: Branding id
type: integer
format: int32
example: 99
Description:
title: Description is mapped to Label field
type: string
example: stringValue
Uri:
title: Redirect uri
type: string
example: stringValue
additionalProperties: false
example:
Description: some description
Uri: http://mycompany.com/myapp
SecretCreationRequest:
title: Create secret contract
required:
- ValidFrom
- ValidUntil
type: object
properties:
ValidFrom:
title: Secret valid from date
type: string
example: stringValue
ValidUntil:
title: Secret valid until date
type: string
example: stringValue
additionalProperties: false
example:
ValidFrom: '2019-06-20T07:27:42Z'
ValidUntil: '2021-06-20T07:27:42Z'
SecretUpdateRequest:
title: 'Request to update app secret, ValidFrom or ValidUntil is required.'
type: object
properties:
Regenerate:
title: Regenerate secret or not
type: boolean
example: false
ValidFrom:
title: Secret valid from date
type: string
example: stringValue
ValidUntil:
title: Secret valid until date
type: string
example: stringValue
additionalProperties: false
example:
Regenerate: false
ValidFrom: '2019-06-20T07:27:42Z'
ValidUntil: '2021-06-20T07:27:42Z'
StringBooleanKeyValuePair:
type: object
properties:
Key:
type: string
example: stringValue
Value:
type: boolean
example: false
additionalProperties: false
example:
Key: stringValue
Value: false
UserDto:
title: The user data transfer object
type: object
properties:
Name:
title: Name
type: string
example: stringValue
UserKey:
title: User key
type: string
example: stringValue
additionalProperties: false
example:
Name: stringValue
UserKey: stringValue
responses:
BadRequest:
description: One or more of the provided parameters are invalid.
content:
application/json:
schema:
required:
- ErrorCode
- Message
type: object
properties:
ErrorCode:
enum:
- InvalidRequest
type: string
example: None
x-enum-descriptions:
InvalidRequest: Default error code returned when it cannot be determined which part of the request is malformed.
Message:
type: string
ModelState:
$ref: '#/components/schemas/ModelStateDictionary'
ServiceUnavailable:
description: Service Unavailable.
TooManyRequests:
description: The request was rejected due to rate limit being exceeded.
Unauthorized:
description: Indicates that the request was rejected because the 'Authorization' header was missing in the request or contained an invalid security token.
securitySchemes:
OpenApiJWTSecurityScheme:
type: http
scheme: bearer
bearerFormat: JWT
OpenApiOAuthSecurityScheme:
type: oauth2
flows:
authorizationCode:
authorizationUrl: https://sim.logonvalidation.net/authorize
tokenUrl: https://sim.logonvalidation.net/token
scopes: { }
tags:
- name: Apps
description: Provides OAuth app secrets related endpoints
- name: Feature Flags
description: Provide feature flags related endpoints.