Skip to content

Commit

Permalink
added examples
Browse files Browse the repository at this point in the history
Signed-off-by: munishchouhan <[email protected]>
  • Loading branch information
munishchouhan committed Feb 24, 2025
1 parent a447d8f commit b20802d
Show file tree
Hide file tree
Showing 20 changed files with 228 additions and 23 deletions.
8 changes: 8 additions & 0 deletions typespec/models/BuildStatusResponse.tsp
Original file line number Diff line number Diff line change
@@ -1,6 +1,14 @@
import "./Status.tsp";

@doc("Response payload for build status.")
@example(#{
id:"6c084f2e43f86a78_1",
status:Status.COMPLETED,
startTime:"2024-04-09T20:31:35.355423Z",
duration: "123.914989000",
succeeded: true
}
)
model BuildStatusResponse {
duration: string;
id: string;
Expand Down
7 changes: 6 additions & 1 deletion typespec/models/CondaOpts.tsp
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
@doc("Options for Conda environments.")
@example(#{
basePackages: "python=3.8",
commands: #["pip install bwa", "pip install salmon"],
mambaImage: "mambaorg/micromamba:0.15.3"
})
model CondaOpts {
basePackages: string;
commands: string[];
mambaImage: string;
}
}
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import "./CondaOpts.tsp";

@doc("Package configurations for container builds.")
model Packages {
model CondaPackages {
channels: string[];
condaOpts?: CondaOpts;
entries: string[];
environment: string;
environment?: string;
type: "CONDA";
}
15 changes: 15 additions & 0 deletions typespec/models/ContainerConfig.tsp
Original file line number Diff line number Diff line change
@@ -1,6 +1,21 @@
import "./ContainerLayer.tsp";

@doc("Configuration details for a container.")
@example(#{
cmd: #["echo", "hello"],
entrypoint: #["/bin/sh"],
env: #["FOO=bar"],
layers: #[
#{
gzipDigest: "sha256:1234567890abcdef",
gzipSize: "1234",
location: "https://seqera.io/layer.tar.gz",
skipHashing: false,
tarDigest: "sha256:abcdef1234567890"
}
],
workingDir: "/app"
})
model ContainerConfig {
cmd: string[];
entrypoint: string[];
Expand Down
22 changes: 20 additions & 2 deletions typespec/models/ContainerInspectConfig.tsp
Original file line number Diff line number Diff line change
@@ -1,7 +1,25 @@
import "./RootFS.tsp";

@doc("Configuration details of a container.")
model Config {
@example(#{
architecture: "linux/amd64",
config: #{
attachStdin: false,
attachStdout: true,
attachStderr: true,
tty: false,
env: #["PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"],
cmd: #["sh"],
image: "alpine:latest"
},
container: "docker.io/alpine:latest",
created: "2021-06-10T15:00:00.000000000Z",
rootfs: #{
diff_ids: #["sha256:1234567890abcdef"],
type: "layers"
}
})
model ContainerInspectConfig {
architecture: string;
config: {
attachStdin: boolean;
Expand All @@ -15,4 +33,4 @@ model Config {
container: string;
created: string;
rootfs: RootFS;
}
}
8 changes: 7 additions & 1 deletion typespec/models/ContainerInspectRequest.tsp
Original file line number Diff line number Diff line change
@@ -1,7 +1,13 @@
@doc("Request payload for inspecting a container.")
@example(#{
containerImage: "docker.io/alpine:latest",
towerAccessToken: "1234567890abcdef",
towerEndpoint: "https://api.cloud.seqera.io",
towerWorkspaceId: 1234567890
})
model ContainerInspectRequest {
containerImage: string;
towerAccessToken: string;
towerEndpoint: string;
towerWorkspaceId: int64;
}
}
48 changes: 47 additions & 1 deletion typespec/models/ContainerInspectResponse.tsp
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,60 @@ import "./ContainerInspectConfig.tsp";
import "./Manifest.tsp";

@doc("Response payload for inspecting a container.")
@example(#{
Container: #{
registry: "docker.io",
hostName: "docker.io",
imageName: "alpine",
reference: "latest",
digest: "sha256:1234567890abcdef",
config: #{
architecture: "linux/amd64",
config: #{
attachStdin: false,
attachStdout: true,
attachStderr: true,
tty: false,
env: #["PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"],
cmd: #["sh"],
image: "alpine:latest"
},
container: "docker.io/alpine:latest",
created: "2021-06-10T15:00:00.000000000Z",
rootfs: #{
diff_ids: #["sha256:1234567890abcdef"],
type: "layers"
}
},
manifest: #{
schemaVersion: 2,
mediaType: "application/vnd.docker.distribution.manifest.v2+json",
config: #{
mediaType: "application/vnd.docker.container.image.v1+json",
size: 123456,
digest: "sha256:1234567890abcdef"
},
layers: #[
#{
mediaType: "application/vnd.docker.image.rootfs.diff.tar.gzip",
size: 123456,
digest: "sha256:1234567890abcdef"
}
]
},
v1: false,
v2: true,
oci: false
}
})
model ContainerInspectResponse {
Container: {
registry: string;
hostName: string;
imageName: string;
reference: string;
digest: string;
config: Config;
config: ContainerInspectConfig;
manifest: Manifest;
v1: boolean;
v2: boolean;
Expand Down
7 changes: 7 additions & 0 deletions typespec/models/ContainerLayer.tsp
Original file line number Diff line number Diff line change
@@ -1,4 +1,11 @@
@doc("Represents a layer in a container image.")
@example(#{
gzipDigest: "sha256:1234567890abcdef",
gzipSize: "123456",
location: "https://example.com/image.tar.gz",
skipHashing: false,
tarDigest: "sha256:abcdef1234567890"
})
model ContainerLayer {
gzipDigest: string;
gzipSize: string;
Expand Down
16 changes: 16 additions & 0 deletions typespec/models/ContainerMirrorResponse.tsp
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,22 @@ import "./ContainerPlatform.tsp";
import "./Status.tsp";

@doc("Response payload for container mirroring.")
@example(#{
mirrorId: "6c084f2e43f86a78_1",
digest: "sha256:1234567890abcdef",
sourceImage: "docker.io/alpine:latest",
targetImage: "docker.io/alpine:latest",
platform: #{
os: "LINUX",
arch: "AMD64",
variant: "v1"
},
creationTime: "2024-04-09T20:31:35.355423Z",
status: Status.COMPLETED,
duration: "123.914989000",
exitCode: 0,
logs: "Successfully mirrored image."
})
model ContainerMirrorResponse {
mirrorId: string;
digest: string;
Expand Down
5 changes: 5 additions & 0 deletions typespec/models/ContainerPlatform.tsp
Original file line number Diff line number Diff line change
@@ -1,4 +1,9 @@
@doc("Represents os platform of a container.")
@example(#{
os: "linux",
arch: "amd64",
variant: "v1"
})
model ContainerPlatform {
os: string;
arch: string;
Expand Down
27 changes: 18 additions & 9 deletions typespec/models/ContainerRequest.tsp
Original file line number Diff line number Diff line change
@@ -1,31 +1,40 @@
import "./ContainerConfig.tsp";
import "./Packages.tsp";
import "./CondaPackages.tsp";
import "./ScanMode.tsp";
import "./ScanLevel.tsp";

@doc("Request payload for creating a container token.")
@example(#{
packages:#{
type: "CONDA",
entries: #["salmon", "bwa"],
channels: #["conda-forge", "bioconda"]
},
format: "docker",
containerPlatform:"linux/amd64"
})
model ContainerRequest {
buildContext: ContainerLayer;
buildContext?: ContainerLayer;
buildRepository?: string;
cacheRepository?: string;
containerConfig: ContainerConfig;
containerConfig?: ContainerConfig;
containerFile?: string;
containerImage: string;
containerIncludes: string[];
containerImage?: string;
containerIncludes?: string[];
containerPlatform: string;
dryRun: boolean;
dryRun?: boolean;
fingerprint?: string;
format: "sif" | "docker";
freeze?: boolean;
nameStrategy?: "none" | "tagPrefix" | "imageSuffix";
mirror?: boolean;
packages?: Packages;
packages?: CondaPackages;
scanMode?: ScanMode;
scanLevels?: ScanLevel[];
timestamp: string;
timestamp?: string;
towerAccessToken?: string;
towerEndpoint?: string;
towerRefreshToken?: string;
towerWorkspaceId?: int32;
workflowId: string;
workflowId?: string;
}
13 changes: 13 additions & 0 deletions typespec/models/ContainerResponse.tsp
Original file line number Diff line number Diff line change
@@ -1,6 +1,19 @@
import "./ContainerStatus.tsp";

@doc("Response payload for container token creation.")
@example(#{
containerToken:"732b73aa17c8",
targetImage:"wave.seqera.io/wt/732b73aa17c8/build/dev:salmon_bwa--5e49881e6ad74121",
expiration:"2024-04-09T21:19:01.715321Z",
buildId:"5e49881e6ad74121_1",
cached:false,
freeze:false,
mirror:false,
requestId:"5e49881e6ad74121",
scanId:"5e49881e6ad74121",
containerImage:"docker.io/build/dev:salmon_bwa--5e49881e6ad74121",
status:ContainerStatus.PENDING
})
model ContainerResponse {
buildId: string;
cached: boolean;
Expand Down
16 changes: 13 additions & 3 deletions typespec/models/ContainerStatusResponse.tsp
Original file line number Diff line number Diff line change
@@ -1,15 +1,25 @@
import "./ContainerStatus.tsp";

@doc("Response payload for container status.")
@example(#{
id:"6c084f2e43f86a78",
buildId:"6c084f2e43f86a78_1",
status:ContainerStatus.DONE,
creationTime:"2024-04-09T20:31:35.355423Z",
detailsUri:"https://wave.seqera.io/view/builds/6c084f2e43f86a78_1",
duration:"123.914989000",
succeeded:true,
scanId:"6c084f2e43f86a78_1",
})
model ContainerStatusResponse {
id: string;
status: ContainerStatus;
buildId: string;
mirrorId: string;
mirrorId?: string;
scanId: string;
vulnerabilities: Record<vulnerability>;
vulnerabilities?: Record<vulnerability>;
succeeded: boolean;
reason: string;
reason?: string;
detailsUri: string;
creationTime: string;
duration: string;
Expand Down
18 changes: 17 additions & 1 deletion typespec/models/Manifest.tsp
Original file line number Diff line number Diff line change
@@ -1,6 +1,22 @@
import "./ManifestLayer.tsp";

@doc("Manifest details of a container.")
@example(#{
config: #{
digest: "sha256:6c084f2e43f86a78",
mediaType: "application/vnd.docker.container.image.v1+json",
size: 1234
},
layers: #[
#{
digest: "sha256:6c084f2e43f86a78",
mediaType: "application/vnd.docker.container.image.v1+json",
size: 1234
}
],
mediaType: "application/vnd.docker.container.image.v1+json",
schemaVersion: 2
})
model Manifest {
config: {
digest: string;
Expand All @@ -10,4 +26,4 @@ model Manifest {
layers: ManifestLayer[];
mediaType: string;
schemaVersion: int32;
}
}
7 changes: 6 additions & 1 deletion typespec/models/ManifestLayer.tsp
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
@doc("Manifest layer details of a container.")
@example(#{
digest: "sha256:6c084f2e43f86a78",
mediaType: "application/vnd.docker.container.image.v1+json",
size: 1234
})
model ManifestLayer {
digest: string;
mediaType: string;
size: int64;
}
}
7 changes: 7 additions & 0 deletions typespec/models/RootFS.tsp
Original file line number Diff line number Diff line change
@@ -1,4 +1,11 @@
@doc("Details about the root filesystem of a container.")
@example(#{
diff_ids: #[
"sha256:6c084f2e43f86a78",
"sha256:6c084f2e43f86a78"
],
type: "layers"
})
model RootFS {
diff_ids: string[];
type: string;
Expand Down
5 changes: 5 additions & 0 deletions typespec/models/User.tsp
Original file line number Diff line number Diff line change
@@ -1,4 +1,9 @@
@doc("Wave USer details")
@example(#{
id: 1,
userName: "test",
email: "[email protected]"
})
model User {
id: int64;
userName: string;
Expand Down
6 changes: 5 additions & 1 deletion typespec/models/ValidateRegistryCredsRequest.tsp
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
@doc("request payload of validate credentials request")
@example(#{
password: "password",
registry: "docker.io/wave",
userName: "username"
})
model ValidateRegistryCredsRequest {
password: string;
registry: string;
userName: string;
}

Loading

0 comments on commit b20802d

Please sign in to comment.