From d16dbee2d5e24387ce757b3ec450ee4af50ceaf6 Mon Sep 17 00:00:00 2001 From: Patrik Cyvoct Date: Tue, 27 Oct 2020 14:57:30 +0100 Subject: [PATCH 1/4] feat(validation): add optional enum values with warning Signed-off-by: Patrik Cyvoct --- internal/core/arg_specs.go | 4 ++++ internal/core/validate.go | 4 ++++ internal/namespaces/instance/v1/custom_server_create.go | 9 +++++---- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/internal/core/arg_specs.go b/internal/core/arg_specs.go index 6d8c558209..4cba656b48 100644 --- a/internal/core/arg_specs.go +++ b/internal/core/arg_specs.go @@ -84,6 +84,10 @@ type ArgSpec struct { // EnumValues contains all possible values of an enum. EnumValues []string + // BadEnumWarning is the warning printed when the value is not in the EnumValues + // If not set, the value has to be in EnumeValues + BadEnumWarning string + // AutoCompleteFunc is used to autocomplete possible values for a given argument. AutoCompleteFunc AutoCompleteArgFunc diff --git a/internal/core/validate.go b/internal/core/validate.go index 74c2e7a29c..ab0d289793 100644 --- a/internal/core/validate.go +++ b/internal/core/validate.go @@ -142,6 +142,10 @@ func DefaultArgSpecValidateFunc() ArgSpecValidateFunc { } if !stringExists(argSpec.EnumValues, strValue) { + if argSpec.BadEnumWarning != "" { + logger.Warningf(argSpec.BadEnumWarning, strValue) + return nil + } return InvalidValueForEnumError(argSpec.Name, argSpec.EnumValues, strValue) } return nil diff --git a/internal/namespaces/instance/v1/custom_server_create.go b/internal/namespaces/instance/v1/custom_server_create.go index d25ea2d3d9..d0bb9efdcd 100644 --- a/internal/namespaces/instance/v1/custom_server_create.go +++ b/internal/namespaces/instance/v1/custom_server_create.go @@ -56,10 +56,11 @@ func serverCreateCommand() *core.Command { AutoCompleteFunc: instanceServerCreateImageAutoCompleteFunc, }, { - Name: "type", - Short: "Server commercial type", - Default: core.DefaultValueSetter("DEV1-S"), - EnumValues: []string{"GP1-XS", "GP1-S", "GP1-M", "GP1-L", "GP1-XL", "DEV1-S", "DEV1-M", "DEV1-L", "DEV1-XL", "RENDER-S"}, + Name: "type", + Short: "Server commercial type", + Default: core.DefaultValueSetter("DEV1-S"), + EnumValues: []string{"GP1-XS", "GP1-S", "GP1-M", "GP1-L", "GP1-XL", "DEV1-S", "DEV1-M", "DEV1-L", "DEV1-XL", "RENDER-S"}, + BadEnumWarning: "The Commercial Type %s is not supported, it may misbehave\n", }, { Name: "name", From 92b3dff1edb05b81cae33d9b991b11e70df79038 Mon Sep 17 00:00:00 2001 From: Patrik Cyvoct Date: Tue, 27 Oct 2020 15:58:21 +0100 Subject: [PATCH 2/4] fix tests Signed-off-by: Patrik Cyvoct --- ...-error-invalid-instance-type.cassette.yaml | 41 +++++++++++++++++++ ...-errors-error-invalid-instance-type.golden | 9 +--- 2 files changed, 43 insertions(+), 7 deletions(-) create mode 100644 internal/namespaces/instance/v1/testdata/test-create-server-errors-error-invalid-instance-type.cassette.yaml diff --git a/internal/namespaces/instance/v1/testdata/test-create-server-errors-error-invalid-instance-type.cassette.yaml b/internal/namespaces/instance/v1/testdata/test-create-server-errors-error-invalid-instance-type.cassette.yaml new file mode 100644 index 0000000000..46408ab8aa --- /dev/null +++ b/internal/namespaces/instance/v1/testdata/test-create-server-errors-error-invalid-instance-type.cassette.yaml @@ -0,0 +1,41 @@ +--- +version: 1 +interactions: +- request: + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.6+dev (go1.15.3; linux; amd64) cli-e2e-test + url: https://api.scaleway.com/marketplace/v1/images?page=1 + method: GET + response: + body: '{"images": [{"valid_until": null, "description": "Ubuntu is the ideal distribution for scale-out computing, Ubuntu Server helps you make the most of your infrastructure.", "creation_date": "2018-04-27T14:07:25.221998+00:00", "logo": "https://marketplace-logos.s3.nl-ams.scw.cloud/ubuntu.png", "id": "b381b2bf-804a-4b12-91f6-9f4ff273462f", "categories": ["distribution"], "name": "Ubuntu Bionic", "modification_date": "2020-10-07T12:01:05.600220+00:00", "versions": [{"creation_date": "2020-10-07T08:35:24.096155+00:00", "modification_date": "2020-10-07T08:35:24.096155+00:00", "id": "47d38b1a-71a9-4f29-80bc-2dbb7bda7f9f", "local_images": [{"compatible_commercial_types": ["C1"], "arch": "arm", "id": "f63fe42a-900f-4a5e-ba99-ab0e59469b7e", "zone": "par1"}, {"compatible_commercial_types": ["C2S", "C2M", "C2L", "X64-15GB", "X64-30GB", "X64-60GB", "X64-120GB"], "arch": "x86_64", "id": "a7306ef9-5e1b-464d-a409-a44026d91a9e", "zone": "ams1"}, {"compatible_commercial_types": ["ARM64-8GB", "ARM64-2GB", "ARM64-32GB", "ARM64-128GB", "ARM64-4GB", "ARM64-64GB", "ARM64-16GB"], "arch": "arm64", "id": "b4bdbee1-e1f1-4436-8de4-bdb1b6ba4803", "zone": "par1"}, {"compatible_commercial_types": ["ARM64-4GB", "ARM64-128GB", "ARM64-16GB", "ARM64-32GB", "ARM64-8GB", "ARM64-2GB", "ARM64-64GB"], "arch": "arm64", "id": "7663c62b-40e3-4e6b-a835-70723ec2050b", "zone": "ams1"}, {"compatible_commercial_types": ["VC1S", "VC1M", "VC1L", "START1-XS", "START1-S", "START1-M", "START1-L", "DEV1-S", "DEV1-M", "DEV1-L", "DEV1-XL", "GP1-XS", "GP1-S", "GP1-M", "GP1-L", "GP1-XL"], "arch": "x86_64", "id": "01d0489a-1453-4472-b066-045b1fe33eae", "zone": "par1"}, {"compatible_commercial_types": ["VC1S", "VC1M", "VC1L", "START1-XS", "START1-S", "START1-M", "START1-L", "DEV1-S", "DEV1-M", "DEV1-L", "DEV1-XL", "GP1-XS", "GP1-S", "GP1-M", "GP1-L", "GP1-XL"], "arch": "x86_64", "id": "c6677aaf-3dda-4725-b1e3-3a26eaceff29", "zone": "fr-par-2"}, {"compatible_commercial_types": ["VC1S", "VC1M", "VC1L", "START1-XS", "START1-S", "START1-M", "START1-L", "DEV1-S", "DEV1-M", "DEV1-L", "DEV1-XL", "GP1-XS", "GP1-S", "GP1-M", "GP1-L", "GP1-XL"], "arch": "x86_64", "id": "e6797211-55c1-4c4f-a9e0-c475dcb9a570", "zone": "pl-waw-1"}, {"compatible_commercial_types": [], "arch": "arm", "id": "a5076337-734f-4b99-95ed-9a5bc73b9b09", "zone": "ams1"}, {"compatible_commercial_types": ["C2S", "C2M", "C2L", "X64-15GB", "X64-30GB", "X64-60GB", "X64-120GB"], "arch": "x86_64", "id": "60eb89c7-1c29-4a94-a954-dddb81fc1a55", "zone": "par1"}, {"compatible_commercial_types": ["VC1S", "VC1M", "VC1L", "START1-XS", "START1-S", "START1-M", "START1-L", "DEV1-S", "DEV1-M", "DEV1-L", "DEV1-XL", "GP1-XS", "GP1-S", "GP1-M", "GP1-L", "GP1-XL"], "arch": "x86_64", "id": "4804b6d0-c1ff-4fa0-b3a0-9a1bd9f24956", "zone": "ams1"}], "name": "2020-10-07T08:35:24.060250+00:00"}], "current_public_version": "47d38b1a-71a9-4f29-80bc-2dbb7bda7f9f", "label": "ubuntu_bionic", "organization": {"id": "51b656e3-4865-41e8-adbc-0c45bdd780db", "name": "Instances User Resources Build System"}}, {"valid_until": null, "description": "Ubuntu is the ideal distribution for scale-out computing, Ubuntu Server helps you make the most of your infrastructure.", "creation_date": "2016-04-22T13:27:33.769932+00:00", "logo": "https://marketplace-logos.s3.nl-ams.scw.cloud/ubuntu.png", "id": "acf93867-88d9-40ee-99ea-6b2bb1ee8f0c", "categories": ["distribution"], "name": "Ubuntu Xenial", "modification_date": "2020-10-07T12:06:07.809221+00:00", "versions": [{"creation_date": "2020-10-07T07:23:28.238178+00:00", "modification_date": "2020-10-07T07:23:28.238178+00:00", "id": "ba4298ae-6d6c-4e68-bfed-244379e80941", "local_images": [{"compatible_commercial_types": ["VC1S", "VC1M", "VC1L", "START1-XS", "START1-S", "START1-M", "START1-L", "DEV1-S", "DEV1-M", "DEV1-L", "DEV1-XL", "GP1-XS", "GP1-S", "GP1-M", "GP1-L", "GP1-XL"], "arch": "x86_64", "id": "021cbdfd-df01-4bce-8469-4fe9e510c57e", "zone": "fr-par-2"}, {"compatible_commercial_types": [], "arch": "arm", "id": "c40fbabc-efc8-4e04-91ea-5e1e22daece1", "zone": "ams1"}, {"compatible_commercial_types": ["C2S", "C2M", "C2L", "X64-15GB", "X64-30GB", "X64-60GB", "X64-120GB"], "arch": "x86_64", "id": "6c34a3f3-5e8a-455b-9bc2-f07c4c35bf89", "zone": "ams1"}, {"compatible_commercial_types": ["VC1S", "VC1M", "VC1L", "START1-XS", "START1-S", "START1-M", "START1-L", "DEV1-S", "DEV1-M", "DEV1-L", "DEV1-XL", "GP1-XS", "GP1-S", "GP1-M", "GP1-L", "GP1-XL"], "arch": "x86_64", "id": "52a4335f-5bee-4750-b0b8-3944b8669493", "zone": "ams1"}, {"compatible_commercial_types": ["C2S", "C2M", "C2L", "X64-15GB", "X64-30GB", "X64-60GB", "X64-120GB"], "arch": "x86_64", "id": "3d6804e0-086e-4a06-8124-7240a657668d", "zone": "par1"}, {"compatible_commercial_types": ["C1"], "arch": "arm", "id": "a5f6bb77-3d64-4f7f-abe0-72492b1bc020", "zone": "par1"}, {"compatible_commercial_types": ["VC1S", "VC1M", "VC1L", "START1-XS", "START1-S", "START1-M", "START1-L", "DEV1-S", "DEV1-M", "DEV1-L", "DEV1-XL", "GP1-XS", "GP1-S", "GP1-M", "GP1-L", "GP1-XL"], "arch": "x86_64", "id": "ef18bc50-8512-4d44-93a5-72b7aa85b5d5", "zone": "par1"}, {"compatible_commercial_types": ["ARM64-2GB", "ARM64-4GB", "ARM64-8GB", "ARM64-16GB", "ARM64-32GB", "ARM64-64GB", "ARM64-128GB"], "arch": "arm64", "id": "245e5cea-a9b4-4a36-9055-27185afe8690", "zone": "ams1"}, {"compatible_commercial_types": ["ARM64-2GB", "ARM64-4GB", "ARM64-8GB", "ARM64-16GB", "ARM64-32GB", "ARM64-64GB", "ARM64-128GB"], "arch": "arm64", "id": "bd859e89-fb2d-466a-a546-383630a1ead1", "zone": "par1"}, {"compatible_commercial_types": ["VC1S", "VC1M", "VC1L", "START1-XS", "START1-S", "START1-M", "START1-L", "DEV1-S", "DEV1-M", "DEV1-L", "DEV1-XL", "GP1-XS", "GP1-S", "GP1-M", "GP1-L", "GP1-XL"], "arch": "x86_64", "id": "112ca106-45df-46ad-a587-0e131fbe59e7", "zone": "pl-waw-1"}], "name": "2020-10-07T07:23:28.214578+00:00"}], "current_public_version": "ba4298ae-6d6c-4e68-bfed-244379e80941", "label": "ubuntu_xenial", "organization": {"id": "51b656e3-4865-41e8-adbc-0c45bdd780db", "name": "Instances User Resources Build System"}}, {"valid_until": null, "description": "Debian is a free, powerful and stable operating system.", "creation_date": "2017-06-26T15:37:13.460764+00:00", "logo": "https://marketplace-logos.s3.nl-ams.scw.cloud/debian.png", "id": "c94b5df7-e698-4ac9-b273-565d18f5f8d2", "categories": ["distribution"], "name": "Debian Stretch", "modification_date": "2020-10-22T07:57:09.669401+00:00", "versions": [{"creation_date": "2020-10-21T15:30:02.995049+00:00", "modification_date": "2020-10-21T15:30:02.995049+00:00", "id": "d229a1a9-7a82-4cc1-8fce-2d95c1798730", "local_images": [{"compatible_commercial_types": ["C2S", "X64-15GB", "C2L", "C2M", "X64-30GB", "X64-120GB", "X64-60GB"], "arch": "x86_64", "id": "5f7ab0cd-d10e-49a0-91c8-315ed8a6a1a4", "zone": "par1"}, {"compatible_commercial_types": ["C2S", "X64-15GB", "C2L", "C2M", "X64-30GB", "X64-120GB", "X64-60GB"], "arch": "x86_64", "id": "22a1bd8d-4498-4800-a8e5-4bc85001176c", "zone": "ams1"}, {"compatible_commercial_types": ["C1"], "arch": "arm", "id": "86740237-62fc-4538-9b70-4373942f53d3", "zone": "par1"}, {"compatible_commercial_types": ["DEV1-L", "DEV1-M", "DEV1-S", "DEV1-XL", "GP1-L", "GP1-M", "GP1-S", "GP1-XL", "GP1-XS", "START1-L", "START1-M", "START1-S", "START1-XS", "VC1L", "VC1M", "VC1S", "X64-120GB", "X64-15GB", "X64-30GB", "X64-60GB"], "arch": "x86_64", "id": "2647c260-c971-4836-a118-6f5eb212db42", "zone": "pl-waw-1"}, {"compatible_commercial_types": ["DEV1-L", "DEV1-M", "DEV1-S", "DEV1-XL", "GP1-L", "GP1-M", "GP1-S", "GP1-XL", "GP1-XS", "START1-L", "START1-M", "START1-S", "START1-XS", "VC1L", "VC1M", "VC1S", "X64-120GB", "X64-15GB", "X64-30GB", "X64-60GB"], "arch": "x86_64", "id": "36ee396e-27b6-40ef-8530-dfa74ec2fd29", "zone": "fr-par-2"}, {"compatible_commercial_types": ["DEV1-L", "DEV1-M", "DEV1-S", "DEV1-XL", "GP1-L", "GP1-M", "GP1-S", "GP1-XL", "GP1-XS", "START1-L", "START1-M", "START1-S", "START1-XS", "VC1L", "VC1M", "VC1S", "X64-120GB", "X64-15GB", "X64-30GB", "X64-60GB"], "arch": "x86_64", "id": "6c261f2a-71e1-4280-8c75-223962ecf6dc", "zone": "par1"}, {"compatible_commercial_types": [], "arch": "arm", "id": "d954dc33-c52e-4960-93e1-b69c85d169be", "zone": "ams1"}, {"compatible_commercial_types": ["ARM64-8GB", "ARM64-2GB", "ARM64-32GB", "ARM64-128GB", "ARM64-4GB", "ARM64-64GB", "ARM64-16GB"], "arch": "arm64", "id": "37938de8-e3be-479a-895d-095158f76212", "zone": "ams1"}, {"compatible_commercial_types": ["ARM64-8GB", "ARM64-2GB", "ARM64-32GB", "ARM64-128GB", "ARM64-4GB", "ARM64-64GB", "ARM64-16GB"], "arch": "arm64", "id": "bd6ba96e-d4c4-41f9-88e2-8dad3e6f085b", "zone": "par1"}, {"compatible_commercial_types": ["DEV1-L", "DEV1-M", "DEV1-S", "DEV1-XL", "GP1-L", "GP1-M", "GP1-S", "GP1-XL", "GP1-XS", "START1-L", "START1-M", "START1-S", "START1-XS", "VC1L", "VC1M", "VC1S", "X64-120GB", "X64-15GB", "X64-30GB", "X64-60GB"], "arch": "x86_64", "id": "816c8a69-912c-40b9-a6b0-b27b7bf50645", "zone": "ams1"}], "name": "2020-10-21T15:30:02.966751+00:00"}], "current_public_version": "d229a1a9-7a82-4cc1-8fce-2d95c1798730", "label": "debian_stretch", "organization": {"id": "51b656e3-4865-41e8-adbc-0c45bdd780db", "name": "Instances User Resources Build System"}}, {"valid_until": null, "description": "Debian is a free, powerful and stable operating system.", "creation_date": "2016-03-05T14:52:36.322319+00:00", "logo": "https://marketplace-logos.s3.nl-ams.scw.cloud/debian.png", "id": "fb619bdf-834e-4c71-b7b8-15b5546d18bd", "categories": ["distribution"], "name": "Debian Jessie", "modification_date": "2019-03-26T14:00:50.449502+00:00", "versions": [{"creation_date": "2018-04-10T22:31:04.322822+00:00", "modification_date": "2018-04-10T22:31:04.322822+00:00", "id": "d3846a7b-8219-4938-ad96-cc2173e22481", "local_images": [{"compatible_commercial_types": ["C1"], "arch": "arm", "id": "2dfad6d2-e527-4e93-8eb1-8dc57803b310", "zone": "par1"}, {"compatible_commercial_types": ["ARM64-8GB", "ARM64-2GB", "ARM64-32GB", "ARM64-128GB", "ARM64-4GB", "ARM64-64GB", "ARM64-16GB"], "arch": "arm64", "id": "610f68d5-cbad-4923-98ae-782af8f3b527", "zone": "par1"}, {"compatible_commercial_types": ["ARM64-4GB", "ARM64-128GB", "ARM64-16GB", "ARM64-32GB", "ARM64-8GB", "ARM64-2GB", "ARM64-64GB"], "arch": "arm64", "id": "dc22e553-2d2e-4689-94f8-8817db824202", "zone": "ams1"}, {"compatible_commercial_types": ["X64-120GB", "C2M", "START1-S", "VC1S", "C2L", "X64-15GB", "C2S", "X64-30GB", "START1-L", "START1-M", "X64-60GB", "VC1L", "VC1M"], "arch": "x86_64", "id": "2e570f53-199e-47cc-95dd-f7bc392496e3", "zone": "ams1"}, {"compatible_commercial_types": ["GP1-XS", "DEV1-L", "RENDER-S", "GP1-XL", "C2S", "X64-15GB", "DEV1-XL", "C2L", "C2M", "VC1S", "START1-S", "X64-30GB", "GP1-L", "GP1-M", "GP1-S", "START1-L", "START1-M", "VC1L", "VC1M", "X64-120GB", "X64-60GB"], "arch": "x86_64", "id": "abf9e3a2-7171-4764-91ef-57f30b21193d", "zone": "par1"}, {"compatible_commercial_types": [], "arch": "arm", "id": "69cbdd54-88a1-4458-b75e-662a0848a7ce", "zone": "ams1"}, {"compatible_commercial_types": ["GP1-XS", "DEV1-L", "RENDER-S", "GP1-XL", "C2S", "X64-15GB", "DEV1-XL", "C2L", "C2M", "VC1S", "START1-S", "X64-30GB", "GP1-L", "GP1-M", "GP1-S", "START1-L", "START1-M", "VC1L", "VC1M", "X64-120GB", "X64-60GB"], "arch": "x86_64", "id": "e1dd422e-44eb-451c-b60c-7330ff421bfb", "zone": "pl-waw-1"}, {"compatible_commercial_types": ["GP1-XS", "DEV1-L", "RENDER-S", "GP1-XL", "C2S", "X64-15GB", "DEV1-XL", "C2L", "C2M", "VC1S", "START1-S", "X64-30GB", "GP1-L", "GP1-M", "GP1-S", "START1-L", "START1-M", "VC1L", "VC1M", "X64-120GB", "X64-60GB"], "arch": "x86_64", "id": "1aa604d6-2ec2-4774-91a2-56309dacde47", "zone": "fr-par-2"}], "name": "2018-04-10T22:31:04.321157"}], "current_public_version": "d3846a7b-8219-4938-ad96-cc2173e22481", "label": "debian_jessie", "organization": {"id": "6d6b64e5-6bad-4cc6-b7ef-2030884c3e11", "name": "mtouron@ocs.online.net"}}, {"valid_until": null, "description": "The CentOS Project is a community-driven free software effort focused on delivering a robust open source ecosystem.", "creation_date": "2019-03-06T11:27:48.406290+00:00", "logo": "https://marketplace-logos.s3.nl-ams.scw.cloud/centos.png", "id": "1d47b370-ac63-43b1-9f34-7328675e5e18", "categories": ["distribution"], "name": "CentOS 7.6", "modification_date": "2019-03-26T14:00:50.839069+00:00", "versions": [{"creation_date": "2019-03-18T09:29:00.247544+00:00", "modification_date": "2019-03-18T09:29:00.247544+00:00", "id": "53138072-3099-4566-8b18-de7b2739696a", "local_images": [{"compatible_commercial_types": ["VC1S", "GP1-XS", "DEV1-M", "DEV1-L", "START1-XS", "DEV1-S", "GP1-XL", "C2S", "X64-15GB", "DEV1-XL", "VC1M", "C2L", "C2M", "START1-S", "X64-30GB", "GP1-L", "GP1-M", "GP1-S", "START1-L", "START1-M", "VC1L", "X64-120GB", "X64-60GB"], "arch": "x86_64", "id": "05794ee5-c6d2-4d69-86dd-f1fc9032921d", "zone": "ams1"}, {"compatible_commercial_types": ["GP1-XS", "DEV1-M", "DEV1-L", "START1-XS", "DEV1-S", "RENDER-S", "GP1-XL", "C2S", "X64-15GB", "DEV1-XL", "C2L", "C2M", "VC1S", "START1-S", "X64-30GB", "GP1-L", "GP1-M", "GP1-S", "START1-L", "START1-M", "VC1L", "VC1M", "X64-120GB", "X64-60GB"], "arch": "x86_64", "id": "0f44b130-2bc7-4f82-993e-de9d1042c56e", "zone": "par1"}, {"compatible_commercial_types": ["GP1-XS", "DEV1-M", "DEV1-L", "START1-XS", "DEV1-S", "RENDER-S", "GP1-XL", "C2S", "X64-15GB", "DEV1-XL", "C2L", "C2M", "VC1S", "START1-S", "X64-30GB", "GP1-L", "GP1-M", "GP1-S", "START1-L", "START1-M", "VC1L", "VC1M", "X64-120GB", "X64-60GB"], "arch": "x86_64", "id": "10aae8d8-0073-44f9-ac19-a171ac40bc78", "zone": "pl-waw-1"}, {"compatible_commercial_types": ["GP1-XS", "DEV1-M", "DEV1-L", "START1-XS", "DEV1-S", "RENDER-S", "GP1-XL", "C2S", "X64-15GB", "DEV1-XL", "C2L", "C2M", "VC1S", "START1-S", "X64-30GB", "GP1-L", "GP1-M", "GP1-S", "START1-L", "START1-M", "VC1L", "VC1M", "X64-120GB", "X64-60GB"], "arch": "x86_64", "id": "775a2a9f-551a-4309-838f-64ed7438c263", "zone": "fr-par-2"}], "name": "2019-03-18T09:29:00.168590"}], "current_public_version": "53138072-3099-4566-8b18-de7b2739696a", "label": "centos_7.6", "organization": {"id": "11111111-1111-4111-8111-111111111111", "name": "OCS"}}, {"valid_until": null, "description": "The CentOS Project is a community-driven free software effort focused on delivering a robust open source ecosystem.", "creation_date": "2018-04-19T10:12:28.968536+00:00", "logo": "https://marketplace-logos.s3.nl-ams.scw.cloud/centos.png", "id": "98fc244a-ed4c-4523-bd17-b9c4070b8e7e", "categories": ["distribution"], "name": "CentOS 7.4", "modification_date": "2019-03-26T14:00:53.445597+00:00", "versions": [{"creation_date": "2018-04-20T13:55:06.824033+00:00", "modification_date": "2018-04-20T13:55:06.824033+00:00", "id": "31be34e5-074d-4c63-8c77-454459f77c3f", "local_images": [{"compatible_commercial_types": ["GP1-XS", "DEV1-L", "RENDER-S", "GP1-XL", "C2S", "X64-15GB", "DEV1-XL", "C2L", "C2M", "VC1S", "START1-S", "X64-30GB", "GP1-L", "GP1-M", "GP1-S", "START1-L", "START1-M", "VC1L", "VC1M", "X64-120GB", "X64-60GB"], "arch": "x86_64", "id": "ec8b431e-ad39-4523-8b94-f3fa7f3cbd06", "zone": "par1"}, {"compatible_commercial_types": ["X64-120GB", "C2M", "START1-S", "VC1S", "C2L", "X64-15GB", "C2S", "X64-30GB", "START1-L", "START1-M", "X64-60GB", "VC1L", "VC1M"], "arch": "x86_64", "id": "7220ac63-bac8-484b-9d44-93e3bd01f5a6", "zone": "ams1"}, {"compatible_commercial_types": ["GP1-XS", "DEV1-L", "RENDER-S", "GP1-XL", "C2S", "X64-15GB", "DEV1-XL", "C2L", "C2M", "VC1S", "START1-S", "X64-30GB", "GP1-L", "GP1-M", "GP1-S", "START1-L", "START1-M", "VC1L", "VC1M", "X64-120GB", "X64-60GB"], "arch": "x86_64", "id": "9d3bb257-9bb3-4f7e-ab75-cbdae33d41a4", "zone": "pl-waw-1"}, {"compatible_commercial_types": ["GP1-XS", "DEV1-L", "RENDER-S", "GP1-XL", "C2S", "X64-15GB", "DEV1-XL", "C2L", "C2M", "VC1S", "START1-S", "X64-30GB", "GP1-L", "GP1-M", "GP1-S", "START1-L", "START1-M", "VC1L", "VC1M", "X64-120GB", "X64-60GB"], "arch": "x86_64", "id": "a2d1bdb1-a1e1-4e39-9ffa-d0da7de02f38", "zone": "fr-par-2"}], "name": "2018-04-20T13:55:06.817954"}], "current_public_version": "31be34e5-074d-4c63-8c77-454459f77c3f", "label": "centos_7.4", "organization": {"id": "6d6b64e5-6bad-4cc6-b7ef-2030884c3e11", "name": "mtouron@ocs.online.net"}}, {"valid_until": null, "description": "Fedora is a powerful, flexible operating system that includes the best and latest datacenter technologies. It puts you in control of all your infrastructure and services.", "creation_date": "2019-03-06T09:07:51.652433+00:00", "logo": "https://marketplace-logos.s3.nl-ams.scw.cloud/fedora.png", "id": "69adec15-f1a7-469a-9ba5-868577832521", "categories": ["distribution"], "name": "Fedora 29", "modification_date": "2019-03-26T14:00:51.848785+00:00", "versions": [{"creation_date": "2019-03-06T09:08:01.112958+00:00", "modification_date": "2019-03-06T09:08:01.112958+00:00", "id": "a0f02365-f1af-48cb-b82d-75853a4e05e1", "local_images": [{"compatible_commercial_types": ["GP1-XS", "DEV1-M", "DEV1-L", "START1-XS", "DEV1-S", "RENDER-S", "GP1-XL", "C2S", "X64-15GB", "DEV1-XL", "C2L", "C2M", "VC1S", "START1-S", "X64-30GB", "GP1-L", "GP1-M", "GP1-S", "START1-L", "START1-M", "VC1L", "VC1M", "X64-120GB", "X64-60GB"], "arch": "x86_64", "id": "541f4562-5417-4b59-85d6-caaf64c1f127", "zone": "par1"}, {"compatible_commercial_types": ["X64-120GB", "C2M", "START1-S", "VC1S", "START1-XS", "C2L", "X64-15GB", "C2S", "X64-30GB", "START1-L", "START1-M", "X64-60GB", "VC1L", "VC1M"], "arch": "x86_64", "id": "3c0f706e-0947-47a3-88a3-595c29f7567a", "zone": "ams1"}, {"compatible_commercial_types": ["GP1-XS", "DEV1-M", "DEV1-L", "START1-XS", "DEV1-S", "RENDER-S", "GP1-XL", "C2S", "X64-15GB", "DEV1-XL", "C2L", "C2M", "VC1S", "START1-S", "X64-30GB", "GP1-L", "GP1-M", "GP1-S", "START1-L", "START1-M", "VC1L", "VC1M", "X64-120GB", "X64-60GB"], "arch": "x86_64", "id": "1c7efe35-332e-4fde-b8d6-30606b81a8e7", "zone": "fr-par-2"}, {"compatible_commercial_types": ["GP1-XS", "DEV1-M", "DEV1-L", "START1-XS", "DEV1-S", "RENDER-S", "GP1-XL", "C2S", "X64-15GB", "DEV1-XL", "C2L", "C2M", "VC1S", "START1-S", "X64-30GB", "GP1-L", "GP1-M", "GP1-S", "START1-L", "START1-M", "VC1L", "VC1M", "X64-120GB", "X64-60GB"], "arch": "x86_64", "id": "90c83cdc-8560-4543-9033-1e63e3474e12", "zone": "pl-waw-1"}], "name": "2019-03-06T09:08:01.016040"}], "current_public_version": "a0f02365-f1af-48cb-b82d-75853a4e05e1", "label": "fedora_29", "organization": {"id": "11111111-1111-4111-8111-111111111111", "name": "OCS"}}, {"valid_until": null, "description": "Fedora is a powerful, flexible operating system that includes the best and latest datacenter technologies. It puts you in control of all your infrastructure and services.", "creation_date": "2018-05-03T09:51:57.274011+00:00", "logo": "https://marketplace-logos.s3.nl-ams.scw.cloud/fedora.png", "id": "30d0f04f-6422-4b74-9ce9-1c2267419978", "categories": ["distribution"], "name": "Fedora 28", "modification_date": "2019-03-26T14:00:50.156015+00:00", "versions": [{"creation_date": "2018-05-03T12:01:10.147973+00:00", "modification_date": "2018-05-03T12:01:10.147973+00:00", "id": "49e33199-28cc-44d6-bb2e-a6147944ad5c", "local_images": [{"compatible_commercial_types": ["X64-120GB", "C2M", "START1-S", "VC1S", "C2L", "X64-15GB", "C2S", "X64-30GB", "START1-L", "START1-M", "X64-60GB", "VC1L", "VC1M"], "arch": "x86_64", "id": "830aad94-24e5-4363-b2c3-e62921bd9294", "zone": "ams1"}, {"compatible_commercial_types": ["GP1-XS", "DEV1-L", "RENDER-S", "GP1-XL", "C2S", "X64-15GB", "DEV1-XL", "C2L", "C2M", "VC1S", "START1-S", "X64-30GB", "GP1-L", "GP1-M", "GP1-S", "START1-L", "START1-M", "VC1L", "VC1M", "X64-120GB", "X64-60GB"], "arch": "x86_64", "id": "c9cd1782-2159-44b8-83b1-9c48ed6c8a63", "zone": "par1"}, {"compatible_commercial_types": ["GP1-XS", "DEV1-L", "RENDER-S", "GP1-XL", "C2S", "X64-15GB", "DEV1-XL", "C2L", "C2M", "VC1S", "START1-S", "X64-30GB", "GP1-L", "GP1-M", "GP1-S", "START1-L", "START1-M", "VC1L", "VC1M", "X64-120GB", "X64-60GB"], "arch": "x86_64", "id": "27c84474-0af7-473f-9295-b5b85be5e429", "zone": "fr-par-2"}, {"compatible_commercial_types": ["GP1-XS", "DEV1-L", "RENDER-S", "GP1-XL", "C2S", "X64-15GB", "DEV1-XL", "C2L", "C2M", "VC1S", "START1-S", "X64-30GB", "GP1-L", "GP1-M", "GP1-S", "START1-L", "START1-M", "VC1L", "VC1M", "X64-120GB", "X64-60GB"], "arch": "x86_64", "id": "5c7b710b-ff79-4e56-81d3-6bf31a946ad0", "zone": "pl-waw-1"}], "name": "2018-05-03T12:01:10.135200"}], "current_public_version": "49e33199-28cc-44d6-bb2e-a6147944ad5c", "label": "fedora_28", "organization": {"id": "6d6b64e5-6bad-4cc6-b7ef-2030884c3e11", "name": "mtouron@ocs.online.net"}}, {"valid_until": null, "description": "Fedora is a powerful, flexible operating system that includes the best and latest datacenter technologies. It puts you in control of all your infrastructure and services.", "creation_date": "2018-04-19T10:14:08.648100+00:00", "logo": "https://marketplace-logos.s3.nl-ams.scw.cloud/fedora.png", "id": "4bff4f37-3ef9-457e-9e8d-4a786cb2a5f2", "categories": ["distribution"], "name": "Fedora 27", "modification_date": "2019-03-26T14:00:53.140907+00:00", "versions": [{"creation_date": "2018-09-06T10:51:13.009967+00:00", "modification_date": "2018-09-06T10:51:13.009967+00:00", "id": "45b5823f-8ddf-4ea8-b106-33d2df127cdf", "local_images": [{"compatible_commercial_types": ["GP1-XS", "DEV1-L", "RENDER-S", "GP1-XL", "C2S", "X64-15GB", "DEV1-XL", "C2L", "C2M", "VC1S", "START1-S", "X64-30GB", "GP1-L", "GP1-M", "GP1-S", "START1-L", "START1-M", "VC1L", "VC1M", "X64-120GB", "X64-60GB"], "arch": "x86_64", "id": "097a100e-fd2f-4918-8a5b-d86de5a489be", "zone": "par1"}, {"compatible_commercial_types": ["X64-120GB", "C2M", "START1-S", "VC1S", "C2L", "X64-15GB", "C2S", "X64-30GB", "START1-L", "START1-M", "X64-60GB", "VC1L", "VC1M"], "arch": "x86_64", "id": "73f0bcd8-a152-4665-ac09-1b105905a475", "zone": "ams1"}, {"compatible_commercial_types": ["GP1-XS", "DEV1-L", "RENDER-S", "GP1-XL", "C2S", "X64-15GB", "DEV1-XL", "C2L", "C2M", "VC1S", "START1-S", "X64-30GB", "GP1-L", "GP1-M", "GP1-S", "START1-L", "START1-M", "VC1L", "VC1M", "X64-120GB", "X64-60GB"], "arch": "x86_64", "id": "9bef3647-8ccb-43aa-b753-d289851e85bf", "zone": "fr-par-2"}, {"compatible_commercial_types": ["GP1-XS", "DEV1-L", "RENDER-S", "GP1-XL", "C2S", "X64-15GB", "DEV1-XL", "C2L", "C2M", "VC1S", "START1-S", "X64-30GB", "GP1-L", "GP1-M", "GP1-S", "START1-L", "START1-M", "VC1L", "VC1M", "X64-120GB", "X64-60GB"], "arch": "x86_64", "id": "801b5f02-eb8c-4d77-bce6-5cea21bf9260", "zone": "pl-waw-1"}], "name": "2018-09-06T10:51:13.011044"}], "current_public_version": "45b5823f-8ddf-4ea8-b106-33d2df127cdf", "label": "fedora_27", "organization": {"id": "6d6b64e5-6bad-4cc6-b7ef-2030884c3e11", "name": "mtouron@ocs.online.net"}}, {"valid_until": null, "description": "Arch Linux is an independently developed Linux distribution versatile enough to suit any role.", "creation_date": "2016-03-07T20:55:32.213089+00:00", "logo": "https://marketplace-logos.s3.nl-ams.scw.cloud/archlinux.png", "id": "8f60c5dd-e659-48da-97e3-fb7de42195f5", "categories": ["distribution"], "name": "Arch Linux", "modification_date": "2019-03-26T14:00:49.327070+00:00", "versions": [{"creation_date": "2018-04-20T15:59:04.594929+00:00", "modification_date": "2018-04-20T15:59:04.594929+00:00", "id": "f7696517-bc49-448b-9869-f2c84e7c2a96", "local_images": [{"compatible_commercial_types": ["GP1-XS", "DEV1-L", "RENDER-S", "GP1-XL", "C2S", "X64-15GB", "DEV1-XL", "C2L", "C2M", "VC1S", "START1-S", "X64-30GB", "GP1-L", "GP1-M", "GP1-S", "START1-L", "START1-M", "VC1L", "VC1M", "X64-120GB", "X64-60GB"], "arch": "x86_64", "id": "f21defd0-9fd9-4fb2-a29a-22844a6be3cd", "zone": "par1"}, {"compatible_commercial_types": ["X64-120GB", "C2M", "START1-S", "VC1S", "C2L", "X64-15GB", "C2S", "X64-30GB", "START1-L", "START1-M", "X64-60GB", "VC1L", "VC1M"], "arch": "x86_64", "id": "3c904f73-080e-4c6f-8b28-8426cfdcb3c7", "zone": "ams1"}, {"compatible_commercial_types": ["GP1-XS", "DEV1-L", "RENDER-S", "GP1-XL", "C2S", "X64-15GB", "DEV1-XL", "C2L", "C2M", "VC1S", "START1-S", "X64-30GB", "GP1-L", "GP1-M", "GP1-S", "START1-L", "START1-M", "VC1L", "VC1M", "X64-120GB", "X64-60GB"], "arch": "x86_64", "id": "1e23c590-a371-403b-a8db-cfd9a2f74c03", "zone": "pl-waw-1"}, {"compatible_commercial_types": ["GP1-XS", "DEV1-L", "RENDER-S", "GP1-XL", "C2S", "X64-15GB", "DEV1-XL", "C2L", "C2M", "VC1S", "START1-S", "X64-30GB", "GP1-L", "GP1-M", "GP1-S", "START1-L", "START1-M", "VC1L", "VC1M", "X64-120GB", "X64-60GB"], "arch": "x86_64", "id": "6a347714-49ab-44a6-92fb-1f0ba6aa96e9", "zone": "fr-par-2"}], "name": "2018-04-20T15:59:04.593811"}], "current_public_version": "f7696517-bc49-448b-9869-f2c84e7c2a96", "label": "arch_linux", "organization": {"id": "6d6b64e5-6bad-4cc6-b7ef-2030884c3e11", "name": "mtouron@ocs.online.net"}}, {"valid_until": null, "description": "Alpine Linux is security-oriented, lightweight Linux distribution based on musl libc and busybox.", "creation_date": "2016-03-05T14:49:50.255568+00:00", "logo": "https://marketplace-logos.s3.nl-ams.scw.cloud/alpinelinux.png", "id": "c0649a2a-e6bf-4712-9303-8d967153209c", "categories": ["distribution"], "name": "Alpine Linux", "modification_date": "2019-03-26T14:00:54.425917+00:00", "versions": [{"creation_date": "2018-04-26T10:18:10.201002+00:00", "modification_date": "2018-04-26T10:18:10.201002+00:00", "id": "be2293b6-9eba-4497-9659-2cfb927483b5", "local_images": [{"compatible_commercial_types": ["GP1-XS", "DEV1-L", "RENDER-S", "GP1-XL", "C2S", "X64-15GB", "DEV1-XL", "C2L", "C2M", "VC1S", "START1-S", "X64-30GB", "GP1-L", "GP1-M", "GP1-S", "START1-L", "START1-M", "VC1L", "VC1M", "X64-120GB", "X64-60GB"], "arch": "x86_64", "id": "24141068-1043-4885-bf2b-8290f617e273", "zone": "par1"}, {"compatible_commercial_types": ["X64-120GB", "C2M", "START1-S", "VC1S", "C2L", "X64-15GB", "C2S", "X64-30GB", "START1-L", "START1-M", "X64-60GB", "VC1L", "VC1M"], "arch": "x86_64", "id": "241b0bb3-9eed-4a7b-b0fd-71c45452ac95", "zone": "ams1"}, {"compatible_commercial_types": ["GP1-XS", "DEV1-L", "RENDER-S", "GP1-XL", "C2S", "X64-15GB", "DEV1-XL", "C2L", "C2M", "VC1S", "START1-S", "X64-30GB", "GP1-L", "GP1-M", "GP1-S", "START1-L", "START1-M", "VC1L", "VC1M", "X64-120GB", "X64-60GB"], "arch": "x86_64", "id": "7ba96c78-de91-4116-a075-54284ac58632", "zone": "fr-par-2"}, {"compatible_commercial_types": ["GP1-XS", "DEV1-L", "RENDER-S", "GP1-XL", "C2S", "X64-15GB", "DEV1-XL", "C2L", "C2M", "VC1S", "START1-S", "X64-30GB", "GP1-L", "GP1-M", "GP1-S", "START1-L", "START1-M", "VC1L", "VC1M", "X64-120GB", "X64-60GB"], "arch": "x86_64", "id": "e9607990-506c-478b-b134-649a3777472b", "zone": "pl-waw-1"}], "name": "2018-04-26T10:18:10.196011"}], "current_public_version": "be2293b6-9eba-4497-9659-2cfb927483b5", "label": "alpine_linux", "organization": {"id": "6d6b64e5-6bad-4cc6-b7ef-2030884c3e11", "name": "mtouron@ocs.online.net"}}, {"valid_until": null, "description": "The CentOS Project is a community-driven free software effort focused on delivering a robust open source ecosystem.", "creation_date": "2020-04-29T11:48:57.810456+00:00", "logo": "https://marketplace-logos.s3.nl-ams.scw.cloud/centos.png", "id": "293a2ddf-6e33-4e63-81f0-fbdd90641480", "categories": ["distribution"], "name": "CentOS 8", "modification_date": "2020-10-07T11:58:15.810563+00:00", "versions": [{"creation_date": "2020-10-07T10:10:48.193974+00:00", "modification_date": "2020-10-07T10:10:48.193974+00:00", "id": "89631c17-fcae-46c6-8008-3cfdebaebca5", "local_images": [{"compatible_commercial_types": ["DEV1-L", "DEV1-M", "DEV1-S", "DEV1-XL", "GP1-L", "GP1-M", "GP1-S", "GP1-XL", "GP1-XS", "START1-L", "START1-M", "START1-S", "START1-XS", "VC1L", "VC1M", "VC1S", "X64-120GB", "X64-15GB", "X64-30GB", "X64-60GB"], "arch": "x86_64", "id": "8ff55e7d-aa8d-421b-8cba-debb10b8cec4", "zone": "par1"}, {"compatible_commercial_types": ["DEV1-L", "DEV1-M", "DEV1-S", "DEV1-XL", "GP1-L", "GP1-M", "GP1-S", "GP1-XL", "GP1-XS", "START1-L", "START1-M", "START1-S", "START1-XS", "VC1L", "VC1M", "VC1S", "X64-120GB", "X64-15GB", "X64-30GB", "X64-60GB"], "arch": "x86_64", "id": "7bc05b68-ac6e-473c-877b-1fa8a78da2a3", "zone": "pl-waw-1"}, {"compatible_commercial_types": ["DEV1-L", "DEV1-M", "DEV1-S", "DEV1-XL", "GP1-L", "GP1-M", "GP1-S", "GP1-XL", "GP1-XS", "START1-L", "START1-M", "START1-S", "START1-XS", "VC1L", "VC1M", "VC1S", "X64-120GB", "X64-15GB", "X64-30GB", "X64-60GB"], "arch": "x86_64", "id": "a745d79d-ae71-4d29-81fa-bac9ba9ba3de", "zone": "ams1"}, {"compatible_commercial_types": ["DEV1-L", "DEV1-M", "DEV1-S", "DEV1-XL", "GP1-L", "GP1-M", "GP1-S", "GP1-XL", "GP1-XS", "START1-L", "START1-M", "START1-S", "START1-XS", "VC1L", "VC1M", "VC1S", "X64-120GB", "X64-15GB", "X64-30GB", "X64-60GB"], "arch": "x86_64", "id": "3419d9ef-4c00-4d23-9a0d-458ced597125", "zone": "fr-par-2"}], "name": "2020-10-07T10:10:48.027808+00:00"}], "current_public_version": "89631c17-fcae-46c6-8008-3cfdebaebca5", "label": "centos_8", "organization": {"id": "51b656e3-4865-41e8-adbc-0c45bdd780db", "name": "Instances User Resources Build System"}}, {"valid_until": null, "description": "Debian is a free operating system, developed by thousands of volunteers from all over the world who collaborate via the Internet.", "creation_date": "2019-07-16T13:55:36.377559+00:00", "logo": "https://marketplace-logos.s3.nl-ams.scw.cloud/debian.png", "id": "7bdc1afb-231f-486a-9b85-1b0478bc0e4a", "categories": ["distribution"], "name": "Debian Buster", "modification_date": "2020-10-07T12:12:05.483282+00:00", "versions": [{"creation_date": "2020-10-07T06:59:16.272934+00:00", "modification_date": "2020-10-07T06:59:16.272934+00:00", "id": "cd8034f9-ec95-4a2b-a762-ac08fd6dfd4c", "local_images": [{"compatible_commercial_types": ["C2S", "C2M", "C2L", "X64-15GB", "X64-30GB", "X64-60GB", "X64-120GB"], "arch": "x86_64", "id": "4720c10f-59e3-4e20-915b-dcee1fc34c11", "zone": "ams1"}, {"compatible_commercial_types": ["C2S", "C2M", "C2L", "X64-15GB", "X64-30GB", "X64-60GB", "X64-120GB"], "arch": "x86_64", "id": "cc9188b3-3938-47d7-b091-c9ecad1fe507", "zone": "par1"}, {"compatible_commercial_types": ["DEV1-L", "DEV1-M", "DEV1-S", "DEV1-XL", "GP1-L", "GP1-M", "GP1-S", "GP1-XL", "GP1-XS", "START1-L", "START1-M", "START1-S", "START1-XS", "VC1L", "VC1M", "VC1S", "X64-120GB", "X64-15GB", "X64-30GB", "X64-60GB"], "arch": "x86_64", "id": "361008ec-886b-4234-8493-23f94f79126f", "zone": "fr-par-2"}, {"compatible_commercial_types": ["DEV1-L", "DEV1-M", "DEV1-S", "DEV1-XL", "GP1-L", "GP1-M", "GP1-S", "GP1-XL", "GP1-XS", "START1-L", "START1-M", "START1-S", "START1-XS", "VC1L", "VC1M", "VC1S", "X64-120GB", "X64-15GB", "X64-30GB", "X64-60GB"], "arch": "x86_64", "id": "7e9ff5e8-52dc-4ef4-847c-3aa84ce827b6", "zone": "pl-waw-1"}, {"compatible_commercial_types": ["ARM64-2GB", "ARM64-4GB", "ARM64-8GB", "ARM64-16GB", "ARM64-32GB", "ARM64-64GB", "ARM64-128GB"], "arch": "arm64", "id": "9d6e8a2c-31a9-439c-a4c5-9fba1c5b96ed", "zone": "par1"}, {"compatible_commercial_types": ["ARM64-2GB", "ARM64-4GB", "ARM64-8GB", "ARM64-16GB", "ARM64-32GB", "ARM64-64GB", "ARM64-128GB"], "arch": "arm64", "id": "61010e34-7f1e-402b-a253-028a714a6678", "zone": "ams1"}, {"compatible_commercial_types": ["DEV1-L", "DEV1-M", "DEV1-S", "DEV1-XL", "GP1-L", "GP1-M", "GP1-S", "GP1-XL", "GP1-XS", "START1-L", "START1-M", "START1-S", "START1-XS", "VC1L", "VC1M", "VC1S", "X64-120GB", "X64-15GB", "X64-30GB", "X64-60GB"], "arch": "x86_64", "id": "77882134-b04d-456a-a891-be2995aae7d8", "zone": "par1"}, {"compatible_commercial_types": ["DEV1-L", "DEV1-M", "DEV1-S", "DEV1-XL", "GP1-L", "GP1-M", "GP1-S", "GP1-XL", "GP1-XS", "START1-L", "START1-M", "START1-S", "START1-XS", "VC1L", "VC1M", "VC1S", "X64-120GB", "X64-15GB", "X64-30GB", "X64-60GB"], "arch": "x86_64", "id": "888088a3-3f40-4573-80bd-9fb8ab2488ea", "zone": "ams1"}], "name": "2020-10-07T06:59:16.234378+00:00"}], "current_public_version": "cd8034f9-ec95-4a2b-a762-ac08fd6dfd4c", "label": "debian_buster", "organization": {"id": "51b656e3-4865-41e8-adbc-0c45bdd780db", "name": "Instances User Resources Build System"}}, {"valid_until": null, "description": "Docker is an open platform for developers and sysadmins to build, ship, and run distributed applications.", "creation_date": "2016-03-05T15:11:26.847640+00:00", "logo": "https://marketplace-logos.s3.nl-ams.scw.cloud/docker.png", "id": "c1b530d8-0ca0-45c4-80db-ba06608287b2", "categories": ["instantapp"], "name": "Docker", "modification_date": "2019-03-26T14:00:49.524465+00:00", "versions": [{"creation_date": "2019-03-07T17:07:39.090644+00:00", "modification_date": "2019-03-07T17:07:39.090644+00:00", "id": "bf30c937-6e89-4019-ad2a-92156a62cf3e", "local_images": [{"compatible_commercial_types": ["GP1-XS", "DEV1-M", "DEV1-L", "START1-XS", "DEV1-S", "RENDER-S", "GP1-XL", "C2S", "X64-15GB", "DEV1-XL", "C2L", "C2M", "VC1S", "START1-S", "X64-30GB", "GP1-L", "GP1-M", "GP1-S", "START1-L", "START1-M", "VC1L", "VC1M", "X64-120GB", "X64-60GB"], "arch": "x86_64", "id": "89c80d27-ddf4-4ffa-8215-b335cce3fd05", "zone": "par1"}, {"compatible_commercial_types": ["ARM64-4GB", "ARM64-128GB", "ARM64-16GB", "ARM64-32GB", "ARM64-8GB", "ARM64-2GB", "ARM64-64GB"], "arch": "arm64", "id": "99e2a9c6-f0b9-42b6-8823-8b0d86ffe9bf", "zone": "ams1"}, {"compatible_commercial_types": ["C1"], "arch": "arm", "id": "45a7e942-1fb0-48c0-bbf6-0acb9af24604", "zone": "par1"}, {"compatible_commercial_types": ["ARM64-8GB", "ARM64-2GB", "ARM64-32GB", "ARM64-128GB", "ARM64-4GB", "ARM64-64GB", "ARM64-16GB"], "arch": "arm64", "id": "c669011a-ee16-42b6-b0c3-ecd19e419539", "zone": "par1"}, {"compatible_commercial_types": ["X64-120GB", "C2M", "START1-S", "VC1S", "START1-XS", "C2L", "X64-15GB", "C2S", "X64-30GB", "START1-L", "START1-M", "X64-60GB", "VC1L", "VC1M"], "arch": "x86_64", "id": "dcf35840-c007-4c8b-a48b-227cfd8a347b", "zone": "ams1"}, {"compatible_commercial_types": ["GP1-XS", "DEV1-M", "DEV1-L", "START1-XS", "DEV1-S", "RENDER-S", "GP1-XL", "C2S", "X64-15GB", "DEV1-XL", "C2L", "C2M", "VC1S", "START1-S", "X64-30GB", "GP1-L", "GP1-M", "GP1-S", "START1-L", "START1-M", "VC1L", "VC1M", "X64-120GB", "X64-60GB"], "arch": "x86_64", "id": "df7298ce-ab95-4384-90d1-76b8fff31f06", "zone": "pl-waw-1"}, {"compatible_commercial_types": ["GP1-XS", "DEV1-M", "DEV1-L", "START1-XS", "DEV1-S", "RENDER-S", "GP1-XL", "C2S", "X64-15GB", "DEV1-XL", "C2L", "C2M", "VC1S", "START1-S", "X64-30GB", "GP1-L", "GP1-M", "GP1-S", "START1-L", "START1-M", "VC1L", "VC1M", "X64-120GB", "X64-60GB"], "arch": "x86_64", "id": "929c50f5-721c-4672-817c-8704eb4bc1d1", "zone": "fr-par-2"}], "name": "2019-03-07T17:07:39.004809"}], "current_public_version": "bf30c937-6e89-4019-ad2a-92156a62cf3e", "label": "docker", "organization": {"id": "6d6b64e5-6bad-4cc6-b7ef-2030884c3e11", "name": "mtouron@ocs.online.net"}}, {"valid_until": null, "description": "Fedora is a powerful, flexible operating system that includes the best and latest datacenter technologies. It puts you in control of all your infrastructure and services", "creation_date": "2020-05-19T08:21:31.875735+00:00", "logo": "https://marketplace-logos.s3.nl-ams.scw.cloud/fedora.png", "id": "e549e5b4-33eb-4c97-950a-8baf107f895f", "categories": ["distribution"], "name": "Fedora 32", "modification_date": "2020-09-22T17:00:28.449637+00:00", "versions": [{"creation_date": "2020-09-22T15:32:14.713793+00:00", "modification_date": "2020-09-22T15:32:14.713793+00:00", "id": "6d0a3805-f1fc-4355-a5ad-0872be8a9305", "local_images": [{"compatible_commercial_types": ["DEV1-L", "DEV1-M", "DEV1-S", "DEV1-XL", "GP1-L", "GP1-M", "GP1-S", "GP1-XL", "GP1-XS", "START1-L", "START1-M", "START1-S", "START1-XS", "VC1L", "VC1M", "VC1S", "X64-120GB", "X64-15GB", "X64-30GB", "X64-60GB"], "arch": "x86_64", "id": "979a7bab-7f64-4e87-bd1f-b3130674afa5", "zone": "pl-waw-1"}, {"compatible_commercial_types": ["DEV1-L", "DEV1-M", "DEV1-S", "DEV1-XL", "GP1-L", "GP1-M", "GP1-S", "GP1-XL", "GP1-XS", "START1-L", "START1-M", "START1-S", "START1-XS", "VC1L", "VC1M", "VC1S", "X64-120GB", "X64-15GB", "X64-30GB", "X64-60GB"], "arch": "x86_64", "id": "e730b493-6357-48f8-858c-598c08b7b260", "zone": "ams1"}, {"compatible_commercial_types": ["DEV1-L", "DEV1-M", "DEV1-S", "DEV1-XL", "GP1-L", "GP1-M", "GP1-S", "GP1-XL", "GP1-XS", "START1-L", "START1-M", "START1-S", "START1-XS", "VC1L", "VC1M", "VC1S", "X64-120GB", "X64-15GB", "X64-30GB", "X64-60GB"], "arch": "x86_64", "id": "25317919-2dc6-4a20-93df-4d4c6227a4dd", "zone": "fr-par-2"}, {"compatible_commercial_types": ["DEV1-L", "DEV1-M", "DEV1-S", "DEV1-XL", "GP1-L", "GP1-M", "GP1-S", "GP1-XL", "GP1-XS", "START1-L", "START1-M", "START1-S", "START1-XS", "VC1L", "VC1M", "VC1S", "X64-120GB", "X64-15GB", "X64-30GB", "X64-60GB"], "arch": "x86_64", "id": "f4336999-6a52-4d9b-8258-6e6148732f49", "zone": "par1"}], "name": "2020-09-22T15:32:14.662848+00:00"}], "current_public_version": "6d0a3805-f1fc-4355-a5ad-0872be8a9305", "label": "fedora_32", "organization": {"id": "51b656e3-4865-41e8-adbc-0c45bdd780db", "name": "Instances User Resources Build System"}}, {"valid_until": null, "description": "GitLab is a web-based Git repository manager with wiki and issue tracking features.", "creation_date": "2016-03-07T21:06:22.770864+00:00", "logo": "https://marketplace-logos.s3.nl-ams.scw.cloud/gitlab.png", "id": "233074b9-e2ba-4e78-818e-dd4930ce6bee", "categories": ["instantapp"], "name": "GitLab", "modification_date": "2019-04-09T13:31:04.022755+00:00", "versions": [{"creation_date": "2019-04-09T13:31:03.648676+00:00", "modification_date": "2019-04-09T13:31:03.648676+00:00", "id": "a389c94b-8b19-4528-a4f6-0b7cac3425e9", "local_images": [{"compatible_commercial_types": ["X64-120GB", "C2M", "START1-S", "VC1S", "START1-XS", "C2L", "X64-15GB", "C2S", "X64-30GB", "START1-L", "START1-M", "X64-60GB", "VC1L", "VC1M"], "arch": "x86_64", "id": "06a2a6e9-922d-4353-9472-bbb1f79fda63", "zone": "ams1"}, {"compatible_commercial_types": ["GP1-XS", "DEV1-M", "DEV1-L", "START1-XS", "DEV1-S", "RENDER-S", "GP1-XL", "C2S", "X64-15GB", "DEV1-XL", "C2L", "C2M", "VC1S", "START1-S", "X64-30GB", "GP1-L", "GP1-M", "GP1-S", "START1-L", "START1-M", "VC1L", "VC1M", "X64-120GB", "X64-60GB"], "arch": "x86_64", "id": "3e71b78e-dd20-48ae-8d6e-f594cb255af5", "zone": "pl-waw-1"}, {"compatible_commercial_types": ["GP1-XS", "DEV1-M", "DEV1-L", "START1-XS", "DEV1-S", "RENDER-S", "GP1-XL", "C2S", "X64-15GB", "DEV1-XL", "C2L", "C2M", "VC1S", "START1-S", "X64-30GB", "GP1-L", "GP1-M", "GP1-S", "START1-L", "START1-M", "VC1L", "VC1M", "X64-120GB", "X64-60GB"], "arch": "x86_64", "id": "4527e41c-0e90-43a8-857e-d9584bf8467f", "zone": "par1"}, {"compatible_commercial_types": ["GP1-XS", "DEV1-M", "DEV1-L", "START1-XS", "DEV1-S", "RENDER-S", "GP1-XL", "C2S", "X64-15GB", "DEV1-XL", "C2L", "C2M", "VC1S", "START1-S", "X64-30GB", "GP1-L", "GP1-M", "GP1-S", "START1-L", "START1-M", "VC1L", "VC1M", "X64-120GB", "X64-60GB"], "arch": "x86_64", "id": "1cd308b9-5988-4b04-80a1-389f5f63738b", "zone": "fr-par-2"}], "name": "2019-04-09T13:31:03.352588"}], "current_public_version": "a389c94b-8b19-4528-a4f6-0b7cac3425e9", "label": "gitlab", "organization": {"id": "6d6b64e5-6bad-4cc6-b7ef-2030884c3e11", "name": "mtouron@ocs.online.net"}}, {"valid_until": null, "description": "A painless self-hosted Git service.", "creation_date": "2016-03-07T21:00:44.946716+00:00", "logo": "https://marketplace-logos.s3.nl-ams.scw.cloud/gogs.png", "id": "90d512b8-e4b7-4821-98e9-78241d73a7e6", "categories": ["instantapp"], "name": "Gogs", "modification_date": "2019-03-26T14:00:54.513196+00:00", "versions": [{"creation_date": "2018-05-16T15:11:25.881343+00:00", "modification_date": "2018-05-16T15:11:25.881343+00:00", "id": "1b9e22e3-6a29-4f42-acfd-281ad086ee1d", "local_images": [{"compatible_commercial_types": ["GP1-XS", "DEV1-L", "RENDER-S", "GP1-XL", "C2S", "X64-15GB", "DEV1-XL", "C2L", "C2M", "VC1S", "START1-S", "X64-30GB", "GP1-L", "GP1-M", "GP1-S", "START1-L", "START1-M", "VC1L", "VC1M", "X64-120GB", "X64-60GB"], "arch": "x86_64", "id": "776705c4-be8e-4a27-b740-2e8bbba518c5", "zone": "par1"}, {"compatible_commercial_types": ["C1"], "arch": "arm", "id": "a513a250-e6e9-4687-892e-9d10b29e3972", "zone": "par1"}, {"compatible_commercial_types": ["X64-120GB", "C2M", "START1-S", "VC1S", "C2L", "X64-15GB", "C2S", "X64-30GB", "START1-L", "START1-M", "X64-60GB", "VC1L", "VC1M"], "arch": "x86_64", "id": "d1341ece-ffda-4386-ad3a-27d60b650401", "zone": "ams1"}, {"compatible_commercial_types": [], "arch": "arm", "id": "69b8bc0e-7771-42af-a4ad-ca756c31a18a", "zone": "ams1"}], "name": "2018-05-16T15:11:25.303762"}], "current_public_version": "1b9e22e3-6a29-4f42-acfd-281ad086ee1d", "label": "gogs", "organization": {"id": "6d6b64e5-6bad-4cc6-b7ef-2030884c3e11", "name": "mtouron@ocs.online.net"}}, {"valid_until": null, "description": "Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.A dynamic, open source programming language with a focus on simplicity and productivity.", "creation_date": "2016-03-08T07:01:11.482482+00:00", "logo": "https://marketplace-logos.s3.nl-ams.scw.cloud/golang.png", "id": "6c8d25c0-cb6f-4220-98aa-830b7e479ba5", "categories": ["instantapp"], "name": "Golang", "modification_date": "2019-03-26T14:00:52.861225+00:00", "versions": [{"creation_date": "2018-04-18T08:00:48.175340+00:00", "modification_date": "2018-04-18T08:00:48.175340+00:00", "id": "880194c8-53ce-4b6b-a274-4f79307e2f8e", "local_images": [{"compatible_commercial_types": ["GP1-XS", "DEV1-L", "RENDER-S", "GP1-XL", "C2S", "X64-15GB", "DEV1-XL", "C2L", "C2M", "VC1S", "START1-S", "X64-30GB", "GP1-L", "GP1-M", "GP1-S", "START1-L", "START1-M", "VC1L", "VC1M", "X64-120GB", "X64-60GB"], "arch": "x86_64", "id": "43213956-c7a3-44b8-9d96-d51fa7457969", "zone": "par1"}, {"compatible_commercial_types": ["ARM64-4GB", "ARM64-128GB", "ARM64-16GB", "ARM64-32GB", "ARM64-8GB", "ARM64-2GB", "ARM64-64GB"], "arch": "arm64", "id": "5ffb52aa-ea55-4596-9d0f-e403701b6624", "zone": "ams1"}, {"compatible_commercial_types": ["C1"], "arch": "arm", "id": "bef7a6af-1bab-490a-a6cb-6a07c1b9ac7b", "zone": "par1"}, {"compatible_commercial_types": [], "arch": "arm", "id": "f0b7d9b8-aa31-45b4-9f7e-a68aa164ce6f", "zone": "ams1"}, {"compatible_commercial_types": ["ARM64-8GB", "ARM64-2GB", "ARM64-32GB", "ARM64-128GB", "ARM64-4GB", "ARM64-64GB", "ARM64-16GB"], "arch": "arm64", "id": "76ca1eb7-f68f-4770-a7a1-ab7665ae3297", "zone": "par1"}, {"compatible_commercial_types": ["X64-120GB", "C2M", "START1-S", "VC1S", "C2L", "X64-15GB", "C2S", "X64-30GB", "START1-L", "START1-M", "X64-60GB", "VC1L", "VC1M"], "arch": "x86_64", "id": "0d954c34-341c-483a-be1c-71cf197343ed", "zone": "ams1"}], "name": "2018-04-18T08:00:48.129246"}], "current_public_version": "880194c8-53ce-4b6b-a274-4f79307e2f8e", "label": "golang", "organization": {"id": "6d6b64e5-6bad-4cc6-b7ef-2030884c3e11", "name": "mtouron@ocs.online.net"}}, {"valid_until": null, "description": "Java is a computer programming language that is concurrent, class-based, object-oriented, and specifically designed to have as few implementation dependencies as possible.", "creation_date": "2016-03-07T21:07:46.908969+00:00", "logo": "https://marketplace-logos.s3.nl-ams.scw.cloud/java.png", "id": "d72d1b73-7460-446b-91fb-b451d079aa4d", "categories": ["instantapp"], "name": "Java", "modification_date": "2019-03-26T14:00:49.430836+00:00", "versions": [{"creation_date": "2018-04-18T10:11:18.535736+00:00", "modification_date": "2018-04-18T10:11:18.535736+00:00", "id": "f3f69cca-aadb-4e5e-94b0-254ce05a6639", "local_images": [{"compatible_commercial_types": ["ARM64-4GB", "ARM64-128GB", "ARM64-16GB", "ARM64-32GB", "ARM64-8GB", "ARM64-2GB", "ARM64-64GB"], "arch": "arm64", "id": "c50cb4b2-bf7b-47e2-ab5f-3a9d3d4c1aef", "zone": "ams1"}, {"compatible_commercial_types": ["X64-120GB", "C2M", "START1-S", "VC1S", "C2L", "X64-15GB", "C2S", "X64-30GB", "START1-L", "START1-M", "X64-60GB", "VC1L", "VC1M"], "arch": "x86_64", "id": "98c93894-26a8-463b-a72b-c9d2b531b95d", "zone": "ams1"}, {"compatible_commercial_types": [], "arch": "arm", "id": "43c43b5e-1e4f-4905-baef-71df3c565b4d", "zone": "ams1"}, {"compatible_commercial_types": ["GP1-XS", "DEV1-L", "RENDER-S", "GP1-XL", "C2S", "X64-15GB", "DEV1-XL", "C2L", "C2M", "VC1S", "START1-S", "X64-30GB", "GP1-L", "GP1-M", "GP1-S", "START1-L", "START1-M", "VC1L", "VC1M", "X64-120GB", "X64-60GB"], "arch": "x86_64", "id": "0c3f9f03-f490-444b-a05e-f342e917fed0", "zone": "par1"}, {"compatible_commercial_types": ["C1"], "arch": "arm", "id": "5e07622b-ad8b-4f65-b55f-cca18c3c0bbf", "zone": "par1"}, {"compatible_commercial_types": ["ARM64-8GB", "ARM64-2GB", "ARM64-32GB", "ARM64-128GB", "ARM64-4GB", "ARM64-64GB", "ARM64-16GB"], "arch": "arm64", "id": "c0330755-e5d0-4c2c-ad0e-70687e1dccbb", "zone": "par1"}], "name": "2018-04-18T10:11:18.477156"}], "current_public_version": "f3f69cca-aadb-4e5e-94b0-254ce05a6639", "label": "java", "organization": {"id": "6d6b64e5-6bad-4cc6-b7ef-2030884c3e11", "name": "mtouron@ocs.online.net"}}, {"valid_until": null, "description": "LEMP stack is a version where Apache has been replaced with the more lightweight web server Nginx.", "creation_date": "2016-03-07T21:06:53.552980+00:00", "logo": "https://marketplace-logos.s3.nl-ams.scw.cloud/lemp.png", "id": "986ba672-b489-4f66-9e3b-90194ac336d4", "categories": ["instantapp"], "name": "LEMP stack", "modification_date": "2019-04-09T13:31:12.129567+00:00", "versions": [{"creation_date": "2019-04-09T13:31:11.315416+00:00", "modification_date": "2019-04-09T13:31:11.315416+00:00", "id": "a2e5ed1a-6f01-4f20-aabd-4115c67df590", "local_images": [{"compatible_commercial_types": ["C1"], "arch": "arm", "id": "32332006-1420-4260-97c7-c1da586f68cd", "zone": "par1"}, {"compatible_commercial_types": ["X64-120GB", "C2M", "START1-S", "VC1S", "START1-XS", "C2L", "X64-15GB", "C2S", "X64-30GB", "START1-L", "START1-M", "X64-60GB", "VC1L", "VC1M"], "arch": "x86_64", "id": "d16622f6-32c1-4d16-a3ca-38b23d3a25fb", "zone": "ams1"}, {"compatible_commercial_types": ["GP1-XS", "DEV1-M", "DEV1-L", "START1-XS", "DEV1-S", "RENDER-S", "GP1-XL", "C2S", "X64-15GB", "DEV1-XL", "C2L", "C2M", "VC1S", "START1-S", "X64-30GB", "GP1-L", "GP1-M", "GP1-S", "START1-L", "START1-M", "VC1L", "VC1M", "X64-120GB", "X64-60GB"], "arch": "x86_64", "id": "1bd37d60-4494-485f-9a82-0a211005489c", "zone": "par1"}, {"compatible_commercial_types": ["ARM64-4GB", "ARM64-128GB", "ARM64-16GB", "ARM64-32GB", "ARM64-8GB", "ARM64-2GB", "ARM64-64GB"], "arch": "arm64", "id": "415d3727-0013-419a-abc6-1a688b096730", "zone": "ams1"}, {"compatible_commercial_types": ["ARM64-8GB", "ARM64-2GB", "ARM64-32GB", "ARM64-128GB", "ARM64-4GB", "ARM64-64GB", "ARM64-16GB"], "arch": "arm64", "id": "26c3727a-5b77-4b26-89c9-445ea2006f07", "zone": "par1"}, {"compatible_commercial_types": [], "arch": "arm", "id": "155ab61a-e069-4acb-bae3-e8217c5c0376", "zone": "ams1"}], "name": "2019-04-09T13:31:10.613803"}], "current_public_version": "a2e5ed1a-6f01-4f20-aabd-4115c67df590", "label": "lemp_stack", "organization": {"id": "6d6b64e5-6bad-4cc6-b7ef-2030884c3e11", "name": "mtouron@ocs.online.net"}}, {"valid_until": null, "description": "self-hosted Slack-alternative", "creation_date": "2016-07-11T14:52:57.803007+00:00", "logo": "https://marketplace-logos.s3.nl-ams.scw.cloud/mattermost.png", "id": "98ad7ccb-cc7f-4828-9da3-113e9c1bd2db", "categories": ["instantapp"], "name": "Mattermost", "modification_date": "2019-03-26T14:00:51.938920+00:00", "versions": [{"creation_date": "2018-05-03T10:27:55.610920+00:00", "modification_date": "2018-05-03T10:27:55.610920+00:00", "id": "42371bf7-c1ca-4889-a6d4-43febda865ca", "local_images": [{"compatible_commercial_types": ["GP1-XS", "DEV1-L", "RENDER-S", "GP1-XL", "C2S", "X64-15GB", "DEV1-XL", "C2L", "C2M", "VC1S", "START1-S", "X64-30GB", "GP1-L", "GP1-M", "GP1-S", "START1-L", "START1-M", "VC1L", "VC1M", "X64-120GB", "X64-60GB"], "arch": "x86_64", "id": "486e128c-fde7-42d7-9200-5d91b8dc2761", "zone": "par1"}, {"compatible_commercial_types": ["X64-120GB", "C2M", "START1-S", "VC1S", "C2L", "X64-15GB", "C2S", "X64-30GB", "START1-L", "START1-M", "X64-60GB", "VC1L", "VC1M"], "arch": "x86_64", "id": "eb2ed407-177c-4195-a4ca-f3baa85e62ed", "zone": "ams1"}], "name": "2018-05-03T10:27:55.021511"}], "current_public_version": "42371bf7-c1ca-4889-a6d4-43febda865ca", "label": "mattermost", "organization": {"id": "6d6b64e5-6bad-4cc6-b7ef-2030884c3e11", "name": "mtouron@ocs.online.net"}}, {"valid_until": null, "description": "Nextcloud is an open source, self-hosted file share and communication platform.", "creation_date": "2019-04-16T12:22:56.930842+00:00", "logo": "https://marketplace-logos.s3.nl-ams.scw.cloud/nextcloud.png", "id": "7d4a7cb1-1fd5-4a64-920b-c79f47367254", "categories": ["instantapp"], "name": "NextCloud", "modification_date": "2019-04-16T12:25:38.758921+00:00", "versions": [{"creation_date": "2019-04-16T12:25:38.052537+00:00", "modification_date": "2019-04-16T12:25:38.052537+00:00", "id": "2fe66cc6-8985-4b5f-8325-83acc0589436", "local_images": [{"compatible_commercial_types": ["ARM64-4GB", "ARM64-128GB", "ARM64-16GB", "ARM64-32GB", "ARM64-8GB", "ARM64-2GB", "ARM64-64GB"], "arch": "arm64", "id": "e9af0a24-4312-4305-9386-b3a79e02f92d", "zone": "ams1"}, {"compatible_commercial_types": [], "arch": "arm", "id": "c38073cf-ee40-4dc2-8059-ec2845f38f46", "zone": "ams1"}, {"compatible_commercial_types": ["X64-120GB", "C2M", "START1-S", "VC1S", "START1-XS", "C2L", "X64-15GB", "C2S", "X64-30GB", "START1-L", "START1-M", "X64-60GB", "VC1L", "VC1M"], "arch": "x86_64", "id": "b9e319f5-ac4c-400d-8ff6-a6a769755190", "zone": "ams1"}, {"compatible_commercial_types": ["ARM64-8GB", "ARM64-2GB", "ARM64-32GB", "ARM64-128GB", "ARM64-4GB", "ARM64-64GB", "ARM64-16GB"], "arch": "arm64", "id": "0390c3e0-186d-4b24-8d0d-0e08b74fb59a", "zone": "par1"}, {"compatible_commercial_types": ["C1"], "arch": "arm", "id": "900971a4-3a3e-4ef9-b92f-b33c366c9f5c", "zone": "par1"}, {"compatible_commercial_types": ["GP1-XS", "DEV1-M", "DEV1-L", "START1-XS", "DEV1-S", "RENDER-S", "GP1-XL", "C2S", "X64-15GB", "DEV1-XL", "C2L", "C2M", "VC1S", "START1-S", "X64-30GB", "GP1-L", "GP1-M", "GP1-S", "START1-L", "START1-M", "VC1L", "VC1M", "X64-120GB", "X64-60GB"], "arch": "x86_64", "id": "7b7d4dde-6fe1-4586-a5a5-ae1af2ca2605", "zone": "par1"}], "name": "2019-04-16T12:25:37.374676"}], "current_public_version": "2fe66cc6-8985-4b5f-8325-83acc0589436", "label": "nextcloud", "organization": {"id": "11111111-1111-4111-8111-111111111111", "name": "OCS"}}, {"valid_until": null, "description": "Node.js is an open source, cross-platform runtime environment for server-side and networking applications.", "creation_date": "2016-03-07T21:06:07.014951+00:00", "logo": "https://marketplace-logos.s3.nl-ams.scw.cloud/nodejs.png", "id": "d11d7cc2-6ec8-4f95-a286-24fb5bac9e39", "categories": ["instantapp"], "name": "Node.js", "modification_date": "2019-03-26T14:00:51.148549+00:00", "versions": [{"creation_date": "2018-04-18T10:07:15.744660+00:00", "modification_date": "2018-04-18T10:07:15.744660+00:00", "id": "af308511-bcb3-4583-b0e0-79dbb1eea63e", "local_images": [{"compatible_commercial_types": [], "arch": "arm", "id": "a8020f20-8a66-43f3-8253-35941db3d237", "zone": "ams1"}, {"compatible_commercial_types": ["ARM64-4GB", "ARM64-128GB", "ARM64-16GB", "ARM64-32GB", "ARM64-8GB", "ARM64-2GB", "ARM64-64GB"], "arch": "arm64", "id": "3cc79cc6-4649-46d9-a2b6-698f1236e1d0", "zone": "ams1"}, {"compatible_commercial_types": ["X64-120GB", "C2M", "START1-S", "VC1S", "C2L", "X64-15GB", "C2S", "X64-30GB", "START1-L", "START1-M", "X64-60GB", "VC1L", "VC1M"], "arch": "x86_64", "id": "c9fb2bed-a9b8-4e1a-bf15-db8e763fe7a7", "zone": "ams1"}, {"compatible_commercial_types": ["GP1-XS", "DEV1-L", "RENDER-S", "GP1-XL", "C2S", "X64-15GB", "DEV1-XL", "C2L", "C2M", "VC1S", "START1-S", "X64-30GB", "GP1-L", "GP1-M", "GP1-S", "START1-L", "START1-M", "VC1L", "VC1M", "X64-120GB", "X64-60GB"], "arch": "x86_64", "id": "f01db1d0-092a-47de-a32e-09bd6bda7715", "zone": "par1"}, {"compatible_commercial_types": ["C1"], "arch": "arm", "id": "6f2e99e8-da99-4990-b689-7294e8a604fa", "zone": "par1"}, {"compatible_commercial_types": ["ARM64-8GB", "ARM64-2GB", "ARM64-32GB", "ARM64-128GB", "ARM64-4GB", "ARM64-64GB", "ARM64-16GB"], "arch": "arm64", "id": "03980aee-14cd-44f1-be3c-508c8b8a19e6", "zone": "par1"}], "name": "2018-04-18T10:07:15.691016"}], "current_public_version": "af308511-bcb3-4583-b0e0-79dbb1eea63e", "label": "node.js", "organization": {"id": "6d6b64e5-6bad-4cc6-b7ef-2030884c3e11", "name": "mtouron@ocs.online.net"}}, {"valid_until": null, "description": "Surf the web in a secure and anonymous way with OpenVPN InstantApp.", "creation_date": "2016-03-07T21:04:57.667667+00:00", "logo": "https://marketplace-logos.s3.nl-ams.scw.cloud/openvpn.png", "id": "b6f4edc8-21e6-4aa2-8f52-1030cf6d4dd8", "categories": ["instantapp"], "name": "OpenVPN", "modification_date": "2019-03-26T14:00:52.955853+00:00", "versions": [{"creation_date": "2019-03-25T13:06:02.622633+00:00", "modification_date": "2019-03-25T13:06:02.622633+00:00", "id": "d812e374-1169-4c91-aa90-c72acceeecb2", "local_images": [{"compatible_commercial_types": ["ARM64-4GB", "ARM64-128GB", "ARM64-16GB", "ARM64-32GB", "ARM64-8GB", "ARM64-2GB", "ARM64-64GB"], "arch": "arm64", "id": "b15ddb1a-0611-412e-881a-3aed1b36392b", "zone": "ams1"}, {"compatible_commercial_types": ["GP1-XS", "DEV1-M", "DEV1-L", "START1-XS", "DEV1-S", "RENDER-S", "GP1-XL", "C2S", "X64-15GB", "DEV1-XL", "C2L", "C2M", "VC1S", "START1-S", "X64-30GB", "GP1-L", "GP1-M", "GP1-S", "START1-L", "START1-M", "VC1L", "VC1M", "X64-120GB", "X64-60GB"], "arch": "x86_64", "id": "02906ae8-bf44-4dd0-bd05-6312dd9fa234", "zone": "par1"}, {"compatible_commercial_types": [], "arch": "arm", "id": "3aa3622c-45d4-4388-9618-cce6974c71a0", "zone": "ams1"}, {"compatible_commercial_types": ["GP1-XS", "DEV1-M", "DEV1-L", "START1-XS", "DEV1-S", "RENDER-S", "GP1-XL", "C2S", "X64-15GB", "DEV1-XL", "C2L", "C2M", "VC1S", "START1-S", "X64-30GB", "GP1-L", "GP1-M", "GP1-S", "START1-L", "START1-M", "VC1L", "VC1M", "X64-120GB", "X64-60GB"], "arch": "x86_64", "id": "cb4f1087-8edc-4a03-a718-e646cc21a14f", "zone": "pl-waw-1"}, {"compatible_commercial_types": ["C1"], "arch": "arm", "id": "a5430536-2a51-425d-8613-ef84dae91e27", "zone": "par1"}, {"compatible_commercial_types": ["X64-120GB", "C2M", "START1-S", "VC1S", "START1-XS", "C2L", "X64-15GB", "C2S", "X64-30GB", "START1-L", "START1-M", "X64-60GB", "VC1L", "VC1M"], "arch": "x86_64", "id": "51573d2d-301f-4d24-b0d6-f151728c82f5", "zone": "ams1"}, {"compatible_commercial_types": ["ARM64-8GB", "ARM64-2GB", "ARM64-32GB", "ARM64-128GB", "ARM64-4GB", "ARM64-64GB", "ARM64-16GB"], "arch": "arm64", "id": "cac79531-98d5-48fa-aba1-8250214b88a3", "zone": "par1"}, {"compatible_commercial_types": ["GP1-XS", "DEV1-M", "DEV1-L", "START1-XS", "DEV1-S", "RENDER-S", "GP1-XL", "C2S", "X64-15GB", "DEV1-XL", "C2L", "C2M", "VC1S", "START1-S", "X64-30GB", "GP1-L", "GP1-M", "GP1-S", "START1-L", "START1-M", "VC1L", "VC1M", "X64-120GB", "X64-60GB"], "arch": "x86_64", "id": "4f15411a-ced3-456b-858c-a9fbfd22d37b", "zone": "fr-par-2"}], "name": "2019-03-25T13:06:01.961936"}], "current_public_version": "d812e374-1169-4c91-aa90-c72acceeecb2", "label": "openvpn", "organization": {"id": "6d6b64e5-6bad-4cc6-b7ef-2030884c3e11", "name": "mtouron@ocs.online.net"}}, {"valid_until": null, "description": "ownCloud lets you sync & share your files, calendar, contacts and more. Access your data from all your devices, on an open platform you can extend and modify.", "creation_date": "2016-03-07T21:05:14.365925+00:00", "logo": "https://marketplace-logos.s3.nl-ams.scw.cloud/owncloud.png", "id": "e22a5d54-ecb5-4fdd-a130-a473737ff7ab", "categories": ["instantapp"], "name": "ownCloud", "modification_date": "2019-03-26T14:00:52.457272+00:00", "versions": [{"creation_date": "2018-04-18T10:09:39.010195+00:00", "modification_date": "2018-04-18T10:09:39.010195+00:00", "id": "c9c02a9c-e072-48af-aefd-bf6be9028022", "local_images": [{"compatible_commercial_types": [], "arch": "arm", "id": "a5fb716a-1c60-4740-a179-98ce315ca3d7", "zone": "ams1"}, {"compatible_commercial_types": ["C1"], "arch": "arm", "id": "2fdbbbb4-3b63-403b-9604-27713971efd6", "zone": "par1"}, {"compatible_commercial_types": ["X64-120GB", "C2M", "START1-S", "VC1S", "C2L", "X64-15GB", "C2S", "X64-30GB", "START1-L", "START1-M", "X64-60GB", "VC1L", "VC1M"], "arch": "x86_64", "id": "4208a611-a789-40ea-ac0e-fb3001ee39a9", "zone": "ams1"}, {"compatible_commercial_types": ["GP1-XS", "DEV1-L", "RENDER-S", "GP1-XL", "C2S", "X64-15GB", "DEV1-XL", "C2L", "C2M", "VC1S", "START1-S", "X64-30GB", "GP1-L", "GP1-M", "GP1-S", "START1-L", "START1-M", "VC1L", "VC1M", "X64-120GB", "X64-60GB"], "arch": "x86_64", "id": "93de8eae-535f-47bd-88fa-84af7b5eaf76", "zone": "par1"}, {"compatible_commercial_types": ["GP1-XS", "DEV1-L", "RENDER-S", "GP1-XL", "C2S", "X64-15GB", "DEV1-XL", "C2L", "C2M", "VC1S", "START1-S", "X64-30GB", "GP1-L", "GP1-M", "GP1-S", "START1-L", "START1-M", "VC1L", "VC1M", "X64-120GB", "X64-60GB"], "arch": "x86_64", "id": "7ad0b56b-1128-418d-9a5c-c006375e63ff", "zone": "pl-waw-1"}, {"compatible_commercial_types": ["GP1-XS", "DEV1-L", "RENDER-S", "GP1-XL", "C2S", "X64-15GB", "DEV1-XL", "C2L", "C2M", "VC1S", "START1-S", "X64-30GB", "GP1-L", "GP1-M", "GP1-S", "START1-L", "START1-M", "VC1L", "VC1M", "X64-120GB", "X64-60GB"], "arch": "x86_64", "id": "1dc04f4a-6d85-4f21-b6e8-0de9ea3efabf", "zone": "fr-par-2"}], "name": "2018-04-18T10:09:38.952503"}], "current_public_version": "c9c02a9c-e072-48af-aefd-bf6be9028022", "label": "owncloud", "organization": {"id": "6d6b64e5-6bad-4cc6-b7ef-2030884c3e11", "name": "mtouron@ocs.online.net"}}, {"valid_until": null, "description": "PrestaShop is a free, open source e-commerce solution.", "creation_date": "2016-03-07T21:01:47.997930+00:00", "logo": "https://marketplace-logos.s3.nl-ams.scw.cloud/prestashop.png", "id": "58a551e0-1b8b-4c83-82e7-1b4602ad43d1", "categories": ["instantapp"], "name": "PrestaShop", "modification_date": "2019-03-26T14:00:50.067950+00:00", "versions": [{"creation_date": "2018-05-16T14:57:16.059809+00:00", "modification_date": "2018-05-16T14:57:16.059809+00:00", "id": "6c459ab1-4f1a-4f87-b92e-c00849c93fde", "local_images": [{"compatible_commercial_types": ["GP1-XS", "DEV1-L", "RENDER-S", "GP1-XL", "C2S", "X64-15GB", "DEV1-XL", "C2L", "C2M", "VC1S", "START1-S", "X64-30GB", "GP1-L", "GP1-M", "GP1-S", "START1-L", "START1-M", "VC1L", "VC1M", "X64-120GB", "X64-60GB"], "arch": "x86_64", "id": "4d07fcfa-ccda-4945-81aa-8de2206b39c0", "zone": "par1"}, {"compatible_commercial_types": ["C1"], "arch": "arm", "id": "73db574d-d5a0-49d5-b6ca-dd662895fac3", "zone": "par1"}, {"compatible_commercial_types": ["ARM64-8GB", "ARM64-2GB", "ARM64-32GB", "ARM64-128GB", "ARM64-4GB", "ARM64-64GB", "ARM64-16GB"], "arch": "arm64", "id": "c97dc20f-8066-4d56-aabf-2b75162c0f9f", "zone": "par1"}, {"compatible_commercial_types": ["X64-120GB", "C2M", "START1-S", "VC1S", "C2L", "X64-15GB", "C2S", "X64-30GB", "START1-L", "START1-M", "X64-60GB", "VC1L", "VC1M"], "arch": "x86_64", "id": "c78c3206-eb2b-4217-ad7c-0aca98dec145", "zone": "ams1"}, {"compatible_commercial_types": ["ARM64-4GB", "ARM64-128GB", "ARM64-16GB", "ARM64-32GB", "ARM64-8GB", "ARM64-2GB", "ARM64-64GB"], "arch": "arm64", "id": "7f91941c-f06a-4103-91a4-793f03b11fda", "zone": "ams1"}, {"compatible_commercial_types": [], "arch": "arm", "id": "271a9c1f-73ef-4943-bac7-799130228040", "zone": "ams1"}], "name": "2018-05-16T14:57:15.505378"}], "current_public_version": "6c459ab1-4f1a-4f87-b92e-c00849c93fde", "label": "prestashop", "organization": {"id": "6d6b64e5-6bad-4cc6-b7ef-2030884c3e11", "name": "mtouron@ocs.online.net"}}, {"valid_until": null, "description": "The intended audience of this InstantApp is Python developers who want to bootstrap or test a Python application easily, in seconds.", "creation_date": "2016-03-07T21:05:46.642023+00:00", "logo": "https://marketplace-logos.s3.nl-ams.scw.cloud/python.png", "id": "5c0f7971-c308-442e-82ab-2eb147439bd7", "categories": ["instantapp"], "name": "Python", "modification_date": "2019-03-26T14:00:49.970905+00:00", "versions": [{"creation_date": "2018-04-17T16:43:36.089412+00:00", "modification_date": "2018-04-17T16:43:36.089412+00:00", "id": "2642a982-e61d-4a58-8105-8838a69a85e3", "local_images": [{"compatible_commercial_types": ["GP1-XS", "DEV1-L", "RENDER-S", "GP1-XL", "C2S", "X64-15GB", "DEV1-XL", "C2L", "C2M", "VC1S", "START1-S", "X64-30GB", "GP1-L", "GP1-M", "GP1-S", "START1-L", "START1-M", "VC1L", "VC1M", "X64-120GB", "X64-60GB"], "arch": "x86_64", "id": "70b9c9cf-c2d9-4a80-b450-a7aef8226d96", "zone": "par1"}, {"compatible_commercial_types": ["X64-120GB", "C2M", "START1-S", "VC1S", "C2L", "X64-15GB", "C2S", "X64-30GB", "START1-L", "START1-M", "X64-60GB", "VC1L", "VC1M"], "arch": "x86_64", "id": "5218fa4e-8239-4831-ac2a-c96e23f387a2", "zone": "ams1"}, {"compatible_commercial_types": ["C1"], "arch": "arm", "id": "f205e2a6-621a-4534-a5d1-36f6cf1f8376", "zone": "par1"}, {"compatible_commercial_types": [], "arch": "arm", "id": "613a5226-3d97-4f0e-abe2-99385a050784", "zone": "ams1"}, {"compatible_commercial_types": ["GP1-XS", "DEV1-L", "RENDER-S", "GP1-XL", "C2S", "X64-15GB", "DEV1-XL", "C2L", "C2M", "VC1S", "START1-S", "X64-30GB", "GP1-L", "GP1-M", "GP1-S", "START1-L", "START1-M", "VC1L", "VC1M", "X64-120GB", "X64-60GB"], "arch": "x86_64", "id": "d8416c83-8713-4622-b5aa-87388d6060c7", "zone": "pl-waw-1"}, {"compatible_commercial_types": ["GP1-XS", "DEV1-L", "RENDER-S", "GP1-XL", "C2S", "X64-15GB", "DEV1-XL", "C2L", "C2M", "VC1S", "START1-S", "X64-30GB", "GP1-L", "GP1-M", "GP1-S", "START1-L", "START1-M", "VC1L", "VC1M", "X64-120GB", "X64-60GB"], "arch": "x86_64", "id": "1fc8dc9e-56ef-4e1f-a7b3-3daaef994b9c", "zone": "fr-par-2"}], "name": "2018-04-17T16:43:36.031203"}], "current_public_version": "2642a982-e61d-4a58-8105-8838a69a85e3", "label": "python", "organization": {"id": "6d6b64e5-6bad-4cc6-b7ef-2030884c3e11", "name": "mtouron@ocs.online.net"}}, {"valid_until": null, "description": "A dynamic, open source programming language with a focus on simplicity and productivity.", "creation_date": "2016-03-07T22:15:25.347873+00:00", "logo": "https://marketplace-logos.s3.nl-ams.scw.cloud/ruby.png", "id": "42866fbe-9168-4f77-8271-09beb6049a07", "categories": ["instantapp"], "name": "Ruby", "modification_date": "2019-03-26T14:00:54.119256+00:00", "versions": [{"creation_date": "2018-04-18T10:21:49.119857+00:00", "modification_date": "2018-04-18T10:21:49.119857+00:00", "id": "5b8c935b-5047-43fd-a423-045dae3e0d78", "local_images": [{"compatible_commercial_types": ["GP1-XS", "DEV1-L", "RENDER-S", "GP1-XL", "C2S", "X64-15GB", "DEV1-XL", "C2L", "C2M", "VC1S", "START1-S", "X64-30GB", "GP1-L", "GP1-M", "GP1-S", "START1-L", "START1-M", "VC1L", "VC1M", "X64-120GB", "X64-60GB"], "arch": "x86_64", "id": "09c71ada-00c6-43de-ad44-c77c5b857a05", "zone": "par1"}, {"compatible_commercial_types": ["X64-120GB", "C2M", "START1-S", "VC1S", "C2L", "X64-15GB", "C2S", "X64-30GB", "START1-L", "START1-M", "X64-60GB", "VC1L", "VC1M"], "arch": "x86_64", "id": "24f2e8ee-80f1-4a8d-83c4-74ed8cd80ed0", "zone": "ams1"}, {"compatible_commercial_types": ["C1"], "arch": "arm", "id": "e2479a13-414b-4a0c-ba50-d01e67ee8600", "zone": "par1"}, {"compatible_commercial_types": [], "arch": "arm", "id": "f83a03fa-58eb-4b35-bda9-1a42b6d6d90d", "zone": "ams1"}, {"compatible_commercial_types": ["GP1-XS", "DEV1-L", "RENDER-S", "GP1-XL", "C2S", "X64-15GB", "DEV1-XL", "C2L", "C2M", "VC1S", "START1-S", "X64-30GB", "GP1-L", "GP1-M", "GP1-S", "START1-L", "START1-M", "VC1L", "VC1M", "X64-120GB", "X64-60GB"], "arch": "x86_64", "id": "8e3f0420-850e-4711-95df-3c1c11ee6854", "zone": "pl-waw-1"}, {"compatible_commercial_types": ["GP1-XS", "DEV1-L", "RENDER-S", "GP1-XL", "C2S", "X64-15GB", "DEV1-XL", "C2L", "C2M", "VC1S", "START1-S", "X64-30GB", "GP1-L", "GP1-M", "GP1-S", "START1-L", "START1-M", "VC1L", "VC1M", "X64-120GB", "X64-60GB"], "arch": "x86_64", "id": "a6ed60a0-c967-4ef5-9432-5173f8c075a6", "zone": "fr-par-2"}], "name": "2018-04-18T10:21:49.057120"}], "current_public_version": "5b8c935b-5047-43fd-a423-045dae3e0d78", "label": "ruby", "organization": {"id": "6d6b64e5-6bad-4cc6-b7ef-2030884c3e11", "name": "mtouron@ocs.online.net"}}, {"valid_until": null, "description": "The torrents InstantApp spawns a private server to upload and download your digital files.", "creation_date": "2016-03-07T21:08:02.980958+00:00", "logo": "https://marketplace-logos.s3.nl-ams.scw.cloud/seedbox.png", "id": "4e18f1fc-0b66-4692-a38d-bfa4c94f29de", "categories": ["instantapp"], "name": "Torrents", "modification_date": "2019-03-26T14:00:51.427329+00:00", "versions": [{"creation_date": "2019-03-25T13:04:02.099902+00:00", "modification_date": "2019-03-25T13:04:02.099902+00:00", "id": "53d2e4fb-20df-4ba9-8d65-29256f2be480", "local_images": [{"compatible_commercial_types": ["ARM64-4GB", "ARM64-128GB", "ARM64-16GB", "ARM64-32GB", "ARM64-8GB", "ARM64-2GB", "ARM64-64GB"], "arch": "arm64", "id": "41d0db97-4822-4642-96ec-6f3fbcfc167c", "zone": "ams1"}, {"compatible_commercial_types": [], "arch": "arm", "id": "3fbe5f72-81da-4a0a-91ef-36ab68fc801e", "zone": "ams1"}, {"compatible_commercial_types": ["X64-120GB", "C2M", "START1-S", "VC1S", "START1-XS", "C2L", "X64-15GB", "C2S", "X64-30GB", "START1-L", "START1-M", "X64-60GB", "VC1L", "VC1M"], "arch": "x86_64", "id": "1aed7396-79dc-431d-af03-d3dde35d195f", "zone": "ams1"}, {"compatible_commercial_types": ["ARM64-8GB", "ARM64-2GB", "ARM64-32GB", "ARM64-128GB", "ARM64-4GB", "ARM64-64GB", "ARM64-16GB"], "arch": "arm64", "id": "398875b6-de43-4946-976f-ba5189954912", "zone": "par1"}, {"compatible_commercial_types": ["C1"], "arch": "arm", "id": "a3160162-3d72-4632-8e42-4849a1280743", "zone": "par1"}, {"compatible_commercial_types": ["GP1-XS", "DEV1-M", "DEV1-L", "START1-XS", "DEV1-S", "RENDER-S", "GP1-XL", "C2S", "X64-15GB", "DEV1-XL", "C2L", "C2M", "VC1S", "START1-S", "X64-30GB", "GP1-L", "GP1-M", "GP1-S", "START1-L", "START1-M", "VC1L", "VC1M", "X64-120GB", "X64-60GB"], "arch": "x86_64", "id": "f5d116e3-2b58-44cf-a83a-cd0682135473", "zone": "par1"}], "name": "2019-03-25T13:04:01.408435"}], "current_public_version": "53d2e4fb-20df-4ba9-8d65-29256f2be480", "label": "torrents", "organization": {"id": "6d6b64e5-6bad-4cc6-b7ef-2030884c3e11", "name": "mtouron@ocs.online.net"}}, {"valid_until": null, "description": "Ubuntu is the ideal distribution for scale-out computing, Ubuntu Server helps you make the most of your infrastructure.", "creation_date": "2020-02-17T15:50:48.980694+00:00", "logo": "https://marketplace-logos.s3.nl-ams.scw.cloud/ubuntu.png", "id": "3f1b9623-71ba-4fe3-b994-27fcdaa850ba", "categories": ["distribution"], "name": "Ubuntu 20.04 Focal Fossa", "modification_date": "2020-07-13T09:04:23.114051+00:00", "versions": [{"creation_date": "2020-07-09T12:11:07.013896+00:00", "modification_date": "2020-07-09T12:11:07.013896+00:00", "id": "3eab241d-44e3-4fba-a0ee-33f5004052fc", "local_images": [{"compatible_commercial_types": ["DEV1-L", "DEV1-M", "DEV1-S", "DEV1-XL", "GP1-L", "GP1-M", "GP1-S", "GP1-XL", "GP1-XS", "START1-L", "START1-M", "START1-S", "START1-XS", "VC1L", "VC1M", "VC1S", "X64-120GB", "X64-15GB", "X64-30GB", "X64-60GB"], "arch": "x86_64", "id": "cf44b8f5-77e2-42ed-8f1e-09ed5bb028fc", "zone": "par1"}, {"compatible_commercial_types": ["DEV1-L", "DEV1-M", "DEV1-S", "DEV1-XL", "GP1-L", "GP1-M", "GP1-S", "GP1-XL", "GP1-XS", "START1-L", "START1-M", "START1-S", "START1-XS", "VC1L", "VC1M", "VC1S", "X64-120GB", "X64-15GB", "X64-30GB", "X64-60GB"], "arch": "x86_64", "id": "0ac9b9f4-f771-47f1-adec-a7472cb3f6b0", "zone": "ams1"}, {"compatible_commercial_types": ["DEV1-L", "DEV1-M", "DEV1-S", "DEV1-XL", "GP1-L", "GP1-M", "GP1-S", "GP1-XL", "GP1-XS", "START1-L", "START1-M", "START1-S", "START1-XS", "VC1L", "VC1M", "VC1S", "X64-120GB", "X64-15GB", "X64-30GB", "X64-60GB"], "arch": "x86_64", "id": "d31f64b8-01a0-4156-bd85-9e478acaa507", "zone": "pl-waw-1"}, {"compatible_commercial_types": ["DEV1-L", "DEV1-M", "DEV1-S", "DEV1-XL", "GP1-L", "GP1-M", "GP1-S", "GP1-XL", "GP1-XS", "START1-L", "START1-M", "START1-S", "START1-XS", "VC1L", "VC1M", "VC1S", "X64-120GB", "X64-15GB", "X64-30GB", "X64-60GB"], "arch": "x86_64", "id": "0f07a9a2-518a-46a3-b04d-65d075eae12c", "zone": "fr-par-2"}], "name": "2020-07-09T12:11:06.971199+00:00"}], "current_public_version": "3eab241d-44e3-4fba-a0ee-33f5004052fc", "label": "ubuntu_focal", "organization": {"id": "51b656e3-4865-41e8-adbc-0c45bdd780db", "name": "Instances User Resources Build System"}}, {"valid_until": null, "description": "Ubuntu Bionic for Machine Learning 10.1", "creation_date": "2019-03-06T17:24:56.871317+00:00", "logo": "https://marketplace-logos.s3.nl-ams.scw.cloud/ubuntu.png", "id": "e0808ca5-1e0a-4070-8aff-d2e49e9600c1", "categories": ["Machine Learning"], "name": "Ubuntu Bionic ML 10.1", "modification_date": "2020-07-15T09:58:44.029227+00:00", "versions": [{"creation_date": "2020-07-10T08:44:25.531079+00:00", "modification_date": "2020-07-10T08:44:25.531079+00:00", "id": "d11fe800-ac24-4c8f-90c0-2f3d4b15511f", "local_images": [{"compatible_commercial_types": ["RENDER-S"], "arch": "x86_64", "id": "de04f3cf-363e-4b10-a67c-15a90a078de6", "zone": "par1"}, {"compatible_commercial_types": ["RENDER-S"], "arch": "x86_64", "id": "648b7fd3-f61f-4254-adff-ade2da31e90a", "zone": "par1"}], "name": "2020-07-10T08:44:25.491772+00:00"}], "current_public_version": "d11fe800-ac24-4c8f-90c0-2f3d4b15511f", "label": "ubuntu_bionic_ml_10.1", "organization": {"id": "51b656e3-4865-41e8-adbc-0c45bdd780db", "name": "Instances User Resources Build System"}}, {"valid_until": null, "description": "Ubuntu Bionic for Machine Learning 9.2", "creation_date": "2019-03-06T17:24:29.909001+00:00", "logo": "https://marketplace-logos.s3.nl-ams.scw.cloud/ubuntu.png", "id": "7e48e55a-7b46-4e4f-b2d2-6b7316cdca8c", "categories": ["Machine Learning"], "name": "Ubuntu Bionic ML 9.2", "modification_date": "2020-07-15T11:08:43.613020+00:00", "versions": [{"creation_date": "2020-07-15T10:17:44.680636+00:00", "modification_date": "2020-07-15T10:17:44.680636+00:00", "id": "f6625fe9-6f9f-4416-9023-dd81246f7bb3", "local_images": [{"compatible_commercial_types": ["RENDER-S"], "arch": "x86_64", "id": "648b7fd3-f61f-4254-adff-ade2da31e90a", "zone": "par1"}], "name": "2020-07-15T10:16:54.906584+00:00"}], "current_public_version": "f6625fe9-6f9f-4416-9023-dd81246f7bb3", "label": "ubuntu_bionic_ml_9.2", "organization": {"id": "51b656e3-4865-41e8-adbc-0c45bdd780db", "name": "Instances User Resources Build System"}}, {"valid_until": null, "description": "WordPress is the most popular web software you can use to create a beautiful website or blog.", "creation_date": "2016-03-07T21:03:59.783534+00:00", "logo": "https://marketplace-logos.s3.nl-ams.scw.cloud/wordpress.png", "id": "215a50f9-0ba8-4e9c-a4e7-10caf50e3586", "categories": ["instantapp"], "name": "WordPress", "modification_date": "2019-03-26T14:00:50.250657+00:00", "versions": [{"creation_date": "2019-03-08T08:58:28.971149+00:00", "modification_date": "2019-03-08T08:58:28.971149+00:00", "id": "3fb22e1f-de7f-4787-9bf8-32770151a45e", "local_images": [{"compatible_commercial_types": ["GP1-XS", "DEV1-M", "DEV1-L", "START1-XS", "DEV1-S", "RENDER-S", "GP1-XL", "C2S", "X64-15GB", "DEV1-XL", "C2L", "C2M", "VC1S", "START1-S", "X64-30GB", "GP1-L", "GP1-M", "GP1-S", "START1-L", "START1-M", "VC1L", "VC1M", "X64-120GB", "X64-60GB"], "arch": "x86_64", "id": "8523fb41-500a-4f21-998b-890908da6119", "zone": "par1"}, {"compatible_commercial_types": ["C1"], "arch": "arm", "id": "5645133b-67a3-4644-9941-16f7e2b428ea", "zone": "par1"}, {"compatible_commercial_types": ["ARM64-8GB", "ARM64-2GB", "ARM64-32GB", "ARM64-128GB", "ARM64-4GB", "ARM64-64GB", "ARM64-16GB"], "arch": "arm64", "id": "757fac76-5265-46f8-8a1f-00c0fb270010", "zone": "par1"}, {"compatible_commercial_types": ["GP1-XS", "DEV1-M", "DEV1-L", "START1-XS", "DEV1-S", "RENDER-S", "GP1-XL", "C2S", "X64-15GB", "DEV1-XL", "C2L", "C2M", "VC1S", "START1-S", "X64-30GB", "GP1-L", "GP1-M", "GP1-S", "START1-L", "START1-M", "VC1L", "VC1M", "X64-120GB", "X64-60GB"], "arch": "x86_64", "id": "0bfbc358-88f6-45b8-ba9d-d47c96a18fa7", "zone": "pl-waw-1"}, {"compatible_commercial_types": ["X64-120GB", "C2M", "START1-S", "VC1S", "START1-XS", "C2L", "X64-15GB", "C2S", "X64-30GB", "START1-L", "START1-M", "X64-60GB", "VC1L", "VC1M"], "arch": "x86_64", "id": "7a892c1a-bbdc-491f-9974-4008e3708664", "zone": "ams1"}, {"compatible_commercial_types": ["ARM64-4GB", "ARM64-128GB", "ARM64-16GB", "ARM64-32GB", "ARM64-8GB", "ARM64-2GB", "ARM64-64GB"], "arch": "arm64", "id": "726334eb-0733-4b6a-becd-769ff9bfe16d", "zone": "ams1"}, {"compatible_commercial_types": ["GP1-XS", "DEV1-M", "DEV1-L", "START1-XS", "DEV1-S", "RENDER-S", "GP1-XL", "C2S", "X64-15GB", "DEV1-XL", "C2L", "C2M", "VC1S", "START1-S", "X64-30GB", "GP1-L", "GP1-M", "GP1-S", "START1-L", "START1-M", "VC1L", "VC1M", "X64-120GB", "X64-60GB"], "arch": "x86_64", "id": "ad1f7900-e843-4745-846f-9b1ec1230557", "zone": "fr-par-2"}], "name": "2019-03-08T08:58:28.893091"}], "current_public_version": "3fb22e1f-de7f-4787-9bf8-32770151a45e", "label": "wordpress", "organization": {"id": "6d6b64e5-6bad-4cc6-b7ef-2030884c3e11", "name": "mtouron@ocs.online.net"}}]}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "73179" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Tue, 27 Oct 2020 14:51:42 GMT + Link: + - ; rel="last" + Server: + - Scaleway API-Gateway + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 4507809f-b26d-45c9-ad38-25f9b7544d68 + X-Total-Count: + - "33" + status: 200 OK + code: 200 + duration: "" diff --git a/internal/namespaces/instance/v1/testdata/test-create-server-errors-error-invalid-instance-type.golden b/internal/namespaces/instance/v1/testdata/test-create-server-errors-error-invalid-instance-type.golden index f7bd7c6429..1a540e1d95 100644 --- a/internal/namespaces/instance/v1/testdata/test-create-server-errors-error-invalid-instance-type.golden +++ b/internal/namespaces/instance/v1/testdata/test-create-server-errors-error-invalid-instance-type.golden @@ -1,12 +1,7 @@ 🎲🎲🎲 EXIT CODE: 1 🎲🎲🎲 πŸŸ₯πŸŸ₯πŸŸ₯ STDERR️️ πŸŸ₯πŸŸ₯πŸŸ₯️ -Invalid value 'MACBOOK1-S' for arg 'type' - -Hint: -Accepted values for 'type' are [GP1-XS GP1-S GP1-M GP1-L GP1-XL DEV1-S DEV1-M DEV1-L DEV1-XL RENDER-S] +Bad image label 'ubuntu_bionic' for MACBOOK1-S πŸŸ₯πŸŸ₯πŸŸ₯ JSON STDERR πŸŸ₯πŸŸ₯πŸŸ₯ { - "message": "invalid value 'MACBOOK1-S' for arg 'type'", - "error": {}, - "hint": "Accepted values for 'type' are [GP1-XS GP1-S GP1-M GP1-L GP1-XL DEV1-S DEV1-M DEV1-L DEV1-XL RENDER-S]" + "error": "bad image label 'ubuntu_bionic' for MACBOOK1-S" } From 635f7d31f2e1e255c19c3c1510e837c9b0f38714 Mon Sep 17 00:00:00 2001 From: Patrik Cyvoct Date: Wed, 28 Oct 2020 14:19:59 +0100 Subject: [PATCH 3/4] fix review Signed-off-by: Patrik Cyvoct --- internal/core/arg_specs.go | 5 ++--- internal/core/validate.go | 6 +----- .../namespaces/instance/v1/custom_server_create.go | 10 +++++----- 3 files changed, 8 insertions(+), 13 deletions(-) diff --git a/internal/core/arg_specs.go b/internal/core/arg_specs.go index 4cba656b48..ebe8612202 100644 --- a/internal/core/arg_specs.go +++ b/internal/core/arg_specs.go @@ -84,9 +84,8 @@ type ArgSpec struct { // EnumValues contains all possible values of an enum. EnumValues []string - // BadEnumWarning is the warning printed when the value is not in the EnumValues - // If not set, the value has to be in EnumeValues - BadEnumWarning string + // AllowUnknownEnumValue allows to bypass the enum values and to use another value + AllowUnknownEnumValue bool // AutoCompleteFunc is used to autocomplete possible values for a given argument. AutoCompleteFunc AutoCompleteArgFunc diff --git a/internal/core/validate.go b/internal/core/validate.go index ab0d289793..fb3cd03de6 100644 --- a/internal/core/validate.go +++ b/internal/core/validate.go @@ -141,11 +141,7 @@ func DefaultArgSpecValidateFunc() ArgSpecValidateFunc { return nil } - if !stringExists(argSpec.EnumValues, strValue) { - if argSpec.BadEnumWarning != "" { - logger.Warningf(argSpec.BadEnumWarning, strValue) - return nil - } + if !stringExists(argSpec.EnumValues, strValue) && !argSpec.AllowUnknownEnumValue { return InvalidValueForEnumError(argSpec.Name, argSpec.EnumValues, strValue) } return nil diff --git a/internal/namespaces/instance/v1/custom_server_create.go b/internal/namespaces/instance/v1/custom_server_create.go index d0bb9efdcd..4c341a6fa6 100644 --- a/internal/namespaces/instance/v1/custom_server_create.go +++ b/internal/namespaces/instance/v1/custom_server_create.go @@ -56,11 +56,11 @@ func serverCreateCommand() *core.Command { AutoCompleteFunc: instanceServerCreateImageAutoCompleteFunc, }, { - Name: "type", - Short: "Server commercial type", - Default: core.DefaultValueSetter("DEV1-S"), - EnumValues: []string{"GP1-XS", "GP1-S", "GP1-M", "GP1-L", "GP1-XL", "DEV1-S", "DEV1-M", "DEV1-L", "DEV1-XL", "RENDER-S"}, - BadEnumWarning: "The Commercial Type %s is not supported, it may misbehave\n", + Name: "type", + Short: "Server commercial type", + Default: core.DefaultValueSetter("DEV1-S"), + EnumValues: []string{"GP1-XS", "GP1-S", "GP1-M", "GP1-L", "GP1-XL", "DEV1-S", "DEV1-M", "DEV1-L", "DEV1-XL", "RENDER-S"}, + AllowUnknownEnumValue: true, }, { Name: "name", From 2a6c8695a44ccd153095eccceeb3e8adeb67c94b Mon Sep 17 00:00:00 2001 From: Patrik Cyvoct Date: Thu, 29 Oct 2020 17:24:52 +0100 Subject: [PATCH 4/4] rework pr Signed-off-by: Patrik Cyvoct --- internal/core/arg_specs.go | 3 --- internal/core/validate.go | 2 +- .../namespaces/instance/v1/custom_server_create.go | 13 ++++++++----- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/internal/core/arg_specs.go b/internal/core/arg_specs.go index ebe8612202..6d8c558209 100644 --- a/internal/core/arg_specs.go +++ b/internal/core/arg_specs.go @@ -84,9 +84,6 @@ type ArgSpec struct { // EnumValues contains all possible values of an enum. EnumValues []string - // AllowUnknownEnumValue allows to bypass the enum values and to use another value - AllowUnknownEnumValue bool - // AutoCompleteFunc is used to autocomplete possible values for a given argument. AutoCompleteFunc AutoCompleteArgFunc diff --git a/internal/core/validate.go b/internal/core/validate.go index fb3cd03de6..74c2e7a29c 100644 --- a/internal/core/validate.go +++ b/internal/core/validate.go @@ -141,7 +141,7 @@ func DefaultArgSpecValidateFunc() ArgSpecValidateFunc { return nil } - if !stringExists(argSpec.EnumValues, strValue) && !argSpec.AllowUnknownEnumValue { + if !stringExists(argSpec.EnumValues, strValue) { return InvalidValueForEnumError(argSpec.Name, argSpec.EnumValues, strValue) } return nil diff --git a/internal/namespaces/instance/v1/custom_server_create.go b/internal/namespaces/instance/v1/custom_server_create.go index 4c341a6fa6..87bdcb79c3 100644 --- a/internal/namespaces/instance/v1/custom_server_create.go +++ b/internal/namespaces/instance/v1/custom_server_create.go @@ -56,11 +56,14 @@ func serverCreateCommand() *core.Command { AutoCompleteFunc: instanceServerCreateImageAutoCompleteFunc, }, { - Name: "type", - Short: "Server commercial type", - Default: core.DefaultValueSetter("DEV1-S"), - EnumValues: []string{"GP1-XS", "GP1-S", "GP1-M", "GP1-L", "GP1-XL", "DEV1-S", "DEV1-M", "DEV1-L", "DEV1-XL", "RENDER-S"}, - AllowUnknownEnumValue: true, + Name: "type", + Short: "Server commercial type", + Default: core.DefaultValueSetter("DEV1-S"), + EnumValues: []string{"GP1-XS", "GP1-S", "GP1-M", "GP1-L", "GP1-XL", "DEV1-S", "DEV1-M", "DEV1-L", "DEV1-XL", "RENDER-S"}, + ValidateFunc: func(argSpec *core.ArgSpec, value interface{}) error { + // Allow all commercial types + return nil + }, }, { Name: "name",