@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api Registry API
@base https://apigeeregistry.googleapis.com
@version 0.0.1
@common_fields {project: str, location: str}
@endpoints 35
@hint download_for_search
@toc projects(35)

@endpoint GET /v1/projects/{project}/locations/{location}/apis
@optional {pageSize: int(int32), pageToken: str, filter: str}
@returns(200) {apis: [map], nextPageToken: str}

@endpoint POST /v1/projects/{project}/locations/{location}/apis
@optional {apiId: str, name: str, displayName: str, description: str, createTime: str(date-time), updateTime: str(date-time), availability: str, recommendedVersion: str, recommendedDeployment: str, labels: map, annotations: map}
@returns(200) {name: str, displayName: str, description: str, createTime: str(date-time), updateTime: str(date-time), availability: str, recommendedVersion: str, recommendedDeployment: str, labels: map, annotations: map}

@endpoint GET /v1/projects/{project}/locations/{location}/apis/{api}
@required {api: str}
@returns(200) {name: str, displayName: str, description: str, createTime: str(date-time), updateTime: str(date-time), availability: str, recommendedVersion: str, recommendedDeployment: str, labels: map, annotations: map}

@endpoint DELETE /v1/projects/{project}/locations/{location}/apis/{api}
@required {api: str}
@optional {force: bool}
@returns(200)

@endpoint PATCH /v1/projects/{project}/locations/{location}/apis/{api}
@required {api: str}
@optional {updateMask: str(field-mask), allowMissing: bool, name: str, displayName: str, description: str, createTime: str(date-time), updateTime: str(date-time), availability: str, recommendedVersion: str, recommendedDeployment: str, labels: map, annotations: map}
@returns(200) {name: str, displayName: str, description: str, createTime: str(date-time), updateTime: str(date-time), availability: str, recommendedVersion: str, recommendedDeployment: str, labels: map, annotations: map}

@endpoint GET /v1/projects/{project}/locations/{location}/apis/{api}/deployments
@required {api: str}
@optional {pageSize: int(int32), pageToken: str, filter: str}
@returns(200) {apiDeployments: [map], nextPageToken: str}

@endpoint POST /v1/projects/{project}/locations/{location}/apis/{api}/deployments
@required {api: str}
@optional {apiDeploymentId: str, name: str, displayName: str, description: str, revisionId: str, createTime: str(date-time), revisionCreateTime: str(date-time), revisionUpdateTime: str(date-time), apiSpecRevision: str, endpointUri: str, externalChannelUri: str, intendedAudience: str, accessGuidance: str, labels: map, annotations: map}
@returns(200) {name: str, displayName: str, description: str, revisionId: str, createTime: str(date-time), revisionCreateTime: str(date-time), revisionUpdateTime: str(date-time), apiSpecRevision: str, endpointUri: str, externalChannelUri: str, intendedAudience: str, accessGuidance: str, labels: map, annotations: map}

@endpoint GET /v1/projects/{project}/locations/{location}/apis/{api}/deployments/{deployment}
@required {api: str, deployment: str}
@returns(200) {name: str, displayName: str, description: str, revisionId: str, createTime: str(date-time), revisionCreateTime: str(date-time), revisionUpdateTime: str(date-time), apiSpecRevision: str, endpointUri: str, externalChannelUri: str, intendedAudience: str, accessGuidance: str, labels: map, annotations: map}

@endpoint DELETE /v1/projects/{project}/locations/{location}/apis/{api}/deployments/{deployment}
@required {api: str, deployment: str}
@optional {force: bool}
@returns(200)

@endpoint PATCH /v1/projects/{project}/locations/{location}/apis/{api}/deployments/{deployment}
@required {api: str, deployment: str}
@optional {updateMask: str(field-mask), allowMissing: bool, name: str, displayName: str, description: str, revisionId: str, createTime: str(date-time), revisionCreateTime: str(date-time), revisionUpdateTime: str(date-time), apiSpecRevision: str, endpointUri: str, externalChannelUri: str, intendedAudience: str, accessGuidance: str, labels: map, annotations: map}
@returns(200) {name: str, displayName: str, description: str, revisionId: str, createTime: str(date-time), revisionCreateTime: str(date-time), revisionUpdateTime: str(date-time), apiSpecRevision: str, endpointUri: str, externalChannelUri: str, intendedAudience: str, accessGuidance: str, labels: map, annotations: map}

@endpoint DELETE /v1/projects/{project}/locations/{location}/apis/{api}/deployments/{deployment}:deleteRevision
@required {api: str, deployment: str}
@returns(200) {name: str, displayName: str, description: str, revisionId: str, createTime: str(date-time), revisionCreateTime: str(date-time), revisionUpdateTime: str(date-time), apiSpecRevision: str, endpointUri: str, externalChannelUri: str, intendedAudience: str, accessGuidance: str, labels: map, annotations: map}

@endpoint GET /v1/projects/{project}/locations/{location}/apis/{api}/deployments/{deployment}:listRevisions
@required {api: str, deployment: str}
@optional {pageSize: int(int32), pageToken: str}
@returns(200) {apiDeployments: [map], nextPageToken: str}

@endpoint POST /v1/projects/{project}/locations/{location}/apis/{api}/deployments/{deployment}:rollback
@required {api: str, deployment: str, name: str, revisionId: str}
@returns(200) {name: str, displayName: str, description: str, revisionId: str, createTime: str(date-time), revisionCreateTime: str(date-time), revisionUpdateTime: str(date-time), apiSpecRevision: str, endpointUri: str, externalChannelUri: str, intendedAudience: str, accessGuidance: str, labels: map, annotations: map}

@endpoint POST /v1/projects/{project}/locations/{location}/apis/{api}/deployments/{deployment}:tagRevision
@required {api: str, deployment: str, name: str, tag: str}
@returns(200) {name: str, displayName: str, description: str, revisionId: str, createTime: str(date-time), revisionCreateTime: str(date-time), revisionUpdateTime: str(date-time), apiSpecRevision: str, endpointUri: str, externalChannelUri: str, intendedAudience: str, accessGuidance: str, labels: map, annotations: map}

@endpoint GET /v1/projects/{project}/locations/{location}/apis/{api}/versions
@required {api: str}
@optional {pageSize: int(int32), pageToken: str, filter: str}
@returns(200) {apiVersions: [map], nextPageToken: str}

@endpoint POST /v1/projects/{project}/locations/{location}/apis/{api}/versions
@required {api: str}
@optional {apiVersionId: str, name: str, displayName: str, description: str, createTime: str(date-time), updateTime: str(date-time), state: str, labels: map, annotations: map}
@returns(200) {name: str, displayName: str, description: str, createTime: str(date-time), updateTime: str(date-time), state: str, labels: map, annotations: map}

@endpoint GET /v1/projects/{project}/locations/{location}/apis/{api}/versions/{version}
@required {api: str, version: str}
@returns(200) {name: str, displayName: str, description: str, createTime: str(date-time), updateTime: str(date-time), state: str, labels: map, annotations: map}

@endpoint DELETE /v1/projects/{project}/locations/{location}/apis/{api}/versions/{version}
@required {api: str, version: str}
@optional {force: bool}
@returns(200)

@endpoint PATCH /v1/projects/{project}/locations/{location}/apis/{api}/versions/{version}
@required {api: str, version: str}
@optional {updateMask: str(field-mask), allowMissing: bool, name: str, displayName: str, description: str, createTime: str(date-time), updateTime: str(date-time), state: str, labels: map, annotations: map}
@returns(200) {name: str, displayName: str, description: str, createTime: str(date-time), updateTime: str(date-time), state: str, labels: map, annotations: map}

@endpoint GET /v1/projects/{project}/locations/{location}/apis/{api}/versions/{version}/specs
@required {api: str, version: str}
@optional {pageSize: int(int32), pageToken: str, filter: str}
@returns(200) {apiSpecs: [map], nextPageToken: str}

@endpoint POST /v1/projects/{project}/locations/{location}/apis/{api}/versions/{version}/specs
@required {api: str, version: str}
@optional {apiSpecId: str, name: str, filename: str, description: str, revisionId: str, createTime: str(date-time), revisionCreateTime: str(date-time), revisionUpdateTime: str(date-time), mimeType: str, sizeBytes: int(int32), hash: str, sourceUri: str, contents: str(bytes), labels: map, annotations: map}
@returns(200) {name: str, filename: str, description: str, revisionId: str, createTime: str(date-time), revisionCreateTime: str(date-time), revisionUpdateTime: str(date-time), mimeType: str, sizeBytes: int(int32), hash: str, sourceUri: str, contents: str(bytes), labels: map, annotations: map}

@endpoint GET /v1/projects/{project}/locations/{location}/apis/{api}/versions/{version}/specs/{spec}
@required {api: str, version: str, spec: str}
@returns(200) {name: str, filename: str, description: str, revisionId: str, createTime: str(date-time), revisionCreateTime: str(date-time), revisionUpdateTime: str(date-time), mimeType: str, sizeBytes: int(int32), hash: str, sourceUri: str, contents: str(bytes), labels: map, annotations: map}

@endpoint DELETE /v1/projects/{project}/locations/{location}/apis/{api}/versions/{version}/specs/{spec}
@required {api: str, version: str, spec: str}
@optional {force: bool}
@returns(200)

@endpoint PATCH /v1/projects/{project}/locations/{location}/apis/{api}/versions/{version}/specs/{spec}
@required {api: str, version: str, spec: str}
@optional {updateMask: str(field-mask), allowMissing: bool, name: str, filename: str, description: str, revisionId: str, createTime: str(date-time), revisionCreateTime: str(date-time), revisionUpdateTime: str(date-time), mimeType: str, sizeBytes: int(int32), hash: str, sourceUri: str, contents: str(bytes), labels: map, annotations: map}
@returns(200) {name: str, filename: str, description: str, revisionId: str, createTime: str(date-time), revisionCreateTime: str(date-time), revisionUpdateTime: str(date-time), mimeType: str, sizeBytes: int(int32), hash: str, sourceUri: str, contents: str(bytes), labels: map, annotations: map}

@endpoint DELETE /v1/projects/{project}/locations/{location}/apis/{api}/versions/{version}/specs/{spec}:deleteRevision
@required {api: str, version: str, spec: str}
@returns(200) {name: str, filename: str, description: str, revisionId: str, createTime: str(date-time), revisionCreateTime: str(date-time), revisionUpdateTime: str(date-time), mimeType: str, sizeBytes: int(int32), hash: str, sourceUri: str, contents: str(bytes), labels: map, annotations: map}

@endpoint GET /v1/projects/{project}/locations/{location}/apis/{api}/versions/{version}/specs/{spec}:getContents
@required {api: str, version: str, spec: str}
@returns(200)

@endpoint GET /v1/projects/{project}/locations/{location}/apis/{api}/versions/{version}/specs/{spec}:listRevisions
@required {api: str, version: str, spec: str}
@optional {pageSize: int(int32), pageToken: str}
@returns(200) {apiSpecs: [map], nextPageToken: str}

@endpoint POST /v1/projects/{project}/locations/{location}/apis/{api}/versions/{version}/specs/{spec}:rollback
@required {api: str, version: str, spec: str, name: str, revisionId: str}
@returns(200) {name: str, filename: str, description: str, revisionId: str, createTime: str(date-time), revisionCreateTime: str(date-time), revisionUpdateTime: str(date-time), mimeType: str, sizeBytes: int(int32), hash: str, sourceUri: str, contents: str(bytes), labels: map, annotations: map}

@endpoint POST /v1/projects/{project}/locations/{location}/apis/{api}/versions/{version}/specs/{spec}:tagRevision
@required {api: str, version: str, spec: str, name: str, tag: str}
@returns(200) {name: str, filename: str, description: str, revisionId: str, createTime: str(date-time), revisionCreateTime: str(date-time), revisionUpdateTime: str(date-time), mimeType: str, sizeBytes: int(int32), hash: str, sourceUri: str, contents: str(bytes), labels: map, annotations: map}

@endpoint GET /v1/projects/{project}/locations/{location}/artifacts
@optional {pageSize: int(int32), pageToken: str, filter: str}
@returns(200) {artifacts: [map], nextPageToken: str}

@endpoint POST /v1/projects/{project}/locations/{location}/artifacts
@optional {artifactId: str, name: str, createTime: str(date-time), updateTime: str(date-time), mimeType: str, sizeBytes: int(int32), hash: str, contents: str(bytes)}
@returns(200) {name: str, createTime: str(date-time), updateTime: str(date-time), mimeType: str, sizeBytes: int(int32), hash: str, contents: str(bytes)}

@endpoint GET /v1/projects/{project}/locations/{location}/artifacts/{artifact}
@required {artifact: str}
@returns(200) {name: str, createTime: str(date-time), updateTime: str(date-time), mimeType: str, sizeBytes: int(int32), hash: str, contents: str(bytes)}

@endpoint PUT /v1/projects/{project}/locations/{location}/artifacts/{artifact}
@required {artifact: str}
@optional {name: str, createTime: str(date-time), updateTime: str(date-time), mimeType: str, sizeBytes: int(int32), hash: str, contents: str(bytes)}
@returns(200) {name: str, createTime: str(date-time), updateTime: str(date-time), mimeType: str, sizeBytes: int(int32), hash: str, contents: str(bytes)}

@endpoint DELETE /v1/projects/{project}/locations/{location}/artifacts/{artifact}
@required {artifact: str}
@returns(200)

@endpoint GET /v1/projects/{project}/locations/{location}/artifacts/{artifact}:getContents
@required {artifact: str}
@returns(200)

@end
