Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added additional Data API endpoints #209

Merged
merged 4 commits into from
Sep 24, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
336 changes: 336 additions & 0 deletions dataapiv1/spec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -171,6 +171,340 @@ paths:
description: The alpha API is enabled
'404':
description: The alpha API is not enabled
'/v1.alpha/buckets/{bucketName}/scopes/{scopeName}/collections/{collectionName}/documents/{documentKey}/append':
parameters:
- $ref: '#/components/parameters/AuthorizationHeader'
- $ref: '#/components/parameters/BucketName'
- $ref: '#/components/parameters/ScopeName'
- $ref: '#/components/parameters/CollectionName'
- $ref: '#/components/parameters/DocumentKey'
post:
operationId: appendToDocument
tags:
- Binary Operations
parameters:
- $ref: '#/components/parameters/IfMatchHeader'
- $ref: '#/components/parameters/DurabilityLevelHeader'
requestBody:
required: true
content:
'*':
schema: {}
responses:
'200':
description: Successful appended contents to the document.
headers:
ETag:
$ref: "#/components/headers/ETag"
X-CB-MutationToken:
$ref: "#/components/headers/MutationToken"
'400':
$ref: '#/components/responses/BadRequest'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'409':
$ref: '#/components/responses/Conflict'
'500':
$ref: '#/components/responses/InternalServerError'
'503':
$ref: '#/components/responses/ServiceUnavailable'
'504':
$ref: '#/components/responses/GatewayTimeout'
'/v1.alpha/buckets/{bucketName}/scopes/{scopeName}/collections/{collectionName}/documents/{documentKey}/prepend':
parameters:
- $ref: '#/components/parameters/AuthorizationHeader'
- $ref: '#/components/parameters/BucketName'
- $ref: '#/components/parameters/ScopeName'
- $ref: '#/components/parameters/CollectionName'
- $ref: '#/components/parameters/DocumentKey'
post:
operationId: prependToDocument
tags:
- Binary Operations
parameters:
- $ref: '#/components/parameters/IfMatchHeader'
- $ref: '#/components/parameters/DurabilityLevelHeader'
requestBody:
required: true
content:
'*':
schema: {}
responses:
'200':
description: Successful prepended contents to the document.
headers:
ETag:
$ref: "#/components/headers/ETag"
X-CB-MutationToken:
$ref: "#/components/headers/MutationToken"
'400':
$ref: '#/components/responses/BadRequest'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'409':
$ref: '#/components/responses/Conflict'
'500':
$ref: '#/components/responses/InternalServerError'
'503':
$ref: '#/components/responses/ServiceUnavailable'
'504':
$ref: '#/components/responses/GatewayTimeout'
'/v1.alpha/buckets/{bucketName}/scopes/{scopeName}/collections/{collectionName}/documents/{documentKey}/increment':
parameters:
- $ref: '#/components/parameters/AuthorizationHeader'
- $ref: '#/components/parameters/BucketName'
- $ref: '#/components/parameters/ScopeName'
- $ref: '#/components/parameters/CollectionName'
- $ref: '#/components/parameters/DocumentKey'
post:
operationId: incrementDocument
tags:
- Binary Operations
parameters:
- $ref: '#/components/parameters/ExpiresHeader'
- $ref: '#/components/parameters/DurabilityLevelHeader'
requestBody:
required: true
content:
'application/json':
schema:
type: object
properties:
initial:
description: The value to set the document to if the document does not exist.
type: integer
format: uint64
delta:
description: The value to increment the document by if it exists.
type: integer
format: uint64
responses:
'200':
description: Successful incremented the document.
headers:
ETag:
$ref: "#/components/headers/ETag"
X-CB-MutationToken:
$ref: "#/components/headers/MutationToken"
content:
application/json:
schema:
type: integer
format: uint64
'400':
$ref: '#/components/responses/BadRequest'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'500':
$ref: '#/components/responses/InternalServerError'
'503':
$ref: '#/components/responses/ServiceUnavailable'
'504':
$ref: '#/components/responses/GatewayTimeout'
'/v1.alpha/buckets/{bucketName}/scopes/{scopeName}/collections/{collectionName}/documents/{documentKey}/decrement':
parameters:
- $ref: '#/components/parameters/AuthorizationHeader'
- $ref: '#/components/parameters/BucketName'
- $ref: '#/components/parameters/ScopeName'
- $ref: '#/components/parameters/CollectionName'
- $ref: '#/components/parameters/DocumentKey'
post:
operationId: decrementDocument
tags:
- Binary Operations
parameters:
- $ref: '#/components/parameters/ExpiresHeader'
- $ref: '#/components/parameters/DurabilityLevelHeader'
requestBody:
required: true
content:
'application/json':
schema:
type: object
properties:
initial:
type: integer
format: uint64
description: The value to set the document to if the document does not exist.
delta:
type: integer
format: uint64
description: The value to increment the document by if it exists.
responses:
'200':
description: Successful incremented the document.
headers:
ETag:
$ref: "#/components/headers/ETag"
X-CB-MutationToken:
$ref: "#/components/headers/MutationToken"
content:
application/json:
schema:
type: integer
format: uint64
'400':
$ref: '#/components/responses/BadRequest'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'500':
$ref: '#/components/responses/InternalServerError'
'503':
$ref: '#/components/responses/ServiceUnavailable'
'504':
$ref: '#/components/responses/GatewayTimeout'
'/v1.alpha/buckets/{bucketName}/scopes/{scopeName}/collections/{collectionName}/documents/{documentKey}/lock':
parameters:
- $ref: '#/components/parameters/AuthorizationHeader'
- $ref: '#/components/parameters/BucketName'
- $ref: '#/components/parameters/ScopeName'
- $ref: '#/components/parameters/CollectionName'
- $ref: '#/components/parameters/DocumentKey'
post:
operationId: lockDocument
tags:
- Locking Operations
parameters:
- $ref: '#/components/parameters/AcceptEncodingHeader'
requestBody:
required: true
content:
'application/json':
schema:
type: object
properties:
lockTime:
description: The maximum period of time the document should remain locked.
type: integer
format: uint32
responses:
'200':
description: Successful locked the document
headers:
Content-Encoding:
$ref: "#/components/headers/ContentEncoding"
ETag:
$ref: "#/components/headers/ETag"
X-CB-Flags:
$ref: "#/components/headers/DocumentFlags"
content:
'*':
schema:
type: string
format: binary
'400':
$ref: '#/components/responses/BadRequest'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'409':
$ref: '#/components/responses/Conflict'
'500':
$ref: '#/components/responses/InternalServerError'
'503':
$ref: '#/components/responses/ServiceUnavailable'
'504':
$ref: '#/components/responses/GatewayTimeout'
'/v1.alpha/buckets/{bucketName}/scopes/{scopeName}/collections/{collectionName}/documents/{documentKey}/unlock':
parameters:
- $ref: '#/components/parameters/AuthorizationHeader'
- $ref: '#/components/parameters/BucketName'
- $ref: '#/components/parameters/ScopeName'
- $ref: '#/components/parameters/CollectionName'
- $ref: '#/components/parameters/DocumentKey'
post:
operationId: unlockDocument
tags:
- Binary Operations
parameters:
- $ref: '#/components/parameters/IfMatchHeader'
responses:
'200':
description: Successful unlocked the document.
headers:
X-CB-MutationToken:
$ref: "#/components/headers/MutationToken"
'400':
$ref: '#/components/responses/BadRequest'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'409':
$ref: '#/components/responses/Conflict'
'500':
$ref: '#/components/responses/InternalServerError'
'503':
$ref: '#/components/responses/ServiceUnavailable'
'504':
$ref: '#/components/responses/GatewayTimeout'
'/v1.alpha/buckets/{bucketName}/scopes/{scopeName}/collections/{collectionName}/documents/{documentKey}/touch':
parameters:
- $ref: '#/components/parameters/AuthorizationHeader'
- $ref: '#/components/parameters/BucketName'
- $ref: '#/components/parameters/ScopeName'
- $ref: '#/components/parameters/CollectionName'
- $ref: '#/components/parameters/DocumentKey'
post:
operationId: touchDocument
tags:
- Expiry Operations
parameters:
- $ref: '#/components/parameters/AcceptEncodingHeader'
requestBody:
required: true
content:
'application/json':
schema:
type: object
properties:
expiry:
description: The new expiry to set for the document, specified as an ISO8601 string.
type: string
returnContent:
description: Specifies whether the documents contents should be returned in the response.
type: boolean
responses:
'200':
description: Successful updated the expiry of the document and is returning the content of the document.
headers:
Content-Encoding:
$ref: "#/components/headers/ContentEncoding"
ETag:
$ref: "#/components/headers/ETag"
X-CB-Flags:
$ref: "#/components/headers/DocumentFlags"
content:
'*':
schema:
type: string
format: binary
'202':
description: Successful updated the expiry of the document but is not returning the content of the document.
headers:
ETag:
$ref: "#/components/headers/ETag"
'400':
$ref: '#/components/responses/BadRequest'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'500':
$ref: '#/components/responses/InternalServerError'
'503':
$ref: '#/components/responses/ServiceUnavailable'
'504':
$ref: '#/components/responses/GatewayTimeout'
components:
securitySchemes:
BasicAuth:
Expand Down Expand Up @@ -271,6 +605,7 @@ components:
- DocumentExists
- CasMismatch
- DocumentLocked
- DocumentNotLocked
- ValueTooLarge
- DocumentNotJson
- PathMismatch
Expand All @@ -291,6 +626,7 @@ components:
- ErrorCodeDocumentExists
- ErrorCodeCasMismatch
- ErrorCodeDocumentLocked
- ErrorCodeDocumentNotLocked
- ErrorCodeValueTooLarge
- ErrorCodeDocumentNotJson
- ErrorCodePathMismatch
Expand Down
Loading
Loading