openapi: 3.0.1 info: title: Client APIs description: The Client Management APIs provide a comprehensive set of endpoints for managing clients within the system. These APIs facilitate operations such as creating, retrieving, updating, and deleting client information. version: 1.0.0 servers: - url: https://client.api.korewireless.com description: PRODUCTION URL tags: - name: Clients description: These APIs enable users to perform various operations, including creating, retrieving, updating, and deleting client information. Through these APIs, users can interact with a wide range of client data, encompassing client IDs, secrets, account associations, ownership details, types, and lock status. - name: Health description: ping health service paths: /v1/clients: get: tags: - Clients summary: List Client description: List all active clients operationId: listClient parameters: - name: page_size in: query example: 10 description: Enter the number of items you want to view per page. schema: type: integer format: int32 minimum: 1 exclusiveMinimum: true required: true - name: page_number in: query example: 1 description: Input the page number you wish to navigate to. schema: type: integer format: int32 minimum: 1 exclusiveMinimum: true required: true - name: client_type in: query example: standard description: Type of the client schema: type: string enum: - admin - standard required: false - name: Authorization in: header description: JWT token for authentication schema: type: string responses: '200': description: 200 response headers: Access-Control-Allow-Origin: schema: type: string Access-Control-Allow-Methods: schema: type: string Access-Control-Allow-Credentials: schema: type: string Access-Control-Allow-Headers: schema: type: string content: application/json: schema: $ref: '#/components/schemas/200GetClients' '400': description: Bad Request headers: Access-Control-Allow-Origin: schema: type: string Access-Control-Allow-Methods: schema: type: string Access-Control-Allow-Credentials: schema: type: string Access-Control-Allow-Headers: schema: type: string content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorised User headers: Access-Control-Allow-Origin: schema: type: string Access-Control-Allow-Methods: schema: type: string Access-Control-Allow-Credentials: schema: type: string Access-Control-Allow-Headers: schema: type: string content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: Forbidden headers: Access-Control-Allow-Origin: schema: type: string Access-Control-Allow-Methods: schema: type: string Access-Control-Allow-Credentials: schema: type: string Access-Control-Allow-Headers: schema: type: string content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: The specified resource was not found headers: Access-Control-Allow-Origin: schema: type: string Access-Control-Allow-Methods: schema: type: string Access-Control-Allow-Credentials: schema: type: string Access-Control-Allow-Headers: schema: type: string content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Server Error headers: Access-Control-Allow-Origin: schema: type: string Access-Control-Allow-Methods: schema: type: string Access-Control-Allow-Credentials: schema: type: string Access-Control-Allow-Headers: schema: type: string content: application/json: schema: $ref: '#/components/schemas/Error' '502': description: Bad gateway headers: Access-Control-Allow-Origin: schema: type: string Access-Control-Allow-Methods: schema: type: string Access-Control-Allow-Credentials: schema: type: string Access-Control-Allow-Headers: schema: type: string content: application/json: schema: $ref: '#/components/schemas/Error' '503': description: Service Unavailable headers: Access-Control-Allow-Origin: schema: type: string Access-Control-Allow-Methods: schema: type: string Access-Control-Allow-Credentials: schema: type: string Access-Control-Allow-Headers: schema: type: string content: application/json: schema: $ref: '#/components/schemas/Error' '504': description: Gateway Timeout error headers: Access-Control-Allow-Origin: schema: type: string Access-Control-Allow-Methods: schema: type: string Access-Control-Allow-Credentials: schema: type: string Access-Control-Allow-Headers: schema: type: string content: application/json: schema: $ref: '#/components/schemas/Error' post: tags: - Clients summary: Create Client description: Create a new API client for the account for which the API credentials are for. Once created, the client ID and secret will be shown, the latter only shown once during the creation process. operationId: createClient parameters: - name: Authorization in: header schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateClient' responses: '201': description: 201 response headers: Access-Control-Allow-Origin: schema: type: string Access-Control-Allow-Methods: schema: type: string Access-Control-Allow-Credentials: schema: type: string Access-Control-Allow-Headers: schema: type: string content: application/json: schema: $ref: '#/components/schemas/201CreateClient' '400': description: Bad Request headers: Access-Control-Allow-Origin: schema: type: string Access-Control-Allow-Methods: schema: type: string Access-Control-Allow-Credentials: schema: type: string Access-Control-Allow-Headers: schema: type: string content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized User headers: Access-Control-Allow-Origin: schema: type: string Access-Control-Allow-Methods: schema: type: string Access-Control-Allow-Credentials: schema: type: string Access-Control-Allow-Headers: schema: type: string content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: Forbidden headers: Access-Control-Allow-Origin: schema: type: string Access-Control-Allow-Methods: schema: type: string Access-Control-Allow-Credentials: schema: type: string Access-Control-Allow-Headers: schema: type: string content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: The specified resource was not found headers: Access-Control-Allow-Origin: schema: type: string Access-Control-Allow-Methods: schema: type: string Access-Control-Allow-Credentials: schema: type: string Access-Control-Allow-Headers: schema: type: string content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Server Error headers: Access-Control-Allow-Origin: schema: type: string Access-Control-Allow-Methods: schema: type: string Access-Control-Allow-Credentials: schema: type: string Access-Control-Allow-Headers: schema: type: string content: application/json: schema: $ref: '#/components/schemas/Error' '502': description: Bad gateway headers: Access-Control-Allow-Origin: schema: type: string Access-Control-Allow-Methods: schema: type: string Access-Control-Allow-Credentials: schema: type: string Access-Control-Allow-Headers: schema: type: string content: application/json: schema: $ref: '#/components/schemas/Error' '503': description: Service Unavailable headers: Access-Control-Allow-Origin: schema: type: string Access-Control-Allow-Methods: schema: type: string Access-Control-Allow-Credentials: schema: type: string Access-Control-Allow-Headers: schema: type: string content: application/json: schema: $ref: '#/components/schemas/Error' '504': description: Gateway Timeout error headers: Access-Control-Allow-Origin: schema: type: string Access-Control-Allow-Methods: schema: type: string Access-Control-Allow-Credentials: schema: type: string Access-Control-Allow-Headers: schema: type: string content: application/json: schema: $ref: '#/components/schemas/Error' /v1/clients/{client_id}: get: tags: - Clients summary: Get Client description: Get Specific Client Details operationId: getClient parameters: - name: client_id in: path required: true example: apiclient_01exampledszqr9q description: Client Identifier to obtain the details schema: type: string - name: Authorization in: header schema: type: string responses: '200': description: 200 response headers: Access-Control-Allow-Origin: schema: type: string Access-Control-Allow-Methods: schema: type: string Access-Control-Allow-Credentials: schema: type: string Access-Control-Allow-Headers: schema: type: string content: application/json: schema: $ref: '#/components/schemas/200GetClient' '400': description: Bad Request headers: Access-Control-Allow-Origin: schema: type: string Access-Control-Allow-Methods: schema: type: string Access-Control-Allow-Credentials: schema: type: string Access-Control-Allow-Headers: schema: type: string content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorised User headers: Access-Control-Allow-Origin: schema: type: string Access-Control-Allow-Methods: schema: type: string Access-Control-Allow-Credentials: schema: type: string Access-Control-Allow-Headers: schema: type: string content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: Forbidden headers: Access-Control-Allow-Origin: schema: type: string Access-Control-Allow-Methods: schema: type: string Access-Control-Allow-Credentials: schema: type: string Access-Control-Allow-Headers: schema: type: string content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: The specified resource was not found headers: Access-Control-Allow-Origin: schema: type: string Access-Control-Allow-Methods: schema: type: string Access-Control-Allow-Credentials: schema: type: string Access-Control-Allow-Headers: schema: type: string content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Server Error headers: Access-Control-Allow-Origin: schema: type: string Access-Control-Allow-Methods: schema: type: string Access-Control-Allow-Credentials: schema: type: string Access-Control-Allow-Headers: schema: type: string content: application/json: schema: $ref: '#/components/schemas/Error' '502': description: Bad gateway headers: Access-Control-Allow-Origin: schema: type: string Access-Control-Allow-Methods: schema: type: string Access-Control-Allow-Credentials: schema: type: string Access-Control-Allow-Headers: schema: type: string content: application/json: schema: $ref: '#/components/schemas/Error' '503': description: Service Unavailable headers: Access-Control-Allow-Origin: schema: type: string Access-Control-Allow-Methods: schema: type: string Access-Control-Allow-Credentials: schema: type: string Access-Control-Allow-Headers: schema: type: string content: application/json: schema: $ref: '#/components/schemas/Error' '504': description: Gateway Timeout error headers: Access-Control-Allow-Origin: schema: type: string Access-Control-Allow-Methods: schema: type: string Access-Control-Allow-Credentials: schema: type: string Access-Control-Allow-Headers: schema: type: string content: application/json: schema: $ref: '#/components/schemas/Error' /v1/ping: get: tags: - Health summary: Gives Online Connection Status for API Gateway operationId: getPingStatus parameters: - name: Authorization in: header schema: type: string responses: '200': description: 200 response headers: Access-Control-Allow-Origin: style: simple explode: false schema: type: string Access-Control-Allow-Methods: style: simple explode: false schema: type: string Access-Control-Allow-Credentials: style: simple explode: false schema: type: string Access-Control-Allow-Headers: style: simple explode: false schema: type: string content: application/json: schema: $ref: '#/components/schemas/Ping200' '404': description: The specified resource was not found headers: Access-Control-Allow-Origin: style: simple explode: false schema: type: string Access-Control-Allow-Methods: style: simple explode: false schema: type: string Access-Control-Allow-Credentials: style: simple explode: false schema: type: string Access-Control-Allow-Headers: style: simple explode: false schema: type: string content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Server Error headers: Access-Control-Allow-Origin: style: simple explode: false schema: type: string Access-Control-Allow-Methods: style: simple explode: false schema: type: string Access-Control-Allow-Credentials: style: simple explode: false schema: type: string Access-Control-Allow-Headers: style: simple explode: false schema: type: string content: application/json: schema: $ref: '#/components/schemas/Error' components: securitySchemes: Auth: type: oauth2 flows: clientCredentials: tokenUrl: https://api.korewireless.com/api-services/v1/auth/token scopes: {} schemas: Error: type: object properties: status: type: integer format: int32 message: type: string code: type: integer format: int32 info: type: string Empty: type: object Client: type: object properties: client_id: type: string example: apiclient_01exampledszqr9q description: Unique identifier for the client. account_id: type: string example: acct_012example description: Identifier of the account to which the client belongs. name: type: string example: Test client description: Name of the client. client_owner: type: string example: test@acme.com description: Email address of the client owner. If not specified, defaults to the account owner's email. client_type: type: string example: standard enum: - admin - standard description: Type of the client, either 'admin' or 'standard'. locked: type: boolean example: true description: Indicates whether the client is locked. If true, the client is locked; if false, it is unlocked; if null, it has not been locked. date_created: type: string example: Fri, 05 Apr 2024 11:08:14 GMT description: Date and time when the client was created. 200GetClient: type: object properties: client: $ref: '#/components/schemas/Client' 200GetClients: type: object properties: meta: type: object properties: count: type: number example: 1 description: Total number of clients returned in the response. page_number: type: number example: 1 description: Current page number of the returned client list. page_size: type: number example: 10 description: Number of clients per page in the returned client list. previous_page_url: type: string example: url description: Previous page url in client list. next_page_url: type: string example: url description: Next page url in client list. clients: type: array items: $ref: '#/components/schemas/Client' Ping200: type: object properties: status: type: string CreateClient: type: object properties: account_id: type: string example: acct_012example description: ID of the account the client belongs to. Defaults to the clientCred's account scope if not specified. name: type: string description: Name of the client. locked: type: boolean description: Specifies whether the client is locked or not. Can be true, false, or null. scopes: type: object properties: products: type: array items: type: string enum: - SuperSIM - ProgrammableWireless description: Name of the product resource. example: SuperSIM required: - name - locked - scopes example: account_id: acct_012example name: Example Client locked: false scopes: products: - SuperSIM additionalProperties: false 201CreateClient: type: object properties: message: type: string description: A message indicating the status of the client creation process. client_id: type: string description: The unique identifier assigned to the newly created client. client_secret: type: string description: The unique identifier secret assigned to the newly created client. client_type: type: string enum: - standard description: Type of the client. This will always be 'standard'. account_id: type: string example: acct_012example description: ID of the account the client is for. name: type: string description: Name of the client. date_created: type: string format: date-time description: Date and time when the client was created. client_owner: type: string description: Email of the user who is the client owner. locked: type: boolean description: Specifies whether the client is locked or not. security: - {} - Auth: [] x-hideTryItPanel: true