package protocol import "time" type ArtifactMetadata struct { ID string `json:"id"` OwnerKind string `json:"ownerKind"` OwnerID string `json:"ownerId"` SizeBytes int64 `json:"sizeBytes"` Checksum string `json:"checksum"` State string `json:"state"` CreatedAt time.Time `json:"createdAt"` UpdatedAt time.Time `json:"updatedAt"` } type ArtifactTransferOpenRequest struct { RunEndpointID string `json:"runEndpointId"` SessionToken string `json:"sessionToken"` ArtifactID string `json:"artifactId"` Direction string `json:"direction"` OwnerKind string `json:"ownerKind"` OwnerID string `json:"ownerId"` SizeBytes int64 `json:"sizeBytes"` ChunkSizeBytes int `json:"chunkSizeBytes"` Checksum string `json:"checksum"` IdempotencyKey string `json:"idempotencyKey"` } type ArtifactTransferOpenResponse struct { Accepted bool `json:"accepted"` TransferID string `json:"transferId"` Direction string `json:"direction"` Artifact ArtifactMetadata `json:"artifact"` TotalChunks int `json:"totalChunks"` ChunkSizeBytes int `json:"chunkSizeBytes"` ReceivedChunkIndexes []int `json:"receivedChunkIndexes"` NextMissingChunkIndex int `json:"nextMissingChunkIndex"` Completed bool `json:"completed"` Duplicate bool `json:"duplicate"` ServerTime time.Time `json:"serverTime"` } type ArtifactChunkUploadRequest struct { RunEndpointID string `json:"runEndpointId"` SessionToken string `json:"sessionToken"` TransferID string `json:"transferId"` ArtifactID string `json:"artifactId"` ChunkIndex int `json:"chunkIndex"` Offset int64 `json:"offset"` SizeBytes int `json:"sizeBytes"` Checksum string `json:"checksum"` Payload []byte `json:"payload"` } type ArtifactChunkUploadResponse struct { Accepted bool `json:"accepted"` TransferID string `json:"transferId"` ArtifactID string `json:"artifactId"` ChunkIndex int `json:"chunkIndex"` ReceivedChunkIndexes []int `json:"receivedChunkIndexes"` NextMissingChunkIndex int `json:"nextMissingChunkIndex"` Duplicate bool `json:"duplicate"` ServerTime time.Time `json:"serverTime"` } type ArtifactTransferStatusRequest struct { RunEndpointID string `json:"runEndpointId"` SessionToken string `json:"sessionToken"` TransferID string `json:"transferId"` ArtifactID string `json:"artifactId"` } type ArtifactTransferStatusResponse struct { Accepted bool `json:"accepted"` TransferID string `json:"transferId"` ArtifactID string `json:"artifactId"` Direction string `json:"direction"` TotalChunks int `json:"totalChunks"` ChunkSizeBytes int `json:"chunkSizeBytes"` ReceivedChunkIndexes []int `json:"receivedChunkIndexes"` NextMissingChunkIndex int `json:"nextMissingChunkIndex"` Completed bool `json:"completed"` ServerTime time.Time `json:"serverTime"` } type ArtifactTransferCompleteRequest struct { RunEndpointID string `json:"runEndpointId"` SessionToken string `json:"sessionToken"` TransferID string `json:"transferId"` ArtifactID string `json:"artifactId"` Checksum string `json:"checksum"` SizeBytes int64 `json:"sizeBytes"` } type ArtifactTransferCompleteResponse struct { Accepted bool `json:"accepted"` TransferID string `json:"transferId"` Artifact ArtifactMetadata `json:"artifact"` Completed bool `json:"completed"` ServerTime time.Time `json:"serverTime"` }