Skip to content

Commit 9b72b1a

Browse files
committed
update specs
1 parent 983b4e1 commit 9b72b1a

4 files changed

Lines changed: 972 additions & 240 deletions

File tree

‎pkg/renkuapi/session/api.spec.yaml‎

Lines changed: 117 additions & 99 deletions
Original file line numberDiff line numberDiff line change
@@ -464,52 +464,50 @@ components:
464464
- $ref: "#/components/schemas/BuildParametersPost"
465465
EnvironmentPost:
466466
description: Data required to create a session environment
467-
type: object
468-
properties:
469-
name:
470-
$ref: "#/components/schemas/SessionName"
471-
description:
472-
$ref: "#/components/schemas/Description"
473-
container_image:
474-
$ref: "#/components/schemas/ContainerImage"
475-
default_url:
476-
allOf:
477-
- $ref: "#/components/schemas/DefaultUrl"
478-
default: /lab
479-
uid:
480-
allOf:
481-
- $ref: "#/components/schemas/EnvironmentUid"
482-
default: 1000
483-
gid:
484-
allOf:
485-
- $ref: "#/components/schemas/EnvironmentGid"
486-
default: 1000
487-
working_directory:
488-
$ref: "#/components/schemas/EnvironmentWorkingDirectory"
489-
mount_directory:
490-
$ref: "#/components/schemas/EnvironmentMountDirectory"
491-
port:
492-
allOf:
493-
- $ref: "#/components/schemas/EnvironmentPort"
494-
default: 8080
495-
command:
496-
$ref: "#/components/schemas/EnvironmentCommand"
497-
args:
498-
$ref: "#/components/schemas/EnvironmentArgs"
499-
is_archived:
500-
allOf:
501-
- $ref: "#/components/schemas/IsArchived"
502-
default: false
503-
environment_image_source:
504-
$ref: "#/components/schemas/EnvironmentImageSourceImage"
505-
strip_path_prefix:
506-
allOf:
507-
- $ref: "#/components/schemas/StripPathPrefix"
508-
default: false
509-
required:
510-
- name
511-
- container_image
512-
- environment_image_source
467+
allOf:
468+
- $ref: "#/components/schemas/CommandAndArgs"
469+
- type: object
470+
properties:
471+
name:
472+
$ref: "#/components/schemas/SessionName"
473+
description:
474+
$ref: "#/components/schemas/Description"
475+
container_image:
476+
$ref: "#/components/schemas/ContainerImage"
477+
default_url:
478+
allOf:
479+
- $ref: "#/components/schemas/DefaultUrl"
480+
default: /lab
481+
uid:
482+
allOf:
483+
- $ref: "#/components/schemas/EnvironmentUid"
484+
default: 1000
485+
gid:
486+
allOf:
487+
- $ref: "#/components/schemas/EnvironmentGid"
488+
default: 1000
489+
working_directory:
490+
$ref: "#/components/schemas/EnvironmentWorkingDirectory"
491+
mount_directory:
492+
$ref: "#/components/schemas/EnvironmentMountDirectory"
493+
port:
494+
allOf:
495+
- $ref: "#/components/schemas/EnvironmentPort"
496+
default: 8080
497+
is_archived:
498+
allOf:
499+
- $ref: "#/components/schemas/IsArchived"
500+
default: false
501+
environment_image_source:
502+
$ref: "#/components/schemas/EnvironmentImageSourceImage"
503+
strip_path_prefix:
504+
allOf:
505+
- $ref: "#/components/schemas/StripPathPrefix"
506+
default: false
507+
required:
508+
- name
509+
- container_image
510+
- environment_image_source
513511
EnvironmentPatchInLauncher:
514512
allOf:
515513
- $ref: "#/components/schemas/EnvironmentPatch"
@@ -522,36 +520,40 @@ components:
522520
build_parameters:
523521
$ref: "#/components/schemas/BuildParametersPatch"
524522
EnvironmentPatch:
525-
type: object
526-
description: Update a session environment
527-
additionalProperties: false
528-
properties:
529-
name:
530-
$ref: "#/components/schemas/SessionName"
531-
description:
532-
$ref: "#/components/schemas/Description"
533-
container_image:
534-
$ref: "#/components/schemas/ContainerImage"
535-
default_url:
536-
$ref: "#/components/schemas/DefaultUrl"
537-
uid:
538-
$ref: "#/components/schemas/EnvironmentUid"
539-
gid:
540-
$ref: "#/components/schemas/EnvironmentGid"
541-
working_directory:
542-
$ref: "#/components/schemas/EnvironmentWorkingDirectoryPatch"
543-
mount_directory:
544-
$ref: "#/components/schemas/EnvironmentMountDirectoryPatch"
545-
port:
546-
$ref: "#/components/schemas/EnvironmentPort"
547-
command:
548-
$ref: "#/components/schemas/EnvironmentPatchCommand"
549-
args:
550-
$ref: "#/components/schemas/EnvironmentPatchArgs"
551-
is_archived:
552-
$ref: "#/components/schemas/IsArchivedPatch"
553-
strip_path_prefix:
554-
$ref: "#/components/schemas/StripPathPrefixPatch"
523+
allOf:
524+
- $ref: "#/components/schemas/CommandAndArgs"
525+
- type: object
526+
description: Update a session environment
527+
additionalProperties: false
528+
properties:
529+
name:
530+
$ref: "#/components/schemas/SessionName"
531+
description:
532+
$ref: "#/components/schemas/Description"
533+
container_image:
534+
$ref: "#/components/schemas/ContainerImage"
535+
default_url:
536+
$ref: "#/components/schemas/DefaultUrl"
537+
uid:
538+
$ref: "#/components/schemas/EnvironmentUid"
539+
gid:
540+
$ref: "#/components/schemas/EnvironmentGid"
541+
working_directory:
542+
$ref: "#/components/schemas/EnvironmentWorkingDirectoryPatch"
543+
mount_directory:
544+
$ref: "#/components/schemas/EnvironmentMountDirectoryPatch"
545+
port:
546+
$ref: "#/components/schemas/EnvironmentPort"
547+
is_archived:
548+
$ref: "#/components/schemas/IsArchivedPatch"
549+
strip_path_prefix:
550+
$ref: "#/components/schemas/StripPathPrefixPatch"
551+
LauncherType:
552+
type: string
553+
enum:
554+
- interactive
555+
- non-interactive
556+
- app
555557
SessionLaunchersList:
556558
description: A list of Renku session launchers
557559
type: array
@@ -580,13 +582,16 @@ components:
580582
$ref: "#/components/schemas/DiskStorage"
581583
env_variables:
582584
$ref: "#/components/schemas/EnvVariables"
585+
launcher_type:
586+
$ref: "#/components/schemas/LauncherType"
583587
required:
584588
- id
585589
- project_id
586590
- name
587591
- creation_date
588592
- environment
589593
- resource_class_id
594+
- launcher_type
590595
SessionLauncherPost:
591596
description: Data required to create a session launcher
592597
type: object
@@ -604,6 +609,9 @@ components:
604609
$ref: "#/components/schemas/DiskStorage"
605610
env_variables:
606611
$ref: "#/components/schemas/EnvVariables"
612+
launcher_type:
613+
$ref: "#/components/schemas/LauncherType"
614+
default: interactive
607615
environment:
608616
oneOf:
609617
- $ref: "#/components/schemas/EnvironmentPostInLauncher"
@@ -612,14 +620,15 @@ components:
612620
- name
613621
- project_id
614622
- environment
623+
- launcher_type
615624
example:
616625
project_id: 01AN4Z79ZS5XN0F25N3DB94T4R
617626
name: Renku R Session
618627
environment:
619628
id: 01AN4Z79ZS6XX96588FDX0H099
620629
SessionLauncherPatch:
621630
type: object
622-
description: Update a session launcher
631+
description: Update a session launcher. For non-interactive launchers, a `command` is required.
623632
additionalProperties: false
624633
properties:
625634
name:
@@ -732,28 +741,31 @@ components:
732741
maxLength: 500
733742
BuildParameters:
734743
description: Build parameters
735-
type: object
736-
additionalProperties: false
737-
properties:
738-
repository:
739-
$ref: "#/components/schemas/Repository"
740-
platforms:
741-
$ref: "#/components/schemas/BuildPlatforms"
742-
builder_variant:
743-
$ref: "#/components/schemas/BuilderVariant"
744-
frontend_variant:
745-
$ref: "#/components/schemas/FrontendVariant"
746-
repository_revision:
747-
$ref: "#/components/schemas/RepositoryRevision"
748-
context_dir:
749-
$ref: "#/components/schemas/BuildContextDir"
750-
required:
751-
- repository
752-
- builder_variant
753-
- frontend_variant
744+
allOf:
745+
- ref: "#/components/schemas/CommandAndArgs"
746+
- type: object
747+
additionalProperties: false
748+
properties:
749+
repository:
750+
$ref: "#/components/schemas/Repository"
751+
platforms:
752+
$ref: "#/components/schemas/BuildPlatforms"
753+
builder_variant:
754+
$ref: "#/components/schemas/BuilderVariant"
755+
frontend_variant:
756+
$ref: "#/components/schemas/FrontendVariant"
757+
repository_revision:
758+
$ref: "#/components/schemas/RepositoryRevision"
759+
context_dir:
760+
$ref: "#/components/schemas/BuildContextDir"
761+
required:
762+
- repository
763+
- builder_variant
764+
- frontend_variant
754765
BuildParametersPost:
755766
allOf:
756767
- $ref: "#/components/schemas/BuildParameters"
768+
- $ref: "#/components/schemas/CommandAndArgs"
757769
- type: object
758770
properties:
759771
environment_image_source:
@@ -776,13 +788,19 @@ components:
776788
$ref: "#/components/schemas/RepositoryRevisionPatch"
777789
context_dir:
778790
$ref: "#/components/schemas/BuildContextDirPatch"
791+
CommandAndArgs:
792+
description: The command and arguments.
793+
type: object
794+
properties:
795+
command:
796+
$ref: "#/components/schemas/EnvironmentCommand"
797+
args:
798+
$ref: "#/components/schemas/EnvironmentArgs"
779799
ContainerImage:
780800
description: A container image
781801
type: string
782802
maxLength: 500
783-
# NOTE: regex for an image name, optionally with a tag or sha256 specified
784-
# based on https://github.com/opencontainers/distribution-spec/blob/main/spec.md
785-
pattern: "^[a-z0-9]+((\\.|_|__|-+)[a-z0-9]+)*(\\/[a-z0-9]+((\\.|_|__|-+)[a-z0-9]+)*)*(:[a-zA-Z0-9_][a-zA-Z0-9._-]{0,127}|@sha256:[a-fA-F0-9]{64}){0,1}$"
803+
minLength: 3
786804
example: renku/renkulab-py:3.10-0.18.1
787805
Repository:
788806
description: A git repository URL

0 commit comments

Comments
 (0)