openapi: 3.2.0 info: version: 1.0.0 title: LucidLink Service API Reference Domain API description: "The LucidLink API is organized around REST. \nThe API has predictable resource-oriented URLs, works with JSON-encoded request and response bodies and uses standard-based verbs (HTTP), responses and authentication. \nThe authentication uses OAuth2 Client Credentials Grant Type. The credentials are provided upon request sent to support+ticket@lucidlink.com or by visiting https://support.lucidlink.com/hc/en-us.\n\nHere is an example bash script to retrieve an access token and send an API request.\n```sh\n #!/bin/bash\n CLIENT_ID=...\n CLIENT_SECRET=...\n TOKEN_ENDPOINT=https://auth.lucidlink.com/oauth2/token\n API_ENDPOINT=https://api.lucidlink.com/v1\n\n # Encode client credentials in base64 before exchanging them for a token.\n CLIENT_CREDENTIALS=$(echo -n $CLIENT_ID:$CLIENT_SECRET | base64 -w 0)\n\n # Retrieve your access token.\n ACCESS_TOKEN=$(curl $TOKEN_ENDPOINT \\\n --http1.0 \\\n -X POST \\\n -H 'Content-Type: application/x-www-form-urlencoded' \\\n -H \"Authorization: Basic $CLIENT_CREDENTIALS\" \\\n -d 'grant_type=client_credentials' -s | jq -r '.access_token')\n\n # Use the token to interact with the API\n sendApiRequest()\n {\n echo $(curl $API_ENDPOINT/$1 \\\n -X GET \\\n -H \"Authorization: $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" -s)\n }\n sendApiRequest \"domains\"\n```\n" servers: - url: /api/v1 security: - standard: [] tags: - name: domain description: Domain operations. paths: /domains: x-swagger-router-controller: Domain post: tags: - domain summary: Create a domain. operationId: createDomain responses: '201': description: The domain object that has been created. content: application/json: schema: $ref: '#/components/schemas/Domain' '400': description: Invalid domain name. content: application/json: schema: $ref: '#/components/schemas/BadRequest' '409': description: Domain name already taken or account has an existing domain. content: application/json: schema: $ref: '#/components/schemas/Conflict' requestBody: content: application/json: schema: $ref: '#/components/schemas/Domain' description: Domain object to be created. Domains are globally unique across all LucidLink accounts. required: true get: tags: - domain summary: Get a list of domains. operationId: getDomains responses: '200': description: A list of domains. content: application/json: schema: type: array items: $ref: '#/components/schemas/Domain' /domains/{id}: x-swagger-router-controller: Domain get: tags: - domain summary: Retrieve a domain. operationId: getDomain parameters: - name: id in: path description: ID of the domain to be retrieved. required: true schema: type: string responses: '200': description: The domain object. content: application/json: schema: $ref: '#/components/schemas/Domain' '400': description: Invalid domain ID. content: application/json: schema: $ref: '#/components/schemas/BadRequest' '404': description: Domain not found. content: application/json: schema: $ref: '#/components/schemas/NotFound' delete: tags: - domain summary: Delete a domain. operationId: deleteDomain parameters: - in: path name: id description: ID of the domain to be deleted. required: true schema: type: string responses: '204': description: Success. '400': description: Invalid domain ID. content: application/json: schema: $ref: '#/components/schemas/BadRequest' '404': description: Domain not found. content: application/json: schema: $ref: '#/components/schemas/NotFound' '409': description: Domain has filespaces. content: application/json: schema: $ref: '#/components/schemas/Conflict' put: tags: - domain summary: Update a domain. operationId: updateDomain parameters: - in: path name: id description: ID of the domain to be updated. required: true schema: type: string responses: '200': description: The domain object that has been updated. content: application/json: schema: $ref: '#/components/schemas/Domain' '400': description: Invalid domain name. content: application/json: schema: $ref: '#/components/schemas/BadRequest' '404': description: Domain not found. content: application/json: schema: $ref: '#/components/schemas/NotFound' '409': description: Domain has filespaces. content: application/json: schema: $ref: '#/components/schemas/Conflict' requestBody: content: application/json: schema: $ref: '#/components/schemas/Domain' description: Domain object to update with. required: true components: schemas: NotFound: required: - status - message properties: status: type: number example: 404 message: type: string Domain: required: - name properties: id: type: string readOnly: true name: description: Lowercase letters, numbers or hyphens. 3-60 chars. type: string Conflict: required: - status - message properties: status: type: number example: 409 message: type: string BadRequest: required: - status - message properties: status: type: number example: 400 message: type: string securitySchemes: standard: type: oauth2 flows: clientCredentials: scopes: {} tokenUrl: https://auth.lucidlink.com/oauth2/token