From 6c3dc525707f2e5bf8bc08964acbe6cc2b781bdc Mon Sep 17 00:00:00 2001 From: Quentin Brosse Date: Wed, 12 Feb 2020 17:53:01 +0100 Subject: [PATCH 1/2] feat(instance): generate user-data commands --- go.mod | 2 +- go.sum | 2 + internal/namespaces/instance/v1/custom.go | 9 +- .../instance/v1/custom_user_data.go | 139 +-- .../instance/v1/custom_user_data_test.go | 58 ++ .../namespaces/instance/v1/instance_cli.go | 166 +++ ...data-get-get-an-existing-key.cassette.yaml | 978 ++++++++++++++++++ ...data-get-get-an-existing-key.stdout.golden | 1 + ...a-get-get-an-nonexistent-key.cassette.yaml | 944 +++++++++++++++++ ...a-get-get-an-nonexistent-key.stderr.golden | 1 + .../test-user-data-get-usage.stderr.golden | 17 + .../test-user-data-set-usage.stderr.golden | 18 + 12 files changed, 2213 insertions(+), 122 deletions(-) create mode 100644 internal/namespaces/instance/v1/custom_user_data_test.go create mode 100644 internal/namespaces/instance/v1/testdata/test-user-data-get-get-an-existing-key.cassette.yaml create mode 100644 internal/namespaces/instance/v1/testdata/test-user-data-get-get-an-existing-key.stdout.golden create mode 100644 internal/namespaces/instance/v1/testdata/test-user-data-get-get-an-nonexistent-key.cassette.yaml create mode 100644 internal/namespaces/instance/v1/testdata/test-user-data-get-get-an-nonexistent-key.stderr.golden create mode 100644 internal/namespaces/instance/v1/testdata/test-user-data-get-usage.stderr.golden create mode 100644 internal/namespaces/instance/v1/testdata/test-user-data-set-usage.stderr.golden diff --git a/go.mod b/go.mod index 7fc2d418e7..baa67464cc 100644 --- a/go.mod +++ b/go.mod @@ -20,7 +20,7 @@ require ( github.com/mattn/go-colorable v0.1.2 // indirect github.com/mattn/go-isatty v0.0.9 github.com/pkg/errors v0.9.1 // indirect - github.com/scaleway/scaleway-sdk-go v1.0.0-beta.5.0.20200211104822-047c88bb15c4 + github.com/scaleway/scaleway-sdk-go v1.0.0-beta.5.0.20200212160027-75ab2f6aeda3 github.com/sergi/go-diff v1.0.0 // indirect github.com/spf13/cobra v0.0.5 github.com/spf13/pflag v1.0.5 // indirect diff --git a/go.sum b/go.sum index 484efdce25..0b20e44efa 100644 --- a/go.sum +++ b/go.sum @@ -74,6 +74,8 @@ github.com/russross/blackfriday v1.5.2 h1:HyvC0ARfnZBqnXwABFeSZHpKvJHJJfPz81GNue github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= github.com/scaleway/scaleway-sdk-go v1.0.0-beta.5.0.20200211104822-047c88bb15c4 h1:7MhGZPXmbEqx97kIrBA7Xen1obsqQPnR0HKErxh76S4= github.com/scaleway/scaleway-sdk-go v1.0.0-beta.5.0.20200211104822-047c88bb15c4/go.mod h1:CJJ5VAbozOl0yEw7nHB9+7BXTJbIn6h7W+f6Gau5IP8= +github.com/scaleway/scaleway-sdk-go v1.0.0-beta.5.0.20200212160027-75ab2f6aeda3 h1:BQb9gbsenI8ZwZmfN7O93VrlXW8eiDlL7Mz+glsK/os= +github.com/scaleway/scaleway-sdk-go v1.0.0-beta.5.0.20200212160027-75ab2f6aeda3/go.mod h1:CJJ5VAbozOl0yEw7nHB9+7BXTJbIn6h7W+f6Gau5IP8= github.com/sergi/go-diff v1.0.0 h1:Kpca3qRNrduNnOQeazBd0ysaKrUJiIuISHxogkT9RPQ= github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= github.com/spf13/afero v1.1.2 h1:m8/z1t7/fwjysjQRYbP0RD+bUIF/8tJwPdEZsI83ACI= diff --git a/internal/namespaces/instance/v1/custom.go b/internal/namespaces/instance/v1/custom.go index 944109c069..dc729d40bb 100644 --- a/internal/namespaces/instance/v1/custom.go +++ b/internal/namespaces/instance/v1/custom.go @@ -102,13 +102,8 @@ func GetCommands() *core.Commands { // // User Data // - cmds.Merge(core.NewCommands( - userDataCommand(), - userDataListCommand(), - userDataSetCommand(), - userDataDeleteCommand(), - userDataGetCommand(), - )) + cmds.MustFind("instance", "user-data", "set").Override(userDataSetBuilder) + cmds.MustFind("instance", "user-data", "get").Override(userDataGetBuilder) return cmds } diff --git a/internal/namespaces/instance/v1/custom_user_data.go b/internal/namespaces/instance/v1/custom_user_data.go index 67bbebffea..331ad1ffd2 100644 --- a/internal/namespaces/instance/v1/custom_user_data.go +++ b/internal/namespaces/instance/v1/custom_user_data.go @@ -2,135 +2,46 @@ package instance import ( "context" - "reflect" + "fmt" + "net/http" "github.com/scaleway/scaleway-cli/internal/core" "github.com/scaleway/scaleway-sdk-go/api/instance/v1" + "github.com/scaleway/scaleway-sdk-go/scw" ) // // Commands // -func userDataCommand() *core.Command { - return &core.Command{ - Namespace: "instance", - Resource: "user-data", +func userDataSetBuilder(c *core.Command) *core.Command { + *c.ArgSpecs.GetByName("content.name") = core.ArgSpec{ + Name: "content", + Short: "Content of the user data", + Required: true, } -} -func userDataListCommand() *core.Command { - return &core.Command{ - Short: `List user data`, - Long: `List user data for the given server.`, - Namespace: "instance", - Resource: "user-data", - Verb: "list", - ArgsType: reflect.TypeOf(instance.ListServerUserDataRequest{}), - ArgSpecs: core.ArgSpecs{ - core.ZoneArgSpec(), - { - Name: "server-id", - Short: `ID of a server`, - Required: true, - }, - }, - Run: func(ctx context.Context, argsI interface{}) (i interface{}, e error) { - return instance.NewAPI(core.ExtractClient(ctx)).ListServerUserData(argsI.(*instance.ListServerUserDataRequest)) - }, - } + c.ArgSpecs.DeleteByName("content.content-type") + c.ArgSpecs.DeleteByName("content.content") + return c } -func userDataDeleteCommand() *core.Command { - return &core.Command{ - Short: `Delete user data by key`, - Long: `Delete user data key for the given server.`, - Namespace: "instance", - Resource: "user-data", - Verb: "delete", - ArgsType: reflect.TypeOf(instance.DeleteServerUserDataRequest{}), - ArgSpecs: core.ArgSpecs{ - core.ZoneArgSpec(), - { - Name: "server-id", - Short: `ID of a server`, - Required: true, - }, - { - Name: "key", - Short: `Key of the user data`, - Required: true, - }, - }, - Run: func(ctx context.Context, argsI interface{}) (i interface{}, e error) { - err := instance.NewAPI(core.ExtractClient(ctx)).DeleteServerUserData(argsI.(*instance.DeleteServerUserDataRequest)) - if err != nil { - return nil, err +func userDataGetBuilder(c *core.Command) *core.Command { + originalRun := c.Run + c.Run = func(ctx context.Context, argsI interface{}) (interface{}, error) { + req := argsI.(*instance.GetServerUserDataRequest) + res, err := originalRun(ctx, argsI) + if err != nil { + if resErr, ok := err.(*scw.ResponseError); ok { + if resErr.StatusCode == http.StatusNotFound { + return nil, fmt.Errorf("'%s' key does not exists", req.Key) + } } - return &core.SuccessResult{}, nil - }, - } -} + return nil, err + } -func userDataGetCommand() *core.Command { - return &core.Command{ - Short: `Get user data key`, - Long: `Get user data key for the given server.`, - Namespace: "instance", - Resource: "user-data", - Verb: "get", - ArgsType: reflect.TypeOf(instance.GetServerUserDataRequest{}), - ArgSpecs: core.ArgSpecs{ - core.ZoneArgSpec(), - { - Name: "server-id", - Short: `ID of a server`, - Required: true, - }, - { - Name: "key", - Short: `Key of the user data`, - Required: true, - }, - }, - Run: func(ctx context.Context, argsI interface{}) (i interface{}, e error) { - return instance.NewAPI(core.ExtractClient(ctx)).GetServerUserData(argsI.(*instance.GetServerUserDataRequest)) - }, + return res, nil } -} -func userDataSetCommand() *core.Command { - return &core.Command{ - Short: `Set a user data`, - Long: `Set a user data for the given server.`, - Namespace: "instance", - Resource: "user-data", - Verb: "set", - ArgsType: reflect.TypeOf(instance.SetServerUserDataRequest{}), - ArgSpecs: core.ArgSpecs{ - core.ZoneArgSpec(), - { - Name: "server-id", - Short: `ID of a server`, - Required: true, - }, - { - Name: "key", - Short: `Key of the user data`, - Required: true, - }, - { - Name: "content", - Short: `Content of the user data`, - Required: true, - }, - }, - Run: func(ctx context.Context, argsI interface{}) (i interface{}, e error) { - err := instance.NewAPI(core.ExtractClient(ctx)).SetServerUserData(argsI.(*instance.SetServerUserDataRequest)) - if err != nil { - return nil, err - } - return &core.SuccessResult{}, nil - }, - } + return c } diff --git a/internal/namespaces/instance/v1/custom_user_data_test.go b/internal/namespaces/instance/v1/custom_user_data_test.go new file mode 100644 index 0000000000..9892093e67 --- /dev/null +++ b/internal/namespaces/instance/v1/custom_user_data_test.go @@ -0,0 +1,58 @@ +package instance + +import ( + "testing" + + "github.com/scaleway/scaleway-cli/internal/core" +) + +func Test_UserDataGet(t *testing.T) { + t.Run("Usage", core.Test(&core.TestConfig{ + Commands: GetCommands(), + Cmd: "scw instance user-data get -h", + Check: core.TestCheckCombine( + core.TestCheckGolden(), + core.TestCheckExitCode(0), + ), + })) + + t.Run("Get an existing key", core.Test(&core.TestConfig{ + BeforeFunc: func(ctx *core.BeforeFuncCtx) error { + ctx.Meta["Server"] = ctx.ExecuteCmd("scw instance server create image=ubuntu_bionic stopped") + ctx.ExecuteCmd("scw instance user-data set server-id={{.Server.ID}} key=happy content=true") + return nil + }, + Commands: GetCommands(), + Cmd: "scw instance user-data get server-id={{.Server.ID}} key=happy", + AfterFunc: deleteVanillaServer, + Check: core.TestCheckCombine( + core.TestCheckGolden(), + core.TestCheckExitCode(0), + ), + })) + + t.Run("Get an nonexistent key", core.Test(&core.TestConfig{ + BeforeFunc: func(ctx *core.BeforeFuncCtx) error { + ctx.Meta["Server"] = ctx.ExecuteCmd("scw instance server create image=ubuntu_bionic stopped") + return nil + }, + Commands: GetCommands(), + Cmd: "scw instance user-data get server-id={{.Server.ID}} key=happy", + AfterFunc: deleteVanillaServer, + Check: core.TestCheckCombine( + core.TestCheckGolden(), + core.TestCheckExitCode(1), + ), + })) +} + +func Test_UserDataSet(t *testing.T) { + t.Run("Usage", core.Test(&core.TestConfig{ + Commands: GetCommands(), + Cmd: "scw instance user-data set -h", + Check: core.TestCheckCombine( + core.TestCheckGolden(), + core.TestCheckExitCode(0), + ), + })) +} diff --git a/internal/namespaces/instance/v1/instance_cli.go b/internal/namespaces/instance/v1/instance_cli.go index fa358a3473..555fd7fbb2 100644 --- a/internal/namespaces/instance/v1/instance_cli.go +++ b/internal/namespaces/instance/v1/instance_cli.go @@ -29,11 +29,16 @@ func GetGeneratedCommands() *core.Commands { instanceServer(), instanceServerType(), instanceSnapshot(), + instanceUserData(), instanceVolume(), instanceServerTypeList(), instanceServerList(), instanceServerGet(), instanceServerUpdate(), + instanceUserDataList(), + instanceUserDataDelete(), + instanceUserDataSet(), + instanceUserDataGet(), instanceImageList(), instanceImageGet(), instanceImageCreate(), @@ -231,6 +236,26 @@ snapshots will be available starting 2020. } } +func instanceUserData() *core.Command { + return &core.Command{ + Short: `User data is a key value store API you can use to provide data from and to your server without authentication`, + Long: `User data is a key value store API you can use to provide data from and to your server without authentication. + +As an example of use, Scaleway images contain the script scw-generate-ssh-keys which generates SSH server’s host keys then stores their fingerprints as user data under the key “ssh-host-fingerprints”. +This way, our users can ensure they are really connecting to their Scaleway instance and they are not victim of a man-in-the-middle attack. + +There are two endpoints to access user data: + - **From a running instance**, by using the metadata API at http://169.254.42.42/user_data. + To enhance security, we only allow user data viewing and editing as root. + To know if the query is issued by the root user, we only accept queries made from a local port below 1024 (by default, non-root users can’t bind ports below 1024). + To specify the local port with cURL, use ` + "`" + `curl --local-port 1-1024 http://169.254.42.42/user_data` + "`" + ` + - **From the compute API** at using methods described bellow. +`, + Namespace: "instance", + Resource: "user-data", + } +} + func instanceVolume() *core.Command { return &core.Command{ Short: `A volume is used to store data inside an instance`, @@ -496,6 +521,147 @@ func instanceServerUpdate() *core.Command { } } +func instanceUserDataList() *core.Command { + return &core.Command{ + Short: `List user data`, + Long: `List all user data keys registered on a given server.`, + Namespace: "instance", + Resource: "user-data", + Verb: "list", + ArgsType: reflect.TypeOf(instance.ListServerUserDataRequest{}), + ArgSpecs: core.ArgSpecs{ + { + Name: "server-id", + Short: `UUID of the server`, + Required: true, + }, + core.ZoneArgSpec(scw.ZoneFrPar1, scw.ZoneNlAms1), + }, + Run: func(ctx context.Context, args interface{}) (i interface{}, e error) { + request := args.(*instance.ListServerUserDataRequest) + + client := core.ExtractClient(ctx) + api := instance.NewAPI(client) + return api.ListServerUserData(request) + + }, + } +} + +func instanceUserDataDelete() *core.Command { + return &core.Command{ + Short: `Delete user data`, + Long: `Delete the given key from a server user data.`, + Namespace: "instance", + Resource: "user-data", + Verb: "delete", + ArgsType: reflect.TypeOf(instance.DeleteServerUserDataRequest{}), + ArgSpecs: core.ArgSpecs{ + { + Name: "server-id", + Short: `UUID of the server`, + Required: true, + }, + { + Name: "key", + Short: `Key of the user data to delete`, + Required: true, + }, + core.ZoneArgSpec(scw.ZoneFrPar1, scw.ZoneNlAms1), + }, + Run: func(ctx context.Context, args interface{}) (i interface{}, e error) { + request := args.(*instance.DeleteServerUserDataRequest) + + client := core.ExtractClient(ctx) + api := instance.NewAPI(client) + e = api.DeleteServerUserData(request) + if e != nil { + return nil, e + } + return &core.SuccessResult{}, nil + }, + } +} + +func instanceUserDataSet() *core.Command { + return &core.Command{ + Short: `Add/Set user data`, + Long: `Add or update a user data with the given key on a server.`, + Namespace: "instance", + Resource: "user-data", + Verb: "set", + ArgsType: reflect.TypeOf(instance.SetServerUserDataRequest{}), + ArgSpecs: core.ArgSpecs{ + { + Name: "server-id", + Short: `UUID of the server`, + Required: true, + }, + { + Name: "key", + Short: `Key of the user data to set`, + Required: true, + }, + { + Name: "content.name", + Required: false, + }, + { + Name: "content.content-type", + Required: false, + }, + { + Name: "content.content", + Required: false, + }, + core.ZoneArgSpec(scw.ZoneFrPar1, scw.ZoneNlAms1), + }, + Run: func(ctx context.Context, args interface{}) (i interface{}, e error) { + request := args.(*instance.SetServerUserDataRequest) + + client := core.ExtractClient(ctx) + api := instance.NewAPI(client) + e = api.SetServerUserData(request) + if e != nil { + return nil, e + } + return &core.SuccessResult{}, nil + }, + } +} + +func instanceUserDataGet() *core.Command { + return &core.Command{ + Short: `Get user data`, + Long: `Get the content of a user data with the given key on a server.`, + Namespace: "instance", + Resource: "user-data", + Verb: "get", + ArgsType: reflect.TypeOf(instance.GetServerUserDataRequest{}), + ArgSpecs: core.ArgSpecs{ + { + Name: "server-id", + Short: `UUID of the server`, + Required: true, + }, + { + Name: "key", + Short: `Key of the user data to get`, + Required: true, + }, + core.ZoneArgSpec(scw.ZoneFrPar1, scw.ZoneNlAms1), + }, + Run: func(ctx context.Context, args interface{}) (i interface{}, e error) { + request := args.(*instance.GetServerUserDataRequest) + + client := core.ExtractClient(ctx) + api := instance.NewAPI(client) + return api.GetServerUserData(request) + + }, + } +} + func instanceImageList() *core.Command { return &core.Command{ Short: `List images`, diff --git a/internal/namespaces/instance/v1/testdata/test-user-data-get-get-an-existing-key.cassette.yaml b/internal/namespaces/instance/v1/testdata/test-user-data-get-get-an-existing-key.cassette.yaml new file mode 100644 index 0000000000..b62c146f52 --- /dev/null +++ b/internal/namespaces/instance/v1/testdata/test-user-data-get-get-an-existing-key.cassette.yaml @@ -0,0 +1,978 @@ +--- +version: 1 +interactions: +- request: + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.5+dev (go1.13.6; darwin; 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": "2019-03-26T14:00:51.745705+00:00", + "versions": [{"creation_date": "2019-03-05T16:39:34.893732+00:00", "modification_date": + "2019-03-05T16:39:34.893732+00:00", "id": "e640c621-305b-45f5-975f-a3f80c1cec66", + "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": + "f974feac-abae-4365-b988-8ec7d1cec10d", "zone": "par1"}, {"compatible_commercial_types": + ["C1"], "arch": "arm", "id": "f63fe42a-900f-4a5e-ba99-ab0e59469b7e", "zone": + "par1"}, {"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": + ["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": "9444d178-2285-4842-ac35-5e86eda8da91", "zone": "ams1"}, {"compatible_commercial_types": + [], "arch": "arm", "id": "a5076337-734f-4b99-95ed-9a5bc73b9b09", "zone": "ams1"}, + {"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"}], "name": "2019-03-05T16:39:34.377275"}], "current_public_version": + "e640c621-305b-45f5-975f-a3f80c1cec66", "label": "ubuntu_bionic", "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": + "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-01-20T09:04:40.661026+00:00", + "versions": [{"creation_date": "2020-01-17T14:31:06.041118+00:00", "modification_date": + "2020-01-17T14:31:06.041118+00:00", "id": "24cd2ef0-bbc5-4b1a-8b08-99f617eab446", + "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": + "3d6804e0-086e-4a06-8124-7240a657668d", "zone": "par1"}, {"compatible_commercial_types": + ["ARM64-8GB", "ARM64-2GB", "ARM64-32GB", "ARM64-128GB", "ARM64-4GB", "ARM64-64GB", + "ARM64-16GB"], "arch": "arm64", "id": "245e5cea-a9b4-4a36-9055-27185afe8690", + "zone": "ams1"}, {"compatible_commercial_types": [], "arch": "arm", "id": "c40fbabc-efc8-4e04-91ea-5e1e22daece1", + "zone": "ams1"}, {"compatible_commercial_types": ["ARM64-8GB", "ARM64-2GB", + "ARM64-32GB", "ARM64-128GB", "ARM64-4GB", "ARM64-64GB", "ARM64-16GB"], "arch": + "arm64", "id": "bd859e89-fb2d-466a-a546-383630a1ead1", "zone": "par1"}, {"compatible_commercial_types": + ["GP1-XS", "DEV1-M", "DEV1-L", "START1-XS", "DEV1-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": "6c34a3f3-5e8a-455b-9bc2-f07c4c35bf89", "zone": "ams1"}, {"compatible_commercial_types": + ["C1"], "arch": "arm", "id": "a5f6bb77-3d64-4f7f-abe0-72492b1bc020", "zone": + "par1"}], "name": "2020-01-17T14:31:06.031136"}], "current_public_version": + "24cd2ef0-bbc5-4b1a-8b08-99f617eab446", "label": "ubuntu_xenial", "organization": + {"id": "6d6b64e5-6bad-4cc6-b7ef-2030884c3e11", "name": "mtouron@ocs.online.net"}}, + {"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-01-20T09:04:42.765883+00:00", "versions": [{"creation_date": "2020-01-15T11:38:06.396694+00:00", + "modification_date": "2020-01-15T11:38:06.396694+00:00", "id": "8342f5d0-46aa-46e7-8a6f-f41188c97fba", + "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": + "5f7ab0cd-d10e-49a0-91c8-315ed8a6a1a4", "zone": "par1"}, {"compatible_commercial_types": + [], "arch": "arm", "id": "d954dc33-c52e-4960-93e1-b69c85d169be", "zone": "ams1"}, + {"compatible_commercial_types": ["GP1-XS", "DEV1-M", "DEV1-L", "START1-XS", + "DEV1-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": "22a1bd8d-4498-4800-a8e5-4bc85001176c", + "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": + ["C1"], "arch": "arm", "id": "86740237-62fc-4538-9b70-4373942f53d3", "zone": + "par1"}, {"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"}], "name": "2020-01-15T11:38:06.390074"}], + "current_public_version": "8342f5d0-46aa-46e7-8a6f-f41188c97fba", "label": "debian_stretch", + "organization": {"id": "6d6b64e5-6bad-4cc6-b7ef-2030884c3e11", "name": "mtouron@ocs.online.net"}}, + {"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"}], + "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": ["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": "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"}], "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"}], "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"}], "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"}], "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"}], "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"}], "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"}], "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": "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-01-20T09:04:41.730609+00:00", + "versions": [{"creation_date": "2020-01-15T11:52:04.860098+00:00", "modification_date": + "2020-01-15T11:52:04.860098+00:00", "id": "763b45ed-2e31-4ba0-9beb-efb195503a2d", + "local_images": [{"compatible_commercial_types": ["ARM64-8GB", "ARM64-2GB", + "ARM64-32GB", "ARM64-128GB", "ARM64-4GB", "ARM64-64GB", "ARM64-16GB"], "arch": + "arm64", "id": "61010e34-7f1e-402b-a253-028a714a6678", "zone": "ams1"}, {"compatible_commercial_types": + ["GP1-XS", "DEV1-M", "DEV1-L", "START1-XS", "DEV1-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": "4720c10f-59e3-4e20-915b-dcee1fc34c11", "zone": "ams1"}, {"compatible_commercial_types": + ["ARM64-8GB", "ARM64-2GB", "ARM64-32GB", "ARM64-128GB", "ARM64-4GB", "ARM64-64GB", + "ARM64-16GB"], "arch": "arm64", "id": "9d6e8a2c-31a9-439c-a4c5-9fba1c5b96ed", + "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": + "cc9188b3-3938-47d7-b091-c9ecad1fe507", "zone": "par1"}], "name": "2020-01-15T11:52:04.849401"}], + "current_public_version": "763b45ed-2e31-4ba0-9beb-efb195503a2d", "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"}], "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": "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": + "4527e41c-0e90-43a8-857e-d9584bf8467f", "zone": "par1"}], "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": "http://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": ["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"}], "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"}], "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"}], + "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"}], + "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 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": "2019-03-26T14:00:53.253241+00:00", + "versions": [{"creation_date": "2019-03-06T18:03:45.146468+00:00", "modification_date": + "2019-03-06T18:03:45.146468+00:00", "id": "47d58f71-8382-48d1-88cd-75e5f1ed7df6", + "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": "5f96d290-88cb-4262-845e-578d0aa63201", + "zone": "par1"}], "name": "2019-03-06T18:03:45.081159"}], "current_public_version": + "47d58f71-8382-48d1-88cd-75e5f1ed7df6", "label": "ubuntu_bionic_ml_10.1", "organization": + {"id": "11111111-1111-4111-8111-111111111111", "name": "OCS"}}, {"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": "2019-03-26T14:00:50.353326+00:00", + "versions": [{"creation_date": "2019-03-06T18:05:49.119145+00:00", "modification_date": + "2019-03-06T18:05:49.119145+00:00", "id": "905865bf-e34c-46b0-b7e2-5e11922e6511", + "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": "6bd566a1-c5b6-4c59-be37-752e1491ce1f", + "zone": "par1"}], "name": "2019-03-06T18:05:49.043867"}], "current_public_version": + "905865bf-e34c-46b0-b7e2-5e11922e6511", "label": "ubuntu_bionic_ml_9.2", "organization": + {"id": "11111111-1111-4111-8111-111111111111", "name": "OCS"}}, {"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": + ["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"}], "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: + - "52747" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Wed, 12 Feb 2020 16:43:06 GMT + Link: + - ; rel="last" + Server: + - scaleway_api + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Total-Count: + - "30" + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"organization":"14d2f7ae-9775-414c-9bed-6810e060d500"}' + form: {} + headers: + Content-Type: + - application/json + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.5+dev (go1.13.6; darwin; amd64) cli-e2e-test + url: https://api.scaleway.com/instance/v1/zones/fr-par-1/ips + method: POST + response: + body: '{"ip": {"id": "03a80691-67ae-4343-90dc-18d8b715809b", "address": "51.158.127.179", + "reverse": null, "server": null, "organization": "14d2f7ae-9775-414c-9bed-6810e060d500"}}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "172" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Wed, 12 Feb 2020 16:43:07 GMT + Location: + - https://cp-par1.scaleway.com/ips/03a80691-67ae-4343-90dc-18d8b715809b + Server: + - scaleway_api + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + status: 201 Created + code: 201 + duration: "" +- request: + body: '{"name":"cli-srv-romantic-cerf","commercial_type":"DEV1-S","image":"f974feac-abae-4365-b988-8ec7d1cec10d","public_ip":"03a80691-67ae-4343-90dc-18d8b715809b","boot_type":"local","organization":"14d2f7ae-9775-414c-9bed-6810e060d500"}' + form: {} + headers: + Content-Type: + - application/json + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.5+dev (go1.13.6; darwin; amd64) cli-e2e-test + url: https://api.scaleway.com/instance/v1/zones/fr-par-1/servers + method: POST + response: + body: '{"server": {"id": "f9f34037-0758-41e5-ac64-61d3b3147fe1", "name": "cli-srv-romantic-cerf", + "arch": "x86_64", "commercial_type": "DEV1-S", "boot_type": "local", "organization": + "14d2f7ae-9775-414c-9bed-6810e060d500", "hostname": "cli-srv-romantic-cerf", + "image": {"id": "f974feac-abae-4365-b988-8ec7d1cec10d", "name": "Ubuntu Bionic + Beaver", "organization": "51b656e3-4865-41e8-adbc-0c45bdd780db", "root_volume": + {"id": "dd5f5c10-23b1-4c9c-8445-eb6740957c84", "name": "snapshot-de728daa-0bf6-4c64-abf5-a9477e791c83-2019-03-05_10:13", + "volume_type": "l_ssd", "size": 10000000000}, "extra_volumes": {}, "public": + true, "arch": "x86_64", "creation_date": "2019-03-05T10:13:15.974944+00:00", + "modification_date": "2019-03-05T13:32:29.274319+00:00", "default_bootscript": + {"id": "15fbd2f7-a0f9-412b-8502-6a44da8d98b8", "public": false, "title": "x86_64 + mainline 4.9.93 rev1", "architecture": "x86_64", "organization": "11111111-1111-4111-8111-111111111111", + "kernel": "http://169.254.42.24/kernel/x86_64-mainline-lts-4.9-4.9.93-rev1/vmlinuz-4.9.93", + "dtb": "", "initrd": "http://169.254.42.24/initrd/initrd-Linux-x86_64-v3.14.6.gz", + "bootcmdargs": "LINUX_COMMON scaleway boot=local nbd.max_part=16", "default": + false}, "from_server": null, "state": "available"}, "volumes": {"0": {"id": + "83de1599-a6f7-4f0d-814f-bfb56f2f146d", "name": "snapshot-de728daa-0bf6-4c64-abf5-a9477e791c83-2019-03-05_10:13", + "volume_type": "l_ssd", "export_uri": null, "organization": "14d2f7ae-9775-414c-9bed-6810e060d500", + "server": {"id": "f9f34037-0758-41e5-ac64-61d3b3147fe1", "name": "cli-srv-romantic-cerf"}, + "size": 20000000000, "state": "available", "creation_date": "2020-02-12T16:43:07.467615+00:00", + "modification_date": "2020-02-12T16:43:07.718764+00:00"}}, "tags": [], "state": + "stopped", "protected": false, "state_detail": "", "public_ip": {"id": "03a80691-67ae-4343-90dc-18d8b715809b", + "address": "51.158.127.179", "dynamic": false}, "ipv6": null, "extra_networks": + [], "dynamic_ip_required": false, "enable_ipv6": false, "private_ip": null, + "creation_date": "2020-02-12T16:43:07.467615+00:00", "modification_date": "2020-02-12T16:43:07.745994+00:00", + "bootscript": {"id": "15fbd2f7-a0f9-412b-8502-6a44da8d98b8", "public": false, + "title": "x86_64 mainline 4.9.93 rev1", "architecture": "x86_64", "organization": + "11111111-1111-4111-8111-111111111111", "kernel": "http://169.254.42.24/kernel/x86_64-mainline-lts-4.9-4.9.93-rev1/vmlinuz-4.9.93", + "dtb": "", "initrd": "http://169.254.42.24/initrd/initrd-Linux-x86_64-v3.14.6.gz", + "bootcmdargs": "LINUX_COMMON scaleway boot=local nbd.max_part=16", "default": + false}, "security_group": {"id": "e5bf4522-94b4-4933-bebb-9b21f786b4af", "name": + "Default security group"}, "location": null, "maintenances": [], "allowed_actions": + ["poweron", "backup"], "placement_group": null, "compute_cluster": null, "private_nics": + []}}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "2850" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Wed, 12 Feb 2020 16:43:07 GMT + Location: + - https://cp-par1.scaleway.com/servers/f9f34037-0758-41e5-ac64-61d3b3147fe1 + Server: + - scaleway_api + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + status: 201 Created + code: 201 + duration: "" +- request: + body: "true" + form: {} + headers: + Content-Type: + - text/plain + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.5+dev (go1.13.6; darwin; amd64) cli-e2e-test + url: https://api.scaleway.com/instance/v1/zones/fr-par-1/servers/f9f34037-0758-41e5-ac64-61d3b3147fe1/user_data/happy + method: PATCH + response: + body: "" + headers: + Cache-Control: + - no-cache + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - text/plain + Date: + - Wed, 12 Feb 2020 16:43:07 GMT + Server: + - scaleway_api + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + status: 204 No Content + code: 204 + duration: "" +- request: + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.5+dev (go1.13.6; darwin; amd64) cli-e2e-test + url: https://api.scaleway.com/instance/v1/zones/fr-par-1/servers/f9f34037-0758-41e5-ac64-61d3b3147fe1/user_data/happy + method: GET + response: + body: "true" + headers: + Cache-Control: + - no-cache + Content-Length: + - "4" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - text/plain + Date: + - Wed, 12 Feb 2020 16:43:07 GMT + Server: + - scaleway_api + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.5+dev (go1.13.6; darwin; amd64) cli-e2e-test + url: https://api.scaleway.com/instance/v1/zones/fr-par-1/servers/f9f34037-0758-41e5-ac64-61d3b3147fe1 + method: GET + response: + body: '{"server": {"id": "f9f34037-0758-41e5-ac64-61d3b3147fe1", "name": "cli-srv-romantic-cerf", + "arch": "x86_64", "commercial_type": "DEV1-S", "boot_type": "local", "organization": + "14d2f7ae-9775-414c-9bed-6810e060d500", "hostname": "cli-srv-romantic-cerf", + "image": {"id": "f974feac-abae-4365-b988-8ec7d1cec10d", "name": "Ubuntu Bionic + Beaver", "organization": "51b656e3-4865-41e8-adbc-0c45bdd780db", "root_volume": + {"id": "dd5f5c10-23b1-4c9c-8445-eb6740957c84", "name": "snapshot-de728daa-0bf6-4c64-abf5-a9477e791c83-2019-03-05_10:13", + "volume_type": "l_ssd", "size": 10000000000}, "extra_volumes": {}, "public": + true, "arch": "x86_64", "creation_date": "2019-03-05T10:13:15.974944+00:00", + "modification_date": "2019-03-05T13:32:29.274319+00:00", "default_bootscript": + {"id": "15fbd2f7-a0f9-412b-8502-6a44da8d98b8", "public": false, "title": "x86_64 + mainline 4.9.93 rev1", "architecture": "x86_64", "organization": "11111111-1111-4111-8111-111111111111", + "kernel": "http://169.254.42.24/kernel/x86_64-mainline-lts-4.9-4.9.93-rev1/vmlinuz-4.9.93", + "dtb": "", "initrd": "http://169.254.42.24/initrd/initrd-Linux-x86_64-v3.14.6.gz", + "bootcmdargs": "LINUX_COMMON scaleway boot=local nbd.max_part=16", "default": + false}, "from_server": null, "state": "available"}, "volumes": {"0": {"id": + "83de1599-a6f7-4f0d-814f-bfb56f2f146d", "name": "snapshot-de728daa-0bf6-4c64-abf5-a9477e791c83-2019-03-05_10:13", + "volume_type": "l_ssd", "export_uri": null, "organization": "14d2f7ae-9775-414c-9bed-6810e060d500", + "server": {"id": "f9f34037-0758-41e5-ac64-61d3b3147fe1", "name": "cli-srv-romantic-cerf"}, + "size": 20000000000, "state": "available", "creation_date": "2020-02-12T16:43:07.467615+00:00", + "modification_date": "2020-02-12T16:43:07.718764+00:00"}}, "tags": [], "state": + "stopped", "protected": false, "state_detail": "", "public_ip": {"id": "03a80691-67ae-4343-90dc-18d8b715809b", + "address": "51.158.127.179", "dynamic": false}, "ipv6": null, "extra_networks": + [], "dynamic_ip_required": false, "enable_ipv6": false, "private_ip": null, + "creation_date": "2020-02-12T16:43:07.467615+00:00", "modification_date": "2020-02-12T16:43:07.745994+00:00", + "bootscript": {"id": "15fbd2f7-a0f9-412b-8502-6a44da8d98b8", "public": false, + "title": "x86_64 mainline 4.9.93 rev1", "architecture": "x86_64", "organization": + "11111111-1111-4111-8111-111111111111", "kernel": "http://169.254.42.24/kernel/x86_64-mainline-lts-4.9-4.9.93-rev1/vmlinuz-4.9.93", + "dtb": "", "initrd": "http://169.254.42.24/initrd/initrd-Linux-x86_64-v3.14.6.gz", + "bootcmdargs": "LINUX_COMMON scaleway boot=local nbd.max_part=16", "default": + false}, "security_group": {"id": "e5bf4522-94b4-4933-bebb-9b21f786b4af", "name": + "Default security group"}, "location": null, "maintenances": [], "allowed_actions": + ["poweron", "backup"], "placement_group": null, "compute_cluster": null, "private_nics": + []}}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "2850" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Wed, 12 Feb 2020 16:43:07 GMT + Server: + - scaleway_api + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.5+dev (go1.13.6; darwin; amd64) cli-e2e-test + url: https://api.scaleway.com/instance/v1/zones/fr-par-1/servers/f9f34037-0758-41e5-ac64-61d3b3147fe1 + method: DELETE + response: + body: "" + headers: + Cache-Control: + - no-cache + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Wed, 12 Feb 2020 16:43:07 GMT + Server: + - scaleway_api + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + status: 204 No Content + code: 204 + duration: "" +- request: + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.5+dev (go1.13.6; darwin; amd64) cli-e2e-test + url: https://api.scaleway.com/instance/v1/zones/fr-par-1/ips/03a80691-67ae-4343-90dc-18d8b715809b + method: DELETE + response: + body: "" + headers: + Cache-Control: + - no-cache + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Wed, 12 Feb 2020 16:43:08 GMT + Server: + - scaleway_api + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + status: 204 No Content + code: 204 + duration: "" +- request: + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.5+dev (go1.13.6; darwin; amd64) cli-e2e-test + url: https://api.scaleway.com/instance/v1/zones/fr-par-1/volumes/83de1599-a6f7-4f0d-814f-bfb56f2f146d + method: DELETE + response: + body: "" + headers: + Cache-Control: + - no-cache + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Wed, 12 Feb 2020 16:43:08 GMT + Server: + - scaleway_api + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + status: 204 No Content + code: 204 + duration: "" diff --git a/internal/namespaces/instance/v1/testdata/test-user-data-get-get-an-existing-key.stdout.golden b/internal/namespaces/instance/v1/testdata/test-user-data-get-get-an-existing-key.stdout.golden new file mode 100644 index 0000000000..27ba77ddaf --- /dev/null +++ b/internal/namespaces/instance/v1/testdata/test-user-data-get-get-an-existing-key.stdout.golden @@ -0,0 +1 @@ +true diff --git a/internal/namespaces/instance/v1/testdata/test-user-data-get-get-an-nonexistent-key.cassette.yaml b/internal/namespaces/instance/v1/testdata/test-user-data-get-get-an-nonexistent-key.cassette.yaml new file mode 100644 index 0000000000..51616dc864 --- /dev/null +++ b/internal/namespaces/instance/v1/testdata/test-user-data-get-get-an-nonexistent-key.cassette.yaml @@ -0,0 +1,944 @@ +--- +version: 1 +interactions: +- request: + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.5+dev (go1.13.6; darwin; 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": "2019-03-26T14:00:51.745705+00:00", + "versions": [{"creation_date": "2019-03-05T16:39:34.893732+00:00", "modification_date": + "2019-03-05T16:39:34.893732+00:00", "id": "e640c621-305b-45f5-975f-a3f80c1cec66", + "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": + "f974feac-abae-4365-b988-8ec7d1cec10d", "zone": "par1"}, {"compatible_commercial_types": + ["C1"], "arch": "arm", "id": "f63fe42a-900f-4a5e-ba99-ab0e59469b7e", "zone": + "par1"}, {"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": + ["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": "9444d178-2285-4842-ac35-5e86eda8da91", "zone": "ams1"}, {"compatible_commercial_types": + [], "arch": "arm", "id": "a5076337-734f-4b99-95ed-9a5bc73b9b09", "zone": "ams1"}, + {"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"}], "name": "2019-03-05T16:39:34.377275"}], "current_public_version": + "e640c621-305b-45f5-975f-a3f80c1cec66", "label": "ubuntu_bionic", "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": + "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-01-20T09:04:40.661026+00:00", + "versions": [{"creation_date": "2020-01-17T14:31:06.041118+00:00", "modification_date": + "2020-01-17T14:31:06.041118+00:00", "id": "24cd2ef0-bbc5-4b1a-8b08-99f617eab446", + "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": + "3d6804e0-086e-4a06-8124-7240a657668d", "zone": "par1"}, {"compatible_commercial_types": + ["ARM64-8GB", "ARM64-2GB", "ARM64-32GB", "ARM64-128GB", "ARM64-4GB", "ARM64-64GB", + "ARM64-16GB"], "arch": "arm64", "id": "245e5cea-a9b4-4a36-9055-27185afe8690", + "zone": "ams1"}, {"compatible_commercial_types": [], "arch": "arm", "id": "c40fbabc-efc8-4e04-91ea-5e1e22daece1", + "zone": "ams1"}, {"compatible_commercial_types": ["ARM64-8GB", "ARM64-2GB", + "ARM64-32GB", "ARM64-128GB", "ARM64-4GB", "ARM64-64GB", "ARM64-16GB"], "arch": + "arm64", "id": "bd859e89-fb2d-466a-a546-383630a1ead1", "zone": "par1"}, {"compatible_commercial_types": + ["GP1-XS", "DEV1-M", "DEV1-L", "START1-XS", "DEV1-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": "6c34a3f3-5e8a-455b-9bc2-f07c4c35bf89", "zone": "ams1"}, {"compatible_commercial_types": + ["C1"], "arch": "arm", "id": "a5f6bb77-3d64-4f7f-abe0-72492b1bc020", "zone": + "par1"}], "name": "2020-01-17T14:31:06.031136"}], "current_public_version": + "24cd2ef0-bbc5-4b1a-8b08-99f617eab446", "label": "ubuntu_xenial", "organization": + {"id": "6d6b64e5-6bad-4cc6-b7ef-2030884c3e11", "name": "mtouron@ocs.online.net"}}, + {"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-01-20T09:04:42.765883+00:00", "versions": [{"creation_date": "2020-01-15T11:38:06.396694+00:00", + "modification_date": "2020-01-15T11:38:06.396694+00:00", "id": "8342f5d0-46aa-46e7-8a6f-f41188c97fba", + "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": + "5f7ab0cd-d10e-49a0-91c8-315ed8a6a1a4", "zone": "par1"}, {"compatible_commercial_types": + [], "arch": "arm", "id": "d954dc33-c52e-4960-93e1-b69c85d169be", "zone": "ams1"}, + {"compatible_commercial_types": ["GP1-XS", "DEV1-M", "DEV1-L", "START1-XS", + "DEV1-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": "22a1bd8d-4498-4800-a8e5-4bc85001176c", + "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": + ["C1"], "arch": "arm", "id": "86740237-62fc-4538-9b70-4373942f53d3", "zone": + "par1"}, {"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"}], "name": "2020-01-15T11:38:06.390074"}], + "current_public_version": "8342f5d0-46aa-46e7-8a6f-f41188c97fba", "label": "debian_stretch", + "organization": {"id": "6d6b64e5-6bad-4cc6-b7ef-2030884c3e11", "name": "mtouron@ocs.online.net"}}, + {"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"}], + "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": ["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": "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"}], "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"}], "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"}], "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"}], "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"}], "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"}], "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"}], "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": "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-01-20T09:04:41.730609+00:00", + "versions": [{"creation_date": "2020-01-15T11:52:04.860098+00:00", "modification_date": + "2020-01-15T11:52:04.860098+00:00", "id": "763b45ed-2e31-4ba0-9beb-efb195503a2d", + "local_images": [{"compatible_commercial_types": ["ARM64-8GB", "ARM64-2GB", + "ARM64-32GB", "ARM64-128GB", "ARM64-4GB", "ARM64-64GB", "ARM64-16GB"], "arch": + "arm64", "id": "61010e34-7f1e-402b-a253-028a714a6678", "zone": "ams1"}, {"compatible_commercial_types": + ["GP1-XS", "DEV1-M", "DEV1-L", "START1-XS", "DEV1-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": "4720c10f-59e3-4e20-915b-dcee1fc34c11", "zone": "ams1"}, {"compatible_commercial_types": + ["ARM64-8GB", "ARM64-2GB", "ARM64-32GB", "ARM64-128GB", "ARM64-4GB", "ARM64-64GB", + "ARM64-16GB"], "arch": "arm64", "id": "9d6e8a2c-31a9-439c-a4c5-9fba1c5b96ed", + "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": + "cc9188b3-3938-47d7-b091-c9ecad1fe507", "zone": "par1"}], "name": "2020-01-15T11:52:04.849401"}], + "current_public_version": "763b45ed-2e31-4ba0-9beb-efb195503a2d", "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"}], "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": "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": + "4527e41c-0e90-43a8-857e-d9584bf8467f", "zone": "par1"}], "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": "http://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": ["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"}], "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"}], "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"}], + "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"}], + "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 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": "2019-03-26T14:00:53.253241+00:00", + "versions": [{"creation_date": "2019-03-06T18:03:45.146468+00:00", "modification_date": + "2019-03-06T18:03:45.146468+00:00", "id": "47d58f71-8382-48d1-88cd-75e5f1ed7df6", + "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": "5f96d290-88cb-4262-845e-578d0aa63201", + "zone": "par1"}], "name": "2019-03-06T18:03:45.081159"}], "current_public_version": + "47d58f71-8382-48d1-88cd-75e5f1ed7df6", "label": "ubuntu_bionic_ml_10.1", "organization": + {"id": "11111111-1111-4111-8111-111111111111", "name": "OCS"}}, {"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": "2019-03-26T14:00:50.353326+00:00", + "versions": [{"creation_date": "2019-03-06T18:05:49.119145+00:00", "modification_date": + "2019-03-06T18:05:49.119145+00:00", "id": "905865bf-e34c-46b0-b7e2-5e11922e6511", + "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": "6bd566a1-c5b6-4c59-be37-752e1491ce1f", + "zone": "par1"}], "name": "2019-03-06T18:05:49.043867"}], "current_public_version": + "905865bf-e34c-46b0-b7e2-5e11922e6511", "label": "ubuntu_bionic_ml_9.2", "organization": + {"id": "11111111-1111-4111-8111-111111111111", "name": "OCS"}}, {"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": + ["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"}], "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: + - "52747" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Wed, 12 Feb 2020 16:43:08 GMT + Link: + - ; rel="last" + Server: + - scaleway_api + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Total-Count: + - "30" + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"organization":"14d2f7ae-9775-414c-9bed-6810e060d500"}' + form: {} + headers: + Content-Type: + - application/json + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.5+dev (go1.13.6; darwin; amd64) cli-e2e-test + url: https://api.scaleway.com/instance/v1/zones/fr-par-1/ips + method: POST + response: + body: '{"ip": {"id": "4420c905-5e8f-44e1-a81d-2422dc3b9884", "address": "51.158.96.34", + "reverse": null, "server": null, "organization": "14d2f7ae-9775-414c-9bed-6810e060d500"}}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "170" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Wed, 12 Feb 2020 16:43:08 GMT + Location: + - https://cp-par1.scaleway.com/ips/4420c905-5e8f-44e1-a81d-2422dc3b9884 + Server: + - scaleway_api + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + status: 201 Created + code: 201 + duration: "" +- request: + body: '{"name":"cli-srv-zen-jang","commercial_type":"DEV1-S","image":"f974feac-abae-4365-b988-8ec7d1cec10d","public_ip":"4420c905-5e8f-44e1-a81d-2422dc3b9884","boot_type":"local","organization":"14d2f7ae-9775-414c-9bed-6810e060d500"}' + form: {} + headers: + Content-Type: + - application/json + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.5+dev (go1.13.6; darwin; amd64) cli-e2e-test + url: https://api.scaleway.com/instance/v1/zones/fr-par-1/servers + method: POST + response: + body: '{"server": {"id": "303d969d-2dc1-4d92-b23c-4f4daea94cb2", "name": "cli-srv-zen-jang", + "arch": "x86_64", "commercial_type": "DEV1-S", "boot_type": "local", "organization": + "14d2f7ae-9775-414c-9bed-6810e060d500", "hostname": "cli-srv-zen-jang", "image": + {"id": "f974feac-abae-4365-b988-8ec7d1cec10d", "name": "Ubuntu Bionic Beaver", + "organization": "51b656e3-4865-41e8-adbc-0c45bdd780db", "root_volume": {"id": + "dd5f5c10-23b1-4c9c-8445-eb6740957c84", "name": "snapshot-de728daa-0bf6-4c64-abf5-a9477e791c83-2019-03-05_10:13", + "volume_type": "l_ssd", "size": 10000000000}, "extra_volumes": {}, "public": + true, "arch": "x86_64", "creation_date": "2019-03-05T10:13:15.974944+00:00", + "modification_date": "2019-03-05T13:32:29.274319+00:00", "default_bootscript": + {"id": "15fbd2f7-a0f9-412b-8502-6a44da8d98b8", "public": false, "title": "x86_64 + mainline 4.9.93 rev1", "architecture": "x86_64", "organization": "11111111-1111-4111-8111-111111111111", + "kernel": "http://169.254.42.24/kernel/x86_64-mainline-lts-4.9-4.9.93-rev1/vmlinuz-4.9.93", + "dtb": "", "initrd": "http://169.254.42.24/initrd/initrd-Linux-x86_64-v3.14.6.gz", + "bootcmdargs": "LINUX_COMMON scaleway boot=local nbd.max_part=16", "default": + false}, "from_server": null, "state": "available"}, "volumes": {"0": {"id": + "2ff9d47b-9c1d-4dd1-a070-5341b788321c", "name": "snapshot-de728daa-0bf6-4c64-abf5-a9477e791c83-2019-03-05_10:13", + "volume_type": "l_ssd", "export_uri": null, "organization": "14d2f7ae-9775-414c-9bed-6810e060d500", + "server": {"id": "303d969d-2dc1-4d92-b23c-4f4daea94cb2", "name": "cli-srv-zen-jang"}, + "size": 20000000000, "state": "available", "creation_date": "2020-02-12T16:43:09.091801+00:00", + "modification_date": "2020-02-12T16:43:09.381811+00:00"}}, "tags": [], "state": + "stopped", "protected": false, "state_detail": "", "public_ip": {"id": "4420c905-5e8f-44e1-a81d-2422dc3b9884", + "address": "51.158.96.34", "dynamic": false}, "ipv6": null, "extra_networks": + [], "dynamic_ip_required": false, "enable_ipv6": false, "private_ip": null, + "creation_date": "2020-02-12T16:43:09.091801+00:00", "modification_date": "2020-02-12T16:43:09.414773+00:00", + "bootscript": {"id": "15fbd2f7-a0f9-412b-8502-6a44da8d98b8", "public": false, + "title": "x86_64 mainline 4.9.93 rev1", "architecture": "x86_64", "organization": + "11111111-1111-4111-8111-111111111111", "kernel": "http://169.254.42.24/kernel/x86_64-mainline-lts-4.9-4.9.93-rev1/vmlinuz-4.9.93", + "dtb": "", "initrd": "http://169.254.42.24/initrd/initrd-Linux-x86_64-v3.14.6.gz", + "bootcmdargs": "LINUX_COMMON scaleway boot=local nbd.max_part=16", "default": + false}, "security_group": {"id": "e5bf4522-94b4-4933-bebb-9b21f786b4af", "name": + "Default security group"}, "location": null, "maintenances": [], "allowed_actions": + ["poweron", "backup"], "placement_group": null, "compute_cluster": null, "private_nics": + []}}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "2833" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Wed, 12 Feb 2020 16:43:09 GMT + Location: + - https://cp-par1.scaleway.com/servers/303d969d-2dc1-4d92-b23c-4f4daea94cb2 + Server: + - scaleway_api + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + status: 201 Created + code: 201 + duration: "" +- request: + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.5+dev (go1.13.6; darwin; amd64) cli-e2e-test + url: https://api.scaleway.com/instance/v1/zones/fr-par-1/servers/303d969d-2dc1-4d92-b23c-4f4daea94cb2/user_data/happy + method: GET + response: + body: "" + headers: + Content-Length: + - "0" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - text/plain + Date: + - Wed, 12 Feb 2020 16:43:09 GMT + Server: + - scaleway_api + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + status: 404 Not Found + code: 404 + duration: "" +- request: + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.5+dev (go1.13.6; darwin; amd64) cli-e2e-test + url: https://api.scaleway.com/instance/v1/zones/fr-par-1/servers/303d969d-2dc1-4d92-b23c-4f4daea94cb2 + method: GET + response: + body: '{"server": {"id": "303d969d-2dc1-4d92-b23c-4f4daea94cb2", "name": "cli-srv-zen-jang", + "arch": "x86_64", "commercial_type": "DEV1-S", "boot_type": "local", "organization": + "14d2f7ae-9775-414c-9bed-6810e060d500", "hostname": "cli-srv-zen-jang", "image": + {"id": "f974feac-abae-4365-b988-8ec7d1cec10d", "name": "Ubuntu Bionic Beaver", + "organization": "51b656e3-4865-41e8-adbc-0c45bdd780db", "root_volume": {"id": + "dd5f5c10-23b1-4c9c-8445-eb6740957c84", "name": "snapshot-de728daa-0bf6-4c64-abf5-a9477e791c83-2019-03-05_10:13", + "volume_type": "l_ssd", "size": 10000000000}, "extra_volumes": {}, "public": + true, "arch": "x86_64", "creation_date": "2019-03-05T10:13:15.974944+00:00", + "modification_date": "2019-03-05T13:32:29.274319+00:00", "default_bootscript": + {"id": "15fbd2f7-a0f9-412b-8502-6a44da8d98b8", "public": false, "title": "x86_64 + mainline 4.9.93 rev1", "architecture": "x86_64", "organization": "11111111-1111-4111-8111-111111111111", + "kernel": "http://169.254.42.24/kernel/x86_64-mainline-lts-4.9-4.9.93-rev1/vmlinuz-4.9.93", + "dtb": "", "initrd": "http://169.254.42.24/initrd/initrd-Linux-x86_64-v3.14.6.gz", + "bootcmdargs": "LINUX_COMMON scaleway boot=local nbd.max_part=16", "default": + false}, "from_server": null, "state": "available"}, "volumes": {"0": {"id": + "2ff9d47b-9c1d-4dd1-a070-5341b788321c", "name": "snapshot-de728daa-0bf6-4c64-abf5-a9477e791c83-2019-03-05_10:13", + "volume_type": "l_ssd", "export_uri": null, "organization": "14d2f7ae-9775-414c-9bed-6810e060d500", + "server": {"id": "303d969d-2dc1-4d92-b23c-4f4daea94cb2", "name": "cli-srv-zen-jang"}, + "size": 20000000000, "state": "available", "creation_date": "2020-02-12T16:43:09.091801+00:00", + "modification_date": "2020-02-12T16:43:09.381811+00:00"}}, "tags": [], "state": + "stopped", "protected": false, "state_detail": "", "public_ip": {"id": "4420c905-5e8f-44e1-a81d-2422dc3b9884", + "address": "51.158.96.34", "dynamic": false}, "ipv6": null, "extra_networks": + [], "dynamic_ip_required": false, "enable_ipv6": false, "private_ip": null, + "creation_date": "2020-02-12T16:43:09.091801+00:00", "modification_date": "2020-02-12T16:43:09.414773+00:00", + "bootscript": {"id": "15fbd2f7-a0f9-412b-8502-6a44da8d98b8", "public": false, + "title": "x86_64 mainline 4.9.93 rev1", "architecture": "x86_64", "organization": + "11111111-1111-4111-8111-111111111111", "kernel": "http://169.254.42.24/kernel/x86_64-mainline-lts-4.9-4.9.93-rev1/vmlinuz-4.9.93", + "dtb": "", "initrd": "http://169.254.42.24/initrd/initrd-Linux-x86_64-v3.14.6.gz", + "bootcmdargs": "LINUX_COMMON scaleway boot=local nbd.max_part=16", "default": + false}, "security_group": {"id": "e5bf4522-94b4-4933-bebb-9b21f786b4af", "name": + "Default security group"}, "location": null, "maintenances": [], "allowed_actions": + ["poweron", "backup"], "placement_group": null, "compute_cluster": null, "private_nics": + []}}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "2833" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Wed, 12 Feb 2020 16:43:09 GMT + Server: + - scaleway_api + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.5+dev (go1.13.6; darwin; amd64) cli-e2e-test + url: https://api.scaleway.com/instance/v1/zones/fr-par-1/servers/303d969d-2dc1-4d92-b23c-4f4daea94cb2 + method: DELETE + response: + body: "" + headers: + Cache-Control: + - no-cache + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Wed, 12 Feb 2020 16:43:09 GMT + Server: + - scaleway_api + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + status: 204 No Content + code: 204 + duration: "" +- request: + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.5+dev (go1.13.6; darwin; amd64) cli-e2e-test + url: https://api.scaleway.com/instance/v1/zones/fr-par-1/ips/4420c905-5e8f-44e1-a81d-2422dc3b9884 + method: DELETE + response: + body: "" + headers: + Cache-Control: + - no-cache + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Wed, 12 Feb 2020 16:43:09 GMT + Server: + - scaleway_api + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + status: 204 No Content + code: 204 + duration: "" +- request: + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.5+dev (go1.13.6; darwin; amd64) cli-e2e-test + url: https://api.scaleway.com/instance/v1/zones/fr-par-1/volumes/2ff9d47b-9c1d-4dd1-a070-5341b788321c + method: DELETE + response: + body: "" + headers: + Cache-Control: + - no-cache + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Wed, 12 Feb 2020 16:43:09 GMT + Server: + - scaleway_api + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + status: 204 No Content + code: 204 + duration: "" diff --git a/internal/namespaces/instance/v1/testdata/test-user-data-get-get-an-nonexistent-key.stderr.golden b/internal/namespaces/instance/v1/testdata/test-user-data-get-get-an-nonexistent-key.stderr.golden new file mode 100644 index 0000000000..4a611e76cf --- /dev/null +++ b/internal/namespaces/instance/v1/testdata/test-user-data-get-get-an-nonexistent-key.stderr.golden @@ -0,0 +1 @@ +'happy' key does not exists diff --git a/internal/namespaces/instance/v1/testdata/test-user-data-get-usage.stderr.golden b/internal/namespaces/instance/v1/testdata/test-user-data-get-usage.stderr.golden new file mode 100644 index 0000000000..653fcbdc89 --- /dev/null +++ b/internal/namespaces/instance/v1/testdata/test-user-data-get-usage.stderr.golden @@ -0,0 +1,17 @@ +Get the content of a user data with the given key on a server. + +USAGE: + scw [global-flags] instance user-data get [flags] [arg=value ...] + +ARGS: + server-id UUID of the server + key Key of the user data to get + [zone] Zone to target. If none is passed will use default zone from the config (fr-par-1 | nl-ams-1) + +FLAGS: + -h, --help help for get + +GLOBAL FLAGS: + -D, --debug Enable debug mode + -o, --output string Output format: json or human + -p, --profile string The config profile to use diff --git a/internal/namespaces/instance/v1/testdata/test-user-data-set-usage.stderr.golden b/internal/namespaces/instance/v1/testdata/test-user-data-set-usage.stderr.golden new file mode 100644 index 0000000000..c4476ac742 --- /dev/null +++ b/internal/namespaces/instance/v1/testdata/test-user-data-set-usage.stderr.golden @@ -0,0 +1,18 @@ +Add or update a user data with the given key on a server. + +USAGE: + scw [global-flags] instance user-data set [flags] [arg=value ...] + +ARGS: + server-id UUID of the server + key Key of the user data to set + content Content of the user data + [zone] Zone to target. If none is passed will use default zone from the config (fr-par-1 | nl-ams-1) + +FLAGS: + -h, --help help for set + +GLOBAL FLAGS: + -D, --debug Enable debug mode + -o, --output string Output format: json or human + -p, --profile string The config profile to use From 61f5e376c2a827905f78f625c4b3b7adf4e11fc2 Mon Sep 17 00:00:00 2001 From: Quentin Brosse Date: Thu, 13 Feb 2020 09:50:21 +0100 Subject: [PATCH 2/2] address olivier comments --- .../namespaces/instance/v1/custom_user_data_test.go | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/internal/namespaces/instance/v1/custom_user_data_test.go b/internal/namespaces/instance/v1/custom_user_data_test.go index 9892093e67..52c192003d 100644 --- a/internal/namespaces/instance/v1/custom_user_data_test.go +++ b/internal/namespaces/instance/v1/custom_user_data_test.go @@ -32,13 +32,10 @@ func Test_UserDataGet(t *testing.T) { })) t.Run("Get an nonexistent key", core.Test(&core.TestConfig{ - BeforeFunc: func(ctx *core.BeforeFuncCtx) error { - ctx.Meta["Server"] = ctx.ExecuteCmd("scw instance server create image=ubuntu_bionic stopped") - return nil - }, - Commands: GetCommands(), - Cmd: "scw instance user-data get server-id={{.Server.ID}} key=happy", - AfterFunc: deleteVanillaServer, + BeforeFunc: createVanillaServer, + Commands: GetCommands(), + Cmd: "scw instance user-data get server-id={{.Server.ID}} key=happy", + AfterFunc: deleteVanillaServer, Check: core.TestCheckCombine( core.TestCheckGolden(), core.TestCheckExitCode(1),