@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api Cloud Run Admin API
@base https://run.googleapis.com/
@version v2
@auth OAuth2 | OAuth2
@endpoints 16
@toc {name}(4), {name}:run(1), {name}:wait(1), {parent}(7), {resource}:getIamPolicy(1), {resource}:setIamPolicy(1), {resource}:testIamPermissions(1)

@group {name}
@endpoint DELETE /v2/{name}
@required {name: str}
@optional {etag: str, validateOnly: bool}
@returns(200) {done: bool, error: map{code: int(int32), details: [map], message: str}, metadata: map, name: str, response: map}

@endpoint GET /v2/{name}
@required {name: str}
@returns(200) {annotations: map, conditions: [map], containers: [map], createTime: str(google-datetime), deleteTime: str(google-datetime), encryptionKey: str, encryptionKeyRevocationAction: str, encryptionKeyShutdownDuration: str(google-duration), etag: str, executionEnvironment: str, expireTime: str(google-datetime), generation: str(int64), labels: map, launchStage: str, logUri: str, maxInstanceRequestConcurrency: int(int32), name: str, observedGeneration: str(int64), reconciling: bool, satisfiesPzs: bool, scaling: map{maxInstanceCount: int(int32), minInstanceCount: int(int32)}, service: str, serviceAccount: str, timeout: str(google-duration), uid: str, updateTime: str(google-datetime), volumes: [map], vpcAccess: map{connector: str, egress: str}}

@endpoint PATCH /v2/{name}
@required {name: str}
@optional {allowMissing: bool, validateOnly: bool, annotations: map, binaryAuthorization: map{breakglassJustification: str, useDefault: bool}, client: str, clientVersion: str, conditions: [map{executionReason: str, lastTransitionTime: str(google-datetime), message: str, reason: str, revisionReason: str, severity: str, state: str, type: str}], createTime: str(google-datetime), creator: str, deleteTime: str(google-datetime), description: str, etag: str, expireTime: str(google-datetime), generation: str(int64), ingress: str(INGRESS_TRAFFIC_UNSPECIFIED/INGRESS_TRAFFIC_ALL/INGRESS_TRAFFIC_INTERNAL_ONLY/INGRESS_TRAFFIC_INTERNAL_LOAD_BALANCER), labels: map, lastModifier: str, latestCreatedRevision: str, latestReadyRevision: str, launchStage: str(LAUNCH_STAGE_UNSPECIFIED/UNIMPLEMENTED/PRELAUNCH/EARLY_ACCESS/ALPHA/BETA/GA/DEPRECATED), name: str, observedGeneration: str(int64), reconciling: bool, satisfiesPzs: bool, template: map{annotations: map, containers: [map], encryptionKey: str, executionEnvironment: str, labels: map, maxInstanceRequestConcurrency: int(int32), revision: str, scaling: map, serviceAccount: str, timeout: str(google-duration), volumes: [map], vpcAccess: map}, terminalCondition: map{executionReason: str, lastTransitionTime: str(google-datetime), message: str, reason: str, revisionReason: str, severity: str, state: str, type: str}, traffic: [map{percent: int(int32), revision: str, tag: str, type: str}], trafficStatuses: [map{percent: int(int32), revision: str, tag: str, type: str, uri: str}], uid: str, updateTime: str(google-datetime), uri: str}
@returns(200) {done: bool, error: map{code: int(int32), details: [map], message: str}, metadata: map, name: str, response: map}

@endpoint GET /v2/{name}/operations
@required {name: str}
@optional {filter: str, pageSize: int, pageToken: str}
@returns(200) {nextPageToken: str, operations: [map]}

@endgroup

@group {name}:run
@endpoint POST /v2/{name}:run
@required {name: str}
@optional {etag: str, validateOnly: bool}
@returns(200) {done: bool, error: map{code: int(int32), details: [map], message: str}, metadata: map, name: str, response: map}

@endgroup

@group {name}:wait
@endpoint POST /v2/{name}:wait
@required {name: str}
@optional {timeout: str(google-duration)}
@returns(200) {done: bool, error: map{code: int(int32), details: [map], message: str}, metadata: map, name: str, response: map}

@endgroup

@group {parent}
@endpoint GET /v2/{parent}/executions
@required {parent: str}
@optional {pageSize: int, pageToken: str, showDeleted: bool}
@returns(200) {executions: [map], nextPageToken: str}

@endpoint GET /v2/{parent}/jobs
@required {parent: str}
@optional {pageSize: int, pageToken: str, showDeleted: bool}
@returns(200) {jobs: [map], nextPageToken: str}

@endpoint POST /v2/{parent}/jobs
@required {parent: str}
@optional {jobId: str, validateOnly: bool, annotations: map, binaryAuthorization: map{breakglassJustification: str, useDefault: bool}, client: str, clientVersion: str, conditions: [map{executionReason: str, lastTransitionTime: str(google-datetime), message: str, reason: str, revisionReason: str, severity: str, state: str, type: str}], createTime: str(google-datetime), creator: str, deleteTime: str(google-datetime), etag: str, executionCount: int(int32), expireTime: str(google-datetime), generation: str(int64), labels: map, lastModifier: str, latestCreatedExecution: map{completionTime: str(google-datetime), createTime: str(google-datetime), name: str}, launchStage: str(LAUNCH_STAGE_UNSPECIFIED/UNIMPLEMENTED/PRELAUNCH/EARLY_ACCESS/ALPHA/BETA/GA/DEPRECATED), name: str, observedGeneration: str(int64), reconciling: bool, satisfiesPzs: bool, template: map{annotations: map, labels: map, parallelism: int(int32), taskCount: int(int32), template: map}, terminalCondition: map{executionReason: str, lastTransitionTime: str(google-datetime), message: str, reason: str, revisionReason: str, severity: str, state: str, type: str}, uid: str, updateTime: str(google-datetime)}
@returns(200) {done: bool, error: map{code: int(int32), details: [map], message: str}, metadata: map, name: str, response: map}

@endpoint GET /v2/{parent}/revisions
@required {parent: str}
@optional {pageSize: int, pageToken: str, showDeleted: bool}
@returns(200) {nextPageToken: str, revisions: [map]}

@endpoint GET /v2/{parent}/services
@required {parent: str}
@optional {pageSize: int, pageToken: str, showDeleted: bool}
@returns(200) {nextPageToken: str, services: [map]}

@endpoint POST /v2/{parent}/services
@required {parent: str}
@optional {serviceId: str, validateOnly: bool, annotations: map, binaryAuthorization: map{breakglassJustification: str, useDefault: bool}, client: str, clientVersion: str, conditions: [map{executionReason: str, lastTransitionTime: str(google-datetime), message: str, reason: str, revisionReason: str, severity: str, state: str, type: str}], createTime: str(google-datetime), creator: str, deleteTime: str(google-datetime), description: str, etag: str, expireTime: str(google-datetime), generation: str(int64), ingress: str(INGRESS_TRAFFIC_UNSPECIFIED/INGRESS_TRAFFIC_ALL/INGRESS_TRAFFIC_INTERNAL_ONLY/INGRESS_TRAFFIC_INTERNAL_LOAD_BALANCER), labels: map, lastModifier: str, latestCreatedRevision: str, latestReadyRevision: str, launchStage: str(LAUNCH_STAGE_UNSPECIFIED/UNIMPLEMENTED/PRELAUNCH/EARLY_ACCESS/ALPHA/BETA/GA/DEPRECATED), name: str, observedGeneration: str(int64), reconciling: bool, satisfiesPzs: bool, template: map{annotations: map, containers: [map], encryptionKey: str, executionEnvironment: str, labels: map, maxInstanceRequestConcurrency: int(int32), revision: str, scaling: map, serviceAccount: str, timeout: str(google-duration), volumes: [map], vpcAccess: map}, terminalCondition: map{executionReason: str, lastTransitionTime: str(google-datetime), message: str, reason: str, revisionReason: str, severity: str, state: str, type: str}, traffic: [map{percent: int(int32), revision: str, tag: str, type: str}], trafficStatuses: [map{percent: int(int32), revision: str, tag: str, type: str, uri: str}], uid: str, updateTime: str(google-datetime), uri: str}
@returns(200) {done: bool, error: map{code: int(int32), details: [map], message: str}, metadata: map, name: str, response: map}

@endpoint GET /v2/{parent}/tasks
@required {parent: str}
@optional {pageSize: int, pageToken: str, showDeleted: bool}
@returns(200) {nextPageToken: str, tasks: [map]}

@endgroup

@group {resource}:getIamPolicy
@endpoint GET /v2/{resource}:getIamPolicy
@required {resource: str}
@optional {options.requestedPolicyVersion: int}
@returns(200) {auditConfigs: [map], bindings: [map], etag: str(byte), version: int(int32)}

@endgroup

@group {resource}:setIamPolicy
@endpoint POST /v2/{resource}:setIamPolicy
@required {resource: str}
@optional {policy: map{auditConfigs: [map], bindings: [map], etag: str(byte), version: int(int32)}, updateMask: str(google-fieldmask)}
@returns(200) {auditConfigs: [map], bindings: [map], etag: str(byte), version: int(int32)}

@endgroup

@group {resource}:testIamPermissions
@endpoint POST /v2/{resource}:testIamPermissions
@required {resource: str}
@optional {permissions: [str]}
@returns(200) {permissions: [str]}

@endgroup

@end
