@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api 1Password Connect
@base http://localhost:8080/v1
@version 1.5.7
@auth Bearer bearer
@endpoints 15
@toc activity(1), vaults(11), heartbeat(1), health(1), metrics(1)

@group activity
@endpoint GET /activity
@optional {limit: int=50, offset: int=0}
@returns(200)
@errors {401}

@endgroup

@group vaults
@endpoint GET /vaults
@optional {filter: str}
@returns(200)
@errors {401}

@endpoint GET /vaults/{vaultUuid}
@required {vaultUuid: str}
@returns(200) {id: str, name: str, description: str, attributeVersion: int, contentVersion: int, items: int, type: str, createdAt: str(date-time), updatedAt: str(date-time)}
@errors {401, 403, 404}

@endpoint GET /vaults/{vaultUuid}/items
@required {vaultUuid: str}
@optional {filter: str}
@returns(200)
@errors {401, 404}

@endpoint POST /vaults/{vaultUuid}/items
@required {vaultUuid: str}
@returns(200)
@errors {400, 401, 403, 404}

@endpoint GET /vaults/{vaultUuid}/items/{itemUuid}
@required {vaultUuid: str, itemUuid: str}
@returns(200)
@errors {401, 403, 404}

@endpoint PUT /vaults/{vaultUuid}/items/{itemUuid}
@required {vaultUuid: str, itemUuid: str}
@returns(200)
@errors {400, 401, 403, 404}

@endpoint DELETE /vaults/{vaultUuid}/items/{itemUuid}
@required {vaultUuid: str, itemUuid: str}
@returns(204)
@errors {401, 403, 404}

@endpoint PATCH /vaults/{vaultUuid}/items/{itemUuid}
@required {vaultUuid: str, itemUuid: str}
@returns(200)
@errors {401, 403, 404}

@endpoint GET /vaults/{vaultUuid}/items/{itemUuid}/files
@required {vaultUuid: str(uuid), itemUuid: str(uuid)}
@optional {inline_files: bool}
@returns(200)
@errors {401, 404, 413}

@endpoint GET /vaults/{vaultUuid}/items/{itemUuid}/files/{fileUuid}
@required {vaultUuid: str(uuid), itemUuid: str(uuid), fileUuid: str(uuid)}
@optional {inline_files: bool}
@returns(200) {id: str, name: str, size: int, content_path: str, section: map{id: str}, content: str(byte)}
@errors {401, 403, 404, 413}

@endpoint GET /vaults/{vaultUuid}/items/{itemUuid}/files/{fileUuid}/content
@returns(200)
@errors {401, 404}

@endgroup

@group heartbeat
@endpoint GET /heartbeat
@returns(200)

@endgroup

@group health
@endpoint GET /health
@returns(200) {name: str, version: str, dependencies: [map]}

@endgroup

@group metrics
@endpoint GET /metrics
@returns(200)

@endgroup

@end
