@oatscenter/trellis 0.100.0-rc.4 → 0.100.0-rc.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/generated.d.ts +1 -1
- package/generated_support.d.ts +8 -0
- package/generated_support.js +20 -0
- package/internal_sdk/generated/apis/auth/mod.js +1 -1
- package/internal_sdk/generated/apis/core/mod.js +1 -1
- package/internal_sdk/generated/apis/events/mod.js +1 -1
- package/internal_sdk/generated/apis/health/mod.js +1 -1
- package/internal_sdk/generated/apis/jobs/mod.js +1 -1
- package/internal_sdk/generated/apis/state/mod.js +1 -1
- package/internal_sdk/generated/package.json +2 -2
- package/internal_sdk/generated/participants/eventsRuntime/mod.js +1 -1
- package/internal_sdk/generated/participants/healthRuntime/mod.js +1 -1
- package/internal_sdk/generated/participants/jobsRuntime/mod.js +1 -1
- package/internal_sdk/generated/participants/platform/mod.js +1 -1
- package/package.json +2 -2
package/generated.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/** Portable runtime support for generated Trellis packages. */
|
|
2
2
|
export { TrellisError } from "./errors/TrellisError.ts";
|
|
3
|
-
export { apiDescriptor, type AppRequestDescriptor, type Codec, codecs, participantDescriptor, type SerializableErrorData, } from "./generated_support.ts";
|
|
3
|
+
export { apiDescriptor, type AppRequestDescriptor, type Codec, codecs, type JsonValue, participantDescriptor, type SerializableErrorData, } from "./generated_support.ts";
|
|
4
4
|
export type { ParticipantJobsFromResources, ParticipantKvFromResources, RuntimeApiFromGenerated, } from "./participant_runtime/participant.ts";
|
package/generated_support.d.ts
CHANGED
|
@@ -32,6 +32,10 @@ type ModelValue<F extends Readonly<Record<string, ModelField>>> = {
|
|
|
32
32
|
} & {
|
|
33
33
|
[K in keyof F as F[K] extends OptionalCodec<unknown> ? K : never]?: Exclude<CodecValue<F[K]>, undefined>;
|
|
34
34
|
};
|
|
35
|
+
/** A value the IDL `json` type carries unchecked. */
|
|
36
|
+
export type JsonValue = null | boolean | number | string | JsonValue[] | {
|
|
37
|
+
[key: string]: JsonValue;
|
|
38
|
+
};
|
|
35
39
|
/** Browser-safe codec vocabulary consumed by generated TypeScript packages. */
|
|
36
40
|
export declare const codecs: Readonly<{
|
|
37
41
|
string: Readonly<{
|
|
@@ -74,6 +78,10 @@ export declare const codecs: Readonly<{
|
|
|
74
78
|
decode(value: unknown): Ulid;
|
|
75
79
|
encode(value: Ulid): unknown;
|
|
76
80
|
}>;
|
|
81
|
+
json: Readonly<{
|
|
82
|
+
decode(value: unknown): JsonValue;
|
|
83
|
+
encode(value: JsonValue): unknown;
|
|
84
|
+
}>;
|
|
77
85
|
openEnum<const T extends string>(values: readonly T[]): Codec<OpenEnum<T>>;
|
|
78
86
|
model<const F extends Readonly<Record<string, ModelField>>>(fields: F): Codec<ModelValue<F>>;
|
|
79
87
|
named<T, Named extends T>(_name: string, value: Codec<T>): Codec<Named>;
|
package/generated_support.js
CHANGED
|
@@ -83,6 +83,25 @@ function timestamp(value) {
|
|
|
83
83
|
return `${canonical}${digits ? `.${digits}` : ""}Z`;
|
|
84
84
|
}
|
|
85
85
|
const ulidPattern = /^[0-7][0-9A-HJKMNP-TV-Z]{25}$/;
|
|
86
|
+
/** Accept only values JSON can represent, so `json` round-trips exactly. */
|
|
87
|
+
function jsonValue(value) {
|
|
88
|
+
if (value === null || typeof value === "boolean" || typeof value === "string")
|
|
89
|
+
return value;
|
|
90
|
+
if (typeof value === "number")
|
|
91
|
+
return Number.isFinite(value) ? value : fail("finite JSON number");
|
|
92
|
+
if (Array.isArray(value))
|
|
93
|
+
return value.map(jsonValue);
|
|
94
|
+
const prototype = typeof value === "object" ? Object.getPrototypeOf(value) : undefined;
|
|
95
|
+
if (prototype === Object.prototype || prototype === null) {
|
|
96
|
+
const result = {};
|
|
97
|
+
for (const [key, item] of Object.entries(value)) {
|
|
98
|
+
if (item !== undefined)
|
|
99
|
+
result[key] = jsonValue(item);
|
|
100
|
+
}
|
|
101
|
+
return result;
|
|
102
|
+
}
|
|
103
|
+
return fail("JSON value");
|
|
104
|
+
}
|
|
86
105
|
/** Browser-safe codec vocabulary consumed by generated TypeScript packages. */
|
|
87
106
|
export const codecs = Object.freeze({
|
|
88
107
|
string: stringCodec,
|
|
@@ -97,6 +116,7 @@ export const codecs = Object.freeze({
|
|
|
97
116
|
ulid: codec((value) => typeof value === "string" && ulidPattern.test(value)
|
|
98
117
|
? value
|
|
99
118
|
: fail("canonical ULID")),
|
|
119
|
+
json: codec(jsonValue),
|
|
100
120
|
openEnum(values) {
|
|
101
121
|
if (values.some((value) => typeof value !== "string")) {
|
|
102
122
|
fail("generated string enum values");
|
|
@@ -1298,7 +1298,7 @@ const __api = apiDescriptor({
|
|
|
1298
1298
|
"digest": "5oikZNdhNiboROjZwa26SfHYhaoe7wV9QT25-iMR1Ow",
|
|
1299
1299
|
"name": "trellis",
|
|
1300
1300
|
"source": "package \"trellis\";\nmodel AuthAcceptedApi {\n acceptedAt: timestamp;\n acceptedRevision: AuthRevision;\n apiId: AuthApiId;\n canonicalDigest: AuthDigest;\n capabilities: list<AuthCapabilityDefinition>;\n generation: AuthRevision;\n}\n\nenum AuthActionDirection {\n \"call\";\n \"cancel\";\n \"consume\";\n \"control\";\n \"delete\";\n \"invoke\";\n \"observe\";\n \"process\";\n \"publish\";\n \"read\";\n \"submit\";\n \"subscribe\";\n \"write\";\n}\n\nenum AuthActionKind {\n \"event\";\n \"live\";\n \"operation\";\n \"rpc\";\n \"transfer\";\n}\n\nmodel AuthActionSummary {\n direction: AuthActionDirection;\n kind: AuthActionKind;\n name: AuthName;\n}\n\nmodel AuthAdministrationReview {\n capabilityId: string;\n clientId: AuthClientId;\n clientName: string;\n principalId: ulid;\n principalTitle: string;\n requestedAt: timestamp;\n reviewId: ulid;\n revision: AuthRevision;\n state: AuthAdministrationReviewState;\n}\n\nmodel AuthAdministrationReviewDecideRequest {\n decision: AuthDecision;\n expectedRevision: AuthRevision;\n idempotencyKey: AuthIdempotencyKey;\n reviewId: ulid;\n}\n\nmodel AuthAdministrationReviewResponse {\n review: AuthAdministrationReview;\n}\n\nenum AuthAdministrationReviewState {\n \"approved\";\n \"pending\";\n \"rejected\";\n}\n\ntype AuthAdministrationReviewsListResponse = CursorPage<AuthAdministrationReview>;\n\nmodel AuthAdmissionRenewRequest {\n contextDigest: AuthDigest;\n}\n\nmodel AuthAdmissionRenewResponse {\n admissionCredential: string;\n expiresAt: timestamp;\n}\n\nmodel AuthApiAcceptRequest {\n canonicalDigest: AuthDigest;\n expectedAcceptedRevision: uint64;\n expectedGeneration: uint64;\n idempotencyKey: AuthIdempotencyKey;\n mappingEdits: list<AuthReviewedMappingEdit>;\n reviewId: ulid;\n roleEdits: list<AuthReviewedRoleEdit>;\n}\n\nmodel AuthApiAcceptResponse {\n api: AuthAcceptedApi;\n enforcement?: AuthEnforcementProgress;\n}\n\nmodel AuthApiForceReplaceRequest {\n acknowledgeBreakage: bool;\n acknowledgeConsentImpact: bool;\n canonicalDigest: AuthDigest;\n expectedAcceptedRevision: AuthRevision;\n expectedGeneration: AuthRevision;\n idempotencyKey: AuthIdempotencyKey;\n mappingEdits: list<AuthReviewedMappingEdit>;\n reviewId: ulid;\n roleEdits: list<AuthReviewedRoleEdit>;\n}\n\nmodel AuthApiGetRequest {\n apiId: AuthApiId;\n}\n\nmodel AuthApiGetResponse {\n api: AuthAcceptedApi;\n canonicalIdl: string;\n}\n\ntype AuthApiId = string(min_length=1, max_length=256);\n\nmodel AuthApiReview {\n actionChanges: list<AuthActionSummary>;\n affectedDeploymentIds: list<ulid>;\n affectedRoleIds: list<ulid>;\n apiId: AuthApiId;\n breakage: list<string>;\n canonicalDigest: AuthDigest;\n capabilityChanges: list<AuthCapabilityChange>;\n compatible: bool;\n currentAcceptedRevision?: AuthRevision;\n currentGeneration?: AuthRevision;\n expiresAt: timestamp;\n reviewId: ulid;\n}\n\nmodel AuthApiReviewRequest {\n apiId: AuthApiId;\n packageEvidence: AuthPackageEvidence;\n}\n\nmodel AuthApiReviewResponse {\n review: AuthApiReview;\n}\n\ntype AuthApisListResponse = CursorPage<AuthAcceptedApi>;\n\nmodel AuthAttachment {\n admittedAt?: timestamp;\n admittedTransportPolicyDigest: AuthDigest;\n attachmentId: ulid;\n authorizationSessionId: ulid;\n brokerClientId: uint64;\n closedAt?: timestamp;\n serverId: string;\n sessionPublicKey: AuthPublicKey;\n state: AuthAttachmentState;\n}\n\nenum AuthAttachmentState {\n \"admitted\";\n \"closed\";\n \"pending\";\n}\n\nmodel AuthAuthorityRenewRequest {\n contextDigest: AuthDigest;\n}\n\nmodel AuthAuthorityRenewResponse {\n authority: AuthSignedBlob;\n catalog: AuthSignedBlob;\n contextDigest: AuthDigest;\n providers: list<AuthSignedBlob>;\n}\n\nmodel AuthAuthorizationSession {\n authorizationSessionId: ulid;\n binding: AuthRuntimeBinding;\n createdAt: timestamp;\n credentialKind: AuthCredentialKind;\n identityKeyId?: AuthKeyId;\n loginSessionId?: ulid;\n maximumContextExpiresAt?: timestamp;\n notAfter?: timestamp;\n oauthGrantId?: ulid;\n principalId: ulid;\n principalKind: AuthPrincipalKind;\n reason?: AuthRevocationReason;\n retiredAt?: timestamp;\n runtimeId: string;\n sessionPublicKey: AuthPublicKey;\n state: AuthAuthorizationSessionState;\n}\n\nmodel AuthAuthorizationSessionRevokeRequest {\n authorizationSessionId: ulid;\n idempotencyKey: AuthIdempotencyKey;\n}\n\nmodel AuthAuthorizationSessionRevokeResponse {\n authorizationSessionId: ulid;\n enforcement: AuthEnforcementProgress;\n retiredAt: timestamp;\n}\n\nenum AuthAuthorizationSessionState {\n \"active\";\n \"revoked\";\n \"superseded\";\n}\n\nmodel AuthAuthorizationSessionsListRequest {\n clientId?: AuthClientId;\n deploymentId?: ulid;\n loginSessionId?: ulid;\n oauthGrantId?: ulid;\n page?: CursorQuery;\n principalId?: ulid;\n state?: AuthAuthorizationSessionState;\n}\n\ntype AuthAuthorizationSessionsListResponse = CursorPage<AuthAuthorizationSession>;\n\nenum AuthBindingKind {\n \"browser\";\n \"device\";\n \"native\";\n \"service\";\n}\n\nmodel AuthCapabilitiesListRequest {\n apiId?: AuthApiId;\n page?: CursorQuery;\n search?: AuthSearch;\n}\n\ntype AuthCapabilitiesListResponse = CursorPage<AuthCapabilityDefinition>;\n\nmodel AuthCapabilityChange {\n capabilityId: AuthCapabilityId;\n description: string;\n previousConsentRevision?: AuthRevision;\n previousIdentityGeneration?: AuthRevision;\n proposedConsentRevision?: AuthRevision;\n}\n\nmodel AuthCapabilityDefinition {\n allows: list<AuthActionSummary>;\n apiId: AuthApiId;\n consentRevision: AuthRevision;\n description: string;\n grants: string;\n identity: AuthCapabilityIdentity;\n kind: AuthCapabilityKind;\n members: list<string>;\n title: string;\n}\n\nmodel AuthCapabilityGrant {\n capability: AuthCapabilityIdentity;\n expiresAt?: timestamp;\n grantId: ulid;\n principalId: ulid;\n revision: AuthRevision;\n}\n\nmodel AuthCapabilityGrantRequest {\n capabilityId: AuthCapabilityId;\n expectedRevision: uint64;\n expiresAt?: timestamp;\n idempotencyKey: AuthIdempotencyKey;\n principalId: ulid;\n}\n\nmodel AuthCapabilityGrantResponse {\n enforcement?: AuthEnforcementProgress;\n grant: AuthCapabilityGrant;\n}\n\nmodel AuthCapabilityGrantsListRequest {\n capabilityId?: AuthCapabilityId;\n page?: CursorQuery;\n principalId?: ulid;\n}\n\ntype AuthCapabilityGrantsListResponse = CursorPage<AuthCapabilityGrant>;\n\ntype AuthCapabilityId = string(min_length=1, max_length=512);\n\nmodel AuthCapabilityIdentity {\n capabilityId: AuthCapabilityId;\n identityGeneration: AuthRevision;\n}\n\nenum AuthCapabilityKind {\n \"capability\";\n \"group\";\n}\n\nmodel AuthCapabilityRevokeRequest {\n expectedRevision: AuthRevision;\n grantId: ulid;\n idempotencyKey: AuthIdempotencyKey;\n}\n\nmodel AuthCapabilitySelection {\n optionalCapabilities: list<AuthCapabilityId>;\n requiredCapabilities: list<AuthCapabilityId>;\n}\n\nmodel AuthCapabilitySource {\n grantId?: ulid;\n kind: AuthCapabilitySourceKind;\n mappingId?: ulid;\n providerId?: ulid;\n roleId?: ulid;\n}\n\nenum AuthCapabilitySourceKind {\n \"administrator\";\n \"direct\";\n \"oidcRole\";\n \"role\";\n}\n\ntype AuthClientId = string(min_length=1, max_length=2048);\n\nmodel AuthConnectionsKickRequest {\n attachmentId: ulid;\n idempotencyKey: AuthIdempotencyKey;\n}\n\nmodel AuthConnectionsKickResponse {\n attachmentId: ulid;\n enforcement: AuthEnforcementProgress;\n}\n\nmodel AuthConnectionsListRequest {\n authorizationSessionId?: ulid;\n page?: CursorQuery;\n principalId?: ulid;\n state?: AuthAttachmentState;\n}\n\ntype AuthConnectionsListResponse = CursorPage<AuthAttachment>;\n\nmodel AuthConsentChoice {\n capability: AuthCapabilityIdentity;\n consentRevision: AuthRevision;\n decision: AuthDecision;\n expiresAt?: timestamp;\n}\n\nenum AuthCredentialKind {\n \"oauthGrant\";\n \"provisionedIdentity\";\n}\n\ntype AuthCursor = string(min_length=1, max_length=4096);\n\nenum AuthDecision {\n \"approved\";\n \"declined\";\n}\n\nmodel AuthDelegation {\n binding: AuthDelegationBinding;\n choices: list<AuthConsentChoice>;\n delegationId: ulid;\n principalId: ulid;\n revision: AuthRevision;\n}\n\nmodel AuthDelegationBinding {\n clientId: AuthClientId;\n durableDpopJkt?: string;\n kind: AuthPublicClientKind;\n origin?: string;\n}\n\nmodel AuthDelegationReviewRequest {\n delegationId: ulid;\n}\n\nmodel AuthDelegationReviewResponse {\n currentCapabilities: list<AuthCapabilityDefinition>;\n delegation: AuthDelegation;\n}\n\nmodel AuthDelegationRevokeRequest {\n delegationId: ulid;\n expectedRevision: AuthRevision;\n idempotencyKey: AuthIdempotencyKey;\n}\n\nmodel AuthDelegationsListRequest {\n clientId?: AuthClientId;\n page?: CursorQuery;\n principalId?: ulid;\n}\n\ntype AuthDelegationsListResponse = CursorPage<AuthDelegation>;\n\nmodel AuthDeployment {\n deploymentId: ulid;\n implementationDigest: AuthDigest;\n kind: AuthDeploymentKind;\n participantId: string;\n revision: AuthRevision;\n selection: AuthCapabilitySelection;\n state: AuthDeploymentState;\n title: string;\n}\n\nmodel AuthDeploymentApplyRequest {\n deploymentId: ulid;\n expectedRevision: AuthRevision;\n idempotencyKey: AuthIdempotencyKey;\n packageEvidence: AuthPackageEvidence;\n}\n\nmodel AuthDeploymentCreateRequest {\n idempotencyKey: AuthIdempotencyKey;\n kind: AuthDeploymentKind;\n packageEvidence: AuthPackageEvidence;\n participantId: string;\n title: AuthName;\n}\n\nmodel AuthDeploymentGetRequest {\n deploymentId: ulid;\n}\n\nmodel AuthDeploymentGetResponse {\n deployment: AuthDeployment;\n}\n\nenum AuthDeploymentKind {\n \"device\";\n \"service\";\n}\n\nmodel AuthDeploymentMutationRequest {\n deploymentId: ulid;\n expectedRevision: AuthRevision;\n idempotencyKey: AuthIdempotencyKey;\n}\n\nmodel AuthDeploymentMutationResponse {\n deployment: AuthDeployment;\n enforcement?: AuthEnforcementProgress;\n}\n\nenum AuthDeploymentState {\n \"disabled\";\n \"enabled\";\n \"removed\";\n}\n\ntype AuthDeploymentsListResponse = CursorPage<AuthDeployment>;\n\ntype AuthDescription = string(max_length=4096);\n\nmodel AuthDeviceCompanion {\n clientId: AuthClientId;\n instanceId: ulid;\n oauthGrantId: ulid;\n requestId: string;\n revision: AuthRevision;\n}\n\nmodel AuthDeviceCompanionAttachRequest {\n confirmationCode: AuthDeviceConfirmationCode;\n expectedRevision: AuthRevision;\n idempotencyKey: AuthIdempotencyKey;\n reviewId: ulid;\n}\n\nmodel AuthDeviceCompanionRevokeRequest {\n expectedRevision: AuthRevision;\n idempotencyKey: AuthIdempotencyKey;\n instanceId: ulid;\n}\n\ntype AuthDeviceConfirmationCode = string(min_length=8, max_length=8);\n\nmodel AuthDeviceEnrollmentRequest {\n challengeDigest: AuthDigest;\n confirmationCode: AuthDeviceConfirmationCode;\n connectionId: ulid;\n iat: AuthDeviceProofIssuedAt;\n identityKeyId: AuthDigest;\n identityPublicKey: AuthPublicKey;\n participantId: string;\n proof: AuthDeviceProof;\n provisioningSecret?: AuthDeviceProvisioningSecret;\n requestId: ulid;\n sessionKey: AuthPublicKey;\n sessionProof: AuthDeviceProof;\n}\n\nmodel AuthDeviceProof {\n format: string;\n signature: string;\n}\n\ntype AuthDeviceProofIssuedAt = number(min=0, max=9007199254740991);\n\ntype AuthDeviceProvisioningSecret = string(min_length=43, max_length=43);\n\nmodel AuthDeviceReview {\n companionClientId?: AuthClientId;\n companionRequestId?: string;\n companionRequired?: bool;\n deploymentId: ulid;\n expiresAt: timestamp;\n instanceId: ulid;\n participantId: string;\n reviewId: ulid;\n revision: AuthRevision;\n state: AuthDeviceReviewState;\n}\n\nmodel AuthDeviceReviewDecideRequest {\n confirmationCode: AuthDeviceConfirmationCode;\n decision: AuthDecision;\n expectedRevision: AuthRevision;\n idempotencyKey: AuthIdempotencyKey;\n reviewId: ulid;\n}\n\nmodel AuthDeviceReviewGetRequest {\n confirmationCode: AuthDeviceConfirmationCode;\n reviewId: ulid;\n}\n\nmodel AuthDeviceReviewResponse {\n review: AuthDeviceReview;\n}\n\nenum AuthDeviceReviewState {\n \"approved\";\n \"expired\";\n \"pending\";\n \"rejected\";\n}\n\ntype AuthDeviceReviewsListResponse = CursorPage<AuthDeviceReview>;\n\ntype AuthDigest = string(min_length=1, max_length=128);\n\nmodel AuthEffectiveAccessResponse {\n capabilities: list<AuthEffectiveCapability>;\n principal: AuthPrincipal;\n}\n\nmodel AuthEffectiveCapability {\n definition: AuthCapabilityDefinition;\n expiresAt?: timestamp;\n sources: list<AuthCapabilitySource>;\n}\n\nmodel AuthEmpty {\n}\n\nmodel AuthEnforcementProgress {\n failedKicks: uint64;\n pendingKicks: uint64;\n retiredSessions: uint64;\n scannedSessions: uint64;\n state: AuthEnforcementState;\n workId: ulid;\n}\n\nenum AuthEnforcementState {\n \"completed\";\n \"queued\";\n \"running\";\n}\n\nmodel AuthErrorDetails {\n code: AuthMachineCode;\n}\n\nmodel AuthEventConsumerEvidence {\n consumer: string;\n filterSubjects: list<string>;\n replayConsumer: string;\n stream: string;\n}\n\ntype AuthExistingPassword = string(max_length=512);\n\ntype AuthIdempotencyKey = string(min_length=1, max_length=256);\n\nmodel AuthIdentityLinkCreateRequest {\n idempotencyKey: AuthIdempotencyKey;\n providerId: ulid;\n}\n\nmodel AuthIdentityLinkCreateResponse {\n authorizationUrl: string;\n expiresAt: timestamp;\n}\n\nmodel AuthInstanceMutationRequest {\n expectedRevision: AuthRevision;\n idempotencyKey: AuthIdempotencyKey;\n instanceId: ulid;\n}\n\nmodel AuthInstanceMutationResponse {\n enforcement?: AuthEnforcementProgress;\n instance: AuthProvisionedInstance;\n}\n\nmodel AuthInstanceProvisionRequest {\n deploymentId: ulid;\n idempotencyKey: AuthIdempotencyKey;\n identityPublicKey?: AuthPublicKey;\n title: AuthName;\n}\n\nmodel AuthInstanceProvisionResponse {\n instance: AuthProvisionedInstance;\n provisioningSecret?: string;\n}\n\nmodel AuthInstancesListRequest {\n deploymentId?: ulid;\n page?: CursorQuery;\n}\n\ntype AuthInstancesListResponse = CursorPage<AuthProvisionedInstance>;\n\nmodel AuthIssuerRevokeRequest {\n idempotencyKey: AuthIdempotencyKey;\n keyId: AuthKeyId;\n}\n\nmodel AuthIssuerRevokeResponse {\n enforcement: AuthEnforcementProgress;\n keyId: AuthKeyId;\n}\n\nmodel AuthIssuerRotateRequest {\n expectedCurrentKeyId: AuthKeyId;\n idempotencyKey: AuthIdempotencyKey;\n}\n\nmodel AuthIssuerRotateResponse {\n keyId: AuthKeyId;\n rotation: AuthSignedBlob;\n}\n\nmodel AuthJobResourceEvidence {\n consumer: string;\n namespace: string;\n publishPrefix: string;\n workStream: string;\n workSubject: string;\n}\n\ntype AuthKeyId = string(min_length=1, max_length=128);\n\nenum AuthLoginMethod {\n \"local\";\n \"oidc\";\n}\n\nmodel AuthLoginRevokeRequest {\n idempotencyKey: AuthIdempotencyKey;\n loginSessionId: ulid;\n}\n\nmodel AuthLoginSession {\n claimFreshUntil?: timestamp;\n createdAt: timestamp;\n expiresAt: timestamp;\n loginSessionId: ulid;\n method: AuthLoginMethod;\n principalId: ulid;\n providerId?: ulid;\n state: AuthLoginState;\n}\n\nenum AuthLoginState {\n \"active\";\n \"revoked\";\n}\n\ntype AuthMachineCode = string(min_length=1, max_length=64);\n\nmodel AuthMutationResult {\n enforcement?: AuthEnforcementProgress;\n revision: AuthRevision;\n}\n\ntype AuthName = string(min_length=1, max_length=256);\n\nmodel AuthOAuthClient {\n clientId: AuthClientId;\n description: string;\n development: bool;\n enabled: bool;\n impliedConsent: list<AuthCapabilityId>;\n kind: AuthPublicClientKind;\n redirectUris: list<string>;\n revision: AuthRevision;\n title: string;\n}\n\nmodel AuthOAuthClientGetRequest {\n clientId: AuthClientId;\n}\n\nmodel AuthOAuthClientGetResponse {\n client: AuthOAuthClient;\n}\n\nmodel AuthOAuthClientMutationRequest {\n clientId: AuthClientId;\n expectedRevision: AuthRevision;\n idempotencyKey: AuthIdempotencyKey;\n}\n\nmodel AuthOAuthClientPutRequest {\n clientId: AuthClientId;\n description: AuthDescription;\n development: bool;\n expectedRevision: uint64;\n idempotencyKey: AuthIdempotencyKey;\n impliedConsent: list<AuthCapabilityId>;\n kind: AuthPublicClientKind;\n redirectUris: list<string>;\n title: AuthName;\n}\n\ntype AuthOAuthClientsListResponse = CursorPage<AuthOAuthClient>;\n\nmodel AuthOIDCProvider {\n claimFreshnessSeconds: AuthPositiveSeconds;\n clientId: string;\n enabled: bool;\n hasClientSecret: bool;\n issuer: string;\n providerId: ulid;\n revision: AuthRevision;\n roleClaim: string;\n scopes: list<string>;\n title: string;\n}\n\nmodel AuthOIDCProviderGetRequest {\n providerId: ulid;\n}\n\nmodel AuthOIDCProviderGetResponse {\n provider: AuthOIDCProvider;\n}\n\nmodel AuthOIDCProviderMutationRequest {\n expectedRevision: AuthRevision;\n idempotencyKey: AuthIdempotencyKey;\n providerId: ulid;\n}\n\nmodel AuthOIDCProviderPutRequest {\n claimFreshnessSeconds: AuthPositiveSeconds;\n clientId: string;\n clientSecret?: string;\n expectedRevision: uint64;\n idempotencyKey: AuthIdempotencyKey;\n issuer: string;\n providerId?: ulid;\n roleClaim: string;\n scopes: list<string>;\n title: AuthName;\n}\n\ntype AuthOIDCProvidersListResponse = CursorPage<AuthOIDCProvider>;\n\nmodel AuthOIDCRoleMapping {\n externalRole: string;\n mappingId: ulid;\n providerId: ulid;\n revision: AuthRevision;\n roleIds: list<ulid>;\n}\n\nmodel AuthOIDCRoleMappingDeleteRequest {\n expectedRevision: AuthRevision;\n idempotencyKey: AuthIdempotencyKey;\n mappingId: ulid;\n}\n\nmodel AuthOIDCRoleMappingPutRequest {\n expectedRevision: uint64;\n externalRole: AuthName;\n idempotencyKey: AuthIdempotencyKey;\n mappingId?: ulid;\n providerId: ulid;\n roleIds: list<ulid>;\n}\n\nmodel AuthOIDCRoleMappingPutResponse {\n enforcement?: AuthEnforcementProgress;\n mapping: AuthOIDCRoleMapping;\n}\n\nmodel AuthOIDCRoleMappingsListRequest {\n page?: CursorQuery;\n providerId: ulid;\n}\n\ntype AuthOIDCRoleMappingsListResponse = CursorPage<AuthOIDCRoleMapping>;\n\nmodel AuthPackageEvidence {\n packages: list<AuthPackageSourceEvidence>;\n rootDigest: AuthDigest;\n rootPackage: AuthName;\n}\n\nmodel AuthPackageSourceEvidence {\n digest: AuthDigest;\n name: AuthName;\n source: string;\n version: AuthShortName;\n}\n\nmodel AuthPageRequest {\n page?: CursorQuery;\n search?: AuthSearch;\n}\n\ntype AuthPassword = string(min_length=8, max_length=512);\n\nmodel AuthPasswordChangeRequest {\n currentPassword: AuthExistingPassword;\n idempotencyKey: AuthIdempotencyKey;\n newPassword: AuthPassword;\n}\n\nmodel AuthPasswordResetCreateRequest {\n idempotencyKey: AuthIdempotencyKey;\n userId: ulid;\n}\n\nmodel AuthPasswordResetCreateResponse {\n expiresAt: timestamp;\n token: string;\n}\n\ntype AuthPath = string(min_length=1, max_length=4096);\n\ntype AuthPositiveSeconds = uint32(min=1);\n\nmodel AuthPrincipal {\n createdAt: timestamp;\n enabled: bool;\n kind: AuthPrincipalKind;\n principalId: ulid;\n revision: AuthRevision;\n title: string;\n}\n\nenum AuthPrincipalKind {\n \"device\";\n \"service\";\n \"user\";\n}\n\nmodel AuthPrincipalRequest {\n principalId: ulid;\n}\n\nmodel AuthProvisionedInstance {\n deploymentId: ulid;\n identityPublicKey?: AuthPublicKey;\n instanceId: ulid;\n principal: AuthPrincipal;\n revision: AuthRevision;\n}\n\nenum AuthPublicClientKind {\n \"browser\";\n \"native\";\n}\n\ntype AuthPublicKey = string(min_length=43, max_length=43);\n\nmodel AuthResourceBinding {\n browserOrigin?: string;\n clientId?: string;\n kind: AuthResourceKind;\n localName: string;\n ownerId: ulid;\n ownerKind: AuthResourceOwnerKind;\n participantId?: string;\n resourceId: AuthDigest;\n revision: AuthRevision;\n state: AuthResourceState;\n}\n\nmodel AuthResourceBindingsQueryRequest {\n instanceId?: ulid;\n kind: AuthResourceEvidenceKind;\n localName?: string;\n ownerId?: ulid;\n page?: CursorQuery;\n participantId?: string;\n resourceId?: AuthDigest;\n}\n\ntype AuthResourceBindingsQueryResponse = CursorPage<AuthResourceEvidence>;\n\nmodel AuthResourceEvidence {\n eventConsumer?: AuthEventConsumerEvidence;\n installedRevision: AuthRevision;\n job?: AuthJobResourceEvidence;\n kind: AuthResourceEvidenceKind;\n localName: string;\n ownerId: ulid;\n participantId: string;\n resourceBindingsDigest?: AuthDigest;\n resourceId: AuthDigest;\n state: AuthResourceEvidenceState;\n}\n\nenum AuthResourceEvidenceKind {\n \"eventConsumer\";\n \"jobQueue\";\n}\n\nenum AuthResourceEvidenceState {\n \"available\";\n \"stale\";\n \"unavailable\";\n}\n\nmodel AuthResourceGetRequest {\n resourceId: AuthDigest;\n}\n\nmodel AuthResourceGetResponse {\n resource: AuthResourceBinding;\n}\n\nenum AuthResourceKind {\n \"eventConsumer\";\n \"job\";\n \"kv\";\n \"state\";\n \"store\";\n}\n\nenum AuthResourceOwnerKind {\n \"deployment\";\n \"user\";\n}\n\nmodel AuthResourceRemoveRequest {\n expectedRevision: AuthRevision;\n idempotencyKey: AuthIdempotencyKey;\n resourceId: AuthDigest;\n}\n\nenum AuthResourceState {\n \"destroying\";\n \"detached\";\n \"failed\";\n \"pending\";\n \"ready\";\n}\n\nmodel AuthResourcesListRequest {\n ownerId?: ulid;\n ownerKind?: AuthResourceOwnerKind;\n page?: CursorQuery;\n state?: AuthResourceState;\n}\n\ntype AuthResourcesListResponse = CursorPage<AuthResourceBinding>;\n\nmodel AuthReviewedMappingEdit {\n expectedRevision: AuthRevision;\n mappingId: ulid;\n roleIds: list<ulid>;\n}\n\nmodel AuthReviewedRoleEdit {\n capabilityIds: list<AuthCapabilityId>;\n expectedRevision: AuthRevision;\n roleId: ulid;\n}\n\ntype AuthRevision = uint64(min=1);\n\nenum AuthRevocationReason {\n \"apiForceReplacement\";\n \"credentialRevoked\";\n \"deploymentDisabled\";\n \"explicitRevoke\";\n \"issuerCompromised\";\n \"loginExpired\";\n \"logout\";\n \"oauthFamilyRevoked\";\n \"policyReduced\";\n}\n\nmodel AuthRole {\n capabilities: list<AuthCapabilityIdentity>;\n description: string;\n identityGeneration: AuthRevision;\n revision: AuthRevision;\n roleId: ulid;\n title: string;\n}\n\nmodel AuthRoleAssignRequest {\n expectedRevision: uint64;\n expiresAt?: timestamp;\n idempotencyKey: AuthIdempotencyKey;\n principalId: ulid;\n roleId: ulid;\n}\n\nmodel AuthRoleAssignResponse {\n assignment: AuthRoleAssignment;\n enforcement?: AuthEnforcementProgress;\n}\n\nmodel AuthRoleAssignment {\n assignmentId: ulid;\n expiresAt?: timestamp;\n principalId: ulid;\n revision: AuthRevision;\n roleId: ulid;\n roleIdentityGeneration: AuthRevision;\n}\n\nmodel AuthRoleAssignmentsListRequest {\n page?: CursorQuery;\n principalId?: ulid;\n roleId?: ulid;\n}\n\ntype AuthRoleAssignmentsListResponse = CursorPage<AuthRoleAssignment>;\n\nmodel AuthRoleDeleteRequest {\n expectedRevision: AuthRevision;\n idempotencyKey: AuthIdempotencyKey;\n roleId: ulid;\n}\n\nmodel AuthRoleGetRequest {\n roleId: ulid;\n}\n\nmodel AuthRoleGetResponse {\n role: AuthRole;\n}\n\nmodel AuthRolePutRequest {\n capabilityIds: list<AuthCapabilityId>;\n description: AuthDescription;\n expectedRevision: uint64;\n idempotencyKey: AuthIdempotencyKey;\n roleId?: ulid;\n title: AuthName;\n}\n\nmodel AuthRolePutResponse {\n enforcement?: AuthEnforcementProgress;\n role: AuthRole;\n}\n\nmodel AuthRoleRevokeRequest {\n assignmentId: ulid;\n expectedRevision: AuthRevision;\n idempotencyKey: AuthIdempotencyKey;\n}\n\ntype AuthRolesListResponse = CursorPage<AuthRole>;\n\nmodel AuthRuntimeBinding {\n clientId?: AuthClientId;\n deploymentId?: ulid;\n durableDpopJkt?: string;\n instanceId?: ulid;\n kind: AuthBindingKind;\n origin?: string;\n participantId?: string;\n}\n\ntype AuthSearch = string(max_length=256);\n\nmodel AuthSecurityEvent {\n attachmentId?: ulid;\n authorizationSessionId?: ulid;\n enforcement?: AuthEnforcementProgress;\n eventId: ulid;\n issuerKeyId?: AuthKeyId;\n occurredAt: timestamp;\n principalId?: ulid;\n}\n\ntype AuthSessionsListResponse = CursorPage<AuthLoginSession>;\n\nmodel AuthSessionsLogoutResponse {\n enforcement: AuthEnforcementProgress;\n loginSessionId: ulid;\n}\n\nmodel AuthSessionsMeResponse {\n authorizationSessionId: ulid;\n login?: AuthLoginSession;\n principal: AuthPrincipal;\n}\n\ntype AuthShortName = string(min_length=1, max_length=128);\n\ntype AuthSignedBlob = bytes;\n\nmodel AuthUser {\n account?: AuthUserAccountDetails;\n avatarUrl?: string;\n displayName: string;\n email?: string;\n emailVerified: bool;\n familyName?: string;\n givenName?: string;\n principalId: ulid;\n}\n\nmodel AuthUserAccountDetails {\n gravatarEnabled: bool;\n hasLocalPassword: bool;\n principal: AuthPrincipal;\n profileRevision: AuthRevision;\n username: string;\n}\n\nmodel AuthUserCreateRequest {\n displayName: AuthName;\n email?: string;\n familyName?: AuthName;\n givenName?: AuthName;\n idempotencyKey: AuthIdempotencyKey;\n password?: AuthPassword;\n username: AuthName;\n}\n\nmodel AuthUserGetRequest {\n userId: ulid;\n}\n\nmodel AuthUserGetResponse {\n user: AuthUser;\n}\n\ntype AuthUserIdentitiesListResponse = CursorPage<AuthUserIdentity>;\n\nmodel AuthUserIdentity {\n identityId: ulid;\n issuer: string;\n linkedAt: timestamp;\n providerId: ulid;\n subject: string;\n}\n\nmodel AuthUserIdentityUnlinkRequest {\n idempotencyKey: AuthIdempotencyKey;\n identityId: ulid;\n}\n\nmodel AuthUserProfileUpdateRequest {\n avatarOverrideUrl?: string;\n clearAvatarOverride?: bool;\n clearEmail?: bool;\n displayName?: AuthName;\n email?: string;\n expectedRevision: AuthRevision;\n familyName?: AuthName;\n givenName?: AuthName;\n gravatarEnabled?: bool;\n idempotencyKey: AuthIdempotencyKey;\n}\n\nmodel AuthUserUpdateRequest {\n clearEmail?: bool;\n displayName?: AuthName;\n email?: string;\n enabled: bool;\n expectedProfileRevision?: AuthRevision;\n expectedRevision: AuthRevision;\n familyName?: AuthName;\n givenName?: AuthName;\n idempotencyKey: AuthIdempotencyKey;\n userId: ulid;\n}\n\ntype AuthUsersListResponse = CursorPage<AuthUser>;\n\nmodel Empty {\n}\n\nmodel EventConsumerStatusRow {\n ackPending: int64;\n ackWaitMs?: int64;\n consumerName: string;\n contractId?: string;\n deploymentId?: string;\n filterSubjects: list<string>;\n group?: string;\n managedBy?: EventConsumerStatusRowManagedBy;\n maxDeliver?: int64;\n oldestPendingAt?: string;\n oldestPendingEventId?: string;\n pending: int64;\n redelivered?: int64;\n resourceId: string;\n status: EventConsumerStatusRowStatus;\n stream: string;\n waitingPulls: int64;\n}\n\nenum EventConsumerStatusRowManagedBy {\n \"authority\";\n \"external\";\n \"platform\";\n}\n\nenum EventConsumerStatusRowStatus {\n \"behind\";\n \"current\";\n \"failing\";\n \"inactive\";\n \"missing\";\n \"orphaned\";\n \"processing\";\n \"saturated\";\n}\n\nmodel EventsConsumersInspectRequest {\n resourceId: string;\n}\n\nmodel EventsConsumersInspectResponse {\n consumer: EventConsumerStatusRow;\n}\n\nmodel EventsConsumersQueryRequest {\n contractId?: string;\n deploymentId?: string;\n ownerContractId?: string;\n page?: CursorQuery;\n resourceId?: string;\n status?: list<EventsConsumersQueryRequestStatus>;\n subject?: string;\n}\n\ntype EventsConsumersQueryRequestLimit = int64(min=1, max=500);\n\nenum EventsConsumersQueryRequestStatus {\n \"behind\";\n \"current\";\n \"failing\";\n \"inactive\";\n \"missing\";\n \"orphaned\";\n \"processing\";\n \"saturated\";\n}\n\ntype EventsConsumersQueryResponse = CursorPage<EventConsumerStatusRow>;\n\nmodel EventsConsumersReportDeliveryRequest {\n deliveryCount: uint32;\n deliveryProof: string;\n error?: string;\n outcome: EventsDeliveryOutcome;\n replayGeneration?: uint32;\n resourceId: string;\n sourceSequence: uint64;\n sourceStream: string;\n}\n\nmodel EventsConsumersReportDeliveryResponse {\n deadLetter?: EventsDeadLetter;\n stale: bool;\n}\n\nmodel EventsDeadLetter {\n deadLetterId: string;\n deliveries: uint32;\n generation: uint32;\n lastError?: string;\n originalSequence: uint64;\n originalStream: string;\n resourceId: string;\n revision: uint64;\n state: EventsDeadLetterState;\n updatedAt: string;\n}\n\nmodel EventsDeadLetterCounts {\n dead: uint64;\n dismissed: uint64;\n replayPending: uint64;\n replaying: uint64;\n resolved: uint64;\n}\n\nmodel EventsDeadLetterDetail {\n deadLetter: EventsDeadLetter;\n originalHeaders: map<string>;\n originalPayload: bytes;\n originalPublishedAt: string;\n originalSubject: string;\n transitionReferences: list<uint64>;\n verificationStatus: EventsDeadLetterVerificationStatus;\n}\n\nenum EventsDeadLetterState {\n \"dead\";\n \"dismissed\";\n \"replayPending\";\n \"replaying\";\n \"resolved\";\n}\n\nenum EventsDeadLetterVerificationStatus {\n \"invalid\";\n \"revoked\";\n \"unavailable\";\n \"verified\";\n}\n\nmodel EventsDeadLettersDismissRequest {\n deadLetterId: string;\n expectedRevision: uint64;\n requestId: string;\n resourceId: string;\n}\n\nmodel EventsDeadLettersDismissResponse {\n deadLetter: EventsDeadLetter;\n}\n\nmodel EventsDeadLettersInspectRequest {\n deadLetterId: string;\n resourceId: string;\n}\n\nmodel EventsDeadLettersInspectResponse {\n deadLetter: EventsDeadLetterDetail;\n}\n\nmodel EventsDeadLettersQueryRequest {\n page?: CursorQuery;\n resourceId?: string;\n state?: list<EventsDeadLetterState>;\n}\n\ntype EventsDeadLettersQueryResponse = CursorPage<EventsDeadLetter>;\n\nmodel EventsDeadLettersReplayRequest {\n deadLetterId: string;\n expectedRevision: uint64;\n requestId: string;\n resourceId: string;\n}\n\nmodel EventsDeadLettersReplayResponse {\n deadLetter: EventsDeadLetter;\n}\n\nenum EventsDeliveryOutcome {\n \"exhausted\";\n \"succeeded\";\n \"unreplayable\";\n}\n\nmodel EventsDiagnosticsRequest {\n}\n\nmodel EventsDiagnosticsResponse {\n asOf: string;\n completeSince?: string;\n gapDetected: bool;\n lastStreamSequence: uint64;\n retainedFrom?: string;\n revision: uint64;\n}\n\nmodel EventsErrorData {\n code: string;\n currentRevision?: uint64;\n deadLetterId?: string;\n resourceId?: string;\n}\n\nmodel EventsEventDetail {\n headers: map<string>;\n payload: bytes;\n row: EventsRow;\n}\n\nmodel EventsInspectRequest {\n eventId?: string;\n streamSequence?: int64;\n}\n\nmodel EventsInspectResponse {\n event: EventsEventDetail;\n}\n\nmodel EventsMetricsRequest {\n resourceId?: string;\n window?: string;\n}\n\nmodel EventsMetricsResponse {\n buckets: list<EventsMetricsResponseBucketsItem>;\n summary: EventsMetricsResponseSummary;\n}\n\nmodel EventsMetricsResponseBucketsItem {\n byResolution: EventsMetricsResponseBucketsItemByResolution;\n byVerificationStatus: EventsMetricsResponseBucketsItemByVerificationStatus;\n integrityExceptions: int64;\n payloadSizeBytes: int64;\n start: string;\n total: int64;\n}\n\nmodel EventsMetricsResponseBucketsItemByResolution {\n malformed?: int64;\n resolved?: int64;\n unresolved?: int64;\n}\n\nmodel EventsMetricsResponseBucketsItemByVerificationStatus {\n authUnavailable?: int64;\n invalidSignature?: int64;\n missingProof?: int64;\n missingSession?: int64;\n outsideSessionWindow?: int64;\n subjectDenied?: int64;\n verified?: int64;\n}\n\nmodel EventsMetricsResponseSummary {\n byResolution: EventsMetricsResponseSummaryByResolution;\n byVerificationStatus: EventsMetricsResponseSummaryByVerificationStatus;\n deadLettersByState: EventsDeadLetterCounts;\n eventTypes: list<EventsMetricsResponseSummaryEventTypesItem>;\n integrityExceptions: int64;\n payloadSizeBytes: int64;\n total: int64;\n uniqueSubjects: int64;\n}\n\nmodel EventsMetricsResponseSummaryByResolution {\n malformed?: int64;\n resolved?: int64;\n unresolved?: int64;\n}\n\nmodel EventsMetricsResponseSummaryByVerificationStatus {\n authUnavailable?: int64;\n invalidSignature?: int64;\n missingProof?: int64;\n missingSession?: int64;\n outsideSessionWindow?: int64;\n subjectDenied?: int64;\n verified?: int64;\n}\n\nmodel EventsMetricsResponseSummaryEventTypesItem {\n count: int64;\n ownerContractId: string;\n ownerEventName: string;\n}\n\nmodel EventsNotFoundErrorData {\n context?: EventsNotFoundErrorDataContext;\n id: string;\n message: string;\n type: EventsNotFoundErrorDataType;\n}\n\nmodel EventsNotFoundErrorDataContext {\n eventId?: string;\n resourceId?: string;\n streamSequence?: uint64;\n}\n\nenum EventsNotFoundErrorDataType {\n \"NotFoundError\";\n}\n\nmodel EventsQueryRequest {\n consumerDeploymentId?: string;\n consumerName?: string;\n excludeEventTypes?: list<EventsQueryRequestExcludeEventTypesItem>;\n includeEventTypes?: list<EventsQueryRequestIncludeEventTypesItem>;\n integrityExceptionOnly?: bool;\n ownerContractId?: string;\n ownerEventName?: string;\n page?: CursorQuery;\n publisherDeploymentId?: string;\n publisherParticipantId?: string;\n resolution?: list<EventsQueryRequestResolution>;\n search?: string;\n sort?: EventsQueryRequestSort;\n subject?: string;\n verificationStatus?: list<EventsQueryRequestVerificationStatus>;\n window?: string;\n}\n\nmodel EventsQueryRequestExcludeEventTypesItem {\n ownerContractId: string;\n ownerEventName: string;\n}\n\nmodel EventsQueryRequestIncludeEventTypesItem {\n ownerContractId: string;\n ownerEventName: string;\n}\n\ntype EventsQueryRequestLimit = int64(min=1, max=500);\n\nenum EventsQueryRequestResolution {\n \"malformed\";\n \"resolved\";\n \"unresolved\";\n}\n\nmodel EventsQueryRequestSort {\n direction: EventsSortDirection;\n field: EventsSortField;\n}\n\nenum EventsQueryRequestVerificationStatus {\n \"verified\";\n}\n\ntype EventsQueryResponse = CursorPage<EventsRow>;\n\nmodel EventsRow {\n eventId: string;\n eventTime: string;\n headerCount: int64;\n ownerContractId?: string;\n ownerEventName?: string;\n payloadSizeBytes: int64;\n publisherDeploymentId?: string;\n publisherInstanceId?: string;\n publisherKind?: EventsRowPublisherKind;\n publisherParticipantDigest?: string;\n publisherParticipantId?: string;\n resolution: EventsRowResolution;\n streamSequence: int64;\n subject: string;\n traceId?: string;\n verificationStatus: EventsRowVerificationStatus;\n}\n\nenum EventsRowPublisherKind {\n \"device\";\n \"service\";\n \"user\";\n}\n\nenum EventsRowResolution {\n \"malformed\";\n \"resolved\";\n \"unresolved\";\n}\n\nenum EventsRowVerificationStatus {\n \"verified\";\n}\n\nenum EventsSortDirection {\n \"asc\";\n \"desc\";\n}\n\nenum EventsSortField {\n \"eventTime\";\n \"payloadSize\";\n \"streamSequence\";\n}\n\nmodel EventsWatchFrame {\n events: list<EventsEventDetail>;\n lastStreamSequence: uint64;\n}\n\nmodel EventsWatchRequest {\n consumerDeploymentId?: string;\n consumerName?: string;\n excludeEventTypes?: list<EventsQueryRequestExcludeEventTypesItem>;\n includeEventTypes?: list<EventsQueryRequestIncludeEventTypesItem>;\n ownerContractId?: string;\n ownerEventName?: string;\n publisherDeploymentId?: string;\n publisherParticipantId?: string;\n resourceId?: string;\n subject?: string;\n}\n\nmodel HealthHeartbeatSample {\n checks: list<HealthHeartbeatSampleChecksItem>;\n participant: HealthHeartbeatSampleParticipant;\n reportedStatus: HealthHeartbeatSampleReportedStatus;\n sample: HealthHeartbeatSampleSample;\n summary?: HealthHeartbeatSampleSummary;\n}\n\nmodel HealthHeartbeatSampleChecksItem {\n error?: HealthHeartbeatSampleChecksItemError;\n info?: HealthHeartbeatSampleChecksItemInfo;\n latencyMs: HealthHeartbeatSampleChecksItemLatencyMs;\n name: HealthHeartbeatSampleChecksItemName;\n status: HealthHeartbeatSampleChecksItemStatus;\n summary?: HealthHeartbeatSampleChecksItemSummary;\n}\n\ntype HealthHeartbeatSampleChecksItemError = string(max_length=1024);\n\nmodel HealthHeartbeatSampleChecksItemInfo {\n}\n\ntype HealthHeartbeatSampleChecksItemLatencyMs = number(min=0, max=3600000);\n\ntype HealthHeartbeatSampleChecksItemName = string(min_length=1, max_length=128);\n\nenum HealthHeartbeatSampleChecksItemStatus {\n \"failed\";\n \"ok\";\n}\n\ntype HealthHeartbeatSampleChecksItemSummary = string(max_length=1024);\n\nmodel HealthHeartbeatSampleParticipant {\n contractDigest: HealthHeartbeatSampleParticipantContractDigest;\n contractId: HealthHeartbeatSampleParticipantContractId;\n info?: HealthHeartbeatSampleParticipantInfo;\n instanceId: HealthHeartbeatSampleParticipantInstanceId;\n kind: HealthHeartbeatSampleParticipantKind;\n name: HealthHeartbeatSampleParticipantName;\n publishIntervalMs: HealthHeartbeatSampleParticipantPublishIntervalMs;\n runtime: HealthHeartbeatSampleParticipantRuntime;\n runtimeVersion?: HealthHeartbeatSampleParticipantRuntimeVersion;\n startedAt: string;\n version?: HealthHeartbeatSampleParticipantVersion;\n}\n\ntype HealthHeartbeatSampleParticipantContractDigest = string(min_length=1, max_length=256);\n\ntype HealthHeartbeatSampleParticipantContractId = string(min_length=1, max_length=256);\n\nmodel HealthHeartbeatSampleParticipantInfo {\n}\n\ntype HealthHeartbeatSampleParticipantInstanceId = string(min_length=1, max_length=128);\n\nenum HealthHeartbeatSampleParticipantKind {\n \"device\";\n \"service\";\n}\n\ntype HealthHeartbeatSampleParticipantName = string(min_length=1, max_length=256);\n\ntype HealthHeartbeatSampleParticipantPublishIntervalMs = int64(min=1000, max=600000);\n\nenum HealthHeartbeatSampleParticipantRuntime {\n \"deno\";\n \"node\";\n \"rust\";\n}\n\ntype HealthHeartbeatSampleParticipantRuntimeVersion = string(max_length=256);\n\ntype HealthHeartbeatSampleParticipantVersion = string(max_length=256);\n\nenum HealthHeartbeatSampleReportedStatus {\n \"degraded\";\n \"healthy\";\n \"unhealthy\";\n}\n\nmodel HealthHeartbeatSampleSample {\n id: string;\n time: string;\n}\n\ntype HealthHeartbeatSampleSummary = string(max_length=1024);\n\nmodel HealthInspectRequest {\n contractId: HealthInspectRequestContractId;\n historyLimit?: HealthInspectRequestHistoryLimit;\n historySince?: string;\n instanceId?: HealthInspectRequestInstanceId;\n participantKind: HealthInspectRequestParticipantKind;\n}\n\ntype HealthInspectRequestContractId = string(min_length=1, max_length=256);\n\ntype HealthInspectRequestHistoryLimit = int64(min=1, max=500);\n\ntype HealthInspectRequestInstanceId = string(min_length=1, max_length=128);\n\nenum HealthInspectRequestParticipantKind {\n \"device\";\n \"service\";\n}\n\nmodel HealthInspectResponse {\n asOf: string;\n history: list<HealthInspectResponseHistoryItem>;\n instances: list<HealthInspectResponseInstancesItem>;\n participant: HealthInspectResponseParticipant;\n projection: HealthInspectResponseProjection;\n}\n\nmodel HealthInspectResponseHistoryItem {\n checks: list<HealthInspectResponseHistoryItemChecksItem>;\n effectiveStatus: HealthInspectResponseHistoryItemEffectiveStatus;\n endedAt?: string;\n instanceId: string;\n intervalId: HealthInspectResponseHistoryItemIntervalId;\n reason: string;\n reportedStatus: HealthInspectResponseHistoryItemReportedStatus;\n startedAt: string;\n}\n\nmodel HealthInspectResponseHistoryItemChecksItem {\n name: string;\n status: HealthInspectResponseHistoryItemChecksItemStatus;\n}\n\nenum HealthInspectResponseHistoryItemChecksItemStatus {\n \"failed\";\n \"ok\";\n}\n\nenum HealthInspectResponseHistoryItemEffectiveStatus {\n \"degraded\";\n \"healthy\";\n \"offline\";\n \"unhealthy\";\n}\n\ntype HealthInspectResponseHistoryItemIntervalId = int64(min=1);\n\nenum HealthInspectResponseHistoryItemReportedStatus {\n \"degraded\";\n \"healthy\";\n \"unhealthy\";\n}\n\nmodel HealthInspectResponseInstancesItem {\n ageMs: uint64;\n contractDigest: string;\n deploymentId: string;\n effectiveStatus: HealthInspectResponseInstancesItemEffectiveStatus;\n heartbeatDeadline: string;\n instanceId: string;\n latestSample: HealthInspectResponseInstancesItemLatestSample;\n observedAt: string;\n reportedStatus: HealthInspectResponseInstancesItemReportedStatus;\n startedAt: string;\n}\n\nenum HealthInspectResponseInstancesItemEffectiveStatus {\n \"degraded\";\n \"healthy\";\n \"offline\";\n \"unhealthy\";\n}\n\nmodel HealthInspectResponseInstancesItemLatestSample {\n checks: list<HealthInspectResponseInstancesItemLatestSampleChecksItem>;\n participant: HealthInspectResponseInstancesItemLatestSampleParticipant;\n reportedStatus: HealthInspectResponseInstancesItemLatestSampleReportedStatus;\n sample: HealthInspectResponseInstancesItemLatestSampleSample;\n summary?: HealthInspectResponseInstancesItemLatestSampleSummary;\n}\n\nmodel HealthInspectResponseInstancesItemLatestSampleChecksItem {\n error?: HealthInspectResponseInstancesItemLatestSampleChecksItemError;\n info?: HealthInspectResponseInstancesItemLatestSampleChecksItemInfo;\n latencyMs: HealthInspectResponseInstancesItemLatestSampleChecksItemLatencyMs;\n name: HealthInspectResponseInstancesItemLatestSampleChecksItemName;\n status: HealthInspectResponseInstancesItemLatestSampleChecksItemStatus;\n summary?: HealthInspectResponseInstancesItemLatestSampleChecksItemSummary;\n}\n\ntype HealthInspectResponseInstancesItemLatestSampleChecksItemError = string(max_length=1024);\n\nmodel HealthInspectResponseInstancesItemLatestSampleChecksItemInfo {\n}\n\ntype HealthInspectResponseInstancesItemLatestSampleChecksItemLatencyMs = number(min=0, max=3600000);\n\ntype HealthInspectResponseInstancesItemLatestSampleChecksItemName = string(min_length=1, max_length=128);\n\nenum HealthInspectResponseInstancesItemLatestSampleChecksItemStatus {\n \"failed\";\n \"ok\";\n}\n\ntype HealthInspectResponseInstancesItemLatestSampleChecksItemSummary = string(max_length=1024);\n\nmodel HealthInspectResponseInstancesItemLatestSampleParticipant {\n contractDigest: HealthInspectResponseInstancesItemLatestSampleParticipantContractDigest;\n contractId: HealthInspectResponseInstancesItemLatestSampleParticipantContractId;\n info?: HealthInspectResponseInstancesItemLatestSampleParticipantInfo;\n instanceId: HealthInspectResponseInstancesItemLatestSampleParticipantInstanceId;\n kind: HealthInspectResponseInstancesItemLatestSampleParticipantKind;\n name: HealthInspectResponseInstancesItemLatestSampleParticipantName;\n publishIntervalMs: HealthInspectResponseInstancesItemLatestSampleParticipantPublishIntervalMs;\n runtime: HealthInspectResponseInstancesItemLatestSampleParticipantRuntime;\n runtimeVersion?: HealthInspectResponseInstancesItemLatestSampleParticipantRuntimeVersion;\n startedAt: string;\n version?: HealthInspectResponseInstancesItemLatestSampleParticipantVersion;\n}\n\ntype HealthInspectResponseInstancesItemLatestSampleParticipantContractDigest = string(min_length=1, max_length=256);\n\ntype HealthInspectResponseInstancesItemLatestSampleParticipantContractId = string(min_length=1, max_length=256);\n\nmodel HealthInspectResponseInstancesItemLatestSampleParticipantInfo {\n}\n\ntype HealthInspectResponseInstancesItemLatestSampleParticipantInstanceId = string(min_length=1, max_length=128);\n\nenum HealthInspectResponseInstancesItemLatestSampleParticipantKind {\n \"device\";\n \"service\";\n}\n\ntype HealthInspectResponseInstancesItemLatestSampleParticipantName = string(min_length=1, max_length=256);\n\ntype HealthInspectResponseInstancesItemLatestSampleParticipantPublishIntervalMs = int64(min=1000, max=600000);\n\nenum HealthInspectResponseInstancesItemLatestSampleParticipantRuntime {\n \"deno\";\n \"node\";\n \"rust\";\n}\n\ntype HealthInspectResponseInstancesItemLatestSampleParticipantRuntimeVersion = string(max_length=256);\n\ntype HealthInspectResponseInstancesItemLatestSampleParticipantVersion = string(max_length=256);\n\nenum HealthInspectResponseInstancesItemLatestSampleReportedStatus {\n \"degraded\";\n \"healthy\";\n \"unhealthy\";\n}\n\nmodel HealthInspectResponseInstancesItemLatestSampleSample {\n id: string;\n time: string;\n}\n\ntype HealthInspectResponseInstancesItemLatestSampleSummary = string(max_length=1024);\n\nenum HealthInspectResponseInstancesItemReportedStatus {\n \"degraded\";\n \"healthy\";\n \"unhealthy\";\n}\n\nmodel HealthInspectResponseParticipant {\n contractId: string;\n effectiveStatus: HealthInspectResponseParticipantEffectiveStatus;\n offlineInstances: uint64;\n onlineInstances: uint64;\n participantKind: HealthInspectResponseParticipantParticipantKind;\n participantName: string;\n}\n\nenum HealthInspectResponseParticipantEffectiveStatus {\n \"degraded\";\n \"healthy\";\n \"offline\";\n \"unhealthy\";\n}\n\nenum HealthInspectResponseParticipantParticipantKind {\n \"device\";\n \"service\";\n}\n\nmodel HealthInspectResponseProjection {\n completeSince?: string;\n gapDetected: bool;\n lastStreamSequence: uint64;\n retainedFrom?: string;\n revision: uint64;\n}\n\nmodel HealthMetricsRequest {\n checkNames?: list<HealthMetricsRequestCheckNamesItem>;\n contractId: HealthMetricsRequestContractId;\n end: string;\n instanceIds?: list<HealthMetricsRequestInstanceIdsItem>;\n participantKind: HealthMetricsRequestParticipantKind;\n start: string;\n stepMs: HealthMetricsRequestStepMs;\n}\n\ntype HealthMetricsRequestCheckNamesItem = string(min_length=1, max_length=128);\n\ntype HealthMetricsRequestContractId = string(min_length=1, max_length=256);\n\ntype HealthMetricsRequestInstanceIdsItem = string(min_length=1, max_length=128);\n\nenum HealthMetricsRequestParticipantKind {\n \"device\";\n \"service\";\n}\n\ntype HealthMetricsRequestStepMs = int64(min=300000);\n\nmodel HealthMetricsResponse {\n asOf: string;\n projection: HealthMetricsResponseProjection;\n series: list<HealthMetricsResponseSeriesItem>;\n summary: HealthMetricsResponseSummary;\n}\n\nmodel HealthMetricsResponseProjection {\n completeSince?: string;\n gapDetected: bool;\n lastStreamSequence: uint64;\n retainedFrom?: string;\n revision: uint64;\n}\n\nmodel HealthMetricsResponseSeriesItem {\n buckets: list<HealthMetricsResponseSeriesItemBucketsItem>;\n contractId: string;\n instanceId: string;\n participantKind: HealthMetricsResponseSeriesItemParticipantKind;\n}\n\nmodel HealthMetricsResponseSeriesItemBucketsItem {\n checks: list<HealthMetricsResponseSeriesItemBucketsItemChecksItem>;\n degradedMs: uint64;\n end: string;\n healthyMs: uint64;\n observedMs: uint64;\n offlineMs: uint64;\n sampleCount: uint64;\n start: string;\n unhealthyMs: uint64;\n}\n\nmodel HealthMetricsResponseSeriesItemBucketsItemChecksItem {\n failedCount: uint64;\n latencyAverageMs: HealthMetricsResponseSeriesItemBucketsItemChecksItemLatencyAverageMs;\n latencyMaxMs: HealthMetricsResponseSeriesItemBucketsItemChecksItemLatencyMaxMs;\n name: string;\n okCount: uint64;\n sampleCount: uint64;\n}\n\ntype HealthMetricsResponseSeriesItemBucketsItemChecksItemLatencyAverageMs = number(min=0);\n\ntype HealthMetricsResponseSeriesItemBucketsItemChecksItemLatencyMaxMs = number(min=0);\n\nenum HealthMetricsResponseSeriesItemParticipantKind {\n \"device\";\n \"service\";\n}\n\nmodel HealthMetricsResponseSummary {\n availability?: HealthMetricsResponseSummaryAvailability;\n observedMs: uint64;\n onlineMs: uint64;\n sampleCount: uint64;\n transitions: uint64;\n}\n\ntype HealthMetricsResponseSummaryAvailability = number(min=0, max=1);\n\nmodel HealthNotFoundErrorData {\n context?: HealthNotFoundErrorDataContext;\n id: HealthNotFoundErrorDataId;\n message: string;\n resource: HealthNotFoundErrorDataResource;\n traceId?: string;\n type: HealthNotFoundErrorDataType;\n}\n\nmodel HealthNotFoundErrorDataContext {\n}\n\ntype HealthNotFoundErrorDataId = string(min_length=1);\n\ntype HealthNotFoundErrorDataResource = string(min_length=1);\n\nenum HealthNotFoundErrorDataType {\n \"NotFoundError\";\n}\n\nmodel HealthProjectionDiagnostics {\n completeSince?: string;\n gapDetected: bool;\n lastStreamSequence: uint64;\n retainedFrom?: string;\n revision: uint64;\n}\n\nmodel HealthQueryRequest {\n contractIds?: list<HealthQueryRequestContractIdsItem>;\n deploymentIds?: list<HealthQueryRequestDeploymentIdsItem>;\n page?: CursorQuery;\n participantKinds?: list<HealthQueryRequestParticipantKinds>;\n search?: HealthQueryRequestSearch;\n statuses?: list<HealthQueryRequestStatuses>;\n}\n\ntype HealthQueryRequestContractIdsItem = string(min_length=1, max_length=256);\n\ntype HealthQueryRequestDeploymentIdsItem = string(min_length=1, max_length=128);\n\ntype HealthQueryRequestLimit = int64(min=1, max=200);\n\nenum HealthQueryRequestParticipantKinds {\n \"device\";\n \"service\";\n}\n\ntype HealthQueryRequestSearch = string(max_length=256);\n\nenum HealthQueryRequestStatuses {\n \"degraded\";\n \"healthy\";\n \"offline\";\n \"unhealthy\";\n}\n\ntype HealthQueryResponse = CursorPage<HealthQueryResponseEntriesItem>;\n\nmodel HealthQueryResponseEntriesItem {\n contractDigests: list<HealthQueryResponseEntriesItemContractDigestsItem>;\n contractId: string;\n deploymentIds: list<HealthQueryResponseEntriesItemDeploymentIdsItem>;\n effectiveStatus: HealthQueryResponseEntriesItemEffectiveStatus;\n lastSeenAt: string;\n offlineInstances: uint64;\n onlineInstances: uint64;\n participantKind: HealthQueryResponseEntriesItemParticipantKind;\n participantName: string;\n runtimes: list<string>;\n versions: list<string>;\n}\n\ntype HealthQueryResponseEntriesItemContractDigestsItem = string(min_length=1, max_length=128);\n\ntype HealthQueryResponseEntriesItemDeploymentIdsItem = string(min_length=1, max_length=128);\n\nenum HealthQueryResponseEntriesItemEffectiveStatus {\n \"degraded\";\n \"healthy\";\n \"offline\";\n \"unhealthy\";\n}\n\nenum HealthQueryResponseEntriesItemParticipantKind {\n \"device\";\n \"service\";\n}\n\ntype HealthQueryResponseLimit = int64(min=1);\n\nmodel HealthQueryResponseProjection {\n completeSince?: string;\n gapDetected: bool;\n lastStreamSequence: uint64;\n retainedFrom?: string;\n revision: uint64;\n}\n\nmodel HealthStatusChangedEvent {\n changedAt: string;\n header: HealthStatusChangedEventHeader;\n lastSeenAt: string;\n participant: HealthStatusChangedEventParticipant;\n previousStatus: HealthStatusChangedEventPreviousStatus;\n reason: string;\n reportedStatus: HealthStatusChangedEventReportedStatus;\n status: HealthStatusChangedEventStatus;\n summary?: HealthStatusChangedEventSummary;\n}\n\nmodel HealthStatusChangedEventHeader {\n id: HealthStatusChangedEventHeaderId;\n time: string;\n}\n\ntype HealthStatusChangedEventHeaderId = string(min_length=1, max_length=128);\n\nmodel HealthStatusChangedEventParticipant {\n contractId: string;\n deploymentId: string;\n instanceId: string;\n kind: HealthStatusChangedEventParticipantKind;\n name: string;\n}\n\nenum HealthStatusChangedEventParticipantKind {\n \"device\";\n \"service\";\n}\n\nenum HealthStatusChangedEventPreviousStatus {\n \"degraded\";\n \"healthy\";\n \"offline\";\n \"unhealthy\";\n}\n\nenum HealthStatusChangedEventReportedStatus {\n \"degraded\";\n \"healthy\";\n \"unhealthy\";\n}\n\nenum HealthStatusChangedEventStatus {\n \"degraded\";\n \"healthy\";\n \"offline\";\n \"unhealthy\";\n}\n\ntype HealthStatusChangedEventSummary = string(max_length=1024);\n\nmodel HealthSummaryRequest {\n contractIds?: list<HealthQueryRequestContractIdsItem>;\n deploymentIds?: list<HealthQueryRequestDeploymentIdsItem>;\n participantKinds?: list<HealthQueryRequestParticipantKinds>;\n search?: HealthQueryRequestSearch;\n statuses?: list<HealthQueryRequestStatuses>;\n}\n\nmodel HealthSummaryResponse {\n asOf: string;\n count: uint64;\n projection: HealthQueryResponseProjection;\n}\n\ntype HealthWatchFrame = bytes;\n\nmodel HealthWatchFrameValue1 {\n projectionRevision: uint64;\n type: HealthWatchFrameValue1Type;\n}\n\nenum HealthWatchFrameValue1Type {\n \"ready\";\n}\n\nmodel HealthWatchFrameValue2 {\n changes?: list<HealthWatchFrameValue2ChangesItem>;\n projectionRevision: uint64;\n type: HealthWatchFrameValue2Type;\n}\n\nmodel HealthWatchFrameValue2ChangesItem {\n contractId: string;\n deploymentId: string;\n instanceId: string;\n participantKind: HealthWatchFrameValue2ChangesItemParticipantKind;\n}\n\nenum HealthWatchFrameValue2ChangesItemParticipantKind {\n \"device\";\n \"service\";\n}\n\nenum HealthWatchFrameValue2Type {\n \"healthInvalidated\";\n}\n\nmodel HealthWatchRequest {\n contractIds?: list<HealthWatchRequestContractIdsItem>;\n deploymentIds?: list<HealthWatchRequestDeploymentIdsItem>;\n instanceIds?: list<HealthWatchRequestInstanceIdsItem>;\n participantKinds?: list<HealthWatchRequestParticipantKinds>;\n}\n\ntype HealthWatchRequestContractIdsItem = string(min_length=1, max_length=256);\n\ntype HealthWatchRequestDeploymentIdsItem = string(min_length=1, max_length=128);\n\ntype HealthWatchRequestInstanceIdsItem = string(min_length=1, max_length=128);\n\nenum HealthWatchRequestParticipantKinds {\n \"device\";\n \"service\";\n}\n\nmodel Job {\n completedAt?: string;\n concurrency?: JobConcurrency;\n context: JobContext;\n createdAt: string;\n deadline?: string;\n errorDetail?: JobErrorDetail;\n id: JobId;\n lastError?: string;\n lineage?: JobLineage;\n logs?: list<JobLogsItem>;\n maxTries: JobMaxTries;\n payload: bytes;\n progress?: JobProgress;\n queuePolicy?: JobQueuePolicy;\n result?: bytes;\n service: JobService;\n startedAt?: string;\n state: JobState;\n tries: uint64;\n trigger?: JobTrigger;\n type: JobType;\n updatedAt: string;\n waitingOn?: list<JobWaitingOnItem>;\n}\n\nmodel JobConcurrency {\n heartbeatAt?: string;\n key: JobConcurrencyKey;\n keyHash: JobConcurrencyKeyHash;\n leaseExpiresAt?: string;\n staleTakeoverCount?: uint64;\n}\n\ntype JobConcurrencyKey = string(min_length=1);\n\ntype JobConcurrencyKeyHash = string(min_length=1);\n\nmodel JobConcurrencyMetadata {\n heartbeatAt?: string;\n key: JobConcurrencyMetadataKey;\n keyHash: JobConcurrencyMetadataKeyHash;\n leaseExpiresAt?: string;\n staleTakeoverCount?: uint64;\n}\n\ntype JobConcurrencyMetadataKey = string(min_length=1);\n\ntype JobConcurrencyMetadataKeyHash = string(min_length=1);\n\nmodel JobContext {\n requestId: JobContextRequestId;\n traceId: string;\n traceparent: string;\n tracestate?: JobContextTracestate;\n}\n\ntype JobContextRequestId = string(min_length=1);\n\ntype JobContextTracestate = string(min_length=1);\n\nmodel JobErrorDetail {\n causes?: list<JobErrorDetailCausesItem>;\n fingerprint: JobErrorDetailFingerprint;\n firstSeen?: string;\n message: string;\n occurrenceCount?: uint64;\n stack?: string;\n type?: string;\n worker?: JobErrorDetailWorker;\n}\n\nmodel JobErrorDetailCausesItem {\n}\n\ntype JobErrorDetailFingerprint = string(min_length=1);\n\nmodel JobErrorDetailWorker {\n instanceId?: string;\n runtime?: string;\n service?: string;\n version?: string;\n}\n\ntype JobId = string(min_length=1);\n\nmodel JobLineage {\n operationId?: string;\n parentJobId?: string;\n relatedKeys?: list<string>;\n rootJobId?: string;\n}\n\nmodel JobLogEntry {\n level: JobLogEntryLevel;\n message: string;\n timestamp: string;\n}\n\nenum JobLogEntryLevel {\n \"error\";\n \"info\";\n \"warn\";\n}\n\nmodel JobLogsItem {\n level: JobLogsItemLevel;\n message: string;\n timestamp: string;\n}\n\nenum JobLogsItemLevel {\n \"error\";\n \"info\";\n \"warn\";\n}\n\ntype JobMaxTries = int64(min=1);\n\nmodel JobProgress {\n current?: uint64;\n message?: string;\n step?: string;\n total?: uint64;\n}\n\nmodel JobQueuePolicy {\n existingJobId?: JobQueuePolicyExistingJobId;\n outcome: JobQueuePolicyOutcome;\n reason?: JobQueuePolicyReason;\n replacedJobId?: JobQueuePolicyReplacedJobId;\n}\n\ntype JobQueuePolicyExistingJobId = string(min_length=1);\n\nmodel JobQueuePolicyMetadata {\n existingJobId?: JobQueuePolicyMetadataExistingJobId;\n outcome: JobQueuePolicyMetadataOutcome;\n reason?: JobQueuePolicyMetadataReason;\n replacedJobId?: JobQueuePolicyMetadataReplacedJobId;\n}\n\ntype JobQueuePolicyMetadataExistingJobId = string(min_length=1);\n\ntype JobQueuePolicyMetadataOutcome = string(min_length=1);\n\ntype JobQueuePolicyMetadataReason = string(min_length=1);\n\ntype JobQueuePolicyMetadataReplacedJobId = string(min_length=1);\n\ntype JobQueuePolicyOutcome = string(min_length=1);\n\ntype JobQueuePolicyReason = string(min_length=1);\n\ntype JobQueuePolicyReplacedJobId = string(min_length=1);\n\ntype JobService = string(min_length=1);\n\nenum JobState {\n \"active\";\n \"cancelled\";\n \"completed\";\n \"dead\";\n \"dismissed\";\n \"expired\";\n \"failed\";\n \"pending\";\n \"retry\";\n \"skipped\";\n \"stale\";\n}\n\nmodel JobTimelineEvent {\n error?: string;\n errorDetail?: JobTimelineEventErrorDetail;\n logs?: list<JobTimelineEventLogsItem>;\n message?: string;\n previousState?: JobTimelineEventPreviousState;\n progress?: JobTimelineEventProgress;\n projected?: bool;\n rawEvent?: bytes;\n reason?: string;\n sequence: uint64;\n state: JobTimelineEventState;\n timestamp: string;\n tries?: uint64;\n type: JobTimelineEventType;\n waitEdge?: JobTimelineEventWaitEdge;\n workerInstanceId?: string;\n}\n\nmodel JobTimelineEventErrorDetail {\n causes?: list<JobTimelineEventErrorDetailCausesItem>;\n fingerprint: JobTimelineEventErrorDetailFingerprint;\n firstSeen?: string;\n message: string;\n occurrenceCount?: uint64;\n stack?: string;\n type?: string;\n worker?: JobTimelineEventErrorDetailWorker;\n}\n\nmodel JobTimelineEventErrorDetailCausesItem {\n}\n\ntype JobTimelineEventErrorDetailFingerprint = string(min_length=1);\n\nmodel JobTimelineEventErrorDetailWorker {\n instanceId?: string;\n runtime?: string;\n service?: string;\n version?: string;\n}\n\nmodel JobTimelineEventLogsItem {\n level: JobTimelineEventLogsItemLevel;\n message: string;\n timestamp: string;\n}\n\nenum JobTimelineEventLogsItemLevel {\n \"error\";\n \"info\";\n \"warn\";\n}\n\nenum JobTimelineEventPreviousState {\n \"active\";\n \"cancelled\";\n \"completed\";\n \"dead\";\n \"dismissed\";\n \"expired\";\n \"failed\";\n \"pending\";\n \"retry\";\n \"skipped\";\n \"stale\";\n}\n\nmodel JobTimelineEventProgress {\n current?: uint64;\n message?: string;\n step?: string;\n total?: uint64;\n}\n\nenum JobTimelineEventState {\n \"active\";\n \"cancelled\";\n \"completed\";\n \"dead\";\n \"dismissed\";\n \"expired\";\n \"failed\";\n \"pending\";\n \"retry\";\n \"skipped\";\n \"stale\";\n}\n\ntype JobTimelineEventType = string(min_length=1);\n\nmodel JobTimelineEventWaitEdge {\n id: JobTimelineEventWaitEdgeId;\n label?: JobTimelineEventWaitEdgeLabel;\n startedAt: string;\n target: JobTimelineEventWaitEdgeTarget;\n}\n\ntype JobTimelineEventWaitEdgeId = string(min_length=1);\n\ntype JobTimelineEventWaitEdgeLabel = string(min_length=1);\n\nmodel JobTimelineEventWaitEdgeTarget {\n id?: JobTimelineEventWaitEdgeTargetId;\n key?: JobTimelineEventWaitEdgeTargetKey;\n kind: JobTimelineEventWaitEdgeTargetKind;\n label?: JobTimelineEventWaitEdgeTargetLabel;\n operation?: JobTimelineEventWaitEdgeTargetOperation;\n operationId?: JobTimelineEventWaitEdgeTargetOperationId;\n service?: JobTimelineEventWaitEdgeTargetService;\n system?: JobTimelineEventWaitEdgeTargetSystem;\n type?: JobTimelineEventWaitEdgeTargetType;\n}\n\ntype JobTimelineEventWaitEdgeTargetId = string(min_length=1);\n\ntype JobTimelineEventWaitEdgeTargetKey = string(min_length=1);\n\nenum JobTimelineEventWaitEdgeTargetKind {\n \"external\";\n \"job\";\n \"operation\";\n}\n\ntype JobTimelineEventWaitEdgeTargetLabel = string(min_length=1);\n\ntype JobTimelineEventWaitEdgeTargetOperation = string(min_length=1);\n\ntype JobTimelineEventWaitEdgeTargetOperationId = string(min_length=1);\n\ntype JobTimelineEventWaitEdgeTargetService = string(min_length=1);\n\ntype JobTimelineEventWaitEdgeTargetSystem = string(min_length=1);\n\ntype JobTimelineEventWaitEdgeTargetType = string(min_length=1);\n\nmodel JobTrigger {\n id?: string;\n kind: JobTriggerKind;\n operationId?: string;\n parentJobId?: string;\n requestId?: string;\n subject?: string;\n traceId?: string;\n}\n\nenum JobTriggerKind {\n \"event\";\n \"manualReplay\";\n \"operation\";\n \"parentJob\";\n \"rpc\";\n \"schedule\";\n \"serviceCode\";\n}\n\ntype JobType = string(min_length=1);\n\nmodel JobWaitEdge {\n id: JobWaitEdgeId;\n label?: JobWaitEdgeLabel;\n startedAt: string;\n target: JobWaitEdgeTarget;\n}\n\ntype JobWaitEdgeId = string(min_length=1);\n\ntype JobWaitEdgeLabel = string(min_length=1);\n\nmodel JobWaitEdgeTarget {\n id?: JobWaitEdgeTargetId;\n key?: JobWaitEdgeTargetKey;\n kind: JobWaitEdgeTargetKind;\n label?: JobWaitEdgeTargetLabel;\n operation?: JobWaitEdgeTargetOperation;\n operationId?: JobWaitEdgeTargetOperationId;\n service?: JobWaitEdgeTargetService;\n system?: JobWaitEdgeTargetSystem;\n type?: JobWaitEdgeTargetType;\n}\n\ntype JobWaitEdgeTargetId = string(min_length=1);\n\ntype JobWaitEdgeTargetKey = string(min_length=1);\n\nenum JobWaitEdgeTargetKind {\n \"external\";\n \"job\";\n \"operation\";\n}\n\ntype JobWaitEdgeTargetLabel = string(min_length=1);\n\ntype JobWaitEdgeTargetOperation = string(min_length=1);\n\ntype JobWaitEdgeTargetOperationId = string(min_length=1);\n\ntype JobWaitEdgeTargetService = string(min_length=1);\n\ntype JobWaitEdgeTargetSystem = string(min_length=1);\n\ntype JobWaitEdgeTargetType = string(min_length=1);\n\nmodel JobWaitTarget {\n id?: JobWaitTargetId;\n key?: JobWaitTargetKey;\n kind: JobWaitTargetKind;\n label?: JobWaitTargetLabel;\n operation?: JobWaitTargetOperation;\n operationId?: JobWaitTargetOperationId;\n service?: JobWaitTargetService;\n system?: JobWaitTargetSystem;\n type?: JobWaitTargetType;\n}\n\ntype JobWaitTargetId = string(min_length=1);\n\ntype JobWaitTargetKey = string(min_length=1);\n\nenum JobWaitTargetKind {\n \"external\";\n \"job\";\n \"operation\";\n}\n\ntype JobWaitTargetLabel = string(min_length=1);\n\ntype JobWaitTargetOperation = string(min_length=1);\n\ntype JobWaitTargetOperationId = string(min_length=1);\n\ntype JobWaitTargetService = string(min_length=1);\n\ntype JobWaitTargetSystem = string(min_length=1);\n\ntype JobWaitTargetType = string(min_length=1);\n\nmodel JobWaitingOnItem {\n id: JobWaitingOnItemId;\n label?: JobWaitingOnItemLabel;\n startedAt: string;\n target: JobWaitingOnItemTarget;\n}\n\ntype JobWaitingOnItemId = string(min_length=1);\n\ntype JobWaitingOnItemLabel = string(min_length=1);\n\nmodel JobWaitingOnItemTarget {\n id?: JobWaitingOnItemTargetId;\n key?: JobWaitingOnItemTargetKey;\n kind: JobWaitingOnItemTargetKind;\n label?: JobWaitingOnItemTargetLabel;\n operation?: JobWaitingOnItemTargetOperation;\n operationId?: JobWaitingOnItemTargetOperationId;\n service?: JobWaitingOnItemTargetService;\n system?: JobWaitingOnItemTargetSystem;\n type?: JobWaitingOnItemTargetType;\n}\n\ntype JobWaitingOnItemTargetId = string(min_length=1);\n\ntype JobWaitingOnItemTargetKey = string(min_length=1);\n\nenum JobWaitingOnItemTargetKind {\n \"external\";\n \"job\";\n \"operation\";\n}\n\ntype JobWaitingOnItemTargetLabel = string(min_length=1);\n\ntype JobWaitingOnItemTargetOperation = string(min_length=1);\n\ntype JobWaitingOnItemTargetOperationId = string(min_length=1);\n\ntype JobWaitingOnItemTargetService = string(min_length=1);\n\ntype JobWaitingOnItemTargetSystem = string(min_length=1);\n\ntype JobWaitingOnItemTargetType = string(min_length=1);\n\nmodel JobsCancelRequest {\n id: JobsCancelRequestId;\n reason?: JobsCancelRequestReason;\n}\n\ntype JobsCancelRequestId = string(min_length=1);\n\ntype JobsCancelRequestReason = string(min_length=1);\n\nmodel JobsCancelResponse {\n job: JobsCancelResponseJob;\n}\n\nmodel JobsCancelResponseJob {\n completedAt?: string;\n concurrency?: JobsCancelResponseJobConcurrency;\n context: JobsCancelResponseJobContext;\n createdAt: string;\n deadline?: string;\n errorDetail?: JobsCancelResponseJobErrorDetail;\n id: JobsCancelResponseJobId;\n lastError?: string;\n lineage?: JobsCancelResponseJobLineage;\n logs?: list<JobsCancelResponseJobLogsItem>;\n maxTries: JobsCancelResponseJobMaxTries;\n payload: bytes;\n progress?: JobsCancelResponseJobProgress;\n queuePolicy?: JobsCancelResponseJobQueuePolicy;\n result?: bytes;\n service: JobsCancelResponseJobService;\n startedAt?: string;\n state: JobsCancelResponseJobState;\n tries: uint64;\n trigger?: JobsCancelResponseJobTrigger;\n type: JobsCancelResponseJobType;\n updatedAt: string;\n waitingOn?: list<JobsCancelResponseJobWaitingOnItem>;\n}\n\nmodel JobsCancelResponseJobConcurrency {\n heartbeatAt?: string;\n key: JobsCancelResponseJobConcurrencyKey;\n keyHash: JobsCancelResponseJobConcurrencyKeyHash;\n leaseExpiresAt?: string;\n staleTakeoverCount?: uint64;\n}\n\ntype JobsCancelResponseJobConcurrencyKey = string(min_length=1);\n\ntype JobsCancelResponseJobConcurrencyKeyHash = string(min_length=1);\n\nmodel JobsCancelResponseJobContext {\n requestId: JobsCancelResponseJobContextRequestId;\n traceId: string;\n traceparent: string;\n tracestate?: JobsCancelResponseJobContextTracestate;\n}\n\ntype JobsCancelResponseJobContextRequestId = string(min_length=1);\n\ntype JobsCancelResponseJobContextTracestate = string(min_length=1);\n\nmodel JobsCancelResponseJobErrorDetail {\n causes?: list<JobsCancelResponseJobErrorDetailCausesItem>;\n fingerprint: JobsCancelResponseJobErrorDetailFingerprint;\n firstSeen?: string;\n message: string;\n occurrenceCount?: uint64;\n stack?: string;\n type?: string;\n worker?: JobsCancelResponseJobErrorDetailWorker;\n}\n\nmodel JobsCancelResponseJobErrorDetailCausesItem {\n}\n\ntype JobsCancelResponseJobErrorDetailFingerprint = string(min_length=1);\n\nmodel JobsCancelResponseJobErrorDetailWorker {\n instanceId?: string;\n runtime?: string;\n service?: string;\n version?: string;\n}\n\ntype JobsCancelResponseJobId = string(min_length=1);\n\nmodel JobsCancelResponseJobLineage {\n operationId?: string;\n parentJobId?: string;\n relatedKeys?: list<string>;\n rootJobId?: string;\n}\n\nmodel JobsCancelResponseJobLogsItem {\n level: JobsCancelResponseJobLogsItemLevel;\n message: string;\n timestamp: string;\n}\n\nenum JobsCancelResponseJobLogsItemLevel {\n \"error\";\n \"info\";\n \"warn\";\n}\n\ntype JobsCancelResponseJobMaxTries = int64(min=1);\n\nmodel JobsCancelResponseJobProgress {\n current?: uint64;\n message?: string;\n step?: string;\n total?: uint64;\n}\n\nmodel JobsCancelResponseJobQueuePolicy {\n existingJobId?: JobsCancelResponseJobQueuePolicyExistingJobId;\n outcome: JobsCancelResponseJobQueuePolicyOutcome;\n reason?: JobsCancelResponseJobQueuePolicyReason;\n replacedJobId?: JobsCancelResponseJobQueuePolicyReplacedJobId;\n}\n\ntype JobsCancelResponseJobQueuePolicyExistingJobId = string(min_length=1);\n\ntype JobsCancelResponseJobQueuePolicyOutcome = string(min_length=1);\n\ntype JobsCancelResponseJobQueuePolicyReason = string(min_length=1);\n\ntype JobsCancelResponseJobQueuePolicyReplacedJobId = string(min_length=1);\n\ntype JobsCancelResponseJobService = string(min_length=1);\n\nenum JobsCancelResponseJobState {\n \"active\";\n \"cancelled\";\n \"completed\";\n \"dead\";\n \"dismissed\";\n \"expired\";\n \"failed\";\n \"pending\";\n \"retry\";\n \"skipped\";\n \"stale\";\n}\n\nmodel JobsCancelResponseJobTrigger {\n id?: string;\n kind: JobsCancelResponseJobTriggerKind;\n operationId?: string;\n parentJobId?: string;\n requestId?: string;\n subject?: string;\n traceId?: string;\n}\n\nenum JobsCancelResponseJobTriggerKind {\n \"event\";\n \"manualReplay\";\n \"operation\";\n \"parentJob\";\n \"rpc\";\n \"schedule\";\n \"serviceCode\";\n}\n\ntype JobsCancelResponseJobType = string(min_length=1);\n\nmodel JobsCancelResponseJobWaitingOnItem {\n id: JobsCancelResponseJobWaitingOnItemId;\n label?: JobsCancelResponseJobWaitingOnItemLabel;\n startedAt: string;\n target: JobsCancelResponseJobWaitingOnItemTarget;\n}\n\ntype JobsCancelResponseJobWaitingOnItemId = string(min_length=1);\n\ntype JobsCancelResponseJobWaitingOnItemLabel = string(min_length=1);\n\nmodel JobsCancelResponseJobWaitingOnItemTarget {\n id?: JobsCancelResponseJobWaitingOnItemTargetId;\n key?: JobsCancelResponseJobWaitingOnItemTargetKey;\n kind: JobsCancelResponseJobWaitingOnItemTargetKind;\n label?: JobsCancelResponseJobWaitingOnItemTargetLabel;\n operation?: JobsCancelResponseJobWaitingOnItemTargetOperation;\n operationId?: JobsCancelResponseJobWaitingOnItemTargetOperationId;\n service?: JobsCancelResponseJobWaitingOnItemTargetService;\n system?: JobsCancelResponseJobWaitingOnItemTargetSystem;\n type?: JobsCancelResponseJobWaitingOnItemTargetType;\n}\n\ntype JobsCancelResponseJobWaitingOnItemTargetId = string(min_length=1);\n\ntype JobsCancelResponseJobWaitingOnItemTargetKey = string(min_length=1);\n\nenum JobsCancelResponseJobWaitingOnItemTargetKind {\n \"external\";\n \"job\";\n \"operation\";\n}\n\ntype JobsCancelResponseJobWaitingOnItemTargetLabel = string(min_length=1);\n\ntype JobsCancelResponseJobWaitingOnItemTargetOperation = string(min_length=1);\n\ntype JobsCancelResponseJobWaitingOnItemTargetOperationId = string(min_length=1);\n\ntype JobsCancelResponseJobWaitingOnItemTargetService = string(min_length=1);\n\ntype JobsCancelResponseJobWaitingOnItemTargetSystem = string(min_length=1);\n\ntype JobsCancelResponseJobWaitingOnItemTargetType = string(min_length=1);\n\nmodel JobsDismissDLQRequest {\n id: JobsDismissDLQRequestId;\n reason?: JobsDismissDLQRequestReason;\n}\n\ntype JobsDismissDLQRequestId = string(min_length=1);\n\ntype JobsDismissDLQRequestReason = string(min_length=1);\n\nmodel JobsDismissDLQResponse {\n job: JobsDismissDLQResponseJob;\n}\n\nmodel JobsDismissDLQResponseJob {\n completedAt?: string;\n concurrency?: JobsDismissDLQResponseJobConcurrency;\n context: JobsDismissDLQResponseJobContext;\n createdAt: string;\n deadline?: string;\n errorDetail?: JobsDismissDLQResponseJobErrorDetail;\n id: JobsDismissDLQResponseJobId;\n lastError?: string;\n lineage?: JobsDismissDLQResponseJobLineage;\n logs?: list<JobsDismissDLQResponseJobLogsItem>;\n maxTries: JobsDismissDLQResponseJobMaxTries;\n payload: bytes;\n progress?: JobsDismissDLQResponseJobProgress;\n queuePolicy?: JobsDismissDLQResponseJobQueuePolicy;\n result?: bytes;\n service: JobsDismissDLQResponseJobService;\n startedAt?: string;\n state: JobsDismissDLQResponseJobState;\n tries: uint64;\n trigger?: JobsDismissDLQResponseJobTrigger;\n type: JobsDismissDLQResponseJobType;\n updatedAt: string;\n waitingOn?: list<JobsDismissDLQResponseJobWaitingOnItem>;\n}\n\nmodel JobsDismissDLQResponseJobConcurrency {\n heartbeatAt?: string;\n key: JobsDismissDLQResponseJobConcurrencyKey;\n keyHash: JobsDismissDLQResponseJobConcurrencyKeyHash;\n leaseExpiresAt?: string;\n staleTakeoverCount?: uint64;\n}\n\ntype JobsDismissDLQResponseJobConcurrencyKey = string(min_length=1);\n\ntype JobsDismissDLQResponseJobConcurrencyKeyHash = string(min_length=1);\n\nmodel JobsDismissDLQResponseJobContext {\n requestId: JobsDismissDLQResponseJobContextRequestId;\n traceId: string;\n traceparent: string;\n tracestate?: JobsDismissDLQResponseJobContextTracestate;\n}\n\ntype JobsDismissDLQResponseJobContextRequestId = string(min_length=1);\n\ntype JobsDismissDLQResponseJobContextTracestate = string(min_length=1);\n\nmodel JobsDismissDLQResponseJobErrorDetail {\n causes?: list<JobsDismissDLQResponseJobErrorDetailCausesItem>;\n fingerprint: JobsDismissDLQResponseJobErrorDetailFingerprint;\n firstSeen?: string;\n message: string;\n occurrenceCount?: uint64;\n stack?: string;\n type?: string;\n worker?: JobsDismissDLQResponseJobErrorDetailWorker;\n}\n\nmodel JobsDismissDLQResponseJobErrorDetailCausesItem {\n}\n\ntype JobsDismissDLQResponseJobErrorDetailFingerprint = string(min_length=1);\n\nmodel JobsDismissDLQResponseJobErrorDetailWorker {\n instanceId?: string;\n runtime?: string;\n service?: string;\n version?: string;\n}\n\ntype JobsDismissDLQResponseJobId = string(min_length=1);\n\nmodel JobsDismissDLQResponseJobLineage {\n operationId?: string;\n parentJobId?: string;\n relatedKeys?: list<string>;\n rootJobId?: string;\n}\n\nmodel JobsDismissDLQResponseJobLogsItem {\n level: JobsDismissDLQResponseJobLogsItemLevel;\n message: string;\n timestamp: string;\n}\n\nenum JobsDismissDLQResponseJobLogsItemLevel {\n \"error\";\n \"info\";\n \"warn\";\n}\n\ntype JobsDismissDLQResponseJobMaxTries = int64(min=1);\n\nmodel JobsDismissDLQResponseJobProgress {\n current?: uint64;\n message?: string;\n step?: string;\n total?: uint64;\n}\n\nmodel JobsDismissDLQResponseJobQueuePolicy {\n existingJobId?: JobsDismissDLQResponseJobQueuePolicyExistingJobId;\n outcome: JobsDismissDLQResponseJobQueuePolicyOutcome;\n reason?: JobsDismissDLQResponseJobQueuePolicyReason;\n replacedJobId?: JobsDismissDLQResponseJobQueuePolicyReplacedJobId;\n}\n\ntype JobsDismissDLQResponseJobQueuePolicyExistingJobId = string(min_length=1);\n\ntype JobsDismissDLQResponseJobQueuePolicyOutcome = string(min_length=1);\n\ntype JobsDismissDLQResponseJobQueuePolicyReason = string(min_length=1);\n\ntype JobsDismissDLQResponseJobQueuePolicyReplacedJobId = string(min_length=1);\n\ntype JobsDismissDLQResponseJobService = string(min_length=1);\n\nenum JobsDismissDLQResponseJobState {\n \"active\";\n \"cancelled\";\n \"completed\";\n \"dead\";\n \"dismissed\";\n \"expired\";\n \"failed\";\n \"pending\";\n \"retry\";\n \"skipped\";\n \"stale\";\n}\n\nmodel JobsDismissDLQResponseJobTrigger {\n id?: string;\n kind: JobsDismissDLQResponseJobTriggerKind;\n operationId?: string;\n parentJobId?: string;\n requestId?: string;\n subject?: string;\n traceId?: string;\n}\n\nenum JobsDismissDLQResponseJobTriggerKind {\n \"event\";\n \"manualReplay\";\n \"operation\";\n \"parentJob\";\n \"rpc\";\n \"schedule\";\n \"serviceCode\";\n}\n\ntype JobsDismissDLQResponseJobType = string(min_length=1);\n\nmodel JobsDismissDLQResponseJobWaitingOnItem {\n id: JobsDismissDLQResponseJobWaitingOnItemId;\n label?: JobsDismissDLQResponseJobWaitingOnItemLabel;\n startedAt: string;\n target: JobsDismissDLQResponseJobWaitingOnItemTarget;\n}\n\ntype JobsDismissDLQResponseJobWaitingOnItemId = string(min_length=1);\n\ntype JobsDismissDLQResponseJobWaitingOnItemLabel = string(min_length=1);\n\nmodel JobsDismissDLQResponseJobWaitingOnItemTarget {\n id?: JobsDismissDLQResponseJobWaitingOnItemTargetId;\n key?: JobsDismissDLQResponseJobWaitingOnItemTargetKey;\n kind: JobsDismissDLQResponseJobWaitingOnItemTargetKind;\n label?: JobsDismissDLQResponseJobWaitingOnItemTargetLabel;\n operation?: JobsDismissDLQResponseJobWaitingOnItemTargetOperation;\n operationId?: JobsDismissDLQResponseJobWaitingOnItemTargetOperationId;\n service?: JobsDismissDLQResponseJobWaitingOnItemTargetService;\n system?: JobsDismissDLQResponseJobWaitingOnItemTargetSystem;\n type?: JobsDismissDLQResponseJobWaitingOnItemTargetType;\n}\n\ntype JobsDismissDLQResponseJobWaitingOnItemTargetId = string(min_length=1);\n\ntype JobsDismissDLQResponseJobWaitingOnItemTargetKey = string(min_length=1);\n\nenum JobsDismissDLQResponseJobWaitingOnItemTargetKind {\n \"external\";\n \"job\";\n \"operation\";\n}\n\ntype JobsDismissDLQResponseJobWaitingOnItemTargetLabel = string(min_length=1);\n\ntype JobsDismissDLQResponseJobWaitingOnItemTargetOperation = string(min_length=1);\n\ntype JobsDismissDLQResponseJobWaitingOnItemTargetOperationId = string(min_length=1);\n\ntype JobsDismissDLQResponseJobWaitingOnItemTargetService = string(min_length=1);\n\ntype JobsDismissDLQResponseJobWaitingOnItemTargetSystem = string(min_length=1);\n\ntype JobsDismissDLQResponseJobWaitingOnItemTargetType = string(min_length=1);\n\nmodel JobsGetKeyRequest {\n key: JobsGetKeyRequestKey;\n service: JobsGetKeyRequestService;\n type: JobsGetKeyRequestType;\n}\n\ntype JobsGetKeyRequestKey = string(min_length=1);\n\ntype JobsGetKeyRequestService = string(min_length=1);\n\ntype JobsGetKeyRequestType = string(min_length=1);\n\nmodel JobsGetKeyResponse {\n active: list<JobsGetKeyResponseActiveItem>;\n key: JobsGetKeyResponseKey;\n keyHash: JobsGetKeyResponseKeyHash;\n latestPolicyReason?: JobsGetKeyResponseLatestPolicyReason;\n queued: list<JobsGetKeyResponseQueuedItem>;\n queuedDepth: uint64;\n service: JobsGetKeyResponseService;\n staleTakeoverCount: uint64;\n type: JobsGetKeyResponseType;\n}\n\nmodel JobsGetKeyResponseActiveItem {\n heartbeatAgeMs: uint64;\n heartbeatAt: string;\n instanceId: string;\n jobId: JobsGetKeyResponseActiveItemJobId;\n leaseExpiresAt: string;\n startedAt: string;\n}\n\ntype JobsGetKeyResponseActiveItemJobId = string(min_length=1);\n\ntype JobsGetKeyResponseKey = string(min_length=1);\n\ntype JobsGetKeyResponseKeyHash = string(min_length=1);\n\ntype JobsGetKeyResponseLatestPolicyReason = string(min_length=1);\n\nmodel JobsGetKeyResponseQueuedItem {\n createdAt: string;\n jobId: JobsGetKeyResponseQueuedItemJobId;\n}\n\ntype JobsGetKeyResponseQueuedItemJobId = string(min_length=1);\n\ntype JobsGetKeyResponseService = string(min_length=1);\n\ntype JobsGetKeyResponseType = string(min_length=1);\n\nmodel JobsHistoryEntry {\n payload: bytes;\n sequence: uint64;\n}\n\nmodel JobsHistoryRequest {\n fromSequence: uint64;\n jobId: string;\n queue: string;\n throughSequence?: uint64;\n}\n\nmodel JobsHistoryResponse {\n entries: list<JobsHistoryEntry>;\n nextSequence?: uint64;\n throughSequence: uint64;\n}\n\nmodel JobsInspectRequest {\n id: JobsInspectRequestId;\n}\n\ntype JobsInspectRequestId = string(min_length=1);\n\nmodel JobsInspectResponse {\n attempts: list<JobsInspectResponseAttemptsItem>;\n errors: list<JobsInspectResponseErrorsItem>;\n job: JobsInspectResponseJob;\n lineage?: JobsInspectResponseLineage;\n related: list<JobsInspectResponseRelatedItem>;\n timeline: list<JobsInspectResponseTimelineItem>;\n trigger?: JobsInspectResponseTrigger;\n}\n\nmodel JobsInspectResponseAttemptsItem {\n endedAt?: string;\n error?: JobsInspectResponseAttemptsItemError;\n startedAt: string;\n state?: JobsInspectResponseAttemptsItemState;\n try: uint64;\n}\n\nmodel JobsInspectResponseAttemptsItemError {\n causes?: list<JobsInspectResponseAttemptsItemErrorCausesItem>;\n fingerprint: JobsInspectResponseAttemptsItemErrorFingerprint;\n firstSeen?: string;\n message: string;\n occurrenceCount?: uint64;\n stack?: string;\n type?: string;\n worker?: JobsInspectResponseAttemptsItemErrorWorker;\n}\n\nmodel JobsInspectResponseAttemptsItemErrorCausesItem {\n}\n\ntype JobsInspectResponseAttemptsItemErrorFingerprint = string(min_length=1);\n\nmodel JobsInspectResponseAttemptsItemErrorWorker {\n instanceId?: string;\n runtime?: string;\n service?: string;\n version?: string;\n}\n\nenum JobsInspectResponseAttemptsItemState {\n \"active\";\n \"cancelled\";\n \"completed\";\n \"dead\";\n \"dismissed\";\n \"expired\";\n \"failed\";\n \"pending\";\n \"retry\";\n \"skipped\";\n \"stale\";\n}\n\nmodel JobsInspectResponseErrorsItem {\n causes?: list<JobsInspectResponseErrorsItemCausesItem>;\n fingerprint: JobsInspectResponseErrorsItemFingerprint;\n firstSeen?: string;\n message: string;\n occurrenceCount?: uint64;\n stack?: string;\n type?: string;\n worker?: JobsInspectResponseErrorsItemWorker;\n}\n\nmodel JobsInspectResponseErrorsItemCausesItem {\n}\n\ntype JobsInspectResponseErrorsItemFingerprint = string(min_length=1);\n\nmodel JobsInspectResponseErrorsItemWorker {\n instanceId?: string;\n runtime?: string;\n service?: string;\n version?: string;\n}\n\nmodel JobsInspectResponseJob {\n completedAt?: string;\n concurrency?: JobsInspectResponseJobConcurrency;\n context: JobsInspectResponseJobContext;\n createdAt: string;\n deadline?: string;\n errorDetail?: JobsInspectResponseJobErrorDetail;\n id: JobsInspectResponseJobId;\n lastError?: string;\n lineage?: JobsInspectResponseJobLineage;\n logs?: list<JobsInspectResponseJobLogsItem>;\n maxTries: JobsInspectResponseJobMaxTries;\n payload: bytes;\n progress?: JobsInspectResponseJobProgress;\n queuePolicy?: JobsInspectResponseJobQueuePolicy;\n result?: bytes;\n service: JobsInspectResponseJobService;\n startedAt?: string;\n state: JobsInspectResponseJobState;\n tries: uint64;\n trigger?: JobsInspectResponseJobTrigger;\n type: JobsInspectResponseJobType;\n updatedAt: string;\n waitingOn?: list<JobsInspectResponseJobWaitingOnItem>;\n}\n\nmodel JobsInspectResponseJobConcurrency {\n heartbeatAt?: string;\n key: JobsInspectResponseJobConcurrencyKey;\n keyHash: JobsInspectResponseJobConcurrencyKeyHash;\n leaseExpiresAt?: string;\n staleTakeoverCount?: uint64;\n}\n\ntype JobsInspectResponseJobConcurrencyKey = string(min_length=1);\n\ntype JobsInspectResponseJobConcurrencyKeyHash = string(min_length=1);\n\nmodel JobsInspectResponseJobContext {\n requestId: JobsInspectResponseJobContextRequestId;\n traceId: string;\n traceparent: string;\n tracestate?: JobsInspectResponseJobContextTracestate;\n}\n\ntype JobsInspectResponseJobContextRequestId = string(min_length=1);\n\ntype JobsInspectResponseJobContextTracestate = string(min_length=1);\n\nmodel JobsInspectResponseJobErrorDetail {\n causes?: list<JobsInspectResponseJobErrorDetailCausesItem>;\n fingerprint: JobsInspectResponseJobErrorDetailFingerprint;\n firstSeen?: string;\n message: string;\n occurrenceCount?: uint64;\n stack?: string;\n type?: string;\n worker?: JobsInspectResponseJobErrorDetailWorker;\n}\n\nmodel JobsInspectResponseJobErrorDetailCausesItem {\n}\n\ntype JobsInspectResponseJobErrorDetailFingerprint = string(min_length=1);\n\nmodel JobsInspectResponseJobErrorDetailWorker {\n instanceId?: string;\n runtime?: string;\n service?: string;\n version?: string;\n}\n\ntype JobsInspectResponseJobId = string(min_length=1);\n\nmodel JobsInspectResponseJobLineage {\n operationId?: string;\n parentJobId?: string;\n relatedKeys?: list<string>;\n rootJobId?: string;\n}\n\nmodel JobsInspectResponseJobLogsItem {\n level: JobsInspectResponseJobLogsItemLevel;\n message: string;\n timestamp: string;\n}\n\nenum JobsInspectResponseJobLogsItemLevel {\n \"error\";\n \"info\";\n \"warn\";\n}\n\ntype JobsInspectResponseJobMaxTries = int64(min=1);\n\nmodel JobsInspectResponseJobProgress {\n current?: uint64;\n message?: string;\n step?: string;\n total?: uint64;\n}\n\nmodel JobsInspectResponseJobQueuePolicy {\n existingJobId?: JobsInspectResponseJobQueuePolicyExistingJobId;\n outcome: JobsInspectResponseJobQueuePolicyOutcome;\n reason?: JobsInspectResponseJobQueuePolicyReason;\n replacedJobId?: JobsInspectResponseJobQueuePolicyReplacedJobId;\n}\n\ntype JobsInspectResponseJobQueuePolicyExistingJobId = string(min_length=1);\n\ntype JobsInspectResponseJobQueuePolicyOutcome = string(min_length=1);\n\ntype JobsInspectResponseJobQueuePolicyReason = string(min_length=1);\n\ntype JobsInspectResponseJobQueuePolicyReplacedJobId = string(min_length=1);\n\ntype JobsInspectResponseJobService = string(min_length=1);\n\nenum JobsInspectResponseJobState {\n \"active\";\n \"cancelled\";\n \"completed\";\n \"dead\";\n \"dismissed\";\n \"expired\";\n \"failed\";\n \"pending\";\n \"retry\";\n \"skipped\";\n \"stale\";\n}\n\nmodel JobsInspectResponseJobTrigger {\n id?: string;\n kind: JobsInspectResponseJobTriggerKind;\n operationId?: string;\n parentJobId?: string;\n requestId?: string;\n subject?: string;\n traceId?: string;\n}\n\nenum JobsInspectResponseJobTriggerKind {\n \"event\";\n \"manualReplay\";\n \"operation\";\n \"parentJob\";\n \"rpc\";\n \"schedule\";\n \"serviceCode\";\n}\n\ntype JobsInspectResponseJobType = string(min_length=1);\n\nmodel JobsInspectResponseJobWaitingOnItem {\n id: JobsInspectResponseJobWaitingOnItemId;\n label?: JobsInspectResponseJobWaitingOnItemLabel;\n startedAt: string;\n target: JobsInspectResponseJobWaitingOnItemTarget;\n}\n\ntype JobsInspectResponseJobWaitingOnItemId = string(min_length=1);\n\ntype JobsInspectResponseJobWaitingOnItemLabel = string(min_length=1);\n\nmodel JobsInspectResponseJobWaitingOnItemTarget {\n id?: JobsInspectResponseJobWaitingOnItemTargetId;\n key?: JobsInspectResponseJobWaitingOnItemTargetKey;\n kind: JobsInspectResponseJobWaitingOnItemTargetKind;\n label?: JobsInspectResponseJobWaitingOnItemTargetLabel;\n operation?: JobsInspectResponseJobWaitingOnItemTargetOperation;\n operationId?: JobsInspectResponseJobWaitingOnItemTargetOperationId;\n service?: JobsInspectResponseJobWaitingOnItemTargetService;\n system?: JobsInspectResponseJobWaitingOnItemTargetSystem;\n type?: JobsInspectResponseJobWaitingOnItemTargetType;\n}\n\ntype JobsInspectResponseJobWaitingOnItemTargetId = string(min_length=1);\n\ntype JobsInspectResponseJobWaitingOnItemTargetKey = string(min_length=1);\n\nenum JobsInspectResponseJobWaitingOnItemTargetKind {\n \"external\";\n \"job\";\n \"operation\";\n}\n\ntype JobsInspectResponseJobWaitingOnItemTargetLabel = string(min_length=1);\n\ntype JobsInspectResponseJobWaitingOnItemTargetOperation = string(min_length=1);\n\ntype JobsInspectResponseJobWaitingOnItemTargetOperationId = string(min_length=1);\n\ntype JobsInspectResponseJobWaitingOnItemTargetService = string(min_length=1);\n\ntype JobsInspectResponseJobWaitingOnItemTargetSystem = string(min_length=1);\n\ntype JobsInspectResponseJobWaitingOnItemTargetType = string(min_length=1);\n\nmodel JobsInspectResponseLineage {\n operationId?: string;\n parentJobId?: string;\n relatedKeys?: list<string>;\n rootJobId?: string;\n}\n\nmodel JobsInspectResponseRelatedItem {\n completedAt?: string;\n context?: JobsInspectResponseRelatedItemContext;\n createdAt: string;\n errorFingerprint?: string;\n id: JobsInspectResponseRelatedItemId;\n lastError?: string;\n lineage?: JobsInspectResponseRelatedItemLineage;\n matchedBy?: JobsInspectResponseRelatedItemMatchedBy;\n maxTries: JobsInspectResponseRelatedItemMaxTries;\n progress?: JobsInspectResponseRelatedItemProgress;\n queueAgeMs?: uint64;\n queueKey?: string;\n runtimeBand?: string;\n runtimeMs?: uint64;\n service: JobsInspectResponseRelatedItemService;\n startedAt?: string;\n state: JobsInspectResponseRelatedItemState;\n tries: uint64;\n trigger?: JobsInspectResponseRelatedItemTrigger;\n type: JobsInspectResponseRelatedItemType;\n updatedAt: string;\n waitingOn?: list<JobsInspectResponseRelatedItemWaitingOnItem>;\n}\n\nmodel JobsInspectResponseRelatedItemContext {\n requestId: JobsInspectResponseRelatedItemContextRequestId;\n traceId: string;\n traceparent: string;\n tracestate?: JobsInspectResponseRelatedItemContextTracestate;\n}\n\ntype JobsInspectResponseRelatedItemContextRequestId = string(min_length=1);\n\ntype JobsInspectResponseRelatedItemContextTracestate = string(min_length=1);\n\ntype JobsInspectResponseRelatedItemId = string(min_length=1);\n\nmodel JobsInspectResponseRelatedItemLineage {\n operationId?: string;\n parentJobId?: string;\n relatedKeys?: list<string>;\n rootJobId?: string;\n}\n\nenum JobsInspectResponseRelatedItemMatchedBy {\n \"concurrency\";\n \"operation\";\n \"parent\";\n \"root\";\n \"trace\";\n \"wait\";\n}\n\ntype JobsInspectResponseRelatedItemMaxTries = int64(min=1);\n\nmodel JobsInspectResponseRelatedItemProgress {\n current?: uint64;\n message?: string;\n step?: string;\n total?: uint64;\n}\n\ntype JobsInspectResponseRelatedItemService = string(min_length=1);\n\nenum JobsInspectResponseRelatedItemState {\n \"active\";\n \"cancelled\";\n \"completed\";\n \"dead\";\n \"dismissed\";\n \"expired\";\n \"failed\";\n \"pending\";\n \"retry\";\n \"skipped\";\n \"stale\";\n}\n\nmodel JobsInspectResponseRelatedItemTrigger {\n id?: string;\n kind: JobsInspectResponseRelatedItemTriggerKind;\n operationId?: string;\n parentJobId?: string;\n requestId?: string;\n subject?: string;\n traceId?: string;\n}\n\nenum JobsInspectResponseRelatedItemTriggerKind {\n \"event\";\n \"manualReplay\";\n \"operation\";\n \"parentJob\";\n \"rpc\";\n \"schedule\";\n \"serviceCode\";\n}\n\ntype JobsInspectResponseRelatedItemType = string(min_length=1);\n\nmodel JobsInspectResponseRelatedItemWaitingOnItem {\n id: JobsInspectResponseRelatedItemWaitingOnItemId;\n label?: JobsInspectResponseRelatedItemWaitingOnItemLabel;\n startedAt: string;\n target: JobsInspectResponseRelatedItemWaitingOnItemTarget;\n}\n\ntype JobsInspectResponseRelatedItemWaitingOnItemId = string(min_length=1);\n\ntype JobsInspectResponseRelatedItemWaitingOnItemLabel = string(min_length=1);\n\nmodel JobsInspectResponseRelatedItemWaitingOnItemTarget {\n id?: JobsInspectResponseRelatedItemWaitingOnItemTargetId;\n key?: JobsInspectResponseRelatedItemWaitingOnItemTargetKey;\n kind: JobsInspectResponseRelatedItemWaitingOnItemTargetKind;\n label?: JobsInspectResponseRelatedItemWaitingOnItemTargetLabel;\n operation?: JobsInspectResponseRelatedItemWaitingOnItemTargetOperation;\n operationId?: JobsInspectResponseRelatedItemWaitingOnItemTargetOperationId;\n service?: JobsInspectResponseRelatedItemWaitingOnItemTargetService;\n system?: JobsInspectResponseRelatedItemWaitingOnItemTargetSystem;\n type?: JobsInspectResponseRelatedItemWaitingOnItemTargetType;\n}\n\ntype JobsInspectResponseRelatedItemWaitingOnItemTargetId = string(min_length=1);\n\ntype JobsInspectResponseRelatedItemWaitingOnItemTargetKey = string(min_length=1);\n\nenum JobsInspectResponseRelatedItemWaitingOnItemTargetKind {\n \"external\";\n \"job\";\n \"operation\";\n}\n\ntype JobsInspectResponseRelatedItemWaitingOnItemTargetLabel = string(min_length=1);\n\ntype JobsInspectResponseRelatedItemWaitingOnItemTargetOperation = string(min_length=1);\n\ntype JobsInspectResponseRelatedItemWaitingOnItemTargetOperationId = string(min_length=1);\n\ntype JobsInspectResponseRelatedItemWaitingOnItemTargetService = string(min_length=1);\n\ntype JobsInspectResponseRelatedItemWaitingOnItemTargetSystem = string(min_length=1);\n\ntype JobsInspectResponseRelatedItemWaitingOnItemTargetType = string(min_length=1);\n\nmodel JobsInspectResponseTimelineItem {\n error?: string;\n errorDetail?: JobsInspectResponseTimelineItemErrorDetail;\n logs?: list<JobsInspectResponseTimelineItemLogsItem>;\n message?: string;\n previousState?: JobsInspectResponseTimelineItemPreviousState;\n progress?: JobsInspectResponseTimelineItemProgress;\n projected?: bool;\n rawEvent?: bytes;\n reason?: string;\n sequence: uint64;\n state: JobsInspectResponseTimelineItemState;\n timestamp: string;\n tries?: uint64;\n type: JobsInspectResponseTimelineItemType;\n waitEdge?: JobsInspectResponseTimelineItemWaitEdge;\n workerInstanceId?: string;\n}\n\nmodel JobsInspectResponseTimelineItemErrorDetail {\n causes?: list<JobsInspectResponseTimelineItemErrorDetailCausesItem>;\n fingerprint: JobsInspectResponseTimelineItemErrorDetailFingerprint;\n firstSeen?: string;\n message: string;\n occurrenceCount?: uint64;\n stack?: string;\n type?: string;\n worker?: JobsInspectResponseTimelineItemErrorDetailWorker;\n}\n\nmodel JobsInspectResponseTimelineItemErrorDetailCausesItem {\n}\n\ntype JobsInspectResponseTimelineItemErrorDetailFingerprint = string(min_length=1);\n\nmodel JobsInspectResponseTimelineItemErrorDetailWorker {\n instanceId?: string;\n runtime?: string;\n service?: string;\n version?: string;\n}\n\nmodel JobsInspectResponseTimelineItemLogsItem {\n level: JobsInspectResponseTimelineItemLogsItemLevel;\n message: string;\n timestamp: string;\n}\n\nenum JobsInspectResponseTimelineItemLogsItemLevel {\n \"error\";\n \"info\";\n \"warn\";\n}\n\nenum JobsInspectResponseTimelineItemPreviousState {\n \"active\";\n \"cancelled\";\n \"completed\";\n \"dead\";\n \"dismissed\";\n \"expired\";\n \"failed\";\n \"pending\";\n \"retry\";\n \"skipped\";\n \"stale\";\n}\n\nmodel JobsInspectResponseTimelineItemProgress {\n current?: uint64;\n message?: string;\n step?: string;\n total?: uint64;\n}\n\nenum JobsInspectResponseTimelineItemState {\n \"active\";\n \"cancelled\";\n \"completed\";\n \"dead\";\n \"dismissed\";\n \"expired\";\n \"failed\";\n \"pending\";\n \"retry\";\n \"skipped\";\n \"stale\";\n}\n\ntype JobsInspectResponseTimelineItemType = string(min_length=1);\n\nmodel JobsInspectResponseTimelineItemWaitEdge {\n id: JobsInspectResponseTimelineItemWaitEdgeId;\n label?: JobsInspectResponseTimelineItemWaitEdgeLabel;\n startedAt: string;\n target: JobsInspectResponseTimelineItemWaitEdgeTarget;\n}\n\ntype JobsInspectResponseTimelineItemWaitEdgeId = string(min_length=1);\n\ntype JobsInspectResponseTimelineItemWaitEdgeLabel = string(min_length=1);\n\nmodel JobsInspectResponseTimelineItemWaitEdgeTarget {\n id?: JobsInspectResponseTimelineItemWaitEdgeTargetId;\n key?: JobsInspectResponseTimelineItemWaitEdgeTargetKey;\n kind: JobsInspectResponseTimelineItemWaitEdgeTargetKind;\n label?: JobsInspectResponseTimelineItemWaitEdgeTargetLabel;\n operation?: JobsInspectResponseTimelineItemWaitEdgeTargetOperation;\n operationId?: JobsInspectResponseTimelineItemWaitEdgeTargetOperationId;\n service?: JobsInspectResponseTimelineItemWaitEdgeTargetService;\n system?: JobsInspectResponseTimelineItemWaitEdgeTargetSystem;\n type?: JobsInspectResponseTimelineItemWaitEdgeTargetType;\n}\n\ntype JobsInspectResponseTimelineItemWaitEdgeTargetId = string(min_length=1);\n\ntype JobsInspectResponseTimelineItemWaitEdgeTargetKey = string(min_length=1);\n\nenum JobsInspectResponseTimelineItemWaitEdgeTargetKind {\n \"external\";\n \"job\";\n \"operation\";\n}\n\ntype JobsInspectResponseTimelineItemWaitEdgeTargetLabel = string(min_length=1);\n\ntype JobsInspectResponseTimelineItemWaitEdgeTargetOperation = string(min_length=1);\n\ntype JobsInspectResponseTimelineItemWaitEdgeTargetOperationId = string(min_length=1);\n\ntype JobsInspectResponseTimelineItemWaitEdgeTargetService = string(min_length=1);\n\ntype JobsInspectResponseTimelineItemWaitEdgeTargetSystem = string(min_length=1);\n\ntype JobsInspectResponseTimelineItemWaitEdgeTargetType = string(min_length=1);\n\nmodel JobsInspectResponseTrigger {\n id?: string;\n kind: JobsInspectResponseTriggerKind;\n operationId?: string;\n parentJobId?: string;\n requestId?: string;\n subject?: string;\n traceId?: string;\n}\n\nenum JobsInspectResponseTriggerKind {\n \"event\";\n \"manualReplay\";\n \"operation\";\n \"parentJob\";\n \"rpc\";\n \"schedule\";\n \"serviceCode\";\n}\n\nmodel JobsListDLQRequest {\n page?: CursorQuery;\n service?: JobsListDLQRequestService;\n since?: string;\n type?: JobsListDLQRequestType;\n}\n\ntype JobsListDLQRequestLimit = int64(min=1);\n\ntype JobsListDLQRequestService = string(min_length=1);\n\ntype JobsListDLQRequestType = string(min_length=1);\n\ntype JobsListDLQResponse = CursorPage<JobsListDLQResponseEntriesItem>;\n\nmodel JobsListDLQResponseEntriesItem {\n completedAt?: string;\n concurrency?: JobsListDLQResponseEntriesItemConcurrency;\n context: JobsListDLQResponseEntriesItemContext;\n createdAt: string;\n deadline?: string;\n errorDetail?: JobsListDLQResponseEntriesItemErrorDetail;\n id: JobsListDLQResponseEntriesItemId;\n lastError?: string;\n lineage?: JobsListDLQResponseEntriesItemLineage;\n logs?: list<JobsListDLQResponseEntriesItemLogsItem>;\n maxTries: JobsListDLQResponseEntriesItemMaxTries;\n payload: bytes;\n progress?: JobsListDLQResponseEntriesItemProgress;\n queuePolicy?: JobsListDLQResponseEntriesItemQueuePolicy;\n result?: bytes;\n service: JobsListDLQResponseEntriesItemService;\n startedAt?: string;\n state: JobsListDLQResponseEntriesItemState;\n tries: uint64;\n trigger?: JobsListDLQResponseEntriesItemTrigger;\n type: JobsListDLQResponseEntriesItemType;\n updatedAt: string;\n waitingOn?: list<JobsListDLQResponseEntriesItemWaitingOnItem>;\n}\n\nmodel JobsListDLQResponseEntriesItemConcurrency {\n heartbeatAt?: string;\n key: JobsListDLQResponseEntriesItemConcurrencyKey;\n keyHash: JobsListDLQResponseEntriesItemConcurrencyKeyHash;\n leaseExpiresAt?: string;\n staleTakeoverCount?: uint64;\n}\n\ntype JobsListDLQResponseEntriesItemConcurrencyKey = string(min_length=1);\n\ntype JobsListDLQResponseEntriesItemConcurrencyKeyHash = string(min_length=1);\n\nmodel JobsListDLQResponseEntriesItemContext {\n requestId: JobsListDLQResponseEntriesItemContextRequestId;\n traceId: string;\n traceparent: string;\n tracestate?: JobsListDLQResponseEntriesItemContextTracestate;\n}\n\ntype JobsListDLQResponseEntriesItemContextRequestId = string(min_length=1);\n\ntype JobsListDLQResponseEntriesItemContextTracestate = string(min_length=1);\n\nmodel JobsListDLQResponseEntriesItemErrorDetail {\n causes?: list<JobsListDLQResponseEntriesItemErrorDetailCausesItem>;\n fingerprint: JobsListDLQResponseEntriesItemErrorDetailFingerprint;\n firstSeen?: string;\n message: string;\n occurrenceCount?: uint64;\n stack?: string;\n type?: string;\n worker?: JobsListDLQResponseEntriesItemErrorDetailWorker;\n}\n\nmodel JobsListDLQResponseEntriesItemErrorDetailCausesItem {\n}\n\ntype JobsListDLQResponseEntriesItemErrorDetailFingerprint = string(min_length=1);\n\nmodel JobsListDLQResponseEntriesItemErrorDetailWorker {\n instanceId?: string;\n runtime?: string;\n service?: string;\n version?: string;\n}\n\ntype JobsListDLQResponseEntriesItemId = string(min_length=1);\n\nmodel JobsListDLQResponseEntriesItemLineage {\n operationId?: string;\n parentJobId?: string;\n relatedKeys?: list<string>;\n rootJobId?: string;\n}\n\nmodel JobsListDLQResponseEntriesItemLogsItem {\n level: JobsListDLQResponseEntriesItemLogsItemLevel;\n message: string;\n timestamp: string;\n}\n\nenum JobsListDLQResponseEntriesItemLogsItemLevel {\n \"error\";\n \"info\";\n \"warn\";\n}\n\ntype JobsListDLQResponseEntriesItemMaxTries = int64(min=1);\n\nmodel JobsListDLQResponseEntriesItemProgress {\n current?: uint64;\n message?: string;\n step?: string;\n total?: uint64;\n}\n\nmodel JobsListDLQResponseEntriesItemQueuePolicy {\n existingJobId?: JobsListDLQResponseEntriesItemQueuePolicyExistingJobId;\n outcome: JobsListDLQResponseEntriesItemQueuePolicyOutcome;\n reason?: JobsListDLQResponseEntriesItemQueuePolicyReason;\n replacedJobId?: JobsListDLQResponseEntriesItemQueuePolicyReplacedJobId;\n}\n\ntype JobsListDLQResponseEntriesItemQueuePolicyExistingJobId = string(min_length=1);\n\ntype JobsListDLQResponseEntriesItemQueuePolicyOutcome = string(min_length=1);\n\ntype JobsListDLQResponseEntriesItemQueuePolicyReason = string(min_length=1);\n\ntype JobsListDLQResponseEntriesItemQueuePolicyReplacedJobId = string(min_length=1);\n\ntype JobsListDLQResponseEntriesItemService = string(min_length=1);\n\nenum JobsListDLQResponseEntriesItemState {\n \"active\";\n \"cancelled\";\n \"completed\";\n \"dead\";\n \"dismissed\";\n \"expired\";\n \"failed\";\n \"pending\";\n \"retry\";\n \"skipped\";\n \"stale\";\n}\n\nmodel JobsListDLQResponseEntriesItemTrigger {\n id?: string;\n kind: JobsListDLQResponseEntriesItemTriggerKind;\n operationId?: string;\n parentJobId?: string;\n requestId?: string;\n subject?: string;\n traceId?: string;\n}\n\nenum JobsListDLQResponseEntriesItemTriggerKind {\n \"event\";\n \"manualReplay\";\n \"operation\";\n \"parentJob\";\n \"rpc\";\n \"schedule\";\n \"serviceCode\";\n}\n\ntype JobsListDLQResponseEntriesItemType = string(min_length=1);\n\nmodel JobsListDLQResponseEntriesItemWaitingOnItem {\n id: JobsListDLQResponseEntriesItemWaitingOnItemId;\n label?: JobsListDLQResponseEntriesItemWaitingOnItemLabel;\n startedAt: string;\n target: JobsListDLQResponseEntriesItemWaitingOnItemTarget;\n}\n\ntype JobsListDLQResponseEntriesItemWaitingOnItemId = string(min_length=1);\n\ntype JobsListDLQResponseEntriesItemWaitingOnItemLabel = string(min_length=1);\n\nmodel JobsListDLQResponseEntriesItemWaitingOnItemTarget {\n id?: JobsListDLQResponseEntriesItemWaitingOnItemTargetId;\n key?: JobsListDLQResponseEntriesItemWaitingOnItemTargetKey;\n kind: JobsListDLQResponseEntriesItemWaitingOnItemTargetKind;\n label?: JobsListDLQResponseEntriesItemWaitingOnItemTargetLabel;\n operation?: JobsListDLQResponseEntriesItemWaitingOnItemTargetOperation;\n operationId?: JobsListDLQResponseEntriesItemWaitingOnItemTargetOperationId;\n service?: JobsListDLQResponseEntriesItemWaitingOnItemTargetService;\n system?: JobsListDLQResponseEntriesItemWaitingOnItemTargetSystem;\n type?: JobsListDLQResponseEntriesItemWaitingOnItemTargetType;\n}\n\ntype JobsListDLQResponseEntriesItemWaitingOnItemTargetId = string(min_length=1);\n\ntype JobsListDLQResponseEntriesItemWaitingOnItemTargetKey = string(min_length=1);\n\nenum JobsListDLQResponseEntriesItemWaitingOnItemTargetKind {\n \"external\";\n \"job\";\n \"operation\";\n}\n\ntype JobsListDLQResponseEntriesItemWaitingOnItemTargetLabel = string(min_length=1);\n\ntype JobsListDLQResponseEntriesItemWaitingOnItemTargetOperation = string(min_length=1);\n\ntype JobsListDLQResponseEntriesItemWaitingOnItemTargetOperationId = string(min_length=1);\n\ntype JobsListDLQResponseEntriesItemWaitingOnItemTargetService = string(min_length=1);\n\ntype JobsListDLQResponseEntriesItemWaitingOnItemTargetSystem = string(min_length=1);\n\ntype JobsListDLQResponseEntriesItemWaitingOnItemTargetType = string(min_length=1);\n\ntype JobsListDLQResponseLimit = int64(min=1);\n\nmodel JobsListServicesRequest {\n page?: CursorQuery;\n}\n\ntype JobsListServicesRequestLimit = int64(min=1);\n\ntype JobsListServicesResponse = CursorPage<JobsListServicesResponseEntriesItem>;\n\nmodel JobsListServicesResponseEntriesItem {\n healthy: bool;\n name: JobsListServicesResponseEntriesItemName;\n workers: list<JobsListServicesResponseEntriesItemWorkersItem>;\n}\n\ntype JobsListServicesResponseEntriesItemName = string(min_length=1);\n\nmodel JobsListServicesResponseEntriesItemWorkersItem {\n concurrency?: JobsListServicesResponseEntriesItemWorkersItemConcurrency;\n instanceId: JobsListServicesResponseEntriesItemWorkersItemInstanceId;\n jobType: JobsListServicesResponseEntriesItemWorkersItemJobType;\n service: JobsListServicesResponseEntriesItemWorkersItemService;\n timestamp: string;\n version?: JobsListServicesResponseEntriesItemWorkersItemVersion;\n}\n\ntype JobsListServicesResponseEntriesItemWorkersItemConcurrency = int64(min=1);\n\ntype JobsListServicesResponseEntriesItemWorkersItemInstanceId = string(min_length=1);\n\ntype JobsListServicesResponseEntriesItemWorkersItemJobType = string(min_length=1);\n\ntype JobsListServicesResponseEntriesItemWorkersItemService = string(min_length=1);\n\ntype JobsListServicesResponseEntriesItemWorkersItemVersion = string(min_length=1);\n\ntype JobsListServicesResponseLimit = int64(min=1);\n\nmodel JobsMetricsBucket {\n end: string;\n groups: list<JobsMetricsBucketGroupsItem>;\n start: string;\n}\n\nmodel JobsMetricsBucketGroup {\n cancelled: uint64;\n completed: uint64;\n dead: uint64;\n dismissed: uint64;\n failed: uint64;\n key: string;\n label: string;\n queueWait: JobsMetricsBucketGroupQueueWait;\n retried: uint64;\n runtime: JobsMetricsBucketGroupRuntime;\n started: uint64;\n submitted: uint64;\n}\n\nmodel JobsMetricsBucketGroupQueueWait {\n count: uint64;\n maxMs?: uint64;\n p50Ms?: uint64;\n p95Ms?: uint64;\n}\n\nmodel JobsMetricsBucketGroupRuntime {\n count: uint64;\n maxMs?: uint64;\n p50Ms?: uint64;\n p95Ms?: uint64;\n}\n\nmodel JobsMetricsBucketGroupsItem {\n cancelled: uint64;\n completed: uint64;\n dead: uint64;\n dismissed: uint64;\n failed: uint64;\n key: string;\n label: string;\n queueWait: JobsMetricsBucketGroupsItemQueueWait;\n retried: uint64;\n runtime: JobsMetricsBucketGroupsItemRuntime;\n started: uint64;\n submitted: uint64;\n}\n\nmodel JobsMetricsBucketGroupsItemQueueWait {\n count: uint64;\n maxMs?: uint64;\n p50Ms?: uint64;\n p95Ms?: uint64;\n}\n\nmodel JobsMetricsBucketGroupsItemRuntime {\n count: uint64;\n maxMs?: uint64;\n p50Ms?: uint64;\n p95Ms?: uint64;\n}\n\nmodel JobsMetricsLatency {\n count: uint64;\n maxMs?: uint64;\n p50Ms?: uint64;\n p95Ms?: uint64;\n}\n\nmodel JobsMetricsRequest {\n groupBy: JobsMetricsRequestGroupBy;\n queueKey?: string;\n service?: JobsMetricsRequestService;\n state?: list<JobsMetricsRequestState>;\n step: string;\n trigger?: string;\n type?: JobsMetricsRequestType;\n window: string;\n}\n\nenum JobsMetricsRequestGroupBy {\n \"queueKey\";\n \"service\";\n \"state\";\n \"trigger\";\n \"type\";\n}\n\ntype JobsMetricsRequestService = string(min_length=1);\n\nenum JobsMetricsRequestState {\n \"active\";\n \"cancelled\";\n \"completed\";\n \"dead\";\n \"dismissed\";\n \"expired\";\n \"failed\";\n \"pending\";\n \"retry\";\n \"skipped\";\n \"stale\";\n}\n\ntype JobsMetricsRequestType = string(min_length=1);\n\nmodel JobsMetricsResponse {\n buckets: list<JobsMetricsResponseBucketsItem>;\n generatedAt: string;\n groupBy: string;\n step: string;\n summary: list<JobsMetricsResponseSummaryItem>;\n window: string;\n}\n\nmodel JobsMetricsResponseBucketsItem {\n end: string;\n groups: list<JobsMetricsResponseBucketsItemGroupsItem>;\n start: string;\n}\n\nmodel JobsMetricsResponseBucketsItemGroupsItem {\n cancelled: uint64;\n completed: uint64;\n dead: uint64;\n dismissed: uint64;\n failed: uint64;\n key: string;\n label: string;\n queueWait: JobsMetricsResponseBucketsItemGroupsItemQueueWait;\n retried: uint64;\n runtime: JobsMetricsResponseBucketsItemGroupsItemRuntime;\n started: uint64;\n submitted: uint64;\n}\n\nmodel JobsMetricsResponseBucketsItemGroupsItemQueueWait {\n count: uint64;\n maxMs?: uint64;\n p50Ms?: uint64;\n p95Ms?: uint64;\n}\n\nmodel JobsMetricsResponseBucketsItemGroupsItemRuntime {\n count: uint64;\n maxMs?: uint64;\n p50Ms?: uint64;\n p95Ms?: uint64;\n}\n\nmodel JobsMetricsResponseSummaryItem {\n byState: map<uint64>;\n dead?: uint64;\n failed?: uint64;\n failureRate?: JobsMetricsResponseSummaryItemFailureRate;\n key: string;\n label: string;\n latestUpdatedAt?: string;\n oldestCreatedAt?: string;\n queueWait: JobsMetricsResponseSummaryItemQueueWait;\n queued?: uint64;\n running?: uint64;\n runtime: JobsMetricsResponseSummaryItemRuntime;\n slow?: uint64;\n total: uint64;\n}\n\ntype JobsMetricsResponseSummaryItemFailureRate = number(min=0);\n\nmodel JobsMetricsResponseSummaryItemQueueWait {\n count: uint64;\n maxMs?: uint64;\n p50Ms?: uint64;\n p95Ms?: uint64;\n}\n\nmodel JobsMetricsResponseSummaryItemRuntime {\n count: uint64;\n maxMs?: uint64;\n p50Ms?: uint64;\n p95Ms?: uint64;\n}\n\nmodel JobsMetricsSummaryGroup {\n byState: map<uint64>;\n dead?: uint64;\n failed?: uint64;\n failureRate?: JobsMetricsSummaryGroupFailureRate;\n key: string;\n label: string;\n latestUpdatedAt?: string;\n oldestCreatedAt?: string;\n queueWait: JobsMetricsSummaryGroupQueueWait;\n queued?: uint64;\n running?: uint64;\n runtime: JobsMetricsSummaryGroupRuntime;\n slow?: uint64;\n total: uint64;\n}\n\ntype JobsMetricsSummaryGroupFailureRate = number(min=0);\n\nmodel JobsMetricsSummaryGroupQueueWait {\n count: uint64;\n maxMs?: uint64;\n p50Ms?: uint64;\n p95Ms?: uint64;\n}\n\nmodel JobsMetricsSummaryGroupRuntime {\n count: uint64;\n maxMs?: uint64;\n p50Ms?: uint64;\n p95Ms?: uint64;\n}\n\nmodel JobsNotFoundErrorData {\n context?: JobsNotFoundErrorDataContext;\n id: JobsNotFoundErrorDataId;\n jobId?: JobsNotFoundErrorDataJobId;\n message: string;\n resource: JobsNotFoundErrorDataResource;\n traceId?: string;\n type: JobsNotFoundErrorDataType;\n}\n\nmodel JobsNotFoundErrorDataContext {\n}\n\ntype JobsNotFoundErrorDataId = string(min_length=1);\n\ntype JobsNotFoundErrorDataJobId = string(min_length=1);\n\ntype JobsNotFoundErrorDataResource = string(min_length=1);\n\nenum JobsNotFoundErrorDataType {\n \"NotFoundError\";\n}\n\nmodel JobsQueryRequest {\n groupBy?: JobsQueryRequestGroupBy;\n page?: CursorQuery;\n queueKey?: string;\n runtimeBand?: JobsQueryRequestRuntimeBand;\n search?: string;\n service?: JobsQueryRequestService;\n sort?: JobsQueryRequestSort;\n state?: list<JobsQueryRequestState>;\n trigger?: string;\n type?: JobsQueryRequestType;\n window?: string;\n}\n\nenum JobsQueryRequestGroupBy {\n \"queueKey\";\n \"runtimeBand\";\n \"service\";\n \"state\";\n \"trigger\";\n \"type\";\n}\n\ntype JobsQueryRequestLimit = int64(min=1);\n\nenum JobsQueryRequestRuntimeBand {\n \"queued\";\n \"running\";\n \"slow\";\n \"terminal\";\n}\n\ntype JobsQueryRequestService = string(min_length=1);\n\nmodel JobsQueryRequestSort {\n direction?: JobsQueryRequestSortDirection;\n field: JobsQueryRequestSortField;\n}\n\nenum JobsQueryRequestSortDirection {\n \"asc\";\n \"desc\";\n}\n\nenum JobsQueryRequestSortField {\n \"depth\";\n \"failureRate\";\n \"queueAge\";\n \"retries\";\n \"runtime\";\n \"updatedAt\";\n}\n\nenum JobsQueryRequestState {\n \"active\";\n \"cancelled\";\n \"completed\";\n \"dead\";\n \"dismissed\";\n \"expired\";\n \"failed\";\n \"pending\";\n \"retry\";\n \"skipped\";\n \"stale\";\n}\n\ntype JobsQueryRequestType = string(min_length=1);\n\ntype JobsQueryResponse = CursorPage<JobsQueryResponseEntriesItem>;\n\nmodel JobsQueryResponseEntriesItem {\n completedAt?: string;\n context?: JobsQueryResponseEntriesItemContext;\n createdAt: string;\n errorFingerprint?: string;\n id: JobsQueryResponseEntriesItemId;\n lastError?: string;\n lineage?: JobsQueryResponseEntriesItemLineage;\n maxTries: JobsQueryResponseEntriesItemMaxTries;\n progress?: JobsQueryResponseEntriesItemProgress;\n queueAgeMs?: uint64;\n queueKey?: string;\n runtimeBand?: string;\n runtimeMs?: uint64;\n service: JobsQueryResponseEntriesItemService;\n startedAt?: string;\n state: JobsQueryResponseEntriesItemState;\n tries: uint64;\n trigger?: JobsQueryResponseEntriesItemTrigger;\n type: JobsQueryResponseEntriesItemType;\n updatedAt: string;\n waitingOn?: list<JobsQueryResponseEntriesItemWaitingOnItem>;\n}\n\nmodel JobsQueryResponseEntriesItemContext {\n requestId: JobsQueryResponseEntriesItemContextRequestId;\n traceId: string;\n traceparent: string;\n tracestate?: JobsQueryResponseEntriesItemContextTracestate;\n}\n\ntype JobsQueryResponseEntriesItemContextRequestId = string(min_length=1);\n\ntype JobsQueryResponseEntriesItemContextTracestate = string(min_length=1);\n\ntype JobsQueryResponseEntriesItemId = string(min_length=1);\n\nmodel JobsQueryResponseEntriesItemLineage {\n operationId?: string;\n parentJobId?: string;\n relatedKeys?: list<string>;\n rootJobId?: string;\n}\n\ntype JobsQueryResponseEntriesItemMaxTries = int64(min=1);\n\nmodel JobsQueryResponseEntriesItemProgress {\n current?: uint64;\n message?: string;\n step?: string;\n total?: uint64;\n}\n\ntype JobsQueryResponseEntriesItemService = string(min_length=1);\n\nenum JobsQueryResponseEntriesItemState {\n \"active\";\n \"cancelled\";\n \"completed\";\n \"dead\";\n \"dismissed\";\n \"expired\";\n \"failed\";\n \"pending\";\n \"retry\";\n \"skipped\";\n \"stale\";\n}\n\nmodel JobsQueryResponseEntriesItemTrigger {\n id?: string;\n kind: JobsQueryResponseEntriesItemTriggerKind;\n operationId?: string;\n parentJobId?: string;\n requestId?: string;\n subject?: string;\n traceId?: string;\n}\n\nenum JobsQueryResponseEntriesItemTriggerKind {\n \"event\";\n \"manualReplay\";\n \"operation\";\n \"parentJob\";\n \"rpc\";\n \"schedule\";\n \"serviceCode\";\n}\n\ntype JobsQueryResponseEntriesItemType = string(min_length=1);\n\nmodel JobsQueryResponseEntriesItemWaitingOnItem {\n id: JobsQueryResponseEntriesItemWaitingOnItemId;\n label?: JobsQueryResponseEntriesItemWaitingOnItemLabel;\n startedAt: string;\n target: JobsQueryResponseEntriesItemWaitingOnItemTarget;\n}\n\ntype JobsQueryResponseEntriesItemWaitingOnItemId = string(min_length=1);\n\ntype JobsQueryResponseEntriesItemWaitingOnItemLabel = string(min_length=1);\n\nmodel JobsQueryResponseEntriesItemWaitingOnItemTarget {\n id?: JobsQueryResponseEntriesItemWaitingOnItemTargetId;\n key?: JobsQueryResponseEntriesItemWaitingOnItemTargetKey;\n kind: JobsQueryResponseEntriesItemWaitingOnItemTargetKind;\n label?: JobsQueryResponseEntriesItemWaitingOnItemTargetLabel;\n operation?: JobsQueryResponseEntriesItemWaitingOnItemTargetOperation;\n operationId?: JobsQueryResponseEntriesItemWaitingOnItemTargetOperationId;\n service?: JobsQueryResponseEntriesItemWaitingOnItemTargetService;\n system?: JobsQueryResponseEntriesItemWaitingOnItemTargetSystem;\n type?: JobsQueryResponseEntriesItemWaitingOnItemTargetType;\n}\n\ntype JobsQueryResponseEntriesItemWaitingOnItemTargetId = string(min_length=1);\n\ntype JobsQueryResponseEntriesItemWaitingOnItemTargetKey = string(min_length=1);\n\nenum JobsQueryResponseEntriesItemWaitingOnItemTargetKind {\n \"external\";\n \"job\";\n \"operation\";\n}\n\ntype JobsQueryResponseEntriesItemWaitingOnItemTargetLabel = string(min_length=1);\n\ntype JobsQueryResponseEntriesItemWaitingOnItemTargetOperation = string(min_length=1);\n\ntype JobsQueryResponseEntriesItemWaitingOnItemTargetOperationId = string(min_length=1);\n\ntype JobsQueryResponseEntriesItemWaitingOnItemTargetService = string(min_length=1);\n\ntype JobsQueryResponseEntriesItemWaitingOnItemTargetSystem = string(min_length=1);\n\ntype JobsQueryResponseEntriesItemWaitingOnItemTargetType = string(min_length=1);\n\nmodel JobsQueryResponseGroupsItem {\n count: uint64;\n depth?: uint64;\n failureRate?: JobsQueryResponseGroupsItemFailureRate;\n key: string;\n label: string;\n latestUpdatedAt?: string;\n oldestCreatedAt?: string;\n state?: JobsQueryResponseGroupsItemState;\n}\n\ntype JobsQueryResponseGroupsItemFailureRate = number(min=0);\n\nenum JobsQueryResponseGroupsItemState {\n \"active\";\n \"cancelled\";\n \"completed\";\n \"dead\";\n \"dismissed\";\n \"expired\";\n \"failed\";\n \"pending\";\n \"retry\";\n \"skipped\";\n \"stale\";\n}\n\ntype JobsQueryResponseLimit = int64(min=1);\n\nmodel JobsQueryResponseStats {\n byState: map<uint64>;\n dead?: uint64;\n failed?: uint64;\n queued?: uint64;\n running?: uint64;\n slow?: uint64;\n total: uint64;\n}\n\nmodel JobsReplayDLQRequest {\n id: JobsReplayDLQRequestId;\n reason?: JobsReplayDLQRequestReason;\n}\n\ntype JobsReplayDLQRequestId = string(min_length=1);\n\ntype JobsReplayDLQRequestReason = string(min_length=1);\n\nmodel JobsReplayDLQResponse {\n job: JobsReplayDLQResponseJob;\n}\n\nmodel JobsReplayDLQResponseJob {\n completedAt?: string;\n concurrency?: JobsReplayDLQResponseJobConcurrency;\n context: JobsReplayDLQResponseJobContext;\n createdAt: string;\n deadline?: string;\n errorDetail?: JobsReplayDLQResponseJobErrorDetail;\n id: JobsReplayDLQResponseJobId;\n lastError?: string;\n lineage?: JobsReplayDLQResponseJobLineage;\n logs?: list<JobsReplayDLQResponseJobLogsItem>;\n maxTries: JobsReplayDLQResponseJobMaxTries;\n payload: bytes;\n progress?: JobsReplayDLQResponseJobProgress;\n queuePolicy?: JobsReplayDLQResponseJobQueuePolicy;\n result?: bytes;\n service: JobsReplayDLQResponseJobService;\n startedAt?: string;\n state: JobsReplayDLQResponseJobState;\n tries: uint64;\n trigger?: JobsReplayDLQResponseJobTrigger;\n type: JobsReplayDLQResponseJobType;\n updatedAt: string;\n waitingOn?: list<JobsReplayDLQResponseJobWaitingOnItem>;\n}\n\nmodel JobsReplayDLQResponseJobConcurrency {\n heartbeatAt?: string;\n key: JobsReplayDLQResponseJobConcurrencyKey;\n keyHash: JobsReplayDLQResponseJobConcurrencyKeyHash;\n leaseExpiresAt?: string;\n staleTakeoverCount?: uint64;\n}\n\ntype JobsReplayDLQResponseJobConcurrencyKey = string(min_length=1);\n\ntype JobsReplayDLQResponseJobConcurrencyKeyHash = string(min_length=1);\n\nmodel JobsReplayDLQResponseJobContext {\n requestId: JobsReplayDLQResponseJobContextRequestId;\n traceId: string;\n traceparent: string;\n tracestate?: JobsReplayDLQResponseJobContextTracestate;\n}\n\ntype JobsReplayDLQResponseJobContextRequestId = string(min_length=1);\n\ntype JobsReplayDLQResponseJobContextTracestate = string(min_length=1);\n\nmodel JobsReplayDLQResponseJobErrorDetail {\n causes?: list<JobsReplayDLQResponseJobErrorDetailCausesItem>;\n fingerprint: JobsReplayDLQResponseJobErrorDetailFingerprint;\n firstSeen?: string;\n message: string;\n occurrenceCount?: uint64;\n stack?: string;\n type?: string;\n worker?: JobsReplayDLQResponseJobErrorDetailWorker;\n}\n\nmodel JobsReplayDLQResponseJobErrorDetailCausesItem {\n}\n\ntype JobsReplayDLQResponseJobErrorDetailFingerprint = string(min_length=1);\n\nmodel JobsReplayDLQResponseJobErrorDetailWorker {\n instanceId?: string;\n runtime?: string;\n service?: string;\n version?: string;\n}\n\ntype JobsReplayDLQResponseJobId = string(min_length=1);\n\nmodel JobsReplayDLQResponseJobLineage {\n operationId?: string;\n parentJobId?: string;\n relatedKeys?: list<string>;\n rootJobId?: string;\n}\n\nmodel JobsReplayDLQResponseJobLogsItem {\n level: JobsReplayDLQResponseJobLogsItemLevel;\n message: string;\n timestamp: string;\n}\n\nenum JobsReplayDLQResponseJobLogsItemLevel {\n \"error\";\n \"info\";\n \"warn\";\n}\n\ntype JobsReplayDLQResponseJobMaxTries = int64(min=1);\n\nmodel JobsReplayDLQResponseJobProgress {\n current?: uint64;\n message?: string;\n step?: string;\n total?: uint64;\n}\n\nmodel JobsReplayDLQResponseJobQueuePolicy {\n existingJobId?: JobsReplayDLQResponseJobQueuePolicyExistingJobId;\n outcome: JobsReplayDLQResponseJobQueuePolicyOutcome;\n reason?: JobsReplayDLQResponseJobQueuePolicyReason;\n replacedJobId?: JobsReplayDLQResponseJobQueuePolicyReplacedJobId;\n}\n\ntype JobsReplayDLQResponseJobQueuePolicyExistingJobId = string(min_length=1);\n\ntype JobsReplayDLQResponseJobQueuePolicyOutcome = string(min_length=1);\n\ntype JobsReplayDLQResponseJobQueuePolicyReason = string(min_length=1);\n\ntype JobsReplayDLQResponseJobQueuePolicyReplacedJobId = string(min_length=1);\n\ntype JobsReplayDLQResponseJobService = string(min_length=1);\n\nenum JobsReplayDLQResponseJobState {\n \"active\";\n \"cancelled\";\n \"completed\";\n \"dead\";\n \"dismissed\";\n \"expired\";\n \"failed\";\n \"pending\";\n \"retry\";\n \"skipped\";\n \"stale\";\n}\n\nmodel JobsReplayDLQResponseJobTrigger {\n id?: string;\n kind: JobsReplayDLQResponseJobTriggerKind;\n operationId?: string;\n parentJobId?: string;\n requestId?: string;\n subject?: string;\n traceId?: string;\n}\n\nenum JobsReplayDLQResponseJobTriggerKind {\n \"event\";\n \"manualReplay\";\n \"operation\";\n \"parentJob\";\n \"rpc\";\n \"schedule\";\n \"serviceCode\";\n}\n\ntype JobsReplayDLQResponseJobType = string(min_length=1);\n\nmodel JobsReplayDLQResponseJobWaitingOnItem {\n id: JobsReplayDLQResponseJobWaitingOnItemId;\n label?: JobsReplayDLQResponseJobWaitingOnItemLabel;\n startedAt: string;\n target: JobsReplayDLQResponseJobWaitingOnItemTarget;\n}\n\ntype JobsReplayDLQResponseJobWaitingOnItemId = string(min_length=1);\n\ntype JobsReplayDLQResponseJobWaitingOnItemLabel = string(min_length=1);\n\nmodel JobsReplayDLQResponseJobWaitingOnItemTarget {\n id?: JobsReplayDLQResponseJobWaitingOnItemTargetId;\n key?: JobsReplayDLQResponseJobWaitingOnItemTargetKey;\n kind: JobsReplayDLQResponseJobWaitingOnItemTargetKind;\n label?: JobsReplayDLQResponseJobWaitingOnItemTargetLabel;\n operation?: JobsReplayDLQResponseJobWaitingOnItemTargetOperation;\n operationId?: JobsReplayDLQResponseJobWaitingOnItemTargetOperationId;\n service?: JobsReplayDLQResponseJobWaitingOnItemTargetService;\n system?: JobsReplayDLQResponseJobWaitingOnItemTargetSystem;\n type?: JobsReplayDLQResponseJobWaitingOnItemTargetType;\n}\n\ntype JobsReplayDLQResponseJobWaitingOnItemTargetId = string(min_length=1);\n\ntype JobsReplayDLQResponseJobWaitingOnItemTargetKey = string(min_length=1);\n\nenum JobsReplayDLQResponseJobWaitingOnItemTargetKind {\n \"external\";\n \"job\";\n \"operation\";\n}\n\ntype JobsReplayDLQResponseJobWaitingOnItemTargetLabel = string(min_length=1);\n\ntype JobsReplayDLQResponseJobWaitingOnItemTargetOperation = string(min_length=1);\n\ntype JobsReplayDLQResponseJobWaitingOnItemTargetOperationId = string(min_length=1);\n\ntype JobsReplayDLQResponseJobWaitingOnItemTargetService = string(min_length=1);\n\ntype JobsReplayDLQResponseJobWaitingOnItemTargetSystem = string(min_length=1);\n\ntype JobsReplayDLQResponseJobWaitingOnItemTargetType = string(min_length=1);\n\nmodel JobsRetryRequest {\n id: JobsRetryRequestId;\n reason?: JobsRetryRequestReason;\n}\n\ntype JobsRetryRequestId = string(min_length=1);\n\ntype JobsRetryRequestReason = string(min_length=1);\n\nmodel JobsRetryResponse {\n job: JobsRetryResponseJob;\n}\n\nmodel JobsRetryResponseJob {\n completedAt?: string;\n concurrency?: JobsRetryResponseJobConcurrency;\n context: JobsRetryResponseJobContext;\n createdAt: string;\n deadline?: string;\n errorDetail?: JobsRetryResponseJobErrorDetail;\n id: JobsRetryResponseJobId;\n lastError?: string;\n lineage?: JobsRetryResponseJobLineage;\n logs?: list<JobsRetryResponseJobLogsItem>;\n maxTries: JobsRetryResponseJobMaxTries;\n payload: bytes;\n progress?: JobsRetryResponseJobProgress;\n queuePolicy?: JobsRetryResponseJobQueuePolicy;\n result?: bytes;\n service: JobsRetryResponseJobService;\n startedAt?: string;\n state: JobsRetryResponseJobState;\n tries: uint64;\n trigger?: JobsRetryResponseJobTrigger;\n type: JobsRetryResponseJobType;\n updatedAt: string;\n waitingOn?: list<JobsRetryResponseJobWaitingOnItem>;\n}\n\nmodel JobsRetryResponseJobConcurrency {\n heartbeatAt?: string;\n key: JobsRetryResponseJobConcurrencyKey;\n keyHash: JobsRetryResponseJobConcurrencyKeyHash;\n leaseExpiresAt?: string;\n staleTakeoverCount?: uint64;\n}\n\ntype JobsRetryResponseJobConcurrencyKey = string(min_length=1);\n\ntype JobsRetryResponseJobConcurrencyKeyHash = string(min_length=1);\n\nmodel JobsRetryResponseJobContext {\n requestId: JobsRetryResponseJobContextRequestId;\n traceId: string;\n traceparent: string;\n tracestate?: JobsRetryResponseJobContextTracestate;\n}\n\ntype JobsRetryResponseJobContextRequestId = string(min_length=1);\n\ntype JobsRetryResponseJobContextTracestate = string(min_length=1);\n\nmodel JobsRetryResponseJobErrorDetail {\n causes?: list<JobsRetryResponseJobErrorDetailCausesItem>;\n fingerprint: JobsRetryResponseJobErrorDetailFingerprint;\n firstSeen?: string;\n message: string;\n occurrenceCount?: uint64;\n stack?: string;\n type?: string;\n worker?: JobsRetryResponseJobErrorDetailWorker;\n}\n\nmodel JobsRetryResponseJobErrorDetailCausesItem {\n}\n\ntype JobsRetryResponseJobErrorDetailFingerprint = string(min_length=1);\n\nmodel JobsRetryResponseJobErrorDetailWorker {\n instanceId?: string;\n runtime?: string;\n service?: string;\n version?: string;\n}\n\ntype JobsRetryResponseJobId = string(min_length=1);\n\nmodel JobsRetryResponseJobLineage {\n operationId?: string;\n parentJobId?: string;\n relatedKeys?: list<string>;\n rootJobId?: string;\n}\n\nmodel JobsRetryResponseJobLogsItem {\n level: JobsRetryResponseJobLogsItemLevel;\n message: string;\n timestamp: string;\n}\n\nenum JobsRetryResponseJobLogsItemLevel {\n \"error\";\n \"info\";\n \"warn\";\n}\n\ntype JobsRetryResponseJobMaxTries = int64(min=1);\n\nmodel JobsRetryResponseJobProgress {\n current?: uint64;\n message?: string;\n step?: string;\n total?: uint64;\n}\n\nmodel JobsRetryResponseJobQueuePolicy {\n existingJobId?: JobsRetryResponseJobQueuePolicyExistingJobId;\n outcome: JobsRetryResponseJobQueuePolicyOutcome;\n reason?: JobsRetryResponseJobQueuePolicyReason;\n replacedJobId?: JobsRetryResponseJobQueuePolicyReplacedJobId;\n}\n\ntype JobsRetryResponseJobQueuePolicyExistingJobId = string(min_length=1);\n\ntype JobsRetryResponseJobQueuePolicyOutcome = string(min_length=1);\n\ntype JobsRetryResponseJobQueuePolicyReason = string(min_length=1);\n\ntype JobsRetryResponseJobQueuePolicyReplacedJobId = string(min_length=1);\n\ntype JobsRetryResponseJobService = string(min_length=1);\n\nenum JobsRetryResponseJobState {\n \"active\";\n \"cancelled\";\n \"completed\";\n \"dead\";\n \"dismissed\";\n \"expired\";\n \"failed\";\n \"pending\";\n \"retry\";\n \"skipped\";\n \"stale\";\n}\n\nmodel JobsRetryResponseJobTrigger {\n id?: string;\n kind: JobsRetryResponseJobTriggerKind;\n operationId?: string;\n parentJobId?: string;\n requestId?: string;\n subject?: string;\n traceId?: string;\n}\n\nenum JobsRetryResponseJobTriggerKind {\n \"event\";\n \"manualReplay\";\n \"operation\";\n \"parentJob\";\n \"rpc\";\n \"schedule\";\n \"serviceCode\";\n}\n\ntype JobsRetryResponseJobType = string(min_length=1);\n\nmodel JobsRetryResponseJobWaitingOnItem {\n id: JobsRetryResponseJobWaitingOnItemId;\n label?: JobsRetryResponseJobWaitingOnItemLabel;\n startedAt: string;\n target: JobsRetryResponseJobWaitingOnItemTarget;\n}\n\ntype JobsRetryResponseJobWaitingOnItemId = string(min_length=1);\n\ntype JobsRetryResponseJobWaitingOnItemLabel = string(min_length=1);\n\nmodel JobsRetryResponseJobWaitingOnItemTarget {\n id?: JobsRetryResponseJobWaitingOnItemTargetId;\n key?: JobsRetryResponseJobWaitingOnItemTargetKey;\n kind: JobsRetryResponseJobWaitingOnItemTargetKind;\n label?: JobsRetryResponseJobWaitingOnItemTargetLabel;\n operation?: JobsRetryResponseJobWaitingOnItemTargetOperation;\n operationId?: JobsRetryResponseJobWaitingOnItemTargetOperationId;\n service?: JobsRetryResponseJobWaitingOnItemTargetService;\n system?: JobsRetryResponseJobWaitingOnItemTargetSystem;\n type?: JobsRetryResponseJobWaitingOnItemTargetType;\n}\n\ntype JobsRetryResponseJobWaitingOnItemTargetId = string(min_length=1);\n\ntype JobsRetryResponseJobWaitingOnItemTargetKey = string(min_length=1);\n\nenum JobsRetryResponseJobWaitingOnItemTargetKind {\n \"external\";\n \"job\";\n \"operation\";\n}\n\ntype JobsRetryResponseJobWaitingOnItemTargetLabel = string(min_length=1);\n\ntype JobsRetryResponseJobWaitingOnItemTargetOperation = string(min_length=1);\n\ntype JobsRetryResponseJobWaitingOnItemTargetOperationId = string(min_length=1);\n\ntype JobsRetryResponseJobWaitingOnItemTargetService = string(min_length=1);\n\ntype JobsRetryResponseJobWaitingOnItemTargetSystem = string(min_length=1);\n\ntype JobsRetryResponseJobWaitingOnItemTargetType = string(min_length=1);\n\nmodel JobsSummaryRequest {\n groupBy?: JobsQueryRequestGroupBy;\n queueKey?: string;\n runtimeBand?: JobsQueryRequestRuntimeBand;\n search?: string;\n service?: JobsQueryRequestService;\n state?: list<JobsQueryRequestState>;\n trigger?: string;\n type?: JobsQueryRequestType;\n window?: string;\n}\n\nmodel JobsSummaryResponse {\n count: uint64;\n groups: list<JobsQueryResponseGroupsItem>;\n stats: JobsQueryResponseStats;\n}\n\ntype JobsWatchFrame = bytes;\n\nmodel JobsWatchFrameValue1 {\n kind: JobsWatchFrameValue1Kind;\n timestamp: string;\n}\n\nenum JobsWatchFrameValue1Kind {\n \"ready\";\n}\n\nmodel JobsWatchFrameValue2 {\n id: JobsWatchFrameValue2Id;\n kind: JobsWatchFrameValue2Kind;\n service: JobsWatchFrameValue2Service;\n state: JobsWatchFrameValue2State;\n type: JobsWatchFrameValue2Type;\n updatedAt: string;\n}\n\ntype JobsWatchFrameValue2Id = string(min_length=1);\n\nenum JobsWatchFrameValue2Kind {\n \"jobChanged\";\n}\n\ntype JobsWatchFrameValue2Service = string(min_length=1);\n\nenum JobsWatchFrameValue2State {\n \"active\";\n \"cancelled\";\n \"completed\";\n \"dead\";\n \"dismissed\";\n \"expired\";\n \"failed\";\n \"pending\";\n \"retry\";\n \"skipped\";\n \"stale\";\n}\n\ntype JobsWatchFrameValue2Type = string(min_length=1);\n\nmodel JobsWatchFrameValue3 {\n kind: JobsWatchFrameValue3Kind;\n reason: string;\n timestamp: string;\n}\n\nenum JobsWatchFrameValue3Kind {\n \"queryInvalidated\";\n}\n\nmodel JobsWatchFrameValue4 {\n id: JobsWatchFrameValue4Id;\n kind: JobsWatchFrameValue4Kind;\n timestamp: string;\n}\n\ntype JobsWatchFrameValue4Id = string(min_length=1);\n\nenum JobsWatchFrameValue4Kind {\n \"jobInspectChanged\";\n}\n\nmodel JobsWatchRequest {\n includeInitial?: bool;\n jobId?: JobsWatchRequestJobId;\n query?: JobsWatchRequestQuery;\n}\n\ntype JobsWatchRequestJobId = string(min_length=1);\n\nmodel JobsWatchRequestQuery {\n groupBy?: JobsWatchRequestQueryGroupBy;\n queueKey?: string;\n runtimeBand?: JobsWatchRequestQueryRuntimeBand;\n search?: string;\n service?: JobsWatchRequestQueryService;\n sort?: JobsWatchRequestQuerySort;\n state?: list<JobsWatchRequestQueryState>;\n trigger?: string;\n type?: JobsWatchRequestQueryType;\n window?: string;\n}\n\nenum JobsWatchRequestQueryGroupBy {\n \"queueKey\";\n \"runtimeBand\";\n \"service\";\n \"state\";\n \"trigger\";\n \"type\";\n}\n\nenum JobsWatchRequestQueryRuntimeBand {\n \"queued\";\n \"running\";\n \"slow\";\n \"terminal\";\n}\n\ntype JobsWatchRequestQueryService = string(min_length=1);\n\nmodel JobsWatchRequestQuerySort {\n direction?: JobsWatchRequestQuerySortDirection;\n field: JobsWatchRequestQuerySortField;\n}\n\nenum JobsWatchRequestQuerySortDirection {\n \"asc\";\n \"desc\";\n}\n\nenum JobsWatchRequestQuerySortField {\n \"depth\";\n \"failureRate\";\n \"queueAge\";\n \"retries\";\n \"runtime\";\n \"updatedAt\";\n}\n\nenum JobsWatchRequestQueryState {\n \"active\";\n \"cancelled\";\n \"completed\";\n \"dead\";\n \"dismissed\";\n \"expired\";\n \"failed\";\n \"pending\";\n \"retry\";\n \"skipped\";\n \"stale\";\n}\n\ntype JobsWatchRequestQueryType = string(min_length=1);\n\nmodel JobsWorkbenchGroup {\n count: uint64;\n depth?: uint64;\n failureRate?: JobsWorkbenchGroupFailureRate;\n key: string;\n label: string;\n latestUpdatedAt?: string;\n oldestCreatedAt?: string;\n state?: JobsWorkbenchGroupState;\n}\n\ntype JobsWorkbenchGroupFailureRate = number(min=0);\n\nenum JobsWorkbenchGroupState {\n \"active\";\n \"cancelled\";\n \"completed\";\n \"dead\";\n \"dismissed\";\n \"expired\";\n \"failed\";\n \"pending\";\n \"retry\";\n \"skipped\";\n \"stale\";\n}\n\nmodel JobsWorkbenchJobRow {\n completedAt?: string;\n context?: JobsWorkbenchJobRowContext;\n createdAt: string;\n errorFingerprint?: string;\n id: JobsWorkbenchJobRowId;\n lastError?: string;\n lineage?: JobsWorkbenchJobRowLineage;\n maxTries: JobsWorkbenchJobRowMaxTries;\n progress?: JobsWorkbenchJobRowProgress;\n queueAgeMs?: uint64;\n queueKey?: string;\n runtimeBand?: string;\n runtimeMs?: uint64;\n service: JobsWorkbenchJobRowService;\n startedAt?: string;\n state: JobsWorkbenchJobRowState;\n tries: uint64;\n trigger?: JobsWorkbenchJobRowTrigger;\n type: JobsWorkbenchJobRowType;\n updatedAt: string;\n waitingOn?: list<JobsWorkbenchJobRowWaitingOnItem>;\n}\n\nmodel JobsWorkbenchJobRowContext {\n requestId: JobsWorkbenchJobRowContextRequestId;\n traceId: string;\n traceparent: string;\n tracestate?: JobsWorkbenchJobRowContextTracestate;\n}\n\ntype JobsWorkbenchJobRowContextRequestId = string(min_length=1);\n\ntype JobsWorkbenchJobRowContextTracestate = string(min_length=1);\n\ntype JobsWorkbenchJobRowId = string(min_length=1);\n\nmodel JobsWorkbenchJobRowLineage {\n operationId?: string;\n parentJobId?: string;\n relatedKeys?: list<string>;\n rootJobId?: string;\n}\n\ntype JobsWorkbenchJobRowMaxTries = int64(min=1);\n\nmodel JobsWorkbenchJobRowProgress {\n current?: uint64;\n message?: string;\n step?: string;\n total?: uint64;\n}\n\ntype JobsWorkbenchJobRowService = string(min_length=1);\n\nenum JobsWorkbenchJobRowState {\n \"active\";\n \"cancelled\";\n \"completed\";\n \"dead\";\n \"dismissed\";\n \"expired\";\n \"failed\";\n \"pending\";\n \"retry\";\n \"skipped\";\n \"stale\";\n}\n\nmodel JobsWorkbenchJobRowTrigger {\n id?: string;\n kind: JobsWorkbenchJobRowTriggerKind;\n operationId?: string;\n parentJobId?: string;\n requestId?: string;\n subject?: string;\n traceId?: string;\n}\n\nenum JobsWorkbenchJobRowTriggerKind {\n \"event\";\n \"manualReplay\";\n \"operation\";\n \"parentJob\";\n \"rpc\";\n \"schedule\";\n \"serviceCode\";\n}\n\ntype JobsWorkbenchJobRowType = string(min_length=1);\n\nmodel JobsWorkbenchJobRowWaitingOnItem {\n id: JobsWorkbenchJobRowWaitingOnItemId;\n label?: JobsWorkbenchJobRowWaitingOnItemLabel;\n startedAt: string;\n target: JobsWorkbenchJobRowWaitingOnItemTarget;\n}\n\ntype JobsWorkbenchJobRowWaitingOnItemId = string(min_length=1);\n\ntype JobsWorkbenchJobRowWaitingOnItemLabel = string(min_length=1);\n\nmodel JobsWorkbenchJobRowWaitingOnItemTarget {\n id?: JobsWorkbenchJobRowWaitingOnItemTargetId;\n key?: JobsWorkbenchJobRowWaitingOnItemTargetKey;\n kind: JobsWorkbenchJobRowWaitingOnItemTargetKind;\n label?: JobsWorkbenchJobRowWaitingOnItemTargetLabel;\n operation?: JobsWorkbenchJobRowWaitingOnItemTargetOperation;\n operationId?: JobsWorkbenchJobRowWaitingOnItemTargetOperationId;\n service?: JobsWorkbenchJobRowWaitingOnItemTargetService;\n system?: JobsWorkbenchJobRowWaitingOnItemTargetSystem;\n type?: JobsWorkbenchJobRowWaitingOnItemTargetType;\n}\n\ntype JobsWorkbenchJobRowWaitingOnItemTargetId = string(min_length=1);\n\ntype JobsWorkbenchJobRowWaitingOnItemTargetKey = string(min_length=1);\n\nenum JobsWorkbenchJobRowWaitingOnItemTargetKind {\n \"external\";\n \"job\";\n \"operation\";\n}\n\ntype JobsWorkbenchJobRowWaitingOnItemTargetLabel = string(min_length=1);\n\ntype JobsWorkbenchJobRowWaitingOnItemTargetOperation = string(min_length=1);\n\ntype JobsWorkbenchJobRowWaitingOnItemTargetOperationId = string(min_length=1);\n\ntype JobsWorkbenchJobRowWaitingOnItemTargetService = string(min_length=1);\n\ntype JobsWorkbenchJobRowWaitingOnItemTargetSystem = string(min_length=1);\n\ntype JobsWorkbenchJobRowWaitingOnItemTargetType = string(min_length=1);\n\nmodel JobsWorkbenchStats {\n byState: map<uint64>;\n dead?: uint64;\n failed?: uint64;\n queued?: uint64;\n running?: uint64;\n slow?: uint64;\n total: uint64;\n}\n\nmodel ResourceActual {\n history?: ResourceHistory;\n maxObjectBytes?: ResourceCapacityBytes;\n maxTotalBytes?: ResourceCapacityBytes;\n maxValueBytes?: ResourceCapacityBytes;\n representationVersion?: StateRepresentationVersion;\n ttlMs?: uint64;\n}\n\ntype ResourceBindingRevision = int64(min=1, max=9007199254740991);\n\ntype ResourceCapacityBytes = uint64(max=9007199254740991);\n\nmodel ResourceCommitment {\n desiredMaxObjectBytes?: ResourceCapacityBytes;\n desiredMaxTotalBytes?: ResourceCapacityBytes;\n desiredMaxValueBytes?: ResourceCapacityBytes;\n history?: ResourceHistory;\n ttlMs?: uint64;\n}\n\nmodel ResourceDesired {\n commitment: ResourceCommitment;\n representationVersion?: StateRepresentationVersion;\n}\n\ntype ResourceHistory = uint64(max=9007199254740991);\n\nmodel ResourceHistoryEntry {\n actual?: ResourceActual;\n changedAt: string;\n desired: ResourceDesired;\n state: ResourceLifecycleState;\n version: ResourceVersion;\n}\n\ntype ResourceId = string(min_length=1);\n\nmodel ResourceInspection {\n actual?: ResourceActual;\n bindingRevision: ResourceBindingRevision;\n commitment: ResourceCommitment;\n createdAt: string;\n desired: ResourceDesired;\n history: list<ResourceHistoryEntry>;\n kind: ResourceKind;\n localName: ResourceLocalName;\n ownerId: ResourceOwnerId;\n ownerKind: ResourceOwnerKind;\n participantId: ResourceParticipantId;\n physicalId?: ResourcePhysicalId;\n readiness: ResourceReadiness;\n resourceId: ResourceId;\n state: ResourceLifecycleState;\n updatedAt: string;\n version: ResourceVersion;\n}\n\nenum ResourceKind {\n \"consumer\";\n \"job\";\n \"kv\";\n \"state\";\n \"store\";\n}\n\nenum ResourceLifecycleState {\n \"destroying\";\n \"detached\";\n \"failed\";\n \"pending\";\n \"ready\";\n}\n\ntype ResourceLocalName = string(min_length=1);\n\ntype ResourceOwnerId = string(min_length=1);\n\nenum ResourceOwnerKind {\n \"agent\";\n \"app\";\n \"device\";\n \"service\";\n}\n\ntype ResourceParticipantId = string(min_length=1);\n\ntype ResourcePhysicalId = string(min_length=1);\n\nmodel ResourceReadiness {\n ready: bool;\n reason?: string;\n}\n\ntype ResourceVersion = int64(min=1, max=9007199254740991);\n\nmodel ResourcesDestroyRequest {\n confirmPhysicalId: ResourcePhysicalId;\n expectedRevision: ResourceBindingRevision;\n resourceId: ResourceId;\n}\n\nmodel ResourcesDestroyResponse {\n destroyed: bool;\n}\n\nmodel ResourcesInspectRequest {\n resourceId: ResourceId;\n}\n\nmodel ResourcesInspectResponse {\n resource: ResourceInspection;\n}\n\nmodel ResourcesQueryRequest {\n kind?: ResourceKind;\n ownerId?: ResourceOwnerId;\n ownerKind?: ResourceOwnerKind;\n page?: CursorQuery;\n participantId?: ResourceParticipantId;\n state?: ResourceLifecycleState;\n}\n\ntype ResourcesQueryResponse = CursorPage<ResourceInspection>;\n\nmodel StateConflict {\n current?: StoredState;\n}\n\nmodel StateDeleteRequest {\n resourceName: StateResourceName;\n revision?: StateRevision;\n}\n\nmodel StateDeleteResponse {\n deleted: bool;\n}\n\nmodel StateGetRequest {\n resourceName: StateResourceName;\n}\n\nmodel StateGetResponse {\n entry?: StoredState;\n}\n\nenum StatePutMode {\n \"create\";\n \"replace\";\n \"set\";\n}\n\nmodel StatePutRequest {\n mode: StatePutMode;\n representationVersion: StateRepresentationVersion;\n resourceName: StateResourceName;\n revision?: StateRevision;\n value: bytes;\n}\n\nmodel StatePutResponse {\n entry: StoredState;\n}\n\nmodel StateRegisterRequest {\n accepts: list<StateRepresentation>;\n expectedRevision: StateRevision;\n idempotencyKey: ulid;\n representation: StateRepresentation;\n resourceName: StateResourceName;\n}\n\nmodel StateRegisterResponse {\n revision: StateRevision;\n}\n\nmodel StateRegistrationConflict {\n currentRevision: StateRevision;\n}\n\nmodel StateRepresentation {\n schema: bytes;\n version: StateRepresentationVersion;\n}\n\nmodel StateRepresentationError {\n representationVersion: StateRepresentationVersion;\n resourceName: StateResourceName;\n}\n\ntype StateRepresentationVersion = uint32(min=1);\n\ntype StateResourceName = string(min_length=1);\n\ntype StateRevision = string(min_length=1);\n\nmodel StoredState {\n createdAt: timestamp;\n representationVersion: StateRepresentationVersion;\n revision: StateRevision;\n updatedAt: timestamp;\n value: bytes;\n}\n\nmodel TrellisSurfaceStatusRequest {\n action?: TrellisSurfaceStatusRequestAction;\n contractId: TrellisSurfaceStatusRequestContractId;\n kind: TrellisSurfaceStatusRequestKind;\n surface: TrellisSurfaceStatusRequestSurface;\n}\n\nenum TrellisSurfaceStatusRequestAction {\n \"call\";\n \"observe\";\n \"publish\";\n \"subscribe\";\n}\n\ntype TrellisSurfaceStatusRequestContractId = string(min_length=1);\n\nenum TrellisSurfaceStatusRequestKind {\n \"event\";\n \"live\";\n \"operation\";\n \"rpc\";\n}\n\ntype TrellisSurfaceStatusRequestSurface = string(min_length=1);\n\nmodel TrellisSurfaceStatusResponse {\n status: bytes;\n}\n\nmodel TrellisSurfaceStatusResponseStatus1 {\n liveImplementer: bool;\n runtime: TrellisSurfaceStatusResponseStatus1Runtime;\n state: TrellisSurfaceStatusResponseStatus1State;\n}\n\nenum TrellisSurfaceStatusResponseStatus1Runtime {\n \"disabled\";\n \"live\";\n \"no_live_implementer\";\n}\n\nenum TrellisSurfaceStatusResponseStatus1State {\n \"available\";\n}\n\nmodel TrellisSurfaceStatusResponseStatus2 {\n reason: TrellisSurfaceStatusResponseStatus2Reason;\n state: TrellisSurfaceStatusResponseStatus2State;\n}\n\nenum TrellisSurfaceStatusResponseStatus2Reason {\n \"authority_unavailable\";\n}\n\nenum TrellisSurfaceStatusResponseStatus2State {\n \"unavailable\";\n}\n\nmodel TrellisSurfaceStatusResponseStatus3 {\n missingCapabilities: list<string>;\n state: TrellisSurfaceStatusResponseStatus3State;\n}\n\nenum TrellisSurfaceStatusResponseStatus3State {\n \"unauthorized\";\n}\n\nmodel TrellisSurfaceStatusResponseStatus4 {\n contractId: TrellisSurfaceStatusResponseStatus4ContractId;\n state: TrellisSurfaceStatusResponseStatus4State;\n}\n\ntype TrellisSurfaceStatusResponseStatus4ContractId = string(min_length=1);\n\nenum TrellisSurfaceStatusResponseStatus4State {\n \"unknown_contract\";\n}\n\nmodel TrellisSurfaceStatusResponseStatus5 {\n contractId: TrellisSurfaceStatusResponseStatus5ContractId;\n kind: TrellisSurfaceStatusResponseStatus5Kind;\n state: TrellisSurfaceStatusResponseStatus5State;\n surface: TrellisSurfaceStatusResponseStatus5Surface;\n}\n\ntype TrellisSurfaceStatusResponseStatus5ContractId = string(min_length=1);\n\ntype TrellisSurfaceStatusResponseStatus5Kind = string(min_length=1);\n\nenum TrellisSurfaceStatusResponseStatus5State {\n \"unknown_surface\";\n}\n\ntype TrellisSurfaceStatusResponseStatus5Surface = string(min_length=1);\n\napi auth@v1 {\n title \"Trellis Auth\";\n description \"Manage principals, whole-capability roles, public OAuth clients, consent, accepted APIs, and logical authorization sessions.\";\n version \"1.0.0\";\n error AuthError(AuthErrorDetails);\n error UnexpectedError(AuthErrorDetails);\n error ValidationError(AuthErrorDetails);\n event AuthorizationSessions.Retired {\n payload AuthSecurityEvent;\n }\n event Connections.Closed {\n payload AuthSecurityEvent;\n }\n event Connections.Kicked {\n payload AuthSecurityEvent;\n }\n event Connections.Opened {\n payload AuthSecurityEvent;\n }\n event Issuers.Revoked {\n payload AuthSecurityEvent;\n }\n event Issuers.Rotated {\n payload AuthSecurityEvent;\n }\n rpc Administration.Reviews.Decide {\n input AuthAdministrationReviewDecideRequest;\n output AuthAdministrationReviewResponse;\n errors [AuthError, UnexpectedError, ValidationError];\n }\n rpc Administration.Reviews.List {\n input AuthPageRequest;\n output AuthAdministrationReviewsListResponse;\n errors [AuthError, UnexpectedError, ValidationError];\n pagination cursor;\n }\n rpc Admission.Renew {\n input AuthAdmissionRenewRequest;\n output AuthAdmissionRenewResponse;\n errors [AuthError, UnexpectedError, ValidationError];\n }\n rpc Apis.Accept {\n input AuthApiAcceptRequest;\n output AuthApiAcceptResponse;\n errors [AuthError, UnexpectedError, ValidationError];\n }\n rpc Apis.ForceReplace {\n input AuthApiForceReplaceRequest;\n output AuthApiAcceptResponse;\n errors [AuthError, UnexpectedError, ValidationError];\n }\n rpc Apis.Get {\n input AuthApiGetRequest;\n output AuthApiGetResponse;\n errors [AuthError, UnexpectedError, ValidationError];\n }\n rpc Apis.List {\n input AuthPageRequest;\n output AuthApisListResponse;\n errors [AuthError, UnexpectedError, ValidationError];\n pagination cursor;\n }\n rpc Apis.Review {\n input AuthApiReviewRequest;\n output AuthApiReviewResponse;\n errors [AuthError, UnexpectedError, ValidationError];\n }\n rpc Authority.Renew {\n input AuthAuthorityRenewRequest;\n output AuthAuthorityRenewResponse;\n errors [AuthError, UnexpectedError, ValidationError];\n }\n rpc AuthorizationSessions.List {\n input AuthAuthorizationSessionsListRequest;\n output AuthAuthorizationSessionsListResponse;\n errors [AuthError, UnexpectedError, ValidationError];\n pagination cursor;\n }\n rpc AuthorizationSessions.Revoke {\n input AuthAuthorizationSessionRevokeRequest;\n output AuthAuthorizationSessionRevokeResponse;\n errors [AuthError, UnexpectedError, ValidationError];\n }\n rpc Capabilities.List {\n input AuthCapabilitiesListRequest;\n output AuthCapabilitiesListResponse;\n errors [AuthError, UnexpectedError, ValidationError];\n pagination cursor;\n }\n rpc CapabilityGrants.Grant {\n input AuthCapabilityGrantRequest;\n output AuthCapabilityGrantResponse;\n errors [AuthError, UnexpectedError, ValidationError];\n }\n rpc CapabilityGrants.List {\n input AuthCapabilityGrantsListRequest;\n output AuthCapabilityGrantsListResponse;\n errors [AuthError, UnexpectedError, ValidationError];\n pagination cursor;\n }\n rpc CapabilityGrants.Revoke {\n input AuthCapabilityRevokeRequest;\n output AuthMutationResult;\n errors [AuthError, UnexpectedError, ValidationError];\n }\n rpc Connections.Kick {\n input AuthConnectionsKickRequest;\n output AuthConnectionsKickResponse;\n errors [AuthError, UnexpectedError, ValidationError];\n }\n rpc Connections.List {\n input AuthConnectionsListRequest;\n output AuthConnectionsListResponse;\n errors [AuthError, UnexpectedError, ValidationError];\n pagination cursor;\n }\n rpc Delegations.List {\n input AuthDelegationsListRequest;\n output AuthDelegationsListResponse;\n errors [AuthError, UnexpectedError, ValidationError];\n pagination cursor;\n }\n rpc Delegations.Review {\n input AuthDelegationReviewRequest;\n output AuthDelegationReviewResponse;\n errors [AuthError, UnexpectedError, ValidationError];\n }\n rpc Delegations.Revoke {\n input AuthDelegationRevokeRequest;\n output AuthMutationResult;\n errors [AuthError, UnexpectedError, ValidationError];\n }\n rpc Deployments.Apply {\n input AuthDeploymentApplyRequest;\n output AuthDeploymentMutationResponse;\n errors [AuthError, UnexpectedError, ValidationError];\n }\n rpc Deployments.Create {\n input AuthDeploymentCreateRequest;\n output AuthDeploymentMutationResponse;\n errors [AuthError, UnexpectedError, ValidationError];\n }\n rpc Deployments.Disable {\n input AuthDeploymentMutationRequest;\n output AuthDeploymentMutationResponse;\n errors [AuthError, UnexpectedError, ValidationError];\n }\n rpc Deployments.Enable {\n input AuthDeploymentMutationRequest;\n output AuthDeploymentMutationResponse;\n errors [AuthError, UnexpectedError, ValidationError];\n }\n rpc Deployments.Get {\n input AuthDeploymentGetRequest;\n output AuthDeploymentGetResponse;\n errors [AuthError, UnexpectedError, ValidationError];\n }\n rpc Deployments.List {\n input AuthPageRequest;\n output AuthDeploymentsListResponse;\n errors [AuthError, UnexpectedError, ValidationError];\n pagination cursor;\n }\n rpc Deployments.Remove {\n input AuthDeploymentMutationRequest;\n output AuthDeploymentMutationResponse;\n errors [AuthError, UnexpectedError, ValidationError];\n }\n rpc DeviceCompanions.Attach {\n input AuthDeviceCompanionAttachRequest;\n output AuthDeviceCompanion;\n errors [AuthError, UnexpectedError, ValidationError];\n }\n rpc DeviceCompanions.Revoke {\n input AuthDeviceCompanionRevokeRequest;\n output AuthMutationResult;\n errors [AuthError, UnexpectedError, ValidationError];\n }\n rpc Devices.Disable {\n input AuthInstanceMutationRequest;\n output AuthInstanceMutationResponse;\n errors [AuthError, UnexpectedError, ValidationError];\n }\n rpc Devices.Enable {\n input AuthInstanceMutationRequest;\n output AuthInstanceMutationResponse;\n errors [AuthError, UnexpectedError, ValidationError];\n }\n rpc Devices.List {\n input AuthInstancesListRequest;\n output AuthInstancesListResponse;\n errors [AuthError, UnexpectedError, ValidationError];\n pagination cursor;\n }\n rpc Devices.Provision {\n input AuthInstanceProvisionRequest;\n output AuthInstanceProvisionResponse;\n errors [AuthError, UnexpectedError, ValidationError];\n }\n rpc Devices.Remove {\n input AuthInstanceMutationRequest;\n output AuthInstanceMutationResponse;\n errors [AuthError, UnexpectedError, ValidationError];\n }\n rpc Devices.Reviews.Decide {\n input AuthDeviceReviewDecideRequest;\n output AuthDeviceReviewResponse;\n errors [AuthError, UnexpectedError, ValidationError];\n }\n rpc Devices.Reviews.Get {\n input AuthDeviceReviewGetRequest;\n output AuthDeviceReviewResponse;\n errors [AuthError, UnexpectedError, ValidationError];\n }\n rpc Devices.Reviews.List {\n input AuthPageRequest;\n output AuthDeviceReviewsListResponse;\n errors [AuthError, UnexpectedError, ValidationError];\n pagination cursor;\n }\n rpc Issuers.Revoke {\n input AuthIssuerRevokeRequest;\n output AuthIssuerRevokeResponse;\n errors [AuthError, UnexpectedError, ValidationError];\n }\n rpc Issuers.Rotate {\n input AuthIssuerRotateRequest;\n output AuthIssuerRotateResponse;\n errors [AuthError, UnexpectedError, ValidationError];\n }\n rpc OAuthClients.Delete {\n input AuthOAuthClientMutationRequest;\n output AuthMutationResult;\n errors [AuthError, UnexpectedError, ValidationError];\n }\n rpc OAuthClients.Disable {\n input AuthOAuthClientMutationRequest;\n output AuthMutationResult;\n errors [AuthError, UnexpectedError, ValidationError];\n }\n rpc OAuthClients.Get {\n input AuthOAuthClientGetRequest;\n output AuthOAuthClientGetResponse;\n errors [AuthError, UnexpectedError, ValidationError];\n }\n rpc OAuthClients.List {\n input AuthPageRequest;\n output AuthOAuthClientsListResponse;\n errors [AuthError, UnexpectedError, ValidationError];\n pagination cursor;\n }\n rpc OAuthClients.Put {\n input AuthOAuthClientPutRequest;\n output AuthOAuthClientGetResponse;\n errors [AuthError, UnexpectedError, ValidationError];\n }\n rpc OIDCProviders.Delete {\n input AuthOIDCProviderMutationRequest;\n output AuthMutationResult;\n errors [AuthError, UnexpectedError, ValidationError];\n }\n rpc OIDCProviders.Disable {\n input AuthOIDCProviderMutationRequest;\n output AuthMutationResult;\n errors [AuthError, UnexpectedError, ValidationError];\n }\n rpc OIDCProviders.Get {\n input AuthOIDCProviderGetRequest;\n output AuthOIDCProviderGetResponse;\n errors [AuthError, UnexpectedError, ValidationError];\n }\n rpc OIDCProviders.List {\n input AuthPageRequest;\n output AuthOIDCProvidersListResponse;\n errors [AuthError, UnexpectedError, ValidationError];\n pagination cursor;\n }\n rpc OIDCProviders.Put {\n input AuthOIDCProviderPutRequest;\n output AuthOIDCProviderGetResponse;\n errors [AuthError, UnexpectedError, ValidationError];\n }\n rpc OIDCRoleMappings.Delete {\n input AuthOIDCRoleMappingDeleteRequest;\n output AuthMutationResult;\n errors [AuthError, UnexpectedError, ValidationError];\n }\n rpc OIDCRoleMappings.List {\n input AuthOIDCRoleMappingsListRequest;\n output AuthOIDCRoleMappingsListResponse;\n errors [AuthError, UnexpectedError, ValidationError];\n pagination cursor;\n }\n rpc OIDCRoleMappings.Put {\n input AuthOIDCRoleMappingPutRequest;\n output AuthOIDCRoleMappingPutResponse;\n errors [AuthError, UnexpectedError, ValidationError];\n }\n rpc Principals.EffectiveAccess {\n input AuthPrincipalRequest;\n output AuthEffectiveAccessResponse;\n errors [AuthError, UnexpectedError, ValidationError];\n }\n rpc ResourceBindings.Query {\n input AuthResourceBindingsQueryRequest;\n output AuthResourceBindingsQueryResponse;\n errors [AuthError, UnexpectedError, ValidationError];\n pagination cursor;\n }\n rpc Resources.Get {\n input AuthResourceGetRequest;\n output AuthResourceGetResponse;\n errors [AuthError, UnexpectedError, ValidationError];\n }\n rpc Resources.List {\n input AuthResourcesListRequest;\n output AuthResourcesListResponse;\n errors [AuthError, UnexpectedError, ValidationError];\n pagination cursor;\n }\n rpc Resources.Remove {\n input AuthResourceRemoveRequest;\n output AuthMutationResult;\n errors [AuthError, UnexpectedError, ValidationError];\n }\n rpc RoleAssignments.Assign {\n input AuthRoleAssignRequest;\n output AuthRoleAssignResponse;\n errors [AuthError, UnexpectedError, ValidationError];\n }\n rpc RoleAssignments.List {\n input AuthRoleAssignmentsListRequest;\n output AuthRoleAssignmentsListResponse;\n errors [AuthError, UnexpectedError, ValidationError];\n pagination cursor;\n }\n rpc RoleAssignments.Revoke {\n input AuthRoleRevokeRequest;\n output AuthMutationResult;\n errors [AuthError, UnexpectedError, ValidationError];\n }\n rpc Roles.Delete {\n input AuthRoleDeleteRequest;\n output AuthMutationResult;\n errors [AuthError, UnexpectedError, ValidationError];\n }\n rpc Roles.Get {\n input AuthRoleGetRequest;\n output AuthRoleGetResponse;\n errors [AuthError, UnexpectedError, ValidationError];\n }\n rpc Roles.List {\n input AuthPageRequest;\n output AuthRolesListResponse;\n errors [AuthError, UnexpectedError, ValidationError];\n pagination cursor;\n }\n rpc Roles.Put {\n input AuthRolePutRequest;\n output AuthRolePutResponse;\n errors [AuthError, UnexpectedError, ValidationError];\n }\n rpc ServiceInstances.Disable {\n input AuthInstanceMutationRequest;\n output AuthInstanceMutationResponse;\n errors [AuthError, UnexpectedError, ValidationError];\n }\n rpc ServiceInstances.Enable {\n input AuthInstanceMutationRequest;\n output AuthInstanceMutationResponse;\n errors [AuthError, UnexpectedError, ValidationError];\n }\n rpc ServiceInstances.List {\n input AuthInstancesListRequest;\n output AuthInstancesListResponse;\n errors [AuthError, UnexpectedError, ValidationError];\n pagination cursor;\n }\n rpc ServiceInstances.Provision {\n input AuthInstanceProvisionRequest;\n output AuthInstanceProvisionResponse;\n errors [AuthError, UnexpectedError, ValidationError];\n }\n rpc ServiceInstances.Remove {\n input AuthInstanceMutationRequest;\n output AuthInstanceMutationResponse;\n errors [AuthError, UnexpectedError, ValidationError];\n }\n rpc Sessions.List {\n input AuthPageRequest;\n output AuthSessionsListResponse;\n errors [AuthError, UnexpectedError, ValidationError];\n pagination cursor;\n }\n rpc Sessions.Logout {\n input AuthEmpty;\n output AuthSessionsLogoutResponse;\n errors [AuthError, UnexpectedError, ValidationError];\n }\n rpc Sessions.Me {\n input AuthEmpty;\n output AuthSessionsMeResponse;\n errors [AuthError, UnexpectedError, ValidationError];\n }\n rpc Sessions.Revoke {\n input AuthLoginRevokeRequest;\n output AuthMutationResult;\n errors [AuthError, UnexpectedError, ValidationError];\n }\n rpc UserIdentities.List {\n input AuthPageRequest;\n output AuthUserIdentitiesListResponse;\n errors [AuthError, UnexpectedError, ValidationError];\n pagination cursor;\n }\n rpc UserIdentities.Unlink {\n input AuthUserIdentityUnlinkRequest;\n output AuthMutationResult;\n errors [AuthError, UnexpectedError, ValidationError];\n }\n rpc Users.Create {\n input AuthUserCreateRequest;\n output AuthUserGetResponse;\n errors [AuthError, UnexpectedError, ValidationError];\n }\n rpc Users.Get {\n input AuthUserGetRequest;\n output AuthUserGetResponse;\n errors [AuthError, UnexpectedError, ValidationError];\n }\n rpc Users.IdentityLink.Create {\n input AuthIdentityLinkCreateRequest;\n output AuthIdentityLinkCreateResponse;\n errors [AuthError, UnexpectedError, ValidationError];\n }\n rpc Users.List {\n input AuthPageRequest;\n output AuthUsersListResponse;\n errors [AuthError, UnexpectedError, ValidationError];\n pagination cursor;\n }\n rpc Users.Password.Change {\n input AuthPasswordChangeRequest;\n output AuthMutationResult;\n errors [AuthError, UnexpectedError, ValidationError];\n }\n rpc Users.PasswordReset.Create {\n input AuthPasswordResetCreateRequest;\n output AuthPasswordResetCreateResponse;\n errors [AuthError, UnexpectedError, ValidationError];\n }\n rpc Users.Profile.Update {\n input AuthUserProfileUpdateRequest;\n output AuthUserGetResponse;\n errors [AuthError, UnexpectedError, ValidationError];\n }\n rpc Users.Resolve {\n input AuthEmpty;\n output AuthUserGetResponse;\n errors [AuthError, UnexpectedError, ValidationError];\n }\n rpc Users.Update {\n input AuthUserUpdateRequest;\n output AuthUserGetResponse;\n errors [AuthError, UnexpectedError, ValidationError];\n }\n capabilities {\n capability account.changePassword {\n title \"Change your password\";\n description \"Change your password using your current one.\";\n grants \"Changes your password and signs out your other sessions.\";\n allows {\n rpc Users.Password.Change;\n }\n }\n capability account.edit {\n title \"Edit your profile\";\n description \"Change your display name, email, and photo.\";\n grants \"Changes what other apps see about you. Emails entered here are not verified.\";\n allows {\n rpc Users.Profile.Update;\n }\n }\n capability account.linkDevice {\n title \"Link to a device\";\n description \"Link this sign-in to a device you approved, or unlink it.\";\n grants \"The device can recognize this sign-in. Unlinking signs it out.\";\n allows {\n rpc DeviceCompanions.Attach;\n rpc DeviceCompanions.Revoke;\n rpc Devices.Reviews.Get;\n }\n }\n capability account.read {\n title \"See your profile\";\n description \"See your name, email, and account, and sign you out.\";\n grants \"Can read your profile and email and end your current sign-in.\";\n allows {\n rpc Sessions.Logout;\n rpc Sessions.Me;\n rpc Users.Resolve;\n }\n }\n capability apis.accept {\n administrative;\n title \"Install API updates\";\n description \"Review and install compatible API updates.\";\n grants \"Changes what installed APIs offer to every app.\";\n allows {\n rpc Apis.Accept;\n rpc Apis.Get;\n rpc Apis.List;\n rpc Apis.Review;\n }\n }\n capability apis.forceReplace {\n administrative;\n title \"Force API replacements\";\n description \"Install API updates that break compatibility.\";\n grants \"Affected apps lose access and are signed out until people approve them again.\";\n allows {\n rpc Apis.ForceReplace;\n rpc Apis.Get;\n rpc Apis.List;\n rpc Apis.Review;\n }\n }\n capability bindings.readEvents {\n title \"Read event delivery settings\";\n description \"Look up which services own which event consumers.\";\n grants \"Can see event consumer ownership.\";\n allows {\n rpc ResourceBindings.Query;\n }\n }\n capability bindings.readJobs {\n title \"Read job storage settings\";\n description \"Look up which services own which job queues.\";\n grants \"Can see job queue ownership.\";\n allows {\n rpc ResourceBindings.Query;\n }\n }\n capability clients.manage {\n administrative;\n title \"Manage apps\";\n description \"Register apps and change their sign-in settings.\";\n grants \"Decides which apps can ask people for access.\";\n allows {\n rpc OAuthClients.Delete;\n rpc OAuthClients.Disable;\n rpc OAuthClients.Get;\n rpc OAuthClients.List;\n rpc OAuthClients.Put;\n }\n }\n capability delegations.read {\n title \"See your connected apps\";\n description \"See which apps you have allowed and what they can do.\";\n grants \"Can see your app choices.\";\n allows {\n rpc Delegations.List;\n rpc Delegations.Review;\n }\n }\n capability delegations.revoke {\n title \"Disconnect your apps\";\n description \"Remove an app's access to your account.\";\n grants \"The app loses access and is signed out.\";\n allows {\n rpc Delegations.Revoke;\n }\n }\n capability identities.manage {\n title \"Manage linked sign-ins\";\n description \"Link or unlink company accounts.\";\n grants \"Changes which accounts can sign in as you.\";\n allows {\n rpc UserIdentities.Unlink;\n rpc Users.IdentityLink.Create;\n }\n }\n capability identities.read {\n title \"See linked sign-ins\";\n description \"See which company accounts you can sign in with.\";\n grants \"Can see your linked accounts.\";\n allows {\n rpc UserIdentities.List;\n }\n }\n capability platform.manage {\n administrative;\n title \"Manage this Trellis\";\n description \"Decide who administers this Trellis and manage its signing keys.\";\n grants \"Full control of this Trellis installation.\";\n allows {\n rpc Administration.Reviews.Decide;\n rpc Administration.Reviews.List;\n rpc Issuers.Revoke;\n rpc Issuers.Rotate;\n }\n }\n capability roles.manage {\n administrative;\n title \"Manage roles and access\";\n description \"Change roles, who has them, what each person may do, and roles given by company sign-in.\";\n grants \"Can give any person or app access to anything in this Trellis.\";\n allows {\n rpc Capabilities.List;\n rpc CapabilityGrants.Grant;\n rpc CapabilityGrants.List;\n rpc CapabilityGrants.Revoke;\n rpc OIDCRoleMappings.Delete;\n rpc OIDCRoleMappings.List;\n rpc OIDCRoleMappings.Put;\n rpc Principals.EffectiveAccess;\n rpc RoleAssignments.Assign;\n rpc RoleAssignments.List;\n rpc RoleAssignments.Revoke;\n rpc Roles.Delete;\n rpc Roles.Get;\n rpc Roles.List;\n rpc Roles.Put;\n }\n }\n capability security.observe {\n title \"Watch security activity\";\n description \"Follow sign-ins, sign-outs, and key changes as they happen.\";\n grants \"Can see security activity live.\";\n allows {\n subscribe event AuthorizationSessions.Retired;\n subscribe event Connections.Closed;\n subscribe event Connections.Kicked;\n subscribe event Connections.Opened;\n subscribe event Issuers.Revoked;\n subscribe event Issuers.Rotated;\n }\n }\n capability sessions.read {\n title \"See your sign-ins\";\n description \"See when and where you signed in.\";\n grants \"Can see your sign-in history.\";\n allows {\n rpc Sessions.List;\n }\n }\n capability sessions.revoke {\n title \"Sign out your sessions\";\n description \"End one of your sign-ins.\";\n grants \"Signs out apps that use that sign-in.\";\n allows {\n rpc Sessions.Revoke;\n }\n }\n capability users.manage {\n administrative;\n title \"Manage users and services\";\n description \"Add and change users, sign-in providers, services, devices, storage, sessions, and connections.\";\n grants \"Can create and change any account or service in this Trellis and sign anyone out.\";\n allows {\n rpc AuthorizationSessions.List;\n rpc AuthorizationSessions.Revoke;\n rpc Connections.Kick;\n rpc Connections.List;\n rpc Deployments.Apply;\n rpc Deployments.Create;\n rpc Deployments.Disable;\n rpc Deployments.Enable;\n rpc Deployments.Get;\n rpc Deployments.List;\n rpc Deployments.Remove;\n rpc Devices.Disable;\n rpc Devices.Enable;\n rpc Devices.List;\n rpc Devices.Provision;\n rpc Devices.Remove;\n rpc Devices.Reviews.Decide;\n rpc Devices.Reviews.Get;\n rpc Devices.Reviews.List;\n rpc OIDCProviders.Delete;\n rpc OIDCProviders.Disable;\n rpc OIDCProviders.Get;\n rpc OIDCProviders.List;\n rpc OIDCProviders.Put;\n rpc Resources.Get;\n rpc Resources.List;\n rpc Resources.Remove;\n rpc ServiceInstances.Disable;\n rpc ServiceInstances.Enable;\n rpc ServiceInstances.List;\n rpc ServiceInstances.Provision;\n rpc ServiceInstances.Remove;\n rpc Users.Create;\n rpc Users.Get;\n rpc Users.List;\n rpc Users.PasswordReset.Create;\n rpc Users.Update;\n }\n }\n capability users.read {\n title \"See users\";\n description \"Find people and see their names, emails, and photos.\";\n grants \"Can see everyone's name, email, and photo.\";\n allows {\n rpc Users.Get;\n rpc Users.List;\n }\n }\n group account {\n title \"Your account\";\n description \"See and manage your profile, password, sign-ins, linked identities, connected apps, and devices.\";\n grants \"Can read and change your account and sign you out.\";\n capability account.changePassword;\n capability account.edit;\n capability account.linkDevice;\n capability account.read;\n capability delegations.read;\n capability delegations.revoke;\n capability identities.manage;\n capability identities.read;\n capability sessions.read;\n capability sessions.revoke;\n }\n group administration {\n title \"Administer this Trellis\";\n description \"Manage users, roles, apps, APIs, and who administers this Trellis.\";\n grants \"Full control of this Trellis installation.\";\n capability apis.accept;\n capability apis.forceReplace;\n capability clients.manage;\n capability platform.manage;\n capability roles.manage;\n capability users.manage;\n }\n }\n}\n\napi core@v1 {\n title \"Trellis Core\";\n description \"Trellis runtime and resource administration RPCs.\";\n version \"1.0.0\";\n error UnexpectedError;\n error ValidationError;\n rpc Resources.Destroy {\n input ResourcesDestroyRequest;\n output ResourcesDestroyResponse;\n errors [UnexpectedError, ValidationError];\n }\n rpc Resources.Inspect {\n input ResourcesInspectRequest;\n output ResourcesInspectResponse;\n errors [UnexpectedError, ValidationError];\n }\n rpc Resources.Query {\n input ResourcesQueryRequest;\n output ResourcesQueryResponse;\n errors [UnexpectedError, ValidationError];\n pagination cursor;\n }\n rpc Surface.Status {\n input TrellisSurfaceStatusRequest;\n output TrellisSurfaceStatusResponse;\n errors [UnexpectedError, ValidationError];\n }\n capabilities {\n capability authority.read {\n title \"See runtime status\";\n description \"Check which Trellis features are ready.\";\n grants \"Can see runtime readiness.\";\n allows {\n rpc Surface.Status;\n }\n }\n capability resources.destroy {\n title \"Delete managed resources\";\n description \"Permanently delete Trellis-managed storage.\";\n grants \"Permanently deletes data.\";\n allows {\n rpc Resources.Destroy;\n }\n }\n capability resources.read {\n title \"See managed resources\";\n description \"See Trellis-managed storage and its status.\";\n grants \"Can see resource settings and history.\";\n allows {\n rpc Resources.Inspect;\n rpc Resources.Query;\n }\n }\n }\n}\n\napi events@v1 {\n title \"Trellis Events\";\n description \"Event observability, managed Consumer diagnostics, and dead-letter lifecycle.\";\n version \"1.0.0\";\n error Conflict(EventsErrorData);\n error Forbidden(EventsErrorData);\n error NotFoundError(EventsNotFoundErrorData);\n error Unavailable(EventsErrorData);\n error UnexpectedError;\n error UnreplayableOriginal(EventsErrorData);\n error ValidationError;\n live Watch {\n input EventsWatchRequest;\n event EventsWatchFrame;\n }\n rpc Consumers.Inspect {\n input EventsConsumersInspectRequest;\n output EventsConsumersInspectResponse;\n errors [NotFoundError, UnexpectedError, ValidationError];\n }\n rpc Consumers.Query {\n input EventsConsumersQueryRequest;\n output EventsConsumersQueryResponse;\n errors [UnexpectedError, ValidationError];\n pagination cursor;\n }\n rpc Consumers.ReportDelivery {\n input EventsConsumersReportDeliveryRequest;\n output EventsConsumersReportDeliveryResponse;\n errors [Conflict, Forbidden, NotFoundError, Unavailable, ValidationError];\n }\n rpc DeadLetters.Dismiss {\n input EventsDeadLettersDismissRequest;\n output EventsDeadLettersDismissResponse;\n errors [Conflict, Forbidden, NotFoundError, Unavailable, ValidationError];\n }\n rpc DeadLetters.Inspect {\n input EventsDeadLettersInspectRequest;\n output EventsDeadLettersInspectResponse;\n errors [Forbidden, NotFoundError, Unavailable, ValidationError];\n }\n rpc DeadLetters.Query {\n input EventsDeadLettersQueryRequest;\n output EventsDeadLettersQueryResponse;\n errors [Forbidden, UnexpectedError, ValidationError];\n pagination cursor;\n }\n rpc DeadLetters.Replay {\n input EventsDeadLettersReplayRequest;\n output EventsDeadLettersReplayResponse;\n errors [Conflict, Forbidden, NotFoundError, Unavailable, UnreplayableOriginal, ValidationError];\n }\n rpc Diagnostics {\n input EventsDiagnosticsRequest;\n output EventsDiagnosticsResponse;\n errors [UnexpectedError, ValidationError];\n }\n rpc Inspect {\n input EventsInspectRequest;\n output EventsInspectResponse;\n errors [NotFoundError, UnexpectedError, ValidationError];\n }\n rpc Metrics {\n input EventsMetricsRequest;\n output EventsMetricsResponse;\n errors [UnexpectedError, ValidationError];\n }\n rpc Query {\n input EventsQueryRequest;\n output EventsQueryResponse;\n errors [UnexpectedError, ValidationError];\n pagination cursor;\n }\n capabilities {\n capability consumers.inspect {\n title \"See event consumers\";\n description \"See which services receive events and how delivery is going.\";\n grants \"Can see delivery status.\";\n allows {\n rpc Consumers.Inspect;\n rpc Consumers.Query;\n }\n }\n capability deadLetters.dismiss {\n title \"Dismiss failed deliveries\";\n description \"Clear a failed delivery from the list.\";\n grants \"Removes it from follow-up.\";\n allows {\n rpc DeadLetters.Dismiss;\n }\n }\n capability deadLetters.inspect {\n title \"See failed deliveries\";\n description \"See events that services could not process.\";\n grants \"Can see failed event data and errors.\";\n allows {\n rpc DeadLetters.Inspect;\n rpc DeadLetters.Query;\n }\n }\n capability deadLetters.replay {\n title \"Retry failed deliveries\";\n description \"Send a failed event to its service again.\";\n grants \"The service may repeat its work.\";\n allows {\n rpc DeadLetters.Replay;\n }\n }\n capability diagnostics.read {\n title \"See event diagnostics\";\n description \"See problems with event storage and processing.\";\n grants \"Can see event system errors.\";\n allows {\n rpc Diagnostics;\n }\n }\n capability events.inspect {\n title \"Open events\";\n description \"See an event's full contents and delivery.\";\n grants \"Can see event data.\";\n allows {\n rpc Inspect;\n }\n }\n capability events.observe {\n title \"Watch events live\";\n description \"Follow new events as they happen.\";\n grants \"Can see events live.\";\n allows {\n live Watch;\n }\n }\n capability events.query {\n title \"Search events\";\n description \"Find events in the history.\";\n grants \"Can see event summaries.\";\n allows {\n rpc Query;\n }\n }\n capability metrics.read {\n title \"See event metrics\";\n description \"See event volume and delivery speed.\";\n grants \"Can see event metrics.\";\n allows {\n rpc Metrics;\n }\n }\n capability replays.process {\n title \"Process own event replays\";\n description \"Let a service finish replays of its own events.\";\n grants \"The service can complete its own replays.\";\n allows {\n rpc Consumers.ReportDelivery;\n rpc DeadLetters.Inspect;\n }\n }\n group operator {\n title \"Operate events\";\n description \"Watch events and consumers, and replay or dismiss failed deliveries.\";\n grants \"Can see event data and replay or discard failed deliveries.\";\n capability consumers.inspect;\n capability deadLetters.dismiss;\n capability deadLetters.inspect;\n capability deadLetters.replay;\n capability diagnostics.read;\n capability events.inspect;\n capability events.observe;\n capability events.query;\n capability metrics.read;\n }\n }\n}\n\napi health@v1 {\n title \"Trellis Health\";\n description \"Trellis-managed participant health projection and operational history.\";\n version \"1.0.0\";\n error NotFoundError(HealthNotFoundErrorData);\n error UnexpectedError;\n error ValidationError;\n event Heartbeat {\n payload HealthHeartbeatSample;\n }\n event StatusChanged {\n payload HealthStatusChangedEvent;\n }\n live Watch {\n input HealthWatchRequest;\n event HealthWatchFrame;\n }\n rpc Inspect {\n input HealthInspectRequest;\n output HealthInspectResponse;\n errors [NotFoundError, UnexpectedError, ValidationError];\n }\n rpc Metrics {\n input HealthMetricsRequest;\n output HealthMetricsResponse;\n errors [UnexpectedError, ValidationError];\n }\n rpc Query {\n input HealthQueryRequest;\n output HealthQueryResponse;\n errors [UnexpectedError, ValidationError];\n pagination cursor;\n }\n rpc Summary {\n input HealthSummaryRequest;\n output HealthSummaryResponse;\n errors [UnexpectedError, ValidationError];\n }\n capabilities {\n capability health.inspect {\n title \"See health details\";\n description \"See a service's or device's health history.\";\n grants \"Can see health details.\";\n allows {\n rpc Inspect;\n }\n }\n capability health.observe {\n title \"Watch health live\";\n description \"Follow health changes as they happen.\";\n grants \"Can see health live.\";\n allows {\n live Watch;\n }\n }\n capability health.query {\n title \"Search health\";\n description \"Find services and devices by health.\";\n grants \"Can see health summaries.\";\n allows {\n rpc Query;\n }\n }\n capability health.report {\n title \"Report own health\";\n description \"Let a service or device report its own health.\";\n grants \"Records health for that service or device only.\";\n allows {\n publish event Heartbeat;\n }\n }\n capability metrics.read {\n title \"See health metrics\";\n description \"See health measurements over time.\";\n grants \"Can see health metrics.\";\n allows {\n rpc Metrics;\n }\n }\n capability status.observe {\n title \"Get health alerts\";\n description \"Be told when something becomes healthy or unhealthy.\";\n grants \"Receives health changes.\";\n allows {\n subscribe event StatusChanged;\n }\n }\n capability summary.read {\n title \"See health overview\";\n description \"See how many things are healthy or not.\";\n grants \"Can see overall health.\";\n allows {\n rpc Summary;\n }\n }\n group monitor {\n title \"Monitor health\";\n description \"See the health of services and devices and get alerts.\";\n grants \"Can see health data.\";\n capability health.inspect;\n capability health.observe;\n capability health.query;\n capability metrics.read;\n capability status.observe;\n capability summary.read;\n }\n }\n}\n\napi jobs@v1 {\n title \"Trellis Jobs\";\n description \"Trellis-managed background job administration API.\";\n version \"1.0.0\";\n error NotFoundError(JobsNotFoundErrorData);\n error UnexpectedError;\n error ValidationError;\n live Watch {\n input JobsWatchRequest;\n event JobsWatchFrame;\n }\n rpc Cancel {\n input JobsCancelRequest;\n output JobsCancelResponse;\n errors [NotFoundError, UnexpectedError, ValidationError];\n }\n rpc DismissDLQ {\n input JobsDismissDLQRequest;\n output JobsDismissDLQResponse;\n errors [NotFoundError, UnexpectedError, ValidationError];\n }\n rpc GetKey {\n input JobsGetKeyRequest;\n output JobsGetKeyResponse;\n errors [NotFoundError, UnexpectedError, ValidationError];\n }\n rpc History {\n input JobsHistoryRequest;\n output JobsHistoryResponse;\n errors [UnexpectedError, ValidationError];\n }\n rpc Inspect {\n input JobsInspectRequest;\n output JobsInspectResponse;\n errors [NotFoundError, UnexpectedError, ValidationError];\n }\n rpc ListDLQ {\n input JobsListDLQRequest;\n output JobsListDLQResponse;\n errors [UnexpectedError, ValidationError];\n pagination cursor;\n }\n rpc ListServices {\n input JobsListServicesRequest;\n output JobsListServicesResponse;\n errors [UnexpectedError, ValidationError];\n pagination cursor;\n }\n rpc Metrics {\n input JobsMetricsRequest;\n output JobsMetricsResponse;\n errors [UnexpectedError, ValidationError];\n }\n rpc Query {\n input JobsQueryRequest;\n output JobsQueryResponse;\n errors [UnexpectedError, ValidationError];\n pagination cursor;\n }\n rpc ReplayDLQ {\n input JobsReplayDLQRequest;\n output JobsReplayDLQResponse;\n errors [NotFoundError, UnexpectedError, ValidationError];\n }\n rpc Retry {\n input JobsRetryRequest;\n output JobsRetryResponse;\n errors [NotFoundError, UnexpectedError, ValidationError];\n }\n rpc Summary {\n input JobsSummaryRequest;\n output JobsSummaryResponse;\n errors [UnexpectedError, ValidationError];\n }\n capabilities {\n capability deadLetters.dismiss {\n title \"Dismiss failed jobs\";\n description \"Clear a failed job from the list.\";\n grants \"Removes it from follow-up.\";\n allows {\n rpc DismissDLQ;\n }\n }\n capability deadLetters.read {\n title \"See failed jobs\";\n description \"See jobs that failed for good.\";\n grants \"Can see failed jobs.\";\n allows {\n rpc ListDLQ;\n }\n }\n capability deadLetters.replay {\n title \"Rerun failed jobs\";\n description \"Send a failed job back to run again.\";\n grants \"Work may run again and repeat its effects.\";\n allows {\n rpc ReplayDLQ;\n }\n }\n capability history.read {\n title \"Read own job history\";\n description \"Let a service read the history of its own jobs.\";\n grants \"Only that service's jobs are returned.\";\n allows {\n rpc History;\n }\n }\n capability jobs.cancel {\n title \"Cancel jobs\";\n description \"Stop a waiting or running job.\";\n grants \"Can stop work.\";\n allows {\n rpc Cancel;\n }\n }\n capability jobs.findByKey {\n title \"Find jobs by key\";\n description \"Look up a job by its key.\";\n grants \"Can find jobs by key.\";\n allows {\n rpc GetKey;\n }\n }\n capability jobs.inspect {\n title \"Open jobs\";\n description \"See a job's input, result, and history.\";\n grants \"Can see job data.\";\n allows {\n rpc Inspect;\n }\n }\n capability jobs.observe {\n title \"Watch jobs live\";\n description \"Follow job changes as they happen.\";\n grants \"Can see jobs live.\";\n allows {\n live Watch;\n }\n }\n capability jobs.query {\n title \"Search jobs\";\n description \"Find background jobs.\";\n grants \"Can see job summaries.\";\n allows {\n rpc Query;\n }\n }\n capability jobs.retry {\n title \"Retry jobs\";\n description \"Run a job again.\";\n grants \"Work may run again.\";\n allows {\n rpc Retry;\n }\n }\n capability metrics.read {\n title \"See job metrics\";\n description \"See job speed and throughput.\";\n grants \"Can see job metrics.\";\n allows {\n rpc Metrics;\n }\n }\n capability services.list {\n title \"See job services\";\n description \"See which services run jobs.\";\n grants \"Can see services and their queues.\";\n allows {\n rpc ListServices;\n }\n }\n capability summary.read {\n title \"See job overview\";\n description \"See how many jobs are waiting, running, or failed.\";\n grants \"Can see job counts.\";\n allows {\n rpc Summary;\n }\n }\n group operator {\n title \"Operate jobs\";\n description \"Watch jobs and workers, and cancel, retry, replay, or dismiss jobs.\";\n grants \"Can see job data and change how jobs run.\";\n capability deadLetters.dismiss;\n capability deadLetters.read;\n capability deadLetters.replay;\n capability history.read;\n capability jobs.cancel;\n capability jobs.findByKey;\n capability jobs.inspect;\n capability jobs.observe;\n capability jobs.query;\n capability jobs.retry;\n capability metrics.read;\n capability services.list;\n capability summary.read;\n }\n }\n}\n\napi state@v1 {\n title \"Trellis State\";\n description \"Trellis-managed single-value State for user bindings and service/device principals.\";\n version \"1.0.0\";\n error Conflict(StateConflict);\n error CorruptRepresentation(StateRepresentationError);\n error RegistrationConflict(StateRegistrationConflict);\n error UnsupportedRepresentation(StateRepresentationError);\n live Watch {\n input StateGetRequest;\n event StateGetResponse;\n }\n rpc Delete {\n input StateDeleteRequest;\n output StateDeleteResponse;\n errors [Conflict];\n }\n rpc Get {\n input StateGetRequest;\n output StateGetResponse;\n errors [CorruptRepresentation, UnsupportedRepresentation];\n }\n rpc Put {\n input StatePutRequest;\n output StatePutResponse;\n errors [Conflict, CorruptRepresentation, UnsupportedRepresentation];\n }\n rpc Register {\n input StateRegisterRequest;\n output StateRegisterResponse;\n errors [RegistrationConflict];\n }\n capabilities {\n capability values.delete {\n title \"Delete saved data\";\n description \"Delete data in its space.\";\n grants \"Can remove saved data.\";\n allows {\n rpc Delete;\n }\n }\n capability values.read {\n title \"Read saved data\";\n description \"Read data saved in its space.\";\n grants \"Can see saved data.\";\n allows {\n live Watch;\n rpc Get;\n }\n }\n capability values.write {\n title \"Save data\";\n description \"Create or replace data in its space.\";\n grants \"Can change saved data.\";\n allows {\n rpc Put;\n rpc Register;\n }\n }\n }\n}\n\nservice eventsRuntime {\n implements events;\n use auth {\n required capability bindings.readEvents;\n }\n}\n\nservice healthRuntime {\n implements health;\n}\n\nservice jobsRuntime {\n implements jobs;\n use auth {\n required capability bindings.readJobs;\n }\n}\n\nservice platform {\n implements auth;\n implements core;\n implements state;\n kv connections {\n title \"Connections\";\n description \"Operational attachment presence; policy and enforcement remain in Auth's durable store.\";\n schema AuthAttachment;\n version 1;\n history 1;\n ttl 120000ms;\n desired_max_value 16384B;\n }\n}\n\nagent cli {\n use auth {\n capability account.changePassword;\n capability account.edit;\n capability account.read;\n capability apis.accept;\n capability apis.forceReplace;\n capability clients.manage;\n capability delegations.read;\n capability delegations.revoke;\n capability identities.manage;\n capability identities.read;\n capability platform.manage;\n capability roles.manage;\n capability sessions.read;\n capability sessions.revoke;\n capability users.manage;\n capability users.read;\n }\n use core {\n capability resources.destroy;\n capability resources.read;\n }\n use events {\n capability consumers.inspect;\n capability deadLetters.dismiss;\n capability deadLetters.inspect;\n capability deadLetters.replay;\n capability events.query;\n }\n use health {\n capability health.observe;\n capability health.query;\n }\n use jobs {\n capability jobs.query;\n }\n use state {\n capability values.delete;\n }\n}\n\napp console {\n use auth {\n capability account.changePassword;\n capability account.edit;\n capability account.read;\n capability apis.accept;\n capability apis.forceReplace;\n capability clients.manage;\n capability delegations.read;\n capability delegations.revoke;\n capability identities.manage;\n capability identities.read;\n capability platform.manage;\n capability roles.manage;\n capability security.observe;\n capability sessions.read;\n capability sessions.revoke;\n capability users.manage;\n capability users.read;\n }\n use core {\n capability resources.destroy;\n capability resources.read;\n }\n use events {\n capability consumers.inspect;\n capability deadLetters.dismiss;\n capability deadLetters.inspect;\n capability deadLetters.replay;\n capability diagnostics.read;\n capability events.inspect;\n capability events.observe;\n capability events.query;\n capability metrics.read;\n }\n use health {\n capability health.inspect;\n capability health.observe;\n capability health.query;\n capability metrics.read;\n capability summary.read;\n }\n use jobs {\n capability deadLetters.dismiss;\n capability deadLetters.read;\n capability deadLetters.replay;\n capability jobs.cancel;\n capability jobs.findByKey;\n capability jobs.inspect;\n capability jobs.observe;\n capability jobs.query;\n capability jobs.retry;\n capability metrics.read;\n capability services.list;\n capability summary.read;\n }\n use state {\n capability values.delete;\n capability values.read;\n capability values.write;\n }\n}\n\n",
|
|
1301
|
-
"version": "0.100.0-rc.
|
|
1301
|
+
"version": "0.100.0-rc.5"
|
|
1302
1302
|
}],
|
|
1303
1303
|
"rootDigest": "5oikZNdhNiboROjZwa26SfHYhaoe7wV9QT25-iMR1Ow",
|
|
1304
1304
|
"rootPackage": "trellis"
|