diff --git a/.envrc b/.envrc new file mode 100644 index 0000000..dc25ec7 --- /dev/null +++ b/.envrc @@ -0,0 +1,10 @@ +if ! has nix_direnv_version || ! nix_direnv_version 2.2.1; then + source_url "https://raw.githubusercontent.com/nix-community/nix-direnv/2.2.1/direnvrc" "sha256-zelF0vLbEl5uaqrfIzbgNzJWGmLzCmYAkInj/LNxvKs=" +fi + +watch_file flake.nix +watch_file flake.lock +if ! use flake . --no-pure-eval +then + echo "devenv could not be built. The devenv environment was not loaded. Make the necessary changes to devenv.nix and hit enter to try again." >&2 +fi diff --git a/.gitignore b/.gitignore index 4f7e4d3..d1def55 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,6 @@ main.tf variables.tf *.env +.direnv/ +.devenv/ +.ci/ diff --git a/examples/resources/cycloid_catalog_repository/resource.tf b/examples/resources/cycloid_catalog_repository/resource.tf index fcead1d..af1fcd8 100644 --- a/examples/resources/cycloid_catalog_repository/resource.tf +++ b/examples/resources/cycloid_catalog_repository/resource.tf @@ -9,10 +9,13 @@ resource "cycloid_credential" "tf_credential_catalog_repo" { } resource "cycloid_catalog_repository" "tf_catalog_repository" { - name = "tfcatalogrepo" + name = "tfcatalogrepo" credential_canonical = cycloid_credential.tf_credential_catalog_repo.canonical - url = var.catalog_repository_url - branch = var.catalog_repository_branch + url = var.catalog_repository_url + branch = var.catalog_repository_branch + + on_create_visibility = "shared" + on_create_team = "admin" } provider "cycloid" { diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..a18fb2d --- /dev/null +++ b/flake.lock @@ -0,0 +1,265 @@ +{ + "nodes": { + "cachix": { + "inputs": { + "devenv": [ + "devenv" + ], + "flake-compat": [ + "devenv" + ], + "git-hooks": [ + "devenv" + ], + "nixpkgs": "nixpkgs" + }, + "locked": { + "lastModified": 1728672398, + "narHash": "sha256-KxuGSoVUFnQLB2ZcYODW7AVPAh9JqRlD5BrfsC/Q4qs=", + "owner": "cachix", + "repo": "cachix", + "rev": "aac51f698309fd0f381149214b7eee213c66ef0a", + "type": "github" + }, + "original": { + "owner": "cachix", + "ref": "latest", + "repo": "cachix", + "type": "github" + } + }, + "devenv": { + "inputs": { + "cachix": "cachix", + "flake-compat": "flake-compat", + "git-hooks": "git-hooks", + "nix": "nix", + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1732896163, + "narHash": "sha256-eS0vSZT0ZUguR6Jf6CyupvDn4m+r/mgN6Vtg61ECYC0=", + "owner": "cachix", + "repo": "devenv", + "rev": "2c928a199d56191d7a53f29ccafa56238c8ce4e5", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "devenv", + "type": "github" + } + }, + "flake-compat": { + "flake": false, + "locked": { + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-parts": { + "inputs": { + "nixpkgs-lib": [ + "devenv", + "nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1712014858, + "narHash": "sha256-sB4SWl2lX95bExY2gMFG5HIzvva5AVMJd4Igm+GpZNw=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "9126214d0a59633752a136528f5f3b9aa8565b7d", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "git-hooks": { + "inputs": { + "flake-compat": [ + "devenv" + ], + "gitignore": "gitignore", + "nixpkgs": [ + "devenv", + "nixpkgs" + ], + "nixpkgs-stable": [ + "devenv" + ] + }, + "locked": { + "lastModified": 1730302582, + "narHash": "sha256-W1MIJpADXQCgosJZT8qBYLRuZls2KSiKdpnTVdKBuvU=", + "owner": "cachix", + "repo": "git-hooks.nix", + "rev": "af8a16fe5c264f5e9e18bcee2859b40a656876cf", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "git-hooks.nix", + "type": "github" + } + }, + "gitignore": { + "inputs": { + "nixpkgs": [ + "devenv", + "git-hooks", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1709087332, + "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "gitignore.nix", + "type": "github" + } + }, + "libgit2": { + "flake": false, + "locked": { + "lastModified": 1697646580, + "narHash": "sha256-oX4Z3S9WtJlwvj0uH9HlYcWv+x1hqp8mhXl7HsLu2f0=", + "owner": "libgit2", + "repo": "libgit2", + "rev": "45fd9ed7ae1a9b74b957ef4f337bc3c8b3df01b5", + "type": "github" + }, + "original": { + "owner": "libgit2", + "repo": "libgit2", + "type": "github" + } + }, + "nix": { + "inputs": { + "flake-compat": [ + "devenv" + ], + "flake-parts": "flake-parts", + "libgit2": "libgit2", + "nixpkgs": "nixpkgs_2", + "nixpkgs-23-11": [ + "devenv" + ], + "nixpkgs-regression": [ + "devenv" + ], + "pre-commit-hooks": [ + "devenv" + ] + }, + "locked": { + "lastModified": 1727438425, + "narHash": "sha256-X8ES7I1cfNhR9oKp06F6ir4Np70WGZU5sfCOuNBEwMg=", + "owner": "domenkozar", + "repo": "nix", + "rev": "f6c5ae4c1b2e411e6b1e6a8181cc84363d6a7546", + "type": "github" + }, + "original": { + "owner": "domenkozar", + "ref": "devenv-2.24", + "repo": "nix", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1730531603, + "narHash": "sha256-Dqg6si5CqIzm87sp57j5nTaeBbWhHFaVyG7V6L8k3lY=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "7ffd9ae656aec493492b44d0ddfb28e79a1ea25d", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_2": { + "locked": { + "lastModified": 1717432640, + "narHash": "sha256-+f9c4/ZX5MWDOuB1rKoWj+lBNm0z0rs4CK47HBLxy1o=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "88269ab3044128b7c2f4c7d68448b2fb50456870", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "release-24.05", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_3": { + "locked": { + "lastModified": 1733212471, + "narHash": "sha256-M1+uCoV5igihRfcUKrr1riygbe73/dzNnzPsmaLCmpo=", + "owner": "NixOs", + "repo": "nixpkgs", + "rev": "55d15ad12a74eb7d4646254e13638ad0c4128776", + "type": "github" + }, + "original": { + "owner": "NixOs", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "devenv": "devenv", + "nixpkgs": "nixpkgs_3", + "systems": "systems" + } + }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..a0958a6 --- /dev/null +++ b/flake.nix @@ -0,0 +1,62 @@ +{ + inputs = { + nixpkgs.url = "github:NixOs/nixpkgs/nixos-unstable"; + systems.url = "github:nix-systems/default"; + devenv.url = "github:cachix/devenv"; + devenv.inputs.nixpkgs.follows = "nixpkgs"; + }; + + nixConfig = { + extra-trusted-public-keys = "devenv.cachix.org-1:w1cLUi8dv3hnoSPGAuibQv+f9TZLr6cv/Hm9XgU50cw="; + extra-substituters = "https://devenv.cachix.org"; + }; + + outputs = { self, nixpkgs, devenv, systems, ... } @ inputs: + let + forEachSystem = nixpkgs.lib.genAttrs (import systems); + in + { + packages = forEachSystem (system: { + devenv-up = self.devShells.${system}.default.config.procfileScript; + devenv-test = self.devShells.${system}.default.config.test; + }); + + devShells = forEachSystem (system: + let + pkgs = import nixpkgs { + inherit system; + + config = { + allowUnfree = true; + }; + }; + in + { + default = devenv.lib.mkShell { + inherit inputs pkgs; + modules = [{ + languages = { + go = { + enable = true; + package = pkgs.go_1_22; + }; + + terraform = { + enable = true; + #version = ""; + }; + }; + # https://devenv.sh/reference/options/ + packages = with pkgs; [ + gnumake + terraform-ls + terraform-plugin-docs + openapi-generator-cli + yamlfix + openapi-changes + ]; + }]; + }; + }); + }; +} diff --git a/generator_config.yml b/generator_config.yml index 5e56311..d55c723 100644 --- a/generator_config.yml +++ b/generator_config.yml @@ -1,107 +1,108 @@ +--- provider: - name: cycloid - schema_ref: '#/components/schemas/TerraformProviderCycloid' + name: "cycloid" + schema_ref: "#/components/schemas/TerraformProviderCycloid" resources: organization: create: - path: /organizations - method: POST + path: "/organizations" + method: "POST" read: - path: /organizations/{organization_canonical} - method: GET + path: "/organizations/{organization_canonical}" + method: "GET" update: - path: /organizations/{organization_canonical} - method: PUT + path: "/organizations/{organization_canonical}" + method: "PUT" delete: - path: /organizations/{organization_canonical} - method: DELETE + path: "/organizations/{organization_canonical}" + method: "DELETE" credential: create: - path: /organizations/{organization_canonical}/credentials - method: POST + path: "/organizations/{organization_canonical}/credentials" + method: "POST" read: - path: /organizations/{organization_canonical}/credentials/{credential_canonical} - method: GET + path: "/organizations/{organization_canonical}/credentials/{credential_canonical}" + method: "GET" update: - path: /organizations/{organization_canonical}/credentials/{credential_canonical} - method: PUT + path: "/organizations/{organization_canonical}/credentials/{credential_canonical}" + method: "PUT" delete: - path: /organizations/{organization_canonical}/credentials/{credential_canonical} - method: DELETE + path: "/organizations/{organization_canonical}/credentials/{credential_canonical}" + method: "DELETE" schema: ignores: - - data - - credential_canonical + - "data" + - "credential_canonical" catalog_repository: create: - path: /organizations/{organization_canonical}/service_catalog_sources - method: POST + path: "/organizations/{organization_canonical}/service_catalog_sources" + method: "POST" read: - path: /organizations/{organization_canonical}/service_catalog_sources/{service_catalog_source_canonical} - method: GET + path: "/organizations/{organization_canonical}/service_catalog_sources/{service_catalog_source_canonical}" + method: "GET" update: - path: /organizations/{organization_canonical}/service_catalog_sources/{service_catalog_source_canonical} - method: PUT + path: "/organizations/{organization_canonical}/service_catalog_sources/{service_catalog_source_canonical}" + method: "PUT" delete: - path: /organizations/{organization_canonical}/service_catalog_sources/{service_catalog_source_canonical} - method: DELETE + path: "/organizations/{organization_canonical}/service_catalog_sources/{service_catalog_source_canonical}" + method: "DELETE" schema: ignores: - - data - - service_catalog_source_canonical - - page_index - - page_size + - "data" + - "service_catalog_source_canonical" + - "page_index" + - "page_size" config_repository: create: - path: /organizations/{organization_canonical}/config_repositories - method: POST + path: "/organizations/{organization_canonical}/config_repositories" + method: "POST" read: - path: /organizations/{organization_canonical}/config_repositories/{config_repository_canonical} - method: GET + path: "/organizations/{organization_canonical}/config_repositories/{config_repository_canonical}" + method: "GET" update: - path: /organizations/{organization_canonical}/config_repositories/{config_repository_canonical} - method: PUT + path: "/organizations/{organization_canonical}/config_repositories/{config_repository_canonical}" + method: "PUT" delete: - path: /organizations/{organization_canonical}/config_repositories/{config_repository_canonical} - method: DELETE + path: "/organizations/{organization_canonical}/config_repositories/{config_repository_canonical}" + method: "DELETE" schema: ignores: - - data - - config_repository_canonical - - page_index - - page_size + - "data" + - "config_repository_canonical" + - "page_index" + - "page_size" external_backend: create: - path: /organizations/{organization_canonical}/external_backends - method: POST + path: "/organizations/{organization_canonical}/external_backends" + method: "POST" read: - path: /organizations/{organization_canonical}/external_backends/{external_backend_id} - method: GET + path: "/organizations/{organization_canonical}/external_backends/{external_backend_id}" + method: "GET" update: - path: /organizations/{organization_canonical}/external_backends/{external_backend_id} - method: PUT + path: "/organizations/{organization_canonical}/external_backends/{external_backend_id}" + method: "PUT" delete: - path: /organizations/{organization_canonical}/external_backends/{external_backend_id} - method: DELETE + path: "/organizations/{organization_canonical}/external_backends/{external_backend_id}" + method: "DELETE" schema: ignores: - - page_index - - page_size - - data + - "page_index" + - "page_size" + - "data" organization_member: create: - path: /organizations/{organization_canonical}/members - method: POST + path: "/organizations/{organization_canonical}/members" + method: "POST" read: - path: /organizations/{organization_canonical}/members/{member_id} - method: GET + path: "/organizations/{organization_canonical}/members/{member_id}" + method: "GET" update: - path: /organizations/{organization_canonical}/members/{member_id} - method: PUT + path: "/organizations/{organization_canonical}/members/{member_id}" + method: "PUT" delete: - path: /organizations/{organization_canonical}/members/{member_id} - method: DELETE + path: "/organizations/{organization_canonical}/members/{member_id}" + method: "DELETE" schema: ignores: - - data + - "data" diff --git a/go.mod b/go.mod index 70f9d89..95635ad 100644 --- a/go.mod +++ b/go.mod @@ -1,23 +1,25 @@ module github.com/cycloidio/terraform-provider-cycloid -go 1.22.0 +go 1.22.9 toolchain go1.23.0 require ( + dario.cat/mergo v1.0.0 github.com/cycloidio/cycloid-cli v1.0.98-0.20240715144812-df582231c38d - github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc github.com/hashicorp/terraform-plugin-framework v1.11.0 github.com/hashicorp/terraform-plugin-framework-validators v0.13.0 github.com/hashicorp/terraform-plugin-go v0.23.0 github.com/hashicorp/terraform-plugin-log v0.9.0 + github.com/magefile/mage v1.15.0 + github.com/pkg/errors v0.9.1 ) require ( - github.com/adrg/xdg v0.5.0 // indirect + github.com/adrg/xdg v0.5.3 // indirect github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 // indirect github.com/fatih/color v1.17.0 // indirect - github.com/fsnotify/fsnotify v1.7.0 // indirect + github.com/fsnotify/fsnotify v1.8.0 // indirect github.com/go-logr/logr v1.4.2 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/go-openapi/analysis v0.23.0 // indirect @@ -41,8 +43,8 @@ require ( github.com/hashicorp/yamux v0.1.1 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/josharian/intern v1.0.0 // indirect - github.com/magiconair/properties v1.8.7 // indirect - github.com/mailru/easyjson v0.7.7 // indirect + github.com/magiconair/properties v1.8.9 // indirect + github.com/mailru/easyjson v0.9.0 // indirect github.com/mattn/go-colorable v0.1.13 // indirect github.com/mattn/go-isatty v0.0.20 // indirect github.com/mitchellh/go-testing-interface v1.14.1 // indirect @@ -51,31 +53,35 @@ require ( github.com/oklog/ulid v1.3.1 // indirect github.com/opentracing/opentracing-go v1.2.0 // indirect github.com/pelletier/go-toml/v2 v2.2.3 // indirect - github.com/pkg/errors v0.9.1 // indirect github.com/sagikazarmark/locafero v0.6.0 // indirect github.com/sagikazarmark/slog-shim v0.1.0 // indirect + github.com/sanity-io/litter v1.5.5 // indirect github.com/sourcegraph/conc v0.3.0 // indirect github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.7.0 // indirect github.com/spf13/cobra v1.8.1 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/spf13/viper v1.19.0 // indirect + github.com/stretchr/piglatin v0.0.0-20140311054444-ab61287b9936 // indirect github.com/subosito/gotenv v1.6.0 // indirect github.com/vmihailenco/msgpack/v5 v5.4.1 // indirect github.com/vmihailenco/tagparser/v2 v2.0.0 // indirect - go.mongodb.org/mongo-driver v1.16.1 // indirect - go.opentelemetry.io/otel v1.30.0 // indirect - go.opentelemetry.io/otel/metric v1.30.0 // indirect - go.opentelemetry.io/otel/trace v1.30.0 // indirect + go.mongodb.org/mongo-driver v1.17.1 // indirect + go.opentelemetry.io/auto/sdk v1.1.0 // indirect + go.opentelemetry.io/otel v1.33.0 // indirect + go.opentelemetry.io/otel/metric v1.33.0 // indirect + go.opentelemetry.io/otel/trace v1.33.0 // indirect go.uber.org/multierr v1.11.0 // indirect - golang.org/x/exp v0.0.0-20240909161429-701f63a606c0 // indirect + golang.org/x/exp v0.0.0-20241215155358-4a5509556b9e // indirect golang.org/x/net v0.29.0 // indirect - golang.org/x/sync v0.8.0 // indirect - golang.org/x/sys v0.25.0 // indirect - golang.org/x/text v0.18.0 // indirect + golang.org/x/sync v0.10.0 // indirect + golang.org/x/sys v0.28.0 // indirect + golang.org/x/text v0.21.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20240903143218-8af14fe29dc1 // indirect google.golang.org/grpc v1.66.2 // indirect google.golang.org/protobuf v1.34.2 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) + +replace github.com/cycloidio/cycloid-cli => /home/stammfrei/projects/cycloid/cycloid-cli.git/branches/feat_visibility diff --git a/go.sum b/go.sum index 98b48a8..046ca7e 100644 --- a/go.sum +++ b/go.sum @@ -1,12 +1,13 @@ -github.com/adrg/xdg v0.5.0 h1:dDaZvhMXatArP1NPHhnfaQUqWBLBsmx1h1HXQdMoFCY= -github.com/adrg/xdg v0.5.0/go.mod h1:dDdY4M4DF9Rjy4kHPeNL+ilVF+p2lK8IdM9/rTSGcI4= +dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= +dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= +github.com/adrg/xdg v0.5.3 h1:xRnxJXne7+oWDatRhR1JLnvuccuIeCoBu2rtuLqQB78= +github.com/adrg/xdg v0.5.3/go.mod h1:nlTsY+NNiCBGCK2tpm09vRqfVzrc2fLmXGpBLF0zlTQ= github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 h1:DklsrG3dyBCFEj5IhUbnKptjxatkF07cF2ak3yi77so= github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw= github.com/bufbuild/protocompile v0.4.0 h1:LbFKd2XowZvQ/kajzguUp2DC9UEIQhIq77fZZlaQsNA= github.com/bufbuild/protocompile v0.4.0/go.mod h1:3v93+mbWn/v3xzN+31nwkJfrEpAUwp+BagBSZWx+TP8= github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= -github.com/cycloidio/cycloid-cli v1.0.98-0.20240715144812-df582231c38d h1:bs/DdugKPGiz79ReMmnq3GXKqbvufQVwnnJ+LO6XN8M= -github.com/cycloidio/cycloid-cli v1.0.98-0.20240715144812-df582231c38d/go.mod h1:Yebeh6QvBboW35t3EAffyJ+4AT+6FL9J5Krj4sRHFyo= +github.com/davecgh/go-spew v0.0.0-20161028175848-04cdfd42973b/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= @@ -16,8 +17,8 @@ github.com/fatih/color v1.17.0 h1:GlRw1BRJxkpqUCBKzKOw098ed57fEsKeNjpTe3cSjK4= github.com/fatih/color v1.17.0/go.mod h1:YZ7TlrGPkiz6ku9fK3TLD/pl3CpsiFyu8N92HLgmosI= github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= -github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= -github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= +github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M= +github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= @@ -81,10 +82,12 @@ github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= -github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= -github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= -github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= +github.com/magefile/mage v1.15.0 h1:BvGheCMAsG3bWUDbZ8AyXXpCNwU9u5CB6sM+HNb9HYg= +github.com/magefile/mage v1.15.0/go.mod h1:z5UZb/iS3GoOSn0JgWuiw7dxlurVYTu+/jHXqQg881A= +github.com/magiconair/properties v1.8.9 h1:nWcCbLq1N2v/cpNsy5WvQ37Fb+YElfq20WJ/a8RkpQM= +github.com/magiconair/properties v1.8.9/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= +github.com/mailru/easyjson v0.9.0 h1:PrnmzHw7262yW8sTBwxi1PdJA3Iw/EKBa8psRf7d9a4= +github.com/mailru/easyjson v0.9.0/go.mod h1:1+xMtQp2MRNVL/V1bOzuP3aP8VNwRW55fQUto+XFtTU= github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= @@ -108,16 +111,19 @@ github.com/pelletier/go-toml/v2 v2.2.3 h1:YmeHyLY8mFWbdkNWwpr+qIL2bEqT0o95WSdkNH github.com/pelletier/go-toml/v2 v2.2.3/go.mod h1:MfCQTFTvCcUyyvvwm1+G6H/jORL20Xlb6rzQu9GuUkc= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v0.0.0-20151028094244-d8ed2627bdf0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M= -github.com/rogpeppe/go-internal v1.11.0/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUzkipdSkR5nkCZA= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/sagikazarmark/locafero v0.6.0 h1:ON7AQg37yzcRPU69mt7gwhFEBwxI6P9T4Qu3N51bwOk= github.com/sagikazarmark/locafero v0.6.0/go.mod h1:77OmuIc6VTraTXKXIs/uvUxKGUXjE1GbemJYHqdNjX0= github.com/sagikazarmark/slog-shim v0.1.0 h1:diDBnUNK9N/354PgrxMywXnAwEr1QZcOr6gto+ugjYE= github.com/sagikazarmark/slog-shim v0.1.0/go.mod h1:SrcSrq8aKtyuqEI1uvTDTK1arOWRIczQRv+GVI1AkeQ= +github.com/sanity-io/litter v1.5.5 h1:iE+sBxPBzoK6uaEP5Lt3fHNgpKcHXc/A2HGETy0uJQo= +github.com/sanity-io/litter v1.5.5/go.mod h1:9gzJgR2i4ZpjZHsKvUXIRQVk7P+yM3e+jAF7bU2UI5U= github.com/sourcegraph/conc v0.3.0 h1:OQTbbt6P72L20UqAkXXuLOj79LfEanQ+YQFNpLA9ySo= github.com/sourcegraph/conc v0.3.0/go.mod h1:Sdozi7LEKbFPqYX2/J+iBAM6HpqSLTASQIKqDmF7Mt0= github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8= @@ -131,34 +137,39 @@ github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An github.com/spf13/viper v1.19.0 h1:RWq5SEjt8o25SROyN3z2OrDB9l7RPd3lwTWU8EcEdcI= github.com/spf13/viper v1.19.0/go.mod h1:GQUN9bilAbhU/jgc1bKs99f/suXKeUMct8Adx5+Ntkg= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/piglatin v0.0.0-20140311054444-ab61287b9936 h1:QcF4JZjvg9uNP9SdKFXspe6keOBZ1XmXkb25badRIkY= +github.com/stretchr/piglatin v0.0.0-20140311054444-ab61287b9936/go.mod h1:fnVlYnscMLDEmGbdH+GXr7JHxZCj7pCoRap6A74K5lY= +github.com/stretchr/testify v0.0.0-20161117074351-18a02ba4a312/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8= github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU= github.com/vmihailenco/msgpack/v5 v5.4.1 h1:cQriyiUvjTwOHg8QZaPihLWeRAAVoCpE00IUPn0Bjt8= github.com/vmihailenco/msgpack/v5 v5.4.1/go.mod h1:GaZTsDaehaPpQVyxrf5mtQlH+pc21PIudVV/E3rRQok= github.com/vmihailenco/tagparser/v2 v2.0.0 h1:y09buUbR+b5aycVFQs/g70pqKVZNBmxwAhO7/IwNM9g= github.com/vmihailenco/tagparser/v2 v2.0.0/go.mod h1:Wri+At7QHww0WTrCBeu4J6bNtoV6mEfg5OIWRZA9qds= -go.mongodb.org/mongo-driver v1.16.1 h1:rIVLL3q0IHM39dvE+z2ulZLp9ENZKThVfuvN/IiN4l8= -go.mongodb.org/mongo-driver v1.16.1/go.mod h1:oB6AhJQvFQL4LEHyXi6aJzQJtBiTQHiAd83l0GdFaiw= -go.opentelemetry.io/otel v1.30.0 h1:F2t8sK4qf1fAmY9ua4ohFS/K+FUuOPemHUIXHtktrts= -go.opentelemetry.io/otel v1.30.0/go.mod h1:tFw4Br9b7fOS+uEao81PJjVMjW/5fvNCbpsDIXqP0pc= -go.opentelemetry.io/otel/metric v1.30.0 h1:4xNulvn9gjzo4hjg+wzIKG7iNFEaBMX00Qd4QIZs7+w= -go.opentelemetry.io/otel/metric v1.30.0/go.mod h1:aXTfST94tswhWEb+5QjlSqG+cZlmyXy/u8jFpor3WqQ= +go.mongodb.org/mongo-driver v1.17.1 h1:Wic5cJIwJgSpBhe3lx3+/RybR5PiYRMpVFgO7cOHyIM= +go.mongodb.org/mongo-driver v1.17.1/go.mod h1:wwWm/+BuOddhcq3n68LKRmgk2wXzmF6s0SFOa0GINL4= +go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA= +go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A= +go.opentelemetry.io/otel v1.33.0 h1:/FerN9bax5LoK51X/sI0SVYrjSE0/yUL7DpxW4K3FWw= +go.opentelemetry.io/otel v1.33.0/go.mod h1:SUUkR6csvUQl+yjReHu5uM3EtVV7MBm5FHKRlNx4I8I= +go.opentelemetry.io/otel/metric v1.33.0 h1:r+JOocAyeRVXD8lZpjdQjzMadVZp2M4WmQ+5WtEnklQ= +go.opentelemetry.io/otel/metric v1.33.0/go.mod h1:L9+Fyctbp6HFTddIxClbQkjtubW6O9QS3Ann/M82u6M= go.opentelemetry.io/otel/sdk v1.24.0 h1:YMPPDNymmQN3ZgczicBY3B6sf9n62Dlj9pWD3ucgoDw= go.opentelemetry.io/otel/sdk v1.24.0/go.mod h1:KVrIYw6tEubO9E96HQpcmpTKDVn9gdv35HoYiQWGDFg= -go.opentelemetry.io/otel/trace v1.30.0 h1:7UBkkYzeg3C7kQX8VAidWh2biiQbtAKjyIML8dQ9wmc= -go.opentelemetry.io/otel/trace v1.30.0/go.mod h1:5EyKqTzzmyqB9bwtCCq6pDLktPK6fmGf/Dph+8VI02o= +go.opentelemetry.io/otel/trace v1.33.0 h1:cCJuF7LRjUFso9LPnEAHJDB2pqzp+hbO8eu1qqW2d/s= +go.opentelemetry.io/otel/trace v1.33.0/go.mod h1:uIcdVUZMpTAmz0tI1z04GoVSezK37CbGV4fr1f2nBck= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= -golang.org/x/exp v0.0.0-20240909161429-701f63a606c0 h1:e66Fs6Z+fZTbFBAxKfP3PALWBtpfqks2bwGcexMxgtk= -golang.org/x/exp v0.0.0-20240909161429-701f63a606c0/go.mod h1:2TbTHSBQa924w8M6Xs1QcRcFwyucIwBGpK1p2f1YFFY= +golang.org/x/exp v0.0.0-20241215155358-4a5509556b9e h1:4qufH0hlUYs6AO6XmZC3GqfDPGSXHVXUFR6OND+iJX4= +golang.org/x/exp v0.0.0-20241215155358-4a5509556b9e/go.mod h1:qj5a5QZpwLU2NLQudwIN5koi3beDhSAlJwa67PuM98c= golang.org/x/net v0.29.0 h1:5ORfpBpCs4HzDYoodCDBbwHzdR5UrLBZ3sOnUJmFoHo= golang.org/x/net v0.29.0/go.mod h1:gLkgy8jTGERgjzMic6DS9+SP0ajcu6Xu3Orq/SpETg0= -golang.org/x/sync v0.8.0 h1:3NFvSEYkUoMifnESzZl15y791HH1qU2xm6eCJU5ZPXQ= -golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ= +golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -166,10 +177,10 @@ golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220503163025-988cb79eb6c6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.25.0 h1:r+8e+loiHxRqhXVl6ML1nO3l1+oFoWbnlu2Ehimmi34= -golang.org/x/sys v0.25.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/text v0.18.0 h1:XvMDiNzPAl0jr17s6W9lcaIhGUfUORdGCNsuLmPG224= -golang.org/x/text v0.18.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= +golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= google.golang.org/genproto/googleapis/rpc v0.0.0-20240903143218-8af14fe29dc1 h1:pPJltXNxVzT4pK9yD8vR9X75DaWYYmLGMsEvBfFQZzQ= google.golang.org/genproto/googleapis/rpc v0.0.0-20240903143218-8af14fe29dc1/go.mod h1:UqMtugtsSgubUsoxbuAoiCXvqvErP7Gf0so0mK9tHxU= google.golang.org/grpc v1.66.2 h1:3QdXkuq3Bkh7w+ywLdLvM56cmGvQHUMZpiCzt6Rqaoo= diff --git a/magefiles/magefile.go b/magefiles/magefile.go new file mode 100644 index 0000000..8a8d0f9 --- /dev/null +++ b/magefiles/magefile.go @@ -0,0 +1,21 @@ +package main + +import "github.com/cycloidio/terraform-provider-cycloid/magefiles/utils" + +// Global vars +var ( + ciDir = ".ci" +) + +// Default target to run when none is specified +// If not set, running mage will list available targets +// var Default = mg + +// Install all the go dependencies +func Install() error { + return utils.GoInstallDeps( + ".", // current project + "github.com/hashicorp/terraform-plugin-codegen-openapi/cmd/tfplugingen-openapi@latest", + "github.com/hashicorp/terraform-plugin-codegen-framework/cmd/tfplugingen-framework@latest", + ) +} diff --git a/magefiles/swagger.go b/magefiles/swagger.go new file mode 100644 index 0000000..ac2cb4e --- /dev/null +++ b/magefiles/swagger.go @@ -0,0 +1,209 @@ +package main + +import ( + "fmt" + "os" + "strings" + + "github.com/cycloidio/terraform-provider-cycloid/magefiles/utils" + "github.com/magefile/mage/mg" + "github.com/magefile/mage/sh" + "github.com/pkg/errors" + "gopkg.in/yaml.v3" +) + +var ( + swaggerFile = ciDir + "/swagger.yaml" + swaggerUrl = utils.GetSwaggerUrl() + // This is where openapi-generator-cli will put the file + openApiSourceFile = ciDir + "/openapi/openapi.yaml" + openApiDestFile = "./openapi.yaml" +) + +type Swagger mg.Namespace + +// args: swaggerUrl (default: https://docs.cycloid.io/api/swagger.yaml) +// | fetch and overwrite the swagger.yaml to .ci/swagger.yaml +func (Swagger) Fetch() error { + // if the file exists, don't fetch it + if _, err := os.Stat(swaggerFile); !os.IsNotExist(err) { + return nil + } + + if err := sh.RunV("mkdir", "-p", ciDir); err != nil { + return errors.Wrap(err, "failed to create .ci directory") + } + + return utils.CurlToFile(swaggerUrl, swaggerFile) +} + +// convert the swagger.yaml to an openapi v3 spec to ./openapi.yaml +func (Swagger) Convert() error { + mg.Deps(Swagger.Fetch) + + if err := sh.Run("openapi-generator-cli", "generate", + "--generator-name", "openapi-yaml", + "--input-spec", swaggerFile, + "--output", ciDir, + ); err != nil { + return errors.Wrap(err, "failed to convert input swagger to openapi v3") + } + + fileContent, err := os.ReadFile(openApiSourceFile) + if err != nil { + return errors.Wrapf(err, "failed to open file openapi file at %s", openApiSourceFile) + } + + var openApiData map[string]interface{} + if err = yaml.Unmarshal(fileContent, &openApiData); err != nil { + return errors.Wrap(err, "failed to parse yaml from swagger file") + } + + fmt.Println("begin openApi modifications for tfplugingen") + + // We need to delete some keys in schema + // some of our models are recursive, and it's not supported by tfplugingen-openapi + // this issue is not likely to be fixed anytime soon + // see: https://github.com/hashicorp/terraform-plugin-codegen-openapi/issues/132 + var keysToDelete = [][]string{ + {"components", "schemas", "MemberOrg", "properties", "invited_by"}, + {"components", "schemas", "MemberTeam", "properties", "invited_by"}, + } + + for _, key := range keysToDelete { + fmt.Printf("deleting attribute '%s' in OpenApi spec\n", strings.Join(key, ".")) + _, err = utils.DeleteNestedKey(openApiData, key) + if err != nil { + return err + } + } + + // We must rename some key to avoid typing issues in generated code + var keysToUpdate = []struct { + Path []string + NewKey string + }{ + // To avoid type collision with generated code + { + Path: []string{"components", "schemas", "Credential", "properties", "raw"}, + NewKey: "body", + }, + { + Path: []string{"components", "schemas", "UpdateCredential", "properties", "raw"}, + NewKey: "body", + }, + { + Path: []string{"components", "schemas", "NewCredential", "properties", "raw"}, + NewKey: "body", + }, + // For catalog repository on_create_{visibility,team} feature + { + Path: []string{"components", "schemas", "NewServiceCatalogSource", "properties", "visibility"}, + NewKey: "on_create_visibility", + }, + { + Path: []string{"components", "schemas", "NewServiceCatalogSource", "properties", "team_canonical"}, + NewKey: "on_create_team", + }, + { + Path: []string{"components", "schemas", "ServiceCatalogSource", "properties", "visibility"}, + NewKey: "on_create_visibility", + }, + { + Path: []string{"components", "schemas", "ServiceCatalogSource", "properties", "team_canonical"}, + NewKey: "on_create_team", + }, + } + + for _, key := range keysToUpdate { + fmt.Printf("renaming attribute '%s' to '%s' in OpenApi spec\n", strings.Join(key.Path, "."), key.NewKey) + err := utils.RenameNestedKey(openApiData, key.Path, key.NewKey) + if err != nil { + return err + } + } + + // Append a TerraformCycloidProvider component + // This component is required by the tf-gen tfplugingen-openapi + // docs: https://developer.hashicorp.com/terraform/plugin/code-generation/openapi-generator#generator-config + fmt.Println("adding TerraformProviderCycloid component in OpenApi spec") + terraformProviderSchema := struct { + Title string `yaml:"title"` + Required []string `yaml:"required"` + Properties map[string]map[string]string `yaml:"properties"` + }{ + Title: "TerraformProviderCycloid", + Required: []string{"url", "jwt", "organization_canonical"}, + Properties: map[string]map[string]string{ + "url": { + "type": "string", + }, + "jwt": { + "type": "string", + }, + "organization_canonical": { + "type": "string", + }, + }, + } + + openApiData["components"].(map[string]interface{})["schemas"].(map[string]interface{})["TerraformProviderCycloid"] = terraformProviderSchema + + // Inject AWSStorage, GCPStorage and SwiftStorage for some components + externalBackendMissingSchema := map[string]map[string]any{ + "aws_storage": {"$ref": "#/components/schemas/AWSStorage"}, + "gcp_storage": {"$ref": "#/components/schemas/GCPStorage"}, + "swift_storage": {"$ref": "#/components/schemas/SwiftStorage"}, + "engine": {"type": "string", "enum": []string{"aws_storage", "gcp_storage", "swift_storage"}}, + } + + for _, schema := range []string{"NewExternalBackend", "UpdateExternalBackend", "NewInfraImportExternalBackend"} { + for key, value := range externalBackendMissingSchema { + fmt.Println("Adding key", key, "to schema", schema) + err = utils.UpdateMapValue(openApiData, []string{"components", "schemas", schema, "properties", key}, value) + if err != nil { + return errors.Wrapf(err, "failed to update schema 'components.schema.%s.properties' with '%s'", schema, key) + } + } + } + + // terraform-plugin-codegen-openapi doesn't support schema composition + // see: https://github.com/hashicorp/terraform-plugin-codegen-openapi/issues/56 + // Be careful if you see a log message in the style of: + // level=WARN msg="skipping resource schema mapping" err="found 2 allOf subschema(s), schema composition is currently not supported" + // This means that a resource has not been generated + // + // this section will merge the related attribute manually + for _, schemaPath := range [][]string{ + {"components", "schemas", "AWSStorage"}, + {"components", "schemas", "GCPStorage"}, + {"components", "schemas", "SwiftStorage"}, + } { + err = utils.SwaggerMergeAllOf(openApiData, schemaPath) + if err != nil { + return err + } + } + + // Add OnCreateVisibility and OnCreateTeam parameters for catalog repo + + // write to destination + fmt.Println("writing output file", openApiDestFile) + file, err := os.Create(openApiDestFile) + if err != nil { + return errors.Wrapf(err, "failed to open or create output file '%s'", openApiDestFile) + } + + defer file.Close() + + encoder := yaml.NewEncoder(file) + defer encoder.Close() + encoder.SetIndent(2) + return encoder.Encode(openApiData) +} + +func (Swagger) Diff() error { + return sh.RunV( + "openapi-changes", "console", + openApiSourceFile, openApiDestFile) +} diff --git a/magefiles/tf.go b/magefiles/tf.go new file mode 100644 index 0000000..91d956b --- /dev/null +++ b/magefiles/tf.go @@ -0,0 +1,41 @@ +package main + +import ( + "fmt" + + "github.com/magefile/mage/mg" + "github.com/magefile/mage/sh" +) + +type Tf mg.Namespace + +func (Tf) NewResource(name string) error { + return sh.RunV( + "tfplugingen-framework", "scaffold", + "resource", "--name", name, + "--output-dir", "./provider", + ) +} + +func (Tf) Generate() error { + fmt.Println("Running code generation") + if err := sh.RunV( + "tfplugingen-openapi", "generate", + "--config", "generator_config.yml", + "--output", "out_code_spec.json", + "openapi.yaml", + ); err != nil { + return err + } + + return sh.RunV( + "tfplugingen-framework", "generate", "resources", + "--input", "./out_code_spec.json", "--output", ".", + ) +} + +func (Tf) GenerateDocs() error { + return sh.RunV( + "tfplugindocs-generate", "generate", "./..", + ) +} diff --git a/magefiles/utils/utils.go b/magefiles/utils/utils.go new file mode 100644 index 0000000..1f126cb --- /dev/null +++ b/magefiles/utils/utils.go @@ -0,0 +1,224 @@ +package utils + +import ( + "fmt" + "io" + "net/http" + "os" + "reflect" + "slices" + "strings" + + "dario.cat/mergo" + "github.com/magefile/mage/sh" + "github.com/pkg/errors" +) + +// Install one or more dependencies +func GoInstallDeps(deps ...string) error { + for _, dep := range deps { + fmt.Println("installing: ", dep) + if err := sh.RunV("go", "install", dep); err != nil { + return err + } + } + + return nil +} + +// `curl -o ` equivalent in golang +func CurlToFile(url, filename string) error { + fmt.Println("fetching data from", url) + + response, err := http.Get(url) + if err != nil { + return errors.Wrapf(err, "failed to fetch content from '%s'", url) + } + defer response.Body.Close() + + outputFile, err := os.Create(filename) + if err != nil { + return errors.Wrapf(err, "failed to write content from '%s' to '%s'", url, filename) + } + + fmt.Println("writing to", filename) + _, err = io.Copy(outputFile, response.Body) + return errors.Wrapf(err, "failed to write content from '%s' to '%s'", url, filename) +} + +// Fetch the swagger URL from CI_SWAGGER_URL env var +func GetSwaggerUrl() string { + swaggerUrl, ok := os.LookupEnv("CI_SWAGGER_URL") + if !ok { + fmt.Println("Using production swagger") + swaggerUrl = "https://docs.cycloid.io/api/swagger.yaml" + } + + return swaggerUrl +} + +// Delete a key inside a deep.nested.map +// The last elemen in path will be the deleted key +func DeleteNestedKey(m map[string]interface{}, path []string) (map[string]interface{}, error) { + if len(path) == 1 { + delete(m, path[0]) + return m, nil + } + + key := path[0] + if reflect.ValueOf(m[key]).Kind() != reflect.Map { + return nil, errors.Errorf("Nested key '%s' in path '%v' is not a map, value: %v", key, path, reflect.ValueOf(m[key])) + } + + nestedMap, ok := m[key].(map[string]interface{}) + if !ok { + return nil, errors.Errorf("failed to get key '%s' in map '%v'", key, m) + } + + finalMap, err := DeleteNestedKey(nestedMap, path[1:]) + if err != nil { + return nil, err + } + + return finalMap, err +} + +// Delete a key inside a deep.nested.map +// The last element in path will be the key renamed +func RenameNestedKey(m map[string]interface{}, path []string, newName string) error { + key := path[0] + if len(path) == 1 { + value := m[key] + delete(m, key) + m[newName] = value + return nil + } + + if reflect.ValueOf(m[key]).Kind() != reflect.Map { + return errors.Errorf("Nested key '%s' in path '%v' is not a map, value: %v", key, path, reflect.ValueOf(m[key])) + } + + nestedMap, ok := m[key].(map[string]interface{}) + if !ok { + return errors.Errorf("failed to get key '%s' in map '%v'", key, m) + } + + err := RenameNestedKey(nestedMap, path[1:], newName) + if err != nil { + return err + } + + return nil +} + +// Update a nested map value in a map[string]interface{} +// Can't traverse array (for now) +func UpdateMapValue(m map[string]interface{}, path []string, value interface{}) error { + key := path[0] + if len(path) == 1 { + m[key] = value + return nil + } + + if reflect.ValueOf(m[key]).Kind() != reflect.Map { + return errors.Errorf("Nested key '%s' in path '%v' is not a map, value: %v", key, path, reflect.ValueOf(m[key])) + } + + nestedMap, ok := m[key].(map[string]interface{}) + if !ok { + return errors.Errorf("failed to get key '%s' in map '%v'", key, m) + } + + err := UpdateMapValue(nestedMap, path[1:], value) + if err != nil { + return err + } + + return nil +} + +// merge the properties of an allOf Keyword in swagger +// this will try to merge the propeties of the $ref and the other in the array +func SwaggerMergeAllOf(m map[string]interface{}, path []string) error { + key := path[0] + + if len(path) == 1 { + fmt.Printf("Trying to merge attributes of '%s'.\n", key) + values, ok := m[key].(map[string]interface{}) + if !ok { + return errors.Errorf("value of key '%s' is not a map.", key) + } + + allOf, ok := values["allOf"].([]interface{}) + if !ok { + return errors.Errorf("no allOf key was found in key '%s'", key) + } + + var mergedProperties = values + for _, properties := range allOf { + var mappedProperties = properties.(map[string]interface{}) + if ref, ok := mappedProperties["$ref"].(string); ok { + fmt.Printf("found ref '%s', merging properties\n", ref) + expandedRef, err := SwaggerExpandRefProperties(m, ref) + if err != nil { + return err + } + + err = mergo.MapWithOverwrite(&mergedProperties, expandedRef) + if err != nil { + return err + } + + delete(mappedProperties, "$ref") + } + + err := mergo.MapWithOverwrite(&mergedProperties, properties) + if err != nil { + return errors.Wrapf(err, "fail to merge properties of '%s'", path) + } + } + + // Delete allOf Keyword once we merged it + delete(mergedProperties, "allOf") + + m[key] = mergedProperties + return nil + } + + if reflect.ValueOf(m[key]).Kind() != reflect.Map { + return errors.Errorf("Nested key '%s' in path '%v' is not a map, value: %v", key, path, reflect.ValueOf(m[key])) + } + + nestedMap, ok := m[key].(map[string]interface{}) + if !ok { + return errors.Errorf("failed to get key '%s' in map '%v'", key, m) + } + + return SwaggerMergeAllOf(nestedMap, path[1:]) +} + +func SwaggerExpandRefProperties(m map[string]interface{}, ref string) (map[string]interface{}, error) { + refKeys := strings.Split(strings.TrimLeft(ref, "#/"), "/") + + // Okay, I will be cheating here for now + // This function is used in the context of SwaggerMergeAllOf + // when we are in the 'components.schemas' key of the openAPI spec + // since we don't have acces to the full openAPI object here + // I consider that we are at this level + + // It's dirty but it's a script, If you need to change this, this means that requirements have change -.o.- + + // I can at least assert that + if len(refKeys) != 3 || !(slices.Contains(refKeys, "components") && slices.Contains(refKeys, "schemas")) { + return nil, errors.Errorf( + "Reference '%s' is not contains in the 'components.schemas' section of the OpenAPI file.\n%s", + ref, "This script does not support ref outside this key.") + } + key := refKeys[2] + nested, ok := m[key].(map[string]interface{}) + if !ok { + return nil, errors.Errorf("key '%s' from ref '%s' was not found in OpenAPI file", key, ref) + } + + return nested, nil +} diff --git a/openapi.yaml b/openapi.yaml index 884e8a1..6fb52ad 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -1,39133 +1,55527 @@ -openapi: 3.0.1 -info: - title: Welcome! - description: "This is the Cycloid's API Reference. It provides descriptions, syntax,\ - \ and usage examples for each of the actions and data types available within our\ - \ console." - termsOfService: https://console.cycloid.io/terms - contact: - name: The Great Owl - url: https://www.cycloid.io - email: contact@cycloid.io - license: - name: Cycloid @copyrights - url: https://cycloid.io - version: "0" -servers: -- url: https://http-api.cycloid.io/ -security: -- api_key: [] -tags: -- name: Cycloid - description: Operation related to Cycloid's application. -- name: Organizations - description: Operations for organizations. -- name: Organization teams - description: Operations for teams which belong to an organization. -- name: Organization projects - description: Operations for projects which belong to an organization. -- name: Organization members - description: Operations for members of an organization. -- name: User - description: Operations for the authenticated user. -- name: Organization pipelines - description: Operations regarding pipelines in an organization. -- name: Organization pipelines jobs - description: Operations on jobs belonging to a pipeline. -- name: Organization pipelines jobs build - description: Operations on build of a job from a pipeline. -- name: Organization Infrastructure - description: Operations on the infrastructure of an organization -- name: Organization Environments - description: Operations to perform on an environment associated to a project of - an organization. -- name: Organization Logs - description: Operations on the logs of a project -- name: Organization Children - description: Operations on the children of an organization -- name: Organization Infrastructure Policies - description: Operations on the infrastructure policies of an organization -- name: Organization Subscriptions - description: Operations on the subscriptions -- name: Cost Estimation - description: Operations related to estimating cost of infrastructure. -- name: Organization kpis - description: Operations on KPIs of an organization -paths: - /appearance/{organization_canonical}: - get: - tags: - - Appearance - description: Get the active appearance available in the organization - operationId: getActiveAppearance - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - responses: - "200": - description: Default Appearance available in the organization. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/Appearance' - example: - data: - canonical: default - name: Default - display_name: Cycloid - tab_title: Cycloid - color: - r: 28 - g: 151 - b: 151 - logo: https://console.cycloid.io/static/images/app-logo-square.svg - favicon: https://console.cycloid.io/static/favicons/favicon.ico - footer: "" - is_active: true - created_at: 1503225026 - updated_at: 1503335026 - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - security: [] - /appearance: - get: - tags: - - Appearance - description: Get the default appearance available in the platform - operationId: getDefaultAppearance - responses: - "200": - description: Default Appearance available in the platform. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/Appearance' - example: - data: - canonical: default - name: Default - display_name: Cycloid - tab_title: Cycloid - color: - r: 28 - g: 151 - b: 151 - logo: /static/logos/logo.svg - favicon: /static/favicons/favicon.ico - footer: "" - is_active: true - created_at: 1503225026 - updated_at: 1503335026 - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - security: [] - /organizations/{organization_canonical}/code_generation/terraform/jsontohcl: - post: - tags: - - Code Generation - description: Transforms a JSON to a HCL - operationId: terraformJSONToHCL - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - requestBody: - description: The Terraform JSON config - content: - application/vnd.cycloid.io.v1+json: - schema: - $ref: '#/components/schemas/TerraformJSONConfig' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/TerraformJSONConfig' - required: true - responses: - "200": - description: The HCL translation of the config - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/TerraformHCLConfig' - example: - data: - config: " \"data\" \"aws_ami\" \"debian_jessie_latest\" { \"most_recent\"\ - \ = true } \"locals\" = { \"codecommit_repository_name\" = \"\ - something\" } \"output\" \"sensitive\" { \"sensitive\" = true\n\ - \"value\" = \"VALUE\" } \"provider\" \"aws\" { \"access_key\"\ - \ = \"${var.access_key}\" } \"resource\" \"aws_elb\" \"front\"\ - \ { \"name\" = \"${var.project}-front-${var.env}\" \"tags\" =\ - \ { \"name\" = \"some name\" } } \"variable\" \"front_disk_size\"\ - \ { \"default\" = 60 } " - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - x-codegen-request-body-name: body - /organizations/{organization_canonical}/code_generation/infra_import/providers/{provider_canonical}/presets: - get: - tags: - - Code Generation - description: List Infra Import Presets - operationId: getInfraImportPresets - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: provider_canonical - in: path - description: A canonical of a Provider - required: true - schema: - minLength: 3 - pattern: "^[a-z0-9]+[a-z0-9\\-_]+[a-z0-9]+$" +components: + parameters: + api_key_canonical: + description: A canonical of an API key. + in: path + name: api_key_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + appearance_canonical: + description: A canonical of an appearance. + in: path + name: appearance_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + authentication_token: + description: A token for authenticating login vie email + in: path + name: authentication_token + required: true + schema: + minLength: 5 + type: string + aws_infrastructure_resource_query: + allowEmptyValue: false + description: Supported AWS type of resource to query. The parameter can be specified several times in order to request for different kind of resources. + explode: true + in: query + name: resource + schema: + items: + enum: + - instances + - vpcs + - images + - security_groups + - subnets + - volumes + - snapshots + - cache_clusters + - load_balancers_v1 + - load_balancers_v2 + - db_instances + - buckets type: string - responses: - "200": - description: The Infra Import Presets - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - required: - - data - - pagination - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/InfraImportPreset' - pagination: - $ref: '#/components/schemas/Pagination' - example: - data: - - name: Preset1 - resources: - - aws_route53_zone - - aws_security_group - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - ? /organizations/{organization_canonical}/code_generation/infra_import/providers/{provider_canonical}/resources/{resource_canonical} - : post: - tags: - - Code Generation - description: List Provider's Resource - operationId: getInfraImportResource - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: provider_canonical - in: path - description: A canonical of a Provider - required: true - schema: - minLength: 3 - pattern: "^[a-z0-9]+[a-z0-9\\-_]+[a-z0-9]+$" + type: array + uniqueItems: true + style: form + aws_next_token: + description: The token to retrieve the next page of results + in: query + name: next + schema: + minLength: 1 + type: string + aws_tags: + allowEmptyValue: false + description: An amazon tag, represented as `key|value` and where `key` or `value` could be omitted but not both, in order to select resources which has a `key` or a `value` whatever is its counterpart. `key` nor `value` can contains the `|` character. The parameter can be specified several times in order to request resources which match with at least one of the `tag|value` pairs + explode: true + in: query + name: tag + schema: + items: + maxLength: 383 + minLength: 2 + pattern: ^(?:(?:[\w\-+=.:/@ ]+\|)|(?:\|[\w\-+=.:/@ ]+)|(?:[\w\-+=.:/@ ]+\|[\w\-+=.:/@ ]+))$ type: string - - name: resource_canonical - in: path - description: A canonical of a Resource - required: true - schema: - minLength: 3 - pattern: "^[a-z0-9]+[a-z0-9\\-_]+[a-z0-9]+$" + type: array + uniqueItems: true + style: form + build_id: + description: A build id + in: path + name: build_id + required: true + schema: + maxLength: 20 + minLength: 1 + pattern: ^[0-9]+$ + type: string + cache_path_query: + description: The cache path to use as part of a clearTaskCache request + in: query + name: cache_path + schema: + type: string + child_canonical_query: + description: A canonical of a child organization used for filtering. + in: query + name: child_canonical + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + cloud_cost_management_account_canonical: + description: The canonical of an CloudCostManagementAccount. + in: path + name: cloud_cost_management_account_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + cloud_cost_management_account_created_at_query: + description: Search by Cloud Cost Management account's creation date + in: query + name: cloud_cost_management_account_created_at_query + schema: + format: uint64 + type: integer + cloud_provider_account_id: + description: The id of an account in the Cloud Provider. + in: path + name: cloud_provider_account_id + required: true + schema: + type: string + concourse_page_limit: + description: The number of items at most which the response can have. + in: query + name: concourse_page_limit + schema: + default: 10 + format: uint64 + type: integer + concourse_page_since: + description: The time after which we should look for entities to return. + in: query + name: concourse_page_since + schema: + default: 0 + format: uint64 + type: integer + concourse_page_until: + description: The time before which we should look for entities to return. + in: query + name: concourse_page_until + schema: + default: 0 + format: uint64 + type: integer + concourse_pipeline_name_query: + description: A pipeline name + in: query + name: concourse_pipeline_name + schema: + maxLength: 100 + minLength: 1 + pattern: ^[a-z0-9]+[a-z0-9\-_.]+[a-z0-9]+$ + type: string + config_repository_canonical: + description: Organization Config Repositories canonical + in: path + name: config_repository_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + cost_begin_filter: + description: Sets the start date for retrieving AWS costs. The start date is inclusive. + in: query + name: begin + required: true + schema: + format: date + type: string + cost_categories_filter: + allowEmptyValue: false + description: The names of the categories that you can use to filter and group your results. + explode: true + in: query + name: categories + schema: + items: + enum: + - other + - compute + - storage + - database + - dev_tools + - networking + - analytics + - containers + - machine_learning + - multimedia + - security type: string - requestBody: - description: Information for filtering and access the Cloud Provider's Resources. - content: - application/vnd.cycloid.io.v1+json: - schema: - $ref: '#/components/schemas/InfraImportResourceBody' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/InfraImportResourceBody' - required: true - responses: - "200": - description: The Infra Import's Resources - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - required: - - data - - pagination - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/InfraImportResource' - pagination: - $ref: '#/components/schemas/Pagination' - example: - data: - - id: i-1234567890abcdef0 - - id: i-1234567890abcdef1 - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - x-codegen-request-body-name: body - /organizations/{organization_canonical}/code_generation/infra_import/providers/{provider_canonical}/resources: - post: - tags: - - Code Generation - description: List infrastructure import provider's resources - operationId: getInfraImportResources - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: provider_canonical - in: path - description: A canonical of a Provider - required: true - schema: - minLength: 3 - pattern: "^[a-z0-9]+[a-z0-9\\-_]+[a-z0-9]+$" - type: string - requestBody: - description: Access information of the Cloud Provider's Resources. - content: - application/vnd.cycloid.io.v1+json: - schema: - $ref: '#/components/schemas/InfraImportResourcesBody' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/InfraImportResourcesBody' - required: true - responses: - "200": - description: The InfraImport's Resources Types - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - required: - - data - - pagination - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/TerraformProviderResourceSimple' - pagination: - $ref: '#/components/schemas/Pagination' - example: - data: - - canonical: aws_instance - image: http://via.placeholder.com/150x150 - is_node: true - is_edge: false - category: SomeCategory - keywords: [] - description: detailed resource description - short_description: resource description - - canonical: aws_elb - image: http://via.placeholder.com/150x150 - is_node: true - is_edge: false - category: SomeCategory - keywords: [] - description: detailed resource description - short_description: resource description - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - x-codegen-request-body-name: body - /organizations/{organization_canonical}/code_generation/terraform/providers: - get: - tags: - - Code Generation - description: Return all the Providers - operationId: getTerraformProviders - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: page_index - in: query - description: The page number to request. The first page is 1. - schema: - type: integer - format: uint32 - default: 1 - - name: page_size - in: query - description: The number of items at most which the response can have. - schema: - type: integer - format: uint32 - default: 1000 - responses: - "200": - description: List of the Providers - content: - application/json: - schema: - required: - - data - - pagination - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/TerraformProviderSimple' - pagination: - $ref: '#/components/schemas/Pagination' - example: - data: - - name: Amazon Web Service - canonical: aws - abbreviation: AWS - cloud: true - image: http://via.placeholder.com/150x150 - - name: Terraform Template - canonical: template - abbreviation: Template - cloud: false - image: http://via.placeholder.com/150x150 - pagination: - index: 1 - size: 10 - total: 2 - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - /organizations/{organization_canonical}/code_generation/terraform/providers/{provider_canonical}/data_sources: - get: - tags: - - Code Generation - description: Return all the DataSources for the Provider - operationId: getTerraformProviderDataSources - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: provider_canonical - in: path - description: A canonical of a Provider - required: true - schema: - minLength: 3 - pattern: "^[a-z0-9]+[a-z0-9\\-_]+[a-z0-9]+$" + type: array + style: form + cost_currency_filter: + description: The currency required for the results. + in: query + name: currency + required: true + schema: + enum: + - USD + - EUR + - CNY + - GBP + type: string + cost_dashboard_filter_values: + description: Specifies if the filter values are for the dashboard + in: query + name: dashboard + schema: + default: false + type: boolean + cost_end_filter: + description: Sets the end dates for retrieving AWS costs. The end date is exclusive. + in: query + name: end + required: true + schema: + format: date + type: string + cost_environments_filter: + allowEmptyValue: false + description: The names of the environments that you can use to filter your results + explode: true + in: query + name: environments + schema: + items: type: string - - name: page_index - in: query - description: The page number to request. The first page is 1. - schema: - type: integer - format: uint32 - default: 1 - - name: page_size - in: query - description: The number of items at most which the response can have. - schema: - type: integer - format: uint32 - default: 1000 - responses: - "200": - description: List of the DataSources - content: - application/json: - schema: - required: - - data - - pagination - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/TerraformProviderResourceSimple' - pagination: - $ref: '#/components/schemas/Pagination' - example: - data: - - canonical: aws_instance - image: http://via.placeholder.com/150x150 - is_node: true - is_edge: false - category: SomeCategory - keywords: [] - description: detailed resource description - short_description: resource description - - canonical: aws_elb - image: http://via.placeholder.com/150x150 - is_node: true - is_edge: false - category: SomeCategory - keywords: [] - description: detailed resource description - short_description: resource description - pagination: - index: 1 - size: 10 - total: 2 - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - ? /organizations/{organization_canonical}/code_generation/terraform/providers/{provider_canonical}/data_sources/{resource_canonical} - : get: - tags: - - Code Generation - description: Get the information of the DataSource - operationId: getTerraformProviderDataSource - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: provider_canonical - in: path - description: A canonical of a Provider - required: true - schema: - minLength: 3 - pattern: "^[a-z0-9]+[a-z0-9\\-_]+[a-z0-9]+$" + type: array + style: form + cost_granularity_filter: + allowEmptyValue: false + description: Sets the cost granularity, it can be month, week, day. + in: query + name: granularity + required: true + schema: + enum: + - month + - week + - day + type: string + cost_group_by_filter: + allowEmptyValue: false + description: Represents a group when you specify a group by criteria, or in the response to a query with a specific grouping. + explode: true + in: query + name: group_by + schema: + items: + enum: + - environment + - service + - instance_type + - category + - location + - linked_account + - project + - record_type type: string - - name: resource_canonical - in: path - description: A canonical of a Resource - required: true - schema: - minLength: 3 - pattern: "^[a-z0-9]+[a-z0-9\\-_]+[a-z0-9]+$" + type: array + uniqueItems: true + style: form + cost_linked_accounts_filter: + allowEmptyValue: false + description: The ids of the linked accounts that you can use to filter your results + explode: true + in: query + name: linked_accounts + schema: + items: type: string - responses: - "200": - description: The information of the DataSource - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/TerraformProviderResource' - example: - data: - canonical: aws_lb - is_node: true - is_edge: false - image: http://via.placeholder.com/150x150 - schema: - dns_name: - required: false - optional: false - type: TypeString - default: "" - internal: - required: false - optional: true - type: TypeBool - default: "null" - category: SomeCategory - keywords: [] - description: detailed resource description - short_description: resource description - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - /organizations/{organization_canonical}/code_generation/terraform/providers/{provider_canonical}: - get: - tags: - - Code Generation - description: Get the information of the Provider - operationId: getTerraformProvider - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: provider_canonical - in: path - description: A canonical of a Provider - required: true - schema: - minLength: 3 - pattern: "^[a-z0-9]+[a-z0-9\\-_]+[a-z0-9]+$" + type: array + style: form + cost_master_accounts_filter: + allowEmptyValue: false + description: The ids of the master accounts that you can use to filter your results + explode: true + in: query + name: master_accounts + schema: + items: type: string - responses: - "200": - description: The information of the Provider - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/TerraformProvider' - example: - data: - name: Amazon Web Service - canonical: aws - abbreviation: AWS - image: http://via.placeholder.com/150x150 - cloud: true - schema: - access_key: - required: false - optional: true - type: TypeString - default: "" - secret_key: - required: false - optional: true - type: TypeString - default: "" - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - /organizations/{organization_canonical}/code_generation/terraform/providers/{provider_canonical}/resources: - get: - tags: - - Code Generation - description: Return all the Resources for the Provider - operationId: getTerraformProviderResources - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: provider_canonical - in: path - description: A canonical of a Provider - required: true - schema: - minLength: 3 - pattern: "^[a-z0-9]+[a-z0-9\\-_]+[a-z0-9]+$" + type: array + style: form + cost_metrics_filter: + allowEmptyValue: false + description: |- + Which metrics are returned in the query. For more information about blended and unblended rates, see https://aws.amazon.com/premiumsupport/knowledge-center/blended-rates-intro/. + Valid values are BlendedCost, UnblendedCost, and UsageQuantity. + If you return the UsageQuantity metric, the service aggregates all usage numbers without taking into account the units. For example, if you aggregate usageQuantity across all of EC2, the results aren't meaningful because EC2 compute hours and data transfer are measured in different units (for example, hours vs. GB). To get more meaningful UsageQuantity metrics, filter by UsageType or UsageTypeGroups. + explode: true + in: query + name: metrics + required: true + schema: + items: + enum: + - BlendedCost + - UnblendedCost + - UsageQuantity type: string - - name: page_index - in: query - description: The page number to request. The first page is 1. - schema: - type: integer - format: uint32 - default: 1 - - name: page_size - in: query - description: The number of items at most which the response can have. - schema: - type: integer - format: uint32 - default: 1000 - responses: - "200": - description: List of the Resources - content: - application/json: - schema: - required: - - data - - pagination - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/TerraformProviderResourceSimple' - pagination: - $ref: '#/components/schemas/Pagination' - example: - data: - - canonical: aws_instance - image: http://via.placeholder.com/150x150 - is_node: true - is_edge: false - category: SomeCategory - keywords: [] - description: detailed resource description - short_description: resource description - - canonical: aws_elb - image: http://via.placeholder.com/150x150 - is_node: true - is_edge: false - category: SomeCategory - keywords: [] - description: detailed resource description - short_description: resource description - pagination: - index: 1 - size: 10 - total: 2 - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - /organizations/{organization_canonical}/code_generation/terraform/providers/{provider_canonical}/resources/{resource_canonical}: - get: - tags: - - Code Generation - description: Get the information of the Resource - operationId: getTerraformProviderResource - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: provider_canonical - in: path - description: A canonical of a Provider - required: true - schema: - minLength: 3 - pattern: "^[a-z0-9]+[a-z0-9\\-_]+[a-z0-9]+$" + type: array + uniqueItems: true + style: form + cost_projects_filter: + allowEmptyValue: false + description: The names of the projects that you can use to filter your results + explode: true + in: query + name: projects + schema: + items: type: string - - name: resource_canonical - in: path - description: A canonical of a Resource - required: true - schema: - minLength: 3 - pattern: "^[a-z0-9]+[a-z0-9\\-_]+[a-z0-9]+$" + type: array + style: form + cost_providers_filter: + allowEmptyValue: false + description: The names of the providers that you can use to filter your results + explode: true + in: query + name: providers + schema: + items: type: string - responses: - "200": - description: The information of the Resource - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/TerraformProviderResource' - example: - data: - canonical: aws_lb - is_node: true - is_edge: false - image: http://via.placeholder.com/150x150 - attributes: - important: - - count - status: status - normalized_status: - "on": running - schema: - dns_name: - required: false - optional: false - type: TypeString - default: "" - internal: - required: false - optional: true - type: TypeBool - default: "null" - category: SomeCategory - keywords: [] - description: detailed resource description - short_description: resource description - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - /organizations/{organization_canonical}/code_generation/terraform/validate: - post: - tags: - - Code Generation - description: Validates a TF configuration - operationId: terraformValidate - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - requestBody: - description: The Terraform JSON config - content: - application/vnd.cycloid.io.v1+json: - schema: - $ref: '#/components/schemas/TerraformJSONConfig' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/TerraformJSONConfig' - required: true - responses: - "200": - description: The result of validating the provided configuration - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/TerraformValidationResult' - example: - data: - errors: - - "resource 'aws_elb.front' config: unknown variable referenced:\ - \ 'name'; define it with a 'variable' block" - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - x-codegen-request-body-name: body - /config: - get: - tags: - - Cycloid - description: Get the Cycloid configuration. - operationId: getConfig - responses: - "200": - description: "Cycloid configuration, including available authentication\ - \ methods." - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/AppConfig' - example: - data: - authentication: - local: - enabled: true - oauth: - - provider: azuread - tenant_id: 67b96869-421d-4897-9f95-dc66aacbe915 - client_id: 67b96869-421d-4897-9f95-dc66aacbe915 - type: AzureADAuthConfig - - provider: google - client_id: 741192805913-s10ibou8065iofnb9rcir9269skiqts9.apps.googleusercontent.com - type: GoogleOAuthConfig - - provider: github - host_address: https://api.github.com - client_id: 6a94210b44f4a612952e - type: GitHubOAuthConfig - saml2: - - provider: https://samltest.id/saml/idp - sso_url: https://samltest.id/idp/profile/SAML2/Redirect/SSO?SAMLRequest=fJLPbtswDIdfReDdkeV0aU3UAbwGwwJ... - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - security: [] - /countries: - get: - tags: - - Cycloid - description: Get the Cycloid supported countries. - operationId: getCountries - responses: - "200": - description: Cycloid supported countries - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/Country' - example: - data: - - code: AD - name: Andorra - - code: FR - name: France - - code: GB - name: United Kingdom - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - security: [] - /status: - get: - tags: - - Cycloid - description: Get the status of the Cycloid's services. - operationId: getStatus - responses: - "200": - description: General application status and services statuses. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/GeneralStatus' - example: - data: - status: Error - message: "some services returned an unknown state (s1), while some\ - \ other returned errors (s2, s3)" - checks: - - canonical: s0 - category: internal - status: Success - message: no issue reported while connecting to s0 - - canonical: s1 - category: internal - status: Unknown - message: unknown state for s1 service - - canonical: s2 - category: internal - status: Error - message: issue detected while connecting to s2 - - canonical: s3 - category: internal - status: Success - message: issue detected while connecting to s3 - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - security: [] - /status/{service_status_canonical}: - get: - tags: - - Cycloid - description: Get the status of the Cycloid's service. It uses 200 and 500 to - also identify the status - operationId: getServiceStatus - parameters: - - name: service_status_canonical - in: path - description: The canonical of the service you want to get the status from - required: true - schema: - $ref: '#/components/schemas/Canonical' - responses: - "200": - description: General application status and services statuses. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/CheckReport' - example: - data: - canonical: s0 - category: internal - status: Success - message: no issue reported while connecting to s0 - "500": - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - security: [] - /version: - get: - tags: - - Cycloid - description: Get the version of the Cycloid's API. - operationId: getAppVersion - responses: - "200": - description: Application version. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/AppVersion' - example: - data: - version: 1.0.0 - branch: master - revision: 9d3d4d97 - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - security: [] - /organizations/{organization_canonical}/api_keys: - get: - tags: - - Organization API keys - description: Get list of API keys of the organization. - operationId: getAPIKeys - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: page_index - in: query - description: The page number to request. The first page is 1. - schema: - type: integer - format: uint32 - default: 1 - - name: page_size - in: query - description: The number of items at most which the response can have. - schema: - type: integer - format: uint32 - default: 1000 - - name: user_id - in: query - description: Search by entity's owner - schema: - type: integer - format: uint32 - responses: - "200": - description: List of the API keys which the organization has. - content: - application/json: - schema: - required: - - data - - pagination - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/APIKey' - pagination: - $ref: '#/components/schemas/Pagination' - example: - data: - - canonical: ak-1 - name: AK 1 - description: this is ak-1 - role: - id: 5 - name: Organization API key - description: Role for API key - policies: [] - token: jwt... - id: 5 - owner: - username: user-2 - id: 10 - given_name: Mariana - family_name: Jimenezo - email: mariana.jimenezo@fakeemail.com - picture_url: https://avatars2.githubusercontent.com/u/14579210 - created_at: 1503225026 - role: - id: 42 - name: standard role - description: this is the standard role - canonical: role-can - rules: - - id: 1 - effect: allow - action: organization:delete - resources: - - organization:org-can - - organization:org-can2 - - id: 20 - effect: allow - action: organization:team:create - resources: [] - - id: 21 - effect: allow - action: organization:team:read - resources: - - organization:org-can:team:team-can - - canonical: ak-2 - name: AK 2 - description: this is ak-2 - role: - id: 5 - name: Organization API key - description: Role for API key - policies: [] - token: jwt... - id: 5 - owner: - username: user-3 - id: 2 - given_name: Jorge - family_name: Hombre - email: jorge.hombre@test.com - picture_url: https://avatars2.githubusercontent.com/u/14579203 - created_at: 1503225001 - role: - id: 42 - name: standard role - description: this is the standard role - canonical: role-can - rules: - - id: 1 - effect: allow - action: organization:delete - resources: - - organization:org-can - - organization:org-can2 - - id: 20 - effect: allow - action: organization:team:create - resources: [] - - id: 21 - effect: allow - action: organization:team:read - resources: - - organization:org-can:team:team-can - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - post: - tags: - - Organization API keys - description: Create a new API key in the organization. - operationId: createAPIKey - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - requestBody: - description: The information of the API key to create. - content: - application/vnd.cycloid.io.v1+json: - schema: - $ref: '#/components/schemas/NewAPIKey' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/NewAPIKey' - required: true - responses: - "200": - description: API key created. The body contains the information of the new - API key of the organization. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/APIKey' - example: - data: - canonical: ak-1 - name: AK 1 - description: this is ak-1 - role: - id: 5 - name: Organization API key - description: Role for API key - policies: [] - token: jwt... - id: 5 - owner: - username: user-2 - id: 10 - given_name: Mariana - family_name: Jimenezo - email: mariana.jimenezo@fakeemail.com - picture_url: https://avatars2.githubusercontent.com/u/14579210 - created_at: 1503225026 - role: - id: 42 - name: standard role - description: this is the standard role - canonical: role-can - rules: - - id: 1 - effect: allow - action: organization:delete - resources: - - organization:org-can - - organization:org-can2 - - id: 20 - effect: allow - action: organization:team:create - resources: [] - - id: 21 - effect: allow - action: organization:team:read - resources: - - organization:org-can:team:team-can - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - "411": - description: The request has a body but it doesn't have a Content-Length - header. - content: {} - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - x-codegen-request-body-name: body - /organizations/{organization_canonical}/api_keys/{api_key_canonical}: - get: - tags: - - Organization API keys - description: Get an API key of the organization. - operationId: getAPIKey - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: api_key_canonical - in: path - description: A canonical of an API key. - required: true - schema: - $ref: '#/components/schemas/Canonical' - responses: - "200": - description: The information of the API key of the organization which has - the specified canonical. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/APIKey' - example: - data: - canonical: ak-1 - name: AK 1 - description: this is ak-1 - rules: - - id: 1 - effect: allow - action: organization:delete - resources: - - organization:org-can - - organization:org-can2 - - id: 20 - effect: allow - action: organization:team:create - resources: [] - - id: 21 - effect: allow - action: organization:team:read - resources: - - organization:org-can:team:team-can - token: jwt... - id: 5 - owner: - username: user-2 - id: 10 - given_name: Mariana - family_name: Jimenezo - email: mariana.jimenezo@fakeemail.com - picture_url: https://avatars2.githubusercontent.com/u/14579210 - created_at: 1503225026 - role: - id: 42 - name: standard role - description: this is the standard role - canonical: role-can - rules: - - id: 1 - effect: allow - action: organization:delete - resources: - - organization:org-can - - organization:org-can2 - - id: 20 - effect: allow - action: organization:team:create - resources: [] - - id: 21 - effect: allow - action: organization:team:read - resources: - - organization:org-can:team:team-can - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - put: - tags: - - Organization API keys - description: "Update the information of an API key of the organization. If the\ - \ API key has some information on the fields which aren't required and they\ - \ are not sent or set to their default values, which depend of their types,\ - \ the information will be removed." - operationId: updateAPIkey - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: api_key_canonical - in: path - description: A canonical of an API key. - required: true - schema: - $ref: '#/components/schemas/Canonical' - requestBody: - description: The information of the API key to update. - content: - application/vnd.cycloid.io.v1+json: - schema: - $ref: '#/components/schemas/UpdateAPIKey' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/UpdateAPIKey' - required: true - responses: - "200": - description: API ey updated. The body contains information of the updated - API key. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/APIKey' - example: - data: - canonical: ak-1 - name: AK 1 - description: this is ak-1 - rules: - - id: 1 - effect: allow - action: organization:delete - resources: - - organization:org-can - - organization:org-can2 - - id: 20 - effect: allow - action: organization:team:create - resources: [] - - id: 21 - effect: allow - action: organization:team:read - resources: - - organization:org-can:team:team-can - token: jwt... - id: 5 - owner: - username: user-2 - id: 10 - given_name: Mariana - family_name: Jimenezo - email: mariana.jimenezo@fakeemail.com - picture_url: https://avatars2.githubusercontent.com/u/14579210 - created_at: 1503225026 - role: - id: 42 - name: standard role - description: this is the standard role - canonical: role-can - rules: - - id: 1 - effect: allow - action: organization:delete - resources: - - organization:org-can - - organization:org-can2 - - id: 20 - effect: allow - action: organization:team:create - resources: [] - - id: 21 - effect: allow - action: organization:team:read - resources: - - organization:org-can:team:team-can - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - "411": - description: The request has a body but it doesn't have a Content-Length - header. - content: {} - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - x-codegen-request-body-name: body - delete: - tags: - - Organization API keys - description: Delete an API key of the organization. - operationId: deleteAPIKey - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: api_key_canonical - in: path - description: A canonical of an API key. - required: true - schema: - $ref: '#/components/schemas/Canonical' - responses: - "204": - description: API key has been deleted. - content: {} - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - /organizations/{organization_canonical}/appearances: - get: - tags: - - Organization Appearances - description: List of appearances available in the organization. - operationId: listAppearances - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: page_index - in: query - description: The page number to request. The first page is 1. - schema: - type: integer - format: uint32 - default: 1 - - name: page_size - in: query - description: The number of items at most which the response can have. - schema: - type: integer - format: uint32 - default: 1000 - responses: - "200": - description: List of appearances which are available in the organization. - content: - application/json: - schema: - required: - - data - - pagination - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/Appearance' - pagination: - $ref: '#/components/schemas/Pagination' - example: - data: - - canonical: default - name: Default - display_name: Cycloid - tab_title: Cycloid - color: - r: 28 - g: 151 - b: 151 - logo: https://console.cycloid.io/static/images/app-logo-square.svg - favicon: https://console.cycloid.io/static/favicons/favicon.ico - footer: "" - is_active: false - created_at: 1503225026 - updated_at: 1503335026 - - canonical: custom - name: Custom - display_name: Brand Name - tab_title: Brand Name - color: - r: 28 - g: 151 - b: 151 - logo: https://console.cycloid.io/static/images/app-logo-square.svg - favicon: https://console.cycloid.io/static/favicons/favicon.ico - footer: "" - is_active: true - created_at: 1503225026 - updated_at: 1503335026 - pagination: - index: 1 - size: 10 - total: 2 - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - post: - tags: - - Organization Appearances - description: Create a new appearance for the organization. - operationId: createAppearance - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - requestBody: - description: The information of the organization's appearance to create. - content: - application/vnd.cycloid.io.v1+json: - schema: - $ref: '#/components/schemas/NewAppearance' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/NewAppearance' - required: true - responses: - "200": - description: New appearance created in the organization. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/Appearance' - example: - data: - display_name: Brand Name - tab_title: Brand Name - color: - r: 0 - g: 0 - b: 0 - logo: https://console.cycloid.io/static/images/app-logo-square.svg - favicon: https://console.cycloid.io/static/favicons/favicon.ico - footer: "" - is_active: false - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - x-codegen-request-body-name: body - /organizations/{organization_canonical}/appearances/{appearance_canonical}: - get: - tags: - - Organization Appearances - description: Get the appearance available in the organization with a canonical - operationId: getAppearance - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: appearance_canonical - in: path - description: A canonical of an appearance. - required: true - schema: - $ref: '#/components/schemas/AppearanceCanonical' - responses: - "200": - description: Appearance available in the organization with such canonical. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/Appearance' - example: - data: - canonical: custom - name: Default - display_name: Cycloid - tab_title: Cycloid - color: - r: 28 - g: 151 - b: 151 - logo: https://console.cycloid.io/static/images/app-logo-square.svg - favicon: https://console.cycloid.io/static/favicons/favicon.ico - footer: "" - is_active: false - created_at: 1503225026 - updated_at: 1503335026 - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - put: - tags: - - Organization Appearances - description: Update an existing appearance in the organization. - operationId: updateAppearance - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: appearance_canonical - in: path - description: A canonical of an appearance. - required: true - schema: - $ref: '#/components/schemas/AppearanceCanonical' - requestBody: - description: The information of the organization's appearance to update. - content: - application/vnd.cycloid.io.v1+json: - schema: - $ref: '#/components/schemas/Appearance' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/Appearance' - required: true - responses: - "200": - description: Updated appearance belonging to the organization. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/Appearance' - example: - data: - canonical: custom - name: Custom - display_name: Brand Name - tab_title: Brand Name - color: - r: 0 - g: 0 - b: 0 - logo: https://console.cycloid.io/static/images/app-logo-square.svg - favicon: https://console.cycloid.io/static/favicons/favicon.ico - footer: "" - is_active: true - created_at: 1503225026 - updated_at: 1503335026 - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - x-codegen-request-body-name: body - delete: - tags: - - Organization Appearances - description: Delete an existing appearance in the organization. - operationId: deleteAppearance - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: appearance_canonical - in: path - description: A canonical of an appearance. - required: true - schema: - $ref: '#/components/schemas/AppearanceCanonical' - responses: - "204": - description: Organization appearance has been deleted. - content: {} - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - /organizations/{organization_canonical}/children: - get: - tags: - - Organization Children - description: Get the children organizations that the authenticated user has - access. - operationId: getChildren - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: page_index - in: query - description: The page number to request. The first page is 1. - schema: - type: integer - format: uint32 - default: 1 - - name: page_size - in: query - description: The number of items at most which the response can have. - schema: - type: integer - format: uint32 - default: 1000 - - name: organization_name - in: query - description: Search by the organization's name - schema: - type: string - - name: organization_created_at - in: query - description: Search by organization's creation date - schema: - type: string - format: date-time - - name: order_by - in: query - description: | - Allows to order the list of items. Example usage: field_name:asc - schema: - type: string - responses: - "200": - description: List of the children organizations which the authenticated - user has access. - content: - application/json: - schema: - required: - - data - - pagination - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/Organization' - pagination: - $ref: '#/components/schemas/Pagination' - example: - data: - - canonical: org1 - id: 1 - name: Organization 1 - blocked: [] - ci_team_name: asfdOPNljk - has_children: true - created_at: 1503225026 - updated_at: 1503335026 - - canonical: org2 - id: 1 - name: Organization 2 - blocked: [] - ci_team_name: asfdOPNljk - has_children: false - created_at: 1501131026 - updated_at: 1503333026 - - canonical: org3 - id: 1 - name: Organization 3 - blocked: [] - ci_team_name: asfdOPNljk - has_children: false - created_at: 1500135021 - updated_at: 1503332021 - pagination: - index: 1 - size: 10 - total: 3 - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - post: - tags: - - Organization Children - description: "Create a new organization child, making the authenticated user\ - \ the owner of it." - operationId: createChild - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - requestBody: - description: The information of the organization to create. - content: - application/vnd.cycloid.io.v1+json: - schema: - $ref: '#/components/schemas/NewOrganization' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/NewOrganization' - required: true - responses: - "200": - description: Organization created. The body contains the information of - the new created organization. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/Organization' - example: - data: - id: 1 - canonical: org1 - name: Organization 1 - blocked: [] - ci_team_name: asfdOPNljk - created_at: 1503225026 - updated_at: 1503335026 - x-codegen-request-body-name: body - /organizations/{organization_canonical}/cloud_cost_management: - get: - tags: - - Organization Cloud Cost Management Dashboard - description: "Return the dashboard of the Cloud Cost Management. It contains\ - \ one histogram per \ncloud provider, five top projects, the list of projects\ - \ resources \naggregated by cloud provider and the cost of the new resource\ - \ in the \nperiod.\n" - operationId: getCloudCostManagementDashboard - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: granularity - in: query - description: "Sets the cost granularity, it can be month, week, day." - required: true - allowEmptyValue: false - schema: - type: string - enum: - - month - - week - - day - - name: begin - in: query - description: Sets the start date for retrieving AWS costs. The start date - is inclusive. - required: true - schema: - type: string - format: date - - name: end - in: query - description: Sets the end dates for retrieving AWS costs. The end date is - exclusive. - required: true - schema: - type: string - format: date - - name: currency - in: query - description: The currency required for the results. - required: true - schema: - type: string - enum: - - USD - - EUR - - CNY - - GBP - - name: projects - in: query - description: The names of the projects that you can use to filter your results - allowEmptyValue: false - style: form - explode: true - schema: - type: array - items: - type: string - - name: linked_accounts - in: query - description: The ids of the linked accounts that you can use to filter your - results - allowEmptyValue: false - style: form - explode: true - schema: - type: array - items: - type: string - - name: master_accounts - in: query - description: The ids of the master accounts that you can use to filter your - results - allowEmptyValue: false - style: form - explode: true - schema: - type: array - items: - type: string - - name: record_types - in: query - description: The type of records that you can use to filter your results. - For example usage or credit. - allowEmptyValue: false - style: form - explode: true - schema: - type: array - items: - type: string - responses: - "200": - description: Cloud Cost Management dashboard. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/CloudCostManagementDashboard' - example: - data: - providers: - cost: 400 - buckets: - - cost: 300 - value: aws - buckets: - - cost: 170 - value: 2021-03 - - cost: 130 - value: 2021-04 - - cost: 100 - value: google - buckets: - - cost: 40 - value: 2021-03 - - cost: 60 - value: 2021-04 - projects: - cost: 300 - buckets: - - cost: 100 - value: 2021-03 - buckets: - - cost: 50 - value: proj1 - - cost: 50 - value: proj2 - - cost: 200 - value: 2021-04 - buckets: - - cost: 150 - value: proj1 - - cost: 50 - value: proj2 - resources: - - project: proj1 - providers: - - provider: aws - resources: 12 - new_resources: 10 - - provider: google - resources: 23 - new_resources: 7 - - project: proj2 - providers: - - provider: aws - resources: 7 - new_resources: 4 - filter_values: - providers: - - aws - - gcp - projects: - - proj1 - - proj2 - currencies: - - USD - - EUR - tags: - key1: - - value1 - - value2 - key2: - - value1 - - value2 - - value3 - key3: - - value1 - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - /organizations/{organization_canonical}/cloud_cost_management/filter_values: - get: - tags: - - Organization Cloud Cost Management filter vaules - description: Return a map with all the possible filter vaules - operationId: getCloudCostManagementFilterVaules - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: begin - in: query - description: Sets the start date for retrieving AWS costs. The start date - is inclusive. - required: true - schema: - type: string - format: date - - name: end - in: query - description: Sets the end dates for retrieving AWS costs. The end date is - exclusive. - required: true - schema: - type: string - format: date - - name: projects - in: query - description: The names of the projects that you can use to filter your results - allowEmptyValue: false - style: form - explode: true - schema: - type: array - items: - type: string - - name: environments - in: query - description: The names of the environments that you can use to filter your - results - allowEmptyValue: false - style: form - explode: true - schema: - type: array - items: - type: string - - name: services - in: query - description: The names of the services that you can use to filter and group - your results. - allowEmptyValue: false - style: form - explode: true - schema: - type: array - items: - type: string - - name: tag - in: query - description: The key and value of a tag concatenated by a ;. - allowEmptyValue: false - style: form - explode: true - schema: - type: array - items: - maxLength: 127 - minLength: 4 - pattern: "^[^;]+;[^;]+$" - type: string - - name: categories - in: query - description: The names of the categories that you can use to filter and group - your results. - allowEmptyValue: false - style: form - explode: true - schema: - type: array - items: - type: string - enum: - - other - - compute - - storage - - database - - dev_tools - - networking - - analytics - - containers - - machine_learning - - multimedia - - security - - name: master_accounts - in: query - description: The ids of the master accounts that you can use to filter your - results - allowEmptyValue: false - style: form - explode: true - schema: - type: array - items: - type: string - - name: linked_accounts - in: query - description: The ids of the linked accounts that you can use to filter your - results - allowEmptyValue: false - style: form - explode: true - schema: - type: array - items: - type: string - - name: regions - in: query - description: The names of the regions that you can use to filter your results - allowEmptyValue: false - style: form - explode: true - schema: - type: array - items: - type: string - - name: resource_tagging - in: query - description: Filter results by only tagged or not tagged resources - schema: - type: string - enum: - - tagged_resources - - untagged_resources - - name: group_by - in: query - description: "Represents a group when you specify a group by criteria, or\ - \ in the response to a query with a specific grouping." - allowEmptyValue: false - style: form - explode: true - schema: - uniqueItems: true - type: array - items: - type: string - enum: - - environment - - service - - instance_type - - category - - location - - linked_account - - project - - record_type - - name: dashboard - in: query - description: Specifies if the filter values are for the dashboard - schema: - type: boolean - default: false - responses: - "200": - description: | - Cloud Cost Management histogram for a period of time and a single provider. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/CloudCostManagementFilterValues' - example: - data: - projects: - - proj1 - - proj2 - linked_account: - - acc1 - - acc2 - regions: - - us-east-1 - - eu-west-1 - components: - - storage - - compute - - containers - tags: - key1: - - value1 - - value2 - key2: - - value1 - - value2 - - value3 - key3: - - value1 - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - /organizations/{organization_canonical}/cloud_cost_management/projects: - get: - tags: - - Organization Cloud Cost Management Projects Dashboard - description: "Return the projects dashboard of the Cloud Cost Management. \n\ - It contains one date histogram with the aggregation by project,\nand a histogram\ - \ with the aggregation by project and provider.\n" - operationId: getCloudCostManagementProjectsDashboard - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: granularity - in: query - description: "Sets the cost granularity, it can be month, week, day." - required: true - allowEmptyValue: false - schema: - type: string - enum: - - month - - week - - day - - name: begin - in: query - description: Sets the start date for retrieving AWS costs. The start date - is inclusive. - required: true - schema: - type: string - format: date - - name: end - in: query - description: Sets the end dates for retrieving AWS costs. The end date is - exclusive. - required: true - schema: - type: string - format: date - - name: currency - in: query - description: The currency required for the results. - required: true - schema: - type: string - enum: - - USD - - EUR - - CNY - - GBP - - name: projects - in: query - description: The names of the projects that you can use to filter your results - allowEmptyValue: false - style: form - explode: true - schema: - type: array - items: - type: string - - name: linked_accounts - in: query - description: The ids of the linked accounts that you can use to filter your - results - allowEmptyValue: false - style: form - explode: true - schema: - type: array - items: - type: string - - name: master_accounts - in: query - description: The ids of the master accounts that you can use to filter your - results - allowEmptyValue: false - style: form - explode: true - schema: - type: array - items: - type: string - responses: - "200": - description: Cloud Cost Management dashboard. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/CloudCostManagementProjectsDashboard' - example: - data: - projects: - cost: 300 - buckets: - - cost: 100 - value: 2021-03 - buckets: - - cost: 50 - value: proj1 - - cost: 50 - value: proj2 - - cost: 200 - value: 2021-04 - buckets: - - cost: 150 - value: proj1 - - cost: 50 - value: proj2 - project_providers: - - project: proj1 - providers: - - provider: - - aws: null - cost: 50 - - google: null - cost: 10 - - project: proj2 - providers: - - provider: - - azure: null - cost: 50 - - google: null - cost: 10 - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - /organizations/{organization_canonical}/cloud_cost_management/{provider_canonical}: - get: - tags: - - Organization Cloud Cost Management Provider Histograms - description: "Return a histogram of the costs generated in a given period aggregated\ - \ by time granularity and other terms, for a single provider." - operationId: getCloudCostManagementProvider - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: provider_canonical - in: path - description: A canonical of a Provider - required: true - schema: - minLength: 3 - pattern: "^[a-z0-9]+[a-z0-9\\-_]+[a-z0-9]+$" - type: string - - name: granularity - in: query - description: "Sets the cost granularity, it can be month, week, day." - required: true - allowEmptyValue: false - schema: - type: string - enum: - - month - - week - - day - - name: begin - in: query - description: Sets the start date for retrieving AWS costs. The start date - is inclusive. - required: true - schema: - type: string - format: date - - name: end - in: query - description: Sets the end dates for retrieving AWS costs. The end date is - exclusive. - required: true - schema: - type: string - format: date - - name: currency - in: query - description: The currency required for the results. - required: true - schema: - type: string - enum: - - USD - - EUR - - CNY - - GBP - - name: projects - in: query - description: The names of the projects that you can use to filter your results - allowEmptyValue: false - style: form - explode: true - schema: - type: array - items: - type: string - - name: environments - in: query - description: The names of the environments that you can use to filter your - results - allowEmptyValue: false - style: form - explode: true - schema: - type: array - items: - type: string - - name: services - in: query - description: The names of the services that you can use to filter and group - your results. - allowEmptyValue: false - style: form - explode: true - schema: - type: array - items: - type: string - - name: tag - in: query - description: The key and value of a tag concatenated by a ;. - allowEmptyValue: false - style: form - explode: true - schema: - type: array - items: - maxLength: 127 - minLength: 4 - pattern: "^[^;]+;[^;]+$" - type: string - - name: categories - in: query - description: The names of the categories that you can use to filter and group - your results. - allowEmptyValue: false - style: form - explode: true - schema: - type: array - items: - type: string - enum: - - other - - compute - - storage - - database - - dev_tools - - networking - - analytics - - containers - - machine_learning - - multimedia - - security - - name: master_accounts - in: query - description: The ids of the master accounts that you can use to filter your - results - allowEmptyValue: false - style: form - explode: true - schema: - type: array - items: - type: string - - name: linked_accounts - in: query - description: The ids of the linked accounts that you can use to filter your - results - allowEmptyValue: false - style: form - explode: true - schema: - type: array - items: - type: string - - name: regions - in: query - description: The names of the regions that you can use to filter your results - allowEmptyValue: false - style: form - explode: true - schema: - type: array - items: - type: string - - name: resource_tagging - in: query - description: Filter results by only tagged or not tagged resources - schema: - type: string - enum: - - tagged_resources - - untagged_resources - - name: group_by - in: query - description: "Represents a group when you specify a group by criteria, or\ - \ in the response to a query with a specific grouping." - allowEmptyValue: false - style: form - explode: true - schema: - uniqueItems: true - type: array - items: - type: string - enum: - - environment - - service - - instance_type - - category - - location - - linked_account - - project - - record_type - - name: record_types - in: query - description: The type of records that you can use to filter your results. - For example usage or credit. - allowEmptyValue: false - style: form - explode: true - schema: - type: array - items: - type: string - responses: - "200": - description: | - Cloud Cost Management histogram for a period of time and a single provider. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/CloudCostManagementProviderDetails' - example: - data: - cost: 200 - buckets: - - cost: 100 - value: 2021-03 - buckets: - - cost: 50 - value: us-est-1 - buckets: - - cost: 25 - value: storage - - cost: 25 - value: compute - - cost: 50 - value: us-est-2 - buckets: - - cost: 20 - value: storge - - cost: 30 - value: compute - - cost: 100 - value: 2021-04 - buckets: - - cost: 70 - value: us-est-1 - buckets: - - cost: 50 - value: storage - - cost: 20 - value: compute - - cost: 30 - value: us-est-2 - buckets: - - cost: 15 - value: storage - - cost: 15 - value: compute - filter_values: - projects: - - proj1 - - proj2 - linked_account: - - acc1 - - acc2 - regions: - - us-east-1 - - eu-west-1 - components: - - storage - - compute - - containers - tags: - key1: - - value1 - - value2 - key2: - - value1 - - value2 - - value3 - key3: - - value1 - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - /organizations/{organization_canonical}/cloud_cost_management/providers/{provider_canonical}: - get: - tags: - - Organization Cloud Cost Management Provider Details - description: "Return a histogram of the costs generated in a given period aggregated\ - \ by time granularity and other terms, for a single provider." - operationId: getCloudCostManagementProviderDetails - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: provider_canonical - in: path - description: A canonical of a Provider - required: true - schema: - minLength: 3 - pattern: "^[a-z0-9]+[a-z0-9\\-_]+[a-z0-9]+$" - type: string - - name: granularity - in: query - description: "Sets the cost granularity, it can be month, week, day." - required: true - allowEmptyValue: false - schema: - type: string - enum: - - month - - week - - day - - name: begin - in: query - description: Sets the start date for retrieving AWS costs. The start date - is inclusive. - required: true - schema: - type: string - format: date - - name: end - in: query - description: Sets the end dates for retrieving AWS costs. The end date is - exclusive. - required: true - schema: - type: string - format: date - - name: currency - in: query - description: The currency required for the results. - required: true - schema: - type: string - enum: - - USD - - EUR - - CNY - - GBP - - name: projects - in: query - description: The names of the projects that you can use to filter your results - allowEmptyValue: false - style: form - explode: true - schema: - type: array - items: - type: string - - name: environments - in: query - description: The names of the environments that you can use to filter your - results - allowEmptyValue: false - style: form - explode: true - schema: - type: array - items: - type: string - - name: services - in: query - description: The names of the services that you can use to filter and group - your results. - allowEmptyValue: false - style: form - explode: true - schema: - type: array - items: - type: string - - name: tag - in: query - description: The key and value of a tag concatenated by a ;. - allowEmptyValue: false - style: form - explode: true - schema: - type: array - items: - maxLength: 127 - minLength: 4 - pattern: "^[^;]+;[^;]+$" - type: string - - name: categories - in: query - description: The names of the categories that you can use to filter and group - your results. - allowEmptyValue: false - style: form - explode: true - schema: - type: array - items: - type: string - enum: - - other - - compute - - storage - - database - - dev_tools - - networking - - analytics - - containers - - machine_learning - - multimedia - - security - - name: master_accounts - in: query - description: The ids of the master accounts that you can use to filter your - results - allowEmptyValue: false - style: form - explode: true - schema: - type: array - items: - type: string - - name: linked_accounts - in: query - description: The ids of the linked accounts that you can use to filter your - results - allowEmptyValue: false - style: form - explode: true - schema: - type: array - items: - type: string - - name: regions - in: query - description: The names of the regions that you can use to filter your results - allowEmptyValue: false - style: form - explode: true - schema: - type: array - items: - type: string - - name: resource_tagging - in: query - description: Filter results by only tagged or not tagged resources - schema: - type: string - enum: - - tagged_resources - - untagged_resources - - name: group_by - in: query - description: "Represents a group when you specify a group by criteria, or\ - \ in the response to a query with a specific grouping." - allowEmptyValue: false - style: form - explode: true - schema: - uniqueItems: true - type: array - items: - type: string - enum: - - environment - - service - - instance_type - - category - - location - - linked_account - - project - - record_type - - name: record_types - in: query - description: The type of records that you can use to filter your results. - For example usage or credit. - allowEmptyValue: false - style: form - explode: true - schema: - type: array - items: - type: string - responses: - "200": - description: | - Cloud Cost Management histogram for a period of time and a single provider. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/CloudCostManagementHistogram' - example: - data: - cost: 200 - buckets: - - cost: 100 - value: 2021-03 - buckets: - - cost: 50 - value: us-est-1 - buckets: - - cost: 25 - value: storage - - cost: 25 - value: compute - - cost: 50 - value: us-est-2 - buckets: - - cost: 20 - value: storge - - cost: 30 - value: compute - - cost: 100 - value: 2021-04 - buckets: - - cost: 70 - value: us-est-1 - buckets: - - cost: 50 - value: storage - - cost: 20 - value: compute - - cost: 30 - value: us-est-2 - buckets: - - cost: 15 - value: storage - - cost: 15 - value: compute - filter_values: - projects: - - proj1 - - proj2 - linked_account: - - acc1 - - acc2 - regions: - - us-east-1 - - eu-west-1 - components: - - storage - - compute - - containers - tags: - key1: - - value1 - - value2 - key2: - - value1 - - value2 - - value3 - key3: - - value1 - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - /organizations/{organization_canonical}/cloud_cost_management/providers: - get: - tags: - - Organization Cloud Cost Management Provider Histograms - description: "Return a histogram of the costs generated in a given period aggregated\ - \ by time granularity and other terms, for a single provider." - operationId: getCloudCostManagementProviders - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: granularity - in: query - description: "Sets the cost granularity, it can be month, week, day." - required: true - allowEmptyValue: false - schema: - type: string - enum: - - month - - week - - day - - name: begin - in: query - description: Sets the start date for retrieving AWS costs. The start date - is inclusive. - required: true - schema: - type: string - format: date - - name: end - in: query - description: Sets the end dates for retrieving AWS costs. The end date is - exclusive. - required: true - schema: - type: string - format: date - - name: currency - in: query - description: The currency required for the results. - required: true - schema: - type: string - enum: - - USD - - EUR - - CNY - - GBP - - name: projects - in: query - description: The names of the projects that you can use to filter your results - allowEmptyValue: false - style: form - explode: true - schema: - type: array - items: - type: string - - name: linked_accounts - in: query - description: The ids of the linked accounts that you can use to filter your - results - allowEmptyValue: false - style: form - explode: true - schema: - type: array - items: - type: string - - name: master_accounts - in: query - description: The ids of the master accounts that you can use to filter your - results - allowEmptyValue: false - style: form - explode: true - schema: - type: array - items: - type: string - responses: - "200": - description: | - Cloud Cost Management histogram for a period of time and a single provider. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/CloudCostManagementProviders' - example: - data: - - gcp: null - cost: 200 - buckets: - - cost: 100 - value: 2021-03 - buckets: - - cost: 50 - value: us-est-1 - buckets: - - cost: 25 - value: storage - - cost: 25 - value: compute - - cost: 50 - value: us-est-2 - buckets: - - cost: 20 - value: storge - - cost: 30 - value: compute - - cost: 100 - value: 2021-04 - buckets: - - cost: 70 - value: us-est-1 - buckets: - - cost: 50 - value: storage - - cost: 20 - value: compute - - cost: 30 - value: us-est-2 - buckets: - - cost: 15 - value: storage - - cost: 15 - value: compute - - aws: null - cost: 200 - buckets: - - cost: 100 - value: 2021-03 - buckets: - - cost: 50 - value: us-est-1 - buckets: - - cost: 25 - value: storage - - cost: 25 - value: compute - - cost: 50 - value: us-est-2 - buckets: - - cost: 20 - value: storge - - cost: 30 - value: compute - - cost: 100 - value: 2021-04 - buckets: - - cost: 70 - value: us-est-1 - buckets: - - cost: 50 - value: storage - - cost: 20 - value: compute - - cost: 30 - value: us-est-2 - buckets: - - cost: 15 - value: storage - - cost: 15 - value: compute - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - /organizations/{organization_canonical}/cloud_cost_management/tags: - get: - tags: - - Organization Cloud Cost Management - description: Return a list of tags used in Cloud Cost Management records. - operationId: getCloudCostManagementTags - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - responses: - "200": - description: List of Cloud Cost Management records' tags. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - type: array - items: - type: string - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - /organizations/{organization_canonical}/cloud_cost_management/accounts: - get: - tags: - - Organization Cloud Cost Management Accounts - description: Return a list of Cloud Cost Management accounts which matches the - scope specified by the filter. - operationId: getCloudCostManagementAccounts - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: page_index - in: query - description: The page number to request. The first page is 1. - schema: - type: integer - format: uint32 - default: 1 - - name: page_size - in: query - description: The number of items at most which the response can have. - schema: - type: integer - format: uint32 - default: 1000 - - name: cloud_cost_management_account_created_at_query - in: query - description: Search by Cloud Cost Management account's creation date - schema: - type: integer - format: uint64 - - name: order_by - in: query - description: | - Allows to order the list of items. Example usage: field_name:asc - schema: - type: string - responses: - "200": - description: List of Cloud Cost Management accounts. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/CloudCostManagementAccount' - pagination: - $ref: '#/components/schemas/Pagination' - example: - data: - id: 1 - created_at: 1503225026 - updated_at: 1503335026 - last_ingestion_ended_at: 1503335026 - account_id: account_id - canonical: my-cloud-cost-management-account - name: My AWS Cloud Cost Managment account - external_backend: - credential_canonical: credential - purpose: cost_explorer - configuration: - engine: AWSStorage - region: eu-west1 - bucket: b - key: k - cloud_provider: - canonical: aws - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - post: - tags: - - Organization Cloud Cost Management Accounts - description: Create a new Cloud Cost Management account. - operationId: createCloudCostManagementAccount - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - requestBody: - content: - application/vnd.cycloid.io.v1+json: - schema: - $ref: '#/components/schemas/NewCloudCostManagementAccount' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/NewCloudCostManagementAccount' - required: true - responses: - "200": - description: The new Cloud Cost Management account created. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/CloudCostManagementAccount' - example: - data: - id: 1 - created_at: 1503225026 - updated_at: 1503335026 - last_ingestion_ended_at: 1503335026 - account_id: account_id - canonical: my-cloud-cost-management-account - name: My AWS Cloud Cost Managment account - external_backend: - credential_canonical: credential - purpose: cost_explorer - configuration: - engine: AWSStorage - region: eu-west1 - bucket: b - key: k - cloud_provider: - canonical: aws - "411": - description: The request has a body but it doesn't have a Content-Length - header. - content: {} - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - x-codegen-request-body-name: body - /organizations/{organization_canonical}/cloud_cost_management/accounts/has_parent: - get: - tags: - - Organization Cloud Cost Management Accounts - description: Return whether account under provided credentials is a child account - operationId: getCloudCostManagementAccountsHasParent - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: credential_canonical - in: query - description: A Credential canonical - required: true - schema: - $ref: '#/components/schemas/Canonical' - responses: - "200": - description: CE Account of the parent - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/CloudCostManagementAccountParent' - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - /organizations/{organization_canonical}/cloud_cost_management/child-accounts: - post: - tags: - - Organization Cloud Cost Management Accounts - description: Create a new Cloud Cost Management account. - operationId: createCloudCostManagementAccountChild - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - requestBody: - content: - application/vnd.cycloid.io.v1+json: - schema: - $ref: '#/components/schemas/NewCloudCostManagementAccountChild' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/NewCloudCostManagementAccountChild' - required: true - responses: - "200": - description: The new Cloud Cost Management account created. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/CloudCostManagementAccount' - example: - data: - id: 1 - created_at: 1503225026 - updated_at: 1503335026 - last_ingestion_ended_at: 1503335026 - account_id: account_id - canonical: my-cloud-cost-management-account - credential_canonical: this-credential-is-cool - parent_account_id: 123456-78900 - "411": - description: The request has a body but it doesn't have a Content-Length - header. - content: {} - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - x-codegen-request-body-name: body - ? /organizations/{organization_canonical}/cloud_cost_management/accounts/{cloud_cost_management_account_canonical}/linked_accounts - : get: - tags: - - Organization Cloud Cost Management Accounts - description: Return a list of cloud provider accounts linked to a specific Cloud - Cost Management account. - operationId: getCloudCostManagementLinkedAccounts - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: cloud_cost_management_account_canonical - in: path - description: The canonical of an CloudCostManagementAccount. - required: true - schema: - $ref: '#/components/schemas/Canonical' - responses: - "200": - description: List of linked accounts of a Cloud Cost Management account. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/CloudCostManagementLinkedAccount' - example: - data: - - id: 102 - name: A linked account - account_id: xxxxxx-xxxxxx-xxxxxxx - cloud_provider: aws - - id: 109 - name: Another linked account - account_id: yyyyyy-yyyyyy-yyyyyyy - cloud_provider: aws - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - ? /organizations/{organization_canonical}/cloud_cost_management/accounts/{cloud_cost_management_account_canonical}/linked_accounts/{cloud_provider_account_id} - : put: - tags: - - Organization Cloud Cost Management Accounts - description: Update a Cloud Cost Management linked account - operationId: updateCloudCostManagementLinkedAccount - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: cloud_cost_management_account_canonical - in: path - description: The canonical of an CloudCostManagementAccount. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: cloud_provider_account_id - in: path - description: The id of an account in the Cloud Provider. - required: true - schema: - type: string - requestBody: - description: The updated attributes of the Cloud Cost Management linked account - content: - application/vnd.cycloid.io.v1+json: - schema: - $ref: '#/components/schemas/UpdateCloudCostManagementLinkedAccount' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/UpdateCloudCostManagementLinkedAccount' - required: true - responses: - "200": - description: Updated Cloud Cost Management linked account - content: - application/json: - schema: - $ref: '#/components/schemas/CloudCostManagementLinkedAccount' - example: - data: - id: 99 - name: Updated linked account name - account_id: "123456789" - cloud_provider: aws - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - x-codegen-request-body-name: body - /organizations/{organization_canonical}/cloud_cost_management/accounts/{cloud_cost_management_account_canonical}: - get: - tags: - - Organization Cloud Cost Management Accounts - description: Get the information of the CloudCostManagementAccount. - operationId: getCloudCostManagementAccount - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: cloud_cost_management_account_canonical - in: path - description: The canonical of an CloudCostManagementAccount. - required: true - schema: - $ref: '#/components/schemas/Canonical' - responses: - "200": - description: The information of the CloudCostManagementAccount which has - the specified canonical. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/CloudCostManagementAccount' - example: - data: - id: 1 - created_at: 1503225026 - updated_at: 1503335026 - last_ingestion_ended_at: 1503335026 - account_id: account_id - canonical: my-cloud-cost-management-account - external_backend: - credential_canonical: credential - purpose: cost_explorer - configuration: - engine: AWSStorage - region: eu-west1 - bucket: b - key: k - cloud_provider: - canonical: aws - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - put: - tags: - - Organization Cloud Cost Management Accounts - description: Update an existing CloudCostManagementAccount - operationId: updateCloudCostManagementAccount - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: cloud_cost_management_account_canonical - in: path - description: The canonical of an CloudCostManagementAccount. - required: true - schema: - $ref: '#/components/schemas/Canonical' - requestBody: - description: The information of the organization to update. - content: - application/vnd.cycloid.io.v1+json: - schema: - $ref: '#/components/schemas/UpdateCloudCostManagementAccount' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/UpdateCloudCostManagementAccount' - required: true - responses: - "200": - description: CloudCostManagementAccount updated. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/CloudCostManagementAccount' - example: - data: - id: 1 - created_at: 1503225026 - updated_at: 1503335026 - last_ingestion_ended_at: 1503335026 - account_id: account_id - canonical: my-cloud-cost-management-account - external_backend: - credential_canonical: credential - purpose: cost_explorer - configuration: - engine: AWSStorage - region: eu-west1 - bucket: b - key: k - cloud_provider: - canonical: aws - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - x-codegen-request-body-name: body - delete: - tags: - - Organization Cloud Cost Management Accounts - description: Delete the CloudCostManagementAccount. - operationId: deleteCloudCostManagementAccount - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: cloud_cost_management_account_canonical - in: path - description: The canonical of an CloudCostManagementAccount. - required: true - schema: - $ref: '#/components/schemas/Canonical' - responses: - "204": - description: CloudCostManagementAccount has been deleted. - content: {} - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - /organizations/{organization_canonical}/cloud_cost_management/tag_mapping: - get: - tags: - - Organization Cloud Cost Management Tag Mappings - description: Return the Cloud Cost Management tag mapping for the organization - operationId: getCloudCostManagementTagMapping - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - responses: - "200": - description: The CloudCostManagementTagMapping for the organization - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/CloudCostManagementTagMapping' - example: - data: - id: 1 - created_at: 1503225026 - updated_at: 1503335026 - project_tags: - - proj - - project - project_regex: ^Project$ - environment_tags: - - env - - environment - environment_regex: ^Environment$ - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - put: - tags: - - Organization Cloud Cost Management Tag Mappings - description: Create or Update a Cloud Cost Management Tag Mapping. - operationId: putCloudCostManagementTagMapping - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - requestBody: - content: - application/vnd.cycloid.io.v1+json: - schema: - $ref: '#/components/schemas/UpdateCloudCostManagementTagMapping' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/UpdateCloudCostManagementTagMapping' - required: true - responses: - "200": - description: The new or updated Cloud Cost Management Tag Mapping - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/CloudCostManagementTagMapping' - example: - data: - id: 1 - created_at: 1503225026 - updated_at: 1503335026 - project_tags: - - proj - - project - project_regex: ^Project$ - environment_tags: - - env - - environment - environment_regex: ^Environment$ - "411": - description: The request has a body but it doesn't have a Content-Length - header. - content: {} - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - x-codegen-request-body-name: body - /organizations/{organization_canonical}/cloud_providers: - get: - tags: - - Cloud providers - description: Get the list of Cloud Providers - operationId: getCloudProviders - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: page_index - in: query - description: The page number to request. The first page is 1. - schema: - type: integer - format: uint32 - default: 1 - - name: page_size - in: query - description: The number of items at most which the response can have. - schema: - type: integer - format: uint32 - default: 1000 - responses: - "200": - description: List of Cloud Providers - content: - application/json: - schema: - required: - - data - - pagination - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/CloudProvider' - pagination: - $ref: '#/components/schemas/Pagination' - example: - data: - - id: 1 - canonical: aws - abbreviation: AWS - name: Amazon Web Services - regions: - - af-south-1 - - eu-west-2 - - us-east-1 - - us-east-2 - - id: 2 - canonical: google - abbreviation: GCP - name: Google Cloud Platform - - id: 3 - canonical: azurerm - abbreviation: Azure - name: Azure - regions: - - asia - - asiapacific - - australia - - australiacentral - - id: 4 - canonical: flexibleengine - abbreviation: FlexibleEngine - name: Flexible Engine - - id: 5 - canonical: openstack - abbreviation: OpenStack - name: OpenStack - - id: 6 - canonical: scaleway - abbreviation: Scaleway - name: Scaleway - - id: 7 - canonical: vmware - abbreviation: VMware - name: VMware - - id: 8 - canonical: ovh - abbreviation: OVH - name: OVH Cloud - - id: 9 - canonical: alibaba - abbreviation: Alibaba - name: Alibaba Cloud - - id: 10 - canonical: oracle - abbreviation: OCI - name: Oracle Cloud Infrastructure - pagination: - index: 1 - size: 10 - total: 2 - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - /organizations/{organization_canonical}/config_repositories: - get: - tags: - - Organization Config Repositories - description: Return all the config repositories - operationId: listConfigRepositories - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: page_index - in: query - description: The page number to request. The first page is 1. - schema: - type: integer - format: uint32 - default: 1 - - name: page_size - in: query - description: The number of items at most which the response can have. - schema: - type: integer - format: uint32 - default: 1000 - - name: default - in: query - description: Value describing whether to return default - schema: - type: boolean - default: false - responses: - "200": - description: List of the config repositories. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/ConfigRepository' - example: - data: - - id: 1 - canonical: my-personal-repo - name: My personal repo - url: git@github.com:myuser/repository.git - branch: configs - default: true - created_at: 1503225026 - updated_at: 1503335026 - - id: 2 - canonical: my-personal-repo2 - name: My personal repo 2 - url: git@github.com:myuser/repository.git - branch: configs - default: false - created_at: 1503225026 - updated_at: 1503335026 - pagination: - index: 1 - size: 10 - total: 2 - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - post: - tags: - - Organization Config Repositories - description: Creates a config repository - operationId: createConfigRepository - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - requestBody: - description: The information of the config repository to create. - content: - application/vnd.cycloid.io.v1+json: - schema: - $ref: '#/components/schemas/NewConfigRepository' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/NewConfigRepository' - required: true - responses: - "200": - description: Success creation - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/ConfigRepository' - example: - data: - id: 1 - name: My personal repo - url: git@github.com:myuser/repository.git - canonical: my-personal-repo - branch: configs - default: true - credential_id: 1 - created_at: 1503225026 - updated_at: 1503335026 - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - "411": - description: The request has a body but it doesn't have a Content-Length - header. - content: {} - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - x-codegen-request-body-name: body - /organizations/{organization_canonical}/config_repositories/{config_repository_canonical}/config: - post: - tags: - - Organization Config Repositories - description: Create Service Catalog config files in the Config Repository. - operationId: createConfigRepositoryConfig - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: config_repository_canonical - in: path - description: Organization Config Repositories canonical - required: true - schema: - $ref: '#/components/schemas/Canonical' - requestBody: - description: | - The body contains Service Catalog's config files and paths where they'll be created in the Config Repository. - content: - application/vnd.cycloid.io.v1+json: - schema: - $ref: '#/components/schemas/SCConfig' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/SCConfig' - required: true - responses: - "204": - description: SC config files have been created successfully - content: {} - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - "411": - description: The request has a body but it doesn't have a Content-Length - header. - content: {} - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - x-codegen-request-body-name: body - /organizations/{organization_canonical}/config_repositories/{config_repository_canonical}: - get: - tags: - - Organization Config Repositories - description: Return the Config Repository - operationId: getConfigRepository - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: config_repository_canonical - in: path - description: Organization Config Repositories canonical - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: page_index - in: query - description: The page number to request. The first page is 1. - schema: - type: integer - format: uint32 - default: 1 - - name: page_size - in: query - description: The number of items at most which the response can have. - schema: - type: integer - format: uint32 - default: 1000 - responses: - "200": - description: Organization Config Repository. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/ConfigRepository' - example: - data: - id: 1 - canonical: my-personal-repo - name: My personal repo - url: git@github.com:myuser/repository.git - branch: configs - default: true - created_at: 1503225026 - updated_at: 1503335026 - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - put: - tags: - - Organization Config Repositories - description: Update a config repository - operationId: updateConfigRepository - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: config_repository_canonical - in: path - description: Organization Config Repositories canonical - required: true - schema: - $ref: '#/components/schemas/Canonical' - requestBody: - description: The information of the config repository to create. - content: - application/vnd.cycloid.io.v1+json: - schema: - $ref: '#/components/schemas/UpdateConfigRepository' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/UpdateConfigRepository' - required: true - responses: - "200": - description: Success creation - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/ConfigRepository' - example: - data: - id: 1 - canonical: my-personal-repo - name: My personal repo - url: git@github.com:myuser/repository.git - branch: configs - default: true - credential_id: 1 - created_at: 1503225026 - updated_at: 1503335026 - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - "411": - description: The request has a body but it doesn't have a Content-Length - header. - content: {} - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - x-codegen-request-body-name: body - delete: - tags: - - Organization Config Repositories - description: delete a Config Repositories - operationId: deleteConfigRepository - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: config_repository_canonical - in: path - description: Organization Config Repositories canonical - required: true - schema: - $ref: '#/components/schemas/Canonical' - responses: - "204": - description: Organization Config repository has been deleted - content: {} - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - /organizations/{organization_canonical}/cost_estimation/tfplan: - post: - tags: - - Cost Estimation - description: Estimate costs of a Terraform plan in JSON format. - operationId: costEstimateTfPlan - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - requestBody: - content: - application/vnd.cycloid.io.v1+json: - schema: - $ref: '#/components/schemas/TerraformPlanInput' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/TerraformPlanInput' - required: true - responses: - "200": - description: The result of estimating the costs of a Terraform plan. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/CostEstimationResult' - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - x-codegen-request-body-name: body - /organizations/{organization_canonical}/credentials: - get: - tags: - - Organization Credentials - description: "Return all the Credentials, depending on the caller permissions\ - \ it'll return the Raw data or not. If the caller has List and not Get it'll\ - \ not return the Raw, if it has List and Read it'll return the Raw." - operationId: listCredentials - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: page_index - in: query - description: The page number to request. The first page is 1. - schema: - type: integer - format: uint32 - default: 1 - - name: page_size - in: query - description: The number of items at most which the response can have. - schema: - type: integer - format: uint32 - default: 1000 - - name: credential_type - in: query - description: | - Deprecated. Please use credential_types. - A Credential type - schema: - type: string - enum: - - ssh - - aws - - custom - - azure - - azure_storage - - gcp - - basic_auth - - elasticsearch - - swift - - name: credential_types - in: query - description: Multiple Credential types - allowEmptyValue: true - style: form - explode: true - schema: - uniqueItems: true - type: array - items: - type: string - enum: - - ssh - - aws - - custom - - azure - - azure_storage - - gcp - - basic_auth - - elasticsearch - - swift - responses: - "200": - description: List of the Credentials - content: - application/json: - schema: - required: - - data - - pagination - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/CredentialSimple' - pagination: - $ref: '#/components/schemas/Pagination' - example: - data: - - id: 1 - canonical: name-key1 - name: name-key - type: ssh - path: my/path - raw: - ssh_key: key - created_at: 1503225026 - updated_at: 1503335026 - owner: - username: user-2 - id: 10 - given_name: Mariana - family_name: Jimenezo - email: mariana.jimenezo@fakeemail.com - picture_url: https://avatars2.githubusercontent.com/u/14579210 - created_at: 1503225026 - role: - id: 42 - name: standard role - description: this is the standard role - canonical: role-can - rules: - - id: 1 - effect: allow - action: organization:delete - resources: - - organization:org-can - - organization:org-can2 - - id: 20 - effect: allow - action: organization:team:create - resources: [] - - id: 21 - effect: allow - action: organization:team:read - resources: - - organization:org-can:team:team-can - - id: 2 - canonical: name-key2 - name: name-key - type: ssh - path: my/path - raw: - ssh_key: key - created_at: 1503225026 - updated_at: 1503335026 - owner: - username: user-2 - id: 10 - given_name: Mariana - family_name: Jimenezo - email: mariana.jimenezo@fakeemail.com - picture_url: https://avatars2.githubusercontent.com/u/14579210 - created_at: 1503225026 - role: - id: 42 - name: standard role - description: this is the standard role - canonical: role-can - rules: - - id: 1 - effect: allow - action: organization:delete - resources: - - organization:org-can - - organization:org-can2 - - id: 20 - effect: allow - action: organization:team:create - resources: [] - - id: 21 - effect: allow - action: organization:team:read - resources: - - organization:org-can:team:team-can - pagination: - index: 1 - size: 10 - total: 2 - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - post: - tags: - - Organization Credentials - description: |- - Create a new Credential, based on the type you will have to pass different parameters within the body: - * ssh: ssh_key - * aws: access_key, secret_key - * gcp: json_key - * azure: client_id, client_secret, subscription_id, tenant_id - * azure_storage: account_name, access_key - * basic_auth: username, password - * elasticsearch: username, password, ca_cert - * swift: auth_url, username, password, domain_id, tenant_id - * vmware: username, password - operationId: createCredential - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - requestBody: - description: The information of the organization to create. - content: - application/vnd.cycloid.io.v1+json: - schema: - $ref: '#/components/schemas/NewCredential' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/NewCredential' - required: true - responses: - "200": - description: Credential created. The body contains the information of the - new created Credential. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/Credential' - example: - data: - id: 2 - canonical: name-key - name: name-key - type: ssh - path: my/path - raw: - ssh_key: key - "411": - description: The request has a body but it doesn't have a Content-Length - header. - content: {} - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - x-codegen-request-body-name: body - /organizations/{organization_canonical}/credentials/{credential_canonical}: - get: - tags: - - Organization Credentials - description: Get the information of the Credential. - operationId: getCredential - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: credential_canonical - in: path - description: A Credential canonical - required: true - schema: - $ref: '#/components/schemas/Canonical' - responses: - "200": - description: The information of the Credential which has the specified ID. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/Credential' - example: - data: - id: 2 - canonical: name-key - name: name-key - type: ssh - path: my/path - raw: - ssh_key: key - owner: - username: user-2 - id: 10 - given_name: Mariana - family_name: Jimenezo - email: mariana.jimenezo@fakeemail.com - picture_url: https://avatars2.githubusercontent.com/u/14579210 - created_at: 1503225026 - role: - id: 42 - name: standard role - description: this is the standard role - canonical: role-can - rules: - - id: 1 - effect: allow - action: organization:delete - resources: - - organization:org-can - - organization:org-can2 - - id: 20 - effect: allow - action: organization:team:create - resources: [] - - id: 21 - effect: allow - action: organization:team:read - resources: - - organization:org-can:team:team-can - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - put: - tags: - - Organization Credentials - description: |- - Update an existing Credential, based on the type you will have to pass different parameters within the body: - * ssh: ssh_key - * aws: access_key, secret_key - * gcp: json_key - * azure: client_id, client_secret, subscription_id, tenant_id - * azure_storage: account_name, access_key - * basic_auth: username, password - * elasticsearch: username, password, ca_cert - * swift: auth_url, username, password, domain_id, tenant_id - * vmware: username, password - operationId: updateCredential - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: credential_canonical - in: path - description: A Credential canonical - required: true - schema: - $ref: '#/components/schemas/Canonical' - requestBody: - description: The information of the organization to update. - content: - application/vnd.cycloid.io.v1+json: - schema: - $ref: '#/components/schemas/UpdateCredential' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/UpdateCredential' - required: true - responses: - "200": - description: Credential updated. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/Credential' - example: - data: - id: 2 - canonical: name-key - name: name-key - type: ssh - path: my/path - raw: - ssh_key: key - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - "411": - description: The request has a body but it doesn't have a Content-Length - header. - content: {} - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - x-codegen-request-body-name: body - delete: - tags: - - Organization Credentials - description: Delete the Credential. - operationId: deleteCredential - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: credential_canonical - in: path - description: A Credential canonical - required: true - schema: - $ref: '#/components/schemas/Canonical' - responses: - "204": - description: Credential has been deleted. - content: {} - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - "409": - description: Credential deletion has internal conflict - content: {} - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - /organizations/{organization_canonical}/credentials/{credential_canonical}/options: - get: - tags: - - Organization Credentials - description: Get options of the Credential. - operationId: getCredentialOptions - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: credential_canonical - in: path - description: A Credential canonical - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: service - in: query - required: true - schema: - type: string - enum: - - gcp_bigquery - responses: - "200": - description: Service-specific options for the Credential with the specified - ID. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - type: object - description: "The credential options. The shape of the items could\ - \ be anything, since each service can have very different options." - example: - data: - projects: - - id: cycloid-xxx - datasets: - - id: all_billing_data - tables: - - id: cloud_pricing_export - - id: gcp_billing_export_resource_v1_GOOGLE_CLOUD_ACCOUNT_ID - - id: gcp_billing_export_v1_GOOGLE_CLOUD_ACCOUNT_ID - - id: cycloid-demo - datasets: [] - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - /organizations/{organization_canonical}/environments: - get: - tags: - - Organization Environments - description: Get all the environments of the Organization - operationId: getEnvironments - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: page_index - in: query - description: The page number to request. The first page is 1. - schema: - type: integer - format: uint32 - default: 1 - - name: page_size - in: query - description: The number of items at most which the response can have. - schema: - type: integer - format: uint32 - default: 1000 - responses: - "200": - description: Returns all the Environments - content: - application/json: - schema: - required: - - data - - pagination - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/Environment' - pagination: - $ref: '#/components/schemas/Pagination' - example: - data: - - id: 2 - canonical: staging - created_at: 1503225026 - updated_at: 1503335026 - - id: 3 - canonical: dev - created_at: 1503225026 - updated_at: 1503335026 - pagination: - index: 1 - size: 10 - total: 2 - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - /organizations/{organization_canonical}/events: - get: - tags: - - Organizations - description: |- - Retrieve the list of events which has been registered on the organization. The events to request can be filtered using Unix timestamps in milliseconds (begin and end timestamps range), the event type and severity; when more than one are applied then they are applied with a logical AND. - - The Unix timestamps must always be specified, the rest of the filters - are not mandatory. - operationId: getEvents - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: begin - in: query - description: "The unix timestamp in milliseconds, which indicate the start\ - \ of the time range." - schema: - type: integer - format: uint64 - - name: end - in: query - description: "The unix timestamp in milliseconds, which indicate the end of\ - \ the time range." - schema: - type: integer - format: uint64 - - name: type - in: query - description: Specify the types of the events to be requested. The returned - events must have one of the specified types. - allowEmptyValue: false - style: form - explode: true - schema: - type: array - items: - type: string - enum: - - Cycloid - - AWS - - Monitoring - - Custom - - name: severity - in: query - description: Specify the severities of the events to be requested. The returned - events must have one of the specified severities. - allowEmptyValue: false - style: form - explode: true - schema: - type: array - items: - type: string - enum: - - info - - warn - - err - - crit - responses: - "200": - description: The list of events which fulfills the query parameters filter - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/Event' - description: The list of log lines - example: - data: - - timestamp: "0123456789" - id: 42 - type: Cycloid - title: A build has been created - message: Cyclobot created the build cleanup-deployment#42 of pipeline - awesome-project-pr_1337 - icon: fa-info-circle - severity: info - tags: - - key: action - value: create - - key: entity - value: build - - key: name - value: awesome-project-pr_1337/cleanup-deployment - - key: user - value: cyclobot - - timestamp: "0123456795" - id: 2 - title: Success deployment of awesome-project version 1.1.93-rc.5 - on staging environment - type: Custom - message: A new deployment of awesome-project version 1.1.93-rc.5 - has been done on staging environment - severity: info - icon: fa-info-circle - tags: - - key: env - value: staging - - key: project - value: awesome-project - - timestamp: "0123456810" - id: 3 - type: Monitoring - title: Nodes are overloaded - message: Kubernetes nodes of the deployment awesome-project are - under heavy load - severity: warn - tags: - - key: Name - value: my-mum-kubernetes-prod - - key: UUID - value: 3ec0a46e-435e-4c5e-989b-02179efb49b5 - - key: alertname - value: K8SNodeDiskPressure - - key: condition - value: DiskPressure - - key: customer - value: awesome-customer - - key: env - value: prod - - key: instance - value: 172.30.12.2338080 - - key: job - value: kube-state-metrics - - key: node - value: ip-127-0-0-1.eu-west-1.compute.internal - - key: project - value: kubernetes - - key: receiver - value: on_call - - key: service - value: k8s - - key: severity - value: warning - - key: status - value: false - - timestamp: "0123456823" - id: 5 - type: AWS - title: AWS created - message: A new AWS instance has been created - icon: fa-aws - severity: info - tags: - - key: env - value: testing - - key: project - value: awesome-project - - timestamp: "0123456834" - id: 7 - type: AWS - title: AWS is ready - message: A new AWS instance is ready to accept requests - icon: fa-aws - severity: info - tags: - - key: env - value: testing - - key: project - value: secret-project - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - post: - tags: - - Organizations - description: Send a event on the organization to be registered. - operationId: sendEvent - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - requestBody: - description: The information associated with the event to register. - content: - application/vnd.cycloid.io.v1+json: - schema: - $ref: '#/components/schemas/NewEvent' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/NewEvent' - required: true - responses: - "200": - description: Event has been registered - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/Event' - description: The newly created event - example: - data: - - timestamp: "0123456789" - type: Cycloid - title: New member added - message: A new member has been added to the project Website - icon: fa-info-circle - severity: info - tags: - - key: project_canonical - value: website - - key: environment_canonical - value: development - - key: user - value: batman - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - x-codegen-request-body-name: body - /organizations/{organization_canonical}/events/tags: - get: - tags: - - Organizations - description: Retrieve the list of tags and set of values for all the events - of the organization. - operationId: getEventsTags - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - responses: - "200": - description: The list of tags and set of values for all the events of the - organization. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - type: object - properties: {} - description: The list of tags with associated set of values - example: - data: - user: - - cycloidbot - - geralt-of-rivia - env: - - prod - - staging - - testing - action: - - create - - delete - - update - project: - - awesome-project - - pet-project - - secret-project - entity: - - build - - pipeline - name: - - awesome-project-pr_1337 - - awesome-project-pr_42 - customer: - - awesome-customer - - cycloid - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - /organizations/{organization_canonical}/external_backends: - get: - tags: - - Organization External Backends - description: Get the list of organization external backends - operationId: getExternalBackends - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: project - in: query - description: A canonical of a project used for filtering. - schema: - $ref: '#/components/schemas/ProjectCanonical' - - name: environment - in: query - description: The environment canonical to use a query filter - schema: - $ref: '#/components/schemas/EnvironmentCanonical' - responses: - "200": - description: The list of the external backends - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/ExternalBackend' - pagination: - $ref: '#/components/schemas/Pagination' - example: - data: - - id: 1 - project_canonical: project1 - credential_id: 1 - purpose: logs - configuration: - engine: AWSCloudWatchLogs - region: eu-west1 - created_at: 1503225026 - updated_at: 1503335026 - - id: 2 - project_canonical: project2 - credential_id: 2 - purpose: logs - configuration: - engine: AWSCloudWatchLogs - region: eu-west1 - created_at: 1503225026 - updated_at: 1503335026 - - id: 3 - project_canonical: project1 - environment_canonical: envA - credential: 3 - purpose: remote_tfstate - configuration: - engine: AWSStorage - region: eu-west1 - bucket: mybucket - key: /my/key - created_at: 1503225026 - updated_at: 1503335026 - - id: 4 - project_canonical: project2 - environment_canonical: envA - credential: 4 - purpose: logs - configuration: - engine: AWSStorage - container: mycontainer - blob: /my/blob - created_at: 1503225026 - updated_at: 1503335026 - - id: 5 - project_canonical: project2 - environment_canonical: envB - credential_id: 5 - purpose: remote_tfstate - configuration: - engine: GCPStorage - bucket: mybucket - object: /my/object - created_at: 1503225026 - updated_at: 1503335026 - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - post: - tags: - - Organization External Backends - description: Save information about the external backend - operationId: createExternalBackend - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: project - in: query - description: A canonical of a project used for filtering. - schema: - $ref: '#/components/schemas/Canonical' - - name: environment - in: query - description: The environment canonical to use a query filter - schema: - $ref: '#/components/schemas/EnvironmentCanonical' - requestBody: - description: The information of the external backend - content: - application/vnd.cycloid.io.v1+json: - schema: - $ref: '#/components/schemas/NewExternalBackend' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/NewExternalBackend' - required: true - responses: - "200": - description: external backend has been registered - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/ExternalBackend' - example: - data: - id: 1 - project_canonical: project1 - credential_id: 1 - purpose: logs - configuration: - engine: AWSCloudWatchLogs - region: eu-west1 - created_at: 1503225026 - updated_at: 1503335026 - x-codegen-request-body-name: body - /organizations/{organization_canonical}/external_backends/{external_backend_id}: - get: - tags: - - Organization External Backends - description: Get the external backend - operationId: getExternalBackend - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: external_backend_id - in: path - description: External Backend ID - required: true - schema: - type: integer - format: uint32 - responses: - "200": - description: The external backend - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/ExternalBackend' - example: - data: - id: 1 - project_canonical: project1 - credential_id: 1 - purpose: logs - configuration: - engine: AWSCloudWatchLogs - created_at: 1503225026 - updated_at: 1503335026 - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - put: - tags: - - Organization External Backends - description: Update an External Backend - operationId: updateExternalBackend - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: external_backend_id - in: path - description: External Backend ID - required: true - schema: - type: integer - format: uint32 - requestBody: - description: The information of the external backend new data - content: - application/vnd.cycloid.io.v1+json: - schema: - $ref: '#/components/schemas/UpdateExternalBackend' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/UpdateExternalBackend' - required: true - responses: - "200": - description: Success update - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/ExternalBackend' - example: - data: - id: 1 - project_canonical: project1 - credential_id: 1 - purpose: logs - configuration: - engine: AWSCloudWatchLogs - region: eu-west1 - created_at: 1503225026 - updated_at: 1503335026 - "411": - description: The request has a body but it doesn't have a Content-Length - header. - content: {} - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - x-codegen-request-body-name: body - delete: - tags: - - Organization External Backends - description: delete an External Backend - operationId: deleteExternalBackend - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: external_backend_id - in: path - description: External Backend ID - required: true - schema: - type: integer - format: uint32 - responses: - "204": - description: Organization Service Catalog Sources has been deleted - content: {} - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - /organizations/{organization_canonical}/projects/{project_canonical}/forms/config: - post: - tags: - - Organization Forms - description: Generate a set of configs based on the forms inputs - operationId: createFormsConfig - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: project_canonical - in: path - description: A canonical of a project. - required: true - schema: - $ref: '#/components/schemas/ProjectCanonical' - requestBody: - description: The information of the filled forms for a new project. - content: - application/vnd.cycloid.io.v1+json: - schema: - $ref: '#/components/schemas/FormInputs' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/FormInputs' - required: true - responses: - "200": - description: Set of config to create the project / push onto repositories - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - type: object - properties: {} - example: - data: - prod: - pipeline: - pipeline: - path: pipeline/magento.yml - content: | - groups: - - - name: magento-((env)) - jobs: - - magento-((env))-build - - full-deploy-front-magento-((env)) - - app-deploy-front-magento-((env)) - - terraform-plan-magento-((env)) - - terraform-apply-magento-((env)) - - magento-((env))-unittests - - magento-((env))-functional-tests - - resource_types: - - - name: terraform - type: docker-image - source: - repository: ljfranklin/terraform-resource - - resources: - - - name: terraform-magento-((env)) - type: terraform - source: - storage: - bucket: ((terraform_storage_bucket_name)) - bucket_path: ((terraform_storage_bucket_path)) - region_name: ((aws_default_region)) - access_key_id: "((terraform_storage_access_key))" - secret_access_key: "((terraform_storage_secret_key))" - vars: - access_key: ((aws_access_key)) - secret_key: ((aws_secret_key)) - env: - AWS_ACCESS_KEY_ID: ((aws_access_key)) - AWS_DEFAULT_REGION: ((aws_default_region)) - AWS_SECRET_ACCESS_KEY: ((aws_secret_key)) - variables: - path: pipeline/variables.sample.yml - destination: pipeline/prod-variables.yml - content: | - env: prod - magento_deploy_bucket_name: magento-deploy - magento_deploy_bucket_object_path: /catalog-magento/prod/magento.tar.gz - magento_deploy_bucket_region: eu-west-1 - magento_deploy_bucket_access_key: ... - magento_deploy_bucket_secret_access_key: ... - terraform_storage_access_key: ... - terraform_storage_secret_key: ... - terraform_storage_bucket_name: magento-terraform-remote-state - terraform_storage_bucket_path: magento/prod - aws_access_key: ... - aws_secret_key: ... - aws_default_region: eu-west-1 - - ansible_vault_password: ... - bastion_url: admin@bastion.server.com - bastion_private_key_pair: |- - -----BEGIN RSA PRIVATE KEY----- - -----END RSA PRIVATE KEY----- - - catalog_magento_git_private_key: |- - -----BEGIN RSA PRIVATE KEY----- - -----END RSA PRIVATE KEY----- - - magento_git_repository: git@github.com:myuser/code-magento.git - magento_git_branch: master - magento_git_private_key: |- - -----BEGIN RSA PRIVATE KEY----- - -----END RSA PRIVATE KEY----- - - - magento_config_git_repository: git@github.com:myuser/config-magento.git - magento_config_git_branch: master - magento_config_git_private_key: |- - -----BEGIN RSA PRIVATE KEY----- - -----END RSA PRIVATE KEY----- - ansible: - magento: - path: ansible/environments/front.yml.sample - destination: ansible/environments/prod-front.yml - content: | - # In this file you could override any variables present in default_front.yaml file - - # Usually you might want to override those variables : - # magento_backend_frontname: admin - # magento_admin_firstname: admin - # magento_admin_lastname: admin - # magento_admin_email: root@localhost.local - # magento_admin_user: admin - - # magento_admin_password: 4Bigs3cr3t - - # In case you want to use vault to encrypt this password use the following command to generate the ansible vault var : - # echo -n "4Bigs3cr3t" | ansible-vault encrypt_string --stdin-name=magento_admin_password - #>> magento_admin_password: !vault | - #>> $ANSIBLE_VAULT;1.1;AES256 - #>> 37363232383334316164366337366430316535636130376134323366313565356365363662653539 - #>> 3161303331303565643831383839626263653362636466660a316530613935393464366536383839 - #>> 30303836326138306339623431356234333239343435623333343333623938633761636132303662 - #>> 3135343861383531660a393934316237363961663865393939313966373838653339326565353263 - #>> 6238 - terraform: - magento: - path: terraform/magento.tf.sample - destination: terraform/magento/prod/magento.tf - content: | - variable "rds_password" { - default = "ChangeMePls" - } - - module "magento" { - source = "module-magento" - - env = "prod" - vpc_id = "" - private_subnets_ids = ["private-subnets"] - magento_ssl_cert = "" - bastion_sg_allow = "" - public_subnets_ids = [""] - - rds_password = "${var.rds_password}" - - # project = "magento" - - # FIXME optimized false : should be changes with the instance type ? - - # rds_database = "magento" - # rds_disk_size = 10 - # rds_multiaz = false - # rds_storage_type = "gp2" - # rds_subnet = "" - # rds_type = "db.t2.small" - # rds_username = "magento" - # rds_engine = ""mysql" - # rds_engine_version = "5.7.16" - # rds_backup_retention = 7 - # rds_parameters = "" - - # cache_subnet = "cache-subnet-id" - # elasticache_type = "cache.t2.micro" - # elasticache_nodes = "1 - # elasticache_parameter_group_name = "default.redis3.2" - # elasticache_engine = "redis" - # elasticache_port = "6379" - # front_count = "1" - # front_disk_size = "60" - # front_disk_type = "gp2" - # front_type = "t2.small" - - } - dev: - pipeline: - pipeline: - path: pipeline/magento.yml - content: | - groups: - - - name: magento-((env)) - jobs: - - magento-((env))-build - - full-deploy-front-magento-((env)) - - app-deploy-front-magento-((env)) - - terraform-plan-magento-((env)) - - terraform-apply-magento-((env)) - - magento-((env))-unittests - - magento-((env))-functional-tests - - resource_types: - - - name: terraform - type: docker-image - source: - repository: ljfranklin/terraform-resource - - resources: - - - name: terraform-magento-((env)) - type: terraform - source: - storage: - bucket: ((terraform_storage_bucket_name)) - bucket_path: ((terraform_storage_bucket_path)) - region_name: ((aws_default_region)) - access_key_id: "((terraform_storage_access_key))" - secret_access_key: "((terraform_storage_secret_key))" - vars: - access_key: ((aws_access_key)) - secret_key: ((aws_secret_key)) - env: - AWS_ACCESS_KEY_ID: ((aws_access_key)) - AWS_DEFAULT_REGION: ((aws_default_region)) - AWS_SECRET_ACCESS_KEY: ((aws_secret_key)) - variables: - path: pipeline/variables.sample.yml - destination: pipeline/prod-variables.yml - content: | - env: dev - magento_deploy_bucket_name: magento-deploy - magento_deploy_bucket_object_path: /catalog-magento/dev/magento.tar.gz - magento_deploy_bucket_region: eu-west-1 - magento_deploy_bucket_access_key: ... - magento_deploy_bucket_secret_access_key: ... - terraform_storage_access_key: ... - terraform_storage_secret_key: ... - terraform_storage_bucket_name: magento-terraform-remote-state - terraform_storage_bucket_path: magento/dev - aws_access_key: ... - aws_secret_key: ... - aws_default_region: eu-west-1 - - ansible_vault_password: ... - bastion_url: admin@bastion.server.com - bastion_private_key_pair: |- - -----BEGIN RSA PRIVATE KEY----- - -----END RSA PRIVATE KEY----- - - catalog_magento_git_private_key: |- - -----BEGIN RSA PRIVATE KEY----- - -----END RSA PRIVATE KEY----- - - magento_git_repository: git@github.com:myuser/code-magento.git - magento_git_branch: master - magento_git_private_key: |- - -----BEGIN RSA PRIVATE KEY----- - -----END RSA PRIVATE KEY----- - - - magento_config_git_repository: git@github.com:myuser/config-magento.git - magento_config_git_branch: master - magento_config_git_private_key: |- - -----BEGIN RSA PRIVATE KEY----- - -----END RSA PRIVATE KEY----- - ansible: - magento: - path: ansible/environments/front.yml.sample - destination: ansible/environments/dev-front.yml - content: | - # In this file you could override any variables present in default_front.yaml file - - # Usually you might want to override those variables : - # magento_backend_frontname: admin - # magento_admin_firstname: admin - # magento_admin_lastname: admin - # magento_admin_email: root@localhost.local - # magento_admin_user: admin - - # magento_admin_password: 4Bigs3cr3t - - # In case you want to use vault to encrypt this password use the following command to generate the ansible vault var : - # echo -n "4Bigs3cr3t" | ansible-vault encrypt_string --stdin-name=magento_admin_password - #>> magento_admin_password: !vault | - #>> $ANSIBLE_VAULT;1.1;AES256 - #>> 37363232383334316164366337366430316535636130376134323366313565356365363662653539 - #>> 3161303331303565643831383839626263653362636466660a316530613935393464366536383839 - #>> 30303836326138306339623431356234333239343435623333343333623938633761636132303662 - #>> 3135343861383531660a393934316237363961663865393939313966373838653339326565353263 - #>> 6238 - terraform: - magento: - path: terraform/magento.tf.sample - destination: terraform/magento/dev/magento.tf - content: | - variable "rds_password" { - default = "ChangeMePls" - } - - module "magento" { - source = "module-magento" - - env = "prod" - vpc_id = "" - private_subnets_ids = ["private-subnets"] - magento_ssl_cert = "" - bastion_sg_allow = "" - public_subnets_ids = [""] - - rds_password = "${var.rds_password}" - - # project = "magento" - - # FIXME optimized false : should be changes with the instance type ? - - # rds_database = "magento" - # rds_disk_size = 10 - # rds_multiaz = false - # rds_storage_type = "gp2" - # rds_subnet = "" - # rds_type = "db.t2.small" - # rds_username = "magento" - # rds_engine = ""mysql" - # rds_engine_version = "5.7.16" - # rds_backup_retention = 7 - # rds_parameters = "" - - # cache_subnet = "cache-subnet-id" - # elasticache_type = "cache.t2.micro" - # elasticache_nodes = "1 - # elasticache_parameter_group_name = "default.redis3.2" - # elasticache_engine = "redis" - # elasticache_port = "6379" - # front_count = "1" - # front_disk_size = "60" - # front_disk_type = "gp2" - # front_type = "t2.small" - - } - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - x-codegen-request-body-name: body - /organizations/{organization_canonical}/forms/validate: - post: - tags: - - Organization Forms - description: Validate a forms file definition - operationId: validateFormsFile - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - requestBody: - description: The content of the forms file to be validated. - content: - application/vnd.cycloid.io.v1+json: - schema: - $ref: '#/components/schemas/FormsValidation' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/FormsValidation' - required: true - responses: - "200": - description: The result of validating the provided configuration - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/FormsValidationResult' - example: - data: - forms: - version: 2 - use_cases: - - name: prod - sections: - - name: ansible - groups: - - name: database - technologies: - - ansible - vars: - - widget: radios - default: - foo: bar - unit: "($, GHz, GB)" - type: map - values: - - foo: bar - - bar: foo - description: "" - key: key-one - name: map variable - - widget: checkbox - default: true - type: boolean - description: "" - key: key-oneb - name: checkbox variable - - widget: dropdown - required: false - default: - - bar - - foo - values: - - - foo - - bar - - - bar - - foo - unit: "($, GHz, GB)" - type: array - description: something k2 - key: key-two - name: array variable - - widget: number - required: true - unit: something - type: integer - description: something k3 - key: key-three - name: required variable without default - - widget: number - required: false - type: float - description: something k3b - key: key-threeb - name: some float - - widget: dropdown - required: false - default: 20 - unit: "($, GHz, GB)" - type: integer - description: something k5 - values: - - 20 - key: key-five - name: dropdown one value - - widget: radios - required: false - unit: "($, GHz, GB)" - type: integer - description: something k6 - values: - - 20 - key: key-six - name: radios one value - - widget: slider_list - required: false - unit: "($, GHz, GB)" - type: integer - description: something k7 - values: - - 20 - key: key-seven - name: slider list one value - - name: terraform - groups: - - name: database - technologies: - - terraform - vars: - - widget: slider_range - required: false - default: 2 - unit: "($, GHz, GB)" - type: integer - description: something k1 - values: - - 1 - - 10 - key: key-eight - name: integer variable - - widget: dropdown - required: true - default: 20 - unit: "($, GHz, GB)" - type: integer - description: something k2 - values: - - 10 - - 20 - - 30 - key: key-nine - name: required with default - - widget: slider_list - required: false - values: - - 1 - - 5 - unit: "($, GHz, GB)" - type: integer - description: something k3 - key: key-ten - name: not required no default - - name: pipeline - groups: - - name: database - technologies: - - pipeline - vars: - - widget: auto_complete - default: t2.micro - unit: "($, GHz, GB)" - type: string - description: something - values: - - t2.micro - - t2.medium - - t2.large - key: key-eleven - name: string with values and default - - widget: dropdown - required: false - unit: "($, GHz, GB)" - type: integer - description: something k5 - key: key-twelve - values: - - 100 - - 200 - name: "not required no default, but values" - - widget: dropdown - required: false - unit: "($, GHz, GB)" - type: integer - description: something k6 - key: key-thirteen - name: "not required no default, but values" - values: - - 10 - - 40 - - 80 - - name: dev - sections: - - name: ansible - groups: - - name: database - technologies: - - ansible - vars: - - widget: dropdown - default: - foo: bar - unit: "($, GHz, GB)" - type: map - values: - - foo: bar - - bar: foo - description: something k1 - key: key-one - name: map variable - - name: extra-one - sections: - - name: ansible - groups: - - name: database - technologies: - - ansible - vars: - - widget: switch - type: boolean - description: "" - key: key-two - name: switch variable - - widget: dropdown - default: - foo: bar - unit: "($, GHz, GB)" - type: map - values: - - foo: bar - - bar: foo - description: something k1 - key: key-one - name: map variable - errors: - - "The Forms File has an invalid format: use case \"use-caseX\"\ - \ invalid definition for variable \"key-one\" (key) in section\ - \ \"ansible\" of \"database\": The Forms Widget has an invalid\ - \ format" - - "The Forms File has an invalid format: use case \"use-caseX\"\ - \ invalid definition for variable \"key-two\" (key) in section\ - \ \"ansible\" of \"database\": The Forms Widget has an invalid\ - \ format" - - "The Forms File has an invalid format: use case \"use-caseX\"\ - \ invalid definition for variable \"key-four\" (key) in section\ - \ \"ansible\" of \"database\": The Forms Widget has an invalid\ - \ format" - - "The Forms File has an invalid format: use case \"use-caseX\"\ - \ invalid definition for variable \"key-five\" (key) in section\ - \ \"ansible\" of \"database\": The Forms Widget has an invalid\ - \ format" - - "The Forms File has an invalid format: use case \"default\" invalid\ - \ definition for variable \"key-two\" (key) in section \"ansible\"\ - \ of \"database\": The Forms Widget has an invalid format" - - "The Forms File has an invalid format: use case \"default\" -\ - \ key \"key-one\" has been found twice" - - "The Forms File has an invalid format: use case \"default\" -\ - \ key \"key-two\" has been found twice" - - "The Forms File has an invalid format: Forms Technology \"INVALID-TECH\"\ - \ is unknown" - - "The Forms File has an invalid format: use case \"default\" invalid\ - \ definition for variable \"key-two\" (key) in section \"ansible\"\ - \ of \"groupX\": The Forms File Branch Source has an invalid format" - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - x-codegen-request-body-name: body - /organizations/{organization_canonical}/projects/{project_canonical}/forms/estimate: - post: - tags: - - Cost Estimation - description: Estimates the Cost from the Froms Inputs - operationId: costEstimateForms - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: project_canonical - in: path - description: A canonical of a project. - required: true - schema: - $ref: '#/components/schemas/ProjectCanonical' - requestBody: - description: The information of the filled forms for a new project. - content: - application/vnd.cycloid.io.v1+json: - schema: - $ref: '#/components/schemas/FormInputs' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/FormInputs' - required: true - responses: - "200": - description: The result of estimating the costs of a stack. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - type: object - properties: {} - example: - data: - prod: - usecase: - - name: some name - info: some potential info here - prior_cost: "10.544" - prior_hourly_cost: "0.01444" - planned_cost: "30.252" - planned_hourly_cost: "0.04144" - resource_estimates: - - provider: aws - type: aws_instance - address: aws_instance.example - prior_cost: "10.544" - prior_hourly_cost: "0.01444" - planned_cost: "30.252" - planned_hourly_cost: "0.04144" - components: - - label: Compute - prior: - cost: "5.00" - hourly_cost: "0.00685" - quantity: 1 - planned: - cost: "5.00" - hourly_cost: "0.00685" - quantity: 1 - - label: Storage - prior: - cost: "5.544" - hourly_cost: "0.00759" - quantity: 30 - planned: - cost: "25.252" - hourly_cost: "0.03459" - quantity: 150 - - name: some 2 - info: some potential info here - prior_cost: "10.544" - prior_hourly_cost: "0.01444" - planned_cost: "30.252" - planned_hourly_cost: "0.04144" - resource_estimates: - - provider: aws - type: aws_instance - address: aws_instance.example - prior_cost: "10.544" - prior_hourly_cost: "0.01444" - planned_cost: "30.252" - planned_hourly_cost: "0.04144" - components: - - label: Compute - prior: - cost: "5.00" - hourly_cost: "0.00685" - quantity: 1 - planned: - cost: "5.00" - hourly_cost: "0.00685" - quantity: 1 - - label: Storage - prior: - cost: "5.544" - hourly_cost: "0.00759" - quantity: 30 - planned: - cost: "25.252" - hourly_cost: "0.03459" - quantity: 150 - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - x-codegen-request-body-name: body - /organizations/{organization_canonical}/projects/{project_canonical}/forms/quotas: - post: - tags: - - Organization Quotas - description: Estimates the Quotas from the Form Inputs - operationId: quotasEstimateForms - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: project_canonical - in: path - description: A canonical of a project. - required: true - schema: - $ref: '#/components/schemas/ProjectCanonical' - requestBody: - description: The information of the filled forms for a new project. - content: - application/vnd.cycloid.io.v1+json: - schema: - $ref: '#/components/schemas/FormInputs' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/FormInputs' - required: true - responses: - "200": - description: The result of estimating the costs of a stack. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - type: object - properties: {} - example: - data: - prod: - usecase: - cpu: 10 - memory: 20 - storage: 30 - usecase2: - cpu: 20 - memory: 20 - storage: 10 - dev: - usecase-dev: - cpu: 10 - memory: 20 - storage: 30 - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - x-codegen-request-body-name: body - /organizations/{organization_canonical}/infra_imports: - post: - tags: - - Organization Infra Imports - description: Create a new Infra Import - operationId: createInfraImport - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - requestBody: - description: The information of the Infra Import to create - content: - application/vnd.cycloid.io.v1+json: - schema: - $ref: '#/components/schemas/NewInfraImport' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/NewInfraImport' - required: true - responses: - "202": - description: The Infra Import has been created and processing in the background - content: {} - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - x-codegen-request-body-name: body - /organizations/{organization_canonical}/projects/{project_canonical}/import: - get: - tags: - - Organization Infra Imports - description: Get the Project Import of the organization. - operationId: getProjectImport - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: project_canonical - in: path - description: A canonical of a project. - required: true - schema: - $ref: '#/components/schemas/ProjectCanonical' - responses: - "200": - description: The information of the Project import process. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/InfraImport' - example: - data: - status: Importing - project_canonical: my-project-1 - service_catalog_ref: cycloidio:stack-magento - logs: The Provider1 Resource has been imported - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - delete: - tags: - - Organization Infra Imports - description: Delete the Project Import of the organization. - operationId: deleteProjectImport - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: project_canonical - in: path - description: A canonical of a project. - required: true - schema: - $ref: '#/components/schemas/ProjectCanonical' - responses: - "204": - description: The Project Import has been deleted. - content: {} - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - /organizations/{organization_canonical}/projects/{project_canonical}/import/retry: - put: - tags: - - Organization Infra Imports - description: Retry to import a Project. - operationId: retryProjectImport - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: project_canonical - in: path - description: A canonical of a project. - required: true - schema: - $ref: '#/components/schemas/ProjectCanonical' - responses: - "202": - description: The request to retry the Project import has been accepted and - processing in the background - content: {} - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - /organizations/{organization_canonical}/service_catalogs/{service_catalog_ref}/import: - get: - tags: - - Organization Infra Imports - description: Get the import of a new Stack of the organization. - operationId: getServiceCatalogImport - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: service_catalog_ref - in: path - description: A Service Catalog name - required: true - schema: - pattern: "^[a-z0-9]+[a-z0-9\\-_]+[a-z0-9]+:[a-z0-9]+[a-z0-9\\-_]+[a-z0-9]+$" - type: string - responses: - "200": - description: The information of the Stack import process. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/InfraImport' - example: - data: - status: Importing - project_canonical: my-project-1 - service_catalog_ref: cycloidio:stack-magento - logs: - - Imported Resource 1 - - Imported Resource 2 - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - delete: - tags: - - Organization Infra Imports - description: Delete the Stack import of the organization. - operationId: deleteServiceCatalogImport - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: service_catalog_ref - in: path - description: A Service Catalog name - required: true - schema: - pattern: "^[a-z0-9]+[a-z0-9\\-_]+[a-z0-9]+:[a-z0-9]+[a-z0-9\\-_]+[a-z0-9]+$" - type: string - responses: - "204": - description: The Stack import has been deleted. - content: {} - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - /organizations/{organization_canonical}/service_catalogs/{service_catalog_ref}/import/retry: - put: - tags: - - Organization Infra Imports - description: Retry to import a Stack. - operationId: retryServiceCatalogImport - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: service_catalog_ref - in: path - description: A Service Catalog name - required: true - schema: - pattern: "^[a-z0-9]+[a-z0-9\\-_]+[a-z0-9]+:[a-z0-9]+[a-z0-9\\-_]+[a-z0-9]+$" - type: string - responses: - "202": - description: The request to retry the Stack import has been accepted and - processing in the background - content: {} - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - /organizations/{organization_canonical}/infra_policies: - get: - tags: - - Organization Infrastructure Policies - description: Return a list of infrastructure policies which matches the scope - specified by the filter. - operationId: getInfraPolicies - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: page_index - in: query - description: The page number to request. The first page is 1. - schema: - type: integer - format: uint32 - default: 1 - - name: page_size - in: query - description: The number of items at most which the response can have. - schema: - type: integer - format: uint32 - default: 1000 - - name: infra_policy_name - in: query - description: Search by InfraPolicy's name - schema: - type: string - - name: infra_policy_created_at - in: query - description: Search by InfraPolicy's creation date - schema: - type: integer - format: uint64 - - name: infra_policy_severity - in: query - description: Search by InfraPolicy's severity - schema: - type: string - enum: - - critical - - warning - - advisory - - name: infra_policy_enabled - in: query - description: Search by InfraPolicy's enabled - schema: - type: boolean - - name: infra_policy_canonical - in: query - description: Search by infra policy canonical - schema: - $ref: '#/components/schemas/Canonical' - - name: order_by - in: query - description: | - Allows to order the list of items. Example usage: field_name:asc - schema: - type: string - responses: - "200": - description: List of infrastructure policies. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/InfraPolicy' - pagination: - $ref: '#/components/schemas/Pagination' - example: - data: - - id: 1 - created_at: 1503225026 - updated_at: 1503335026 - name: My Infra Policy - description: Apply changes across my infrastructure in a safe way! - canonical: my-infra-policy - raw: "allow = true {count(violation) == 0}" - owner: - username: user-1 - id: 1 - given_name: Mariano - family_name: Jimenez - email: mariano.jimenez@fakeemail.com - picture_url: https://avatars2.githubusercontent.com/u/14579210 - created_at: 1503225026 - role: - id: 42 - name: standard role - description: this is the standard role - policies: - - id: 1 - code: team:create - description: this is the policy - enabled: true - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - post: - tags: - - Organization Infrastructure Policies - description: Create a new policy. - operationId: createInfraPolicy - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - requestBody: - content: - application/vnd.cycloid.io.v1+json: - schema: - $ref: '#/components/schemas/NewInfraPolicy' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/NewInfraPolicy' - required: true - responses: - "200": - description: The new InfraPolicy created. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/InfraPolicy' - example: - data: - id: 1 - created_at: 1503225026 - updated_at: 1503335026 - name: My Infra Policy - description: Apply changes across my infrastructure in a safe way! - canonical: my-infra-policy - raw: "allow = true {count(violation) == 0}" - owner: - username: user-1 - id: 1 - given_name: Mariano - family_name: Jimenez - email: mariano.jimenez@fakeemail.com - picture_url: https://avatars2.githubusercontent.com/u/14579210 - created_at: 1503225026 - role: - id: 42 - name: standard role - description: this is the standard role - policies: - - id: 1 - code: team:create - description: this is the policy - enabled: true - "411": - description: The request has a body but it doesn't have a Content-Length - header. - content: {} - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - x-codegen-request-body-name: body - /organizations/{organization_canonical}/infra_policies/{infra_policy_canonical}: - get: - tags: - - Organization Infrastructure Policies - description: Get the information of the InfraPolicy. - operationId: getInfraPolicy - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: infra_policy_canonical - in: path - description: The canonical of an InfraPolicy. - required: true - schema: - $ref: '#/components/schemas/Canonical' - responses: - "200": - description: The information of the InfraPolicy which has the specified - canonical. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/InfraPolicy' - example: - data: - id: 1 - created_at: 1503225026 - updated_at: 1503335026 - name: My Infra Policy - description: Apply changes across my infrastructure in a safe way! - canonical: my-infra-policy - raw: "allow = true {count(violation) == 0}" - owner: - username: user-1 - id: 1 - given_name: Mariano - family_name: Jimenez - email: mariano.jimenez@fakeemail.com - picture_url: https://avatars2.githubusercontent.com/u/14579210 - created_at: 1503225026 - role: - id: 42 - name: standard role - description: this is the standard role - policies: - - id: 1 - code: team:create - description: this is the policy - enabled: true - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - put: - tags: - - Organization Infrastructure Policies - description: Update an existing InfraPolicy - operationId: updateInfraPolicy - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: infra_policy_canonical - in: path - description: The canonical of an InfraPolicy. - required: true - schema: - $ref: '#/components/schemas/Canonical' - requestBody: - description: The information of the organization to update. - content: - application/vnd.cycloid.io.v1+json: - schema: - $ref: '#/components/schemas/UpdateInfraPolicy' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/UpdateInfraPolicy' - required: true - responses: - "200": - description: InfraPolicy updated. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/InfraPolicy' - example: - data: - id: 1 - created_at: 1503225026 - updated_at: 1503335026 - name: My Infra Policy - description: Apply changes across my infrastructure in a safe way! - canonical: my-infra-policy - body: "allow = true {count(violation) == 0}" - owner: - username: user-1 - id: 1 - given_name: Mariano - family_name: Jimenez - email: mariano.jimenez@fakeemail.com - picture_url: https://avatars2.githubusercontent.com/u/14579210 - created_at: 1503225026 - role: - id: 42 - name: standard role - description: this is the standard role - policies: - - id: 1 - code: team:create - description: this is the policy - enabled: true - severity: critical - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - x-codegen-request-body-name: body - delete: - tags: - - Organization Infrastructure Policies - description: Delete the InfraPolicy. - operationId: deleteInfraPolicy - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: infra_policy_canonical - in: path - description: The canonical of an InfraPolicy. - required: true - schema: - $ref: '#/components/schemas/Canonical' - responses: - "204": - description: InfraPolicy has been deleted. - content: {} - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - ? /organizations/{organization_canonical}/projects/{project_canonical}/environments/{environment_canonical}/validate_infra_policies - : post: - tags: - - Organization Infrastructure Policies - description: Check the InfraPolicies assigned to the Project and the Environment - to identify if some are not respected. - operationId: validateProjectInfraPolicies - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: project_canonical - in: path - description: A canonical of a project. - required: true - schema: - $ref: '#/components/schemas/ProjectCanonical' - - name: environment_canonical - in: path - description: The environment canonical to use as part of a path - required: true - schema: - $ref: '#/components/schemas/EnvironmentCanonical' - requestBody: - description: The project's attributes to check before to apply an infrastructure - change. - content: - application/vnd.cycloid.io.v1+json: - schema: - $ref: '#/components/schemas/TerraformPlanInput' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/TerraformPlanInput' - required: true - responses: - "200": - description: The list of the policies not respected. - content: - application/json: - schema: - type: object - properties: - data: - $ref: '#/components/schemas/InfraPoliciesValidationResult' - example: - data: - criticals: - - infra_policy: null - id: 8 - created_at: 1606735667 - updated_at: 1606735667 - canonical: infrapolicy-1 - name: InfraPolicy 1 - description: This is an example - body: |- - package example - - deny[reason] { - reason := "This is a failing error example" - } - owner: - username: user-1 - id: 1 - given_name: Mariano - family_name: Jimenez - email: mariano.jimenez@fakeemail.com - picture_url: https://avatars2.githubusercontent.com/u/14579210 - created_at: 1503225026 - role: - id: 42 - name: standard role - description: this is the standard role - policies: - - id: 1 - code: team:read - description: this is the policy - severity: critical - enabled: true - reasons: - - This is a failing error example - warnings: [] - advisories: [] - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - x-codegen-request-body-name: body - /organizations/{organization_canonical}/infrastructures/aws/buckets: - get: - tags: - - Organization Infrastructure - description: Get the list of S3 buckets of the running AWS infrastructure and - associated with the AWS account (credential). The parameters allow to select - the scope of the request to one project of the organization. - operationId: getRunningInfraAWSBuckets - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: credential_canonical - in: query - description: A Credential canonical - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: project - in: query - description: A canonical of a project used for filtering. - schema: - $ref: '#/components/schemas/Canonical' - - name: tag - in: query - description: "An amazon tag, represented as `key|value` and where `key` or\ - \ `value` could be omitted but not both, in order to select resources which\ - \ has a `key` or a `value` whatever is its counterpart. `key` nor `value`\ - \ can contains the `|` character. The parameter can be specified several\ - \ times in order to request resources which match with at least one of the\ - \ `tag|value` pairs" - allowEmptyValue: false - style: form - explode: true - schema: - uniqueItems: true - type: array - items: - maxLength: 383 - minLength: 2 - pattern: "^(?:(?:[\\w\\-+=.:/@ ]+\\|)|(?:\\|[\\w\\-+=.:/@ ]+)|(?:[\\w\\\ - -+=.:/@ ]+\\|[\\w\\-+=.:/@ ]+))$" - type: string - responses: - "200": - description: The list of AWS S3 buckets which matches the scope specified - by the filter. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/AWSInfrastructureResourceBucket' - description: "Although this response contains a collection of items,\ - \ it doesn't have pagination because the AWS SDK, to request the\ - \ S3 Buckets resources, doesn't provide any pagination mechanism." - example: - data: - - CreationDate: 2017-03-29T05:15:27Z - Name: config-bucket-123456789101 - Tags: [] - - CreationDate: 2017-03-29T01:12:21Z - Name: data-some-log-dbm - Tags: - - Key: client - Value: Cycloid - - CreationDate: 2017-03-29T10:28:14Z - Name: dev-sdk.web.fr - Tags: [] - - CreationDate: 2017-06-19T14:57:15Z - Name: marianorajoy.es - Tags: - - Key: owner - Value: Mariano Rajoy - - CreationDate: 2017-03-29T18:01:25Z - Name: dtrump.com - Tags: [] - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - deprecated: true - /organizations/{organization_canonical}/infrastructures/aws: - get: - tags: - - Organization Infrastructure - description: "Get the number of resources classified by types, of the running\ - \ AWS infrastructure of the organization and associated AWS account (credential).\ - \ The parameters allow to select the scope of the request to one project of\ - \ the organization and/or a set of type of resource." - operationId: getRunningInfraAWS - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: credential_canonical - in: query - description: A Credential canonical - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: project - in: query - description: A canonical of a project used for filtering. - schema: - $ref: '#/components/schemas/Canonical' - - name: resource - in: query - description: Supported AWS type of resource to query. The parameter can be - specified several times in order to request for different kind of resources. - allowEmptyValue: false - style: form - explode: true - schema: - uniqueItems: true - type: array - items: - type: string - enum: - - instances - - vpcs - - images - - security_groups - - subnets - - volumes - - snapshots - - cache_clusters - - load_balancers_v1 - - load_balancers_v2 - - db_instances - - buckets - - name: tag - in: query - description: "An amazon tag, represented as `key|value` and where `key` or\ - \ `value` could be omitted but not both, in order to select resources which\ - \ has a `key` or a `value` whatever is its counterpart. `key` nor `value`\ - \ can contains the `|` character. The parameter can be specified several\ - \ times in order to request resources which match with at least one of the\ - \ `tag|value` pairs" - allowEmptyValue: false - style: form - explode: true - schema: - uniqueItems: true - type: array - items: - maxLength: 383 - minLength: 2 - pattern: "^(?:(?:[\\w\\-+=.:/@ ]+\\|)|(?:\\|[\\w\\-+=.:/@ ]+)|(?:[\\w\\\ - -+=.:/@ ]+\\|[\\w\\-+=.:/@ ]+))$" - type: string - responses: - "200": - description: The number of resources classified per type which matches the - scope specified by the filter. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/AWSInfrastructureResourcesAggregation' - example: - data: - instances: - total_amount: 94875 - vpcs: - total_amount: 98 - images: - total_amount: 6 - security_groups: - total_amount: 9 - subnets: - total_amount: 31 - volumes: - total_amount: 45 - snapshots: - total_amount: 786 - load_balancers_v2: - total_amount: 4 - db_instances: - total_amount: 34 - buckets: - total_amount: 10 - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - deprecated: true - /organizations/{organization_canonical}/infrastructures/aws/db_instances: - get: - tags: - - Organization Infrastructure - description: Get the list of RDS DB instances of the running AWS infrastructure - and associated with the AWS account (credential). The parameters allow to - select the scope of the request to one project of the organization. - operationId: getRunningInfraAWSDBInstances - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: credential_canonical - in: query - description: A Credential canonical - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: project - in: query - description: A canonical of a project used for filtering. - schema: - $ref: '#/components/schemas/Canonical' - - name: page_size - in: query - description: The number of items at most which the response can have. - schema: - type: integer - format: uint32 - default: 1000 - - name: next - in: query - description: The token to retrieve the next page of results - schema: - minLength: 1 - type: string - - name: tag - in: query - description: "An amazon tag, represented as `key|value` and where `key` or\ - \ `value` could be omitted but not both, in order to select resources which\ - \ has a `key` or a `value` whatever is its counterpart. `key` nor `value`\ - \ can contains the `|` character. The parameter can be specified several\ - \ times in order to request resources which match with at least one of the\ - \ `tag|value` pairs" - allowEmptyValue: false - style: form - explode: true - schema: - uniqueItems: true - type: array - items: - maxLength: 383 - minLength: 2 - pattern: "^(?:(?:[\\w\\-+=.:/@ ]+\\|)|(?:\\|[\\w\\-+=.:/@ ]+)|(?:[\\w\\\ - -+=.:/@ ]+\\|[\\w\\-+=.:/@ ]+))$" - type: string - responses: - "200": - description: The list of AWS RDS DB Instances which matches the scope specified - by the filter. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/AWSInfrastructureResourceDBInstance' - pagination: - $ref: '#/components/schemas/PaginationAWS' - example: - data: - - AllocatedStorage: 50 - AutoMinorVersionUpgrade: true - AvailabilityZone: eu-west-1b - BackupRetentionPeriod: 7 - CACertificateIdentifier: rds-ca-2015 - CharacterSetName: null - CopyTagsToSnapshot: false - DBClusterIdentifier: null - DBInstanceArn: arn:aws:rds:eu-west-1:123456789101:db:amazon-rds-api-gateway-dev - DBInstanceClass: db.t2.small - DBInstanceIdentifier: amazon-rds-api-gateway-dev - DBInstanceStatus: available - DBName: api_gateway_dev - DBParameterGroups: - - DBParameterGroupName: rds-optimized-postgresql-amazon-dev - ParameterApplyStatus: in-sync - DBSecurityGroups: null - DBSubnetGroup: - DBSubnetGroupArn: null - DBSubnetGroupDescription: subnet-rds-amazon-dev - DBSubnetGroupName: subnet-rds-amazon-dev - SubnetGroupStatus: Complete - Subnets: - - SubnetAvailabilityZone: - Name: eu-west-1b - SubnetIdentifier: subnet-1ee9cf68 - SubnetStatus: Active - - SubnetAvailabilityZone: - Name: eu-west-1c - SubnetIdentifier: subnet-5ccca204 - SubnetStatus: Active - - SubnetAvailabilityZone: - Name: eu-west-1a - SubnetIdentifier: subnet-53614d37 - SubnetStatus: Active - VpcId: vpc-257d2d41 - DbInstancePort: 0 - DbiResourceId: db-LLW4DT3OHVULRQ4GLZWSJ3MOVQ - DomainMemberships: null - EnabledCloudwatchLogsExports: null - Endpoint: - Address: amazon-rds-api-gateway-dev.cwhghoaxsi70.eu-west-1.rds.amazonaws.com - HostedZoneId: Z29XKXDKYMONMX - Port: 5432 - Engine: postgres - EngineVersion: 9.4.7 - EnhancedMonitoringResourceArn: null - IAMDatabaseAuthenticationEnabled: false - InstanceCreateTime: 2017-12-05T18:21:34.311Z - Iops: null - KmsKeyId: null - LatestRestorableTime: 2018-02-06T11:40:39Z - LicenseModel: postgresql-license - MasterUsername: amazon - MonitoringInterval: 0 - MonitoringRoleArn: null - MultiAZ: false - OptionGroupMemberships: - - OptionGroupName: default:postgres-9-4 - Status: in-sync - PendingModifiedValues: - AllocatedStorage: null - BackupRetentionPeriod: null - CACertificateIdentifier: null - DBInstanceClass: null - DBInstanceIdentifier: null - DBSubnetGroupName: null - EngineVersion: null - Iops: null - LicenseModel: null - MasterUserPassword: null - MultiAZ: null - PendingCloudwatchLogsExports: null - Port: null - StorageType: null - PerformanceInsightsEnabled: false - PerformanceInsightsKMSKeyId: null - PreferredBackupWindow: 02:00-04:00 - PreferredMaintenanceWindow: tue:06:00-tue:07:00 - PromotionTier: null - PubliclyAccessible: false - ReadReplicaDBClusterIdentifiers: null - ReadReplicaDBInstanceIdentifiers: null - ReadReplicaSourceDBInstanceIdentifier: null - SecondaryAvailabilityZone: null - StatusInfos: null - StorageEncrypted: false - StorageType: gp2 - TdeCredentialArn: null - Timezone: null - VpcSecurityGroups: - - Status: active - VpcSecurityGroupId: sg-64d29802 - Tags: [] - pagination: - next: "" - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - deprecated: true - /organizations/{organization_canonical}/infrastructures/aws/elasticache_clusters: - get: - tags: - - Organization Infrastructure - description: Get the list of Elasticache clusters of the running AWS infrastructure - and associated with the AWS account (credential). The parameters allow to - select the scope of the request to one project of the organization. - operationId: getRunningInfraAWSElasticacheClusters - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: credential_canonical - in: query - description: A Credential canonical - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: project - in: query - description: A canonical of a project used for filtering. - schema: - $ref: '#/components/schemas/Canonical' - - name: page_size - in: query - description: The number of items at most which the response can have. - schema: - type: integer - format: uint32 - default: 1000 - - name: next - in: query - description: The token to retrieve the next page of results - schema: - minLength: 1 - type: string - - name: tag - in: query - description: "An amazon tag, represented as `key|value` and where `key` or\ - \ `value` could be omitted but not both, in order to select resources which\ - \ has a `key` or a `value` whatever is its counterpart. `key` nor `value`\ - \ can contains the `|` character. The parameter can be specified several\ - \ times in order to request resources which match with at least one of the\ - \ `tag|value` pairs" - allowEmptyValue: false - style: form - explode: true - schema: - uniqueItems: true - type: array - items: - maxLength: 383 - minLength: 2 - pattern: "^(?:(?:[\\w\\-+=.:/@ ]+\\|)|(?:\\|[\\w\\-+=.:/@ ]+)|(?:[\\w\\\ - -+=.:/@ ]+\\|[\\w\\-+=.:/@ ]+))$" - type: string - responses: - "200": - description: The list of AWS elasticache clusters which matches the scope - specified by the filter. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/AWSInfrastructureResourceElasticacheCluster' - pagination: - $ref: '#/components/schemas/PaginationAWS' - example: - data: - - AtRestEncryptionEnabled: false - AuthTokenEnabled: false - AutoMinorVersionUpgrade: true - CacheClusterCreateTime: 2015-11-23T11:24:24.677Z - CacheClusterId: cache0 - CacheClusterStatus: available - CacheNodeType: cache.t2.micro - CacheNodes: null - CacheParameterGroup: - CacheNodeIdsToReboot: null - CacheParameterGroupName: default.redis2.8 - ParameterApplyStatus: in-sync - CacheSecurityGroups: null - CacheSubnetGroupName: amazon-cache0-eu-we1 - ClientDownloadLandingPage: 'https://console.aws.amazon.com/elasticache/home#client-download:' - ConfigurationEndpoint: null - Engine: redis - EngineVersion: 2.8.23 - NotificationConfiguration: null - NumCacheNodes: 1 - PendingModifiedValues: - CacheNodeIdsToRemove: null - CacheNodeType: null - EngineVersion: null - NumCacheNodes: null - PreferredAvailabilityZone: eu-west-1a - PreferredMaintenanceWindow: tue:06:00-tue:07:00 - ReplicationGroupId: null - SecurityGroups: - - SecurityGroupId: sg-fff37b9b - Status: active - SnapshotRetentionLimit: null - SnapshotWindow: null - TransitEncryptionEnabled: false - Tags: - - Key: project - Value: website - - Key: client - Value: cycloid - - Key: env - Value: prod - - Key: role - Value: cache - pagination: - next: "" - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - deprecated: true - /organizations/{organization_canonical}/infrastructures/aws/images: - get: - tags: - - Organization Infrastructure - description: Get the list of images of the running AWS infrastructure and associated - with the AWS account (credential). The parameters allow to select the scope - of the request to one project of the organization. - operationId: getRunningInfraAWSImages - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: credential_canonical - in: query - description: A Credential canonical - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: project - in: query - description: A canonical of a project used for filtering. - schema: - $ref: '#/components/schemas/Canonical' - - name: tag - in: query - description: "An amazon tag, represented as `key|value` and where `key` or\ - \ `value` could be omitted but not both, in order to select resources which\ - \ has a `key` or a `value` whatever is its counterpart. `key` nor `value`\ - \ can contains the `|` character. The parameter can be specified several\ - \ times in order to request resources which match with at least one of the\ - \ `tag|value` pairs" - allowEmptyValue: false - style: form - explode: true - schema: - uniqueItems: true - type: array - items: - maxLength: 383 - minLength: 2 - pattern: "^(?:(?:[\\w\\-+=.:/@ ]+\\|)|(?:\\|[\\w\\-+=.:/@ ]+)|(?:[\\w\\\ - -+=.:/@ ]+\\|[\\w\\-+=.:/@ ]+))$" - type: string - responses: - "200": - description: The list of AWS images which matches the scope specified by - the filter. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/AWSInfrastructureResourceImage' - description: "Although this response contains a collection of items,\ - \ it doesn't have pagination because the AWS SDK, to request the\ - \ images resources, doesn't provide any pagination mechanism." - example: - data: - - Architecture: x86_64 - BlockDeviceMappings: - - DeviceName: /dev/xvda - Ebs: - DeleteOnTermination: true - Encrypted: false - Iops: null - KmsKeyId: null - SnapshotId: snap-e978d105 - VolumeSize: 8 - VolumeType: standard - NoDevice: null - VirtualName: null - CreationDate: 2016-05-24T21:14:11.000Z - Description: hashicorp vault - EnaSupport: null - Hypervisor: xen - ImageId: ami-01d94872 - ImageLocation: 123456789101/vault - ImageOwnerAlias: null - ImageType: machine - KernelId: null - Name: vault - OwnerId: "123456789101" - Platform: null - ProductCodes: null - Public: false - RamdiskId: null - RootDeviceName: /dev/xvda - RootDeviceType: ebs - SriovNetSupport: null - State: available - StateReason: null - Tags: [] - VirtualizationType: hvm - - Architecture: x86_64 - BlockDeviceMappings: - - DeviceName: /dev/xvda - Ebs: - DeleteOnTermination: true - Encrypted: false - Iops: null - KmsKeyId: null - SnapshotId: snap-0d4d246f98692cab9 - VolumeSize: 8 - VolumeType: gp2 - NoDevice: null - VirtualName: null - CreationDate: 2017-09-15T17:45:50.000Z - Description: null - EnaSupport: null - Hypervisor: xen - ImageId: ami-34995b4d - ImageLocation: 123456789101/pipeline_demo 1505497225 - ImageOwnerAlias: null - ImageType: machine - KernelId: null - Name: pipeline_demo 1505497225 - OwnerId: "123456789101" - Platform: null - ProductCodes: null - Public: false - RamdiskId: null - RootDeviceName: /dev/xvda - RootDeviceType: ebs - SriovNetSupport: simple - State: available - StateReason: null - Tags: - - Key: client - Value: cycloid - - Key: env - Value: demo - - Key: Name - Value: demo-pipeline-1505497225 - - Key: role - Value: front - - Key: project - Value: demo-website - VirtualizationType: hvm - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - deprecated: true - /organizations/{organization_canonical}/infrastructures/aws/instances: - get: - tags: - - Organization Infrastructure - description: Get the list of instances of the running AWS infrastructure and - associated with the AWS account (credential). The parameters allow to select - the scope of the request to one project of the organization. - operationId: getRunningInfraAWSInstances - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: credential_canonical - in: query - description: A Credential canonical - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: project - in: query - description: A canonical of a project used for filtering. - schema: - $ref: '#/components/schemas/Canonical' - - name: page_size - in: query - description: The number of items at most which the response can have. - schema: - type: integer - format: uint32 - default: 1000 - - name: next - in: query - description: The token to retrieve the next page of results - schema: - minLength: 1 - type: string - - name: tag - in: query - description: "An amazon tag, represented as `key|value` and where `key` or\ - \ `value` could be omitted but not both, in order to select resources which\ - \ has a `key` or a `value` whatever is its counterpart. `key` nor `value`\ - \ can contains the `|` character. The parameter can be specified several\ - \ times in order to request resources which match with at least one of the\ - \ `tag|value` pairs" - allowEmptyValue: false - style: form - explode: true - schema: - uniqueItems: true - type: array - items: - maxLength: 383 - minLength: 2 - pattern: "^(?:(?:[\\w\\-+=.:/@ ]+\\|)|(?:\\|[\\w\\-+=.:/@ ]+)|(?:[\\w\\\ - -+=.:/@ ]+\\|[\\w\\-+=.:/@ ]+))$" - type: string - responses: - "200": - description: The list of AWS instances which matches the scope specified - by the filter. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/AWSInfrastructureResourceInstance' - pagination: - $ref: '#/components/schemas/PaginationAWS' - example: - data: - - AmiLaunchIndex: 0 - Architecture: x86_64 - BlockDeviceMappings: - - DeviceName: /dev/xvda - Ebs: - AttachTime: 2016-09-02T08:07:12Z - DeleteOnTermination: true - Status: attached - VolumeId: vol-c888994f - ClientToken: "" - EbsOptimized: false - ElasticGpuAssociations: null - EnaSupport: null - Hypervisor: xen - IamInstanceProfile: - Arn: arn:aws:iam::123456789101:instance-profile/profile-front-website-prod - Id: AIPAJFKQFTYM7KEEE2SWU - ImageId: ami-e079f893 - InstanceId: i-2000dcad - InstanceLifecycle: null - InstanceType: t2.micro - KernelId: null - KeyName: cycloid - LaunchTime: 2016-09-19T07:11:18Z - Monitoring: - State: disabled - NetworkInterfaces: - - Association: - IpOwnerId: amazon - PublicDnsName: ec2-54-192-0-1.eu-west-1.compute.amazonaws.com - PublicIp: 54.192.0.1 - Attachment: - AttachTime: 2016-09-02T08:07:11Z - AttachmentId: eni-attach-10d509cf - DeleteOnTermination: true - DeviceIndex: 0 - Status: attached - Description: "" - Groups: - - GroupId: sg-64565003 - GroupName: website-front-prod - - GroupId: sg-3543334e - GroupName: allow_metrics - - GroupId: sg-c1db70a6 - GroupName: allow_bastion - Ipv6Addresses: null - MacAddress: 06:9a:1a:77:6c:db - NetworkInterfaceId: eni-b1f859fd - OwnerId: "123456789101" - PrivateDnsName: ip-10-42-0-2.eu-west-1.compute.internal - PrivateIpAddress: 10.42.0.2 - PrivateIpAddresses: - - Association: - IpOwnerId: amazon - PublicDnsName: ec2-54-192-0-1.eu-west-1.compute.amazonaws.com - PublicIp: 54.192.0.1 - Primary: true - PrivateDnsName: ip-10-42-0-2.eu-west-1.compute.internal - PrivateIpAddress: 10.42.0.2 - SourceDestCheck: true - Status: in-use - SubnetId: subnet-6b5a8f1d - VpcId: vpc-21fb3e45 - Placement: - Affinity: null - AvailabilityZone: eu-west-1b - GroupName: "" - HostId: null - SpreadDomain: null - Tenancy: default - Platform: null - PrivateDnsName: ip-10-42-0-2.eu-west-1.compute.internal - PrivateIpAddress: 10.42.0.2 - ProductCodes: null - PublicDnsName: ec2-54-192-0-1.eu-west-1.compute.amazonaws.com - PublicIpAddress: 54.192.0.1 - RamdiskId: null - RootDeviceName: /dev/xvda - RootDeviceType: ebs - SecurityGroups: - - GroupId: sg-64565003 - GroupName: website-front-prod - - GroupId: sg-3543334e - GroupName: allow_metrics - - GroupId: sg-c1db70a6 - GroupName: allow_bastion - SourceDestCheck: true - SpotInstanceRequestId: null - SriovNetSupport: null - State: - Code: 16 - Name: running - StateReason: - Code: Client.UserInitiatedShutdown - Message: "Client.UserInitiatedShutdown: User initiated shutdown" - StateTransitionReason: "" - SubnetId: subnet-6b5a8f1d - Tags: - - Key: project - Value: website - - Key: client - Value: cycloid - - Key: Name - Value: CYCLOID-WEBSITE-FRONT1-EU-WE1-PROD - - Key: env - Value: prod - - Key: role - Value: front - VirtualizationType: hvm - VpcId: vpc-21fb3e45 - pagination: - next: "" - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - deprecated: true - /organizations/{organization_canonical}/infrastructures/aws/load_balancers_v1: - get: - tags: - - Organization Infrastructure - description: Get the list of load balancers (ELB) of the running AWS infrastructure - and associated with the AWS account (credential). The parameters allow to - select the scope of the request to one project of the organization. - operationId: getRunningInfraAWSLoadBalancersV1 - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: credential_canonical - in: query - description: A Credential canonical - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: project - in: query - description: A canonical of a project used for filtering. - schema: - $ref: '#/components/schemas/Canonical' - - name: page_size - in: query - description: The number of items at most which the response can have. - schema: - type: integer - format: uint32 - default: 1000 - - name: next - in: query - description: The token to retrieve the next page of results - schema: - minLength: 1 - type: string - - name: tag - in: query - description: "An amazon tag, represented as `key|value` and where `key` or\ - \ `value` could be omitted but not both, in order to select resources which\ - \ has a `key` or a `value` whatever is its counterpart. `key` nor `value`\ - \ can contains the `|` character. The parameter can be specified several\ - \ times in order to request resources which match with at least one of the\ - \ `tag|value` pairs" - allowEmptyValue: false - style: form - explode: true - schema: - uniqueItems: true - type: array - items: - maxLength: 383 - minLength: 2 - pattern: "^(?:(?:[\\w\\-+=.:/@ ]+\\|)|(?:\\|[\\w\\-+=.:/@ ]+)|(?:[\\w\\\ - -+=.:/@ ]+\\|[\\w\\-+=.:/@ ]+))$" - type: string - responses: - "200": - description: The list of AWS load balancers (ELB) which matches the scope - specified by the filter. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/AWSInfrastructureResourceLoadBalancerV1' - pagination: - $ref: '#/components/schemas/PaginationAWS' - example: - data: - - AvailabilityZones: - - eu-west-1b - - eu-west-1c - - eu-west-1a - BackendServerDescriptions: null - CanonicalHostedZoneName: WEBSITE-FRONT-PROD-1234567890.eu-west-1.elb.amazonaws.com - CanonicalHostedZoneNameID: Z32O12XQLNTSW2 - CreatedTime: 2016-09-02T08:07:35.52Z - DNSName: WEBSITE-FRONT-PROD-1234567890.eu-west-1.elb.amazonaws.com - HealthCheck: - HealthyThreshold: 2 - Interval: 30 - Target: HTTP:80/ - Timeout: 20 - UnhealthyThreshold: 2 - Instances: - - InstanceId: i-2000dcdd - - InstanceId: i-911b05af - ListenerDescriptions: - - Listener: - InstancePort: 80 - InstanceProtocol: HTTP - LoadBalancerPort: 80 - Protocol: HTTP - SSLCertificateId: null - PolicyNames: null - - Listener: - InstancePort: 80 - InstanceProtocol: HTTP - LoadBalancerPort: 443 - Protocol: HTTPS - SSLCertificateId: arn:aws:iam::123456789101:server-certificate/cloudfront/example - PolicyNames: - - website-front-prod - - ELBSecurityPolicy-2016-08 - LoadBalancerName: WEBSITE-FRONT-PROD - Policies: - AppCookieStickinessPolicies: null - LBCookieStickinessPolicies: - - CookieExpirationPeriod: 3600 - PolicyName: website-front-prod - OtherPolicies: - - ELBSecurityPolicy-2016-08 - Scheme: internet-facing - SecurityGroups: - - sg-9c494ffb - SourceSecurityGroup: - GroupName: website-elb-front-prod - OwnerAlias: "123456789101" - Subnets: - - subnet-550fac31 - - subnet-6b5a8f1d - - subnet-b95dbde1 - VPCId: vpc-21fb3e45 - Tags: - - Key: client - Value: cycloid - - AvailabilityZones: - - eu-west-1b - - eu-west-1c - - eu-west-1a - BackendServerDescriptions: null - CanonicalHostedZoneName: WEBSITE-FRONT-PREPROD-1234567890.eu-west-1.elb.amazonaws.com - CanonicalHostedZoneNameID: Z32O12XQLNTSW2 - CreatedTime: 2016-09-02T08:07:35.91Z - DNSName: WEBSITE-FRONT-PREPROD-1234567890.eu-west-1.elb.amazonaws.com - HealthCheck: - HealthyThreshold: 2 - Interval: 30 - Target: HTTP:80/ - Timeout: 20 - UnhealthyThreshold: 2 - Instances: - - InstanceId: i-ab00dc26 - - InstanceId: i-9ec9a815 - ListenerDescriptions: - - Listener: - InstancePort: 80 - InstanceProtocol: HTTP - LoadBalancerPort: 80 - Protocol: HTTP - SSLCertificateId: null - PolicyNames: null - - Listener: - InstancePort: 80 - InstanceProtocol: HTTP - LoadBalancerPort: 443 - Protocol: HTTPS - SSLCertificateId: arn:aws:iam::123456789101:server-certificate/cloudfront/example - PolicyNames: - - website-front-preprod - - ELBSecurityPolicy-2016-08 - LoadBalancerName: WEBSITE-FRONT-PREPROD - Policies: - AppCookieStickinessPolicies: null - LBCookieStickinessPolicies: - - CookieExpirationPeriod: 3600 - PolicyName: AWSConsole-LBCookieStickinessPolicy-WEBSITE-FRONT-PREPROD-1473338142315 - - CookieExpirationPeriod: 3600 - PolicyName: AWSConsole-LBCookieStickinessPolicy-WEBSITE-FRONT-PREPROD-1473337367977 - - CookieExpirationPeriod: 3600 - PolicyName: website-front-preprod - - CookieExpirationPeriod: 3600 - PolicyName: AWSConsole-LBCookieStickinessPolicy-WEBSITE-FRONT-PREPROD-1473337375883 - OtherPolicies: - - ELBSecurityPolicy-2016-08 - Scheme: internet-facing - SecurityGroups: - - sg-9b494ffc - SourceSecurityGroup: - GroupName: website-elb-front-preprod - OwnerAlias: "123456789101" - Subnets: - - subnet-550fac31 - - subnet-6b5a8f1d - - subnet-b95dbde1 - VPCId: vpc-21fb3e45 - Tags: [] - pagination: - next: "" - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - deprecated: true - /organizations/{organization_canonical}/infrastructures/aws/load_balancers_v2: - get: - tags: - - Organization Infrastructure - description: Get the list of load balancers (ELB v2 or a.k.a ALB) of the running - AWS infrastructure and associated with the AWS account (credential). The parameters - allow to select the scope of the request to one project of the organization. - operationId: getRunningInfraAWSLoadBalancersV2 - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: credential_canonical - in: query - description: A Credential canonical - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: project - in: query - description: A canonical of a project used for filtering. - schema: - $ref: '#/components/schemas/Canonical' - - name: page_size - in: query - description: The number of items at most which the response can have. - schema: - type: integer - format: uint32 - default: 1000 - - name: next - in: query - description: The token to retrieve the next page of results - schema: - minLength: 1 - type: string - - name: tag - in: query - description: "An amazon tag, represented as `key|value` and where `key` or\ - \ `value` could be omitted but not both, in order to select resources which\ - \ has a `key` or a `value` whatever is its counterpart. `key` nor `value`\ - \ can contains the `|` character. The parameter can be specified several\ - \ times in order to request resources which match with at least one of the\ - \ `tag|value` pairs" - allowEmptyValue: false - style: form - explode: true - schema: - uniqueItems: true - type: array - items: - maxLength: 383 - minLength: 2 - pattern: "^(?:(?:[\\w\\-+=.:/@ ]+\\|)|(?:\\|[\\w\\-+=.:/@ ]+)|(?:[\\w\\\ - -+=.:/@ ]+\\|[\\w\\-+=.:/@ ]+))$" - type: string - responses: - "200": - description: The list of AWS load balancers (ELB v2 or a.k.a ALB) which - matches the scope specified by the filter. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/AWSInfrastructureResourceLoadBalancerV2' - pagination: - $ref: '#/components/schemas/PaginationAWS' - example: - data: - - AvailabilityZones: - - LoadBalancerAddresses: null - SubnetId: subnet-225f3155 - ZoneName: eu-west-1b - - LoadBalancerAddresses: null - SubnetId: subnet-74f1712d - ZoneName: eu-west-1c - - LoadBalancerAddresses: null - SubnetId: subnet-cd793fa8 - ZoneName: eu-west-1a - CanonicalHostedZoneId: Z32O12XQLNTSW2 - CreatedTime: 2016-12-14T15:32:58.83Z - DNSName: alb-amazon-front-prex-1234567890.eu-west-1.elb.amazonaws.com - IpAddressType: ipv4 - LoadBalancerArn: arn:aws:elasticloadbalancing:eu-west-1:123456789101:loadbalancer/app/alb-amazon-front-prex/f81f78ed3ec382cf - LoadBalancerName: alb-amazon-front-prex - Scheme: internet-facing - SecurityGroups: - - sg-4c10e028 - State: - Code: active - Reason: null - Type: application - VpcId: vpc-315ed454 - Tags: [] - - AvailabilityZones: - - LoadBalancerAddresses: null - SubnetId: subnet-3ba8a072 - ZoneName: eu-west-1b - - LoadBalancerAddresses: null - SubnetId: subnet-45d1d622 - ZoneName: eu-west-1a - - LoadBalancerAddresses: null - SubnetId: subnet-6b034030 - ZoneName: eu-west-1c - CanonicalHostedZoneId: Z32O12XQLNTSW2 - CreatedTime: 2017-12-19T09:12:39.84Z - DNSName: amazon-apicache-staging-1234567890.eu-west-1.elb.amazonaws.com - IpAddressType: ipv4 - LoadBalancerArn: arn:aws:elasticloadbalancing:eu-west-1:123456789101:loadbalancer/app/amazon-apicache-staging/f6404ce290fc3434 - LoadBalancerName: amazon-apicache-staging - Scheme: internet-facing - SecurityGroups: - - sg-02510079 - State: - Code: active - Reason: null - Type: application - VpcId: vpc-d7d3cdb0 - Tags: - - Key: client - Value: cycloid - - AvailabilityZones: - - LoadBalancerAddresses: null - SubnetId: subnet-1fe9cf69 - ZoneName: eu-west-1b - - LoadBalancerAddresses: null - SubnetId: subnet-5e614d3a - ZoneName: eu-west-1a - - LoadBalancerAddresses: null - SubnetId: subnet-5ecca206 - ZoneName: eu-west-1c - CanonicalHostedZoneId: Z32O12XQLNTSW2 - CreatedTime: 2017-12-19T17:08:25.2Z - DNSName: amazon-apicache-dev-1234567890.eu-west-1.elb.amazonaws.com - IpAddressType: ipv4 - LoadBalancerArn: arn:aws:elasticloadbalancing:eu-west-1:123456789101:loadbalancer/app/amazon-apicache-dev/9f76887ef888cf4a - LoadBalancerName: amazon-apicache-dev - Scheme: internet-facing - SecurityGroups: - - sg-3980d042 - State: - Code: active - Reason: null - Type: application - VpcId: vpc-257d2d41 - Tags: [] - pagination: - next: "" - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - deprecated: true - /organizations/{organization_canonical}/infrastructures/aws/security_groups: - get: - tags: - - Organization Infrastructure - description: Get the list of security groups of the running AWS infrastructure - and associated with the AWS account (credential). The parameters allow to - select the scope of the request to one project of the organization. - operationId: getRunningInfraAWSSecurityGroups - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: credential_canonical - in: query - description: A Credential canonical - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: project - in: query - description: A canonical of a project used for filtering. - schema: - $ref: '#/components/schemas/Canonical' - - name: page_size - in: query - description: The number of items at most which the response can have. - schema: - type: integer - format: uint32 - default: 1000 - - name: next - in: query - description: The token to retrieve the next page of results - schema: - minLength: 1 - type: string - - name: tag - in: query - description: "An amazon tag, represented as `key|value` and where `key` or\ - \ `value` could be omitted but not both, in order to select resources which\ - \ has a `key` or a `value` whatever is its counterpart. `key` nor `value`\ - \ can contains the `|` character. The parameter can be specified several\ - \ times in order to request resources which match with at least one of the\ - \ `tag|value` pairs" - allowEmptyValue: false - style: form - explode: true - schema: - uniqueItems: true - type: array - items: - maxLength: 383 - minLength: 2 - pattern: "^(?:(?:[\\w\\-+=.:/@ ]+\\|)|(?:\\|[\\w\\-+=.:/@ ]+)|(?:[\\w\\\ - -+=.:/@ ]+\\|[\\w\\-+=.:/@ ]+))$" - type: string - responses: - "200": - description: The list of AWS security groups which matches the scope specified - by the filter. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/AWSInfrastructureResourceSecurityGroup' - pagination: - $ref: '#/components/schemas/PaginationAWS' - example: - data: - - Description: Allow metrics server to collect metrics - GroupId: sg-35c7b54e - GroupName: test_allow_metrics - IpPermissions: - - FromPort: 9100 - IpProtocol: tcp - IpRanges: null - Ipv6Ranges: null - PrefixListIds: null - ToPort: 9100 - UserIdGroupPairs: - - Description: null - GroupId: sg-cada71ad - GroupName: null - PeeringStatus: active - UserId: "123456789101" - VpcId: vpc-21fb3e45 - VpcPeeringConnectionId: pcx-ab75ccc2 - IpPermissionsEgress: - - FromPort: null - IpProtocol: "-1" - IpRanges: - - CidrIp: 0.0.0.0/0 - Description: null - Ipv6Ranges: null - PrefixListIds: null - ToPort: null - UserIdGroupPairs: null - OwnerId: "123456789101" - Tags: - - Key: project - Value: infra - - Key: Name - Value: allow-metrics - - Key: client - Value: cycloid - VpcId: vpc-0296ad66 - pagination: - next: "" - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - deprecated: true - /organizations/{organization_canonical}/infrastructures/aws/snapshots: - get: - tags: - - Organization Infrastructure - description: Get the list of snapshots of the running AWS infrastructure and - associated with the AWS account (credential). The parameters allow to select - the scope of the request to one project of the organization. - operationId: getRunningInfraAWSSnapshots - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: credential_canonical - in: query - description: A Credential canonical - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: project - in: query - description: A canonical of a project used for filtering. - schema: - $ref: '#/components/schemas/Canonical' - - name: page_size - in: query - description: The number of items at most which the response can have. - schema: - type: integer - format: uint32 - default: 1000 - - name: next - in: query - description: The token to retrieve the next page of results - schema: - minLength: 1 - type: string - - name: tag - in: query - description: "An amazon tag, represented as `key|value` and where `key` or\ - \ `value` could be omitted but not both, in order to select resources which\ - \ has a `key` or a `value` whatever is its counterpart. `key` nor `value`\ - \ can contains the `|` character. The parameter can be specified several\ - \ times in order to request resources which match with at least one of the\ - \ `tag|value` pairs" - allowEmptyValue: false - style: form - explode: true - schema: - uniqueItems: true - type: array - items: - maxLength: 383 - minLength: 2 - pattern: "^(?:(?:[\\w\\-+=.:/@ ]+\\|)|(?:\\|[\\w\\-+=.:/@ ]+)|(?:[\\w\\\ - -+=.:/@ ]+\\|[\\w\\-+=.:/@ ]+))$" - type: string - responses: - "200": - description: The list of AWS snapshots which matches the scope specified - by the filter. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/AWSInfrastructureResourceSnapshot' - pagination: - $ref: '#/components/schemas/PaginationAWS' - example: - data: - - DataEncryptionKeyId: null - Description: Created by CreateImage(i-7c6ea6bc) for ami-67affc14 - from vol-fadc527c - Encrypted: false - KmsKeyId: null - OwnerAlias: null - OwnerId: "123456789101" - Progress: 100% - SnapshotId: snap-f4c73492 - StartTime: 2016-11-17T16:17:18Z - State: completed - StateMessage: null - Tags: [] - VolumeId: vol-fadc527c - VolumeSize: 8 - - DataEncryptionKeyId: null - Description: Created by CreateImage(i-78a845ee) for ami-9d5a09ee - from vol-73d82bc3 - Encrypted: false - KmsKeyId: null - OwnerAlias: null - OwnerId: "123456789101" - Progress: 100% - SnapshotId: snap-94f92ff2 - StartTime: 2016-11-16T16:46:39Z - State: completed - StateMessage: null - Tags: [] - VolumeId: vol-73d82bc3 - VolumeSize: 8 - pagination: - next: "" - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - deprecated: true - /organizations/{organization_canonical}/infrastructures/aws/subnets: - get: - tags: - - Organization Infrastructure - description: Get the list of subnets of the running AWS infrastructure and associated - with the AWS account (credential). The parameters allow to select the scope - of the request to one project of the organization. - operationId: getRunningInfraAWSSubnets - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: credential_canonical - in: query - description: A Credential canonical - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: project - in: query - description: A canonical of a project used for filtering. - schema: - $ref: '#/components/schemas/Canonical' - - name: tag - in: query - description: "An amazon tag, represented as `key|value` and where `key` or\ - \ `value` could be omitted but not both, in order to select resources which\ - \ has a `key` or a `value` whatever is its counterpart. `key` nor `value`\ - \ can contains the `|` character. The parameter can be specified several\ - \ times in order to request resources which match with at least one of the\ - \ `tag|value` pairs" - allowEmptyValue: false - style: form - explode: true - schema: - uniqueItems: true - type: array - items: - maxLength: 383 - minLength: 2 - pattern: "^(?:(?:[\\w\\-+=.:/@ ]+\\|)|(?:\\|[\\w\\-+=.:/@ ]+)|(?:[\\w\\\ - -+=.:/@ ]+\\|[\\w\\-+=.:/@ ]+))$" - type: string - responses: - "200": - description: The list of AWS subnets instances which matches the scope specified - by the filter. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/AWSInfrastructureResourceSubnet' - description: "Although this response contains a collection of items,\ - \ it doesn't have pagination because the AWS SDK, to request the\ - \ subnets resources, doesn't provide any pagination mechanism." - example: - data: - - AssignIpv6AddressOnCreation: false - AvailabilityZone: eu-west-1b - AvailableIpAddressCount: 251 - CidrBlock: 10.50.3.0/24 - DefaultForAz: false - Ipv6CidrBlockAssociationSet: null - MapPublicIpOnLaunch: false - State: available - SubnetId: subnet-373f3241 - Tags: - - Key: client - Value: cycloid - - Key: Name - Value: private-subnet-eu-west-1b - VpcId: vpc-0296ad66 - - AssignIpv6AddressOnCreation: false - AvailabilityZone: eu-west-1a - AvailableIpAddressCount: 251 - CidrBlock: 10.50.1.0/24 - DefaultForAz: false - Ipv6CidrBlockAssociationSet: null - MapPublicIpOnLaunch: false - State: available - SubnetId: subnet-6e131c0a - Tags: - - Key: client - Value: cycloid - - Key: Name - Value: private-subnet-eu-west-1a - VpcId: vpc-0296ad66 - - AssignIpv6AddressOnCreation: false - AvailabilityZone: eu-west-1a - AvailableIpAddressCount: 251 - CidrBlock: 10.51.1.0/24 - DefaultForAz: false - Ipv6CidrBlockAssociationSet: null - MapPublicIpOnLaunch: false - State: available - SubnetId: subnet-76131c12 - Tags: - - Key: client - Value: cycloid - - Key: Name - Value: private-subnet-eu-west-1a - VpcId: vpc-0c96ad68 - - AssignIpv6AddressOnCreation: false - AvailabilityZone: eu-west-1c - AvailableIpAddressCount: 251 - CidrBlock: 10.42.0.0/24 - DefaultForAz: false - Ipv6CidrBlockAssociationSet: null - MapPublicIpOnLaunch: true - State: available - SubnetId: subnet-b95dbde1 - Tags: - - Key: client - Value: cycloid - - Key: Name - Value: public-subnet-eu-west-1c - VpcId: vpc-21fb3e45 - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - deprecated: true - /organizations/{organization_canonical}/infrastructures/aws/volumes: - get: - tags: - - Organization Infrastructure - description: Get the list of volumes of the running AWS infrastructure and associated - with the AWS account (credential). The parameters allow to select the scope - of the request to one project of the organization. - operationId: getRunningInfraAWSVolumes - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: credential_canonical - in: query - description: A Credential canonical - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: project - in: query - description: A canonical of a project used for filtering. - schema: - $ref: '#/components/schemas/Canonical' - - name: page_size - in: query - description: The number of items at most which the response can have. - schema: - type: integer - format: uint32 - default: 1000 - - name: next - in: query - description: The token to retrieve the next page of results - schema: - minLength: 1 - type: string - - name: tag - in: query - description: "An amazon tag, represented as `key|value` and where `key` or\ - \ `value` could be omitted but not both, in order to select resources which\ - \ has a `key` or a `value` whatever is its counterpart. `key` nor `value`\ - \ can contains the `|` character. The parameter can be specified several\ - \ times in order to request resources which match with at least one of the\ - \ `tag|value` pairs" - allowEmptyValue: false - style: form - explode: true - schema: - uniqueItems: true - type: array - items: - maxLength: 383 - minLength: 2 - pattern: "^(?:(?:[\\w\\-+=.:/@ ]+\\|)|(?:\\|[\\w\\-+=.:/@ ]+)|(?:[\\w\\\ - -+=.:/@ ]+\\|[\\w\\-+=.:/@ ]+))$" - type: string - responses: - "200": - description: The list of AWS volumes which matches the scope specified by - the filter. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/AWSInfrastructureResourceVolume' - pagination: - $ref: '#/components/schemas/PaginationAWS' - example: - data: - - Attachments: - - AttachTime: 2017-04-26T09:31:12Z - DeleteOnTermination: false - Device: /dev/xvdf - InstanceId: i-02e0848c23c9cf89d - State: attached - VolumeId: vol-0e976363ad5f4f523 - AvailabilityZone: eu-west-1c - CreateTime: 2017-04-26T09:30:51.516Z - Encrypted: false - Iops: null - KmsKeyId: null - Size: 10 - SnapshotId: "" - State: in-use - Tags: - - Key: Name - Value: cycloid-kubernetes-etcd2-eu-we1-prod - VolumeId: vol-0e976363ad5f4f523 - VolumeType: standard - - Attachments: - - AttachTime: 2016-09-02T08:07:12Z - DeleteOnTermination: true - Device: /dev/xvda - InstanceId: i-2000dcad - State: attached - VolumeId: vol-c888994f - AvailabilityZone: eu-west-1b - CreateTime: 2016-09-02T08:07:12.162Z - Encrypted: false - Iops: null - KmsKeyId: null - Size: 10 - SnapshotId: snap-de88bcce - State: in-use - Tags: [] - VolumeId: vol-c888994f - VolumeType: standard - - Attachments: - - AttachTime: 2016-09-02T08:07:12Z - DeleteOnTermination: true - Device: /dev/xvda - InstanceId: i-ab00dc26 - State: attached - VolumeId: vol-01889986 - AvailabilityZone: eu-west-1b - CreateTime: 2016-09-02T08:07:12.887Z - Encrypted: false - Iops: null - KmsKeyId: null - Size: 10 - SnapshotId: snap-de88bcce - State: in-use - Tags: [] - VolumeId: vol-01889986 - VolumeType: standard - pagination: - next: "" - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - deprecated: true - /organizations/{organization_canonical}/infrastructures/aws/vpcs: - get: - tags: - - Organization Infrastructure - description: Get the list of VPCs of the running AWS infrastructure and associated - with the AWS account (credential). The parameters allow to select the scope - of the request to one project of the organization. - operationId: getRunningInfraAWSVPCs - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: credential_canonical - in: query - description: A Credential canonical - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: project - in: query - description: A canonical of a project used for filtering. - schema: - $ref: '#/components/schemas/Canonical' - - name: tag - in: query - description: "An amazon tag, represented as `key|value` and where `key` or\ - \ `value` could be omitted but not both, in order to select resources which\ - \ has a `key` or a `value` whatever is its counterpart. `key` nor `value`\ - \ can contains the `|` character. The parameter can be specified several\ - \ times in order to request resources which match with at least one of the\ - \ `tag|value` pairs" - allowEmptyValue: false - style: form - explode: true - schema: - uniqueItems: true - type: array - items: - maxLength: 383 - minLength: 2 - pattern: "^(?:(?:[\\w\\-+=.:/@ ]+\\|)|(?:\\|[\\w\\-+=.:/@ ]+)|(?:[\\w\\\ - -+=.:/@ ]+\\|[\\w\\-+=.:/@ ]+))$" - type: string - responses: - "200": - description: The list of AWS VPCs which matches the scope specified by the - filter. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/AWSInfrastructureResourceVPC' - description: "Although this response contains a collection of items,\ - \ it doesn't have pagination because the AWS SDK, to request the\ - \ VPCs resources, doesn't provide any pagination mechanism." - example: - data: - - CidrBlock: 172.31.0.0/16 - CidrBlockAssociationSet: - - AssociationId: vpc-cidr-assoc-5bd62d32 - CidrBlock: 172.31.0.0/16 - CidrBlockState: - State: associated - StatusMessage: null - DhcpOptionsId: dopt-2e748c47 - InstanceTenancy: default - Ipv6CidrBlockAssociationSet: null - IsDefault: true - State: available - Tags: [] - VpcId: vpc-462bd42f - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - deprecated: true - /inventory: - get: - tags: - - Organization Inventory - description: Get the state - operationId: getState - parameters: - - name: jwt - in: query - description: Token with the information about state and credentials. - required: true - schema: - type: string - responses: - "200": - description: Get the state of an organization - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - type: object - properties: {} - description: The state of an organization - example: - data: - terraform version: 0.12.28 - version: 1 - serial: 1 - lineage: 2f9ab173-9fc7-965b-c17d-2e43868f14cf - resources: - - id: 1 - provider: aws - type: aws_instance - name: front - module: module.kapsule - instances: - attributes: - id: sg-0e74bbe876eba7e6f - ingress: - cidr_blocks: [] - description: "" - from_port: 80 - ipv6_cidr_blocks: [] - prefix_list_ids: [] - protocol: tcp - security_groups: - - sg-0cfe32960213dea69 - self: false - to_port: 80 - custom_attributes: - custom_att: sg-0e74bbe876eba7e6f - outputs: - alb_front_dns_name: - value: cycloidio-website-front-prod-119239496.eu-west-1.elb.amazonaws.com - type: string - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - security: [] - post: - tags: - - Organization Inventory - description: Create or update an Inventory State - operationId: createOrUpdateState - parameters: - - name: jwt - in: query - description: Token with the information about state and credentials. - required: true - schema: - type: string - requestBody: - description: The information of the Inventory new data - content: - application/json: - schema: - type: object - required: true - responses: - "204": - description: Success update - content: {} - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - "411": - description: The request has a body but it doesn't have a Content-Length - header. - content: {} - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - "423": - description: The operation couldn't be executed or completed because the - state is locked. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - security: [] - x-codegen-request-body-name: body - /organizations/{organization_canonical}/inventory: - get: - tags: - - Organization Inventory - description: List the inventory resources - operationId: listInventoryResources - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - responses: - "200": - description: List the Inventory Resources - content: - application/json: - schema: - required: - - data - - pagination - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/InventoryResource' - pagination: - $ref: '#/components/schemas/Pagination' - filters: - $ref: '#/components/schemas/Filters' - example: - data: - - id: 1 - provider: aws - type: aws_instance - name: front - module: module.kapsule - attributes: - id: sg-0e74bbe876eba7e6f - ingress: - cidr_blocks: [] - description: "" - from_port: 80 - ipv6_cidr_blocks: [] - prefix_list_ids: [] - protocol: tcp - security_groups: - - sg-0cfe32960213dea69 - self: false - to_port: 80 - custom_attributes: - custom_att: sg-0e74bbe876eba7e6f - filters: - types: - - aws_instance - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - /organizations/{organization_canonical}/inventory/resources: - post: - tags: - - Organization Inventory - description: Create an Inventory Resource - operationId: createInventoryResource - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - requestBody: - description: The information of the Inventory new resource data - content: - application/vnd.cycloid.io.v1+json: - schema: - $ref: '#/components/schemas/NewInventoryResource' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/NewInventoryResource' - required: true - responses: - "204": - description: Resource Created - content: {} - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - x-codegen-request-body-name: body - /organizations/{organization_canonical}/inventory/resource_types: - get: - tags: - - Organization Inventory - description: List Resource Types - operationId: listResourceTypes - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: resources_provider - in: query - description: Provider of Inventory Resource - required: true - schema: - type: string - responses: - "200": - description: Get Resource Types - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - type: array - items: - type: string - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - /organizations/{organization_canonical}/inventory/resource_labels: - get: - tags: - - Organization Inventory - description: List Resource Labels - operationId: listResourceLabels - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - responses: - "200": - description: Get Resource Labels - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/InventoryResourceLabel' - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - /inventory/lock: - post: - tags: - - Organization Inventory - description: Locks an Inventory State - operationId: lockState - parameters: - - name: jwt - in: query - description: Token with the information about state and credentials. - required: true - schema: - type: string - requestBody: - description: The information of the Inventory new data - content: - application/json: - schema: - $ref: '#/components/schemas/StateLock' - required: true - responses: - "200": - description: Lock ID of the Organization Inventory State - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/StateLock' - description: The Inventory from the Project's environment - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - "411": - description: The request has a body but it doesn't have a Content-Length - header. - content: {} - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - security: [] - x-codegen-request-body-name: body - delete: - tags: - - Organization Inventory - description: unlocks an State of Inventory - operationId: unlockState - parameters: - - name: jwt - in: query - description: Token with the information about state and credentials. - required: true - schema: - type: string - responses: - "204": - description: Unlocking the Status of an Organization Status Inventory Item - content: {} - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - security: [] - x-codegen-request-body-name: body - /organizations/{organization_canonical}/inventory/resources/{inventory_resource_id}: - get: - tags: - - Organization Inventory - description: Get the inventory resource by the ID - operationId: getInventoryResource - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: inventory_resource_id - in: path - description: Inventory Resource ID - required: true - schema: - type: integer - format: uint32 - responses: - "200": - description: Resource with the given ID - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/InventoryResource' - example: - id: 1 - provider: aws - type: aws_instance - name: front - module: module.kapsule - attributes: - id: sg-0e74bbe876eba7e6f - ingress: - cidr_blocks: [] - description: "" - from_port: 80 - ipv6_cidr_blocks: [] - prefix_list_ids: [] - protocol: tcp - security_groups: - - sg-0cfe32960213dea69 - self: false - to_port: 80 - custom_attributes: - custom_att: sg-0e74bbe876eba7e6f - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - put: - tags: - - Organization Inventory - description: Create an Inventory Resource - operationId: updateInventoryResource - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: inventory_resource_id - in: path - description: Inventory Resource ID - required: true - schema: - type: integer - format: uint32 - requestBody: - description: The information of the Inventory new data - content: - application/vnd.cycloid.io.v1+json: - schema: - $ref: '#/components/schemas/NewInventoryResource' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/NewInventoryResource' - required: true - responses: - "200": - description: The updated Inventory Resource - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/InventoryResource' - example: - data: - id: 1 - provider: aws - type: aws_instance - name: front - module: module.kapsule - attributes: - id: sg-0e74bbe876eba7e6f - ingress: - cidr_blocks: [] - description: "" - from_port: 80 - ipv6_cidr_blocks: [] - prefix_list_ids: [] - protocol: tcp - security_groups: - - sg-0cfe32960213dea69 - self: false - to_port: 80 - custom_attributes: - custom_att: sg-0e74bbe876eba7e6f - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - x-codegen-request-body-name: body - delete: - tags: - - Organization Inventory - description: Delete an Inventory Resource - operationId: deleteInventoryResource - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: inventory_resource_id - in: path - description: Inventory Resource ID - required: true - schema: - type: integer - format: uint32 - responses: - "204": - description: Inventory Resource deleted - content: {} - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - /inventory-plan: - get: - tags: - - Organization Inventory Plan - description: Get the terraform plan of the inventory. It uses '-' as the Concourse - resource that uses it automatically adds '-plan' on it's implementation to - push the plan. So to simplify the configuration we use '-' also. - operationId: getInventoryPlan - parameters: - - name: jwt - in: query - description: Token with the information about state and credentials. - required: true - schema: - type: string - responses: - "200": - description: Get the plan of an inventory - content: - application/json: - schema: - type: object - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - security: [] - post: - tags: - - Organization Inventory Plan - description: Create or replace an Inventory plan - operationId: setInventoryPlan - parameters: - - name: jwt - in: query - description: Token with the information about state and credentials. - required: true - schema: - type: string - requestBody: - description: The plan of the Inventory - content: - application/json: - schema: - type: object - required: false - responses: - "204": - description: Success update - content: {} - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - "411": - description: The request has a body but it doesn't have a Content-Length - header. - content: {} - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - security: [] - x-codegen-request-body-name: body - /organizations/{organization_canonical}/kpis: - get: - tags: - - Organization kpis - description: Get the list of configured organization KPIs - operationId: getKpis - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: project - in: query - description: A canonical of a project used for filtering. - schema: - $ref: '#/components/schemas/Canonical' - - name: environment - in: query - description: The environment canonical to use a query filter - schema: - $ref: '#/components/schemas/EnvironmentCanonical' - - name: begin - in: query - description: "The unix timestamp in seconds, which indicate the start of the\ - \ time range." - schema: - type: integer - format: uint64 - - name: end - in: query - description: "The unix timestamp in seconds, which indicate the end of the\ - \ time range." - schema: - type: integer - format: uint64 - - name: fetch_data - in: query - description: | - Flag to retrieve KPIs' data upon retrieving KPIs themselves - schema: - type: boolean - - name: page_index - in: query - description: The page number to request. The first page is 1. - schema: - type: integer - format: uint32 - default: 1 - - name: page_size - in: query - description: The number of items at most which the response can have. - schema: - type: integer - format: uint32 - default: 1000 - - name: favorite - in: query - description: | - Flag to retrieve favorite data from the members favorite list. - schema: - type: boolean - responses: - "200": - description: The list of the KPIs - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/KPI' - pagination: - $ref: '#/components/schemas/Pagination' - example: - data: - - id: 1 - name: My KPI 1 - canonical: my-kpi-1 - type: buildavgtime - widget: doughnut - description: This KPI shows the code coverage of your code on an - environment - project_canonical: project1 - environment_canonical: env1 - pipeline_name: pipeline1 - job_name: job1 - data_set: - - - date - - time - - - 1607904000 - - 39 - - - 1607817600 - - 140 - created_at: 1503224026 - updated_at: 1503224526 - error: Something went wrong while importing - favorite: true - - id: 2 - name: My KPI 2 - canonical: my-kpi-2 - type: timetorelease - widget: line - conf: - envs: - - staging - - preprod - - prod - description: This KPI shows how long time passes between deployment - on your different environment - project_canonical: project2 - data_set: - - - date - - env - - version - - duration - - final - - released - - - 1592100100 - - dev - - v1 - - 50 - - false - - true - - - 1592100280 - - dev - - v2 - - 95 - - false - - true - - - 1592100500 - - dev - - v3 - - 160 - - false - - true - - - 1592101700 - - dev - - v4 - - 0 - - false - - false - - - 1592100150 - - staging - - v1 - - 850 - - false - - true - - - 1592100375 - - staging - - v2 - - 625 - - false - - true - - - 1592100660 - - staging - - v3 - - 340 - - false - - true - - - 1592101000 - - prod - - v3 - - 0 - - true - - false - created_at: 1503227026 - updated_at: 1503227526 - error: "" - favorite: true - - id: 10 - name: My KPI 10 - canonical: my-kpi-10 - type: codecoverage - widget: doughnut - description: This KPI shows the code coverage of your code on an - environment - project_canonical: project2 - environment_canonical: env2 - pipeline_name: "" - job_name: "" - data_set: - - - date - - coverage - - - 1592100100 - - 13.4 - - - 1592100150 - - 28.0 - - - 1592100280 - - 85.2 - - - 1592100375 - - 83.9 - created_at: 1503225026 - updated_at: 1503225526 - error: "" - favorite: false - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - post: - tags: - - Organization kpis - description: Save information about the KPI - operationId: createKpi - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: project - in: query - description: A canonical of a project used for filtering. - schema: - $ref: '#/components/schemas/Canonical' - - name: environment - in: query - description: The environment canonical to use a query filter - schema: - $ref: '#/components/schemas/EnvironmentCanonical' - - name: begin - in: query - description: "The unix timestamp in seconds, which indicate the start of the\ - \ time range." - schema: - type: integer - format: uint64 - - name: end - in: query - description: "The unix timestamp in seconds, which indicate the end of the\ - \ time range." - schema: - type: integer - format: uint64 - - name: fetch_data - in: query - description: | - Flag to retrieve KPIs' data upon retrieving KPIs themselves - schema: - type: boolean - - name: page_index - in: query - description: The page number to request. The first page is 1. - schema: - type: integer - format: uint32 - default: 1 - - name: page_size - in: query - description: The number of items at most which the response can have. - schema: - type: integer - format: uint32 - default: 1000 - - name: favorite - in: query - description: | - Flag to retrieve favorite data from the members favorite list. - schema: - type: boolean - requestBody: - description: The information of the KPI - content: - application/vnd.cycloid.io.v1+json: - schema: - $ref: '#/components/schemas/NewKPI' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/NewKPI' - required: true - responses: - "200": - description: KPI has been configured - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/KPI' - example: - data: - id: 1 - name: My KPI 1 - canonical: my-kpi-1 - type: buildavgtime - widget: doughnut - description: This KPI shows the code coverage of your code on an - environment - project_canonical: project1 - environment_canonical: env1 - pipeline_name: pipeline1 - job_name: job1 - created_at: 1503224026 - updated_at: 1503224526 - error: Something went wrong while importing - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - x-codegen-request-body-name: body - /organizations/{organization_canonical}/kpis/{kpi_canonical}/favorites: - post: - tags: - - Organization kpis - description: Add a kpi in the user favorites list. - operationId: createKPIFavorite - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: kpi_canonical - in: path - description: A canonical of a kpi. - required: true - schema: - $ref: '#/components/schemas/Canonical' - responses: - "204": - description: The kpi has been added to user favorites list. - content: {} - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - delete: - tags: - - Organization kpis - description: Remove a kpi from the user favorites list. - operationId: deleteKPIFavorite - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: kpi_canonical - in: path - description: A canonical of a kpi. - required: true - schema: - $ref: '#/components/schemas/Canonical' - responses: - "204": - description: The kpi has been removed from user favorites list. - content: {} - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - /organizations/{organization_canonical}/kpis/{kpi_canonical}: - get: - tags: - - Organization kpis - description: Get the KPI - operationId: getKpi - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: kpi_canonical - in: path - description: A canonical of a kpi. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: begin - in: query - description: "The unix timestamp in seconds, which indicate the start of the\ - \ time range." - schema: - type: integer - format: uint64 - - name: end - in: query - description: "The unix timestamp in seconds, which indicate the end of the\ - \ time range." - schema: - type: integer - format: uint64 - - name: fetch_data - in: query - description: | - Flag to retrieve KPIs' data upon retrieving KPIs themselves - schema: - type: boolean - responses: - "200": - description: The KPI - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/KPI' - example: - data: - id: 1 - name: My KPI 1 - canonical: my-kpi-1 - type: buildavgtime - widget: doughnut - description: This KPI shows the code coverage of your code on an - environment - project_canonical: project1 - environment_canonical: env1 - pipeline_name: pipeline1 - job_name: job1 - data_set: - - - date - - time - - - 1607904000 - - 39 - - - 1607817600 - - 140 - created_at: 1503224026 - updated_at: 1503224526 - error: "" - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - put: - tags: - - Organization kpis - description: Update a KPI - operationId: updateKpi - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: kpi_canonical - in: path - description: A canonical of a kpi. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: begin - in: query - description: "The unix timestamp in seconds, which indicate the start of the\ - \ time range." - schema: - type: integer - format: uint64 - - name: end - in: query - description: "The unix timestamp in seconds, which indicate the end of the\ - \ time range." - schema: - type: integer - format: uint64 - - name: fetch_data - in: query - description: | - Flag to retrieve KPIs' data upon retrieving KPIs themselves - schema: - type: boolean - requestBody: - description: The information of the KPI new data - content: - application/vnd.cycloid.io.v1+json: - schema: - $ref: '#/components/schemas/NewKPI' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/NewKPI' - required: true - responses: - "200": - description: Success update - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/KPI' - example: - data: - id: 11 - name: My KPI 11 - canonical: my-kpi-11 - type: buildavgtime - widget: doughnut - description: This KPI shows the code coverage of your code on an - environment - project_canonical: project1 - environment_canonical: env1 - pipeline_name: pipeline1 - job_name: job1 - created_at: 1503224026 - updated_at: 1503224526 - error: "" - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - "411": - description: The request has a body but it doesn't have a Content-Length - header. - content: {} - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - x-codegen-request-body-name: body - delete: - tags: - - Organization kpis - description: delete a KPI - operationId: deleteKpi - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: kpi_canonical - in: path - description: A canonical of a kpi. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: begin - in: query - description: "The unix timestamp in seconds, which indicate the start of the\ - \ time range." - schema: - type: integer - format: uint64 - - name: end - in: query - description: "The unix timestamp in seconds, which indicate the end of the\ - \ time range." - schema: - type: integer - format: uint64 - - name: fetch_data - in: query - description: | - Flag to retrieve KPIs' data upon retrieving KPIs themselves - schema: - type: boolean - responses: - "204": - description: Organization's KPI has been deleted - content: {} - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - /organizations/{organization_canonical}/licence: - get: - tags: - - Organization licence - description: Get currently active licence. - operationId: getLicence - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - responses: - "200": - description: Currently active licence entity. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/Licence' - example: - data: - key: eyJhbGciOiJSUzUxMiIsInR5cCI6IkpXVCJ9.eyJjb21wYW55X25hbWUiOiJjeWNsb2lkIiwiZW1haWxfYWRkcmVzcyI6ImN5Y2xvaWRAb2ZmaWNlLmlvIiwibWVtYmVyc19jb3VudCI6NSwiZXhwaXJlc19hdCI6IjIwMjItMTItMTNUMDA6MDA6MDBaIiwidmVyc2lvbiI6IjEiLCJhdWQiOiJjeWNsb2lkIiwianRpIjoiNGE1ZTQzMDYtNmUwMy00MjFmLTllM2ItY2VlZmJhZjMyNDk0IiwiaWF0IjoxNjExMzE2NjUwLCJpc3MiOiJodHRwczovL2N5Y2xvaWQuaW8iLCJuYmYiOjE2MTEzMTY2NTAsInN1YiI6Imh0dHBzOi8vY3ljbG9pZC5pbyJ9.Z_DvpqprGU0uW26vkpzdTYvyC4imiw0AY1FJMmpeEyVkfYlRI2Q1MWcFZPxMaTafi1TAjwwJOxdY1fxnghMfKng4-4dEtPhcsJQy3nC_ODyACtxDpZMRRaIb8pzBN7AqFvBWWPVKAdqfYXI7IZMX5jjIfaFHtzzs5OnXwQ9USl4 - created_at: 1503225026 - updated_at: 1503225026 - company_name: Cycloid - email_address: email@cycloid.io - expires_at: 1503226026 - members_count: 5 - version: "1" - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - security: [] - post: - tags: - - Organization licence - description: "Activate Cycloid's licence. If another licence already exists,\ - \ it will be overwritten" - operationId: activateLicence - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - requestBody: - description: The licence key - content: - application/vnd.cycloid.io.v1+json: - schema: - $ref: '#/components/schemas/NewLicence' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/NewLicence' - required: true - responses: - "204": - description: The product has been activated - content: {} - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - "411": - description: The request has a body but it doesn't have a Content-Length - header. - content: {} - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - security: [] - x-codegen-request-body-name: body - /organizations/{organization_canonical}/projects/{project_canonical}/environments/{environment_canonical}/logs/sources: - get: - tags: - - Organization Logs - description: Get the list of sources configured for the specified project's - environment of the organization. - operationId: getProjEnvLogSources - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: project_canonical - in: path - description: A canonical of a project. - required: true - schema: - $ref: '#/components/schemas/ProjectCanonical' - - name: environment_canonical - in: path - description: The environment canonical to use as part of a path - required: true - schema: - $ref: '#/components/schemas/EnvironmentCanonical' - responses: - "200": - description: The list of sources related to the project's environment. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/LogSource' - description: The list of log sources. - example: - data: - - id: access.log - - id: exception.log - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - ? /organizations/{organization_canonical}/projects/{project_canonical}/environments/{environment_canonical}/logs/sources/{log_source_id} - : get: - tags: - - Organization Logs - description: |- - Get log's entries information of the specified log stream stream which is associated to the project's environment of the specified organization. The log's entries to request can be filtered using the unix timestamp ranges and/or the query as follow - When unix timestamps are defined, they are converted to the specific - query language used by the configured underlying log system (e.g AWS - Cloud Watch, ElasticSearch, etc.) and appended to the query value - respecting the syntax but not checking the content of the query, which - means that if the whole query must be enclosed by curly brackets hence - the query value is enclosed on them, the time range filter will be - added inside not just appended at the end, because otherwise it would - cause wrong syntax; on the other hand, not checking the content means - that if the query contains a timerange filter, the whole query will - contain both and the result will be the one returned by on the - underlying log system, being an error or not. - - When no time range are defined, then the query is used as it has been - send, there is not modification on the query to send to the underlying - log system, hence the result will be the one returned by it. - - If none of the filters (timestamp range and query) are sent, then - a 422 status code will be responded. - - Some constraints are established by the underlying log system, so - depending which one has been configured some parameters may be - required or not. - operationId: getProjEnvLogEntries - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: project_canonical - in: path - description: A canonical of a project. - required: true - schema: - $ref: '#/components/schemas/ProjectCanonical' - - name: environment_canonical - in: path - description: The environment canonical to use as part of a path - required: true - schema: - $ref: '#/components/schemas/EnvironmentCanonical' - - name: log_source_id - in: path - description: "A unique identifier, which group log's entries under under a\ - \ context, established by the source." - required: true - schema: - minLength: 1 - type: string - - name: begin - in: query - description: "The unix timestamp in milliseconds, which indicate the start\ - \ of the time range." - schema: - type: integer - format: uint64 - - name: end - in: query - description: "The unix timestamp in milliseconds, which indicate the end of\ - \ the time range." - schema: - type: integer - format: uint64 - - name: query - in: query - description: A free text which the content depends of the context of the API - endpoint. Can be a free text value or a complete query expressed of supported - query language. - schema: - minLength: 1 - type: string - responses: - "200": - description: The list of log's entries which are comprehended by the begin - and end timestamps and are selected by the optional query. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/LogSourceEntry' - description: The list of log lines - example: - data: - - timestamp: "0123456789" - host: theowlhost - message: "178.154.171.21 - - [21/Sep/2017:02:51:22 +0200] \"GET\ - \ /1663-large_default/tienda-de-campana-basica-para-2-personas.jpg\ - \ HTTP/1.0\" 302 773 \"-\" \"Mozilla/5.0 (compatible; YandexBot/3.0;\ - \ +http://yandex.com/bots)\"" - - timestamp: "0123456795" - host: mymon - message: "141.8.132.28 - - [21/Sep/2017:02:51:27 +0200] \"GET /1663-large_default/tienda-de-campana-basica-para-2-personas.jpg/\ - \ HTTP/1.0\" 302 731 \"-\" \"Mozilla/5.0 (compatible; YandexBot/3.0;\ - \ +http://yandex.com/bots)\"" - - timestamp: "0123456800" - host: theowlhost - message: "46.229.168.65 - - [21/Sep/2017:02:51:28 +0200] \"GET /mosquitera-enrollable-lateral.html\ - \ HTTP/1.0\" 200 25313 \"-\" \"Mozilla/5.0 (compatible; SemrushBot/1.2~bl;\ - \ +http://www.semrush.com/bot.html)\"" - - timestamp: "0123456805" - host: mymon - message: "141.10.132.56 - - [21/Sep/2017:02:51:56 +0200] \"GET /1663-large_default/tienda-de-campana-basica-para-2-personas.jpg/\ - \ HTTP/1.0\" 302 731 \"-\" \"Mozilla/5.0 (compatible; YandexBot/3.0;\ - \ +http://yandex.com/bots)\"" - - timestamp: "0123456810" - host: burrowing - message: "46.229.168.65 - - [21/Sep/2017:02:52:03 +0200] \"GET /mosquitera-enrollable-lateral.html\ - \ HTTP/1.0\" 200 25313 \"-\" \"Mozilla/5.0 (compatible; SemrushBot/1.2~bl;\ - \ +http://www.semrush.com/bot.html)\"" - - timestamp: "0123456823" - host: theowlhost - message: "141.10.132.56 - - [21/Sep/2017:02:52:23 +0200] \"GET /1663-large_default/tienda-de-campana-basica-para-2-personas.jpg/\ - \ HTTP/1.0\" 302 731 \"-\" \"Mozilla/5.0 (compatible; YandexBot/3.0;\ - \ +http://yandex.com/bots)\"" - - timestamp: "0123456834" - host: elf - message: "123.229.145.65 - - [21/Sep/2017:02:52:49 +0200] \"GET\ - \ /mosquitera-enrollable-lateral.html HTTP/1.0\" 200 25313 \"\ - -\" \"Mozilla/5.0 (compatible; SemrushBot/1.2~bl; +http://www.semrush.com/bot.html)\"" - - timestamp: "0123456834" - host: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaelf - message: "123.229.145.65 - - [21/Sep/2017:02:52:49 +0200] \"GET\ - \ /mosquitera-enrollable-lateral.html HTTP/1.0\" 200 25313 \"\ - -\" \"Mozilla/5.0 (compatible; SemrushBot/1.2~bl; +http://www.semrush.com/bot.html)\"" - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - /organizations/{organization_canonical}/pipelines: - get: - tags: - - Organization pipelines - description: Get all the pipelines that the authenticated user has access to. - operationId: getPipelines - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: concourse_pipeline_name - in: query - description: A pipeline name - schema: - maxLength: 100 - minLength: 1 - pattern: "^[a-z0-9]+[a-z0-9\\-_.]+[a-z0-9]+$" - type: string - - name: project_canonical - in: query - description: A list of projects' canonical to filter from - style: form - explode: false - schema: - type: array - items: - type: string - - name: environment_canonical - in: query - description: A list of environments' canonical to filter from - style: form - explode: false - schema: - type: array - items: - type: string - - name: statuses - in: query - description: "List of statuses that you want to filter a pipeline/job with.\ - \ Pipeline can be either paused or unpaused, but jobs can be started, pending,\ - \ succeeded, failed, errored, aborted. So if any of a pipeline's job has\ - \ one of the given status, the associated pipeline will be included in the\ - \ response." - allowEmptyValue: true - style: form - explode: true - schema: - uniqueItems: true - type: array - items: - type: string - enum: - - aborted - - errored - - failed - - paused - - pending - - started - - succeeded - - name: page_index - in: query - description: The page number to request. The first page is 1. - schema: - type: integer - format: uint32 - default: 1 - - name: page_size - in: query - description: The number of items at most which the response can have. - schema: - type: integer - format: uint32 - default: 1000 - responses: - "200": - description: List of all the pipelines which authenticated user has access - to. - content: - application/json: - schema: - required: - - data - - pagination - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/Pipeline' - pagination: - $ref: '#/components/schemas/Pagination' - example: - data: - - id: 154 - name: approval-resource - paused: true - archived: false - public: false - groups: [] - team_name: cycloid-products - environment: dev - use_case: approval-of-resources - created_at: 1500135021 - updated_at: 1500135021 - project: - id: 5 - canonical: proj-1 - name: project1 - created_at: 1500135021 - updated_at: 1500135021 - service_catalog_ref: cycloidio:stack-magento - - id: 196 - name: frontend - paused: false - public: false - archived: false - environment: dev - use_case: frontend - groups: - - name: pull-requests - jobs: - - pr-code-validate - resources: [] - - name: preprod - jobs: - - preprod-code-validate - - preprod-build-deploy - resources: [] - team_name: cycloid-products - created_at: 1500135021 - updated_at: 1500135021 - project: - id: 5 - canonical: proj-1 - name: project1 - created_at: 1500135021 - updated_at: 1500135021 - service_catalog_ref: cycloidio:stack-magento - - id: 252 - name: http-api - use_case: ci-cd-pipelines - environment: dev - paused: false - public: false - archived: false - groups: - - name: all - jobs: - - code-validation-develop - - code-validation-pull-requests - resources: [] - - name: develop - jobs: - - code-validation-develop - resources: [] - - name: pull-requests - jobs: - - code-validation-pull-requests - resources: [] - team_name: cycloid-products - created_at: 1500135021 - updated_at: 1500135021 - project: - id: 5 - canonical: proj-1 - name: project1 - created_at: 1500135021 - updated_at: 1500135021 - service_catalog_ref: cycloidio:stack-magento - pagination: - index: 1 - size: 10 - total: 5 - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - /organizations/{organization_canonical}/pipelines/{inpath_pipeline_name}/diff: - put: - tags: - - Organization pipelines - description: The diff between the provided pipeline configuration and the pipeline - from the given name. - operationId: diffPipeline - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: inpath_pipeline_name - in: path - description: A pipeline name - required: true - schema: - maxLength: 100 - minLength: 1 - pattern: "^[a-z0-9]+[a-z0-9\\-_.]+[a-z0-9]+$" - type: string - requestBody: - description: The pipeline configuration - content: - application/vnd.cycloid.io.v1+json: - schema: - $ref: '#/components/schemas/UpdatePipeline' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/UpdatePipeline' - required: true - responses: - "200": - description: The diff between the provided pipeline configuration and the - existing pipeline has been done. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/PipelineDiffs' - example: - data: - jobs: - - name: foo - label: job - status: added - diff: - - delta_type: "+" - line: '- terraform-plan-api' - groups: - - name: bar - label: group - status: removed - diff: - - delta_type: "-" - line: '- test-develop' - resources: - - name: bli - label: resource - status: changed - diff: - - delta_type: "-" - line: " - key: foo" - - delta_type: "+" - line: " - key: bar" - resource_types: - - name: glop - label: resource type - status: removed - diff: - - delta_type: "-" - line: "name: terraform" - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - "411": - description: The request has a body but it doesn't have a Content-Length - header. - content: {} - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - x-codegen-request-body-name: body - /organizations/{organization_canonical}/pipelines/{inpath_pipeline_name}/synced: - get: - tags: - - Organization pipelines - description: Will check if the pipeline from the database and the one specified - in the stack are synced or not - operationId: syncedPipeline - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: inpath_pipeline_name - in: path - description: A pipeline name - required: true - schema: - maxLength: 100 - minLength: 1 - pattern: "^[a-z0-9]+[a-z0-9\\-_.]+[a-z0-9]+$" - type: string - responses: - "200": - description: The diff between the stack's pipeline and the existing pipeline - if any exists. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/PipelineStatus' - example: - data: - synced: out_of_sync - error: "" - diffs: - jobs: - - name: foo - label: job - status: added - diff: - - delta_type: "+" - line: '- terraform-plan-api' - groups: - - name: bar - label: group - status: removed - diff: - - delta_type: "-" - line: '- test-develop' - resources: - - name: bli - label: resource - status: changed - diff: - - delta_type: "-" - line: " - key: foo" - - delta_type: "+" - line: " - key: bar" - resource_types: - - name: glop - label: resource type - status: removed - diff: - - delta_type: "-" - line: "name: terraform" - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - "411": - description: The request has a body but it doesn't have a Content-Length - header. - content: {} - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - /organizations/{organization_canonical}/projects/{project_canonical}/pipelines: - get: - tags: - - Organization pipelines - description: Get the pipelines that the authenticated user has access to. - operationId: getProjectPipelines - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: project_canonical - in: path - description: A canonical of a project. - required: true - schema: - $ref: '#/components/schemas/ProjectCanonical' - - name: page_index - in: query - description: The page number to request. The first page is 1. - schema: - type: integer - format: uint32 - default: 1 - - name: page_size - in: query - description: The number of items at most which the response can have. - schema: - type: integer - format: uint32 - default: 1000 - responses: - "200": - description: List of the pipelines which authenticated user has access to. - content: - application/json: - schema: - required: - - data - - pagination - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/Pipeline' - pagination: - $ref: '#/components/schemas/Pagination' - example: - data: - - id: 154 - name: approval-resource - paused: true - public: false - groups: [] - team_name: cycloid-products - environment: dev - use_case: approval-resource - created_at: 1500135021 - updated_at: 1500135021 - status: succeeded - started: true - project: - id: 5 - canonical: proj-1 - name: project1 - created_at: 1500135021 - updated_at: 1500135021 - service_catalog_ref: cycloidio:stack-magento - - id: 196 - name: frontend - paused: false - public: false - environment: dev - use_case: frontend-use-case - created_at: 1500135021 - updated_at: 1500135021 - status: failed - started: true - groups: - - name: pull-requests - jobs: - - pr-code-validate - resources: [] - - name: preprod - jobs: - - preprod-code-validate - - preprod-build-deploy - resources: [] - team_name: cycloid-products - project: - id: 5 - canonical: proj-1 - name: project1 - created_at: 1500135021 - updated_at: 1500135021 - service_catalog_ref: cycloidio:stack-magento - - id: 238 - name: ci-website - paused: true - environment: dev - public: false - use_case: website-use-case - created_at: 1500135021 - updated_at: 1500135021 - status: pending - started: true - groups: - - name: all - jobs: - - code-validation-preprod - - build-container-preprod - - tag-container-image-preprod - - clean-container-preprod - resources: [] - - name: preprod - jobs: - - code-validation-preprod - - build-container-preprod - - tag-container-image-preprod - - clean-container-preprod - resources: [] - team_name: cycloid-products - project: - id: 5 - canonical: proj-1 - name: project1 - created_at: 1500135021 - updated_at: 1500135021 - service_catalog_ref: cycloidio:stack-magento - pagination: - index: 1 - size: 10 - total: 5 - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - post: - tags: - - Organization pipelines - description: Create a new pipeline - operationId: createPipeline - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: project_canonical - in: path - description: A canonical of a project. - required: true - schema: - $ref: '#/components/schemas/ProjectCanonical' - requestBody: - description: The configuration of the pipeline to create. - content: - application/vnd.cycloid.io.v1+json: - schema: - $ref: '#/components/schemas/NewPipeline' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/NewPipeline' - required: true - responses: - "200": - description: The information of the pipeline which has been created. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/Pipeline' - example: - data: - id: 238 - name: ci-website - paused: true - public: false - environment: dev - use_case: website-ci-use-case - created_at: 1500135021 - updated_at: 1500135021 - status: pending - started: false - groups: - - name: all - jobs: - - code-validation-preprod - - build-container-preprod - - tag-container-image-preprod - - clean-container-preprod - resources: [] - - name: preprod - jobs: - - code-validation-preprod - - build-container-preprod - - tag-container-image-preprod - - clean-container-preprod - resources: [] - team_name: cycloid-products - project: - id: 5 - canonical: proj-1 - name: project1 - created_at: 1500135021 - updated_at: 1500135021 - service_catalog_ref: cycloidio:stack-magento - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - "411": - description: The request has a body but it doesn't have a Content-Length - header. - content: {} - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - x-codegen-request-body-name: body - /organizations/{organization_canonical}/projects/{project_canonical}/pipelines/{inpath_pipeline_name}: - get: - tags: - - Organization pipelines - description: Get the configuration of the pipeline. - operationId: getPipeline - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: project_canonical - in: path - description: A canonical of a project. - required: true - schema: - $ref: '#/components/schemas/ProjectCanonical' - - name: inpath_pipeline_name - in: path - description: A pipeline name - required: true - schema: - maxLength: 100 - minLength: 1 - pattern: "^[a-z0-9]+[a-z0-9\\-_.]+[a-z0-9]+$" - type: string - responses: - "200": - description: The information of the pipeline which has the specified name. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/Pipeline' - example: - data: - id: 238 - name: ci-website - paused: true - public: false - environment: dev - use_case: website-ci-use-case - created_at: 1500135021 - updated_at: 1500135021 - groups: - - name: all - jobs: - - code-validation-preprod - - build-container-preprod - - tag-container-image-preprod - - clean-container-preprod - resources: [] - - name: preprod - jobs: - - code-validation-preprod - - build-container-preprod - - tag-container-image-preprod - - clean-container-preprod - resources: [] - team_name: cycloid-products - project: - id: 5 - canonical: proj-1 - name: project1 - created_at: 1500135021 - updated_at: 1500135021 - service_catalog_ref: cycloidio:stack-magento - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - put: - tags: - - Organization pipelines - description: Update the configuration of the given pipeline name. - operationId: updatePipeline - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: project_canonical - in: path - description: A canonical of a project. - required: true - schema: - $ref: '#/components/schemas/ProjectCanonical' - - name: inpath_pipeline_name - in: path - description: A pipeline name - required: true - schema: - maxLength: 100 - minLength: 1 - pattern: "^[a-z0-9]+[a-z0-9\\-_.]+[a-z0-9]+$" - type: string - requestBody: - description: The pipeline configuration - content: - application/vnd.cycloid.io.v1+json: - schema: - $ref: '#/components/schemas/UpdatePipeline' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/UpdatePipeline' - required: true - responses: - "200": - description: The information of the pipeline which has been updated. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/Pipeline' - example: - data: - id: 238 - name: ci-website - paused: true - public: false - environment: dev - use_case: website-ci-use-case - groups: - - name: all - jobs: - - code-validation-preprod - - build-container-preprod - - tag-container-image-preprod - - clean-container-preprod - resources: [] - - name: preprod - jobs: - - code-validation-preprod - - build-container-preprod - - tag-container-image-preprod - - clean-container-preprod - resources: [] - team_name: cycloid-products - created_at: 1500135021 - updated_at: 1500135021 - project: - id: 5 - canonical: proj-1 - name: project1 - created_at: 1500135021 - updated_at: 1500135021 - service_catalog_ref: cycloidio:stack-magento - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - "411": - description: The request has a body but it doesn't have a Content-Length - header. - content: {} - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - x-codegen-request-body-name: body - delete: - tags: - - Organization pipelines - description: Delete the pipeline. - operationId: deletePipeline - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: project_canonical - in: path - description: A canonical of a project. - required: true - schema: - $ref: '#/components/schemas/ProjectCanonical' - - name: inpath_pipeline_name - in: path - description: A pipeline name - required: true - schema: - maxLength: 100 - minLength: 1 - pattern: "^[a-z0-9]+[a-z0-9\\-_.]+[a-z0-9]+$" - type: string - responses: - "204": - description: Pipeline has been deleted. - content: {} - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - /organizations/{organization_canonical}/policies: - get: - tags: - - Policies - description: Get the list of Policies - operationId: getPolicies - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: page_index - in: query - description: The page number to request. The first page is 1. - schema: - type: integer - format: uint32 - default: 1 - - name: page_size - in: query - description: The number of items at most which the response can have. - schema: - type: integer - format: uint32 - default: 1000 - responses: - "200": - description: List of Policies - content: - application/json: - schema: - required: - - data - - pagination - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/Policy' - pagination: - $ref: '#/components/schemas/Pagination' - example: - data: - - id: 1 - code: organization:delete - description: Grant the access to delete the organization - - id: 2 - code: organization:edit - description: Grant the access to edit the organization - - id: 20 - code: team:create - description: Grant the access to create teams - - id: 21 - code: team:read - description: Grant the access to read the teams of an organization - - id: 22 - code: team:edit - description: Grant the access to edit teams - - id: 23 - code: team:delete - description: Grant the access to delete teams - - id: 40 - code: member:invite - description: Grant the access to invite members to join to the organization - - id: 41 - code: member:remove - description: Grant the access to remove members - - id: 42 - code: member:read - description: Grant the access to read the members - - id: 60 - code: project:read - entities: - - "10" - - "32" - description: Grant the access to projects - - id: 61 - code: project:create - entities: [] - description: Grant the access to create a project in the organization - - id: 62 - code: project:edit - entities: [] - description: Grant the access to edit projects - pagination: - index: 1 - size: 10 - total: 2 - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - ? /organizations/{organization_canonical}/projects/{project_canonical}/pipelines/{inpath_pipeline_name}/jobs/{job_name}/builds/{build_id}/abort - : put: - tags: - - Organization pipelines jobs build - description: Abort a specific build. - operationId: abortBuild - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: project_canonical - in: path - description: A canonical of a project. - required: true - schema: - $ref: '#/components/schemas/ProjectCanonical' - - name: inpath_pipeline_name - in: path - description: A pipeline name - required: true - schema: - maxLength: 100 - minLength: 1 - pattern: "^[a-z0-9]+[a-z0-9\\-_.]+[a-z0-9]+$" - type: string - - name: job_name - in: path - description: A job name - required: true - schema: - maxLength: 150 - minLength: 1 - type: string - - name: build_id - in: path - description: A build id - required: true - schema: - maxLength: 20 - minLength: 1 - pattern: "^[0-9]+$" - type: string - responses: - "204": - description: The build has been aborted. - content: {} - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - /organizations/{organization_canonical}/projects/{project_canonical}/pipelines/{inpath_pipeline_name}/jobs/{job_name}/builds: - get: - tags: - - Organization pipelines jobs build - description: Get the pipeline job's builds that the authenticated user has access - to. - operationId: getBuilds - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: project_canonical - in: path - description: A canonical of a project. - required: true - schema: - $ref: '#/components/schemas/ProjectCanonical' - - name: inpath_pipeline_name - in: path - description: A pipeline name - required: true - schema: - maxLength: 100 - minLength: 1 - pattern: "^[a-z0-9]+[a-z0-9\\-_.]+[a-z0-9]+$" - type: string - - name: job_name - in: path - description: A job name - required: true - schema: - maxLength: 150 - minLength: 1 - type: string - - name: concourse_page_since - in: query - description: The time after which we should look for entities to return. - schema: - type: integer - format: uint64 - default: 0 - - name: concourse_page_until - in: query - description: The time before which we should look for entities to return. - schema: - type: integer - format: uint64 - default: 0 - - name: concourse_page_limit - in: query - description: The number of items at most which the response can have. - schema: - type: integer - format: uint64 - default: 10 - responses: - "200": - description: List the pipeline job's builds which authenticated user has - access to. - content: - application/json: - schema: - required: - - data - - pagination_concourse - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/Build' - pagination_concourse: - $ref: '#/components/schemas/PaginationConcourse' - example: - data: - - id: 11406 - team_name: cycloid-products - name: "82" - status: failed - job_name: build-container-preprod - api_url: /api/v1/builds/11406 - pipeline_name: ci-website - pipeline_id: 3 - start_time: 1504185240 - end_time: 1504185344 - reap_time: 0 - - id: 11404 - team_name: cycloid-products - name: "81" - status: failed - job_name: build-container-preprod - api_url: /api/v1/builds/11404 - pipeline_name: ci-website - pipeline_id: 3 - start_time: 1504184979 - end_time: 1504185078 - reap_time: 0 - - id: 11402 - team_name: cycloid-products - name: "80" - status: failed - job_name: build-container-preprod - api_url: /api/v1/builds/11402 - pipeline_name: ci-website - pipeline_id: 3 - start_time: 1504184038 - end_time: 1504184140 - reap_time: 0 - pagination_concourse: - next: - since: 11402 - until: 0 - limit: 3 - previous: - since: 11508 - until: 0 - limit: 3 - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - post: - tags: - - Organization pipelines jobs build - description: Create a new build for the job - operationId: createBuild - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: project_canonical - in: path - description: A canonical of a project. - required: true - schema: - $ref: '#/components/schemas/ProjectCanonical' - - name: inpath_pipeline_name - in: path - description: A pipeline name - required: true - schema: - maxLength: 100 - minLength: 1 - pattern: "^[a-z0-9]+[a-z0-9\\-_.]+[a-z0-9]+$" - type: string - - name: job_name - in: path - description: A job name - required: true - schema: - maxLength: 150 - minLength: 1 - type: string - responses: - "200": - description: Create a new build for the pipeline's job and returns its details - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/Build' - example: - data: - id: 11406 - team_name: cycloid-products - name: "82" - status: failed - job_name: build-container-preprod - api_url: /api/v1/builds/11406 - pipeline_name: ci-website - pipeline_id: 3 - start_time: 1504185240 - end_time: 1504185344 - reap_time: 0 - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - /organizations/{organization_canonical}/projects/{project_canonical}/pipelines/{inpath_pipeline_name}/builds/{build_id}/events: - get: - tags: - - Organization pipelines build - description: Get the events of a build. - operationId: getBuildEvents - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: project_canonical - in: path - description: A canonical of a project. - required: true - schema: - $ref: '#/components/schemas/ProjectCanonical' - - name: inpath_pipeline_name - in: path - description: A pipeline name - required: true - schema: - maxLength: 100 - minLength: 1 - pattern: "^[a-z0-9]+[a-z0-9\\-_.]+[a-z0-9]+$" - type: string - - name: build_id - in: path - description: A build id - required: true - schema: - maxLength: 20 - minLength: 1 - pattern: "^[0-9]+$" - type: string - responses: - "200": - description: Stream is starting - headers: - Content-Type: - schema: - type: string - enum: - - text/event-stream - content: {} - x-produces: - - text/event-stream - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - text/event-stream: - schema: - $ref: '#/components/schemas/ErrorPayload' - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - text/event-stream: - schema: - $ref: '#/components/schemas/ErrorPayload' - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - text/event-stream: - schema: - $ref: '#/components/schemas/ErrorPayload' - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - ? /organizations/{organization_canonical}/projects/{project_canonical}/pipelines/{inpath_pipeline_name}/jobs/{job_name}/builds/{build_id}/plan - : get: - tags: - - Organization pipelines jobs build - description: Get the plan of the build. - operationId: getBuildPlan - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: project_canonical - in: path - description: A canonical of a project. - required: true - schema: - $ref: '#/components/schemas/ProjectCanonical' - - name: inpath_pipeline_name - in: path - description: A pipeline name - required: true - schema: - maxLength: 100 - minLength: 1 - pattern: "^[a-z0-9]+[a-z0-9\\-_.]+[a-z0-9]+$" - type: string - - name: job_name - in: path - description: A job name - required: true - schema: - maxLength: 150 - minLength: 1 - type: string - - name: build_id - in: path - description: A build id - required: true - schema: - maxLength: 20 - minLength: 1 - pattern: "^[0-9]+$" - type: string - responses: - "200": - description: The information of the build's plan which has the specified - id. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/PublicPlan' - example: - data: - schema: exec.v2 - plan: - id: 59b6ed1d - do: - - id: 59b6ed1b - get: - type: git - name: concourse - resource: concourse - version: - ref: 37a827fb8056bfb88848823f49ae8efe9515e2ea - - id: 59b6ed1c - task: - name: build - privileged: false - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - ? /organizations/{organization_canonical}/projects/{project_canonical}/pipelines/{inpath_pipeline_name}/jobs/{job_name}/builds/{build_id}/preparation - : get: - tags: - - Organization pipelines jobs build - description: Get the preparation of the Build. - operationId: getBuildPreparation - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: project_canonical - in: path - description: A canonical of a project. - required: true - schema: - $ref: '#/components/schemas/ProjectCanonical' - - name: inpath_pipeline_name - in: path - description: A pipeline name - required: true - schema: - maxLength: 100 - minLength: 1 - pattern: "^[a-z0-9]+[a-z0-9\\-_.]+[a-z0-9]+$" - type: string - - name: job_name - in: path - description: A job name - required: true - schema: - maxLength: 150 - minLength: 1 - type: string - - name: build_id - in: path - description: A build id - required: true - schema: - maxLength: 20 - minLength: 1 - pattern: "^[0-9]+$" - type: string - responses: - "200": - description: Return the Preparation - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/Preparation' - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - ? /organizations/{organization_canonical}/projects/{project_canonical}/pipelines/{inpath_pipeline_name}/jobs/{job_name}/builds/{build_id} - : get: - tags: - - Organization pipelines jobs build - description: Get the information of the build. - operationId: getBuild - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: project_canonical - in: path - description: A canonical of a project. - required: true - schema: - $ref: '#/components/schemas/ProjectCanonical' - - name: inpath_pipeline_name - in: path - description: A pipeline name - required: true - schema: - maxLength: 100 - minLength: 1 - pattern: "^[a-z0-9]+[a-z0-9\\-_.]+[a-z0-9]+$" - type: string - - name: job_name - in: path - description: A job name - required: true - schema: - maxLength: 150 - minLength: 1 - type: string - - name: build_id - in: path - description: A build id - required: true - schema: - maxLength: 20 - minLength: 1 - pattern: "^[0-9]+$" - type: string - responses: - "200": - description: The information of the build which has the specified id. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/Build' - example: - data: - id: 11406 - team_name: cycloid-products - name: "82" - status: failed - job_name: build-container-preprod - api_url: /api/v1/builds/11406 - pipeline_name: ci-website - pipeline_id: 3 - start_time: 1504185240 - end_time: 1504185344 - reap_time: 0 - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - post: - tags: - - Organization pipelines jobs build - description: Reruns a specific build. - operationId: rerunBuild - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: project_canonical - in: path - description: A canonical of a project. - required: true - schema: - $ref: '#/components/schemas/ProjectCanonical' - - name: inpath_pipeline_name - in: path - description: A pipeline name - required: true - schema: - maxLength: 100 - minLength: 1 - pattern: "^[a-z0-9]+[a-z0-9\\-_.]+[a-z0-9]+$" - type: string - - name: job_name - in: path - description: A job name - required: true - schema: - maxLength: 150 - minLength: 1 - type: string - - name: build_id - in: path - description: A build id - required: true - schema: - maxLength: 20 - minLength: 1 - pattern: "^[0-9]+$" - type: string - responses: - "200": - description: Returns the new build created from the specified build ID. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/Build' - example: - data: - id: 11406 - team_name: cycloid-products - name: "82.1" - status: waiting - job_name: build-container-preprod - api_url: /api/v1/builds/11406 - pipeline_name: ci-website - pipeline_id: 3 - start_time: 1504185240 - end_time: 1504185344 - reap_time: 0 - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - ? /organizations/{organization_canonical}/projects/{project_canonical}/pipelines/{inpath_pipeline_name}/jobs/{job_name}/builds/{build_id}/resources - : get: - tags: - - Organization pipelines jobs build - description: Get the resources of the build. - operationId: getBuildResources - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: project_canonical - in: path - description: A canonical of a project. - required: true - schema: - $ref: '#/components/schemas/ProjectCanonical' - - name: inpath_pipeline_name - in: path - description: A pipeline name - required: true - schema: - maxLength: 100 - minLength: 1 - pattern: "^[a-z0-9]+[a-z0-9\\-_.]+[a-z0-9]+$" - type: string - - name: job_name - in: path - description: A job name - required: true - schema: - maxLength: 150 - minLength: 1 - type: string - - name: build_id - in: path - description: A build id - required: true - schema: - maxLength: 20 - minLength: 1 - pattern: "^[0-9]+$" - type: string - - name: page_index - in: query - description: The page number to request. The first page is 1. - schema: - type: integer - format: uint32 - default: 1 - - name: page_size - in: query - description: The number of items at most which the response can have. - schema: - type: integer - format: uint32 - default: 1000 - responses: - "200": - description: The resources of the build's which has the specified id. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/BuildInputsOutputs' - example: - data: - inputs: - - name: git-website-preprod - resource: git-website-preprod - type: git - version: - ref: 59ecb8ec73d7c4ea4c3827440ed1429268cf4c94 - metadata: - - name: commit - value: 59ecb8ec73d7c4ea4c3827440ed1429268cf4c94 - - name: author - value: Adrien Jerphagnon - - name: author_date - value: 2017-07-19 15:23:46 +0200 - - name: committer - value: Adrien Jerphagnon - - name: committer_date - value: 2017-07-19 15:23:46 +0200 - - name: branch - value: master - - name: message - value: Up assets version - pipeline_id: 238 - first_occurrence: true - - name: vault-preprod - resource: vault-preprod - type: vault - version: - date: "1500470493" - metadata: [] - pipeline_id: 238 - first_occurrence: true - - name: vault-preprod - resource: vault-preprod - type: vault - version: - date: "1500470521" - metadata: [] - pipeline_id: 238 - first_occurrence: true - outputs: - - id: 0 - name: website preprod - type: "" - metadata: [] - resource: ecr-website-preprod - version: - digest: sha256:58c226280d56dcfe5f7f1de2cce6f22eac36fa95ce8e1b9c604523c4a50d7401 - enabled: false - - id: 0 - name: slack alert preprod - type: "" - metadata: [] - resource: slack-alert-preprod - version: - timestamp: "1500470978" - enabled: false - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - /organizations/{organization_canonical}/projects/{project_canonical}/pipelines/{inpath_pipeline_name}/config: - get: - tags: - - Organization pipelines - description: Get the YAML configuration of the pipeline. - operationId: getPipelineConfig - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: project_canonical - in: path - description: A canonical of a project. - required: true - schema: - $ref: '#/components/schemas/ProjectCanonical' - - name: inpath_pipeline_name - in: path - description: A pipeline name - required: true - schema: - maxLength: 100 - minLength: 1 - pattern: "^[a-z0-9]+[a-z0-9\\-_.]+[a-z0-9]+$" - type: string - responses: - "200": - description: This endpoint returns the config of the pipeline. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - type: string - example: - data: "{\"resources\":[{\"name\":\"5m\",\"type\":\"time\",\"source\"\ - :{\"interval\":\"5m\"}}],\"jobs\":[{\"name\":\"job-hello-world\"\ - ,\"public\":true,\"plan\":[{\"get\":\"5m\",\"trigger\":true},{\"\ - task\":\"hello-world\",\"privileged\":true,\"config\":{\"platform\"\ - :\"linux\",\"image_resource\":{\"type\":\"docker-image\",\"source\"\ - :{\"repository\":\"busybox\"}},\"run\":{\"path\":\"echo\",\"args\"\ - :[\"hello world\"]}}}]}]}" - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - /organizations/{organization_canonical}/projects/{project_canonical}/pipelines/{inpath_pipeline_name}/jobs: - get: - tags: - - Organization pipelines jobs - description: Get the jobs of the pipeline that the authenticated user has access - to. - operationId: getJobs - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: project_canonical - in: path - description: A canonical of a project. - required: true - schema: - $ref: '#/components/schemas/ProjectCanonical' - - name: inpath_pipeline_name - in: path - description: A pipeline name - required: true - schema: - maxLength: 100 - minLength: 1 - pattern: "^[a-z0-9]+[a-z0-9\\-_.]+[a-z0-9]+$" - type: string - - name: page_index - in: query - description: The page number to request. The first page is 1. - schema: - type: integer - format: uint32 - default: 1 - - name: page_size - in: query - description: The number of items at most which the response can have. - schema: - type: integer - format: uint32 - default: 1000 - responses: - "200": - description: List of the pipeline's jobs which authenticated user has access - to. - content: - application/json: - schema: - required: - - data - - pagination - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/Job' - pagination: - $ref: '#/components/schemas/Pagination' - example: - data: - - id: 1273 - name: code-validation-preprod - paused: false - pipeline_id: 1 - pipeline_name: fake-pipeline-0 - first_logged_build_id: 0 - disable_manual_trigger: false - next_build: - id: 11214 - team_name: ieijcu - name: some-build - status: running - pipeline_id: 1 - pipeline_name: fake-pipeline-0 - finished_build: - id: 11405 - team_name: cycloid-products - name: "33" - status: succeeded - job_name: code-validation-preprod - start_time: 1504185102 - end_time: 1504185134 - reap_time: 0 - pipeline_id: 1 - pipeline_name: fake-pipeline-0 - inputs: - - name: git-website-preprod - resource: git-website-preprod - passed: [] - trigger: true - tags: [] - outputs: [] - groups: - - all - - preprod - - id: 1274 - name: build-container-preprod - paused: false - first_logged_build_id: 0 - disable_manual_trigger: false - pipeline_id: 1 - pipeline_name: fake-pipeline-0 - next_build: - id: 11214 - team_name: ieijcu - name: some-build - status: running - pipeline_id: 1 - pipeline_name: fake-pipeline-0 - finished_build: - id: 11406 - team_name: cycloid-products - name: "82" - status: failed - job_name: build-container-preprod - start_time: 1504185240 - end_time: 1504185344 - reap_time: 0 - pipeline_id: 1 - pipeline_name: fake-pipeline-0 - inputs: - - name: git-website-preprod - resource: git-website-preprod - passed: - - code-validation-preprod - trigger: true - tags: [] - - name: vault-preprod - resource: vault-preprod - passed: [] - trigger: false - tags: [] - outputs: - - name: slack-alert-preprod - resource: slack-alert-preprod - - name: slack-alert-preprod - resource: slack-alert-preprod - - name: ecr-website-preprod - resource: ecr-website-preprod - groups: - - all - - preprod - - id: 1275 - name: tag-container-image-preprod - paused: false - first_logged_build_id: 0 - disable_manual_trigger: false - pipeline_id: 1 - pipeline_name: fake-pipeline-0 - next_build: - id: 11214 - team_name: ieijcu - name: some-build - status: running - pipeline_id: 1 - pipeline_name: fake-pipeline-0 - finished_build: - id: 10793 - team_name: cycloid-products - name: "16" - status: succeeded - job_name: tag-container-image-preprod - start_time: 1500471046 - end_time: 1500471211 - reap_time: 0 - pipeline_id: 1 - pipeline_name: fake-pipeline-0 - inputs: - - name: git-website-preprod - resource: git-website-preprod - passed: - - build-container-preprod - trigger: false - tags: [] - - name: ecr-website-preprod - resource: ecr-website-preprod - passed: - - build-container-preprod - trigger: true - tags: [] - outputs: - - name: ecr-website-preprod - resource: ecr-website-preprod - groups: - - all - - preprod - - id: 1276 - name: clean-container-preprod - paused: false - first_logged_build_id: 0 - disable_manual_trigger: false - pipeline_id: 1 - pipeline_name: fake-pipeline-0 - next_build: - id: 11214 - team_name: ieijcu - name: some-build - status: running - pipeline_id: 1 - pipeline_name: fake-pipeline-0 - finished_build: - id: 10794 - team_name: cycloid-products - name: "13" - status: succeeded - job_name: clean-container-preprod - start_time: 1500471262 - end_time: 1500471305 - reap_time: 0 - pipeline_id: 1 - pipeline_name: fake-pipeline-0 - inputs: - - name: ecr-website-preprod - resource: ecr-website-preprod - passed: - - tag-container-image-preprod - trigger: true - tags: [] - outputs: [] - groups: - - all - - preprod - pagination: - index: 1 - size: 10 - total: 4 - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - /organizations/{organization_canonical}/projects/{project_canonical}/pipelines/{inpath_pipeline_name}/jobs/{job_name}/pause: - put: - tags: - - Organization pipelines jobs - description: Pause a job - operationId: pauseJob - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: project_canonical - in: path - description: A canonical of a project. - required: true - schema: - $ref: '#/components/schemas/ProjectCanonical' - - name: inpath_pipeline_name - in: path - description: A pipeline name - required: true - schema: - maxLength: 100 - minLength: 1 - pattern: "^[a-z0-9]+[a-z0-9\\-_.]+[a-z0-9]+$" - type: string - - name: job_name - in: path - description: A job name - required: true - schema: - maxLength: 150 - minLength: 1 - type: string - responses: - "204": - description: Job has been paused. - content: {} - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - /organizations/{organization_canonical}/projects/{project_canonical}/pipelines/{inpath_pipeline_name}/jobs/{job_name}: - get: - tags: - - Organization pipelines jobs - description: Get the information of the job. - operationId: getJob - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: project_canonical - in: path - description: A canonical of a project. - required: true - schema: - $ref: '#/components/schemas/ProjectCanonical' - - name: inpath_pipeline_name - in: path - description: A pipeline name - required: true - schema: - maxLength: 100 - minLength: 1 - pattern: "^[a-z0-9]+[a-z0-9\\-_.]+[a-z0-9]+$" - type: string - - name: job_name - in: path - description: A job name - required: true - schema: - maxLength: 150 - minLength: 1 - type: string - responses: - "200": - description: The configuration of the job which has the specified name. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/Job' - example: - data: - id: 1274 - name: build-container-preprod - paused: false - first_logged_build_id: 0 - disable_manual_trigger: false - next_build: - id: 11214 - team_name: ieijcu - name: some-build - status: running - api_url: /api/v1/builds/11408 - finished_build: - id: 11406 - team_name: cycloid-products - name: "82" - status: failed - job_name: build-container-preprod - api_url: /api/v1/builds/11406 - pipeline_name: ci-website - start_time: 1504185240 - end_time: 1504185344 - reap_time: 0 - inputs: - - name: git-website-preprod - resource: git-website-preprod - passed: - - code-validation-preprod - trigger: true - tags: [] - - name: vault-preprod - resource: vault-preprod - passed: [] - trigger: false - tags: [] - outputs: - - name: slack-alert-preprod - resource: slack-alert-preprod - - name: slack-alert-preprod - resource: slack-alert-preprod - - name: ecr-website-preprod - resource: ecr-website-preprod - groups: - - all - - preprod - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - ? /organizations/{organization_canonical}/projects/{project_canonical}/pipelines/{inpath_pipeline_name}/jobs/{job_name}/tasks/{step_name}/cache - : delete: - tags: - - Organization pipelines jobs - description: Clear task cache - operationId: clearTaskCache - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: project_canonical - in: path - description: A canonical of a project. - required: true - schema: - $ref: '#/components/schemas/ProjectCanonical' - - name: inpath_pipeline_name - in: path - description: A pipeline name - required: true - schema: - maxLength: 100 - minLength: 1 - pattern: "^[a-z0-9]+[a-z0-9\\-_.]+[a-z0-9]+$" - type: string - - name: job_name - in: path - description: A job name - required: true - schema: - maxLength: 150 - minLength: 1 - type: string - - name: step_name - in: path - description: A step name from a job task - required: true - schema: - maxLength: 150 - minLength: 1 - type: string - - name: cache_path - in: query - description: The cache path to use as part of a clearTaskCache request - schema: - type: string - responses: - "200": - description: Cache has been cleared. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/ClearTaskCache' - example: - data: - caches_removed: 42 - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - /organizations/{organization_canonical}/projects/{project_canonical}/pipelines/{inpath_pipeline_name}/jobs/{job_name}/unpause: - put: - tags: - - Organization pipelines jobs - description: Unpause a job - operationId: unpauseJob - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: project_canonical - in: path - description: A canonical of a project. - required: true - schema: - $ref: '#/components/schemas/ProjectCanonical' - - name: inpath_pipeline_name - in: path - description: A pipeline name - required: true - schema: - maxLength: 100 - minLength: 1 - pattern: "^[a-z0-9]+[a-z0-9\\-_.]+[a-z0-9]+$" - type: string - - name: job_name - in: path - description: A job name - required: true - schema: - maxLength: 150 - minLength: 1 - type: string - responses: - "204": - description: Job has been unpause. - content: {} - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - /organizations/{organization_canonical}/projects/{project_canonical}/pipelines/{inpath_pipeline_name}/pause: - put: - tags: - - Organization pipelines - description: Pause a pipeline - operationId: pausePipeline - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: project_canonical - in: path - description: A canonical of a project. - required: true - schema: - $ref: '#/components/schemas/ProjectCanonical' - - name: inpath_pipeline_name - in: path - description: A pipeline name - required: true - schema: - maxLength: 100 - minLength: 1 - pattern: "^[a-z0-9]+[a-z0-9\\-_.]+[a-z0-9]+$" - type: string - responses: - "204": - description: Pipeline has been paused. - content: {} - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - /organizations/{organization_canonical}/projects/{project_canonical}/pipelines/{inpath_pipeline_name}/rename: - put: - tags: - - Organization pipelines - description: Rename a pipeline - operationId: renamePipeline - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: project_canonical - in: path - description: A canonical of a project. - required: true - schema: - $ref: '#/components/schemas/ProjectCanonical' - - name: inpath_pipeline_name - in: path - description: A pipeline name - required: true - schema: - maxLength: 100 - minLength: 1 - pattern: "^[a-z0-9]+[a-z0-9\\-_.]+[a-z0-9]+$" - type: string - - name: pipeline_name - in: query - description: A pipeline name - required: true - schema: - maxLength: 100 - minLength: 1 - pattern: "^[a-z0-9]+[a-z0-9\\-_.]+[a-z0-9]+$" - type: string - responses: - "204": - description: Pipeline has been renamed. - content: {} - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - ? /organizations/{organization_canonical}/projects/{project_canonical}/pipelines/{inpath_pipeline_name}/resources/{resource_name}/check - : post: - tags: - - Organization pipelines resources - description: Trigger a check for a specified resource. - operationId: checkResource - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: project_canonical - in: path - description: A canonical of a project. - required: true - schema: - $ref: '#/components/schemas/ProjectCanonical' - - name: inpath_pipeline_name - in: path - description: A pipeline name - required: true - schema: - maxLength: 100 - minLength: 1 - pattern: "^[a-z0-9]+[a-z0-9\\-_.]+[a-z0-9]+$" - type: string - - name: resource_name - in: path - description: A resource name - required: true - schema: - maxLength: 150 - minLength: 1 - type: string - requestBody: - description: Check for new version from the specified version. - content: - application/vnd.cycloid.io.v1+json: - schema: - $ref: '#/components/schemas/CIVersion' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/CIVersion' - required: false - responses: - "200": - description: The resource checked result. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/Build' - example: - data: - api_url: /api/v1/builds/62 - id: 62 - name: check - pipeline_id: 1 - pipeline_name: pipeline1 - resource_name: 5m - start_time: 1630426278 - status: started - team_name: 1359872e-88fe-47a7-8c55-923108823a55 - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - x-codegen-request-body-name: body - /organizations/{organization_canonical}/projects/{project_canonical}/pipelines/{inpath_pipeline_name}/resources: - get: - tags: - - Organization pipelines resources - description: Get the resources of the pipeline. - operationId: getPipelineResources - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: project_canonical - in: path - description: A canonical of a project. - required: true - schema: - $ref: '#/components/schemas/ProjectCanonical' - - name: inpath_pipeline_name - in: path - description: A pipeline name - required: true - schema: - maxLength: 100 - minLength: 1 - pattern: "^[a-z0-9]+[a-z0-9\\-_.]+[a-z0-9]+$" - type: string - - name: page_index - in: query - description: The page number to request. The first page is 1. - schema: - type: integer - format: uint32 - default: 1 - - name: page_size - in: query - description: The number of items at most which the response can have. - schema: - type: integer - format: uint32 - default: 1000 - responses: - "200": - description: The resources of the pipeline's which has the specified name. - content: - application/json: - schema: - required: - - data - - pagination - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/Resource' - pagination: - $ref: '#/components/schemas/Pagination' - example: - data: - - name: ecr-website-preprod - type: docker-image - groups: [] - paused: false - failing_to_check: false - check_error: "" - - name: git-website-preprod - type: git - groups: [] - paused: false - failing_to_check: false - check_error: "" - - name: vault-preprod - type: vault - groups: [] - paused: false - failing_to_check: false - check_error: "" - - name: slack-alert-preprod - type: slack-notification - groups: [] - paused: false - failing_to_check: false - check_error: "" - pagination: - index: 1 - size: 10 - total: 4 - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - ? /organizations/{organization_canonical}/projects/{project_canonical}/pipelines/{inpath_pipeline_name}/resources/{resource_name}/pin_comment - : put: - tags: - - Organization pipelines resources - description: Set pin comment on a specified resource - operationId: resourceSetPinComment - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: project_canonical - in: path - description: A canonical of a project. - required: true - schema: - $ref: '#/components/schemas/ProjectCanonical' - - name: inpath_pipeline_name - in: path - description: A pipeline name - required: true - schema: - maxLength: 100 - minLength: 1 - pattern: "^[a-z0-9]+[a-z0-9\\-_.]+[a-z0-9]+$" - type: string - - name: resource_name - in: path - description: A resource name - required: true - schema: - maxLength: 150 - minLength: 1 - type: string - requestBody: - description: Specify the comment to put on a pinned resource. - content: - application/vnd.cycloid.io.v1+json: - schema: - $ref: '#/components/schemas/PinComment' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PinComment' - required: true - responses: - "204": - description: Resource pin has been commented - content: {} - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - x-codegen-request-body-name: body - /organizations/{organization_canonical}/projects/{project_canonical}/pipelines/{inpath_pipeline_name}/resources/{resource_name}: - get: - tags: - - Organization pipelines resources - description: Get a specific resource of the pipeline. - operationId: getResource - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: project_canonical - in: path - description: A canonical of a project. - required: true - schema: - $ref: '#/components/schemas/ProjectCanonical' - - name: inpath_pipeline_name - in: path - description: A pipeline name - required: true - schema: - maxLength: 100 - minLength: 1 - pattern: "^[a-z0-9]+[a-z0-9\\-_.]+[a-z0-9]+$" - type: string - - name: resource_name - in: path - description: A resource name - required: true - schema: - maxLength: 150 - minLength: 1 - type: string - responses: - "200": - description: The resource of the pipeline's which has the specified name. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/Resource' - example: - data: - name: ecr-website-preprod - type: docker-image - groups: [] - paused: false - failing_to_check: false - check_error: "" - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - ? /organizations/{organization_canonical}/projects/{project_canonical}/pipelines/{inpath_pipeline_name}/resources/{resource_name}/unpin - : put: - tags: - - Organization pipelines resources - description: Unpin a specified resource - operationId: unpinResource - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: project_canonical - in: path - description: A canonical of a project. - required: true - schema: - $ref: '#/components/schemas/ProjectCanonical' - - name: inpath_pipeline_name - in: path - description: A pipeline name - required: true - schema: - maxLength: 100 - minLength: 1 - pattern: "^[a-z0-9]+[a-z0-9\\-_.]+[a-z0-9]+$" - type: string - - name: resource_name - in: path - description: A resource name - required: true - schema: - maxLength: 150 - minLength: 1 - type: string - responses: - "204": - description: Resource has been unpinned - content: {} - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - ? /organizations/{organization_canonical}/projects/{project_canonical}/pipelines/{inpath_pipeline_name}/resources/{resource_name}/versions - : get: - tags: - - Organization pipelines resources - description: Get versions of a pipeline's resource - operationId: getResourceVersions - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: project_canonical - in: path - description: A canonical of a project. - required: true - schema: - $ref: '#/components/schemas/ProjectCanonical' - - name: inpath_pipeline_name - in: path - description: A pipeline name - required: true - schema: - maxLength: 100 - minLength: 1 - pattern: "^[a-z0-9]+[a-z0-9\\-_.]+[a-z0-9]+$" - type: string - - name: resource_name - in: path - description: A resource name - required: true - schema: - maxLength: 150 - minLength: 1 - type: string - - name: filter_version - in: query - description: A version of a resource - style: form - explode: false - schema: - type: array - items: - type: string - - name: concourse_page_since - in: query - description: The time after which we should look for entities to return. - schema: - type: integer - format: uint64 - default: 0 - - name: concourse_page_until - in: query - description: The time before which we should look for entities to return. - schema: - type: integer - format: uint64 - default: 0 - - name: concourse_page_limit - in: query - description: The number of items at most which the response can have. - schema: - type: integer - format: uint64 - default: 10 - responses: - "200": - description: Get versions of a specified resource. - content: - application/json: - schema: - required: - - data - - pagination_concourse - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/ResourceVersion' - pagination_concourse: - $ref: '#/components/schemas/PaginationConcourse' - example: - data: - - id: 45 - type: time - resource: time-resource - enabled: true - version: - time: 2018-06-07T16:12:02.037357287Z - - id: 46 - type: time - resource: time-resource - enabled: true - version: - time: 2018-06-07T16:13:02.037357287Z - pagination_concourse: - next: - since: 11402 - until: 0 - limit: 3 - previous: - since: 11896 - until: 0 - limit: 3 - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - ? /organizations/{organization_canonical}/projects/{project_canonical}/pipelines/{inpath_pipeline_name}/resources/{resource_name}/versions/{resource_version_id}/disable - : put: - tags: - - Organization pipelines resources - description: Disable a specified version of a resource - operationId: disableResourceVersion - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: project_canonical - in: path - description: A canonical of a project. - required: true - schema: - $ref: '#/components/schemas/ProjectCanonical' - - name: inpath_pipeline_name - in: path - description: A pipeline name - required: true - schema: - maxLength: 100 - minLength: 1 - pattern: "^[a-z0-9]+[a-z0-9\\-_.]+[a-z0-9]+$" - type: string - - name: resource_name - in: path - description: A resource name - required: true - schema: - maxLength: 150 - minLength: 1 - type: string - - name: resource_version_id - in: path - description: A resource's version id - required: true - schema: - type: integer - format: uint64 - responses: - "204": - description: Resource version have been disabled - content: {} - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - ? /organizations/{organization_canonical}/projects/{project_canonical}/pipelines/{inpath_pipeline_name}/resources/{resource_name}/versions/{resource_version_id}/enable - : put: - tags: - - Organization pipelines resources - description: Enable a specified version of a resource - operationId: enableResourceVersion - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: project_canonical - in: path - description: A canonical of a project. - required: true - schema: - $ref: '#/components/schemas/ProjectCanonical' - - name: inpath_pipeline_name - in: path - description: A pipeline name - required: true - schema: - maxLength: 100 - minLength: 1 - pattern: "^[a-z0-9]+[a-z0-9\\-_.]+[a-z0-9]+$" - type: string - - name: resource_name - in: path - description: A resource name - required: true - schema: - maxLength: 150 - minLength: 1 - type: string - - name: resource_version_id - in: path - description: A resource's version id - required: true - schema: - type: integer - format: uint64 - responses: - "204": - description: Resource version have been enabled - content: {} - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - ? /organizations/{organization_canonical}/projects/{project_canonical}/pipelines/{inpath_pipeline_name}/resources/{resource_name}/versions/{resource_version_id}/input_to - : get: - tags: - - Organization pipelines resources - description: Get builds that used a specified resource version as input. - operationId: getBuildsWithVersionAsInput - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: project_canonical - in: path - description: A canonical of a project. - required: true - schema: - $ref: '#/components/schemas/ProjectCanonical' - - name: inpath_pipeline_name - in: path - description: A pipeline name - required: true - schema: - maxLength: 100 - minLength: 1 - pattern: "^[a-z0-9]+[a-z0-9\\-_.]+[a-z0-9]+$" - type: string - - name: resource_name - in: path - description: A resource name - required: true - schema: - maxLength: 150 - minLength: 1 - type: string - - name: resource_version_id - in: path - description: A resource's version id - required: true - schema: - type: integer - format: uint64 - responses: - "200": - description: The resource of the pipeline's which has the specified name. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/Build' - example: - data: - - id: 11406 - team_name: cycloid-products - name: "82" - status: failed - job_name: build-container-preprod - api_url: /api/v1/builds/11406 - pipeline_name: ci-website - pipeline_id: 3 - start_time: 1504185240 - end_time: 1504185344 - reap_time: 0 - - id: 11404 - team_name: cycloid-products - name: "81" - status: failed - job_name: build-container-preprod - api_url: /api/v1/builds/11404 - pipeline_name: ci-website - pipeline_id: 3 - start_time: 1504184979 - end_time: 1504185078 - reap_time: 0 - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - ? /organizations/{organization_canonical}/projects/{project_canonical}/pipelines/{inpath_pipeline_name}/resources/{resource_name}/versions/{resource_version_id}/output_of - : get: - tags: - - Organization pipelines resources - description: Get builds that used a specified resource version as output. - operationId: getBuildsWithVersionAsOutput - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: project_canonical - in: path - description: A canonical of a project. - required: true - schema: - $ref: '#/components/schemas/ProjectCanonical' - - name: inpath_pipeline_name - in: path - description: A pipeline name - required: true - schema: - maxLength: 100 - minLength: 1 - pattern: "^[a-z0-9]+[a-z0-9\\-_.]+[a-z0-9]+$" - type: string - - name: resource_name - in: path - description: A resource name - required: true - schema: - maxLength: 150 - minLength: 1 - type: string - - name: resource_version_id - in: path - description: A resource's version id - required: true - schema: - type: integer - format: uint64 - responses: - "200": - description: The resource of the pipeline's which has the specified name. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/Build' - example: - data: - - id: 11406 - team_name: cycloid-products - name: "82" - status: failed - job_name: build-container-preprod - api_url: /api/v1/builds/11406 - pipeline_name: ci-website - pipeline_id: 3 - start_time: 1504185240 - end_time: 1504185344 - reap_time: 0 - - id: 11404 - team_name: cycloid-products - name: "81" - status: failed - job_name: build-container-preprod - api_url: /api/v1/builds/11404 - pipeline_name: ci-website - pipeline_id: 3 - start_time: 1504184979 - end_time: 1504185078 - reap_time: 0 - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - ? /organizations/{organization_canonical}/projects/{project_canonical}/pipelines/{inpath_pipeline_name}/resources/{resource_name}/versions/{resource_version_id}/pin - : put: - tags: - - Organization pipelines resources - description: Pin a specified version of a resource - operationId: pinResourceVersion - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: project_canonical - in: path - description: A canonical of a project. - required: true - schema: - $ref: '#/components/schemas/ProjectCanonical' - - name: inpath_pipeline_name - in: path - description: A pipeline name - required: true - schema: - maxLength: 100 - minLength: 1 - pattern: "^[a-z0-9]+[a-z0-9\\-_.]+[a-z0-9]+$" - type: string - - name: resource_name - in: path - description: A resource name - required: true - schema: - maxLength: 150 - minLength: 1 - type: string - - name: resource_version_id - in: path - description: A resource's version id - required: true - schema: - type: integer - format: uint64 - responses: - "204": - description: Resource version has been pinned - content: {} - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - /organizations/{organization_canonical}/projects/{project_canonical}/pipelines/{inpath_pipeline_name}/unpause: - put: - tags: - - Organization pipelines - description: Unpause a pipeline - operationId: unpausePipeline - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: project_canonical - in: path - description: A canonical of a project. - required: true - schema: - $ref: '#/components/schemas/ProjectCanonical' - - name: inpath_pipeline_name - in: path - description: A pipeline name - required: true - schema: - maxLength: 100 - minLength: 1 - pattern: "^[a-z0-9]+[a-z0-9\\-_.]+[a-z0-9]+$" - type: string - responses: - "204": - description: Pipeline has been unpaused. - content: {} - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - /organizations/{organization_canonical}/projects/{project_canonical}/pipelines/{inpath_pipeline_name}/variables: - get: - tags: - - Organization pipelines - description: Get the YAML variables of the pipeline. - operationId: getPipelineVariables - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: project_canonical - in: path - description: A canonical of a project. - required: true - schema: - $ref: '#/components/schemas/ProjectCanonical' - - name: inpath_pipeline_name - in: path - description: A pipeline name - required: true - schema: - maxLength: 100 - minLength: 1 - pattern: "^[a-z0-9]+[a-z0-9\\-_.]+[a-z0-9]+$" - type: string - responses: - "200": - description: This endpoint returns the variables of the pipeline. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/PipelineVariables' - example: - data: - yaml_vars: "var1: some_var" - has_saved_yaml_vars: true - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - "409": - description: Project has no config repository configured - content: {} - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - /organizations/{organization_canonical}/projects: - get: - tags: - - Organization projects - description: Get list of projects of the organization. - operationId: getProjects - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: page_index - in: query - description: The page number to request. The first page is 1. - schema: - type: integer - format: uint32 - default: 1 - - name: page_size - in: query - description: The number of items at most which the response can have. - schema: - type: integer - format: uint32 - default: 1000 - - name: project_name - in: query - description: Search by project's name - schema: - type: string - - name: project_created_at - in: query - description: Search by project's creation date - schema: - type: integer - format: uint64 - - name: project_description - in: query - description: Search by project's description - schema: - type: string - - name: project_config_repository_canonical - in: query - description: Search by project's config repository's canonical - schema: - $ref: '#/components/schemas/Canonical' - - name: service_catalog_source_canonical - in: query - description: Organization Service Catalog Sources canonical - schema: - $ref: '#/components/schemas/Canonical' - - name: user_id - in: query - description: Search by entity's owner - schema: - type: integer - format: uint32 - - name: order_by - in: query - description: | - Allows to order the list of items. Example usage: field_name:asc - schema: - type: string - - name: favorite - in: query - description: | - Flag to retrieve favorite data from the members favorite list. - schema: - type: boolean - responses: - "200": - description: List of the projects which the organization has. - content: - application/json: - schema: - required: - - data - - pagination - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/Project' - pagination: - $ref: '#/components/schemas/Pagination' - example: - data: - - canonical: proj-1 - description: my-description1 - id: 1 - cloud_provider: - id: 4 - canonical: aws - abbreviation: AWS - name: Amazon Web Services - created_at: 1503225026 - updated_at: 1503335026 - owner: - username: user-1 - id: 1 - given_name: Mariano - family_name: Jimenez - email: mariano.jimenez@fakeemail.com - picture_url: https://avatars2.githubusercontent.com/u/14579210 - created_at: 1503225026 - role: - id: 17 - name: existing - description: Organization existing role - canonical: role-can - rules: - - id: 1 - effect: allow - action: organization:delete - resources: - - organization:org-can - - organization:org-can2 - - id: 20 - effect: allow - action: organization:team:create - resources: [] - - id: 21 - effect: allow - action: organization:team:read - resources: - - organization:org-can:team:team-can - environments: - - dev - - staging - - production - service_catalog_name: Magento Stack - service_catalog_ref: cycloidio:stack-magento - created_at: 1503225026 - updated_at: 1503335026 - name: Project 1 - favorite: true - - canonical: proj2 - description: my-description2 - id: 1 - cloud_provider: - id: 2 - canonical: google - abbreviation: GCP - name: Google Cloud Platform - created_at: 1503225026 - updated_at: 1503335026 - environments: - - dev - - staging - service_catalog_name: Magento Stack 2 - service_catalog_ref: cycloidio:stack-magento2 - created_at: 1501131026 - updated_at: 1503333026 - name: Project 2 - favorite: true - - canonical: proj3 - description: my-description3 - id: 1 - environments: [] - service_catalog_name: Some other stack - service_catalog_ref: cycloidio:stack-something - created_at: 1500135021 - updated_at: 1503332021 - name: Project 3 - favorite: true - - canonical: proj-4 - description: my-description4 - id: 1 - owner: - username: user-2 - id: 10 - given_name: Mariana - family_name: Jimenezo - email: mariana.jimenezo@fakeemail.com - picture_url: https://avatars2.githubusercontent.com/u/14579210 - created_at: 1503225026 - role: - id: 17 - name: existing - description: Organization existing role - canonical: role-can - rules: - - id: 1 - effect: allow - action: organization:delete - resources: - - organization:org-can - - organization:org-can2 - - id: 20 - effect: allow - action: organization:team:create - resources: [] - - id: 21 - effect: allow - action: organization:team:read - resources: - - organization:org-can:team:team-can - environments: - - dev - - staging - - production - service_catalog_name: Magento Stack 3 - service_catalog_ref: cycloidio:stack-magento3 - created_at: 1500035021 - updated_at: 1502332021 - name: Project 4 - favorite: false - pagination: - index: 1 - size: 10 - total: 4 - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - post: - tags: - - Organization projects - description: Create a new project with envs and pipelines in the organization. - operationId: createProject - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - requestBody: - description: | - The information of the project to create and optionally its configuration inputs. - If the configuration inputs are not sent the project configuration is not generated and should be generated separately. - content: - application/vnd.cycloid.io.v1+json: - schema: - $ref: '#/components/schemas/NewProject' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/NewProject' - required: true - responses: - "200": - description: Project created. The body contains the information of the new - project of the organization. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/Project' - example: - data: - id: 1 - canonical: proj3 - description: the-description - created_at: 1500135021 - updated_at: 1503332021 - name: Project 3 - environments: - - id: 1 - canonical: prod - created_at: 1503225026 - updated_at: 1503335026 - - id: 2 - canonical: staging - created_at: 1503225026 - updated_at: 1503335026 - - id: 3 - canonical: dev - created_at: 1503225026 - updated_at: 1503335026 - service_catalog: - id: 1 - name: foo - canonical: stack-foo - author: Cycloid CI - description: CI sample - keywords: - - ci - ref: cycloid:stack-foo - directory: /config - service_catalog_source_id: 1 - trusted: true - owner: - username: user-1 - id: 1 - given_name: Mariano - family_name: Jimenez - email: mariano.jimenez@fakeemail.com - picture_url: https://avatars2.githubusercontent.com/u/14579210 - created_at: 1503225026 - role: - id: 17 - name: existing - description: Organization existing role - canonical: role-can - rules: - - id: 1 - effect: allow - action: organization:delete - resources: - - organization:org-can - - organization:org-can2 - - id: 20 - effect: allow - action: organization:team:create - resources: [] - - id: 21 - effect: allow - action: organization:team:read - resources: - - organization:org-can:team:team-can - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - "411": - description: The request has a body but it doesn't have a Content-Length - header. - content: {} - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - x-codegen-request-body-name: body - /organizations/{organization_canonical}/projects/{project_canonical}/environments/{environment_canonical}: - delete: - tags: - - Organization projects - description: "Delete a project environment of the organization, and the project\ - \ itself if it's the last environment." - operationId: deleteProjectEnvironment - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: project_canonical - in: path - description: A canonical of a project. - required: true - schema: - $ref: '#/components/schemas/ProjectCanonical' - - name: environment_canonical - in: path - description: The environment canonical to use as part of a path - required: true - schema: - $ref: '#/components/schemas/EnvironmentCanonical' - responses: - "204": - description: Project environment has been deleted. - content: {} - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - /organizations/{organization_canonical}/projects/{project_canonical}/environment/{environment_canonical}/config: - get: - tags: - - Organization Projects - description: Fetch the current project's environment's configuration. - operationId: getProjectConfig - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: project_canonical - in: path - description: A canonical of a project. - required: true - schema: - $ref: '#/components/schemas/ProjectCanonical' - - name: environment_canonical - in: path - description: The environment canonical to use as part of a path - required: true - schema: - $ref: '#/components/schemas/EnvironmentCanonical' - responses: - "200": - description: Set of config to create the project / push onto repositories - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - type: object - properties: - data: - $ref: '#/components/schemas/ProjectEnvironmentConfig' - example: - data: - use_case: prod - resource_pool_canonical: prcan - forms: - prod: - ansible: - database: - - widget: radios - default: - foo: bar - unit: "($, GHz, GB)" - type: map - values: - - foo: bar - - bar: foo - description: "" - key: key-one - name: map variable - current: - foo: bar - - widget: dropdown - required: false - default: - - bar - - foo - values: - - - foo - - bar - - - bar - - foo - unit: "($, GHz, GB)" - type: array - description: something k2 - key: key-two - name: array variable - current: - - bar - - foo - - widget: number - required: true - unit: something - type: integer - description: something k3 - key: key-three - name: required variable without default - current: null - terraform: - database: - - widget: slider_range - required: false - default: 2 - unit: "($, GHz, GB)" - type: integer - description: something k1 - values: - - 1 - - 10 - key: key-one - name: integer variable - current: 10 - - widget: dropdown - required: true - default: 20 - unit: "($, GHz, GB)" - type: integer - description: something k2 - values: - - 10 - - 20 - - 30 - key: key-two - name: required with default - current: null - - widget: slider_list - required: false - values: - - 1 - - 5 - unit: "($, GHz, GB)" - type: integer - description: something k3 - key: key-three - name: not required no default - current: 1 - pipeline: - database: - - widget: cy_cred - default: t2.micro - unit: "($, GHz, GB)" - type: string - description: something - values: - - t2.micro - - t2.medium - - t2.large - key: key-four - name: string with values and default - - widget: dropdown - required: false - unit: "($, GHz, GB)" - type: integer - description: something k5 - key: key-five - values: - - 100 - - 200 - name: "not required no default, but values" - current: 152 - - widget: dropdown - required: false - unit: "($, GHz, GB)" - type: integer - description: something k6 - key: key-six - name: "not required no default, but values" - current: 10 - values: - - 10 - - 40 - - 80 - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - /organizations/{organization_canonical}/projects/{project_canonical}/favorites: - post: - tags: - - Organization projects - description: Add a new project in the user favorites list. - operationId: createProjectFavorite - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: project_canonical - in: path - description: A canonical of a project. - required: true - schema: - $ref: '#/components/schemas/ProjectCanonical' - responses: - "204": - description: The project has been added to user favorites list. - content: {} - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - delete: - tags: - - Organization projects - description: Remove a project from the user favorites list. - operationId: deleteProjectFavorite - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: project_canonical - in: path - description: A canonical of a project. - required: true - schema: - $ref: '#/components/schemas/ProjectCanonical' - responses: - "204": - description: The project has been removed from user favorites list. - content: {} - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - /organizations/{organization_canonical}/projects/{project_canonical}/environments/{environment_canonical}/infrastructure: - get: - tags: - - Organization Infrastructure - description: Get the infrastructure of the Project on the environment - operationId: getProjInfrastructure - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: project_canonical - in: path - description: A canonical of a project. - required: true - schema: - $ref: '#/components/schemas/ProjectCanonical' - - name: environment_canonical - in: path - description: The environment canonical to use as part of a path - required: true - schema: - $ref: '#/components/schemas/EnvironmentCanonical' - responses: - "200": - description: Get the Infrastructure View of the Project's environment - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/Infrastructure' - description: The Infrastructure from the Project's environment - example: - data: - graph: - nodes: - - id: UUID-node-1 - canonical: aws_lb.front - position: - - 0 - - 0 - resource: - canonical: aws_lb - keywords: - - some - - key - category: some category - image: http://via.placeholder.com/150x150 - description: description of the resource - short_description: resource - is_node: true - is_edge: false - - id: UUID-node-2 - canonical: aws_instance.front - position: - - 0 - - 0 - resource: - canonical: aws_instance - keywords: - - some - - key - category: some category - image: http://via.placeholder.com/150x150 - description: description of the resource - short_description: resource - is_node: true - is_edge: false - edges: - - id: UUID-edge-1 - source: UUID-node-1 - target: UUID-node-2 - canonicals: - - aws_security_group.front - config: - resource: - aws_lb: - front: - access_logs.#: "1" - access_logs.0.bucket: "" - access_logs.0.enabled: "false" - access_logs.0.prefix: "" - arn: arn:aws:elasticloadbalancing:eu-west-1:99999994:loadbalancer/app/amazon-front-prod/fa8c187e287baaf1 - arn_suffix: app/amazon-front-prod/fa8c187e287baaf1 - dns_name: amazon-front-prod-1234567890.eu-west-1.elb.amazonaws.com - enable_deletion_protection: "false" - enable_http2: "true" - id: arn:aws:elasticloadbalancing:eu-west-1:99999994:loadbalancer/app/amazon-front-prod/fa8c187e287baaf1 - idle_timeout: "600" - internal: "false" - ip_address_type: ipv4 - load_balancer_type: application - name: amazon-front-prod - security_groups.#: "1" - security_groups.3982542233: sg-815549fb - subnet_mapping.#: "3" - subnet_mapping.1243641484.allocation_id: "" - subnet_mapping.1243641484.subnet_id: subnet-e8f5368e - subnet_mapping.1617803526.allocation_id: "" - subnet_mapping.1617803526.subnet_id: subnet-4caca117 - subnet_mapping.707871693.allocation_id: "" - subnet_mapping.707871693.subnet_id: subnet-08c11040 - subnets.#: "3" - subnets.1359096304: subnet-08c11040 - subnets.3529352084: subnet-4caca117 - subnets.4038704495: subnet-e8f5368e - tags.%: "6" - tags.Name: amazon-front-eu-we1-prod - tags.client: amazon - tags.cycloid.io: "true" - tags.env: prod - tags.project: amazon - tags.role: front - vpc_id: vpc-5972c43f - zone_id: Z32O12XQLNTSW2 - aws_instance: - front: - ami: ami-0211a849817dcceca - arn: arn:aws:ec2:eu-west-1:99999992:instance/i-08ffccfdf54168280 - associate_public_ip_address: false - availability_zone: eu-west-1a - cpu_core_count: 1 - cpu_threads_per_core: 2 - credit_specification: - - cpu_credits: unlimited - disable_api_termination: false - ebs_block_device: [] - ebs_optimized: false - ephemeral_block_device: [] - get_password_data: false - host_id: null - iam_instance_profile: cycloid_profile-front-sample-magento-prod - id: i-08ffccfdf54168280 - instance_initiated_shutdown_behavior: null - instance_state: running - instance_type: t3.small - ipv6_address_count: 0 - ipv6_addresses: [] - key_name: cycloid - monitoring: false - network_interface: [] - network_interface_id: null - password_data: "" - placement_group: "" - primary_network_interface_id: eni-01eac7f767b723514 - private_dns: ip-10-4-0-3.eu-west-1.compute.internal - private_ip: 10.4.0.3 - public_dns: "" - public_ip: "" - root_block_device: - - delete_on_termination: true - encrypted: false - iops: 180 - kms_key_id: "" - volume_id: vol-0a0da4a72f6548eb0 - volume_size: 60 - volume_type: gp2 - security_groups: [] - source_dest_check: true - subnet_id: subnet-7e131c1a - tags: - Name: sample-magento-front0-eu-we1-prod - bar: bla - client: cycloid - cycloid.io: "true" - env: prod - foo: test - monitoring_discovery: "false" - project: sample-magento - role: front - tenancy: default - timeouts: null - user_data: null - user_data_base64: null - volume_tags: - Name: sample-magento-front0-eu-we1-prod - bar: bla - client: cycloid - cycloid.io: "true" - env: prod - foo: test - monitoring_discovery: "false" - project: sample-magento - role: front - vpc_security_group_ids: - - sg-0d6e0e07fbc6ec626 - - sg-ddeee6bb - aws_security_group: - front: - cidr_blocks: - - 0.0.0.0/0 - description: "" - from_port: 443 - id: sgrule-3405156902 - ipv6_cidr_blocks: [] - prefix_list_ids: [] - protocol: tcp - security_group_id: sg-0f4d72e0081ca0c09 - self: false - source_security_group_id: null - to_port: 443 - type: ingress - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - /organizations/{organization_canonical}/projects/{project_canonical}: - get: - tags: - - Organization projects - description: Get a project of the organization. - operationId: getProject - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: project_canonical - in: path - description: A canonical of a project. - required: true - schema: - $ref: '#/components/schemas/ProjectCanonical' - responses: - "200": - description: The information of the project of the organization which has - the specified ID. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/Project' - example: - data: - id: 1 - canonical: proj2 - environments: - - id: 2 - canonical: staging - created_at: 1503225026 - updated_at: 1503335026 - use_case: uc - - id: 3 - canonical: dev - created_at: 1503225026 - updated_at: 1503335026 - use_case: uc2 - created_at: 1501131026 - updated_at: 1503333026 - name: Project 2 - service_catalog: - id: 1 - name: foo - canonical: stack-foo - author: Cycloid CI - description: CI sample - keywords: - - ci - ref: cycloid:stack-foo - directory: /config - service_catalog_source_id: 1 - trusted: true - owner: - username: user-1 - id: 1 - given_name: Mariano - family_name: Jimenez - email: mariano.jimenez@fakeemail.com - picture_url: https://avatars2.githubusercontent.com/u/14579210 - created_at: 1503225026 - role: - id: 17 - name: existing - description: Organization existing role - canonical: role-can - rules: - - id: 1 - effect: allow - action: organization:delete - resources: - - organization:org-can - - organization:org-can2 - - id: 20 - effect: allow - action: organization:team:create - resources: [] - - id: 21 - effect: allow - action: organization:team:read - resources: - - organization:org-can:team:team-can - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - put: - tags: - - Organization projects - description: "Update the information of a project of the organization. If the\ - \ project has some information on the fields which aren't required and they\ - \ are not sent or set to their default values, which depend of their types,\ - \ the information will be removed." - operationId: updateProject - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: project_canonical - in: path - description: A canonical of a project. - required: true - schema: - $ref: '#/components/schemas/ProjectCanonical' - requestBody: - description: The information of the project to update. - content: - application/vnd.cycloid.io.v1+json: - schema: - $ref: '#/components/schemas/UpdateProject' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/UpdateProject' - required: true - responses: - "200": - description: Project updated. The body contains information of the updated - project. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/Project' - example: - data: - id: 1 - canonical: proj-1 - service_catalog: - id: 1 - name: foo - canonical: stack-foo - author: Cycloid CI - description: CI sample - keywords: - - ci - ref: cycloid:stack-foo - directory: /config - service_catalog_source_id: 1 - trusted: true - owner: - username: user-1 - id: 10 - given_name: Mariano - family_name: Jimenez - email: mariano.jimenez@fakeemail.com - picture_url: https://avatars2.githubusercontent.com/u/14579210 - created_at: 1503225026 - role: - id: 17 - name: existing - description: Organization existing role - canonical: role-can - rules: - - id: 1 - effect: allow - action: organization:delete - resources: - - organization:org-can - - organization:org-can2 - - id: 20 - effect: allow - action: organization:team:create - resources: [] - - id: 21 - effect: allow - action: organization:team:read - resources: - - organization:org-can:team:team-can - created_at: 1503225026 - updated_at: 1503335026 - name: Project 1 - environments: - - id: 1 - canonical: prod - created_at: 1503225026 - updated_at: 1503335026 - - id: 2 - canonical: staging - created_at: 1503225026 - updated_at: 1503335026 - - id: 3 - canonical: dev - created_at: 1503225026 - updated_at: 1503335026 - service_catalog_ref: cycloidio:stack-magento - config_repository_canonical: stack-magento-cr - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - "411": - description: The request has a body but it doesn't have a Content-Length - header. - content: {} - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - x-codegen-request-body-name: body - delete: - tags: - - Organization projects - description: Delete a project of the organization. - operationId: deleteProject - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: project_canonical - in: path - description: A canonical of a project. - required: true - schema: - $ref: '#/components/schemas/ProjectCanonical' - responses: - "204": - description: Project has been deleted. - content: {} - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - /organizations/{organization_canonical}/quotas: - get: - tags: - - Organization Quotas - description: List of quotas available in the organization. - operationId: listQuotas - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: page_index - in: query - description: The page number to request. The first page is 1. - schema: - type: integer - format: uint32 - default: 1 - - name: page_size - in: query - description: The number of items at most which the response can have. - schema: - type: integer - format: uint32 - default: 1000 - responses: - "200": - description: List of quotas which are available in the organization. - content: - application/json: - schema: - required: - - data - - pagination - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/Quota' - pagination: - $ref: '#/components/schemas/Pagination' - example: - data: - - id: 17 - memory: 10 - cpu: 11 - storage: 12 - used_memory: 10 - used_cpu: 11 - used_storage: 12 - - id: 2 - memory: 10 - cpu: 11 - storage: 12 - used_memory: 10 - used_cpu: 11 - used_storage: 12 - pagination: - index: 1 - size: 10 - total: 2 - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - post: - tags: - - Organization Quotas - description: Create a new quota available in the organization. - operationId: createQuota - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - requestBody: - description: The information of the organization's quota to create. - content: - application/vnd.cycloid.io.v1+json: - schema: - $ref: '#/components/schemas/NewQuota' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/NewQuota' - required: true - responses: - "200": - description: New quota created in the organization. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/Quota' - example: - data: - id: 17 - memory: 10 - cpu: 11 - storage: 12 - used_memory: 10 - used_cpu: 11 - used_storage: 12 - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - x-codegen-request-body-name: body - /organizations/{organization_canonical}/quotas/{quota_id}: - get: - tags: - - Organization Quotas - description: Get the quota available in the organization with an canonical - operationId: getQuota - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: quota_id - in: path - description: Quota ID - required: true - schema: - type: integer - format: uint32 - responses: - "200": - description: Quota available in the organization with such canonical. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/Quota' - example: - data: - id: 17 - memory: 10 - cpu: 11 - storage: 12 - used_memory: 10 - used_cpu: 11 - used_storage: 12 - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - put: - tags: - - Organization Quotas - description: Update an existing quota in the organization. - operationId: updateQuota - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: quota_id - in: path - description: Quota ID - required: true - schema: - type: integer - format: uint32 - requestBody: - description: The information of the organization's quota to update. - content: - application/vnd.cycloid.io.v1+json: - schema: - $ref: '#/components/schemas/UpdateQuota' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/UpdateQuota' - required: true - responses: - "200": - description: Updated quota belonging to the organization. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/Quota' - example: - data: - memory: 10 - cpu: 11 - storage: 12 - used_memory: 10 - used_cpu: 11 - used_storage: 12 - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - x-codegen-request-body-name: body - delete: - tags: - - Organization Quotas - description: Delete an existing quota in the organization. - operationId: deleteQuota - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: quota_id - in: path - description: Quota ID - required: true - schema: - type: integer - format: uint32 - responses: - "204": - description: Organization quota has been deleted. - content: {} - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - /organizations/{organization_canonical}/quotas/{quota_id}/consumptions: - get: - tags: - - Organization Quotas - description: Get the quota consumptions by project and environment - operationId: listQuotaConsumptions - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: quota_id - in: path - description: Quota ID - required: true - schema: - type: integer - format: uint32 - responses: - "200": - description: Quota available in the organization with such canonical. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/ProjectEnvironmentConsumption' - example: - data: - id: 17 - memory: 10 - cpu: 11 - storage: 12 - project: - id: 1 - canonical: proj2 - name: prj - created_at: 1501131026 - updated_at: 1503333026 - owner: - username: user-1 - id: 1 - given_name: Mariano - family_name: Jimenez - email: mariano.jimenez@fakeemail.com - picture_url: https://avatars2.githubusercontent.com/u/14579210 - created_at: 1503225026 - environment: - id: 3 - canonical: dev - cloud_provider: - canonical: aws - abbreviation: AWS - name: Amazon Web Services - created_at: 1503225026 - updated_at: 1503335026 - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - /organizations/{organization_canonical}/resource_pools: - get: - tags: - - Organization Resource Pools - description: List of resource pools available in the organization. - operationId: listResourcePools - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: page_index - in: query - description: The page number to request. The first page is 1. - schema: - type: integer - format: uint32 - default: 1 - - name: page_size - in: query - description: The number of items at most which the response can have. - schema: - type: integer - format: uint32 - default: 1000 - responses: - "200": - description: List of resource pools which are available in the organization. - content: - application/json: - schema: - required: - - data - - pagination - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/ResourcePool' - pagination: - $ref: '#/components/schemas/Pagination' - example: - data: - - id: 17 - name: Prod Pool - canonical: prod_pool - label: production - memory: 10 - cpu: 11 - storage: 12 - used_memory: 10 - used_cpu: 11 - used_storage: 12 - allocated_memory: 10 - allocated_cpu: 11 - allocated_storage: 12 - - id: 2 - name: Stating Pool - canonical: staging_pool - label: staging - memory: 10 - cpu: 11 - storage: 12 - used_memory: 10 - used_cpu: 11 - used_storage: 12 - allocated_memory: 10 - allocated_cpu: 11 - allocated_storage: 12 - pagination: - index: 1 - size: 10 - total: 2 - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - post: - tags: - - Organization Resource Pools - description: Create a new resource pool available in the organization. - operationId: createResourcePool - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - requestBody: - description: The information of the organization's resource_pool to create. - content: - application/vnd.cycloid.io.v1+json: - schema: - $ref: '#/components/schemas/NewResourcePool' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/NewResourcePool' - required: true - responses: - "200": - description: New resource pool created in the organization. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/ResourcePool' - example: - data: - name: existing - canonical: resource_pool_can - label: staging - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - x-codegen-request-body-name: body - /organizations/{organization_canonical}/resource_pools/{resource_pool_canonical}: - get: - tags: - - Organization ResourcePools - description: Get the resource pool available in the organization with an canonical - operationId: getResourcePool - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: resource_pool_canonical - in: path - description: Organization Resource Pool canonical - required: true - schema: - $ref: '#/components/schemas/Canonical' - responses: - "200": - description: ResourcePool available in the organization with such canonical. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/ResourcePool' - example: - data: - id: 17 - name: Prod Pool - canonical: prod_pool - label: production - memory: 10 - cpu: 11 - storage: 12 - used_memory: 10 - used_cpu: 11 - used_storage: 12 - allocated_memory: 10 - allocated_cpu: 11 - allocated_storage: 12 - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - put: - tags: - - Organization Resource Pools - description: Update an existing resource_pool in the organization. - operationId: updateResourcePool - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: resource_pool_canonical - in: path - description: Organization Resource Pool canonical - required: true - schema: - $ref: '#/components/schemas/Canonical' - requestBody: - description: The information of the organization's resource_pool to update. - content: - application/vnd.cycloid.io.v1+json: - schema: - $ref: '#/components/schemas/NewResourcePool' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/NewResourcePool' - required: true - responses: - "200": - description: Updated resource pool belonging to the organization. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/ResourcePool' - example: - data: - id: 17 - name: Prod Pool - canonical: prod_pool - label: production - memory: 10 - cpu: 11 - storage: 12 - used_memory: 10 - used_cpu: 11 - used_storage: 12 - allocated_memory: 10 - allocated_cpu: 11 - allocated_storage: 12 - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - x-codegen-request-body-name: body - delete: - tags: - - Organization Resource Pools - description: Delete an existing resource_pool in the organization. - operationId: deleteResourcePool - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: resource_pool_canonical - in: path - description: Organization Resource Pool canonical - required: true - schema: - $ref: '#/components/schemas/Canonical' - responses: - "204": - description: Organization resource_pool has been deleted. - content: {} - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - /organizations/{organization_canonical}/roles: - get: - tags: - - Organization Roles - description: Get the list of roles available in the organization. - operationId: getRoles - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: page_index - in: query - description: The page number to request. The first page is 1. - schema: - type: integer - format: uint32 - default: 1 - - name: page_size - in: query - description: The number of items at most which the response can have. - schema: - type: integer - format: uint32 - default: 1000 - responses: - "200": - description: List of roles which are available in the organization. - content: - application/json: - schema: - required: - - data - - pagination - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/Role' - pagination: - $ref: '#/components/schemas/Pagination' - example: - data: - - id: 17 - name: existing - description: Organization existing role - canonical: role-can - rules: - - id: 1 - effect: allow - action: organization:delete - resources: - - organization:org-can - - organization:org-can2 - - id: 20 - effect: allow - action: organization:team:create - resources: [] - - id: 21 - effect: allow - action: organization:team:read - resources: - - organization:org-can:team:team-can - - id: 2 - name: project manager - canonical: role-can2 - description: A project manager - rules: - - id: 20 - effect: allow - action: organization:team:create - resources: [] - - id: 21 - effect: allow - action: organization:team:read - resources: - - organization:org-can:team:team-can - pagination: - index: 1 - size: 10 - total: 2 - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - post: - tags: - - Organization Roles - description: Create a new role available in the organization. - operationId: createRole - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - requestBody: - description: The information of the organization's role to create. - content: - application/vnd.cycloid.io.v1+json: - schema: - $ref: '#/components/schemas/NewRole' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/NewRole' - required: true - responses: - "200": - description: New role created in the organization. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/NewRole' - example: - data: - id: 17 - name: existing - description: Organization existing role - canonical: role-can - rules: - - id: 1 - effect: allow - action: organization:delete - resources: - - organization:org-can - - organization:org-can2 - - id: 20 - effect: allow - action: organization:team:create - resources: [] - - id: 21 - effect: allow - action: organization:team:read - resources: - - organization:org-can:team:team-can - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - x-codegen-request-body-name: body - /organizations/{organization_canonical}/roles/{role_canonical}: - get: - tags: - - Organization Roles - description: Get the role available in the organization with an canonical - operationId: getRole - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: role_canonical - in: path - description: Organization Role canonical - required: true - schema: - $ref: '#/components/schemas/Canonical' - responses: - "200": - description: Role available in the organization with such canonical. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/Role' - example: - data: - id: 17 - name: existing - description: Organization existing role - canonical: role-can - rules: - - id: 1 - effect: allow - action: organization:delete - resources: - - organization:org-can - - organization:org-can2 - - id: 20 - effect: allow - action: organization:team:create - resources: [] - - id: 21 - effect: allow - action: organization:team:read - resources: - - organization:org-can:team:team-can - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - put: - tags: - - Organization Roles - description: Update an existing role in the organization. - operationId: updateRole - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: role_canonical - in: path - description: Organization Role canonical - required: true - schema: - $ref: '#/components/schemas/Canonical' - requestBody: - description: The information of the organization's role to update. - content: - application/vnd.cycloid.io.v1+json: - schema: - $ref: '#/components/schemas/NewRole' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/NewRole' - required: true - responses: - "200": - description: Updated role belonging to the organization. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/Role' - example: - data: - id: 17 - name: existing - description: Organization existing role - canonical: role-can - rules: - - id: 1 - effect: allow - action: organization:delete - resources: - - organization:org-can - - organization:org-can2 - - id: 20 - effect: allow - action: organization:team:create - resources: [] - - id: 21 - effect: allow - action: organization:team:read - resources: - - organization:org-can:team:team-can - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - x-codegen-request-body-name: body - delete: - tags: - - Organization Roles - description: Delete an existing role in the organization. - operationId: deleteRole - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: role_canonical - in: path - description: Organization Role canonical - required: true - schema: - $ref: '#/components/schemas/Canonical' - responses: - "204": - description: Organization role has been deleted. - content: {} - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - /organizations/{organization_canonical}/service_catalog_sources: - get: - tags: - - Organization Service Catalog Sources - description: Return all the private service catalogs - operationId: getServiceCatalogSources - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: page_index - in: query - description: The page number to request. The first page is 1. - schema: - type: integer - format: uint32 - default: 1 - - name: page_size - in: query - description: The number of items at most which the response can have. - schema: - type: integer - format: uint32 - default: 1000 - responses: - "200": - description: List of the private service catalogs. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/ServiceCatalogSource' - example: - data: - - id: 1 - canonical: my-personal-repo - name: My personal repo - url: git@github.com:myuser/repository.git - credential_id: 1 - created_at: 1503225026 - updated_at: 1503335026 - branch: my-favourite-branch - stack_count: 1 - owner: - username: user-1 - id: 1 - given_name: Mariano - family_name: Jimenez - email: mariano.jimenez@fakeemail.com - picture_url: https://avatars2.githubusercontent.com/u/14579210 - created_at: 1503225026 - role: - id: 3 - name: developer - description: A developer of the team - policies: - - id: 21 - code: team:read - entities: [] - description: Grant the access to read the teams of an organization - - id: 42 - code: member:read - entities: [] - description: Grant the access to read the members - service_catalogs: - - id: 1 - name: foo - canonical: stack-foo - directory: /config - author: Cycloid CI - description: CI sample - keywords: - - ci - ref: cycloid:stack-foo - service_catalog_source_id: 1 - trusted: true - - id: 2 - canonical: my-personal-repo-2 - name: My personal repo 2 - url: https://github.com/cycloid-community-catalog/stack-dummy.git - created_at: 1503225026 - updated_at: 1503335026 - branch: my-second-favourite-branch - stack_count: 4 - owner: - username: user-1 - id: 1 - given_name: Mariano - family_name: Jimenez - email: mariano.jimenez@fakeemail.com - picture_url: https://avatars2.githubusercontent.com/u/14579210 - created_at: 1503225026 - role: - id: 3 - name: developer - description: A developer of the team - policies: - - id: 21 - code: team:read - entities: [] - description: Grant the access to read the teams of an organization - - id: 42 - code: member:read - entities: [] - description: Grant the access to read the members - - id: 60 - code: project:read - entities: [] - description: Grant the access to projects - service_catalogs: - - id: 2 - name: bar - canonical: stack-bar - author: Cycloid CI - description: CI sample - keywords: - - ci - ref: cycloid:stack-bar - directory: /cfg - service_catalog_source_id: 2 - trusted: true - pagination: - index: 1 - size: 10 - total: 2 - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - post: - tags: - - Organization Service Catalog Sources - description: Creates a Service catalog source - operationId: createServiceCatalogSource - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - requestBody: - description: The information of the organization to create. - content: - application/vnd.cycloid.io.v1+json: - schema: - $ref: '#/components/schemas/NewServiceCatalogSource' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/NewServiceCatalogSource' - required: true - responses: - "200": - description: Success creation - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/ServiceCatalogSource' - example: - data: - id: 1 - canonical: my-personal-repo - name: My personal repo - url: git@github.com:myuser/repository.git - credential_id: 1 - created_at: 1503225026 - updated_at: 1503335026 - branch: my-scs-branch - stack_count: 1 - owner: - username: user-1 - id: 1 - given_name: Mariano - family_name: Jimenez - email: mariano.jimenez@fakeemail.com - picture_url: https://avatars2.githubusercontent.com/u/14579210 - created_at: 1503225026 - role: - id: 3 - name: developer - description: A developer of the team - policies: - - id: 21 - code: team:read - entities: [] - description: Grant the access to read the teams of an organization - - id: 42 - code: member:read - entities: [] - description: Grant the access to read the members - - id: 60 - code: project:read - entities: [] - description: Grant the access to projects - service_catalogs: - - id: 1 - name: foo - canonical: stack-foo - author: Cycloid CI - description: CI sample - keywords: - - ci - ref: cycloid:stack-foo - directory: /config - service_catalog_source_id: 1 - trusted: true - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - "411": - description: The request has a body but it doesn't have a Content-Length - header. - content: {} - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - x-codegen-request-body-name: body - /organizations/{organization_canonical}/service_catalog_sources/{service_catalog_source_canonical}/refresh: - post: - tags: - - Organization Service Catalog Sources - description: Refresh a Service catalog source - operationId: refreshServiceCatalogSource - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: service_catalog_source_canonical - in: path - description: Organization Service Catalog Sources canonical - required: true - schema: - $ref: '#/components/schemas/Canonical' - responses: - "200": - description: Success refresh - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/ServiceCatalogChanges' - example: - data: - id: 1 - canonical: my-personal-repo - name: My personal repo - url: git@github.com:cycloidio/youdeploy-http-api.git - credential_id: 1 - created_at: 1503225026 - updated_at: 1503335026 - branch: my-favourite-branch - changes: - created: - - id: 1 - name: foo - canonical: stack-foo - author: Cycloid CI - description: CI sample - keywords: - - ci - ref: cycloid:stack-foo - directory: /config - service_catalog_source_id: 1 - trusted: true - updated: - - id: 2 - name: foo2 - canonical: stack-foo2 - author: Cycloid CI - description: CI sample - keywords: - - ci - ref: cycloid:stack-foo2 - directory: /config/prod - service_catalog_source_id: 1 - trusted: true - deleted: - - id: 3 - name: fo3 - canonical: stack-foo3 - author: Cycloid CI - description: CI sample - keywords: - - ci - ref: cycloid:stack-foo3 - directory: / - service_catalog_source_id: 1 - trusted: true - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - "411": - description: The request has a body but it doesn't have a Content-Length - header. - content: {} - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - /organizations/{organization_canonical}/service_catalog_sources/{service_catalog_source_canonical}: - get: - tags: - - Organization Service Catalog Sources - description: Return the Service Catalog Source - operationId: getServiceCatalogSource - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: service_catalog_source_canonical - in: path - description: Organization Service Catalog Sources canonical - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: page_index - in: query - description: The page number to request. The first page is 1. - schema: - type: integer - format: uint32 - default: 1 - - name: page_size - in: query - description: The number of items at most which the response can have. - schema: - type: integer - format: uint32 - default: 1000 - responses: - "200": - description: Organization Service Catalog Sources. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/ServiceCatalogSource' - example: - data: - id: 1 - canonical: my-personal-repo - name: My personal repo - url: git@github.com:myuser/repository.git - created_at: 1503225026 - updated_at: 1503335026 - credential_id: 1 - branch: my-scs-branch - stack_count: 1 - service_catalogs: - - id: 1 - name: foo - canonical: stack-foo - author: Cycloid CI - description: CI sample - keywords: - - ci - ref: cycloid:stack-foo - directory: /config - service_catalog_source_id: 1 - trusted: true - owner: - username: user-1 - id: 1 - given_name: Mariano - family_name: Jimenez - email: mariano.jimenez@fakeemail.com - picture_url: https://avatars2.githubusercontent.com/u/14579210 - created_at: 1503225026 - role: - id: 3 - name: developer - description: A developer of the team - policies: - - id: 21 - code: team:read - entities: [] - description: Grant the access to read the teams of an organization - - id: 42 - code: member:read - entities: [] - description: Grant the access to read the members - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - put: - tags: - - Organization Service Catalog Sources - description: Update a Service catalog source - operationId: updateServiceCatalogSource - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: service_catalog_source_canonical - in: path - description: Organization Service Catalog Sources canonical - required: true - schema: - $ref: '#/components/schemas/Canonical' - requestBody: - description: The information of the organization to create. - content: - application/vnd.cycloid.io.v1+json: - schema: - $ref: '#/components/schemas/UpdateServiceCatalogSource' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/UpdateServiceCatalogSource' - required: true - responses: - "200": - description: Success update - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/ServiceCatalogSource' - example: - data: - id: 1 - canonical: my-personal-repo - name: My personal repo - url: git@github.com:myuser/repository.git - credential_id: 1 - created_at: 1503225026 - updated_at: 1503335026 - branch: my-favourite-branch - stack_count: 1 - owner: - username: user-1 - id: 1 - given_name: Mariano - family_name: Jimenez - email: mariano.jimenez@fakeemail.com - picture_url: https://avatars2.githubusercontent.com/u/14579210 - created_at: 1503225026 - role: - id: 3 - name: developer - description: A developer of the team - policies: - - id: 21 - code: team:read - entities: [] - description: Grant the access to read the teams of an organization - - id: 42 - code: member:read - entities: [] - description: Grant the access to read the members - service_catalogs: - created: - - id: 1 - name: foo - canonical: stack-foo - author: Cycloid CI - description: CI sample - keywords: - - ci - ref: cycloid:stack-foo - directory: /config - service_catalog_source_id: 1 - trusted: true - updated: - - id: 2 - name: foo2 - canonical: stack-foo2 - author: Cycloid CI - description: CI sample - keywords: - - ci - ref: cycloid:stack-foo2 - directory: /config/prod - service_catalog_source_id: 1 - trusted: true - deleted: - - id: 3 - name: fo3 - canonical: stack-foo3 - author: Cycloid CI - description: CI sample - keywords: - - ci - ref: cycloid:stack-foo3 - directory: / - service_catalog_source_id: 1 - trusted: true - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - "411": - description: The request has a body but it doesn't have a Content-Length - header. - content: {} - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - x-codegen-request-body-name: body - delete: - tags: - - Organization Service Catalog Sources - description: delete a Service catalog source - operationId: deleteServiceCatalogSource - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: service_catalog_source_canonical - in: path - description: Organization Service Catalog Sources canonical - required: true - schema: - $ref: '#/components/schemas/Canonical' - responses: - "204": - description: Organization Service Catalog Sources has been deleted - content: {} - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - /organizations/{organization_canonical}/service_catalog_sources/{service_catalog_source_canonical}/validate: - post: - tags: - - Organization Service Catalog Sources - description: Validate a Service catalog source - operationId: validateServiceCatalogSource - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: service_catalog_source_canonical - in: path - description: Organization Service Catalog Sources canonical - required: true - schema: - $ref: '#/components/schemas/Canonical' - responses: - "204": - description: The SCS has been validated - content: {} - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - "411": - description: The request has a body but it doesn't have a Content-Length - header. - content: {} - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - /organizations/{organization_canonical}/subscriptions: - post: - tags: - - Organization Subscriptions - description: Creates a subscription for the Organization - operationId: createSubscription - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - requestBody: - description: The information of the subscription to create - content: - application/vnd.cycloid.io.v1+json: - schema: - $ref: '#/components/schemas/NewSubscription' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/NewSubscription' - required: true - responses: - "204": - description: Created Subscription - content: {} - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - "411": - description: The request has a body but it doesn't have a Content-Length - header. - content: {} - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - x-codegen-request-body-name: body - /organizations/{organization_canonical}/teams: - get: - tags: - - Organization teams - description: Get list of teams of the organization. - operationId: getTeams - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: page_index - in: query - description: The page number to request. The first page is 1. - schema: - type: integer - format: uint32 - default: 1 - - name: page_size - in: query - description: The number of items at most which the response can have. - schema: - type: integer - format: uint32 - default: 1000 - - name: team_name - in: query - description: Search by team's name - schema: - type: string - - name: team_created_at - in: query - description: Search by team's creation date - schema: - type: integer - format: uint64 - - name: team_description - in: query - description: Search by team's description - schema: - type: string - - name: user_id - in: query - description: Search by entity's owner - schema: - type: integer - format: uint32 - - name: order_by - in: query - description: | - Allows to order the list of items. Example usage: field_name:asc - schema: - type: string - responses: - "200": - description: List of the teams which the organization has. - content: - application/json: - schema: - required: - - data - - pagination - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/Team' - pagination: - $ref: '#/components/schemas/Pagination' - example: - data: - - canonical: team1 - id: 1 - created_at: 1503225026 - updated_at: 1503335026 - name: Team 1 - owner: - id: 99 - username: superuser - given_name: Owen - family_name: Smith - email: superuser@company.com - created_at: 1503225026 - role: - id: 17 - name: existing - description: Organization existing role - canonical: role-can - rules: - - id: 1 - effect: allow - action: organization:delete - resources: - - organization:org-can - - organization:org-can2 - - id: 20 - effect: allow - action: organization:team:create - resources: [] - - id: 21 - effect: allow - action: organization:team:read - resources: - - organization:org-can:team:team-can - roles: - - id: 17 - name: existing - description: Organization existing role - canonical: role-can - rules: - - id: 1 - effect: allow - action: organization:delete - resources: - - organization:org-can - - organization:org-can2 - - id: 20 - effect: allow - action: organization:team:create - resources: [] - - id: 21 - effect: allow - action: organization:team:read - resources: - - organization:org-can:team:team-can - member_count: 12 - members_preview: - - id: 42 - username: coder - given_name: Cody - family_name: Coder - email: coder@company.com - created_at: 678123 - - id: 43 - username: tester - given_name: Tony - family_name: Tester - email: tester@company.com - created_at: 678123 - pagination: - index: 1 - size: 10 - total: 1 - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - post: - tags: - - Organization teams - description: Create a new team in the organization. - operationId: createTeam - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - requestBody: - description: The information of the team to create. - content: - application/vnd.cycloid.io.v1+json: - schema: - $ref: '#/components/schemas/NewTeam' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/NewTeam' - required: true - responses: - "200": - description: Team created. The body contains the information of the new - team of the organization. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/Team' - example: - data: - id: 1 - canonical: team1 - created_at: 1503225026 - updated_at: 1503335026 - name: Team 1 - owner: - id: 99 - username: superuser - given_name: Owen - family_name: Smith - email: superuser@company.com - created_at: 1503225026 - role: - id: 17 - name: existing - description: Organization existing role - canonical: role-can - rules: - - id: 1 - effect: allow - action: organization:delete - resources: - - organization:org-can - - organization:org-can2 - - id: 20 - effect: allow - action: organization:team:create - resources: [] - - id: 21 - effect: allow - action: organization:team:read - resources: - - organization:org-can:team:team-can - roles: - - id: 17 - name: existing - description: Organization existing role - canonical: role-can - rules: - - id: 1 - effect: allow - action: organization:delete - resources: - - organization:org-can - - organization:org-can2 - - id: 20 - effect: allow - action: organization:team:create - resources: [] - - id: 21 - effect: allow - action: organization:team:read - resources: - - organization:org-can:team:team-can - - id: 10 - name: existing - description: Organization existing role - canonical: role-can - rules: - - id: 1 - effect: allow - action: organization:delete - resources: - - organization:org-can - - organization:org-can2 - - id: 21 - effect: allow - action: organization:team:read - resources: - - organization:org-can:team:team-can - member_count: 12 - members_preview: - - id: 42 - username: coder - given_name: Cody - family_name: Coder - email: coder@company.com - created_at: 678123 - - id: 43 - username: tester - given_name: Tony - family_name: Tester - email: tester@company.com - created_at: 678123 - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - "411": - description: The request has a body but it doesn't have a Content-Length - header. - content: {} - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - x-codegen-request-body-name: body - /organizations/{organization_canonical}/teams/{team_canonical}/members: - get: - tags: - - Organization team members - description: Get the members of a team of the organization. - operationId: getTeamMembers - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: team_canonical - in: path - description: A canonical of a team. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: page_index - in: query - description: The page number to request. The first page is 1. - schema: - type: integer - format: uint32 - default: 1 - - name: page_size - in: query - description: The number of items at most which the response can have. - schema: - type: integer - format: uint32 - default: 1000 - responses: - "200": - description: List of the members who are assigned to the team. - content: - application/json: - schema: - required: - - data - - pagination - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/MemberTeam' - pagination: - $ref: '#/components/schemas/Pagination' - example: - data: - - username: user-1 - id: 1 - given_name: Mariano - family_name: Jimenez - email: mariano.jimenez@fakeemail.com - picture_url: https://avatars2.githubusercontent.com/u/14579210 - created_at: 1503225026 - last_login_at: 1503225576 - - username: user2 - id: 1 - given_name: Jordi - family_name: Capdevila - email: jordi.capdevila@fakeemail.com - picture_url: https://avatars2.githubusercontent.com/u/14579210 - created_at: 1503281026 - invited_at: 1503281026 - pagination: - index: 1 - size: 10 - total: 2 - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - post: - tags: - - Organization team members - description: Assign a user of the organization to be a member of a team. - operationId: assignMemberToTeam - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: team_canonical - in: path - description: A canonical of a team. - required: true - schema: - $ref: '#/components/schemas/Canonical' - requestBody: - description: The assignation information for being a member or being updated. - content: - application/vnd.cycloid.io.v1+json: - schema: - $ref: '#/components/schemas/NewTeamMemberAssignation' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/NewTeamMemberAssignation' - required: true - responses: - "204": - description: The user has been made a member of the team. - content: {} - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - x-codegen-request-body-name: body - /organizations/{organization_canonical}/teams/{team_canonical}/members/{member_id}: - get: - tags: - - Organization team members - description: Get the information of a member of the team. - operationId: getTeamMember - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: team_canonical - in: path - description: A canonical of a team. - required: true - schema: - maxLength: 100 - minLength: 3 - pattern: "^[a-z0-9]+[a-z0-9\\-_]+[a-z0-9]+$" - type: string - - $ref: '#/components/parameters/member_id' - responses: - "200": - description: The information of the member of the team. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/MemberTeam' - example: - data: - id: 1 - username: user-1 - given_name: Mariano - family_name: Jimenez - email: mariano.jimenez@fakeemail.com - picture_url: https://avatars2.githubusercontent.com/u/14579210 - created_at: 1503225026 - last_login_at: 1503281333 - role: - id: 17 - name: existing - description: Organization existing role - canonical: role-can - rules: - - id: 1 - effect: allow - action: organization:delete - resources: - - organization:org-can - - organization:org-can2 - - id: 20 - effect: allow - action: organization:team:create - resources: [] - - id: 21 - effect: allow - action: organization:team:read - resources: - - organization:org-can:team:team-can - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - delete: - tags: - - Organization team members - description: "Unassign a member of the team. After this operation, the user\ - \ will not be a member of the team." - operationId: unassignMemberFromTeam - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: team_canonical - in: path - description: A canonical of a team. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: username - in: path - description: A username - required: true - schema: - $ref: '#/components/schemas/Canonical' - responses: - "204": - description: The user has been unassigned of the team. - content: {} - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - /organizations/{organization_canonical}/teams/{team_canonical}: - get: - tags: - - Organization teams - description: Get the information of a team of the organization. - operationId: getTeam - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: team_canonical - in: path - description: A canonical of a team. - required: true - schema: - $ref: '#/components/schemas/Canonical' - responses: - "200": - description: The information of the team of the organization which has the - specified ID. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/Team' - example: - data: - id: 1 - canonical: team-2 - created_at: 1503225026 - updated_at: 1503335026 - name: Team 2 - owner: - id: 99 - username: superuser - given_name: Owen - family_name: Smith - email: superuser@company.com - created_at: 1503225026 - role: - id: 17 - name: existing - description: Organization existing role - canonical: role-can - rules: - - id: 1 - effect: allow - action: organization:delete - resources: - - organization:org-can - - organization:org-can2 - - id: 20 - effect: allow - action: organization:team:create - resources: [] - - id: 21 - effect: allow - action: organization:team:read - resources: - - organization:org-can:team:team-can - roles: - - id: 17 - name: existing - description: Organization existing role - canonical: role-can - rules: - - id: 1 - effect: allow - action: organization:delete - resources: - - organization:org-can - - organization:org-can2 - - id: 20 - effect: allow - action: organization:team:create - resources: [] - - id: 21 - effect: allow - action: organization:team:read - resources: - - organization:org-can:team:team-can - member_count: 12 - members_preview: - - id: 42 - username: cooluser - given_name: given - family_name: family - email: cooluser@company.com - created_at: 678123 - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - put: - tags: - - Organization teams - description: Update the information of a team of the organization. - operationId: updateTeam - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: team_canonical - in: path - description: A canonical of a team. - required: true - schema: - $ref: '#/components/schemas/Canonical' - requestBody: - description: The information of the team to update. - content: - application/vnd.cycloid.io.v1+json: - schema: - $ref: '#/components/schemas/UpdateTeam' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/UpdateTeam' - required: true - responses: - "200": - description: Team updated. The body contains information of the updated - team. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/Team' - example: - data: - id: 1 - canonical: team-3 - created_at: 1503220026 - updated_at: 1503335126 - name: Team 3 - owner: - id: 99 - username: superuser - given_name: Owen - family_name: Smith - email: superuser@company.com - created_at: 1503225026 - role: - id: 17 - name: existing - description: Organization existing role - canonical: role-can - rules: - - id: 1 - effect: allow - action: organization:delete - resources: - - organization:org-can - - organization:org-can2 - - id: 20 - effect: allow - action: organization:team:create - resources: [] - - id: 21 - effect: allow - action: organization:team:read - resources: - - organization:org-can:team:team-can - roles: - - id: 17 - name: existing - description: Organization existing role - canonical: role-can - rules: - - id: 1 - effect: allow - action: organization:delete - resources: - - organization:org-can - - organization:org-can2 - - id: 20 - effect: allow - action: organization:team:create - resources: [] - - id: 21 - effect: allow - action: organization:team:read - resources: - - organization:org-can:team:team-can - - id: 10 - name: existing - description: Organization existing role - canonical: role-can - rules: - - id: 1 - effect: allow - action: organization:delete - resources: - - organization:org-can - - organization:org-can2 - - id: 21 - effect: allow - action: organization:team:read - resources: - - organization:org-can:team:team-can - member_count: 12 - members_preview: - - id: 42 - username: coder - given_name: Cody - family_name: Coder - email: coder@company.com - created_at: 678123 - - id: 43 - username: tester - given_name: Tony - family_name: Tester - email: tester@company.com - created_at: 678123 - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - "411": - description: The request has a body but it doesn't have a Content-Length - header. - content: {} - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - x-codegen-request-body-name: body - delete: - tags: - - Organization teams - description: Delete a team of the organization. - operationId: deleteTeam - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: team_canonical - in: path - description: A canonical of a team. - required: true - schema: - $ref: '#/components/schemas/Canonical' - responses: - "204": - description: Team has been deleted. - content: {} - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - /organizations/{organization_canonical}/workers: - get: - tags: - - Organization workers - description: Get the workers that the authenticated user has access to. - operationId: getWorkers - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: page_index - in: query - description: The page number to request. The first page is 1. - schema: - type: integer - format: uint32 - default: 1 - - name: page_size - in: query - description: The number of items at most which the response can have. - schema: - type: integer - format: uint32 - default: 1000 - responses: - "200": - description: List of the workers which authenticated user has access to. - content: - application/json: - schema: - required: - - data - - pagination - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/Worker' - pagination: - $ref: '#/components/schemas/Pagination' - example: - data: - - name: worker1 - state: running - version: "2.1" - platform: linux - ephemeral: false - active_containers: 256 - active_volumes: 0 - team: org1 - start_time: 1552997739 - - name: worker2 - state: running - version: "2.1" - platform: linux - tags: - - fastcpu - ephemeral: true - active_containers: 256 - active_volumes: 10 - start_time: 1552997639 - team: org2 - - name: worker3 - state: running - version: "2.1" - platform: linux - tags: - - ssd - ephemeral: true - active_containers: 300 - active_volumes: 20 - start_time: 1552997839 - team: org3 - pagination: - index: 1 - size: 5 - total: 3 - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - /organizations/{organization_canonical}/ancestors: - get: - tags: - - Organizations - description: Get all the ancestors between the Organization and the User with - the shortest path. - operationId: getAncestors - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - responses: - "200": - description: Get all the ancestors between the Organization and the User - with the shortest path. 0 index is the parent and n is the searched child - content: - application/json: - schema: - required: - - data - - pagination - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/Organization' - pagination: - $ref: '#/components/schemas/Pagination' - example: - data: - - canonical: org1 - id: 1 - name: Organization 1 - ci_team_name: asfdOPNljk - created_at: 1503225026 - updated_at: 1503335026 - blocked: [] - quotas: false - can_create_appearance: true - can_children_create_appearance: true - - canonical: org2 - id: 2 - name: Organization 2 - ci_team_name: asfdOPNljk - created_at: 1501131026 - updated_at: 1503333026 - blocked: - - require_payment - quotas: false - can_create_appearance: true - can_children_create_appearance: true - - canonical: org3 - id: 3 - name: Organization 3 - ci_team_name: asfdOPNljk - created_at: 1500135021 - updated_at: 1503332021 - blocked: - - require_payment - quotas: false - can_create_appearance: true - can_children_create_appearance: true - pagination: - total: 42 - index: 33 - size: 10 - "401": - description: The user cannot be authenticated with the credentials which - she/he has used. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - code: Unauthenticated - message: invalid credentials - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - /organizations/{organization_canonical}/branches: - get: - tags: - - Organizations - description: | - Return all the branches of repository. If the repository is empty then an - empty list will be returned. - operationId: getRepoBranches - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: credential_canonical - in: query - description: A Credential canonical - schema: - $ref: '#/components/schemas/Canonical' - - name: git_url - in: query - description: Git URL to repository - required: true - schema: - pattern: "^((/|~)[^/]*)+.(\\.git)|(([\\w\\]+@[\\w\\.]+))(:(//)?)([\\w\\\ - .@\\:/\\-~]+)(/)?" - type: string - responses: - "200": - description: List of the repository branches - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - type: array - items: - type: string - example: - data: - - stacks - - stacks2 - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - /organizations/{organization_canonical}/can_do: - post: - tags: - - Organizations - description: Checks if the JWT can do the action - operationId: canDo - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - requestBody: - description: The information of the authorization - content: - application/vnd.cycloid.io.v1+json: - schema: - $ref: '#/components/schemas/CanDoInput' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/CanDoInput' - required: true - responses: - "200": - description: The information of the possibility to do the action - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/CanDoOutput' - example: - data: - ok: true - entity_canonicals: - - pepito - - grillo - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - x-codegen-request-body-name: body - /organizations: - get: - tags: - - Organizations - description: Get the organizations that the authenticated user has access. - operationId: getOrgs - parameters: - - name: page_index - in: query - description: The page number to request. The first page is 1. - schema: - type: integer - format: uint32 - default: 1 - - name: page_size - in: query - description: The number of items at most which the response can have. - schema: - type: integer - format: uint32 - default: 1000 - - name: organization_name - in: query - description: Search by the organization's name - schema: - type: string - - name: organization_created_at - in: query - description: Search by organization's creation date - schema: - type: integer - format: uint64 - - name: order_by - in: query - description: | - Allows to order the list of items. Example usage: field_name:asc - schema: - type: string - responses: - "200": - description: List of the organizations which authenticated user has access. - content: - application/json: - schema: - required: - - data - - pagination - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/Organization' - pagination: - $ref: '#/components/schemas/Pagination' - example: - data: - - canonical: org1 - id: 1 - name: Organization 1 - ci_team_name: asfdOPNljk - ci_port: 443 - ci_url: https://scheduler.cycloid.io - created_at: 1503225026 - updated_at: 1503335026 - has_children: true - blocked: [] - quotas: false - can_create_appearance: true - can_children_create_appearance: true - subscription: - expires_at: 1501131026 - members_count: 10 - plan: - id: 5 - name: Free Trial - canonical: free_trial - - canonical: org2 - id: 1 - name: Organization 2 - ci_team_name: asfdOPNljk - ci_port: 443 - ci_url: https://scheduler.cycloid.io - created_at: 1501131026 - updated_at: 1503333026 - has_children: false - blocked: [] - quotas: false - can_create_appearance: true - can_children_create_appearance: true - subscription: - expires_at: 1501131026 - members_count: 10 - plan: - id: 5 - name: Free Trial - canonical: free_trial - - canonical: org3 - id: 1 - name: Organization 3 - ci_team_name: asfdOPNljk - ci_port: 443 - ci_url: https://scheduler.cycloid.io - created_at: 1500135021 - updated_at: 1503332021 - has_children: false - blocked: [] - quotas: false - can_create_appearance: true - can_children_create_appearance: true - subscription: - expires_at: 1501131026 - members_count: 10 - plan: - id: 5 - name: Free Trial - canonical: free_trial - pagination: - index: 1 - size: 10 - total: 3 - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - post: - tags: - - Organizations - description: "Create a new organization, making the authenticated user the owner\ - \ of it." - operationId: createOrg - requestBody: - description: The information of the organization to create. - content: - application/vnd.cycloid.io.v1+json: - schema: - $ref: '#/components/schemas/NewOrganization' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/NewOrganization' - required: true - responses: - "200": - description: Organization created. The body contains the information of - the new created organization. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/Organization' - example: - data: - id: 1 - canonical: org1 - name: Organization 1 - ci_team_name: asfdOPNljk - ci_port: 443 - ci_url: https://scheduler.cycloid.io - created_at: 1503225026 - updated_at: 1503335026 - has_children: false - blocked: [] - quotas: false - can_create_appearance: true - can_children_create_appearance: false - "411": - description: The request has a body but it doesn't have a Content-Length - header. - content: {} - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - x-codegen-request-body-name: body - /organizations/{organization_canonical}: - get: - tags: - - Organizations - description: Get the information of the organization. - operationId: getOrg - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - responses: - "200": - description: The information of the organization which has the specified - ID. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/Organization' - example: - data: - id: 1 - canonical: org3 - ci_team_name: asfdOPNljk - name: Organization 3 - blocked: [] - has_children: false - quotas: false - can_create_appearance: true - can_children_create_appearance: false - created_at: 1500135021 - updated_at: 1503332021 - subscription: - expires_at: 1501131026 - members_count: 10 - plan: - id: 5 - name: Free Trial - canonical: free_trial - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - put: - tags: - - Organizations - description: Update the information of the organization. - operationId: updateOrg - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - requestBody: - description: The information of the organization to update. - content: - application/vnd.cycloid.io.v1+json: - schema: - $ref: '#/components/schemas/UpdateOrganization' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/UpdateOrganization' - required: true - responses: - "200": - description: Organization updated. The body contains information of the - updated organization. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/Organization' - example: - data: - id: 1 - canonical: org2 - ci_team_name: asfdOPNljk - name: Organization 2 - blocked: [] - quotas: false - can_create_appearance: true - can_children_create_appearance: true - created_at: 1501131026 - updated_at: 1503333026 - subscription: - expires_at: 1501131026 - members_count: 10 - plan: - id: 5 - name: Free Trial - canonical: free_trial - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - "411": - description: The request has a body but it doesn't have a Content-Length - header. - content: {} - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - x-codegen-request-body-name: body - delete: - tags: - - Organizations - description: Delete the organization. - operationId: deleteOrg - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - responses: - "204": - description: Organization has been deleted. - content: {} - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - /organizations/{organization_canonical}/summary: - get: - tags: - - Organizations - description: Get the summary of the organization - operationId: getSummary - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - responses: - "200": - description: The summary object - content: - application/json: - schema: - required: - - summary - type: object - properties: - summary: - $ref: '#/components/schemas/Summary' - example: - summary: - projects: 5 - pipelines: 5 - credentials: 5 - service_catalog_sources: 5 - config_repositories: 5 - teams: 5 - users: 5 - roles: 5 - service_catalogs: 5 - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - /saml2/acs: - post: - tags: - - SAML2 - description: Assertion Consumer Service callback endpoint for the SAML2 Identity - Provider. - operationId: samlAssertionConsumerService - requestBody: - content: - application/x-www-form-urlencoded: - schema: - type: object - properties: - SAMLResponse: - type: string - description: Base64-encoded SAML authentication response document. - responses: - "303": - description: "The response will always be a redirect to the front-end with\ - \ the authentication code. With this code, the application can proceed\ - \ with a normal OAuth flow, by sending it to the /user/saml2/oauth endpoint." - headers: - Location: - description: "Location URL will contain either a \"code\" or \"error\"\ - \ query parameter, depending on authentication result." - schema: - type: string - format: uri - content: {} - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - security: [] - /saml2: - get: - tags: - - SAML2 - description: Returns the Cycloid instance's SAML2 metadata that can be plugged - into an Identity Provider. - operationId: getSamlMetadata - responses: - "200": - description: SAML2 XML metadata describing the Cycloid Service Provider. - content: - application/xml: - schema: - type: object - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/xml: - schema: - $ref: '#/components/schemas/ErrorPayload' - application/json: - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/xml: - schema: - $ref: '#/components/schemas/ErrorPayload' - application/json: - example: - errors: - - message: Server Internal error - code: Unexpected - security: [] - /organizations/{organization_canonical}/service_catalogs: - get: - tags: - - Service catalogs - description: Return all the service catalogs - operationId: listServiceCatalogs - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: page_index - in: query - description: The page number to request. The first page is 1. - schema: - type: integer - format: uint32 - default: 1 - - name: page_size - in: query - description: The number of items at most which the response can have. - schema: - type: integer - format: uint32 - default: 1000 - - name: service_catalog_status - in: query - description: The status of the catalog service used for filtering. - schema: - type: string - - name: service_catalog_own - in: query - description: | - Filters the Service Catalogs to only show the ones owned by the User Organization - schema: - type: boolean - - name: service_catalog_trusted - in: query - description: | - Filters the Service Catalogs to only show the ones that are from trusted source (Cycloid) - schema: - type: boolean - - name: service_catalog_template - in: query - description: | - Filters the Service Catalogs to only show the ones that are templates - schema: - type: boolean - default: false - responses: - "200": - description: List of the service catalogs. - content: - application/json: - schema: - required: - - data - - pagination - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/ServiceCatalog' - pagination: - $ref: '#/components/schemas/Pagination' - example: - data: - - name: stack-magento - id: 1 - author: Cycloid - canonical: stack-magento - image: http://via.placeholder.com/150x150 - description: Super magento stack - trusted: true - keywords: - - stack - - php - ref: orgCanonical:stackCanonical - directory: /config - status: private - service_catalog_source_canonical: scscan - technologies: - - technology: nginx - version: "1.15" - - technology: debian - version: "9.1" - - technology: magento - version: "2.2" - - technology: Php - version: "7.2" - - technology: Redis - version: "2.4" - - technology: Elasticsearch - version: "6.2" - created_at: 1503225026 - updated_at: 1503335026 - - name: infra-classic-web - id: 2 - author: Cycloid - canonical: stack-magento - image: http://via.placeholder.com/150x150 - description: Super magento stack - trusted: false - keywords: - - stack - - php - ref: cycloidio:stack-magento - status: private - service_catalog_source_canonical: scscan - technologies: - - technology: nginx - version: "1.15" - - technology: debian - version: "9.1" - - technology: magento - version: "2.2" - - technology: Php - version: "7.2" - - technology: Redis - version: "2.4" - - technology: Elasticsearch - version: "6.2" - created_at: 1503225026 - updated_at: 1503335026 - pagination: - index: 1 - size: 10 - total: 2 - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - post: - tags: - - Service catalogs - description: Create a new Service Catalog - operationId: createServiceCatalog - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - requestBody: - description: The information of the ServiceCatalog. - content: - application/vnd.cycloid.io.v1+json: - schema: - $ref: '#/components/schemas/NewServiceCatalog' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/NewServiceCatalog' - required: true - responses: - "200": - description: The information of the service catalog. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/ServiceCatalog' - example: - data: - id: 1 - name: stack-magento - author: Cycloid - canonical: stack-magento - image: http://via.placeholder.com/150x150 - description: Super magento stack - type: stack - trusted: true - keywords: - - stack - - php - ref: orgCanonical:stackCanonical - directory: /config - status: private - technologies: - - technology: nginx - version: "1.15" - - technology: debian - version: "9.1" - - technology: magento - version: "2.2" - - technology: Php - version: "7.2" - - technology: Redis - version: "2.4" - - technology: Elasticsearch - version: "6.2" - created_at: 1503225026 - updated_at: 1503335026 - service_catalog_source_canonical: scscan - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - x-codegen-request-body-name: body - /organizations/{organization_canonical}/service_catalogs/{service_catalog_ref}/config: - get: - tags: - - Service catalogs - description: Get the config of the service catalog - operationId: getServiceCatalogConfig - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: service_catalog_ref - in: path - description: A Service Catalog name - required: true - schema: - pattern: "^[a-z0-9]+[a-z0-9\\-_]+[a-z0-9]+:[a-z0-9]+[a-z0-9\\-_]+[a-z0-9]+$" - type: string - responses: - "200": - description: The config of the service catalog. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - type: object - properties: {} - example: - data: - first-usecase: - pipeline: - pipeline: - path: pipeline/magento.yml - content: | - groups: - - - name: magento-((env)) - jobs: - - magento-((env))-build - - full-deploy-front-magento-((env)) - - app-deploy-front-magento-((env)) - - terraform-plan-magento-((env)) - - terraform-apply-magento-((env)) - - magento-((env))-unittests - - magento-((env))-functional-tests - - resource_types: - - - name: terraform - type: docker-image - source: - repository: ljfranklin/terraform-resource - - resources: - - - name: terraform-magento-((env)) - type: terraform - source: - storage: - bucket: ((terraform_storage_bucket_name)) - bucket_path: ((terraform_storage_bucket_path)) - region_name: ((aws_default_region)) - access_key_id: "((terraform_storage_access_key))" - secret_access_key: "((terraform_storage_secret_key))" - vars: - access_key: ((aws_access_key)) - secret_key: ((aws_secret_key)) - env: - AWS_ACCESS_KEY_ID: ((aws_access_key)) - AWS_DEFAULT_REGION: ((aws_default_region)) - AWS_SECRET_ACCESS_KEY: ((aws_secret_key)) - variables: - path: pipeline/variables.sample.yml - destination: pipeline/($ environment $)-variables.yml - content: | - env: ($ environment $) - magento_deploy_bucket_name: magento-deploy - magento_deploy_bucket_object_path: /catalog-magento/($ environment $)/magento.tar.gz - magento_deploy_bucket_region: eu-west-1 - magento_deploy_bucket_access_key: ... - magento_deploy_bucket_secret_access_key: ... - terraform_storage_access_key: ... - terraform_storage_secret_key: ... - terraform_storage_bucket_name: magento-terraform-remote-state - terraform_storage_bucket_path: magento/($ environment $) - aws_access_key: ... - aws_secret_key: ... - aws_default_region: eu-west-1 - - ansible_vault_password: ... - bastion_url: admin@bastion.server.com - bastion_private_key_pair: |- - -----BEGIN RSA PRIVATE KEY----- - -----END RSA PRIVATE KEY----- - - catalog_magento_git_private_key: |- - -----BEGIN RSA PRIVATE KEY----- - -----END RSA PRIVATE KEY----- - - magento_git_repository: git@github.com:myuser/code-magento.git - magento_git_branch: master - magento_git_private_key: |- - -----BEGIN RSA PRIVATE KEY----- - -----END RSA PRIVATE KEY----- - - - magento_config_git_repository: git@github.com:myuser/config-magento.git - magento_config_git_branch: master - magento_config_git_private_key: |- - -----BEGIN RSA PRIVATE KEY----- - -----END RSA PRIVATE KEY----- - ansible: - magento: - path: ansible/environments/front.yml.sample - destination: ansible/environments/($ environment $)-front.yml - content: | - # In this file you could override any variables present in default_front.yaml file - - # Usually you might want to override those variables : - # magento_backend_frontname: admin - # magento_admin_firstname: admin - # magento_admin_lastname: admin - # magento_admin_email: root@localhost.local - # magento_admin_user: admin - - # magento_admin_password: 4Bigs3cr3t - - # In case you want to use vault to encrypt this password use the following command to generate the ansible vault var : - # echo -n "4Bigs3cr3t" | ansible-vault encrypt_string --stdin-name=magento_admin_password - #>> magento_admin_password: !vault | - #>> $ANSIBLE_VAULT;1.1;AES256 - #>> 37363232383334316164366337366430316535636130376134323366313565356365363662653539 - #>> 3161303331303565643831383839626263653362636466660a316530613935393464366536383839 - #>> 30303836326138306339623431356234333239343435623333343333623938633761636132303662 - #>> 3135343861383531660a393934316237363961663865393939313966373838653339326565353263 - #>> 6238 - terraform: - magento: - path: terraform/magento.tf.sample - destination: terraform/magento/($ environment $)/magento.tf - content: | - variable "rds_password" { - default = "ChangeMePls" - } - - module "magento" { - source = "module-magento" - - env = "($ environment $)" - vpc_id = "" - private_subnets_ids = ["private-subnets"] - magento_ssl_cert = "" - bastion_sg_allow = "" - public_subnets_ids = [""] - - rds_password = "${var.rds_password}" - - # project = "magento" - - # FIXME optimized false : should be changes with the instance type ? - - # rds_database = "magento" - # rds_disk_size = 10 - # rds_multiaz = false - # rds_storage_type = "gp2" - # rds_subnet = "" - # rds_type = "db.t2.small" - # rds_username = "magento" - # rds_engine = ""mysql" - # rds_engine_version = "5.7.16" - # rds_backup_retention = 7 - # rds_parameters = "" - - # cache_subnet = "cache-subnet-id" - # elasticache_type = "cache.t2.micro" - # elasticache_nodes = "1 - # elasticache_parameter_group_name = "default.redis3.2" - # elasticache_engine = "redis" - # elasticache_port = "6379" - # front_count = "1" - # front_disk_size = "60" - # front_disk_type = "gp2" - # front_type = "t2.small" - - } - forms: - pipeline: - group1: - - widget: text_area - default: nobucket - type: string - description: Bucket used to store magento code - key: magento_deploy_bucket_name - name: The bucket used - - widget: text_area - type: string - description: Doesn't matter - key: no-exist - name: Some imaginary var - terraform: - group2: - - widget: simple_text - type: array - description: List of public network IDs - key: public_subnets_ids - name: Pub nets - - widget: text_area - type: string - description: The VPC ID to run the project - key: vpc_id - name: VPC ID - second-usecase: - pipeline: - pipeline: - path: pipeline/magento.yml - content: | - groups: - - - name: magento-((env)) - jobs: - - magento-((env))-build - - full-deploy-front-magento-((env)) - - app-deploy-front-magento-((env)) - - terraform-plan-magento-((env)) - - terraform-apply-magento-((env)) - - magento-((env))-unittests - - magento-((env))-functional-tests - - resource_types: - - - name: terraform - type: docker-image - source: - repository: ljfranklin/terraform-resource - - resources: - - - name: terraform-magento-((env)) - type: terraform - source: - storage: - bucket: ((terraform_storage_bucket_name)) - bucket_path: ((terraform_storage_bucket_path)) - region_name: ((aws_default_region)) - access_key_id: "((terraform_storage_access_key))" - secret_access_key: "((terraform_storage_secret_key))" - vars: - access_key: ((aws_access_key)) - secret_key: ((aws_secret_key)) - env: - AWS_ACCESS_KEY_ID: ((aws_access_key)) - AWS_DEFAULT_REGION: ((aws_default_region)) - AWS_SECRET_ACCESS_KEY: ((aws_secret_key)) - variables: - path: pipeline/variables.sample.yml - destination: pipeline/($ environment $)-variables.yml - content: | - env: ($ environment $) - magento_deploy_bucket_name: magento-deploy - magento_deploy_bucket_object_path: /catalog-magento/($ environment $)/magento.tar.gz - magento_deploy_bucket_region: eu-west-1 - magento_deploy_bucket_access_key: ... - magento_deploy_bucket_secret_access_key: ... - terraform_storage_access_key: ... - terraform_storage_secret_key: ... - terraform_storage_bucket_name: magento-terraform-remote-state - terraform_storage_bucket_path: magento/($ environment $) - aws_access_key: ... - aws_secret_key: ... - aws_default_region: eu-west-1 - - ansible_vault_password: ... - bastion_url: admin@bastion.server.com - bastion_private_key_pair: |- - -----BEGIN RSA PRIVATE KEY----- - -----END RSA PRIVATE KEY----- - - catalog_magento_git_private_key: |- - -----BEGIN RSA PRIVATE KEY----- - -----END RSA PRIVATE KEY----- - - magento_git_repository: git@github.com:myuser/code-magento.git - magento_git_branch: master - magento_git_private_key: |- - -----BEGIN RSA PRIVATE KEY----- - -----END RSA PRIVATE KEY----- - - - magento_config_git_repository: git@github.com:myuser/config-magento.git - magento_config_git_branch: master - magento_config_git_private_key: |- - -----BEGIN RSA PRIVATE KEY----- - -----END RSA PRIVATE KEY----- - ansible: - magento: - path: ansible/environments/front.yml.sample - destination: ansible/environments/($ environment $)-front.yml - content: | - # In this file you could override any variables present in default_front.yaml file - - # Usually you might want to override those variables : - # magento_backend_frontname: admin - # magento_admin_firstname: admin - # magento_admin_lastname: admin - # magento_admin_email: root@localhost.local - # magento_admin_user: admin - - # magento_admin_password: 4Bigs3cr3t - - # In case you want to use vault to encrypt this password use the following command to generate the ansible vault var : - # echo -n "4Bigs3cr3t" | ansible-vault encrypt_string --stdin-name=magento_admin_password - #>> magento_admin_password: !vault | - #>> $ANSIBLE_VAULT;1.1;AES256 - #>> 37363232383334316164366337366430316535636130376134323366313565356365363662653539 - #>> 3161303331303565643831383839626263653362636466660a316530613935393464366536383839 - #>> 30303836326138306339623431356234333239343435623333343333623938633761636132303662 - #>> 3135343861383531660a393934316237363961663865393939313966373838653339326565353263 - #>> 6238 - terraform: - magento: - path: terraform/magento.tf.sample - destination: terraform/magento/($ environment $)/magento.tf - content: | - variable "rds_password" { - default = "ChangeMePls" - } - - module "magento" { - source = "module-magento" - - env = "($ environment $)" - vpc_id = "" - private_subnets_ids = ["private-subnets"] - magento_ssl_cert = "" - bastion_sg_allow = "" - public_subnets_ids = [""] - - rds_password = "${var.rds_password}" - - # project = "magento" - - # FIXME optimized false : should be changes with the instance type ? - - # rds_database = "magento" - # rds_disk_size = 10 - # rds_multiaz = false - # rds_storage_type = "gp2" - # rds_subnet = "" - # rds_type = "db.t2.small" - # rds_username = "magento" - # rds_engine = ""mysql" - # rds_engine_version = "5.7.16" - # rds_backup_retention = 7 - # rds_parameters = "" - - # cache_subnet = "cache-subnet-id" - # elasticache_type = "cache.t2.micro" - # elasticache_nodes = "1 - # elasticache_parameter_group_name = "default.redis3.2" - # elasticache_engine = "redis" - # elasticache_port = "6379" - # front_count = "1" - # front_disk_size = "60" - # front_disk_type = "gp2" - # front_type = "t2.small" - - } - forms: - pipeline: - group1: - - widget: text_area - default: nobucket - type: string - description: Bucket used to store magento code - key: magento_deploy_bucket_name - name: The bucket used - - widget: text_area - type: string - description: Doesn't matter - key: no-exist - name: Some imaginary var - terraform: - group2: - - widget: simple_text - type: array - description: List of public network IDs - key: public_subnets_ids - name: Pub nets - - widget: text_area - type: string - description: The VPC ID to run the project - key: vpc_id - name: VPC ID - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - /organizations/{organization_canonical}/service_catalogs/{service_catalog_ref}: - get: - tags: - - Service catalogs - description: Get the information of the service catalog - operationId: getServiceCatalog - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: service_catalog_ref - in: path - description: A Service Catalog name - required: true - schema: - pattern: "^[a-z0-9]+[a-z0-9\\-_]+[a-z0-9]+:[a-z0-9]+[a-z0-9\\-_]+[a-z0-9]+$" - type: string - responses: - "200": - description: The information of the service catalog. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/ServiceCatalog' - example: - data: - id: 1 - name: stack-magento - author: Cycloid - canonical: stack-magento - image: http://via.placeholder.com/150x150 - description: Super magento stack - trusted: true - keywords: - - stack - - php - status: private - ref: cycloidio:stack-magento - directory: / - technologies: - - technology: nginx - version: "1.15" - - technology: debian - version: "9.1" - - technology: magento - version: "2.2" - - technology: Php - version: "7.2" - - technology: Redis - version: "2.4" - - technology: Elasticsearch - version: "6.2" - service_catalog_source_canonical: scscan - created_at: 1503225026 - updated_at: 1503335026 - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - put: - tags: - - Service catalogs - description: Update the information of the service catalog - operationId: updateServiceCatalog - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: service_catalog_ref - in: path - description: A Service Catalog name - required: true - schema: - pattern: "^[a-z0-9]+[a-z0-9\\-_]+[a-z0-9]+:[a-z0-9]+[a-z0-9\\-_]+[a-z0-9]+$" - type: string - requestBody: - description: The information of the ServiceCatalog Terraform. - content: - application/vnd.cycloid.io.v1+json: - schema: - $ref: '#/components/schemas/NewServiceCatalog' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/NewServiceCatalog' - required: true - responses: - "200": - description: Updated the Service Catalog - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/ServiceCatalog' - example: - data: - id: 1 - name: stack-magento - author: Cycloid - canonical: stack-magento - image: http://via.placeholder.com/150x150 - description: Super magento stack - type: stack - trusted: true - keywords: - - stack - - php - ref: cycloidio:stack-magento - directory: / - status: private - technologies: - - technology: nginx - version: "1.15" - - technology: debian - version: "9.1" - - technology: magento - version: "2.2" - - technology: Php - version: "7.2" - - technology: Redis - version: "2.4" - - technology: Elasticsearch - version: "6.2" - created_at: 1503225026 - updated_at: 1503335026 - service_catalog_source_canonical: scscan - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - x-codegen-request-body-name: body - delete: - tags: - - Service catalogs - description: Delete the service catalog. - operationId: deleteServiceCatalog - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: service_catalog_ref - in: path - description: A Service Catalog name - required: true - schema: - pattern: "^[a-z0-9]+[a-z0-9\\-_]+[a-z0-9]+:[a-z0-9]+[a-z0-9\\-_]+[a-z0-9]+$" - type: string - responses: - "204": - description: Service Catalog has been deleted. - content: {} - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - "409": - description: Service Catalog deletion has internal conflict - content: {} - /organizations/{organization_canonical}/service_catalogs/{service_catalog_ref}/template: - post: - tags: - - Service catalogs - description: | - Create a new Service Catalog using the ref and use case passed as template - operationId: createServiceCatalogFromTemplate - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: service_catalog_ref - in: path - description: A Service Catalog name - required: true - schema: - pattern: "^[a-z0-9]+[a-z0-9\\-_]+[a-z0-9]+:[a-z0-9]+[a-z0-9\\-_]+[a-z0-9]+$" - type: string - requestBody: - description: The information of the ServiceCatalog. - content: - application/vnd.cycloid.io.v1+json: - schema: - $ref: '#/components/schemas/NewServiceCatalogFromTemplate' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/NewServiceCatalogFromTemplate' - required: true - responses: - "200": - description: The information of the service catalog. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/ServiceCatalog' - example: - data: - name: bootstrap-stack - author: Cycloid - canonical: bootstrap-stack - service_catalog_source_canonical: scscan - use_case: aws-ec2 - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - x-codegen-request-body-name: body - /organizations/{organization_canonical}/service_catalogs/{service_catalog_ref}/{use_case_canonical}/terraform: - get: - tags: - - Service catalogs - description: Get the information of the service catalog Terraform config - operationId: getServiceCatalogTerraform - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: service_catalog_ref - in: path - description: A Service Catalog name - required: true - schema: - pattern: "^[a-z0-9]+[a-z0-9\\-_]+[a-z0-9]+:[a-z0-9]+[a-z0-9\\-_]+[a-z0-9]+$" - type: string - - name: use_case_canonical - in: path - description: A use case canonical - required: true - schema: - $ref: '#/components/schemas/Canonical' - responses: - "200": - description: The information of Terraform - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/TerraformJSONConfig' - example: - data: - config: - data: - aws_ami: - debian_jessie_latest: - most_recent: true - resource: - aws_elb: - front: - name: "${var.project}-front-${var.env}" - tags: - name: some name - variable: - front_disk_size: - default: 60 - provider: - aws: - access_key: "${var.access_key}" - locals: - codecommit_repository_name: something - output: - sensitive: - sensitive: true - value: VALUE - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - put: - tags: - - Service catalogs - description: Update/Create the information of the service catalog Terraform - config - operationId: updateServiceCatalogTerraform - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: service_catalog_ref - in: path - description: A Service Catalog name - required: true - schema: - pattern: "^[a-z0-9]+[a-z0-9\\-_]+[a-z0-9]+:[a-z0-9]+[a-z0-9\\-_]+[a-z0-9]+$" - type: string - - name: use_case_canonical - in: path - description: A use case canonical - required: true - schema: - $ref: '#/components/schemas/Canonical' - requestBody: - description: The information of the ServiceCatalog Terraform. - content: - application/vnd.cycloid.io.v1+json: - schema: - $ref: '#/components/schemas/TerraformJSONConfig' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/TerraformJSONConfig' - required: true - responses: - "204": - description: Configuration has been updated - content: {} - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - x-codegen-request-body-name: body - /organizations/{organization_canonical}/service_catalogs/{service_catalog_ref}/terraform/diagram: - get: - tags: - - Service catalogs - description: Get the information of the service catalog Terraform diagram - operationId: getServiceCatalogTerraformDiagram - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: service_catalog_ref - in: path - description: A Service Catalog name - required: true - schema: - pattern: "^[a-z0-9]+[a-z0-9\\-_]+[a-z0-9]+:[a-z0-9]+[a-z0-9\\-_]+[a-z0-9]+$" - type: string - responses: - "200": - description: The information of Terraform Diagram - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/TerraformJSONDiagram' - created_at: - minimum: 0 - type: integer - format: uint64 - updated_at: - minimum: 0 - type: integer - format: uint64 - example: - data: - random: - data: true - created_at: 1503225026 - updated_at: 1503335026 - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - put: - tags: - - Service catalogs - description: Update/Create the information of the service catalog Terraform - diagram - operationId: updateServiceCatalogTerraformDiagram - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: service_catalog_ref - in: path - description: A Service Catalog name - required: true - schema: - pattern: "^[a-z0-9]+[a-z0-9\\-_]+[a-z0-9]+:[a-z0-9]+[a-z0-9\\-_]+[a-z0-9]+$" - type: string - requestBody: - description: The information of the ServiceCatalog Terraform Diagram - content: - application/vnd.cycloid.io.v1+json: - schema: - $ref: '#/components/schemas/TerraformJSONDiagram' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/TerraformJSONDiagram' - required: true - responses: - "204": - description: Configuration has been updated - content: {} - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - x-codegen-request-body-name: body - /organizations/{organization_canonical}/service_catalogs/{service_catalog_ref}/terraform/diagram/image: - get: - tags: - - Service catalogs - description: Get the SC TF Image - operationId: getServiceCatalogTerraformImage - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: service_catalog_ref - in: path - description: A Service Catalog name - required: true - schema: - pattern: "^[a-z0-9]+[a-z0-9\\-_]+[a-z0-9]+:[a-z0-9]+[a-z0-9\\-_]+[a-z0-9]+$" - type: string - responses: - "200": - description: The SC TF Image - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/TerraformImage' - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - put: - tags: - - Service catalogs - description: Update/Create the Image for the SC TF Image - operationId: updateServiceCatalogTerraformImage - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: service_catalog_ref - in: path - description: A Service Catalog name - required: true - schema: - pattern: "^[a-z0-9]+[a-z0-9\\-_]+[a-z0-9]+:[a-z0-9]+[a-z0-9\\-_]+[a-z0-9]+$" - type: string - requestBody: - description: The information of the ServiceCatalog Terraform Diagram - content: - application/vnd.cycloid.io.v1+json: - schema: - $ref: '#/components/schemas/TerraformImage' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/TerraformImage' - required: true - responses: - "204": - description: Configuration has been updated - content: {} - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - x-codegen-request-body-name: body - /organizations/{organization_canonical}/service_catalogs/{service_catalog_ref}/dependencies/validate: - get: - tags: - - Service catalogs - description: Validates the dependencies of a Service Catalog - operationId: validateServiceCatalogDependencies - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - - name: service_catalog_ref - in: path - description: A Service Catalog name - required: true - schema: - pattern: "^[a-z0-9]+[a-z0-9\\-_]+[a-z0-9]+:[a-z0-9]+[a-z0-9\\-_]+[a-z0-9]+$" - type: string - responses: - "200": - description: The result of the service catalog's dependencies validation - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/ServiceCatalogDependenciesValidationResult' - example: - data: - errors: - - dependency 'abc' is required to deploy the stack - warnings: - - dependency 'dep' is recommended to deploy the stack - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - /user/email/verification: - post: - tags: - - User - description: Re-send the verification user's email to the indicated address. - operationId: emailVerificationResend - requestBody: - description: The email address to re-send the verification email. This endpoint - doesn't return any error status code if the email doesn't exist nor it's - already verified for avoiding that an attacker could find registered users - email address. - content: - application/vnd.cycloid.io.v1+json: - schema: - $ref: '#/components/schemas/UserEmail' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/UserEmail' - required: true - responses: - "204": - description: The email verification has been re-sent. - content: {} - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - security: [] - x-codegen-request-body-name: body - /user/email/verification/{verification_token}: - put: - tags: - - User - description: Verify that the email address is own by the user. - operationId: emailVerification - parameters: - - name: verification_token - in: path - description: "A token for verifying emails, invitations, etc." - required: true - schema: - minLength: 5 - type: string - responses: - "204": - description: Email address has been verified. - content: {} - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - security: [] - /user/email/authentication/{authentication_token}: - put: - tags: - - User - description: Verify that the email address is own by the user. - operationId: emailAuthenticationVerification - parameters: - - name: authentication_token - in: path - description: A token for authenticating login vie email - required: true - schema: - minLength: 5 - type: string - responses: - "200": - description: The token which represents the session of the user. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/UserSession' - example: - data: - owns: - - organization:seraf:team:teamcan - permissions: - organization:team:create: - id: 21 - effect: allow - action: organization:team:read - resources: - - organization:org-can:team:team-can - token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImY0YjdiZjZlLTE1NmYtNDYxMy05NmFiLWIwMzg5NzdiMWRkMSJ9.eyJpc3MiOiJodHRwczovL2N5Y2xvaWQuaW8iLCJzdWIiOiJodHRwczovL2N5Y2xvaWQuaW8iLCJhdWQiOiJjdXN0b21lciIsIm5iZiI6MTUwMzQ3NDg2NywiaWF0IjoxNTAzNDc0ODY3LCJqdGkiOiJjNDU5ODgwMS04YWQzLTRhMDctODIwZC02MzRmN2RkMWQ2MDgiLCJjeWNsb2lkIjp7InVzZXIiOnsiaWQiOjEsInVzZXJuYW1lIjoidXNlci0xIiwiZ2l2ZW5fbmFtZSI6Ik1hcmlhbm8iLCJmYW1pbHlfbmFtZSI6IkppbWVuZXoiLCJwaWN0dXJlX3VybCI6Imh0dHBzOi8vYXZhdGFyczIuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ1NzkyMTAiLCJsb2NhbGUiOiJlbiJ9fX0.v6BuWwO6vN6PNW9d-Eqdoy7GHfUXKQ7byRbqwKRwHlA - "401": - description: The user cannot be authenticated with the credentials which - she/he has used. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - code: Unauthenticated - message: invalid credentials - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - security: [] - /user/guide: - put: - tags: - - User - description: Update user's guide progress. - operationId: updateUserGuide - requestBody: - description: The guide's progress JSON schema - content: - application/vnd.cycloid.io.v1+json: - schema: - $ref: '#/components/schemas/UserGuide' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/UserGuide' - required: false - responses: - "204": - description: The guide progress has been updated. - content: {} - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - security: [] - x-codegen-request-body-name: body - /user/login: - post: - tags: - - User - description: Authenticate a user and return a new JWT token. - operationId: login - requestBody: - description: The user content - content: - application/vnd.cycloid.io.v1+json: - schema: - $ref: '#/components/schemas/UserLogin' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/UserLogin' - required: true - responses: - "200": - description: The token which represents the session of the user. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/UserSession' - example: - data: - owns: - - organization:seraf:team:teamcan - permissions: - organization:team:create: - id: 21 - effect: allow - action: organization:team:read - resources: - - organization:org-can:team:team-can - token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImY0YjdiZjZlLTE1NmYtNDYxMy05NmFiLWIwMzg5NzdiMWRkMSJ9.eyJpc3MiOiJodHRwczovL2N5Y2xvaWQuaW8iLCJzdWIiOiJodHRwczovL2N5Y2xvaWQuaW8iLCJhdWQiOiJjdXN0b21lciIsIm5iZiI6MTUwMzQ3NDg2NywiaWF0IjoxNTAzNDc0ODY3LCJqdGkiOiJjNDU5ODgwMS04YWQzLTRhMDctODIwZC02MzRmN2RkMWQ2MDgiLCJjeWNsb2lkIjp7InVzZXIiOnsiaWQiOjEsInVzZXJuYW1lIjoidXNlci0xIiwiZ2l2ZW5fbmFtZSI6Ik1hcmlhbm8iLCJmYW1pbHlfbmFtZSI6IkppbWVuZXoiLCJwaWN0dXJlX3VybCI6Imh0dHBzOi8vYXZhdGFyczIuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ1NzkyMTAiLCJsb2NhbGUiOiJlbiJ9fX0.v6BuWwO6vN6PNW9d-Eqdoy7GHfUXKQ7byRbqwKRwHlA - "401": - description: The user cannot be authenticated with the credentials which - she/he has used. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - code: Unauthenticated - message: invalid credentials - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - security: [] - x-codegen-request-body-name: body - /user/{social_type}/oauth: - get: - tags: - - User - description: "Used to know if a user from the platform exists on that 'social_type'.\ - \ If it exists we'll return the JWT 'token', if it does not we'll return the\ - \ data of that user on the 'user' so it can be confirmed and created" - operationId: getOAuthUser - parameters: - - name: social_type - in: path - description: The OAuth Social type - required: true - schema: - type: string - enum: - - azuread - - saml2 - - google - - github - - name: oauth_code - in: query - description: The OAuth code returned form the Social Provider - required: true - schema: - type: string - responses: - "200": - description: Used to know if a user from the platform exists on that 'social_type'. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/UserOAuth' - example: - data: - user: - email: some@email.com - given_name: some name - username: some-name - picture_url: https://via.placeholder.com/150?text=cycloid.io - social_id: some-random-id - "401": - description: The user cannot be authenticated with the credentials which - she/he has used. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - code: Unauthenticated - message: invalid credentials - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - security: [] - post: - tags: - - User - description: Create a user from the OAuth 'social_type' - operationId: createOAuthUser - parameters: - - name: social_type - in: path - description: The OAuth Social type - required: true - schema: - type: string - enum: - - azuread - - saml2 - - google - - github - requestBody: - description: The user content - content: - application/vnd.cycloid.io.v1+json: - schema: - $ref: '#/components/schemas/NewOAuthUser' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/NewOAuthUser' - required: true - responses: - "200": - description: Create a user from the OAuth 'social_type' - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/UserSession' - example: - data: - token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImY0YjdiZjZlLTE1NmYtNDYxMy05NmFiLWIwMzg5NzdiMWRkMSJ9.eyJpc3MiOiJodHRwczovL2N5Y2xvaWQuaW8iLCJzdWIiOiJodHRwczovL2N5Y2xvaWQuaW8iLCJhdWQiOiJjdXN0b21lciIsIm5iZiI6MTUwMzQ3NDg2NywiaWF0IjoxNTAzNDc0ODY3LCJqdGkiOiJjNDU5ODgwMS04YWQzLTRhMDctODIwZC02MzRmN2RkMWQ2MDgiLCJjeWNsb2lkIjp7InVzZXIiOnsiaWQiOjEsInVzZXJuYW1lIjoidXNlci0xIiwiZ2l2ZW5fbmFtZSI6Ik1hcmlhbm8iLCJmYW1pbHlfbmFtZSI6IkppbWVuZXoiLCJwaWN0dXJlX3VybCI6Imh0dHBzOi8vYXZhdGFyczIuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ1NzkyMTAiLCJsb2NhbGUiOiJlbiJ9LCJvcmdhbml6YXRpb24iOnsiaWQiOjIsImNhbm9uaWNhbCI6Im9yZzIiLCJuYW1lIjoiT3JnIDIifSwicGVybWlzc2lvbnMiOnsib3JnYW5pemF0aW9uOmRlbGV0ZSI6WyIxIl0sIm9yZ2FuaXphdGlvbjp1cGRhdGUiOltdLCJvcmdhbml6YXRpb246dGVhbTpjcmVhdGUiOltdLCJvcmdhbml6YXRpb246dGVhbTpyZWFkIjpbXSwib3JnYW5pemF0aW9uOnRlYW06ZGVsZXRlIjpbIjIiXSwib3JnYW5pemF0aW9uOm1lbWJlcjpjcmVhdGUiOltdLCJvcmdhbml6YXRpb246bWVtYmVyOnJlYWQiOltdLCJvcmdhbml6YXRpb246bWVtYmVyOmRlbGV0ZSI6W10sIm9yZ2FuaXphdGlvbjpwcm9qZWN0OnJlYWQiOltdfX19.CHA3146UEHwVW6nYkDgYeSukGeZIH55mi4O0LsemenA - "401": - description: The user cannot be authenticated with the credentials which - she/he has used. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - code: Unauthenticated - message: invalid credentials - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - security: [] - x-codegen-request-body-name: body - /user/refresh_token: - get: - tags: - - User - description: "Refresh the user JWT and returns a new one if the previous is\ - \ valid. The 'organization_canonical_query' has to be of an organization in\ - \ which the user belongs to, and the 'child_canonical_query' of a child of\ - \ the 'organization_canonical_query' in any level (could be of a grand child)." - operationId: refreshToken - parameters: - - name: organization_canonical - in: query - description: A canonical of a organization used for filtering. - schema: - $ref: '#/components/schemas/Canonical' - - name: child_canonical - in: query - description: A canonical of a child organization used for filtering. - schema: - $ref: '#/components/schemas/Canonical' - responses: - "200": - description: The token which represents the session of the user. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/UserSession' - example: - data: - owns: - - organization:seraf:team:teamcan - permissions: - organization:team:create: - id: 21 - effect: allow - action: organization:team:read - resources: - - organization:org-can:team:team-can - token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImY0YjdiZjZlLTE1NmYtNDYxMy05NmFiLWIwMzg5NzdiMWRkMSJ9.eyJpc3MiOiJodHRwczovL2N5Y2xvaWQuaW8iLCJzdWIiOiJodHRwczovL2N5Y2xvaWQuaW8iLCJhdWQiOiJjdXN0b21lciIsIm5iZiI6MTUwMzQ3NDg2NywiaWF0IjoxNTAzNDc0ODY3LCJqdGkiOiJjNDU5ODgwMS04YWQzLTRhMDctODIwZC02MzRmN2RkMWQ2MDgiLCJjeWNsb2lkIjp7InVzZXIiOnsiaWQiOjEsInVzZXJuYW1lIjoidXNlci0xIiwiZ2l2ZW5fbmFtZSI6Ik1hcmlhbm8iLCJmYW1pbHlfbmFtZSI6IkppbWVuZXoiLCJwaWN0dXJlX3VybCI6Imh0dHBzOi8vYXZhdGFyczIuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ1NzkyMTAiLCJsb2NhbGUiOiJlbiJ9LCJvcmdhbml6YXRpb24iOnsiaWQiOjIsImNhbm9uaWNhbCI6Im9yZzIiLCJuYW1lIjoiT3JnIDIifSwicGVybWlzc2lvbnMiOnsib3JnYW5pemF0aW9uOmRlbGV0ZSI6WyIxIl0sIm9yZ2FuaXphdGlvbjp1cGRhdGUiOltdLCJvcmdhbml6YXRpb246dGVhbTpjcmVhdGUiOltdLCJvcmdhbml6YXRpb246dGVhbTpyZWFkIjpbXSwib3JnYW5pemF0aW9uOnRlYW06ZGVsZXRlIjpbIjIiXSwib3JnYW5pemF0aW9uOm1lbWJlcjpjcmVhdGUiOltdLCJvcmdhbml6YXRpb246bWVtYmVyOnJlYWQiOltdLCJvcmdhbml6YXRpb246bWVtYmVyOmRlbGV0ZSI6W10sIm9yZ2FuaXphdGlvbjpwcm9qZWN0OnJlYWQiOltdfX19.CHA3146UEHwVW6nYkDgYeSukGeZIH55mi4O0LsemenA - "401": - description: The user cannot be authenticated with the credentials which - she/he has used. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - code: Unauthenticated - message: invalid credentials - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - /user/reset_password: - put: - tags: - - User - description: "Reset the user password when it has been forgotten. Due to security\ - \ reasons, the endpoint doesn't return a Unprocessable Entity (422) when the\ - \ token is invalid. 404 Status code is returned if the user has been deleted\ - \ of the system between the user password request and this request." - operationId: passwordResetUpdate - requestBody: - description: The reset password payload - content: - application/vnd.cycloid.io.v1+json: - schema: - $ref: '#/components/schemas/UserPasswordResetUpdate' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/UserPasswordResetUpdate' - required: true - responses: - "204": - description: The password has been changed. - content: {} - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - security: [] - x-codegen-request-body-name: body - post: - tags: - - User - description: "Request to reset the password. Due to security reasons, this endpoint\ - \ doesn't return Not Found (404) when the email doesn't exist or belongs to\ - \ a user primary email." - operationId: passwordResetReq - requestBody: - description: The reset password payload - content: - application/vnd.cycloid.io.v1+json: - schema: - $ref: '#/components/schemas/UserPasswordResetReq' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/UserPasswordResetReq' - required: true - responses: - "204": - description: The password has been changed. - content: {} - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - security: [] - x-codegen-request-body-name: body - /user: - get: - tags: - - User - description: Get the information of the account of the authenticated user. - operationId: getUserAccount - responses: - "200": - description: The user account information. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/UserAccount' - example: - data: - created_at: 1503225026 - updated_at: 1503335026 - last_login: 1503413020 - emails: - - email: mariano@jimenez.com - verified: true - purpose: primary - username: user-1 - given_name: Mariano - family_name: Jimenez - picture_url: https://avatars2.githubusercontent.com/u/14579210 - locale: en - country: - code: GB - name: United Kingdom - guide: - tutorial: - welcome: false - letsgo: false - credentials: false - createProject: false - selectStack: false - configEnv: false - customEnvConfig: false - reviewDeploy: false - deployed: false - tasksDetails: false - finish: false - presentation: false - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - put: - tags: - - User - description: Update the information of the account of the authenticated user. - operationId: updateUserAccount - requestBody: - description: The user content - content: - application/vnd.cycloid.io.v1+json: - schema: - $ref: '#/components/schemas/UpdateUserAccount' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/UpdateUserAccount' - required: true - responses: - "200": - description: The updated user profile information. - content: - application/json: - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/UserAccount' - example: - data: - created_at: 1503225026 - updated_at: 1503335026 - last_login: 1503413020 - emails: - - email: mariano@jimenez.com - verified: true - purpose: primary - username: user-1 - given_name: Mariano - family_name: Jimenez - picture_url: https://avatars2.githubusercontent.com/u/14579210 - locale: en - country_code: UK - "409": - description: Trying setting an unverified email as the primary - content: {} - "411": - description: The request has a body but it doesn't have a Content-Length - header. - content: {} - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - "503": - description: The operation couldn't be executed or completed and it should - retried. - headers: - Retry-After: - description: The number of seconds to wait until retry the request - schema: - type: integer - format: uint16 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - code: RetryOperation - message: Operation must be retried. - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - x-codegen-request-body-name: body - post: - tags: - - User - description: Create a new User (sign-up). - operationId: signUp - requestBody: - description: The user content - content: - application/vnd.cycloid.io.v1+json: - schema: - $ref: '#/components/schemas/NewUserAccount' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/NewUserAccount' - required: true - responses: - "204": - description: Account created. The account MUST be verified through the link - sent to the email address. - content: {} - "411": - description: The request has a body but it doesn't have a Content-Length - header. - content: {} - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - security: [] - x-codegen-request-body-name: body - delete: - tags: - - User - description: The authenticated user delete itself from the system. - operationId: deleteUserAccount - responses: - "204": - description: User account has been deleted. - content: {} - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - /user/aws_marketplace/entitlement: - post: - tags: - - User - description: | - This endpoint handles redirections from AWS Marketplace to our system. - If user doesn't exist, he'll be redirected to registration page. - If user exist, he'll be redirected to login page. - operationId: handleAWSMarketplaceUserEntitlement - responses: - "301": - description: The user is redirected based on his account state. - headers: - Location: - schema: - type: string - content: {} - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - security: [] - /user/aws_marketplace: - post: - tags: - - User - description: Create a new AWS Marketplace User. - operationId: signUpAWSMarketplace - requestBody: - description: The user content - content: - application/vnd.cycloid.io.v1+json: - schema: - $ref: '#/components/schemas/NewAWSMarketplaceUserAccount' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/NewAWSMarketplaceUserAccount' - required: true - responses: - "204": - description: Account created. The account MUST be verified through the link - sent to the email address. - content: {} - "411": - description: The request has a body but it doesn't have a Content-Length - header. - content: {} - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - security: [] - x-codegen-request-body-name: body - /organizations/{organization_canonical}/members: - get: - tags: - - Organization members - description: Get the members of an organization. - operationId: getOrgMembers - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - maxLength: 100 - minLength: 3 - pattern: "^[a-z0-9]+[a-z0-9\\-_]+[a-z0-9]+$" - type: string - - name: page_index - in: query - description: The page number to request. The first page is 1. - schema: - type: integer - format: uint32 - default: 1 - - name: page_size - in: query - description: The number of items at most which the response can have. - schema: - type: integer - format: uint32 - default: 1000 - - name: invitation_state - in: query - description: Search by Invitation's state - schema: - type: string - enum: - - accepted - - pending - - declined - - name: user_given_name - in: query - description: Search by the user's given name - schema: - type: string - - name: user_family_name - in: query - description: Search by the user's family name - schema: - type: string - - name: role_name - in: query - description: Search by the role's name - schema: - type: string - - name: user_canonical - in: query - description: Search by the user canonical - schema: - type: string - - name: user_created_at - in: query - description: Search by user creation date - schema: - type: integer - format: uint64 - - name: member_created_at - in: query - description: Search by member joining date - schema: - type: integer - format: uint64 - - name: order_by - in: query - description: | - Allows to order the list of items. Example usage: field_name:asc - schema: - type: string - responses: - "200": - description: List of the members of the organization. - content: - '*/*': - schema: - required: - - data - - pagination - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/MemberOrg' - pagination: - $ref: '#/components/schemas/Pagination' - application/json: - example: - data: - - username: user-1 - id: 1 - given_name: Mariano - family_name: Jimenez - invitation_email: jordi.capdevila@fakeemail.com - email: mariano.jimenez@fakeemail.com - picture_url: https://avatars2.githubusercontent.com/u/14579210 - created_at: 1503225026 - invitation_state: accepted - last_login_at: 1503225576 - role: - id: 17 - name: existing - description: Organization existing role - canonical: role-can - rules: - - id: 1 - effect: allow - action: organization:delete - resources: - - organization:org-can - - organization:org-can2 - - id: 20 - effect: allow - action: organization:team:create - resources: [] - - id: 21 - effect: allow - action: organization:team:read - resources: - - organization:org-can:team:team-can - - username: user2 - id: 1 - given_name: Jordi - family_name: Capdevila - invitation_email: jordi.capdevila@fakeemail.com - email: jordi.capdevila@fakeemail.com - picture_url: https://avatars2.githubusercontent.com/u/14579210 - created_at: 1503281026 - last_login_at: 1503225576 - invitation_state: accepted - role: - id: 17 - name: existing - description: Organization existing role - canonical: role-can - rules: - - id: 1 - effect: allow - action: organization:delete - resources: - - organization:org-can - - organization:org-can2 - - id: 20 - effect: allow - action: organization:team:create - resources: [] - - id: 21 - effect: allow - action: organization:team:read - resources: - - organization:org-can:team:team-can - - username: user-3 - id: 1 - given_name: Ivan - family_name: Drago - invitation_email: jordi.capdevila@fakeemail.com - email: ivan.drago@fakeemail.com - picture_url: https://avatars2.githubusercontent.com/u/14579210 - created_at: 1502225026 - last_login_at: 1503225576 - invitation_state: accepted - role: - id: 17 - name: existing - description: Organization existing role - canonical: role-can - rules: - - id: 1 - effect: allow - action: organization:delete - resources: - - organization:org-can - - organization:org-can2 - - id: 20 - effect: allow - action: organization:team:create - resources: [] - - id: 21 - effect: allow - action: organization:team:read - resources: - - organization:org-can:team:team-can - pagination: - index: 1 - size: 10 - total: 3 - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - '*/*': - schema: - $ref: '#/components/schemas/ErrorPayload' - application/json: - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - '*/*': - schema: - $ref: '#/components/schemas/ErrorPayload' - application/json: - example: - errors: - - message: Entity not found - code: NotFoundEntity - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - '*/*': - schema: - $ref: '#/components/schemas/ErrorPayload' - application/json: - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - '*/*': - schema: - $ref: '#/components/schemas/ErrorPayload' - application/json: - example: - errors: - - message: Server Internal error - code: Unexpected - post: - tags: - - Organization members - description: Invite a user to be a member of the organization. - operationId: inviteUserToOrgMember - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - maxLength: 100 - minLength: 3 - pattern: "^[a-z0-9]+[a-z0-9\\-_]+[a-z0-9]+$" - type: string - requestBody: - description: The user's member invitation. - content: - '*/*': - schema: - $ref: '#/components/schemas/NewMemberInvitation' - required: true - responses: - "200": - description: The information of the member of the organization. - content: - '*/*': - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/MemberOrg' - application/json: - example: - data: - id: 1 - username: user2 - given_name: Jordi - family_name: Capdevila - invitation_email: jordi.capdevila@fakeemail.com - email: jordi.capdevila@fakeemail.com - picture_url: https://avatars2.githubusercontent.com/u/14579210 - created_at: 1503281026 - invitation_state: accepted - role: - id: 2 - name: project manager - description: A project manager - policies: - - id: 21 - code: team:read - entities: [] - description: Grant the access to read the teams of an organization - - id: 22 - code: team:edit - entities: [] - description: Grant the access to edit teams - - id: 60 - code: project:read - entities: [] - description: Grant the access to projects - - id: 61 - code: project:create - entities: [] - description: Grant the access to create a project in the organization - - id: 62 - code: project:edit - entities: [] - description: Grant the access to edit projects - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - '*/*': - schema: - $ref: '#/components/schemas/ErrorPayload' - application/json: - example: - errors: - - message: Entity not found - code: NotFoundEntity - "411": - description: The request has a body but it doesn't have a Content-Length - header. - content: {} - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - '*/*': - schema: - $ref: '#/components/schemas/ErrorPayload' - application/json: - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - '*/*': - schema: - $ref: '#/components/schemas/ErrorPayload' - application/json: - example: - errors: - - message: Server Internal error - code: Unexpected - x-codegen-request-body-name: body - /organizations/{organization_canonical}/members/{member_id}: - get: - tags: - - Organization members - description: Get the information of a member of the organization. - operationId: getOrgMember - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - maxLength: 100 - minLength: 3 - pattern: "^[a-z0-9]+[a-z0-9\\-_]+[a-z0-9]+$" - type: string - - name: member_id - in: path - description: A member id - required: true - schema: - type: integer - format: uint32 - responses: - "200": - description: The information of the member of the organization. - content: - '*/*': - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/MemberOrg' - application/json: - example: - data: - id: 1 - username: user2 - given_name: Jordi - family_name: Capdevila - invitation_email: jordi.capdevila@fakeemail.com - email: jordi.capdevila@fakeemail.com - picture_url: https://avatars2.githubusercontent.com/u/14579210 - created_at: 1503281026 - invitation_state: accepted - role: - id: 2 - name: project manager - description: A project manager - policies: - - id: 21 - code: team:read - entities: [] - description: Grant the access to read the teams of an organization - - id: 22 - code: team:edit - entities: [] - description: Grant the access to edit teams - - id: 60 - code: project:read - entities: [] - description: Grant the access to projects - - id: 61 - code: project:create - entities: [] - description: Grant the access to create a project in the organization - - id: 62 - code: project:edit - entities: [] - description: Grant the access to edit projects - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - '*/*': - schema: - $ref: '#/components/schemas/ErrorPayload' - application/json: - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - '*/*': - schema: - $ref: '#/components/schemas/ErrorPayload' - application/json: - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - '*/*': - schema: - $ref: '#/components/schemas/ErrorPayload' - application/json: - example: - errors: - - message: Server Internal error - code: Unexpected - put: - tags: - - Organization members - description: Update member of the organization. - operationId: updateOrgMember - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - maxLength: 100 - minLength: 3 - pattern: "^[a-z0-9]+[a-z0-9\\-_]+[a-z0-9]+$" - type: string - - name: member_id - in: path - description: A member id - required: true - schema: - type: integer - format: uint32 - requestBody: - description: The member information to be updated. - content: - '*/*': - schema: - $ref: '#/components/schemas/MemberAssignation' - required: true - responses: - "200": - description: The information of the member of the organization. - content: - '*/*': - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/MemberOrg' - application/json: - example: - data: - id: 1 - username: user2 - given_name: Jordi - family_name: Capdevila - invitation_email: jordi.capdevila@fakeemail.com - email: jordi.capdevila@fakeemail.com - picture_url: https://avatars2.githubusercontent.com/u/14579210 - created_at: 1503281026 - invitation_state: accepted - role: - id: 2 - name: project manager - description: A project manager - policies: - - id: 21 - code: team:read - entities: [] - description: Grant the access to read the teams of an organization - - id: 22 - code: team:edit - entities: [] - description: Grant the access to edit teams - - id: 60 - code: project:read - entities: [] - description: Grant the access to projects - - id: 61 - code: project:create - entities: [] - description: Grant the access to create a project in the organization - - id: 62 - code: project:edit - entities: [] - description: Grant the access to edit projects - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - '*/*': - schema: - $ref: '#/components/schemas/ErrorPayload' - application/json: - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - '*/*': - schema: - $ref: '#/components/schemas/ErrorPayload' - application/json: - example: - errors: - - message: Entity not found - code: NotFoundEntity - "422": - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - '*/*': - schema: - $ref: '#/components/schemas/ErrorPayload' - application/json: - example: - errors: - - message: some error - code: SomeCode - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - '*/*': - schema: - $ref: '#/components/schemas/ErrorPayload' - application/json: - example: - errors: - - message: Server Internal error - code: Unexpected - x-codegen-request-body-name: body - delete: - tags: - - Organization members - description: Remove a member of the organization. - operationId: removeOrgMember - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - maxLength: 100 - minLength: 3 - pattern: "^[a-z0-9]+[a-z0-9\\-_]+[a-z0-9]+$" - type: string - - name: member_id - in: path - description: A member id - required: true - schema: - type: integer - format: uint32 - responses: - "204": - description: Member has been removed. - content: {} - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - '*/*': - schema: - $ref: '#/components/schemas/ErrorPayload' - application/json: - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - '*/*': - schema: - $ref: '#/components/schemas/ErrorPayload' - application/json: - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - '*/*': - schema: - $ref: '#/components/schemas/ErrorPayload' - application/json: - example: - errors: - - message: Server Internal error - code: Unexpected - /organizations/{organization_canonical}/members/{member_id}/resend: - put: - tags: - - Organization members - description: Resend the email containing the verification token to accept the - member Invitation. - operationId: resendMemberInvitation - parameters: - - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - maxLength: 100 - minLength: 3 - pattern: "^[a-z0-9]+[a-z0-9\\-_]+[a-z0-9]+$" - type: string - - name: member_id - in: path - description: A member id - required: true - schema: - type: integer - format: uint32 - responses: - "204": - description: The member Invitation has been resent. - content: {} - "403": - description: "The authenticated user cannot perform the operation because,\ - \ it doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - '*/*': - schema: - $ref: '#/components/schemas/ErrorPayload' - application/json: - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - '*/*': - schema: - $ref: '#/components/schemas/ErrorPayload' - application/json: - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - '*/*': - schema: - $ref: '#/components/schemas/ErrorPayload' - application/json: - example: - errors: - - message: Server Internal error - code: Unexpected - security: [] - /members/verify/{verification_token}: - get: - tags: - - Organization members - description: Get the email address used for the pending member invitation - operationId: getPendingMemberInvitation - parameters: - - name: verification_token - in: path - description: "A token for verifying emails, invitations, etc." - required: true - schema: - minLength: 5 - type: string - responses: - "200": - description: The email address used for the pending member invitation - content: - '*/*': - schema: - required: - - data - type: object - properties: - data: - $ref: '#/components/schemas/PendingMemberInvitation' - application/json: - example: - data: - email: user@user.com - "404": - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - '*/*': - schema: - $ref: '#/components/schemas/ErrorPayload' - application/json: - example: - errors: - - message: Entity not found - code: NotFoundEntity - default: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - '*/*': - schema: - $ref: '#/components/schemas/ErrorPayload' - application/json: - example: - errors: - - message: Server Internal error - code: Unexpected - security: [] -components: - schemas: - PendingMemberInvitation: - title: PendingMemberInvitation - description: Contains the email used for the member invitation - type: object - required: - - email - properties: - email: - type: string - format: email - TerraformProviderCycloid: - title: TerraformProviderCycloid - required: - - url - - jwt - - organization_canonical - properties: - url: - type: string - jwt: - type: string - organization_canonical: - type: string - AppVersion: - title: AppVersion - required: - - branch - - revision - - version - type: object - properties: - version: - minLength: 5 - type: string - description: The version of the application. - branch: - minLength: 1 - type: string - description: The Git branch used to build the application. - revision: - maxLength: 40 - minLength: 8 - type: string - description: The Git revision used to build the application. - GeneralStatus: - title: GeneralStatus - required: - - checks - - message - - status - type: object - properties: - status: - type: string - description: The overall status for the application. - enum: - - Unknown - - Success - - Error - message: - minLength: 1 - type: string - description: Message providing information regarding the status. - checks: - type: array - description: List of all checks report type/name/status. - items: - $ref: '#/components/schemas/CheckReport' - CheckReport: - title: CheckReport - required: - - canonical - - category - - message - - status - type: object - properties: - canonical: - minLength: 1 + type: array + style: form + cost_record_type_filter: + allowEmptyValue: false + description: The type of records that you can use to filter your results. For example usage or credit. + explode: true + in: query + name: record_types + schema: + items: type: string - description: The name of the service checked. - category: - minLength: 1 + type: array + style: form + cost_regions_filter: + allowEmptyValue: false + description: The names of the regions that you can use to filter your results + explode: true + in: query + name: regions + schema: + items: type: string - description: The category of the service checked. - status: + type: array + style: form + cost_resource_tagging_filter: + description: Filter results by only tagged or not tagged resources + in: query + name: resource_tagging + schema: + enum: + - tagged_resources + - untagged_resources + type: string + cost_resources_filter: + allowEmptyValue: false + description: The names of the resources that you can use to filter your results + explode: true + in: query + name: resources + schema: + items: type: string - description: The status of the service checked. - enum: - - Unknown - - Success - - Error - message: - minLength: 1 + type: array + style: form + cost_services_filter: + allowEmptyValue: false + description: The names of the services that you can use to filter and group your results. + explode: true + in: query + name: services + schema: + items: type: string - description: The message providing information regarding the state of the - service. - AppConfig: - title: AppConfig - required: - - authentication - type: object - properties: - authentication: - $ref: '#/components/schemas/AuthConfig' - description: Global app configuration that includes all the settings and capabilities - of the Cycloid instance. It is intended to be used by clients to modify the - UI accordingly. - AuthConfig: - title: AuthConfig - required: - - local - - oauth - - saml2 - type: object - properties: - local: - $ref: '#/components/schemas/AuthConfigLocalAuth' - oauth: - type: array - description: List of OAuth providers. - items: - $ref: '#/components/schemas/AuthConfigOAuth' - saml2: - type: array - description: List of SAML2 providers. - items: - $ref: '#/components/schemas/AuthConfigSAML' - AuthConfigLocalAuth: - title: AppConfigLocalAuth - required: - - enabled - type: object - properties: - enabled: - type: boolean - description: Whether local authentication is enabled - AuthConfigOAuth: - title: AppConfigAuthOAuth - required: - - client_id - - provider - - type - type: object - properties: - provider: + type: array + style: form + cost_tag_key: + description: The key of a tag + in: query + name: key + schema: + maxLength: 127 + minLength: 3 + pattern: ^[\w\-+=.:/@ ]+$ + type: string + cost_tag_key_value_filter: + allowEmptyValue: false + description: The key and value of a tag concatenated by a ;. + explode: true + in: query + name: tags + schema: + items: + maxLength: 127 + minLength: 4 + pattern: ^[^;]+;[^;]+$ type: string - description: Name of the OAuth identity provider. - client_id: + type: array + style: form + credential_canonical: + description: A Credential canonical + in: path + name: credential_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + credential_canonical_not_required_query: + description: A Credential canonical + in: query + name: credential_canonical + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + credential_canonical_query: + description: A Credential canonical + in: query + name: credential_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + credential_options_service_query: + in: query + name: service + required: true + schema: + enum: + - gcp_bigquery + type: string + credential_type_query: + description: | + Deprecated. Please use credential_types. + A Credential type + in: query + name: credential_type + schema: + enum: + - ssh + - aws + - custom + - azure + - azure_storage + - gcp + - basic_auth + - elasticsearch + - swift + type: string + credential_types_query: + allowEmptyValue: true + description: Multiple Credential types + explode: true + in: query + name: credential_types + schema: + items: + enum: + - ssh + - aws + - custom + - azure + - azure_storage + - gcp + - basic_auth + - elasticsearch + - swift type: string - description: ID of the OAuth client. - type: + type: array + uniqueItems: true + style: form + default: + description: Value describing whether to return default + in: query + name: default + schema: + default: false + type: boolean + environment_canonical: + description: The environment canonical to use as part of a path + in: path + name: environment_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + environment_canonical_query: + description: A list of environments' canonical to filter from + in: query + name: environment_canonical + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + event_severity: + allowEmptyValue: false + description: Specify the severities of the events to be requested. The returned events must have one of the specified severities. + explode: true + in: query + name: severity + schema: + items: + enum: + - info + - warn + - err + - crit type: string - description: Type is used as discriminator for different OAuth identity - provider definitions. - discriminator: - propertyName: type - AzureADAuthConfig: - title: AppConfigAzureADOAuth - description: AzureAD OAuth configuration - allOf: - - $ref: '#/components/schemas/AuthConfigOAuth' - - required: - - tenant_id - type: object - properties: - tenant_id: - type: string - description: ID of the OAuth tenant. - GoogleOAuthConfig: - title: AppConfigGoogleOAuth - description: Google OAuth configuration - allOf: - - $ref: '#/components/schemas/AuthConfigOAuth' - GitHubOAuthConfig: - title: AppConfigGitHubOAuth - description: GitHub OAuth configuration. - allOf: - - $ref: '#/components/schemas/AuthConfigOAuth' - - required: - - host_address - type: object - properties: - host_address: - type: string - description: | - GitHub host address is used to determine where the request for the token should be sent. - In most cases this address will be https://api.github.com`, but it could be different - for onprem clients that use GitHub Enterprise. - AuthConfigSAML: - title: AppConfigSAML - required: - - provider - - sso_url - type: object - properties: - provider: + type: array + style: form + event_type: + allowEmptyValue: false + description: Specify the types of the events to be requested. The returned events must have one of the specified types. + explode: true + in: query + name: type + schema: + items: + enum: + - Cycloid + - AWS + - Monitoring + - Custom type: string - description: Entity ID of the SAML2 identity provider. - sso_url: + type: array + style: form + external_backend_default_query: + description: Filter for default Terraform External Backend + in: query + name: external_backend_default + schema: + type: boolean + external_backend_id: + description: External Backend ID + in: path + name: external_backend_id + required: true + schema: + format: uint32 + type: integer + favorite: + description: | + Flag to retrieve favorite data from the members favorite list. + in: query + name: favorite + schema: + type: boolean + filter_version: + description: A version of a resource + explode: false + in: query + name: filter_version + schema: + items: type: string - description: SSO URL to which the user should be redirected in order to - authenticate with the Identity Provider. - format: uri - Pagination: - title: Pagination - required: - - index - - size - - total - type: object - properties: - total: - minimum: 0 - type: integer - description: The total number of items. - format: uint64 - index: - minimum: 1 - type: integer - description: The index of the page sent (the first page is 1). - format: uint64 - size: - minimum: 0 - type: integer - description: The size of the page (the number of entities per page) - format: uint64 - PaginationConcourse: - title: PaginationConcourse - required: - - next - - previous - type: object - properties: - next: - $ref: '#/components/schemas/PageConcourse' - previous: - $ref: '#/components/schemas/PageConcourse' - PageConcourse: - title: PageConcourse - required: - - limit - - since - - until - type: object - properties: - since: - type: integer - description: Entities returned should have a higher timestamp than this - one - format: uint64 - until: - type: integer - description: Entities returned should have a lower timestamp than this one - format: uint64 - limit: - type: integer - description: The maximum number of entities to return - format: uint64 - PaginationAWS: - title: AWS Pagination - required: - - next - type: object - properties: - next: + type: array + style: form + git_url_query: + description: Git URL to repository + in: query + name: git_url + required: true + schema: + pattern: ^((/|~)[^/]*)+.(\.git)|(([\w\]+@[\w\.]+))(:(//)?)([\w\.@\:/\-~]+)(/)? + type: string + infra_policy_canonical: + description: The canonical of an InfraPolicy. + in: path + name: infra_policy_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + infra_policy_canonical_query: + description: Search by infra policy canonical + in: query + name: infra_policy_canonical + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + infra_policy_created_at_query: + description: Search by InfraPolicy's creation date + in: query + name: infra_policy_created_at + schema: + format: uint64 + type: integer + infra_policy_enabled_query: + description: Search by InfraPolicy's enabled + in: query + name: infra_policy_enabled + schema: + type: boolean + infra_policy_name_query: + description: Search by InfraPolicy's name + in: query + name: infra_policy_name + schema: + type: string + infra_policy_severity_query: + description: Search by InfraPolicy's severity + in: query + name: infra_policy_severity + schema: + enum: + - critical + - warning + - advisory + type: string + inventory_resource_id: + description: Inventory Resource ID + in: path + name: inventory_resource_id + required: true + schema: + format: uint32 + type: integer + inventory_resource_provider_query: + description: Provider of Inventory Resource + in: query + name: resources_provider + required: true + schema: + type: string + invitation_created_at_query: + description: Search by Invitation's creation date + in: query + name: invitation_created_at + schema: + format: uint64 + type: integer + invitation_state_query: + description: Search by Invitation's state + in: query + name: invitation_state + schema: + enum: + - accepted + - pending + - declined + type: string + job_name: + description: A job name + in: path + name: job_name + required: true + schema: + maxLength: 150 + minLength: 1 + type: string + jwt: + description: Token with the information about state and credentials. + in: query + name: jwt + required: true + schema: + type: string + kpi_canonical: + description: A canonical of a kpi. + in: path + name: kpi_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + kpi_retrieve_data: + description: | + Flag to retrieve KPIs' data upon retrieving KPIs themselves + in: query + name: fetch_data + schema: + type: boolean + log_source_id: + description: A unique identifier, which group log's entries under under a context, established by the source. + in: path + name: log_source_id + required: true + schema: + minLength: 1 + type: string + member_id: + description: A member id + in: path + name: member_id + required: true + schema: + format: uint32 + type: integer + oauth_code: + description: The OAuth code returned form the Social Provider + in: query + name: oauth_code + required: true + schema: + type: string + order_by_query: + description: | + Allows to order the list of items. Example usage: field_name:asc + in: query + name: order_by + schema: + type: string + organization_canonical: + description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + organization_canonical_query: + description: A canonical of a organization used for filtering. + in: query + name: organization_canonical + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + owner_query: + description: Search by entity's owner + in: query + name: member_id + schema: + format: uint32 + type: integer + page_index: + description: The page number to request. The first page is 1. + in: query + name: page_index + schema: + default: 1 + format: uint32 + type: integer + page_size: + description: The number of items at most which the response can have. + in: query + name: page_size + schema: + default: 1000 + format: uint32 + type: integer + pipeline_name: + description: A pipeline name + in: path + name: inpath_pipeline_name + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[a-z0-9]+[a-z0-9\-_.]+[a-z0-9]+$ + type: string + pipeline_name_query: + description: A pipeline name + in: query + name: pipeline_name + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[a-z0-9]+[a-z0-9\-_.]+[a-z0-9]+$ + type: string + project_canonical: + description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + project_canonical_query: + description: A list of projects' canonical to filter from + in: query + name: project_canonical + schema: + pattern: ^[\da-z]+(?:(?:[\da-z\-._]+)?[\da-z])?$ + type: string + project_config_repository_canonical_query: + description: Search by project's config repository's canonical + in: query + name: project_config_repository_canonical + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + project_created_at_query: + description: Search by project's creation date + in: query + name: project_created_at + schema: + format: uint64 + type: integer + project_description_query: + description: Search by project's description + in: query + name: project_description + schema: + type: string + project_name_query: + description: Search by project's name + in: query + name: project_name + schema: + type: string + provider_canonical: + description: A canonical of a Provider + in: path + name: provider_canonical + required: true + schema: + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + quota_id: + description: Quota ID + in: path + name: quota_id + required: true + schema: + format: uint32 + type: integer + raw_query: + description: A free text which the content depends of the context of the API endpoint. Can be a free text value or a complete query expressed of supported query language. + in: query + name: query + schema: + minLength: 1 + type: string + resource_canonical: + description: A canonical of a Resource + in: path + name: resource_canonical + required: true + schema: + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + resource_name: + description: A resource name + in: path + name: resource_name + required: true + schema: + maxLength: 150 + minLength: 1 + type: string + resource_pool_canonical: + description: Organization Resource Pool canonical + in: path + name: resource_pool_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + resource_version_id: + description: A resource's version id + in: path + name: resource_version_id + required: true + schema: + format: uint64 + type: integer + role_canonical: + description: Organization Role canonical + in: path + name: role_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + service_catalog_own_query: + description: | + Filters the Service Catalogs to only show the ones owned by the User Organization + in: query + name: service_catalog_own + schema: + type: boolean + service_catalog_ref: + description: A Service Catalog name + in: path + name: service_catalog_ref + required: true + schema: + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+:[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + service_catalog_service_catalog_source_query: + description: The canonical of a Service Catalog Source the Service Catalog belongs to + in: query + name: service_catalog_service_catalog_source + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + service_catalog_source_canonical: + description: Organization Service Catalog Sources canonical + in: path + name: service_catalog_source_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + service_catalog_source_canonical_query: + description: Organization Service Catalog Sources canonical + in: query + name: service_catalog_source_canonical + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + service_catalog_template_query: + description: | + Filters the Service Catalogs to only show the ones that are templates + in: query + name: service_catalog_template + schema: + default: false + type: boolean + service_status_canonical: + description: The canonical of the service you want to get the status from + in: path + name: service_status_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + social_type: + description: The OAuth Social type + in: path + name: social_type + required: true + schema: + enum: + - azuread + - saml2 + - google + - github + type: string + statuses_query: + allowEmptyValue: true + description: List of statuses that you want to filter a pipeline/job with. Pipeline can be either paused or unpaused, but jobs can be started, pending, succeeded, failed, errored, aborted. So if any of a pipeline's job has one of the given status, the associated pipeline will be included in the response. + explode: true + in: query + name: statuses + schema: + items: + enum: + - aborted + - errored + - failed + - paused + - pending + - started + - succeeded type: string - description: The token to retrieve the next page of results. Empty string - when there isn't a next page. - Filters: - title: Filters - type: object - description: Filters is the possible values the filters can have on list requests - Organization: - title: Organization - required: - - blocked - - can_children_create_appearance - - can_create_appearance - - canonical - - ci_port - - ci_team_name - - ci_url - - created_at - - has_children - - id - - mfa_enabled - - name - - quotas - - updated_at - type: object + type: array + uniqueItems: true + style: form + step_name: + description: A step name from a job task + in: path + name: step_name + required: true + schema: + maxLength: 150 + minLength: 1 + type: string + team_canonical: + description: A canonical of a team. + in: path + name: team_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + team_created_at_query: + description: Search by team's creation date + in: query + name: team_created_at + schema: + format: uint64 + type: integer + team_description_query: + description: Search by team's description + in: query + name: team_description + schema: + type: string + team_name_query: + description: Search by team's name + in: query + name: team_name + schema: + type: string + timestamp_range_begin_query: + description: The unix timestamp in seconds, which indicate the start of the time range. + in: query + name: begin + schema: + format: uint64 + type: integer + timestamp_range_begin_query_ms: + description: The unix timestamp in milliseconds, which indicate the start of the time range. + in: query + name: begin + schema: + format: uint64 + type: integer + timestamp_range_end_query: + description: The unix timestamp in seconds, which indicate the end of the time range. + in: query + name: end + schema: + format: uint64 + type: integer + timestamp_range_end_query_ms: + description: The unix timestamp in milliseconds, which indicate the end of the time range. + in: query + name: end + schema: + format: uint64 + type: integer + use_case_canonical: + description: A use case canonical + in: path + name: use_case_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + use_case_query: + description: A use case of a stack to be selectd from the stack config + in: query + name: use_case + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + verification_token: + description: A token for verifying emails, invitations, etc. + in: path + name: verification_token + required: true + schema: + minLength: 5 + type: string + responses: + locked_state: + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The operation couldn't be executed or completed because the state is locked. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + not_enough_permissions: + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + not_found_entity_in_path: + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + required_content_length_header: + content: {} + description: The request has a body but it doesn't have a Content-Length header. + retry_operation: + content: + application/json: + example: + errors: + - code: RetryOperation + message: Operation must be retried. + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The operation couldn't be executed or completed and it should retried. + headers: + Retry-After: + description: The number of seconds to wait until retry the request + schema: + format: uint16 + type: integer + unauthenticated: + content: + application/json: + example: + errors: + - code: Unauthenticated + message: invalid credentials + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The user cannot be authenticated with the credentials which she/he has used. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + unexpected_error: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + unprocessable_entity: + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + schemas: + APIKey: + description: The entity which represents the information of an API key. The "token" field is only filled once, upon creation. It can only be used on an organization scope, for example user endpoints will not support it. + example: + canonical: canonical + description: description + id: 1 + last_seven: last_seven + last_used: 7 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + rules: + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + token: token properties: - id: - $ref: '#/components/schemas/ID' canonical: - $ref: '#/components/schemas/Canonical' - ci_team_name: - type: string - ci_url: - type: string - ci_port: - type: string - name: + maxLength: 100 minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ type: string - blocked: - type: array - items: - type: string - has_children: - type: boolean - quotas: - type: boolean - can_create_appearance: - type: boolean - can_children_create_appearance: - type: boolean - created_at: - $ref: '#/components/schemas/CreatedAt' - updated_at: - $ref: '#/components/schemas/UpdatedAt' - #admins: - #type: array - #items: - #$ref: '#/components/schemas/MemberOrg' - subscription: - $ref: '#/components/schemas/Subscription' - appearance: - $ref: '#/components/schemas/Appearance' - mfa_enabled: - type: boolean - description: The entity which holds all the direct information attached to an - organization. - NewOrganization: - title: Create Organization - required: - - name - type: object - properties: - canonical: - $ref: '#/components/schemas/Canonical' - name: - minLength: 3 + description: type: string - description: The entity which represents a new organization to create in the - application. - UpdateOrganization: - title: Update Organization - required: - - name - type: object - properties: - name: - $ref: '#/components/schemas/Name' - quotas: - type: boolean - can_children_create_appearance: - type: boolean - mfa_enabled: - type: boolean - description: The entity which represents the information of an organization - to be updated. - Team: - title: Team - required: - - canonical - - created_at - - id - - member_count - - members_preview - - name - - roles - - updated_at - type: object - properties: id: - $ref: '#/components/schemas/ID' - canonical: - $ref: '#/components/schemas/Canonical' - name: - minLength: 3 - type: string - owner: - $ref: '#/components/schemas/User' - created_at: - $ref: '#/components/schemas/CreatedAt' - updated_at: - $ref: '#/components/schemas/UpdatedAt' - roles: - minItems: 1 - type: array - items: - $ref: '#/components/schemas/Role' - member_count: - type: integer - description: The total count of members of the team. format: uint32 - members_preview: - maxItems: 6 - type: array - description: "Preview of the list of team members, limited to 6 members." - items: - $ref: '#/components/schemas/MemberTeam' - description: The entity which represents the information of a team. - SimpleTeam: - title: SimpleTeam - required: - - canonical - - created_at - - id - - name - - updated_at - type: object - properties: - id: - $ref: '#/components/schemas/ID' - canonical: - $ref: '#/components/schemas/Canonical' - name: - minLength: 3 - type: string - owner: - $ref: '#/components/schemas/User' - created_at: - $ref: '#/components/schemas/CreatedAt' - updated_at: - $ref: '#/components/schemas/UpdatedAt' - description: The entity which represents the information of a team a bit simplified. - NewTeam: - title: Create Team - required: - - name - - roles_canonical - type: object - properties: - canonical: - $ref: '#/components/schemas/Canonical' - name: - minLength: 3 - type: string - owner: + minimum: 1 + type: integer + last_seven: + description: The last seven characters of API key. Allows user to differentiate between keys. type: string - description: | - User canonical that owns this team. If omitted then the person - creating this team will be assigned as owner. When a user is the - owner of a team it has all the permissions on it. - roles_canonical: - type: array - description: The roles to be assigned to a team. - items: - $ref: '#/components/schemas/Canonical' - description: The entity which represents the information of a new team. - UpdateTeam: - title: Update Team - required: - - canonical - - name - - roles_canonical - type: object - properties: - canonical: - $ref: '#/components/schemas/Canonical' + last_used: + description: This field contains the date of the last usage of the API key + format: uint64 + type: integer name: minLength: 3 type: string - owner: - type: string - description: | - User canonical that owns this team. Only the owner or an - organization admin can update this field. When a user is the owner - of a team it has all the permission on it. - roles_canonical: - type: array - description: The roles to be re-assigned to a team. - items: - $ref: '#/components/schemas/Canonical' - description: The entity which represents the information of the team to be updated. - Project: - title: Project - required: - - canonical - - created_at - - environments - - id - - name - - updated_at - type: object - properties: - id: - $ref: '#/components/schemas/ID' - canonical: - $ref: '#/components/schemas/Canonical' - name: - minLength: 1 - type: string - description: - $ref: '#/components/schemas/Description' - environments: - type: array - items: - $ref: '#/components/schemas/Environment' - service_catalog: - $ref: '#/components/schemas/ServiceCatalog' - team: - $ref: '#/components/schemas/SimpleTeam' owner: $ref: '#/components/schemas/User' - created_at: - $ref: '#/components/schemas/CreatedAt' - updated_at: - $ref: '#/components/schemas/UpdatedAt' - config_repository_canonical: - $ref: '#/components/schemas/Canonical' - import_status: - type: string - description: The import process status. - enum: - - succeeded - - failed - - importing - favorite: - type: boolean - description: The entity which represents the information of a project. - NewProject: - title: Create Project - required: - - config_repository_canonical - - name - - pipelines - - service_catalog_ref - type: object - properties: - canonical: - $ref: '#/components/schemas/Canonical' - name: - minLength: 1 - type: string - service_catalog_ref: - type: string - description: "It's the ref of the Service Catalog, like 'cycloidio:stack-magento'" - description: - $ref: '#/components/schemas/Description' - description: | - A description regarding the project to help identify/remember details, - implementation, purpose, etc. - owner: - type: string - description: | - User canonical that owns this project. If omitted then the person - creating this project will be assigned as owner. When a user is the - owner of a project it has all the permissions on it. - pipelines: - minItems: 1 - type: array - description: | - Each instance should include passed_config if no inputs are sent on - project creation, otherwise it will be inferred internally. - items: - $ref: '#/components/schemas/NewPipeline' - config_repository_canonical: - $ref: '#/components/schemas/Canonical' - team_canonical: - $ref: '#/components/schemas/Canonical' - inputs: - type: array - description: | - The variables set within a form with the corresponding environment - canonical and use case - items: - $ref: '#/components/schemas/FormInput' - description: The entity which represents the information of a new project. - UpdateProject: - title: Update Project - required: - - name - - service_catalog_ref - - updated_at - type: object - properties: - name: - minLength: 1 - type: string - description: - $ref: '#/components/schemas/Description' - environments: - minItems: 1 - type: array + rules: items: - $ref: '#/components/schemas/NewEnvironment' - service_catalog_ref: - pattern: "^[a-z0-9]+[a-z0-9\\-_]+[a-z0-9]+:[a-z0-9]+[a-z0-9\\-_]+[a-z0-9]+$" - type: string - description: "It's the ref of the Service Catalog, like 'cycloidio:stack-magento'" - owner: - type: string - description: | - User canonical that owns this project. Only the owner or an - organization admin can update such a field. When a user is the owner - of a project it has all the permission on it. - cloud_provider: - type: string - description: | - The cloud provider canonical that this project is using - between the - supported ones. - enum: - - aws - - google - - azurerm - - flexibleengine - - openstack - config_repository_canonical: - $ref: '#/components/schemas/Canonical' - inputs: + $ref: '#/components/schemas/Rule' type: array - description: | - The variables set within a form with the corresponding environment - canonical and use case - items: - $ref: '#/components/schemas/FormInput' - updated_at: - minimum: 0 - type: integer - description: "This will be used to assert that the Project is in it's last\ - \ updated form\nbecause if not we could have inconsistencies with the\ - \ environments. The \nformat is in seconds, basically UNIX format.\n" - format: uint64 - description: The entity which represents the information of the project to be - updated. - ProjectEnvironmentConfig: - title: Project Environment Config - required: - - forms - - use_case - type: object - properties: - use_case: - type: string - description: The use case picked for that environment - resource_pool_canonical: + token: + description: The actual API key in the format of JWT token, returned only upon creation. type: string - description: "The resource pool canonical, only require when using Quotas" - forms: - $ref: '#/components/schemas/FormsFileV2' - description: | - Representation of project's environment configuration done via the forms. - The full forms file is returned, but the use case picked has the - Set variables matching the current configuration - if any. - FormsValidation: - title: Forms validation required: - - form_file + - canonical + - id + - last_seven + - name + - rules + title: API key type: object - properties: - form_file: + AWSCloudWatchLogs: + allOf: + - $ref: '#/components/schemas/ExternalBackendConfiguration' + - properties: + region: + description: | + The AWS region where the resource exists + type: string + required: + - region type: object - properties: {} - description: A form's file to any given version - description: Validates a given Form's file - FormsValidationResult: - title: FormsValidationResult - required: - - errors - - forms + description: | + Representation of AWS cloud watch logs for external backend. + Must be matched with a credential of the "aws" type. + AWSInfrastructureResourceBucket: + description: This object contains the items described in the S3 bucket data type described in but it also contains its associated tags which are documented in the properties of this object definition. This object will contain a property named 'Tags' which is of the type defined by the schema definition '#/definitions/AWSTags' + title: AWS Infrastructure S3 bucket Resource type: object - properties: - forms: - $ref: '#/components/schemas/FormsFileV2' - errors: - type: array - items: - type: string - description: "The result of the validation, if errors is empty means that is\ - \ correct" - FormsFileV2: - title: Forms File V2 - required: - - use_cases - - version + AWSInfrastructureResourceDBInstance: + description: This object contains the items described in the RDS DB instance data type described in https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DBInstance.html but it also contains its associated tags which are documented in the properties of this object definition. This object will contain a property named 'Tags' which is of the type defined by the schema definition '#/definitions/AWSTags' + title: AWS Infrastructure RDS DB instance Resource type: object - properties: - version: - type: string - use_cases: - type: array - items: - $ref: '#/components/schemas/FormUseCase' - description: "" - FormUseCase: - title: Forms File Use case - required: - - name - - sections + AWSInfrastructureResourceElasticacheCluster: + description: This object contains the items described in the ElastiCache cluster data type described in https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_CacheCluster.html but it also contains its associated tags which are documented in the properties of this object definition. This object will contain a property named 'Tags' which is of the type defined by the schema definition '#/definitions/AWSTags' + title: AWS Infrastructure Elasticache cluster Resource type: object - properties: - name: - $ref: '#/components/schemas/Name' - sections: - type: array - items: - $ref: '#/components/schemas/FormSection' - description: "" - FormSection: - title: Forms File Section - required: - - groups - - name + AWSInfrastructureResourceImage: + description: This object contains the items described in the image data type described in https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_Image.html Tags property is set, for guaranteeing that the respond will always have the property of the type array, not allowing null in case that the resource doesn't have any, hence an empty array is used in such case. This object will contain a property named 'Tags' which is of the type defined by the schema definition '#/definitions/AWSTags' + title: AWS Infrastructure image Resource type: object - properties: - name: - $ref: '#/components/schemas/Name' - groups: - type: array - items: - $ref: '#/components/schemas/FormGroup' - description: "" - FormGroup: - title: Forms File Group - required: - - name - - technologies - - vars + AWSInfrastructureResourceInstance: + description: This object contains the items described in the instance data type described in https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_Instance.html Tags property is set, for guaranteeing that the respond will always have the property of the type array, not allowing null in case that the resource doesn't have any, hence an empty array is used in such case. This object will contain a property named 'Tags' which is of the type defined by the schema definition '#/definitions/AWSTags' + title: AWS Infrastructure Instance Resource + type: object + AWSInfrastructureResourceLoadBalancerV1: + description: This object contains the items described in the load balancer (ELB) data type described in https://docs.aws.amazon.com/elasticloadbalancing/2012-06-01/APIReference/API_LoadBalancerDescription.html but it also contains its associated tags which are documented in the properties of this object definition. This object will contain a property named 'Tags' which is of the type defined by the schema definition '#/definitions/AWSTags' + title: AWS Infrastructure load balancer (ELB) Resource + type: object + AWSInfrastructureResourceLoadBalancerV2: + description: This object contains the items described in the load balancer (ELB v2 or a.k.a ALB) data type described in https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_LoadBalancer.html but it also contains its associated tags which are documented in the properties of this object definition. This object will contain a property named 'Tags' which is of the type defined by the schema definition '#/definitions/AWSTags' + title: AWS Infrastructure load balancer (ELB v2 or a.k.a ALB) Resource + type: object + AWSInfrastructureResourceSecurityGroup: + description: This object contains the items described in the security group data type described in https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_SecurityGroup.html Tags property is set, for guaranteeing that the respond will always have the property of the type array, not allowing null in case that the resource doesn't have any, hence an empty array is used in such case. This object will contain a property named 'Tags' which is of the type defined by the schema definition '#/definitions/AWSTags' + title: AWS Infrastructure security group Resource + type: object + AWSInfrastructureResourceSnapshot: + description: This object contains the items described in the snapshot data type described in https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_Snapshot.html Tags property is set, for guaranteeing that the respond will always have the property of the type array, not allowing null in case that the resource doesn't have any, hence an empty array is used in such case. This object will contain a property named 'Tags' which is of the type defined by the schema definition '#/definitions/AWSTags' + title: AWS Infrastructure snapshot Resource + type: object + AWSInfrastructureResourceSubnet: + description: This object contains the items described in the subnet data type described in https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_Subnet.html Tags property is set, for guaranteeing that the respond will always have the property of the type array, not allowing null in case that the resource doesn't have any, hence an empty array is used in such case. This object will contain a property named 'Tags' which is of the type defined by the schema definition '#/definitions/AWSTags' + title: AWS Infrastructure subnet Resource + type: object + AWSInfrastructureResourceVPC: + description: This object contains the items described in the VPC data type described in https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_Vpc.html Tags property is set, for guaranteeing that the respond will always have the property of the type array, not allowing null in case that the resource doesn't have any, hence an empty array is used in such case. This object will contain a property named 'Tags' which is of the type defined by the schema definition '#/definitions/AWSTags' + title: AWS Infrastructure VPC Resource + type: object + AWSInfrastructureResourceVolume: + description: This object contains the items described in the volume data type described in https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_Volume.html Tags property is set, for guaranteeing that the respond will always have the property of the type array, not allowing null in case that the resource doesn't have any, hence an empty array is used in such case. This object will contain a property named 'Tags' which is of the type defined by the schema definition '#/definitions/AWSTags' + title: AWS Infrastructure volume Resource type: object + AWSInfrastructureResourcesAggregation: + example: + buckets: + total_amount: 0 + cache_clusters: + total_amount: 0 + db_instances: + total_amount: 0 + images: + total_amount: 0 + instances: + total_amount: 0 + load_balancers_v1: + total_amount: 0 + load_balancers_v2: + total_amount: 0 + security_groups: + total_amount: 0 + snapshots: + total_amount: 0 + subnets: + total_amount: 0 + volumes: + total_amount: 0 + vpcs: + total_amount: 0 properties: - name: - $ref: '#/components/schemas/Name' - technologies: - type: array - items: - type: string - condition: - type: string - description: Condition required to be respected to be able to configure - that group. - folded: - type: boolean - description: "Whether or not the group should be displayed to the user.\ - \ Variables within this group must be usable as such (not required, or\ - \ with a default if required)" - vars: - type: array - items: - $ref: '#/components/schemas/FormEntity' - description: "" - FormEntity: - title: Forms file's Entity - required: - - key - - name - - type - - widget + buckets: + $ref: '#/components/schemas/InfrastructureResourcesAggregationItem' + cache_clusters: + $ref: '#/components/schemas/InfrastructureResourcesAggregationItem' + db_instances: + $ref: '#/components/schemas/InfrastructureResourcesAggregationItem' + images: + $ref: '#/components/schemas/InfrastructureResourcesAggregationItem' + instances: + $ref: '#/components/schemas/InfrastructureResourcesAggregationItem' + load_balancers_v1: + $ref: '#/components/schemas/InfrastructureResourcesAggregationItem' + load_balancers_v2: + $ref: '#/components/schemas/InfrastructureResourcesAggregationItem' + security_groups: + $ref: '#/components/schemas/InfrastructureResourcesAggregationItem' + snapshots: + $ref: '#/components/schemas/InfrastructureResourcesAggregationItem' + subnets: + $ref: '#/components/schemas/InfrastructureResourcesAggregationItem' + volumes: + $ref: '#/components/schemas/InfrastructureResourcesAggregationItem' + vpcs: + $ref: '#/components/schemas/InfrastructureResourcesAggregationItem' + title: AWS Infrastructure Resources Aggregation type: object + AWSRemoteTFState: + allOf: + - $ref: '#/components/schemas/ExternalBackendConfiguration' + - properties: + bucket: + description: | + The AWS bucket containing objects + type: string + endpoint: + description: | + A custom endpoint for the S3 API (default: s3.amazonaws.com) + type: string + key: + description: | + The S3 Key uniquely identifies an object in a bucket, will + be required if the EB is not the default one. + type: string + region: + description: | + The AWS region where the resource exists + type: string + s3_force_path_style: + description: | + Always use path-style S3 URLs (https:/// instead of https://.) + type: boolean + skip_verify_ssl: + description: | + Set this to `true` to not verify SSL certificates + type: boolean + required: + - bucket + - region + type: object + description: | + Deprecated. Please use AWSStorage. + Representation of AWS remote tf state for external backend. + Must be matched with a credential of the "aws" type. + AWSStorage: + description: | + Representation of AWS storage for external backend. + Must be matched with a credential of the "aws" type. + discriminator: + propertyName: engine + example: + engine: engine properties: - key: + bucket: + description: | + The GCP bucket containing objects type: string - description: "The key is the name of variables for the ansible/pipeline/terraform\ - \ technologies. If this is a first level variable then: keyX. If you have\ - \ multiple terraform modules then use: module.Y.keyX to help identify\ - \ the unique variable." - name: - $ref: '#/components/schemas/Name' - widget: + container: + description: | + The Swift container containing objects type: string - description: The widget used to display the data in the most suitable way - enum: - - auto_complete - - dropdown - - radios - - slider_list - - slider_range - - number - - simple_text - - switch - - text_area - - cy_cred - - cy_scs - - cy_crs - - cy_branch - - cy_inventory_resource - - hidden - widget_config: - type: object - properties: {} - description: |- - Some specific configuration that could be applied to that widget. Currently only a few widgets can be configured: - * cy_cred - * 'cred_types' (list): reduce the types of credentials retrieved to that list. See supported types of credentials - * 'display_keys' (bool): to specify if the path + key have to be written or only the path - * radio - * 'orientation' (string): whether you want to display it in an 'horizontal' or 'vertical' way - * cy_inventory_resource - * 'provider' (string): The provider like '"provider[\"registry.terraform.io/hashicorp/aws\"]"' - * 'type' (string): The type of the resource like 'aws_vpc' - * 'name' (string): The name of the resource like 'front' - * 'module' (string): The module name like 'module.lemp' - * 'label' (string): The label of the resource, this only applies for resources created directly from the API/FE - * 'attributes' (string): The query string to filter the attributes like 'ingress[0].protocol[eq]=tcp' - * 'custom_attributes' (string): The query string to filter the custom_attributes like 'ingress[0].protocol[eq]=tcp' - * 'attribute' (string): The path to the attribute to actually use as value - type: + endpoint: + description: | + A custom endpoint for the S3 API (default: s3.amazonaws.com) type: string - description: "The type of data handled - used to manipulate/validate the\ - \ input, and also validate default/values" - enum: - - integer - - float - - string - - array - - boolean - - map - required: - type: boolean - description: Whether or not the field is required - that helps distinguish - "optional" variables and allows to set default if necessary and present - folded: - type: boolean - description: "Whether or not the entity should be displayed to the user.\ - \ This entity must be usable as such (not required, or with a default\ - \ if required)" - default: - type: object - properties: {} - description: |- - Default can take 2 kinds of definition. - The first one is simply the variable to assign if nothing is given by the user and that the variable is required. - The second one is dynamic default, meaning default that can vary based on conditions. The format is as follows: - options: - - name: "Name of set (can be omitted)" - condition: "$env == 'dev'" - default: t2.micro - - condition: "$env == 'prod'" - default: t2.large - current: - type: object - properties: {} - description: "The current value that was previously configured for this\ - \ variable upon creation or update. In case of shared variables having\ - \ different values, it will be empty, and 'mismatch_values' will be filled\ - \ instead." - mismatch_values: - type: array - description: "This is filled only when a shared variable does not have the\ - \ same values anymore. e.g. a variable 'foo' was shared between 'ansible'\ - \ and 'pipeline', was set to 'bar', but now the value found for 'ansible'\ - \ is 'bus', while it's still 'bar' for the pipeline. In such situation,\ - \ the Forms don't know anymore which is the correct data and will return\ - \ both, while unsetting the 'Current' field." - items: - type: object - properties: {} - unit: + engine: type: string - description: "The unit to be displayed for the variable, helping to know\ - \ what's being manipulated: amount of servers, Go, users, etc." - description: - $ref: '#/components/schemas/Description' - values: - type: object - properties: {} - description: |- - Values can take 2 kinds of definition. - First one is a list of object, such as list of integer, maps, etc. Values allowed, e.g. [1, 10, 20, 50]. Note: In case of SliderRange only 2 values should be provided: [min, max], in case of providing them the other way around some validation test will fail. - Second one is dynamic values, meaning values that can vary based on conditions. The format is as follows: - options: - - name: "Name of set (can be omitted)" - condition: "$env == 'dev'" - values: [dev-ami1, dev-ami2, dev-ami3] - - condition: "$env == 'prod'" - values: [prod-ami1, prod-ami2, prod-ami3] - source: + key: + description: | + The S3 Key uniquely identifies an object in a bucket type: string - description: "The source is only used for the branch widget to reference\ - \ the key of the SCS or CR that the branches have to be read from. Because\ - \ a branch in itself cannot exist, the user has to indicate from which\ - \ SCS or CR he wants to retrieve branches. The source has to reference\ - \ the key of an entity of a widget: 'CyCRS' or 'CySCS'" - validations: - type: array - description: "An array of validations and relative errors for this entitiy.\ - \ For example:\n validations: \n - regexp: \"^proj_.*$\" \n \ - \ error_message: \"the value must have 'proj_' as prefix\"\n - regexp:\ - \ \"^.*_awesome$\" \n error_message: \"the value must have '_awesome'\ - \ as suffix\"\nAt the moment only regexp validations are implemented but\ - \ we can expect objects with a 'type', and 'error_message' field. The\ - \ type field can hold the constraint, as in the case of regexp or hipotetically\ - \ a moe complex object." - items: - type: object - properties: {} - description: This describes all the attributes possible to configure a form's - variable - FormInputs: - title: Forms inputs - required: - - inputs - - service_catalog_ref - type: object - properties: - service_catalog_ref: + object: + description: | + The swift object uniquely identifying an object in a container, + will be required if the EB is not default + type: string + region: + description: | + The Swift region where the resource exists type: string + s3_force_path_style: description: | - It's the ref of the Service Catalog, like 'cycloidio:stack-magento' - inputs: - type: array + Always use path-style S3 URLs (https:/// instead of https://.) + type: boolean + skip_verify_ssl: description: | - The variables set within a form with the corresponding environment - canonical and use case - items: - $ref: '#/components/schemas/FormInput' - description: | - The array of variables set by the user via the forms with the associated environment - canonical and use case upon project creation. - FormInput: - title: Forms input + Set this to `true` to not verify SSL certificates + type: boolean required: - - environment_canonical - - use_case - - vars + - bucket + - region type: object + AppConfig: + description: Global app configuration that includes all the settings and capabilities of the Cycloid instance. It is intended to be used by clients to modify the UI accordingly. + example: + authentication: + local: + enabled: true + oauth: + - client_id: client_id + provider: provider + type: type + - client_id: client_id + provider: provider + type: type + saml2: + - provider: provider + sso_url: https://openapi-generator.tech + - provider: provider + sso_url: https://openapi-generator.tech properties: - use_case: + authentication: + $ref: '#/components/schemas/AuthConfig' + required: + - authentication + title: AppConfig + type: object + AppVersion: + example: + branch: branch + revision: revision + version: version + properties: + branch: + description: The Git branch used to build the application. + minLength: 1 type: string - description: The use case to load - environment_canonical: + revision: + description: The Git revision used to build the application. + maxLength: 40 + minLength: 8 type: string - description: The environment canonical - resource_pool_canonical: + version: + description: The version of the application. + minLength: 5 type: string - description: "The resource pool canonical, only require when using Quotas" - vars: - type: object - properties: {} - description: | - Forms variables filled, the format to respect is as follows - { - "sectionX": { - "group1": { - "key1": "value1", - "key2": "value2", - "key3": "value3" - }, - }, - "sectionY": { - "group2": { - "key1": "value1", - "key2": "value2", - "key3": "value3" - }, - }, - "sectionZ": { - "group3": { - "key1": "value2" - }, - } - } - Keys being the variable name that you want to see substituted/defined, - while the section and group are the one from the form's file. - description: | - The variables set within a form with the corresponding - environment canonical and use case - UserAccountEmail: - title: User's email required: - - email - - purpose - - verified + - branch + - revision + - version + title: AppVersion type: object + Appearance: + description: An Appearance holds the values of the branding configuration, which are rendered across an organization + example: + canonical: canonical + color: + b: 37 + g: 153 + r: 20 + created_at: 0 + display_name: display_name + favicon: https://openapi-generator.tech + footer: footer + is_active: true + logo: https://openapi-generator.tech + name: name + tab_title: tab_title + updated_at: 0 properties: - email: + canonical: + maxLength: 100 + minLength: 1 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ type: string - format: email - verified: + color: + $ref: '#/components/schemas/Appearance_color' + created_at: + format: uint64 + minimum: 0 + type: integer + display_name: + maxLength: 50 + minLength: 1 + type: string + favicon: + format: uri + type: string + footer: + maxLength: 1000 + minLength: 0 + type: string + is_active: type: boolean - purpose: + logo: + format: uri type: string - description: This values are set by the application to indicate the purpose - of the email address. At least there is always one which is the primary. - created_at: - $ref: '#/components/schemas/CreatedAt' - description: The email address of a user. - UpdateUserAccountEmail: - title: User's email - required: - - email - - purpose - type: object - properties: - email: + name: + maxLength: 50 + minLength: 1 type: string - format: email - purpose: + tab_title: + maxLength: 50 + minLength: 1 type: string - description: This values are set by the application to indicate the purpose - of the email address. At least there is always one which is the primary. - description: The email address of a user to be updated. - UserAccount: - title: User's account + updated_at: + format: uint64 + minimum: 0 + type: integer required: - - created_at - - emails - - family_name - - given_name - - last_login - - locale - - mfa_enabled - - updated_at - - username + - canonical + - color + - display_name + - favicon + - footer + - logo + - name + - tab_title + title: Appearance type: object + Appearance_color: + example: + b: 37 + g: 153 + r: 20 properties: - created_at: - $ref: '#/components/schemas/CreatedAt' - updated_at: - $ref: '#/components/schemas/UpdatedAt' - last_login: + b: + description: Blue color value of the RGB color + format: uint32 + maximum: 255 minimum: 0 type: integer - format: uint64 - emails: - minItems: 1 + g: + description: Green color value of the RGB color + format: uint32 + maximum: 255 + minimum: 0 + type: integer + r: + description: Red color value of the RGB color + format: uint32 + maximum: 255 + minimum: 0 + type: integer + required: + - b + - g + - r + type: object + AuthConfig: + example: + local: + enabled: true + oauth: + - client_id: client_id + provider: provider + type: type + - client_id: client_id + provider: provider + type: type + saml2: + - provider: provider + sso_url: https://openapi-generator.tech + - provider: provider + sso_url: https://openapi-generator.tech + properties: + local: + $ref: '#/components/schemas/AuthConfigLocalAuth' + oauth: + description: List of OAuth providers. + items: + $ref: '#/components/schemas/AuthConfigOAuth' type: array + saml2: + description: List of SAML2 providers. items: - $ref: '#/components/schemas/UserAccountEmail' - username: - $ref: '#/components/schemas/Canonical' - given_name: - minLength: 2 - type: string - family_name: - minLength: 2 - type: string - picture_url: - type: string - format: uri - locale: - type: string - description: User's preferred language - enum: - - en - - fr - - es - country: - $ref: '#/components/schemas/Country' - guide: - $ref: '#/components/schemas/UserGuide' - mfa_enabled: + $ref: '#/components/schemas/AuthConfigSAML' + type: array + required: + - local + - oauth + - saml2 + title: AuthConfig + type: object + AuthConfigLocalAuth: + example: + enabled: true + properties: + enabled: + description: Whether local authentication is enabled type: boolean - description: The user's account contains information related with the authenticated - user. - NewUserAccount: - title: Sign up required: - - email - - family_name - - given_name - - password - - username + - enabled + title: AppConfigLocalAuth type: object + AuthConfigOAuth: + discriminator: + propertyName: type + example: + client_id: client_id + provider: provider + type: type properties: - invitation_token: - minLength: 5 - type: string - description: "The field is used when a user signup from an invitation to\ - \ an organization. Giving the token, the created user will be automatically\ - \ added to the organization." - username: - $ref: '#/components/schemas/Canonical' - email: - type: string - format: email - password: - minLength: 8 - type: string - format: password - given_name: - minLength: 2 - type: string - family_name: - minLength: 2 + client_id: + description: ID of the OAuth client. type: string - country_code: - pattern: "^[A-Z]{2}$" + provider: + description: Name of the OAuth identity provider. type: string - description: Code of a country the user is from - locale: + type: + description: Type is used as discriminator for different OAuth identity provider definitions. type: string - description: User's preferred language - enum: - - en - - fr - - es - description: Create a new user account. - NewAWSMarketplaceUserAccount: - title: Sign up from AWS Marketplace required: - - aws_marketplace_token - - email - - family_name - - given_name - - password - - username + - client_id + - provider + - type + title: AppConfigAuthOAuth type: object + AuthConfigSAML: + example: + provider: provider + sso_url: https://openapi-generator.tech properties: - aws_marketplace_token: - minLength: 1 - type: string - description: The AWS marketplace token - username: - $ref: '#/components/schemas/Canonical' - email: - type: string - format: email - password: - minLength: 8 - type: string - format: password - given_name: - minLength: 2 - type: string - family_name: - minLength: 2 - type: string - country_code: - pattern: "^[A-Z]{2}$" - type: string - description: Code of a country the user is from - locale: + provider: + description: Entity ID of the SAML2 identity provider. + type: string + sso_url: + description: SSO URL to which the user should be redirected in order to authenticate with the Identity Provider. + format: uri type: string - description: User's preferred language - enum: - - en - - fr - - es - description: Create a new AWS Marketplace user account. - UpdateUserAccount: - title: Update user's account required: - - family_name - - given_name - - locale - - mfa_enabled - - username + - provider + - sso_url + title: AppConfigSAML type: object - properties: - emails: - minItems: 1 - type: array - items: - $ref: '#/components/schemas/UpdateUserAccountEmail' - password_update: + AzureADAuthConfig: + allOf: + - $ref: '#/components/schemas/AuthConfigOAuth' + - properties: + tenant_id: + description: ID of the OAuth tenant. + type: string required: - - current - - new + - tenant_id type: object - properties: - current: - minLength: 8 + description: AzureAD OAuth configuration + title: AppConfigAzureADOAuth + AzureCostExport: + allOf: + - $ref: '#/components/schemas/ExternalBackendConfiguration' + - properties: + blob_service_url: + description: Endpoint of blob storage service containing the export files. type: string - format: password - new: - minLength: 8 + name: + description: Name of the export type: string - format: password - description: The update password requires to confirm the old password. - username: - $ref: '#/components/schemas/Canonical' - given_name: - minLength: 2 + scope: + description: Scope of the export + type: string + type: object + description: | + Representation of AzureCostExport external backend. + Must be matched with a credential of the "azure" type. + AzureRemoteTFState: + allOf: + - $ref: '#/components/schemas/ExternalBackendConfiguration' + - properties: + blob: + description: | + The Azure blob contained in the container, will be + required if the EB is not default + type: string + container: + description: | + The Azure container where the resource exists + type: string + endpoint: + description: | + A custom endpoint for the Azure API + (default: "https://{account_name}.blob.core.windows.net/", where + the "account_name" is the one from the credential) + type: string + required: + - container + type: object + description: | + Deprecated. Please use AzureStorage. + Representation of azure remote tf state for external backend. + Must be matched with a credential of the "azure_storage" type. + AzureStorage: + allOf: + - $ref: '#/components/schemas/ExternalBackendConfiguration' + - properties: + blob: + description: | + The Azure blob contained in the container, will be + required if the EB is not default + type: string + container: + description: | + The Azure container where the resource exists + type: string + endpoint: + description: | + A custom endpoint for the Azure API + (default: "https://{account_name}.blob.core.windows.net/", where + the "account_name" is the one from the credential) + type: string + required: + - container + type: object + description: | + Representation of azure remote tf state for external backend. + Must be matched with a credential of the "azure_storage" type. + Build: + description: The information relative to a build. + example: + api_url: api_url + end_time: 7 + id: 1 + job_name: job_name + name: name + pipeline_id: 1 + pipeline_name: pipeline_name + reap_time: 1 + start_time: 6 + status: status + team_name: team_name + properties: + api_url: type: string - family_name: - minLength: 2 + end_time: + format: uint64 + type: integer + id: + format: uint64 + type: integer + job_name: type: string - picture_url: + name: type: string - format: uri - country_code: - pattern: "^[A-Z]{2}$" + pipeline_id: + format: uint64 + type: integer + pipeline_name: type: string - description: Code of a country the user is from - locale: + reap_time: + format: uint64 + type: integer + start_time: + format: uint64 + type: integer + status: + type: string + team_name: type: string - description: User's preferred language - enum: - - en - - fr - - es - mfa_enabled: - type: boolean - description: "The user's account information of the authenticated user to be\ - \ updated. Emails and password can be omitted if they don't have to be updated,\ - \ because we can now if they have been sent or not although go-swagger doesn't\ - \ currently support `PATCH` updates (see [comment](https://github.com/cycloidio/youdeploy-http-api/pull/71#issuecomment-321894076)),\ - \ we do for this one with this 2 properties because they are good for the\ - \ user, specially for the `password_update` one. In order to detect if they\ - \ have been sent or not, we check if the length of array of emails is 0 (if\ - \ it's sent, then the length MUST be greater than 0 as specified with minItems)\ - \ and in case of the `password_update` field if it's `nil` or not. If the\ - \ 'picture_url' is not send then it's removed from the user as it implies\ - \ that it has deleted it, and also because we do not support partial updates" - UserPasswordResetReq: - title: User password reset request required: - - email + - api_url + - id + - name + - status + - team_name + title: Build type: object + BuildInputsOutputs: + description: Represent the resources input/output related to a build + example: + inputs: + - first_occurrence: true + name: name + pipeline_id: 0 + version: + key: version + - first_occurrence: true + name: name + pipeline_id: 0 + version: + key: version + outputs: + - name: name + version: + key: version + - name: name + version: + key: version properties: - email: - type: string - description: the email address must be the primary email of the user. - format: email - description: Request to send a token for allowing the user to reset its current - password. - UserPasswordResetUpdate: - title: User password reset update + inputs: + items: + $ref: '#/components/schemas/PublicBuildInput' + type: array + outputs: + items: + $ref: '#/components/schemas/PublicBuildOutput' + type: array required: - - password - - token + - inputs + - outputs + title: BuildInputsOutputs type: object + BuildSummary: + description: The information relative to a build summary. + example: + end_time: 5 + id: 1 + job_name: job_name + name: name + pipeline_id: 2 + pipeline_name: pipeline_name + plan: '{}' + start_time: 5 + status: status + team_name: team_name properties: - password: - minLength: 8 + end_time: + format: uint64 + type: integer + id: + format: uint64 + type: integer + job_name: type: string - format: password - token: - minLength: 1 + name: + type: string + pipeline_id: + format: uint64 + type: integer + pipeline_name: + type: string + plan: + properties: {} + type: object + start_time: + format: uint64 + type: integer + status: + type: string + team_name: type: string - description: Reset the current user password to the one provided. The user must - have a valid token for the resetting password action. - UserLogin: - title: Log in required: - - password + - id + - name + - status + - team_name + title: BuildSummary + type: object + CIVersion: + additionalProperties: + type: string + description: Represent a version of a resource + title: CIVersion type: object + CanDoInput: + description: The input of the 'can_do' endpoint properties: - email: - type: string - format: email - username: - $ref: '#/components/schemas/Canonical' - password: - minLength: 8 + action: type: string - format: password - organization_canonical: - $ref: '#/components/schemas/Canonical' - description: Validate the user to access to the application. The user can login - with the primary email address or with username. - UserOAuth: - title: User's OAuth information + entity_canonicals: + description: List of the canonicals to the Resource excluding the Organization + items: + type: string + type: array + required: + - action + - entity_canonicals + title: CanDoInput type: object + CanDoOutput: + description: The output of the 'can_do' endpoint + example: + entity_canonicals: + - entity_canonicals + - entity_canonicals + ok: true properties: - user: - $ref: '#/components/schemas/NewOAuthUser' - token: - type: string - description: Is the JWT of the platform user - description: "The User OAuth information, if it's on the platform it'll return\ - \ the 'token' to login, if not the 'user' to show to the user" - NewOAuthUser: - title: User's OAuth information + entity_canonicals: + items: + type: string + type: array + ok: + type: boolean required: - - email - - given_name - - social_id - - username + - ok + title: CanDoOutput type: object + CheckReport: + example: + canonical: canonical + category: category + message: message + status: Unknown properties: - given_name: - type: string - family_name: - type: string - email: - type: string - format: email - username: - $ref: '#/components/schemas/Canonical' - picture_url: - type: string - format: uri - social_id: - type: string - invitation_token: - minLength: 5 + canonical: + description: The name of the service checked. + minLength: 1 type: string - description: "The field is used when a user signup from an invitation to\ - \ an organization. Giving the token, the created user will be automatically\ - \ added to the organization." - country_code: - pattern: "^[A-Z]{2}$" + category: + description: The category of the service checked. + minLength: 1 type: string - description: Code of a country the user is from - locale: + message: + description: The message providing information regarding the state of the service. + minLength: 1 type: string - description: User's preferred language + status: + description: The status of the service checked. enum: - - en - - fr - - es - description: The User OAuth information - UserSession: - title: User's session + - Unknown + - Success + - Error + type: string required: - - owns - - permissions - - token + - canonical + - category + - message + - status + title: CheckReport type: object + ClearTaskCache: + description: The entity which represents number of cache cleared for a task. + example: + caches_removed: 0 properties: - token: - type: string - permissions: - type: object - additionalProperties: - $ref: '#/components/schemas/Rule' - owns: - type: array - items: - type: string - description: The JWT which allows the user to access to the application. - User: - title: Basic info of a user + caches_removed: + type: integer required: - - country_code - - created_at - - email - - family_name - - given_name - - id - - locale - - mfa_enabled - - username + - caches_removed + title: ClearTaskCache type: object + CloudCostManagementAccount: + description: Object containing Cloud Cost Management account parameters + example: + account_id: account_id + canonical: canonical + cloud_provider: + abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + created_at: 0 + credential: + canonical: canonical + created_at: 0 + description: description + id: 1 + in_use: + config_repositories: + - canonical: canonical + name: name + - canonical: canonical + name: name + external_backends: + - engine: engine + environment: + canonical: canonical + project: + canonical: canonical + name: name + purpose: purpose + - engine: engine + environment: + canonical: canonical + project: + canonical: canonical + name: name + purpose: purpose + service_catalog_sources: + - canonical: canonical + name: name + - canonical: canonical + name: name + keys: + - keys + - keys + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + path: path + type: ssh + updated_at: 0 + enabled: true + external_backend: + configuration: + engine: engine + created_at: 0 + credential_canonical: credential_canonical + default: true + environment_canonical: environment_canonical + id: 1 + jwt: jwt + project_canonical: project_canonical + purpose: purpose + updated_at: 0 + id: 1 + last_ingestion_ended_at: 0 + last_ingestion_started_at: 0 + name: name + parent_account_id: parent_account_id + phase: green + status: idle + status_message: status_message + unfinalized_period: unfinalized_period + updated_at: 0 properties: + account_id: + description: The ID of an account on the CP + type: string + canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + cloud_provider: + $ref: '#/components/schemas/CloudProvider' + created_at: + format: uint64 + minimum: 0 + type: integer + credential: + $ref: '#/components/schemas/CredentialSimple' + enabled: + type: boolean + external_backend: + $ref: '#/components/schemas/ExternalBackend' id: - $ref: '#/components/schemas/ID' - username: - $ref: '#/components/schemas/Canonical' - given_name: - minLength: 2 + format: uint32 + minimum: 1 + type: integer + last_ingestion_ended_at: + format: uint64 + minimum: 0 + type: integer + last_ingestion_started_at: + format: uint64 + minimum: 0 + type: integer + name: + description: A user-defined name for the account type: string - family_name: - minLength: 2 + parent_account_id: + description: The ID of the parent account on the CP type: string - email: + phase: + enum: + - green + - blue type: string - description: User's primary email. - format: email - picture_url: + status: + enum: + - idle + - error + - import type: string - format: uri - country_code: - pattern: "^[A-Z]{2}$" + status_message: type: string - description: Code of a country the user is from - locale: - pattern: "^[a-z]{2}(?:-[a-z][a-z])?$" + unfinalized_period: type: string - description: The local that the user prefer. - created_at: - minimum: 0 - type: integer - description: When the user became a member. - format: uint64 updated_at: - minimum: 0 - type: integer - description: When the user had the role modified. format: uint64 - last_login_at: minimum: 0 type: integer - description: When the user logged in last time. - format: uint64 - mfa_enabled: - type: boolean - description: A summary of a user to be used in places where only the basic information - are need or are enough. - MemberOrg: - title: Member of an organization required: - - created_at - - email - - family_name - - given_name - - id - - locale - - mfa_enabled - - role - - username + - account_id + - canonical + - cloud_provider + - created_at + - enabled + - id + - name + - status + - updated_at + title: CloudCostManagementAccount type: object + CloudCostManagementAccountParent: + description: | + Object containing Cloud Cost Management parent account parameters. The difference + between it and CloudCostManagementAccount is that parent has no EB/Credential + displayed, as it's not necessary + example: + account_id: account_id + canonical: canonical + cloud_provider: + abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + created_at: 0 + enabled: true + id: 1 + last_ingestion_ended_at: 0 + last_ingestion_started_at: 0 + name: name + status: idle + status_message: status_message + updated_at: 0 properties: - id: - $ref: '#/components/schemas/ID' - username: - $ref: '#/components/schemas/Canonical' - given_name: - minLength: 2 - type: string - family_name: - minLength: 2 - type: string - email: + account_id: + description: The ID of an account on the CP type: string - description: user email - format: email - picture_url: + canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ type: string - format: uri + cloud_provider: + $ref: '#/components/schemas/CloudProvider' created_at: + format: uint64 minimum: 0 type: integer - description: When the user became a member. + enabled: + type: boolean + id: + format: uint32 + minimum: 1 + type: integer + last_ingestion_ended_at: format: uint64 - updated_at: minimum: 0 type: integer - description: When the user had the role modified. + last_ingestion_started_at: format: uint64 - last_login_at: minimum: 0 type: integer - description: When the user logged in last time. + name: + description: A user-defined name for the account + type: string + status: + enum: + - idle + - error + - import + type: string + status_message: + type: string + updated_at: format: uint64 - invited_at: minimum: 0 type: integer - description: "When the user had been invited to join as a member. When not\ - \ present, the user is already a member, so she/he has verified her/his\ - \ invitation." - format: uint64 - invited_by: - $ref: '#/components/schemas/MemberOrg' - role: - $ref: '#/components/schemas/Role' - locale: + required: + - account_id + - canonical + - cloud_provider + - created_at + - enabled + - id + - name + - status + - updated_at + title: CloudCostManagementAccountParent + type: object + CloudCostManagementBucket: + description: "A sum of the cost generated in a period aggregated by one or more terms,\nfor example if we aggregate costs by project here we have all the cost \ngenerated by a specific project in the period of time defined by the \nfilters of the histogram. In case the filter specifies more than one \naggregation term this type will recursively contain the other levels of \naggregation.\n" + example: + buckets: + - null + - null + co2e: 3.616076749251911 + cost: 7.061401241503109 + kwh: 9.301444243932576 + value: value + properties: + buckets: + items: + $ref: '#/components/schemas/CloudCostManagementBucket' + type: array + co2e: + description: The total CO2e emissions for the aggregated usage, in metric tons. + type: number + cost: + type: number + kwh: + description: The total energy consumption for the aggregated usage, in kwh + type: number + value: + description: "The value of the aggregation term, for example if we aggregate cost \nby region aggregate_value can be us-east-2, if we aggregate by project\nthis can be cool_project_number_42, by service can be S3 or EC2, etc..\n" + type: string + required: + - co2e + - cost + - kwh + - value + title: CloudCostManagementBucket + type: object + CloudCostManagementDashboard: + description: "The dashboard of the Cloud Cost Management, it contains\n- a histogram of the cost in the period aggregated by provider and\n by time granularity\n- a histogram of the cost aggregated by the top projects and providers\n and filtered by the top projects\n- a list of resources and relative cost for each top projects\n- a map containing properties that can be specified filtering the \n returned results, with a set of valid values for each.\n" + example: + filter_values: + categories: + - categories + - categories + currencies: + - currencies + - currencies + environments: + - environments + - environments + instance_types: + - instance_types + - instance_types + linked_accounts: + - linked_accounts + - linked_accounts + linked_accounts_with_cp: '{}' + master_accounts: + - master_accounts + - master_accounts + master_accounts_with_cp: '{}' + projects: + - projects + - projects + providers: + - providers + - providers + regions: + - regions + - regions + resources: + - resources + - resources + services: + - services + - services + tags: + key: + - tags + - tags + project_resources: + - cost: 2.027123023002322 + project: project + providers: + - co2e: 1.2315135367772556 + cost: 4.145608029883936 + kwh: 7.386281948385884 + new_resources: 1 + provider: provider + resources: 1 + - co2e: 1.2315135367772556 + cost: 4.145608029883936 + kwh: 7.386281948385884 + new_resources: 1 + provider: provider + resources: 1 + - cost: 2.027123023002322 + project: project + providers: + - co2e: 1.2315135367772556 + cost: 4.145608029883936 + kwh: 7.386281948385884 + new_resources: 1 + provider: provider + resources: 1 + - co2e: 1.2315135367772556 + cost: 4.145608029883936 + kwh: 7.386281948385884 + new_resources: 1 + provider: provider + resources: 1 + projects: + buckets: + - buckets: + - null + - null + co2e: 3.616076749251911 + cost: 7.061401241503109 + kwh: 9.301444243932576 + value: value + - buckets: + - null + - null + co2e: 3.616076749251911 + cost: 7.061401241503109 + kwh: 9.301444243932576 + value: value + co2e: 2.3021358869347655 + cost: 5.962133916683182 + kwh: 5.637376656633329 + providers: + buckets: + - buckets: + - null + - null + co2e: 3.616076749251911 + cost: 7.061401241503109 + kwh: 9.301444243932576 + value: value + - buckets: + - null + - null + co2e: 3.616076749251911 + cost: 7.061401241503109 + kwh: 9.301444243932576 + value: value + co2e: 2.3021358869347655 + cost: 5.962133916683182 + kwh: 5.637376656633329 + total_co2e: 1.4658129805029452 + total_cost: 0.8008281904610115 + total_kwh: 6.027456183070403 + properties: + filter_values: + $ref: '#/components/schemas/CloudCostManagementFilterValues' + project_resources: + items: + $ref: '#/components/schemas/CloudCostManagementProjectResources' + type: array + projects: + $ref: '#/components/schemas/CloudCostManagementHistogram' + providers: + $ref: '#/components/schemas/CloudCostManagementHistogram' + total_co2e: + type: number + total_cost: + type: number + total_kwh: + type: number + required: + - filter_values + - project_resources + - projects + - providers + title: CloudCostManagementDashboard + type: object + CloudCostManagementFilterValues: + description: | + A collection of the values for which the cost can be filtered, i.e. all + the providers, services, regions, etc... for one org. + example: + categories: + - categories + - categories + currencies: + - currencies + - currencies + environments: + - environments + - environments + instance_types: + - instance_types + - instance_types + linked_accounts: + - linked_accounts + - linked_accounts + linked_accounts_with_cp: '{}' + master_accounts: + - master_accounts + - master_accounts + master_accounts_with_cp: '{}' + projects: + - projects + - projects + providers: + - providers + - providers + regions: + - regions + - regions + resources: + - resources + - resources + services: + - services + - services + tags: + key: + - tags + - tags + properties: + categories: + items: + type: string + type: array + currencies: + items: + type: string + type: array + environments: + items: + type: string + type: array + instance_types: + items: + type: string + type: array + linked_accounts: + items: + type: string + type: array + linked_accounts_with_cp: + properties: {} + type: object + master_accounts: + items: + type: string + type: array + master_accounts_with_cp: + properties: {} + type: object + projects: + items: + type: string + type: array + providers: + items: + type: string + type: array + regions: + items: + type: string + type: array + resources: + items: + type: string + type: array + services: + items: + type: string + type: array + tags: + additionalProperties: + items: + type: string + type: array + type: object + title: CloudCostManagementFilterValues + type: object + CloudCostManagementHistogram: + description: The histogram of the costs for a period composed of buckets that aggregate the costs. + example: + buckets: + - buckets: + - null + - null + co2e: 3.616076749251911 + cost: 7.061401241503109 + kwh: 9.301444243932576 + value: value + - buckets: + - null + - null + co2e: 3.616076749251911 + cost: 7.061401241503109 + kwh: 9.301444243932576 + value: value + co2e: 2.3021358869347655 + cost: 5.962133916683182 + kwh: 5.637376656633329 + properties: + buckets: + items: + $ref: '#/components/schemas/CloudCostManagementBucket' + type: array + co2e: + description: The total CO2e emissions for the period, in metric tons. + type: number + cost: + description: The total cost for the period. + type: number + kwh: + description: The total energy consumption for the period, in kwh. + type: number + required: + - buckets + - co2e + - cost + - kwh + title: CloudCostManagementHistogram + type: object + CloudCostManagementLinkedAccount: + description: | + An account that is linked to a Cloud Cost Management account in the cloud + provider. It is not managed by Cloud Cost Management, but appears in the cost records. + example: + account_id: account_id + cloud_provider: cloud_provider + id: 1 + name: name + properties: + account_id: + description: ID of the account in the cloud provider + type: string + cloud_provider: + description: | + The cloud provider canonical that this project is using - between the + supported ones. + type: string + id: + format: uint32 + minimum: 1 + type: integer + name: + description: A user-defined name for the account + type: string + required: + - account_id + - cloud_provider + - id + - name + title: CloudCostManagementLinkedAccount + type: object + CloudCostManagementProjectProviderResources: + description: | + Trend for a project + example: + co2e: 1.2315135367772556 + cost: 4.145608029883936 + kwh: 7.386281948385884 + new_resources: 1 + provider: provider + resources: 1 + properties: + co2e: + description: CO2e emissions for the project and provider, in metric tons + type: number + cost: + description: Cost of the project for the provider + type: number + kwh: + description: Energy consumption for the project and provider, in kwh + type: number + new_resources: + type: integer + provider: type: string - description: User's preferred language - enum: - - en - - fr - - es - mfa_enabled: - type: boolean - description: Member is a user who is associated to an organization. - MemberTeam: - title: Member of a team + resources: + type: integer required: - - created_at - - email - - family_name - - given_name - - id - - mfa_enabled - - username + - co2e + - cost + - kwh + - new_resources + - provider + - resources + title: CloudCostManagementProjectProviderResources type: object + CloudCostManagementProjectResources: + description: | + The new resources and associated cost for a project in a period of time. + example: + cost: 2.027123023002322 + project: project + providers: + - co2e: 1.2315135367772556 + cost: 4.145608029883936 + kwh: 7.386281948385884 + new_resources: 1 + provider: provider + resources: 1 + - co2e: 1.2315135367772556 + cost: 4.145608029883936 + kwh: 7.386281948385884 + new_resources: 1 + provider: provider + resources: 1 properties: - id: - $ref: '#/components/schemas/ID' - username: - $ref: '#/components/schemas/Canonical' - given_name: - minLength: 2 - type: string - family_name: - minLength: 2 - type: string - email: - type: string - description: user email - format: email - picture_url: + cost: + description: Cost for the project in the period + type: number + project: type: string - format: uri - created_at: - minimum: 0 - type: integer - description: When the user became a member. - format: uint64 - updated_at: - minimum: 0 - type: integer - description: When the user had the role modified. - format: uint64 - last_login_at: - minimum: 0 - type: integer - description: When the user logged in last time. - format: uint64 - invited_by: - $ref: '#/components/schemas/MemberTeam' - mfa_enabled: - type: boolean - description: Member is a user who is associated to a team. - MemberAssignation: - title: Member assignation + providers: + items: + $ref: '#/components/schemas/CloudCostManagementProjectProviderResources' + type: array required: - - role_canonical + - cost + - project + - providers + title: CloudCostManagementProjectResources type: object + CloudCostManagementProjectsDashboard: + description: "The projects dashboard of the Cloud Cost Management, it contains\n- a histogram of the cost aggregated by date and project \n- a histogram of cost aggregated by projects and providers\n" + example: + project_providers: + buckets: + - buckets: + - null + - null + co2e: 3.616076749251911 + cost: 7.061401241503109 + kwh: 9.301444243932576 + value: value + - buckets: + - null + - null + co2e: 3.616076749251911 + cost: 7.061401241503109 + kwh: 9.301444243932576 + value: value + co2e: 2.3021358869347655 + cost: 5.962133916683182 + kwh: 5.637376656633329 + projects: + buckets: + - buckets: + - null + - null + co2e: 3.616076749251911 + cost: 7.061401241503109 + kwh: 9.301444243932576 + value: value + - buckets: + - null + - null + co2e: 3.616076749251911 + cost: 7.061401241503109 + kwh: 9.301444243932576 + value: value + co2e: 2.3021358869347655 + cost: 5.962133916683182 + kwh: 5.637376656633329 properties: - role_canonical: - $ref: '#/components/schemas/Canonical' - description: Member is a user who is associated to an entity of the system. - The user is newly assigned or reassigned for updating is data. - NewTeamMemberAssignation: - title: Assign user + project_providers: + $ref: '#/components/schemas/CloudCostManagementHistogram' + projects: + $ref: '#/components/schemas/CloudCostManagementHistogram' required: - - username + - project_providers + - projects + title: CloudCostManagementProjectsDashboard type: object + CloudCostManagementProviderDetails: + description: | + Description of the costs of a specific provider + example: + cost_histogram: + buckets: + - buckets: + - null + - null + co2e: 3.616076749251911 + cost: 7.061401241503109 + kwh: 9.301444243932576 + value: value + - buckets: + - null + - null + co2e: 3.616076749251911 + cost: 7.061401241503109 + kwh: 9.301444243932576 + value: value + co2e: 2.3021358869347655 + cost: 5.962133916683182 + kwh: 5.637376656633329 + filter_values: + categories: + - categories + - categories + currencies: + - currencies + - currencies + environments: + - environments + - environments + instance_types: + - instance_types + - instance_types + linked_accounts: + - linked_accounts + - linked_accounts + linked_accounts_with_cp: '{}' + master_accounts: + - master_accounts + - master_accounts + master_accounts_with_cp: '{}' + projects: + - projects + - projects + providers: + - providers + - providers + regions: + - regions + - regions + resources: + - resources + - resources + services: + - services + - services + tags: + key: + - tags + - tags properties: - username: - type: string - description: Assign user by username - format: string - description: Member is a user assigned to a Team - NewMemberInvitation: - title: Invite user + cost_histogram: + $ref: '#/components/schemas/CloudCostManagementHistogram' + filter_values: + $ref: '#/components/schemas/CloudCostManagementFilterValues' required: - - email - - role_canonical + - cost_histogram + title: CloudCostManagementProviderDetails type: object + CloudCostManagementProviders: + description: | + Date histogram of the cost of all the providers + example: + cost_histogram: + buckets: + - buckets: + - null + - null + co2e: 3.616076749251911 + cost: 7.061401241503109 + kwh: 9.301444243932576 + value: value + - buckets: + - null + - null + co2e: 3.616076749251911 + cost: 7.061401241503109 + kwh: 9.301444243932576 + value: value + co2e: 2.3021358869347655 + cost: 5.962133916683182 + kwh: 5.637376656633329 properties: - email: - type: string - description: Invite user by email - format: email - role_canonical: - $ref: '#/components/schemas/Canonical' - description: "Send an invitation to a user to something. Something can be to\ - \ create an account, to join to an organization, to join to a team, etc. API\ - \ operation determines the operation to perform." - Pipeline: - title: Pipeline + cost_histogram: + $ref: '#/components/schemas/CloudCostManagementHistogram' required: - - created_at - - environment - - id - - jobs - - name - - paused - - project - - public - - team_name - - updated_at - - use_case + - cost_histogram + title: CloudCostManagementProviders type: object + CloudCostManagementTagMapping: + description: "Object containing Cloud Cost Management tag mapping. The mapping is used to \nidentify resources belonging to projects and environments across cloud\nproviders. The mapping can be a set of tag keys or a regexp to capture\ntag keys.\n" + example: + all_tags: + - all_tags + - all_tags + created_at: 0 + environment_regex: environment_regex + environment_tags: + - environment_tags + - environment_tags + id: 1 + project_regex: project_regex + project_tags: + - project_tags + - project_tags + updated_at: 0 properties: - id: - type: integer - format: uint64 - name: - $ref: '#/components/schemas/Name' - paused: - type: boolean - public: - type: boolean - archived: - type: boolean - groups: - type: array + all_tags: + description: This is a list of all the tag keys in the DB for the Org items: - $ref: '#/components/schemas/GroupConfig' - team_name: - type: string - environment: - pattern: "^[\\da-zA-Z]+(?:(?:[\\da-zA-Z\\-._]+)?[\\da-zA-Z])?$" - type: string - project: - $ref: '#/components/schemas/Project' - use_case: - $ref: '#/components/schemas/ProjectCanonical' - created_at: - $ref: '#/components/schemas/CreatedAt' - jobs: + type: string type: array + created_at: + format: uint64 + minimum: 0 + type: integer + environment_regex: + type: string + environment_tags: items: - $ref: '#/components/schemas/Job' - status: + type: string + type: array + id: + format: uint32 + minimum: 1 + type: integer + project_regex: type: string - started: - type: boolean + project_tags: + items: + type: string + type: array updated_at: - $ref: '#/components/schemas/UpdatedAt' - description: | - The entity which represents a pipeline in the application. - NewPipeline: - title: Create Pipeline - required: - - environment - - pipeline_name - type: object - properties: - pipeline_name: - maxLength: 50 - minLength: 3 - pattern: "^[a-z0-9]+[a-z0-9\\-._]+[a-z0-9]+$" - type: string - passed_config: - type: string - yaml_vars: - type: string - check_credentials: - type: boolean - description: Validate credentials manager variables in the pipeline config. - environment: - $ref: '#/components/schemas/NewEnvironment' - use_case: - $ref: '#/components/schemas/Canonical' - description: The entity which represents a new pipeline to create in the application. - UpdatePipeline: - title: Update Pipeline + format: uint64 + minimum: 0 + type: integer required: - - passed_config + - created_at + - id + - updated_at + title: CloudCostManagementTagMapping type: object + CloudProvider: + description: CloudProvider represents a cloud provider. Those cloud providers are used to identify the scope of projects and/or stacks. + example: + abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 properties: - passed_config: + abbreviation: + maxLength: 60 + minLength: 2 type: string - yaml_vars: + canonical: + enum: + - aws + - google + - azurerm + - flexibleengine + - openstack + - scaleway + - vmware + - ovh + - alibaba + - oracle + - vsphere + - kubernetes + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ type: string - check_credentials: - type: boolean - description: The entity which represents a new pipeline config to update in - the application. - GroupConfig: - title: GroupConfig - required: - - name - type: object - properties: + created_at: + format: uint64 + minimum: 0 + type: integer + id: + format: uint32 + minimum: 1 + type: integer name: - $ref: '#/components/schemas/Name' - jobs: - type: array + maxLength: 60 + minLength: 2 + type: string + regions: items: type: string - resources: type: array - items: - type: string - description: The entity which represents pipeline group config - PipelineVariables: - title: Pipeline variables + updated_at: + format: uint64 + minimum: 0 + type: integer required: - - has_saved_yaml_vars - - yaml_vars + - canonical + - name + title: Cloud Provider type: object + CloudProviderAWSConfiguration: + allOf: + - $ref: '#/components/schemas/CloudProviderConfiguration' + - properties: + region: + description: | + The AWS region where the resource exists + type: string + required: + - region + type: object + description: | + Representation of AWS configuration + CloudProviderAzureConfiguration: + allOf: + - $ref: '#/components/schemas/CloudProviderConfiguration' + - properties: + environment: + description: | + The Azure environment of the configuration + type: string + resource_group_names: + description: | + The Azure resource group name of the configuration + items: + type: string + minItems: 1 + type: array + required: + - environment + - resource_group_names + type: object + description: | + Representation of Azure configuration + CloudProviderConfiguration: + discriminator: + propertyName: type properties: - yaml_vars: + type: type: string - has_saved_yaml_vars: - type: boolean - description: | - The has_saved_yaml_vars specifies whether the returned vars are from - the saved ones or the sample ones. If the has_saved_yaml_vars is true, - it means that the saved have been returned. - description: The entity which contains pipeline's variables. - PipelineDiffRecord: - title: PipelineDiffRecord required: - - delta_type - - line + - type type: object + CloudProviderGCPConfiguration: + allOf: + - $ref: '#/components/schemas/CloudProviderConfiguration' + - properties: + project: + description: | + The Google project where the resource exists + type: string + region: + description: | + The Google region where the resource exists + type: string + required: + - project + - region + type: object + description: | + Representation of Google configuration + CloudProviderVMWareVSphereConfiguration: + allOf: + - $ref: '#/components/schemas/CloudProviderConfiguration' + - properties: + allow_unverified_ssl: + description: | + Used to disable verification of server's SSL certificate. + type: boolean + server: + description: | + This is the vCenter Server FQDN or IP Address for vSphere API operations + type: string + required: + - allow_unverified_ssl + - server + type: object + description: | + Representation of VMware vSphere configuration + ConfigFile: + description: This object contains SC config file name and its content properties: - line: + content: + format: byte + pattern: ^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$ type: string - description: Represents a text line in a pipeline configuration - delta_type: + path: type: string - description: "Represents the type of delta (added, removed, changed, equals)\ - \ for the text line" - description: Represents a diff record of a pipeline diff - PipelineDiff: - title: PipelineDiff required: - - diff - - name - - status + - content + - path + title: SC config file type: object + ConfigRepository: + example: + branch: branch + canonical: canonical + created_at: 0 + credential_canonical: credential_canonical + default: true + id: 1 + name: name + updated_at: 0 + url: url properties: + branch: + type: string + canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + created_at: + format: uint64 + minimum: 0 + type: integer + credential_canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + default: + type: boolean + id: + format: uint32 + minimum: 1 + type: integer name: - $ref: '#/components/schemas/Name' - status: type: string - description: "Represents the status of the element (added, removed, changed)" - enum: - - added - - removed - - changed - diff: - type: array - description: Represents the diff of all configuration line for an element - items: - $ref: '#/components/schemas/PipelineDiffRecord' - description: Represents a diff element of a PipelineDiffs. - PipelineDiffs: - title: PipelineDiffs - type: object - properties: - jobs: - type: array - items: - $ref: '#/components/schemas/PipelineDiff' - groups: - type: array - items: - $ref: '#/components/schemas/PipelineDiff' - resources: - type: array - items: - $ref: '#/components/schemas/PipelineDiff' - resource_types: - type: array - items: - $ref: '#/components/schemas/PipelineDiff' - description: Represents the diffs between two pipelines - PipelineStatus: - title: PipelineStatus + updated_at: + format: uint64 + minimum: 0 + type: integer + url: + pattern: ^((/|~)[^/]*)+.(\.git)|(([\w\]+@[\w\.]+))(:(//)?)([\w\.@\:/\-~]+)(/)? + type: string required: - - synced + - canonical + - default + - id + - name + - url + title: ConfigRepository type: object + CostEstimationComponent: + description: Cost component of a cloud resource estimate. + example: + label: label + planned: + cost: cost + details: + - details + - details + hourly_cost: hourly_cost + quantity: 0 + prior: + cost: cost + details: + - details + - details + hourly_cost: hourly_cost + quantity: 0 + rate: rate + unit: unit + usage: true properties: - synced: - type: string - description: |- - The state can vary depending on how far the comparison process went. There are 4 possible states which are: - - unknown: one of the pipeline (database/git) couldn't be retrieved - - sycned: both database & git pipelines are identical - - out_of_sync: database & git pipelines have some differences - - errored: both pipelines got retrieved but the comparison triggered an error - enum: - - unknown - - synced - - out_of_sync - - errored - error: + label: + description: Human-readable label of the component. type: string - diffs: - $ref: '#/components/schemas/PipelineDiffs' - description: Pipeline status returned upon pipelines comparison between the - one locally stored in the database and its counter part on git. - TaskConfig: - title: TaskConfig - type: object - properties: - platform: + planned: + $ref: '#/components/schemas/CostEstimationComponentState' + prior: + $ref: '#/components/schemas/CostEstimationComponentState' + rate: + description: Monthly rate per unit. type: string - tags: - type: array - items: - type: string - image: + unit: + description: Unit of estimation. type: string - params: - type: object - additionalProperties: - type: string - run: - $ref: '#/components/schemas/TaskRunConfig' - inputs: - type: array - items: - $ref: '#/components/schemas/TaskInputConfig' - description: The configuration of a concourse task. - TaskRunConfig: - title: TaskRunConfig + usage: + description: If the price is from usage or configuration + type: boolean + required: + - label + - rate + title: CostEstimationComponent type: object + CostEstimationComponentState: + description: Either a Prior or Planned cost component state. + example: + cost: cost + details: + - details + - details + hourly_cost: hourly_cost + quantity: 0 properties: - path: - minLength: 3 + cost: + description: Monthly cost of the component state in decimal form. type: string - args: - type: array + details: + description: List of items on which the cost is dependent. items: type: string - description: The configuration of a concourse task-run. - TaskInputConfig: - title: TaskInputConfig - required: - - name - type: object - properties: - name: - $ref: '#/components/schemas/Name' - path: + type: array + hourly_cost: + description: Hourly cost of the component state in decimal form. type: string - description: The configuration of inputs for concourse tasks. - Plan: - title: Plan + quantity: + description: Quantity of units. + format: uint32 + type: integer required: - - id + - cost + - details + - hourly_cost + - quantity + title: CostEstimationComponentState type: object + CostEstimationResourceEstimate: + description: Estimate for a single cloud resource. + example: + address: address + components: + - label: label + planned: + cost: cost + details: + - details + - details + hourly_cost: hourly_cost + quantity: 0 + prior: + cost: cost + details: + - details + - details + hourly_cost: hourly_cost + quantity: 0 + rate: rate + unit: unit + usage: true + - label: label + planned: + cost: cost + details: + - details + - details + hourly_cost: hourly_cost + quantity: 0 + prior: + cost: cost + details: + - details + - details + hourly_cost: hourly_cost + quantity: 0 + rate: rate + unit: unit + usage: true + image: https://openapi-generator.tech + planned_cost: planned_cost + planned_hourly_cost: planned_hourly_cost + prior_cost: prior_cost + prior_hourly_cost: prior_hourly_cost + provider: provider + type: type properties: - id: - type: string - attempts: - type: array - items: - type: integer - format: uint32 - aggregate: + address: + description: Unique identifier of the resource. type: string - do: - type: array + components: + description: List of resource cost components. items: - $ref: '#/components/schemas/Plan' - get: - $ref: '#/components/schemas/GetPlan' - put: - $ref: '#/components/schemas/PutPlan' - task: - $ref: '#/components/schemas/TaskPlan' - ensure: - $ref: '#/components/schemas/EnsurePlan' - on_success: - $ref: '#/components/schemas/OnSuccessPlan' - on_failure: - $ref: '#/components/schemas/OnFailurePlan' - try: - $ref: '#/components/schemas/TryPlan' - timeout: - $ref: '#/components/schemas/TimeoutPlan' - retry: + $ref: '#/components/schemas/CostEstimationComponent' type: array - items: - $ref: '#/components/schemas/Plan' - description: The plan is what represent a concourse build. - GetPlan: - title: GetPlan - required: - - resource - - source - - type - type: object - properties: - type: + image: + description: Path to the image of the resource + format: uri type: string - name: - $ref: '#/components/schemas/Name' - resource: + planned_cost: + description: Planned monthly cost of the resource estimate in decimal form. type: string - source: - type: object - additionalProperties: - type: object - properties: {} - params: - type: object - additionalProperties: - type: object - properties: {} - version: - type: object - additionalProperties: - type: string - version_from: + planned_hourly_cost: + description: Planned hourly cost of the resource estimate in decimal form. + type: string + prior_cost: + description: Prior monthly cost of the resource estimate in decimal form. + type: string + prior_hourly_cost: + description: Prior hourly cost of the resource estimate in decimal form. + type: string + provider: + description: The resource's cloud provider. + type: string + type: + description: Type of the resource. type: string - tags: - type: array - items: - type: string - versioned_resource_types: - type: array - items: - $ref: '#/components/schemas/VersionedResourceType' - description: The plan to get before running another one. - PutPlan: - title: PutPlan required: - - resource - - source - - type + - address + - components + - provider + - type + title: CostEstimationResourceEstimate type: object + CostEstimationResult: + description: The result of cost estimation. + example: + info: info + name: name + planned_cost: planned_cost + planned_hourly_cost: planned_hourly_cost + prior_cost: prior_cost + prior_hourly_cost: prior_hourly_cost + resource_estimates: + - address: address + components: + - label: label + planned: + cost: cost + details: + - details + - details + hourly_cost: hourly_cost + quantity: 0 + prior: + cost: cost + details: + - details + - details + hourly_cost: hourly_cost + quantity: 0 + rate: rate + unit: unit + usage: true + - label: label + planned: + cost: cost + details: + - details + - details + hourly_cost: hourly_cost + quantity: 0 + prior: + cost: cost + details: + - details + - details + hourly_cost: hourly_cost + quantity: 0 + rate: rate + unit: unit + usage: true + image: https://openapi-generator.tech + planned_cost: planned_cost + planned_hourly_cost: planned_hourly_cost + prior_cost: prior_cost + prior_hourly_cost: prior_hourly_cost + provider: provider + type: type + - address: address + components: + - label: label + planned: + cost: cost + details: + - details + - details + hourly_cost: hourly_cost + quantity: 0 + prior: + cost: cost + details: + - details + - details + hourly_cost: hourly_cost + quantity: 0 + rate: rate + unit: unit + usage: true + - label: label + planned: + cost: cost + details: + - details + - details + hourly_cost: hourly_cost + quantity: 0 + prior: + cost: cost + details: + - details + - details + hourly_cost: hourly_cost + quantity: 0 + rate: rate + unit: unit + usage: true + image: https://openapi-generator.tech + planned_cost: planned_cost + planned_hourly_cost: planned_hourly_cost + prior_cost: prior_cost + prior_hourly_cost: prior_hourly_cost + provider: provider + type: type + skipped_resource_addresses: + - skipped_resource_addresses + - skipped_resource_addresses properties: - type: + info: + description: Extra details regarding estimation - usually related to no known resources, unknown providers, etc. type: string name: - $ref: '#/components/schemas/Name' - resource: + description: Name of the current estimation type: string - source: - type: object - additionalProperties: - type: object - properties: {} - params: - type: object - additionalProperties: - type: object - properties: {} - tags: + planned_cost: + description: Planned monthly cost of the plan in decimal form. + type: string + planned_hourly_cost: + description: Planned hourly cost of the plan in decimal form. + type: string + prior_cost: + description: Prior monthly cost of the plan in decimal form. + type: string + prior_hourly_cost: + description: Prior hourly cost of the plan in decimal form. + type: string + resource_estimates: + items: + $ref: '#/components/schemas/CostEstimationResourceEstimate' type: array + skipped_resource_addresses: + description: | + A list of addresses of resources that were skipped from the estimation process. A resource might be skipped + due to being invalid or unsupported by Terracost. items: type: string - versioned_resource_types: type: array - items: - $ref: '#/components/schemas/VersionedResourceType' - description: The put plan following a plan. - TaskPlan: - title: TaskPlan required: - - privileged + - resource_estimates + title: CostEstimationResult type: object + CostGroup: + description: This object contains the items described in https://docs.aws.amazon.com/sdk-for-go/api/service/costexplorer/#Group The groups hold the information about the price per key(s) for each iteration over the time range requested. properties: - name: - $ref: '#/components/schemas/Name' - privileged: - type: boolean - tags: - type: array - items: - type: string - config_path: + amount: + maxLength: 100 + minLength: 3 + pattern: ^[0-9]+.[0-9]+$ type: string - config: - $ref: '#/components/schemas/TaskConfig' - params: - type: object - additionalProperties: - type: object - properties: {} - input_mapping: - type: object - additionalProperties: - type: string - output_mapping: - type: object - additionalProperties: + keys: + items: type: string - image_artifact_name: - type: string - versioned_resource_types: type: array - items: - $ref: '#/components/schemas/VersionedResourceType' - description: The task plan. - EnsurePlan: - title: EnsurePlan - required: - - next - - step - type: object - properties: - step: - $ref: '#/components/schemas/Plan' - next: - $ref: '#/components/schemas/Plan' - description: The plan to ensure to be run. - OnSuccessPlan: - title: OnSuccessPlan + unit: + maxLength: 3 + minLength: 3 + pattern: ^[A-Z]+$ + type: string required: - - next - - step + - amount + - keys + - unit + title: CostGroup type: object + CostGroupDefinitions: + description: 'This object contains the items describe in https://docs.aws.amazon.com/sdk-for-go/api/service/costexplorer/#GroupDefinition It also grouping the costs based on different elements: az, services, tags, etc' properties: - step: - $ref: '#/components/schemas/Plan' - next: - $ref: '#/components/schemas/Plan' - description: The plan definition when the action has been successful. - OnFailurePlan: - title: OnFailurePlan + group: + maxLength: 100 + minLength: 1 + pattern: ^[a-zA-Z]+$ + type: string + key: + maxLength: 100 + minLength: 1 + pattern: ^[a-zA-Z]+$ + type: string required: - - next - - step + - group + - key + title: CostGroupDefinitions type: object + CostResultByTime: + description: This object contains the items described in https://docs.aws.amazon.com/sdk-for-go/api/service/costexplorer/#ResultByTime It is basically containing information about the cost per group(s) and per granularity (daily/monthly) over the period of time selected. The total and unit fields have bee modified to fit our requirements, while the groups hold the information about each iteration over the time range. properties: - step: - $ref: '#/components/schemas/Plan' - next: - $ref: '#/components/schemas/Plan' - description: The plan definition when the action has failed. - TryPlan: - title: EnsurePlan + estimated: + type: boolean + groups: + items: + $ref: '#/components/schemas/CostGroup' + type: array + period: + $ref: '#/components/schemas/CostTimePeriod' + total: + maxLength: 100 + minLength: 3 + pattern: ^[0-9]+.[0-9]+$ + type: string + unit: + maxLength: 3 + minLength: 2 + pattern: ^[a-zA-Z]+$ + type: string required: - - next - - step + - estimated + - groups + - period + - total + - unit + title: CostResultByTime type: object + CostTimePeriod: + description: This object contains the items described in https://docs.aws.amazon.com/sdk-for-go/api/service/costexplorer/#DateInterval It defines the beginning and the end of the time frame for which, the API should gather costs. properties: - step: - $ref: '#/components/schemas/Plan' - next: - $ref: '#/components/schemas/Plan' - description: The plan to ensure to be run. - TimeoutPlan: - title: EnsurePlan + begin: + maxLength: 10 + minLength: 10 + pattern: ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ + type: string + end: + maxLength: 10 + minLength: 10 + pattern: ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ + type: string required: - - next - - step + - begin + - end + title: CostTimePeriod type: object + Country: + description: Single country Representation + example: + code: code + name: name properties: - step: - $ref: '#/components/schemas/Plan' - next: - $ref: '#/components/schemas/Plan' - description: The plan to ensure to be run. - PublicPlan: - title: PublicPlan + code: + pattern: ^[A-Z]{2}$ + type: string + name: + type: string required: - - plan - - schema + - code + - name + title: Country type: object + Credential: + description: Represents the Credential + example: + canonical: canonical + created_at: 0 + description: description + id: 1 + in_use: + config_repositories: + - canonical: canonical + name: name + - canonical: canonical + name: name + external_backends: + - engine: engine + environment: + canonical: canonical + project: + canonical: canonical + name: name + purpose: purpose + - engine: engine + environment: + canonical: canonical + project: + canonical: canonical + name: name + purpose: purpose + service_catalog_sources: + - canonical: canonical + name: name + - canonical: canonical + name: name + keys: + - keys + - keys + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + path: path + raw: + access_key: access_key + account_name: account_name + auth_url: auth_url + ca_cert: ca_cert + client_id: client_id + client_secret: client_secret + domain_id: domain_id + environment: public + json_key: json_key + password: password + raw: '{}' + secret_key: secret_key + ssh_key: ssh_key + subscription_id: subscription_id + tenant_id: tenant_id + username: username + type: ssh + updated_at: 0 properties: - schema: + body: + $ref: '#/components/schemas/CredentialRaw' + canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ type: string - plan: - type: object - properties: {} - description: The public plan returned requesting a build plan. - PlanConfig: - title: PlanConfig + created_at: + format: uint64 + minimum: 0 + type: integer + description: + type: string + id: + format: uint32 + minimum: 1 + type: integer + in_use: + $ref: '#/components/schemas/CredentialInUse' + keys: + description: List of all the keys available for the Credential + items: + type: string + type: array + name: + type: string + owner: + $ref: '#/components/schemas/User' + path: + type: string + type: + enum: + - ssh + - aws + - custom + - azure + - azure_storage + - gcp + - basic_auth + - elasticsearch + - swift + - vmware + type: string + updated_at: + format: uint64 + minimum: 0 + type: integer + required: + - canonical + - id + - keys + - name + - path + - raw + - type + title: Credential type: object + CredentialInUse: + description: | + InUse represents the resources that are using provided credential. + example: + config_repositories: + - canonical: canonical + name: name + - canonical: canonical + name: name + external_backends: + - engine: engine + environment: + canonical: canonical + project: + canonical: canonical + name: name + purpose: purpose + - engine: engine + environment: + canonical: canonical + project: + canonical: canonical + name: name + purpose: purpose + service_catalog_sources: + - canonical: canonical + name: name + - canonical: canonical + name: name properties: - conditions: - type: array + config_repositories: items: - type: string - raw_name: - type: string - do: + $ref: '#/components/schemas/InUseConfigRepository' type: array + external_backends: items: - $ref: '#/components/schemas/PlanConfig' - aggregate: + $ref: '#/components/schemas/InUseExternalBackend' type: array + service_catalog_sources: items: - $ref: '#/components/schemas/PlanConfig' - get: - type: string - passed: + $ref: '#/components/schemas/InUseServiceCatalogSource' type: array - items: - type: string - raw_trigger: - type: boolean - put: + title: Credential in use + type: object + CredentialRaw: + description: All the possible fields inside it + example: + access_key: access_key + account_name: account_name + auth_url: auth_url + ca_cert: ca_cert + client_id: client_id + client_secret: client_secret + domain_id: domain_id + environment: public + json_key: json_key + password: password + raw: '{}' + secret_key: secret_key + ssh_key: ssh_key + subscription_id: subscription_id + tenant_id: tenant_id + username: username + properties: + access_key: type: string - resource: + account_name: type: string - task: + auth_url: type: string - privileged: - type: boolean - taskConfigPath: + ca_cert: type: string - taskConfig: - $ref: '#/components/schemas/TaskConfig' - params: + client_id: + type: string + client_secret: + type: string + domain_id: + type: string + environment: + enum: + - public + - usgovernment + - china + - german + type: string + json_key: + type: string + password: + type: string + raw: + properties: {} type: object - additionalProperties: - type: object - properties: {} - description: The plan configuration when creating new build. - VersionedResourceType: - title: VersionedResourceType - required: - - id - - name - - privileged - - source - - tags - - type - - version + secret_key: + type: string + ssh_key: + type: string + subscription_id: + type: string + tenant_id: + type: string + username: + type: string + title: Credential Raw type: object + CredentialSimple: + description: Represents the Credential without the raw and owner + example: + canonical: canonical + created_at: 0 + description: description + id: 1 + in_use: + config_repositories: + - canonical: canonical + name: name + - canonical: canonical + name: name + external_backends: + - engine: engine + environment: + canonical: canonical + project: + canonical: canonical + name: name + purpose: purpose + - engine: engine + environment: + canonical: canonical + project: + canonical: canonical + name: name + purpose: purpose + service_catalog_sources: + - canonical: canonical + name: name + - canonical: canonical + name: name + keys: + - keys + - keys + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + path: path + type: ssh + updated_at: 0 properties: - id: + canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + created_at: + format: uint64 + minimum: 0 type: integer - format: uint32 - name: - $ref: '#/components/schemas/Name' - type: + description: type: string - source: - type: object - additionalProperties: - type: object - properties: {} - privileged: - type: boolean - tags: - type: object - additionalProperties: - type: string - version: - type: object - additionalProperties: - type: string - description: The versioned resources type. - Job: - title: Job - required: - - id - - name - type: object - properties: id: + format: uint32 + minimum: 1 type: integer - format: uint64 - name: - $ref: '#/components/schemas/Name' - paused: - type: boolean - first_logged_build_id: - type: integer - format: uint64 - disable_manual_trigger: - type: boolean - has_new_inputs: - type: boolean - next_build: - $ref: '#/components/schemas/Build' - finished_build: - $ref: '#/components/schemas/Build' - transition_build: - $ref: '#/components/schemas/Build' - inputs: - type: array - items: - $ref: '#/components/schemas/JobInput' - outputs: - type: array - items: - $ref: '#/components/schemas/JobOutput' - groups: - type: array + in_use: + $ref: '#/components/schemas/CredentialInUse' + keys: + description: List of all the keys available for the Credential items: type: string - team_name: + type: array + name: type: string - pipeline_id: - type: integer - format: uint64 - pipeline_name: + owner: + $ref: '#/components/schemas/User' + path: type: string - description: The entity which represents a job output in the application. - JobInput: - title: JobInput - required: - - name - - resource - - trigger - type: object - properties: - name: - $ref: '#/components/schemas/Name' - resource: + type: + enum: + - ssh + - aws + - custom + - azure + - azure_storage + - gcp + - basic_auth + - elasticsearch + - swift + - vmware type: string - passed: - type: array - items: - type: string - trigger: - type: boolean - version: - $ref: '#/components/schemas/VersionConfig' - description: The entity which represents a job input in the application. - JobOutput: - title: JobOutput + updated_at: + format: uint64 + minimum: 0 + type: integer required: - - name - - resource + - canonical + - id + - keys + - name + - path + - type + title: Credential Simple type: object + ElasticsearchLogs: + allOf: + - $ref: '#/components/schemas/ExternalBackendConfiguration' + - properties: + sources: + additionalProperties: + additionalProperties: + $ref: '#/components/schemas/ElasticsearchLogs_allOf_sources_value_value' + type: object + description: | + It's an object where the key is the 'environment' and the value + another object where the key is the 'source-name' and value a Source. + type: object + urls: + description: | + List of the URLs + items: + type: string + type: array + version: + description: | + Only 7 is supported + type: string + required: + - sources + - urls + - version + type: object + description: | + Representation of Elasticsearch logs for external backend. + Must be matched with a credential of the "elasticsearch" type. + ElasticsearchLogs_allOf_sources_value_value: properties: - name: - $ref: '#/components/schemas/Name' - resource: + index: + description: | + Index to use type: string - description: The entity which represents a job output in the application. - ClearTaskCache: - title: ClearTaskCache - required: - - caches_removed - type: object - properties: - caches_removed: - type: integer - description: The entity which represents number of cache cleared for a task. - VersionConfig: - title: VersionConfig - type: object - properties: - every: - type: boolean - latest: - type: boolean - pinned: + mapping: + $ref: '#/components/schemas/ElasticsearchLogs_allOf_sources_value_value_mapping' + prefilters: + description: | + JSON representing the prefilters to apply to the index to get + the specific values. + properties: {} type: object - additionalProperties: + urls: + description: | + List of URLs to override the main URL defined + items: type: string - description: The entity which represents a version configuration in the application. - Worker: - title: Worker - required: - - active_containers - - active_volumes - - ephemeral - - name - - platform - - start_time - - state - - version + type: array type: object + ElasticsearchLogs_allOf_sources_value_value_mapping: + description: | + Object with the mapping to know which attributes are the ones + we have to map to the ones we want properties: - name: - $ref: '#/components/schemas/Name' - state: - type: string - version: - type: string - platform: + host: + description: | + The Host of the log type: string - team: + message: + description: | + The Message the user wants to show + type: string + timestamp: + description: | + The Timestamp of the log type: string - ephemeral: - type: boolean - active_containers: - type: integer - format: uint64 - active_volumes: - type: integer - format: uint64 - start_time: - type: integer - format: uint64 - tags: - type: array - items: - type: string - description: The entity which represents a worker in the application. - Resource: - title: Resource required: - - name - - type + - host + - message + - timestamp type: object + EnsurePlan: + description: The plan to ensure to be run. properties: - name: - $ref: '#/components/schemas/Name' - type: + next: + $ref: '#/components/schemas/Plan' + step: + $ref: '#/components/schemas/Plan' + required: + - next + - step + title: EnsurePlan + type: object + Environment: + description: Represent an environment with may be related to a Project and Pipeline + example: + canonical: canonical + cloud_provider: + abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + color: color + created_at: 0 + icon: icon + id: 1 + updated_at: 0 + use_case: use_case + properties: + canonical: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:[\da-zA-Z\-._]+[\da-zA-Z]|[\da-zA-Z])$ type: string - icon: + cloud_provider: + $ref: '#/components/schemas/CloudProvider' + color: + maxLength: 64 type: string - last_checked: - type: integer + created_at: format: uint64 - pin_comment: + minimum: 0 + type: integer + icon: + maxLength: 64 type: string - pinned_in_config: - type: boolean - pinned_version: - type: object - additionalProperties: - type: string - pipeline_id: + id: + format: uint32 + minimum: 1 type: integer + updated_at: format: uint64 - pipeline_name: - type: string - team_name: + minimum: 0 + type: integer + use_case: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ type: string - build: - $ref: '#/components/schemas/BuildSummary' - description: The entity which represents a resource in the application. - BuildInputsOutputs: - title: BuildInputsOutputs required: - - inputs - - outputs + - canonical + - color + - created_at + - icon + - id + - updated_at + title: Environment type: object + ErrorDetailsItem: + description: Represents an item of the list of details of an error. + example: + code: code + details: + - details + - details + message: message properties: - inputs: - type: array + code: + type: string + details: items: - $ref: '#/components/schemas/PublicBuildInput' - outputs: + type: string type: array - items: - $ref: '#/components/schemas/PublicBuildOutput' - description: Represent the resources input/output related to a build - PublicBuildOutput: - title: PublicBuildOutput + message: + type: string required: - - name - - version + - code + - message + title: Error details item type: object + ErrorPayload: + description: | + The payload used by the server to response to the client with an Error, those errors could be any of the ones listed [here](https://github.com/cycloidio/youdeploy-http-api/blob/develop/errors/code.go#L10), only the CODE of the error is the one that is guaranteed to not change between the same major version, the MESSAGE could change. + example: + errors: + - code: code + details: + - details + - details + message: message + - code: code + details: + - details + - details + message: message properties: - name: - $ref: '#/components/schemas/Name' - version: - type: object - additionalProperties: - type: string - description: Represents the information of a build output - PublicBuildInput: - title: PublicBuildInput + errors: + items: + $ref: '#/components/schemas/ErrorDetailsItem' + type: array required: - - first_occurrence - - name - - pipeline_id - - version + - errors + title: Error Payload type: object + Event: + description: A event which has registered an activity in the Cycloid platform. + example: + color: color + icon: icon + id: 0 + message: message + severity: info + tags: + - key: key + value: value + - key: key + value: value + timestamp: 6 + title: title + type: Cycloid properties: - name: - $ref: '#/components/schemas/Name' - version: - type: object - additionalProperties: - type: string - pipeline_id: + color: + description: 'The HTML color associated to the event. The valid colors are the ones listed in the CSS 2 specification: https://www.w3.org/TR/CSS2/syndata.html#value-def-color. Only the keyword are accepted, the hexadecimal values are not valid.' + maxLength: 20 + minLength: 3 + pattern: '[a-z]+' + type: string + icon: + description: '[A Font Awesome class name](https://fontawesome.com/icons)' + minLength: 3 + type: string + id: + description: The unique ID of the event from the database. + format: uint32 type: integer + message: + description: The message associated to the event. + minLength: 1 + type: string + severity: + description: The severity associated to the event. + enum: + - info + - warn + - err + - crit + type: string + tags: + description: The list of tags associated to the event. + items: + $ref: '#/components/schemas/Tag' + type: array + timestamp: + description: The timestamp when the event was created in milliseconds. format: uint64 - first_occurrence: - type: boolean - description: Represent the information of a build input - MetadataField: - title: MetadataField + type: integer + title: + description: The title of the event. + minLength: 1 + type: string + type: + description: The type of the event + enum: + - Cycloid + - AWS + - Monitoring + - Custom + type: string required: - - name - - value + - id + - message + - severity + - tags + - timestamp + - title + - type + title: An event type: object + ExternalBackend: + description: An external backend contains the configuration needed in order to be plugged into the Cycloid system. A backend is a general purpose concept, but Cycloid specifies which ones are supported and the list of those which are supported for every concrete feature. + example: + configuration: + engine: engine + created_at: 0 + credential_canonical: credential_canonical + default: true + environment_canonical: environment_canonical + id: 1 + jwt: jwt + project_canonical: project_canonical + purpose: purpose + updated_at: 0 properties: - name: - $ref: '#/components/schemas/Name' - value: + configuration: + $ref: '#/components/schemas/ExternalBackendConfiguration' + created_at: + format: uint64 + minimum: 0 + type: integer + credential_canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ type: string - description: Represent the metadata of a build input - CIVersion: - title: CIVersion - type: object - additionalProperties: - type: string - description: Represent a version of a resource - PinComment: - title: PinComment + default: + description: Will mark this EB as default for the specific purpose + type: boolean + environment_canonical: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + id: + format: uint32 + minimum: 1 + type: integer + jwt: + description: JWT is a credential identifying this EB for a public interaction right now it's only filled when the Purpose == RemoteTFState as we'll use it for the Inventory. + type: string + project_canonical: + maxLength: 100 + minLength: 1 + pattern: (^[a-z0-9]+(([a-z0-9\-_]+)?[a-z0-9]+)?$) + type: string + purpose: + type: string + updated_at: + format: uint64 + minimum: 0 + type: integer required: - - pin_comment + - configuration + - default + - purpose + title: External backend type: object + ExternalBackendConfiguration: + discriminator: + propertyName: engine + example: + engine: engine properties: - pin_comment: + bucket: + description: | + The GCP bucket containing objects type: string - description: Represents a pin comment of a resource - ResourceVersion: - title: ResourceVersion + container: + description: | + The Swift container containing objects + type: string + endpoint: + description: | + A custom endpoint for the S3 API (default: s3.amazonaws.com) + type: string + engine: + type: string + key: + description: | + The S3 Key uniquely identifies an object in a bucket + type: string + object: + description: | + The swift object uniquely identifying an object in a container, + will be required if the EB is not default + type: string + region: + description: | + The Swift region where the resource exists + type: string + s3_force_path_style: + description: | + Always use path-style S3 URLs (https:/// instead of https://.) + type: boolean + skip_verify_ssl: + description: | + Set this to `true` to not verify SSL certificates + type: boolean required: - - enabled - - id - - version + - engine + type: object + Filters: + description: Filters is the possible values the filters can have on list requests + title: Filters type: object + FormEntity: + description: This describes all the attributes possible to configure a form's variable + example: + current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' properties: - id: - type: integer - format: uint64 - metadata: - type: array - items: - $ref: '#/components/schemas/MetadataField' - version: + current: + description: The current value that was previously configured for this variable upon creation or update. In case of shared variables having different values, it will be empty, and 'mismatch_values' will be filled instead. + properties: {} + type: object + default: + description: |- + Default can take 2 kinds of definition. + The first one is simply the variable to assign if nothing is given by the user and that the variable is required. + The second one is dynamic default, meaning default that can vary based on conditions. The format is as follows: + options: + - name: "Name of set (can be omitted)" + condition: "$env == 'dev'" + default: t2.micro + - condition: "$env == 'prod'" + default: t2.large + properties: {} type: object - additionalProperties: + depends_on: + description: List of keys that are required to use this entity + items: type: string - enabled: + type: array + description: + description: The description helping users understand the interest/impact of such variable/change + type: string + folded: + description: Whether or not the entity should be displayed to the user. This entity must be usable as such (not required, or with a default if required) type: boolean - description: Represent the outputs of a job - BuildSummary: - title: BuildSummary - required: - - id - - name - - status - - team_name - type: object - properties: - id: - type: integer - format: uint64 - team_name: + key: + description: 'The key is the name of variables for the ansible/pipeline/terraform technologies. If this is a first level variable then: keyX. If you have multiple terraform modules then use: module.Y.keyX to help identify the unique variable.' type: string + mismatch_values: + description: This is filled only when a shared variable does not have the same values anymore. e.g. a variable 'foo' was shared between 'ansible' and 'pipeline', was set to 'bar', but now the value found for 'ansible' is 'bus', while it's still 'bar' for the pipeline. In such situation, the Forms don't know anymore which is the correct data and will return both, while unsetting the 'Current' field. + items: + properties: {} + type: object + type: array name: - $ref: '#/components/schemas/Name' - status: + description: The name of the variable displayed to the user type: string - job_name: + required: + description: Whether or not the field is required - that helps distinguish "optional" variables and allows to set default if necessary and present + type: boolean + source: + description: 'The source is only used for the branch widget to reference the key of the SCS or CR that the branches have to be read from. Because a branch in itself cannot exist, the user has to indicate from which SCS or CR he wants to retrieve branches. The source has to reference the key of an entity of a widget: ''CyCRS'' or ''CySCS''' type: string - plan: - type: object + type: + description: The type of data handled - used to manipulate/validate the input, and also validate default/values + enum: + - integer + - float + - string + - array + - boolean + - map + type: string + unit: + description: 'The unit to be displayed for the variable, helping to know what''s being manipulated: amount of servers, Go, users, etc.' + type: string + validations: + description: "An array of validations and relative errors for this entitiy. For example:\n validations: \n - regexp: \"^proj_.*$\" \n error_message: \"the value must have 'proj_' as prefix\"\n - regexp: \"^.*_awesome$\" \n error_message: \"the value must have '_awesome' as suffix\"\nAt the moment only regexp validations are implemented but we can expect objects with a 'type', and 'error_message' field. The type field can hold the constraint, as in the case of regexp or hipotetically a moe complex object." + items: + properties: {} + type: object + type: array + values: + description: |- + Values can take 2 kinds of definition. + First one is a list of object, such as list of integer, maps, etc. Values allowed, e.g. [1, 10, 20, 50]. Note: In case of SliderRange only 2 values should be provided: [min, max], in case of providing them the other way around some validation test will fail. + Second one is dynamic values, meaning values that can vary based on conditions. The format is as follows: + options: + - name: "Name of set (can be omitted)" + condition: "$env == 'dev'" + values: [dev-ami1, dev-ami2, dev-ami3] + - condition: "$env == 'prod'" + values: [prod-ami1, prod-ami2, prod-ami3] properties: {} - pipeline_name: + type: object + values_ref: + description: It's a URL in which the values have to be fetched from type: string - start_time: - type: integer - format: uint64 - end_time: - type: integer - format: uint64 - pipeline_id: - type: integer - format: uint64 - description: The information relative to a build summary. - Build: - title: Build + widget: + description: The widget used to display the data in the most suitable way + enum: + - auto_complete + - dropdown + - radios + - slider_list + - slider_range + - number + - simple_text + - switch + - text_area + - cy_cred + - cy_scs + - cy_crs + - cy_branch + - cy_inventory_resource + - hidden + type: string + widget_config: + description: |- + Some specific configuration that could be applied to that widget. Currently only a few widgets can be configured: + * cy_cred + * 'cred_types' (list): reduce the types of credentials retrieved to that list. See supported types of credentials + * 'display_keys' (bool): to specify if the path + key have to be written or only the path + * radio + * 'orientation' (string): whether you want to display it in an 'horizontal' or 'vertical' way + * cy_inventory_resource + * 'provider' (string): The provider like '"provider[\"registry.terraform.io/hashicorp/aws\"]"' + * 'type' (string): The type of the resource like 'aws_vpc' + * 'name' (string): The name of the resource like 'front' + * 'module' (string): The module name like 'module.lemp' + * 'label' (string): The label of the resource, this only applies for resources created directly from the API/FE + * 'attributes' (string): The query string to filter the attributes like 'ingress[0].protocol[eq]=tcp' + * 'custom_attributes' (string): The query string to filter the custom_attributes like 'ingress[0].protocol[eq]=tcp' + * 'attribute' (string): The path to the attribute to actually use as value + properties: {} + type: object required: - - api_url - - id - - name - - status - - team_name + - key + - name + - type + - widget + title: Forms file's Entity type: object + FormGroup: + description: "" + example: + condition: condition + folded: true + name: name + technologies: + - technologies + - technologies + vars: + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' properties: - id: - type: integer - format: uint64 - team_name: + condition: + description: Condition required to be respected to be able to configure that group. type: string + folded: + description: Whether or not the group should be displayed to the user. Variables within this group must be usable as such (not required, or with a default if required) + type: boolean name: - $ref: '#/components/schemas/Name' - status: type: string - job_name: - type: string - api_url: - type: string - pipeline_name: - type: string - pipeline_id: - type: integer - format: uint64 - start_time: - type: integer - format: uint64 - end_time: - type: integer - format: uint64 - reap_time: - type: integer - format: uint64 - description: The information relative to a build. - Preparation: - title: Preparation + technologies: + items: + type: string + type: array + vars: + items: + $ref: '#/components/schemas/FormEntity' + type: array required: - - build_id - - inputs - - inputs_satisfied - - max_running_builds - - missing_input_reasons - - paused_job - - paused_pipeline + - name + - technologies + - vars + title: Forms File Group type: object + FormInput: + description: | + The variables set within a form with the corresponding + environment canonical and use case properties: - build_id: - type: string - paused_pipeline: + environment_canonical: + description: The environment canonical type: string - paused_job: + resource_pool_canonical: + description: The resource pool canonical, only require when using Quotas type: string - max_running_builds: + use_case: + description: The use case to load type: string - inputs: - type: object - properties: {} - inputs_satisfied: - type: object + vars: + description: | + Forms variables filled, the format to respect is as follows + { + "sectionX": { + "group1": { + "key1": "value1", + "key2": "value2", + "key3": "value3" + }, + }, + "sectionY": { + "group2": { + "key1": "value1", + "key2": "value2", + "key3": "value3" + }, + }, + "sectionZ": { + "group3": { + "key1": "value2" + }, + } + } + Keys being the variable name that you want to see substituted/defined, + while the section and group are the one from the form's file. properties: {} - missing_input_reasons: type: object - properties: {} - Role: - title: Role access control required: - - canonical - - default - - description - - id - - name - - rules + - environment_canonical + - use_case + - vars + title: Forms input type: object + FormInputs: + description: | + The array of variables set by the user via the forms with the associated environment + canonical and use case upon project creation. properties: - id: - $ref: '#/components/schemas/ID' - name: - $ref: '#/components/schemas/Name' - canonical: - $ref: '#/components/schemas/Canonical' - description: - $ref: '#/components/schemas/Description' - default: - type: boolean - rules: - type: array + inputs: + description: | + The variables set within a form with the corresponding environment + canonical and use case items: - $ref: '#/components/schemas/Rule' - created_at: - $ref: '#/components/schemas/CreatedAt' - updated_at: - $ref: '#/components/schemas/UpdatedAt' - description: Role represents the authorization level that an user has to access - to a specific entity of the system. A role contains a list of rules to define - the access control. Note not all the entities supports roles access control; - see the API endpoints to know which entities support them. - NewRole: - title: New role access control + $ref: '#/components/schemas/FormInput' + type: array + service_catalog_ref: + description: | + It's the ref of the Service Catalog, like 'cycloidio:stack-magento' + type: string required: - - name - - rules + - inputs + - service_catalog_ref + title: Forms inputs type: object + FormSection: + description: "" + example: + groups: + - condition: condition + folded: true + name: name + technologies: + - technologies + - technologies + vars: + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + - condition: condition + folded: true + name: name + technologies: + - technologies + - technologies + vars: + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + name: name properties: - name: - $ref: '#/components/schemas/Name' - canonical: - $ref: '#/components/schemas/Canonical' - description: - $ref: '#/components/schemas/Description' - rules: - type: array + groups: items: - $ref: '#/components/schemas/NewRule' - description: New role represents the authorization level that a user has access - to. A role contains a list of rules to define the access control. Note not - all the entities supports roles access control; see the API endpoints to know - which entities support them. - Rule: - title: Rule + $ref: '#/components/schemas/FormGroup' + type: array + name: + type: string required: - - action - - effect - - id + - groups + - name + title: Forms File Section type: object + FormUseCase: + description: "" + example: + name: name + sections: + - groups: + - condition: condition + folded: true + name: name + technologies: + - technologies + - technologies + vars: + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + - condition: condition + folded: true + name: name + technologies: + - technologies + - technologies + vars: + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + name: name + - groups: + - condition: condition + folded: true + name: name + technologies: + - technologies + - technologies + vars: + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + - condition: condition + folded: true + name: name + technologies: + - technologies + - technologies + vars: + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + name: name properties: - id: - minimum: 0 - type: integer - description: "This is the id of the row from the database, but for blocking\ - \ organizations we generate rules that are not in the database. When this\ - \ happens the id is allowed to be 0." - format: uint32 - effect: - type: string - enum: - - allow - action: + name: type: string - description: It can be the normal Policy.Code or contain globs like `*` - or `**` - resources: - type: array - description: "It is the list of resources in which this Rule applies to,\ - \ the format of it is the one on the Policy.Code but with the `canonical`\ - \ of the entities like `organization:org-can:team:team-can` for an action\ - \ of `organization:team:read`" + sections: items: - type: string - description: Rules define the specific access to the platform - NewRule: - title: NewRule + $ref: '#/components/schemas/FormSection' + type: array required: - - action - - effect + - name + - sections + title: Forms File Use case type: object + FormsFileV3: + description: "" + example: + use_cases: + - name: name + sections: + - groups: + - condition: condition + folded: true + name: name + technologies: + - technologies + - technologies + vars: + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + - condition: condition + folded: true + name: name + technologies: + - technologies + - technologies + vars: + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + name: name + - groups: + - condition: condition + folded: true + name: name + technologies: + - technologies + - technologies + vars: + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + - condition: condition + folded: true + name: name + technologies: + - technologies + - technologies + vars: + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + name: name + - name: name + sections: + - groups: + - condition: condition + folded: true + name: name + technologies: + - technologies + - technologies + vars: + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + - condition: condition + folded: true + name: name + technologies: + - technologies + - technologies + vars: + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + name: name + - groups: + - condition: condition + folded: true + name: name + technologies: + - technologies + - technologies + vars: + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + - condition: condition + folded: true + name: name + technologies: + - technologies + - technologies + vars: + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + name: name + version: version properties: - action: - type: string - description: It can be the normal Policy.Code or contain globs like `*` - or `**` - effect: - type: string - enum: - - allow - resources: - type: array - description: "It is the list of resources in which this Rule applies to,\ - \ the format of it is the one on the Policy.Code but with the `canonical`\ - \ of the entities like `organization:org-can:team:team-can` for an action\ - \ of `organization:team:read`" + use_cases: items: - type: string - description: NewRule represents an existing or new permission or constraint - to access to an entity of the system. A Rule is aggregated into roles in order - to be applied. - Policy: - title: Policy + $ref: '#/components/schemas/FormUseCase' + type: array + version: + type: string required: - - code - - description - - id + - use_cases + - version + title: Forms File V3 type: object + FormsValidation: + description: Validates a given Form's file properties: - id: - $ref: '#/components/schemas/ID' - code: - maxLength: 60 - minLength: 5 - pattern: "(?:[a-z]+_)*[a-z]+(?::(?:[a-z]+_)*[a-z]+)*$" - type: string - entities: - type: array - items: - type: string - description: - $ref: '#/components/schemas/Description' - created_at: - $ref: '#/components/schemas/CreatedAt' - updated_at: - $ref: '#/components/schemas/UpdatedAt' - description: Policy represents a permission or constraint to access to an entity - of the system. A policy is aggregated into roles in order to be applied. - CloudProvider: - title: Cloud Provider + form_file: + description: A form's file to any given version + properties: {} + type: object required: - - canonical - - name + - form_file + title: Forms validation type: object + FormsValidationResult: + description: The result of the validation, if errors is empty means that is correct + example: + errors: + - errors + - errors + forms: + use_cases: + - name: name + sections: + - groups: + - condition: condition + folded: true + name: name + technologies: + - technologies + - technologies + vars: + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + - condition: condition + folded: true + name: name + technologies: + - technologies + - technologies + vars: + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + name: name + - groups: + - condition: condition + folded: true + name: name + technologies: + - technologies + - technologies + vars: + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + - condition: condition + folded: true + name: name + technologies: + - technologies + - technologies + vars: + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + name: name + - name: name + sections: + - groups: + - condition: condition + folded: true + name: name + technologies: + - technologies + - technologies + vars: + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + - condition: condition + folded: true + name: name + technologies: + - technologies + - technologies + vars: + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + name: name + - groups: + - condition: condition + folded: true + name: name + technologies: + - technologies + - technologies + vars: + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + - condition: condition + folded: true + name: name + technologies: + - technologies + - technologies + vars: + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + name: name + version: version properties: - id: - $ref: '#/components/schemas/ID' - canonical: - $ref: '#/components/schemas/Canonical' - name: - $ref: '#/components/schemas/Name' - regions: - type: array + errors: items: type: string - created_at: - $ref: '#/components/schemas/CreatedAt' - updated_at: - $ref: '#/components/schemas/UpdatedAt' - description: CloudProvider represents a cloud provider. Those cloud providers - are used to identify the scope of projects and/or stacks. - ErrorPayload: - title: Error Payload + type: array + forms: + $ref: '#/components/schemas/FormsFileV3' required: - - errors + - errors + - forms + title: FormsValidationResult type: object + FormsValuesRef: + description: It has the information to get the values of an entity of the Form properties: - errors: - type: array - items: - $ref: '#/components/schemas/ErrorDetailsItem' + url: + description: The url to which fetch the results + type: string + required: + - url + title: Forms values ref + type: object + GCPCostStorage: + allOf: + - $ref: '#/components/schemas/ExternalBackendConfiguration' + - properties: + dataset: + description: | + The GCP BigQuery dataset containing tables + type: string + project_id: + description: | + The project that contains the BigQuery dataset. + type: string + table: + description: | + The GCP BigQuery table containing data + type: string + type: object description: | - The payload used by the server to response to the client with an Error, those errors could be any of the ones listed [here](https://github.com/cycloidio/youdeploy-http-api/blob/develop/errors/code.go#L10), only the CODE of the error is the one that is guaranteed to not change between the same major version, the MESSAGE could change. - ErrorDetailsItem: - title: Error details item + Representation of BigQuery external backend. + Must be matched with a credential of the "gcp" type. + GCPRemoteTFState: + allOf: + - $ref: '#/components/schemas/ExternalBackendConfiguration' + - properties: + bucket: + description: | + The GCP bucket containing objects + type: string + object: + description: | + The GCP object uniquely identifying an object in a bucket + type: string + required: + - bucket + type: object + description: | + Deprecated. Please use GCPStorage. + Representation of GCP remote tf state for external backend. + Must be matched with a credential of the "gcp" type. + GCPStorage: + description: | + Representation of GCP remote tf state for external backend. + Must be matched with a credential of the "gcp" type. + discriminator: + propertyName: engine + example: + engine: engine + properties: + bucket: + description: | + The GCP bucket containing objects + type: string + container: + description: | + The Swift container containing objects + type: string + endpoint: + description: | + A custom endpoint for the S3 API (default: s3.amazonaws.com) + type: string + engine: + type: string + key: + description: | + The S3 Key uniquely identifies an object in a bucket + type: string + object: + description: | + The swift object uniquely identifying an object in a container, + will be required if the EB is not default + type: string + region: + description: | + The Swift region where the resource exists + type: string + s3_force_path_style: + description: | + Always use path-style S3 URLs (https:/// instead of https://.) + type: boolean + skip_verify_ssl: + description: | + Set this to `true` to not verify SSL certificates + type: boolean required: - - code - - message + - bucket type: object + GeneralStatus: + example: + checks: + - canonical: canonical + category: category + message: message + status: Unknown + - canonical: canonical + category: category + message: message + status: Unknown + message: message + status: Unknown properties: + checks: + description: List of all checks report type/name/status. + items: + $ref: '#/components/schemas/CheckReport' + type: array message: + description: Message providing information regarding the status. + minLength: 1 type: string - code: + status: + description: The overall status for the application. + enum: + - Unknown + - Success + - Error type: string - details: - type: array - items: - type: string - description: Represents an item of the list of details of an error. - ServiceCatalog: - title: Service Catalog required: - - author - - canonical - - description - - directory - - form_enabled - - id - - keywords - - name - - quota_enabled - - ref - - trusted + - checks + - message + - status + title: GeneralStatus type: object + GetPlan: + description: The plan to get before running another one. properties: - id: - $ref: '#/components/schemas/ID' name: - $ref: '#/components/schemas/Name' - canonical: - $ref: '#/components/schemas/Canonical' - author: type: string - description: - $ref: '#/components/schemas/Description' - keywords: - type: array + params: + additionalProperties: + properties: {} + type: object + type: object + resource: + type: string + source: + additionalProperties: + properties: {} + type: object + type: object + tags: items: type: string - image: - type: string - format: uri - status: - type: string - service_catalog_source_canonical: - $ref: '#/components/schemas/Canonical' - form_enabled: - type: boolean - description: Indicates if this stack can be configured with form's or not. - Based on the presence or not of a valid .forms.yaml file since it's creation - or last refresh. - quota_enabled: - type: boolean - description: Indicates if this stack can be configured with form's and has - a Quota configuration. - ref: + type: array + type: type: string - trusted: - type: boolean - description: If 'true' the ServiceCatalog is from the main organization - and can be trusted. - directory: + version: + additionalProperties: + type: string + type: object + version_from: type: string - description: Directory where the ServiceCatalog configuration is found. - technologies: + versioned_resource_types: + items: + $ref: '#/components/schemas/VersionedResourceType' type: array + required: + - resource + - source + - type + title: GetPlan + type: object + GitHubOAuthConfig: + allOf: + - $ref: '#/components/schemas/AuthConfigOAuth' + - properties: + host_address: + description: | + GitHub host address is used to determine where the request for the token should be sent. + In most cases this address will be https://api.github.com`, but it could be different + for onprem clients that use GitHub Enterprise. + type: string + required: + - host_address + type: object + description: GitHub OAuth configuration. + title: AppConfigGitHubOAuth + GitLabHTTPStorage: + allOf: + - $ref: '#/components/schemas/ExternalBackendConfiguration' + - properties: + url: + description: | + The URL endpoint to use + type: string + required: + - url + type: object + description: | + Representation of GitLab HTTP storage for external backend. + Must be matched with a credential of the "basic_auth" type. + GoogleOAuthConfig: + allOf: + - $ref: '#/components/schemas/AuthConfigOAuth' + description: Google OAuth configuration + title: AppConfigGoogleOAuth + GroupConfig: + description: The entity which represents pipeline group config + example: + jobs: + - jobs + - jobs + name: name + resources: + - resources + - resources + properties: + jobs: items: - $ref: '#/components/schemas/ServiceCatalogTechnology' - dependencies: + type: string type: array + name: + type: string + resources: items: - $ref: '#/components/schemas/ServiceCatalogDependency' - created_at: - $ref: '#/components/schemas/CreatedAt' - updated_at: - $ref: '#/components/schemas/UpdatedAt' - import_status: + type: string + type: array + required: + - name + title: GroupConfig + type: object + HTTPStorage: + allOf: + - $ref: '#/components/schemas/ExternalBackendConfiguration' + - properties: + url: + description: | + The URL endpoint to use + type: string + required: + - url + type: object + description: | + Representation of HTTP storage for external backend. + Must be matched with a credential of the "basic_auth" type. + InUseConfigRepository: + description: Represents a Config repository that's using credential + example: + canonical: canonical + name: name + properties: + canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ type: string - description: The import process status. - enum: - - succeeded - - failed - - importing - readme: + name: type: string - description: Readme of the stack - description: Represents the Service Catalog item - ServiceCatalogConfig: - title: Service Catalog Configuration - type: object - additionalProperties: - $ref: '#/components/schemas/SCConfigUseCaseConfig' - description: Represents a Service Catalog's Config item - SCConfigUseCaseConfig: - title: Use Case Configuration required: - - cloud_provider - - description - - name - - pipeline + - canonical + - name + title: InUseConfigRepository type: object + InUseEnvironment: + description: Represents an environment that's using credential + example: + canonical: canonical properties: - name: - $ref: '#/components/schemas/Name' - description: - $ref: '#/components/schemas/Description' - cloud_provider: + canonical: + maxLength: 100 + minLength: 1 + pattern: (^[a-z0-9]+(([a-z0-9\-_]+)?[a-z0-9]+)?$) type: string - pipeline: - $ref: '#/components/schemas/SCConfigPipelineConfig' - ansible: - $ref: '#/components/schemas/SCConfigTechConfig' - terraform: - $ref: '#/components/schemas/SCConfigTechConfig' - forms: - $ref: '#/components/schemas/FormUseCase' - description: Represents the Service Catalog Configuration for a given Use Case - SCConfigPipelineConfig: - title: Pipeline Configuration required: - - pipeline - - variables + - canonical + title: InUseEnvironment type: object + InUseExternalBackend: + description: Represents a external backend that's using credential + example: + engine: engine + environment: + canonical: canonical + project: + canonical: canonical + name: name + purpose: purpose properties: - pipeline: - $ref: '#/components/schemas/SCConfigPathConfig' - variables: - $ref: '#/components/schemas/SCConfigPathDestConfig' - description: Represents the Service Catalog Configuration for a Pipeline of - a given Use Case - SCConfigTechConfig: - title: Tech Configuration + engine: + type: string + environment: + $ref: '#/components/schemas/InUseEnvironment' + project: + $ref: '#/components/schemas/InUseProject' + purpose: + type: string + required: + - engine + - purpose + title: InUseExternalBackend type: object - additionalProperties: - $ref: '#/components/schemas/SCConfigPathDestConfig' - description: Represents the Service Catalog Configuration for a Technology of - a given Use Case - SCConfigPathConfig: - title: Path Configuration + InUseProject: + description: Represents a project that's using credential + example: + canonical: canonical + name: name + properties: + canonical: + maxLength: 100 + minLength: 1 + pattern: (^[a-z0-9]+(([a-z0-9\-_]+)?[a-z0-9]+)?$) + type: string + name: + type: string required: - - content - - path + - canonical + - name + title: InUseProject type: object + InUseServiceCatalogSource: + description: Represents a Service catalog source that's using credential + example: + canonical: canonical + name: name properties: - path: + canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ type: string - content: + name: type: string - description: Represents a Configuration which holds Path and Content - SCConfigPathDestConfig: - title: Path and Destination Configuration required: - - content - - destination - - path + - canonical + - name + title: InUseServiceCatalogSource type: object + InfraImport: + description: | + The entity which represents the information of for the import of a new Stack or Project. + example: + error: error + logs: logs + project_canonical: project_canonical + service_catalog_ref: service_catalog_ref + status: succeeded properties: - path: + error: type: string - destination: + logs: type: string - content: + project_canonical: + maxLength: 100 + minLength: 1 + pattern: (^[a-z0-9]+(([a-z0-9\-_]+)?[a-z0-9]+)?$) + type: string + service_catalog_ref: + description: It's the ref of the Service Catalog, like 'cycloidio:stack-magento' + type: string + status: + description: The import process status. + enum: + - succeeded + - failed + - importing type: string - description: "Represents a Configuration which holds Path, Destination and Content" - SCConfigFormData: - title: Form Data - type: object - additionalProperties: - type: object - additionalProperties: - type: array - items: - $ref: '#/components/schemas/FormEntity' - description: Represents the Data related to Forms that is stored in a SC Configuration - for a given Use Case - NewServiceCatalog: - title: Service Catalog required: - - author - - description - - keywords - - name - - service_catalog_source_canonical + - error + - logs + - service_catalog_ref + - status + title: Infra Import type: object + InfraImportPreset: + description: | + Infra Import's pre-configured group with Resources commonly used together in a specific context. + example: + name: name + resources: + - resources + - resources properties: name: - $ref: '#/components/schemas/Name' - canonical: - $ref: '#/components/schemas/Canonical' - author: type: string - description: - $ref: '#/components/schemas/Description' - keywords: - type: array + resources: items: type: string - image: - type: string - format: uri - status: - type: string - service_catalog_source_canonical: - $ref: '#/components/schemas/Canonical' - technologies: - type: array - items: - $ref: '#/components/schemas/ServiceCatalogTechnology' - dependencies: type: array - items: - $ref: '#/components/schemas/ServiceCatalogDependency' - created_at: - $ref: '#/components/schemas/CreatedAt' - updated_at: - $ref: '#/components/schemas/UpdatedAt' - description: Represents the Service Catalog item - NewServiceCatalogFromTemplate: - title: Service Catalog required: - - canonical - - name - - service_catalog_source_canonical - - use_case + - name + - resources + title: InfraImportPreset type: object + InfraImportResource: + description: | + The representation of the Infra Import's Resource of a Cloud Provider. + example: + id: id properties: - name: - $ref: '#/components/schemas/Name' - canonical: - $ref: '#/components/schemas/Canonical' - author: - type: string - service_catalog_source_canonical: - $ref: '#/components/schemas/Canonical' - use_case: + id: type: string - created_at: - $ref: '#/components/schemas/CreatedAt' - updated_at: - $ref: '#/components/schemas/UpdatedAt' - description: Represents the Service Catalog item - ServiceCatalogTechnology: - title: ServiceCatalogTechnology + required: + - id + title: Infra Import Resource type: object + InfraImportResourceBody: + description: Entry that represents all the data needed for fetching resource properties: - technology: - type: string - version: + configuration: + $ref: '#/components/schemas/CloudProviderConfiguration' + credential_canonical: + description: Credential that will be used to import from the provider + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ type: string - description: ServiceCatalogTechnology is a Technology of the Service Catalog - ServiceCatalogDependency: - title: ServiceCatalogDependency + tags: + items: + type: string + type: array + required: + - configuration + - credential_canonical + title: Provider Resources body type: object + InfraImportResourcesBody: + description: Entry that represents all the data needed for fetching resources properties: - ref: + configuration: + $ref: '#/components/schemas/CloudProviderConfiguration' + credential_canonical: + description: Credential that will be used to import from the provider + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ type: string - required: - type: boolean - description: Service Catalog Dependency identifies ServiceCatalog being dependency - of other - ServiceCatalogDependenciesValidationResult: - title: ServiceCatalogValidationResult required: - - errors - - warnings + - configuration + - credential_canonical + title: Provider's Resources body type: object + InfraPoliciesValidationResult: + description: The set of not respected rules for the checked policies. + example: + advisories: + - infra_policy: + body: body + canonical: canonical + created_at: 6 + description: description + enabled: true + id: 1 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + severity: critical + updated_at: 1 + reasons: + - reasons + - reasons + - infra_policy: + body: body + canonical: canonical + created_at: 6 + description: description + enabled: true + id: 1 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + severity: critical + updated_at: 1 + reasons: + - reasons + - reasons + criticals: + - infra_policy: + body: body + canonical: canonical + created_at: 6 + description: description + enabled: true + id: 1 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + severity: critical + updated_at: 1 + reasons: + - reasons + - reasons + - infra_policy: + body: body + canonical: canonical + created_at: 6 + description: description + enabled: true + id: 1 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + severity: critical + updated_at: 1 + reasons: + - reasons + - reasons + warnings: + - infra_policy: + body: body + canonical: canonical + created_at: 6 + description: description + enabled: true + id: 1 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + severity: critical + updated_at: 1 + reasons: + - reasons + - reasons + - infra_policy: + body: body + canonical: canonical + created_at: 6 + description: description + enabled: true + id: 1 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + severity: critical + updated_at: 1 + reasons: + - reasons + - reasons properties: - errors: + advisories: + items: + $ref: '#/components/schemas/InfraPoliciesValidationResultItem' type: array + criticals: items: - type: string - warnings: + $ref: '#/components/schemas/InfraPoliciesValidationResultItem' type: array + warnings: items: - type: string - description: The result of the Service Catalog dependencies validation. If errors - and warnings are empty then it means that the dependencies are respected. - SCConfig: - title: SC Config - required: - - configs + $ref: '#/components/schemas/InfraPoliciesValidationResultItem' + type: array + title: Infra policies validation results. type: object + InfraPoliciesValidationResultItem: + description: | + InfraPoliciesValidationResultItem represents a checked rule + with a failed result generated from the validation process. + example: + infra_policy: + body: body + canonical: canonical + created_at: 6 + description: description + enabled: true + id: 1 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + severity: critical + updated_at: 1 + reasons: + - reasons + - reasons properties: - configs: - type: array - description: Config files that will be created + infra_policy: + $ref: '#/components/schemas/InfraPolicy' + reasons: + description: | + The messages about the reason of the validation failure + that's written in the InfraPolicy's Body of the failed rule. items: - $ref: '#/components/schemas/ConfigFile' - description: This entity is being used for automatic creation of SC config - ConfigFile: - title: SC config file + type: string + type: array required: - - content - - path + - infra_policy type: object + InfraPolicy: + description: The policy to control operations across infrastructure. + example: + body: body + canonical: canonical + created_at: 6 + description: description + enabled: true + id: 1 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + severity: critical + updated_at: 1 properties: - path: + body: + description: The body field is the code in plain text that defines the rules for the policy. type: string - content: - pattern: "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$" + canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ type: string - format: byte - description: This object contains SC config file name and its content - ServiceCatalogSource: - title: ServiceCatalogSource - required: - - canonical - - id - - name - - owner - - stack_count - - url - type: object - properties: + created_at: + format: uint64 + type: integer + description: + type: string + enabled: + type: boolean id: - $ref: '#/components/schemas/ID' + format: uint32 + minimum: 1 + type: integer name: - $ref: '#/components/schemas/Name' - canonical: - $ref: '#/components/schemas/Canonical' - url: - $ref: '#/components/schemas/GitURL' - branch: - $ref: '#/components/schemas/Branch' - credential_canonical: - $ref: '#/components/schemas/Canonical' + minLength: 3 + type: string owner: $ref: '#/components/schemas/User' - created_at: - $ref: '#/components/schemas/CreatedAt' + severity: + description: | + It defines the enforcement level. It must be used from the caller of the InfraPolicy + validation endpoint to apply the specific logic in case of not respected InfraPolicies. + Uses critical to block the changes. + Uses warning to block the changes but allow to override manually. + Uses advisory to allow them but a notification must be send. + enum: + - critical + - warning + - advisory + type: string updated_at: - $ref: '#/components/schemas/UpdatedAt' - refreshed_at: - minimum: 0 - type: integer - description: The last time the Service Catalog Source was (successfully) - refreshed. format: uint64 - stack_count: - minimum: 0 type: integer - format: uint32 - changes: - $ref: '#/components/schemas/ServiceCatalogChanges' - service_catalogs: - type: array - description: Represents list of service catalogs in the service catalog - source. Not used during update action on a service catalog source. - items: - $ref: '#/components/schemas/ServiceCatalog' - NewServiceCatalogSource: - title: NewServiceCatalogSource required: - - branch - - name - - url + - body + - canonical + - created_at + - description + - enabled + - id + - name + - severity + - updated_at + title: InfraPolicy type: object + Infrastructure: + description: Holds all the Infrastructure of the project in an environment + example: + config: '{}' + graph: + edges: + - canonicals: + - canonicals + - canonicals + id: id + source: source + target: target + - canonicals: + - canonicals + - canonicals + id: id + source: source + target: target + nodes: + - canonical: canonical + id: id + name: name + position: + - 0 + - 0 + resource: + attributes: + important: + - important + - important + normalized_status: '{}' + status: status + canonical: canonical + category: category + description: description + image: https://openapi-generator.tech + is_edge: true + is_node: true + keywords: + - keywords + - keywords + short_description: short_description + - canonical: canonical + id: id + name: name + position: + - 0 + - 0 + resource: + attributes: + important: + - important + - important + normalized_status: '{}' + status: status + canonical: canonical + category: category + description: description + image: https://openapi-generator.tech + is_edge: true + is_node: true + keywords: + - keywords + - keywords + short_description: short_description properties: - name: - $ref: '#/components/schemas/Name' - canonical: - $ref: '#/components/schemas/Canonical' - url: - $ref: '#/components/schemas/GitURL' - branch: - $ref: '#/components/schemas/Branch' - credential_canonical: - $ref: '#/components/schemas/Canonical' - owner: - $ref: '#/components/schemas/Owner' - UpdateServiceCatalogSource: - title: UpdateServiceCatalogSource + config: + description: Holds all the Infrastructure config of the TFState + title: InfrastructureConfig + type: object + graph: + $ref: '#/components/schemas/InfrastructureGraph' required: - - name - - url + - config + - graph + title: Infrastructure type: object - properties: - name: - $ref: '#/components/schemas/Name' - url: - $ref: '#/components/schemas/GitURL' - branch: - $ref: '#/components/schemas/Branch' - credential_canonical: - $ref: '#/components/schemas/Canonical' - owner: - $ref: '#/components/schemas/Owner' - ServiceCatalogChanges: - title: ServiceCatalogChanges - required: - - created - - deleted - - updated + InfrastructureConfig: + description: Holds all the Infrastructure config of the TFState + title: InfrastructureConfig type: object + InfrastructureGraph: + description: Holds all the Infrastructure of the project in an environment in Graph format + example: + edges: + - canonicals: + - canonicals + - canonicals + id: id + source: source + target: target + - canonicals: + - canonicals + - canonicals + id: id + source: source + target: target + nodes: + - canonical: canonical + id: id + name: name + position: + - 0 + - 0 + resource: + attributes: + important: + - important + - important + normalized_status: '{}' + status: status + canonical: canonical + category: category + description: description + image: https://openapi-generator.tech + is_edge: true + is_node: true + keywords: + - keywords + - keywords + short_description: short_description + - canonical: canonical + id: id + name: name + position: + - 0 + - 0 + resource: + attributes: + important: + - important + - important + normalized_status: '{}' + status: status + canonical: canonical + category: category + description: description + image: https://openapi-generator.tech + is_edge: true + is_node: true + keywords: + - keywords + - keywords + short_description: short_description properties: - created: - type: array + edges: items: - $ref: '#/components/schemas/ServiceCatalog' - updated: + $ref: '#/components/schemas/InfrastructureGraphEdge' type: array + nodes: items: - $ref: '#/components/schemas/ServiceCatalog' - deleted: + $ref: '#/components/schemas/InfrastructureGraphNode' type: array - items: - $ref: '#/components/schemas/ServiceCatalog' - description: Represents list of service catalogs changes during the refresh - of a service catalog source. - Credential: - title: Credential required: - - canonical - - id - - keys - - name - - path - #- body - - type + - edges + - nodes + title: InfrastructureGraph type: object + InfrastructureGraphEdge: + description: Holds the information of an Edge of the Graph + example: + canonicals: + - canonicals + - canonicals + id: id + source: source + target: target properties: + canonicals: + items: + type: string + type: array id: - $ref: '#/components/schemas/ID' - name: - $ref: '#/components/schemas/Name' - canonical: - $ref: '#/components/schemas/Canonical' - type: type: string - enum: - - ssh - - aws - - custom - - azure - - azure_storage - - gcp - - basic_auth - - elasticsearch - - swift - - vmware - path: + source: + type: string + target: type: string - #body: - #$ref: '#/components/schemas/CredentialRaw' - description: - $ref: '#/components/schemas/Description' - keys: - type: array - description: List of all the keys available for the Credential - items: - type: string - owner: - $ref: '#/components/schemas/User' - created_at: - $ref: '#/components/schemas/CreatedAt' - updated_at: - $ref: '#/components/schemas/UpdatedAt' - in_use: - $ref: '#/components/schemas/CredentialInUse' - description: Represents the Credential - NewCredential: - title: Credential required: - - name - - path - - body - - type + - canonicals + - id + - source + - target + title: Infrastructure type: object + InfrastructureGraphNode: + description: Holds the information of a Node of the Graph + example: + canonical: canonical + id: id + name: name + position: + - 0 + - 0 + resource: + attributes: + important: + - important + - important + normalized_status: '{}' + status: status + canonical: canonical + category: category + description: description + image: https://openapi-generator.tech + is_edge: true + is_node: true + keywords: + - keywords + - keywords + short_description: short_description properties: - name: - $ref: '#/components/schemas/Name' canonical: - $ref: '#/components/schemas/Canonical' - type: type: string - enum: - - ssh - - aws - - custom - - azure - - azure_storage - - gcp - - basic_auth - - elasticsearch - - swift - - vmware - path: - pattern: "[a-zA-z0-9_\\-./]" + id: type: string - body: - $ref: '#/components/schemas/CredentialRaw' - description: - $ref: '#/components/schemas/Description' - owner: - $ref: '#/components/schemas/Owner' - description: Represents the Credential - UpdateCredential: - title: Credential - required: - - canonical - - name - - path - - body - - type - type: object - properties: name: - $ref: '#/components/schemas/Name' - canonical: - $ref: '#/components/schemas/Canonical' - type: - type: string - enum: - - ssh - - aws - - custom - - azure - - azure_storage - - gcp - - basic_auth - - elasticsearch - - vmware - path: - pattern: "[a-zA-z0-9_\\-./]" type: string - body: - $ref: '#/components/schemas/CredentialRaw' - description: - $ref: '#/components/schemas/Description' - owner: - $ref: '#/components/schemas/Owner' - description: Represents the Credential - CredentialSimple: - title: Credential Simple + position: + description: It holds [x,y] + items: + format: uint64 + type: integer + type: array + resource: + $ref: '#/components/schemas/TerraformProviderResourceSimple' required: - - canonical - - id - - keys - - name - - path - - type + - canonical + - id + - position + - resource + title: Infrastructure type: object + InfrastructureResourcesAggregationItem: + description: Contains aggregated data of a single type of an infrastructure resource. + example: + total_amount: 0 properties: - id: - $ref: '#/components/schemas/ID' - name: - $ref: '#/components/schemas/Name' - canonical: - $ref: '#/components/schemas/Canonical' - type: - type: string - enum: - - ssh - - aws - - custom - - azure - - azure_storage - - gcp - - basic_auth - - elasticsearch - - swift - - vmware - path: - type: string - description: - $ref: '#/components/schemas/Description' - keys: - type: array - description: List of all the keys available for the Credential - items: - type: string - created_at: - $ref: '#/components/schemas/CreatedAt' - updated_at: - $ref: '#/components/schemas/UpdatedAt' - in_use: - $ref: '#/components/schemas/CredentialInUse' - owner: - $ref: '#/components/schemas/User' - description: Represents the Credential without the raw and owner - CredentialRaw: - title: Credential Raw + total_amount: + description: The number of items of the specific type of resource. + format: uint32 + type: integer + required: + - total_amount + title: Infrastructure Resource Aggregation Item type: object + InventoryResource: + description: The Resource of the Inventory representing an element of your infrastructure + example: + attributes: '{}' + category: category + cpu: 0 + custom_attributes: '{}' + description: description + environment_canonical: environment_canonical + id: 1 + image: https://openapi-generator.tech + keywords: + - keywords + - keywords + label: label + memory: 0 + mode: mode + module: module + name: name + project_canonical: project_canonical + provider: provider + short_description: short_description + storage: 0 + type: type properties: - raw: + attributes: + properties: {} type: object - additionalProperties: true - #properties: {} - ssh_key: - type: string - access_key: + category: + description: Category of the resource type type: string - secret_key: + cpu: + description: The amount of cpu that it has in units + format: uint64 + minimum: 0 + type: integer + custom_attributes: + description: List of attributes of the Resource, can be anything + properties: {} + type: object + description: + description: Full description of the resource type documentation type: string - account_name: + environment_canonical: + description: Environment canonical in which this resource is used + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ type: string - json_key: + id: + format: uint32 + minimum: 1 + type: integer + image: + description: Image of the resource type + format: uri type: string - username: + keywords: + description: Set of keywords to categorize the resource type + items: + type: string + type: array + label: + description: A way to distinguish and categorize resources type: string - password: + memory: + description: The amount of memory that it has in MB + format: uint64 + minimum: 0 + type: integer + mode: + description: The way this resource is handled type: string - client_id: + module: + description: The module it belongs to type: string - client_secret: + name: + description: The name of the resource type: string - subscription_id: + project_canonical: + description: Project canonical in which this resource is used + pattern: (^[a-z0-9]+(([a-z0-9\-_]+)?[a-z0-9]+)?$) type: string - tenant_id: + provider: + description: The provider of the created Resource type: string - ca_cert: + short_description: + description: Short description of the resource type documentation type: string - domain_id: + storage: + description: The amount of storage that it has in MB + format: uint64 + minimum: 0 + type: integer + type: + description: The type of the resource type: string - auth_url: + required: + - name + - provider + - type + title: Inventory Resource + type: object + InventoryResourceLabel: + description: Aggregated information of resources having a label + example: + cpu: 0 + memory: 0 + name: name + storage: 0 + properties: + cpu: + description: The aggregated amount of cpu of resources having the label + format: uint64 + minimum: 0 + type: integer + memory: + description: The aggregated amount of memory of resources having the label in MB + format: uint64 + minimum: 0 + type: integer + name: + description: Value of the resources' label type: string - description: All the possible fields inside it - CredentialInUse: - title: Credential in use + storage: + description: The aggregated amount of storage of resources having the label in MB + format: uint64 + minimum: 0 + type: integer + required: + - cpu + - memory + - name + - storage + title: Inventory Resource Label type: object + Job: + description: The entity which represents a job output in the application. + example: + disable_manual_trigger: true + finished_build: + api_url: api_url + end_time: 7 + id: 1 + job_name: job_name + name: name + pipeline_id: 1 + pipeline_name: pipeline_name + reap_time: 1 + start_time: 6 + status: status + team_name: team_name + first_logged_build_id: 1 + groups: + - groups + - groups + has_new_inputs: true + id: 7 + inputs: + - name: name + passed: + - passed + - passed + resource: resource + trigger: true + version: + every: true + latest: true + pinned: + key: pinned + - name: name + passed: + - passed + - passed + resource: resource + trigger: true + version: + every: true + latest: true + pinned: + key: pinned + name: name + next_build: + api_url: api_url + end_time: 7 + id: 1 + job_name: job_name + name: name + pipeline_id: 1 + pipeline_name: pipeline_name + reap_time: 1 + start_time: 6 + status: status + team_name: team_name + outputs: + - name: name + resource: resource + - name: name + resource: resource + paused: true + pipeline_id: 4 + pipeline_name: pipeline_name + team_name: team_name + transition_build: + api_url: api_url + end_time: 7 + id: 1 + job_name: job_name + name: name + pipeline_id: 1 + pipeline_name: pipeline_name + reap_time: 1 + start_time: 6 + status: status + team_name: team_name properties: - service_catalog_sources: - type: array + disable_manual_trigger: + type: boolean + finished_build: + $ref: '#/components/schemas/Build' + first_logged_build_id: + format: uint64 + type: integer + groups: items: - $ref: '#/components/schemas/InUseServiceCatalogSource' - config_repositories: + type: string type: array + has_new_inputs: + type: boolean + id: + format: uint64 + type: integer + inputs: items: - $ref: '#/components/schemas/InUseConfigRepository' - external_backends: + $ref: '#/components/schemas/JobInput' type: array - items: - $ref: '#/components/schemas/InUseExternalBackend' - description: | - InUse represents the resources that are using provided credential. - InUseServiceCatalogSource: - title: InUseServiceCatalogSource - required: - - canonical - - name - type: object - properties: name: - $ref: '#/components/schemas/Name' - canonical: - $ref: '#/components/schemas/Canonical' - description: Represents a Service catalog source that's using credential - InUseConfigRepository: - title: InUseConfigRepository + type: string + next_build: + $ref: '#/components/schemas/Build' + outputs: + items: + $ref: '#/components/schemas/JobOutput' + type: array + paused: + type: boolean + pipeline_id: + format: uint64 + type: integer + pipeline_name: + type: string + team_name: + type: string + transition_build: + $ref: '#/components/schemas/Build' required: - - canonical - - name + - id + - name + title: Job type: object + JobInput: + description: The entity which represents a job input in the application. + example: + name: name + passed: + - passed + - passed + resource: resource + trigger: true + version: + every: true + latest: true + pinned: + key: pinned properties: name: - $ref: '#/components/schemas/Name' - canonical: - $ref: '#/components/schemas/Canonical' - description: Represents a Config repository that's using credential - InUseProject: - title: InUseProject + type: string + passed: + items: + type: string + type: array + resource: + type: string + trigger: + type: boolean + version: + $ref: '#/components/schemas/VersionConfig' required: - - canonical - - name + - name + - resource + - trigger + title: JobInput type: object + JobOutput: + description: The entity which represents a job output in the application. + example: + name: name + resource: resource properties: name: - $ref: '#/components/schemas/Name' - canonical: - $ref: '#/components/schemas/Canonical' - description: Represents a project that's using credential - InUseEnvironment: - title: InUseEnvironment + type: string + resource: + type: string required: - - canonical + - name + - resource + title: JobOutput type: object + KPI: + description: A KPI + example: + canonical: canonical + config: '{}' + created_at: 0 + data_set: + - '{}' + - '{}' + description: description + environment_canonical: environment_canonical + error: error + favorite: true + id: 1 + job_name: job_name + name: name + pipeline_name: pipeline_name + project_canonical: project_canonical + type: build_avg_time + updated_at: 0 + widget: bars properties: canonical: - $ref: '#/components/schemas/Canonical' - description: Represents an environment that's using credential - InUseExternalBackend: - title: InUseExternalBackend + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + config: + description: | + The config represent some extra parameters which are required for the configuration of certain KPIs. Please refer to the documentation for more details. + properties: {} + type: object + created_at: + format: uint64 + minimum: 0 + type: integer + data_set: + description: The data is represented in CSV format. Depending on the widget configured for the KPI, the format may vary. For more information please refer to our product documentation. + items: + properties: {} + type: object + type: array + description: + type: string + environment_canonical: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:[\da-zA-Z\-._]+[\da-zA-Z]|[\da-zA-Z])$ + type: string + error: + description: If an error occurred in the last import, that field will be filled with the message of the error + type: string + favorite: + type: boolean + id: + format: uint32 + minimum: 1 + type: integer + job_name: + type: string + name: + minLength: 3 + type: string + pipeline_name: + type: string + project_canonical: + maxLength: 100 + minLength: 1 + pattern: (^[a-z0-9]+(([a-z0-9\-_]+)?[a-z0-9]+)?$) + type: string + type: + enum: + - build_avg_time + - build_frequency + - build_history + - code_coverage + - time_to_release + type: string + updated_at: + format: uint64 + minimum: 0 + type: integer + widget: + enum: + - bars + - stackbars + - doughnut + - history + - line + - pie + - summary + type: string required: - - engine - - project - - purpose + - canonical + - config + - created_at + - description + - error + - id + - name + - type + - updated_at + - widget + title: KPI type: object + Licence: + description: Object containing licence parameters + example: + company_name: company_name + created_at: 0 + current_members: 0 + email_address: email_address + expires_at: 0 + key: key + members_count: 0 + on_prem: true + updated_at: 0 + version: version properties: - purpose: + company_name: + type: string + created_at: + format: uint64 + minimum: 0 + type: integer + current_members: + format: uint64 + minimum: 0 + type: integer + email_address: + type: string + expires_at: + format: uint64 + minimum: 0 + type: integer + key: + description: Licence's key in the JWT format type: string - engine: + members_count: + format: uint64 + minimum: 0 + type: integer + on_prem: + type: boolean + updated_at: + format: uint64 + minimum: 0 + type: integer + version: type: string - project: - $ref: '#/components/schemas/InUseProject' - environment: - $ref: '#/components/schemas/InUseEnvironment' - description: Represents a external backend that's using credential - ConfigRepository: - title: ConfigRepository required: - - canonical - - default - - id - - name - - url + - company_name + - created_at + - current_members + - email_address + - expires_at + - key + - members_count + - on_prem + - updated_at + - version + title: Licence type: object + LogSource: + description: The data associated to a log's source. Each log source is the context of a list of entries which are registered through the time. + example: + id: id properties: id: - $ref: '#/components/schemas/ID' - name: - $ref: '#/components/schemas/Name' - canonical: - $ref: '#/components/schemas/Canonical' - url: - $ref: '#/components/schemas/GitURL' - branch: - $ref: '#/components/schemas/Branch' - credential_canonical: - $ref: '#/components/schemas/Canonical' - default: - $ref: '#/components/schemas/Default' - created_at: - $ref: '#/components/schemas/CreatedAt' - updated_at: - $ref: '#/components/schemas/UpdatedAt' - NewConfigRepository: - title: NewConfigRepository + minLength: 1 + type: string required: - - branch - - credential_canonical - - default - - name - - url + - id + title: A log source type: object + LogSourceEntry: + description: A log's entry which pertains to a specific log's source. + example: + host: host + message: message + timestamp: timestamp properties: - name: - $ref: '#/components/schemas/Name' - canonical: - $ref: '#/components/schemas/Canonical' - url: - $ref: '#/components/schemas/GitURL' - branch: - $ref: '#/components/schemas/Branch' - default: - $ref: '#/components/schemas/Default' - credential_canonical: - $ref: '#/components/schemas/Canonical' - UpdateConfigRepository: - title: UpdateConfigRepository + host: + description: The host registered with the log's entry. + minLength: 1 + type: string + message: + description: The original (i.e. raw) log's entry. + minLength: 1 + type: string + timestamp: + description: The timestamp extracted from the original log entry in order to be homogeneous to all the different supported underlying log systems. + format: uint64 + type: string required: - - branch - - credential_canonical - - default - - name - - url - type: object - properties: - name: - $ref: '#/components/schemas/Name' - url: - $ref: '#/components/schemas/GitURL' - branch: - $ref: '#/components/schemas/Branch' - default: - $ref: '#/components/schemas/Default' - credential_canonical: - $ref: '#/components/schemas/Canonical' - AWSInfrastructureResourcesAggregation: - title: AWS Infrastructure Resources Aggregation + - host + - message + - timestamp + title: Log entry type: object + MemberAssignation: + description: Member is a user who is associated to an entity of the system. The user is newly assigned or reassigned for updating is data. properties: - instances: - $ref: '#/components/schemas/InfrastructureResourcesAggregationItem' - vpcs: - $ref: '#/components/schemas/InfrastructureResourcesAggregationItem' - images: - $ref: '#/components/schemas/InfrastructureResourcesAggregationItem' - security_groups: - $ref: '#/components/schemas/InfrastructureResourcesAggregationItem' - subnets: - $ref: '#/components/schemas/InfrastructureResourcesAggregationItem' - volumes: - $ref: '#/components/schemas/InfrastructureResourcesAggregationItem' - snapshots: - $ref: '#/components/schemas/InfrastructureResourcesAggregationItem' - cache_clusters: - $ref: '#/components/schemas/InfrastructureResourcesAggregationItem' - load_balancers_v1: - $ref: '#/components/schemas/InfrastructureResourcesAggregationItem' - load_balancers_v2: - $ref: '#/components/schemas/InfrastructureResourcesAggregationItem' - db_instances: - $ref: '#/components/schemas/InfrastructureResourcesAggregationItem' - buckets: - $ref: '#/components/schemas/InfrastructureResourcesAggregationItem' - InfrastructureResourcesAggregationItem: - title: Infrastructure Resource Aggregation Item + role_canonical: + description: The role of the member. + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string required: - - total_amount + - role_canonical + title: Member assignation type: object + MemberOrg: + description: Member is a user who is associated to an organization. + example: + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + invitation_email: invitation_email + invitation_resent_at: 0 + invitation_state: pending + invited_at: 0 + invited_by: null + last_login_at: 0 + locale: en + mfa_enabled: true + picture_url: https://openapi-generator.tech + role: + canonical: canonical + created_at: 0 + default: true + description: description + id: 1 + name: name + rules: + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + updated_at: 0 + updated_at: 0 + username: username properties: - total_amount: + created_at: + description: When the user became a member. + format: uint64 + minimum: 0 type: integer - description: The number of items of the specific type of resource. + email: + description: user email + format: email + type: string + family_name: + minLength: 2 + type: string + given_name: + minLength: 2 + type: string + id: format: uint32 - description: Contains aggregated data of a single type of an infrastructure - resource. - AWSInfrastructureResourceInstance: - title: AWS Infrastructure Instance Resource - type: object - description: "This object contains the items described in the instance data\ - \ type described in https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_Instance.html\ - \ Tags property is set, for guaranteeing that the respond will always have\ - \ the property of the type array, not allowing null in case that the resource\ - \ doesn't have any, hence an empty array is used in such case. This object\ - \ will contain a property named 'Tags' which is of the type defined by the\ - \ schema definition '#/definitions/AWSTags'" - AWSInfrastructureResourceVPC: - title: AWS Infrastructure VPC Resource - type: object - description: "This object contains the items described in the VPC data type\ - \ described in https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_Vpc.html\ - \ Tags property is set, for guaranteeing that the respond will always have\ - \ the property of the type array, not allowing null in case that the resource\ - \ doesn't have any, hence an empty array is used in such case. This object\ - \ will contain a property named 'Tags' which is of the type defined by the\ - \ schema definition '#/definitions/AWSTags'" - AWSInfrastructureResourceSubnet: - title: AWS Infrastructure subnet Resource - type: object - description: "This object contains the items described in the subnet data type\ - \ described in https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_Subnet.html\ - \ Tags property is set, for guaranteeing that the respond will always have\ - \ the property of the type array, not allowing null in case that the resource\ - \ doesn't have any, hence an empty array is used in such case. This object\ - \ will contain a property named 'Tags' which is of the type defined by the\ - \ schema definition '#/definitions/AWSTags'" - AWSInfrastructureResourceSecurityGroup: - title: AWS Infrastructure security group Resource - type: object - description: "This object contains the items described in the security group\ - \ data type described in https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_SecurityGroup.html\ - \ Tags property is set, for guaranteeing that the respond will always have\ - \ the property of the type array, not allowing null in case that the resource\ - \ doesn't have any, hence an empty array is used in such case. This object\ - \ will contain a property named 'Tags' which is of the type defined by the\ - \ schema definition '#/definitions/AWSTags'" - AWSInfrastructureResourceImage: - title: AWS Infrastructure image Resource - type: object - description: "This object contains the items described in the image data type\ - \ described in https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_Image.html\ - \ Tags property is set, for guaranteeing that the respond will always have\ - \ the property of the type array, not allowing null in case that the resource\ - \ doesn't have any, hence an empty array is used in such case. This object\ - \ will contain a property named 'Tags' which is of the type defined by the\ - \ schema definition '#/definitions/AWSTags'" - AWSInfrastructureResourceVolume: - title: AWS Infrastructure volume Resource - type: object - description: "This object contains the items described in the volume data type\ - \ described in https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_Volume.html\ - \ Tags property is set, for guaranteeing that the respond will always have\ - \ the property of the type array, not allowing null in case that the resource\ - \ doesn't have any, hence an empty array is used in such case. This object\ - \ will contain a property named 'Tags' which is of the type defined by the\ - \ schema definition '#/definitions/AWSTags'" - AWSInfrastructureResourceSnapshot: - title: AWS Infrastructure snapshot Resource - type: object - description: "This object contains the items described in the snapshot data\ - \ type described in https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_Snapshot.html\ - \ Tags property is set, for guaranteeing that the respond will always have\ - \ the property of the type array, not allowing null in case that the resource\ - \ doesn't have any, hence an empty array is used in such case. This object\ - \ will contain a property named 'Tags' which is of the type defined by the\ - \ schema definition '#/definitions/AWSTags'" - AWSInfrastructureResourceElasticacheCluster: - title: AWS Infrastructure Elasticache cluster Resource - type: object - description: This object contains the items described in the ElastiCache cluster - data type described in https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_CacheCluster.html - but it also contains its associated tags which are documented in the properties - of this object definition. This object will contain a property named 'Tags' - which is of the type defined by the schema definition '#/definitions/AWSTags' - AWSInfrastructureResourceLoadBalancerV1: - title: AWS Infrastructure load balancer (ELB) Resource - type: object - description: This object contains the items described in the load balancer (ELB) - data type described in https://docs.aws.amazon.com/elasticloadbalancing/2012-06-01/APIReference/API_LoadBalancerDescription.html - but it also contains its associated tags which are documented in the properties - of this object definition. This object will contain a property named 'Tags' - which is of the type defined by the schema definition '#/definitions/AWSTags' - AWSInfrastructureResourceLoadBalancerV2: - title: AWS Infrastructure load balancer (ELB v2 or a.k.a ALB) Resource - type: object - description: This object contains the items described in the load balancer (ELB - v2 or a.k.a ALB) data type described in https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_LoadBalancer.html - but it also contains its associated tags which are documented in the properties - of this object definition. This object will contain a property named 'Tags' - which is of the type defined by the schema definition '#/definitions/AWSTags' - AWSInfrastructureResourceDBInstance: - title: AWS Infrastructure RDS DB instance Resource - type: object - description: This object contains the items described in the RDS DB instance - data type described in https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DBInstance.html - but it also contains its associated tags which are documented in the properties - of this object definition. This object will contain a property named 'Tags' - which is of the type defined by the schema definition '#/definitions/AWSTags' - AWSInfrastructureResourceBucket: - title: AWS Infrastructure S3 bucket Resource - type: object - description: This object contains the items described in the S3 bucket data - type described in but it also contains its associated tags which are documented - in the properties of this object definition. This object will contain a property - named 'Tags' which is of the type defined by the schema definition '#/definitions/AWSTags' - CostGroupDefinitions: - title: CostGroupDefinitions - required: - - group - - key - type: object - properties: - group: - maxLength: 100 - minLength: 1 - pattern: "^[a-zA-Z]+$" + minimum: 1 + type: integer + invitation_email: + description: The email address to which the invitation was sent. It's used to resend the invitation. + format: email type: string - key: + invitation_resent_at: + format: uint64 + minimum: 0 + type: integer + invitation_state: + enum: + - pending + - accepted + - declined + type: string + invited_at: + description: When the user had been invited to join as a member. When not present, the user is already a member, so she/he has verified her/his invitation. + format: uint64 + minimum: 0 + type: integer + last_login_at: + description: When the user logged in last time. + format: uint64 + minimum: 0 + type: integer + locale: + description: User's preferred language + enum: + - en + - fr + - es + type: string + mfa_enabled: + type: boolean + picture_url: + format: uri + type: string + role: + $ref: '#/components/schemas/Role' + updated_at: + description: When the user had the role modified. + format: uint64 + minimum: 0 + type: integer + username: maxLength: 100 - minLength: 1 - pattern: "^[a-zA-Z]+$" + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ type: string - description: "This object contains the items describe in https://docs.aws.amazon.com/sdk-for-go/api/service/costexplorer/#GroupDefinition\ - \ It also grouping the costs based on different elements: az, services, tags,\ - \ etc" - CostResultByTime: - title: CostResultByTime required: - - estimated - - groups - - period - - total - - unit + - created_at + - id + - role + title: Member of an organization type: object + MemberTeam: + description: Member is a user who is associated to a team. + example: + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + invited_by: + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + invitation_email: invitation_email + invitation_resent_at: 0 + invitation_state: pending + invited_at: 0 + invited_by: null + last_login_at: 0 + locale: en + mfa_enabled: true + picture_url: https://openapi-generator.tech + role: + canonical: canonical + created_at: 0 + default: true + description: description + id: 1 + name: name + rules: + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + updated_at: 0 + updated_at: 0 + username: username + last_login_at: 0 + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username properties: - estimated: + created_at: + description: When the user became a member. + format: uint64 + minimum: 0 + type: integer + email: + description: user email + format: email + type: string + family_name: + minLength: 2 + type: string + given_name: + minLength: 2 + type: string + id: + format: uint32 + minimum: 1 + type: integer + last_login_at: + description: When the user logged in last time. + format: uint64 + minimum: 0 + type: integer + mfa_enabled: type: boolean - groups: - type: array - items: - $ref: '#/components/schemas/CostGroup' - period: - $ref: '#/components/schemas/CostTimePeriod' - total: + picture_url: + format: uri + type: string + updated_at: + description: When the user had the role modified. + format: uint64 + minimum: 0 + type: integer + username: maxLength: 100 minLength: 3 - pattern: "^[0-9]+.[0-9]+$" - type: string - unit: - maxLength: 3 - minLength: 2 - pattern: "^[a-zA-Z]+$" + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ type: string - description: "This object contains the items described in https://docs.aws.amazon.com/sdk-for-go/api/service/costexplorer/#ResultByTime\ - \ It is basically containing information about the cost per group(s) and per\ - \ granularity (daily/monthly) over the period of time selected. The total\ - \ and unit fields have bee modified to fit our requirements, while the groups\ - \ hold the information about each iteration over the time range." - CostTimePeriod: - title: CostTimePeriod required: - - begin - - end + - created_at + - email + - family_name + - given_name + - id + - mfa_enabled + - username + title: Member of a team type: object + MetadataField: + description: Represent the metadata of a build input + example: + name: name + value: value properties: - begin: - maxLength: 10 - minLength: 10 - pattern: "^[0-9]{4}-[0-9]{2}-[0-9]{2}$" + name: type: string - end: - maxLength: 10 - minLength: 10 - pattern: "^[0-9]{4}-[0-9]{2}-[0-9]{2}$" + value: type: string - description: "This object contains the items described in https://docs.aws.amazon.com/sdk-for-go/api/service/costexplorer/#DateInterval\ - \ It defines the beginning and the end of the time frame for which, the API\ - \ should gather costs." - CostGroup: - title: CostGroup required: - - amount - - keys - - unit + - name + - value + title: MetadataField type: object + NewAPIKey: + description: The entity which represents the information of a new API key. properties: - keys: - type: array - items: - type: string - amount: + canonical: maxLength: 100 minLength: 3 - pattern: "^[0-9]+.[0-9]+$" + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ type: string - unit: - maxLength: 3 + description: + type: string + name: minLength: 3 - pattern: "^[A-Z]+$" type: string - description: This object contains the items described in https://docs.aws.amazon.com/sdk-for-go/api/service/costexplorer/#Group - The groups hold the information about the price per key(s) for each iteration - over the time range requested. - Environment: - title: Environment + owner: + description: | + User canonical that owns this API key. If omitted then the person creating this + credential will be assigned as owner. When a user is the owner of an API key he has + all the permissions on it. + type: string + rules: + items: + $ref: '#/components/schemas/NewRule' + type: array required: - - canonical - - created_at - - id - - updated_at + - name + - rules + title: Create API key type: object + NewAWSMarketplaceUserAccount: + description: Create a new AWS Marketplace user account. properties: - id: - $ref: '#/components/schemas/ID' - canonical: - maxLength: 100 + aws_marketplace_token: + description: The AWS marketplace token minLength: 1 - pattern: "^[\\da-zA-Z]+(?:[\\da-zA-Z\\-._]+[\\da-zA-Z]|[\\da-zA-Z])$" type: string - created_at: - $ref: '#/components/schemas/CreatedAt' - updated_at: - $ref: '#/components/schemas/UpdatedAt' - cloud_provider: - $ref: '#/components/schemas/CloudProvider' - use_case: - $ref: '#/components/schemas/Canonical' - description: Represent an environment with may be related to a Project and Pipeline - NewEnvironment: - title: NewEnvironment - required: - - canonical - type: object - properties: - canonical: - $ref: '#/components/schemas/EnvironmentCanonical' - cloud_provider_canonical: - $ref: '#/components/schemas/Canonical' - description: Represent an entity necessary for environment creation - LogSource: - title: A log source + country_code: + description: Code of a country the user is from + pattern: ^[A-Z]{2}$ + type: string + email: + format: email + type: string + family_name: + minLength: 2 + type: string + given_name: + minLength: 2 + type: string + locale: + description: User's preferred language + enum: + - en + - fr + - es + type: string + password: + format: password + minLength: 8 + type: string + username: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string required: - - id + - aws_marketplace_token + - email + - family_name + - given_name + - password + - username + title: Sign up from AWS Marketplace type: object + NewAppearance: + description: An Appearance holds the values of the branding configuration, which are rendered across an organization properties: - id: + color: + $ref: '#/components/schemas/Appearance_color' + display_name: + maxLength: 50 minLength: 1 type: string - description: The data associated to a log's source. Each log source is the context - of a list of entries which are registered through the time. - LogSourceEntry: - title: Log entry - required: - - host - - message - - timestamp - type: object - properties: - timestamp: + favicon: + format: uri type: string - description: The timestamp extracted from the original log entry in order - to be homogeneous to all the different supported underlying log systems. - format: uint64 - host: + footer: + maxLength: 1000 + minLength: 0 + type: string + logo: + format: uri + type: string + name: + maxLength: 50 minLength: 1 type: string - description: The host registered with the log's entry. - message: + tab_title: + maxLength: 50 minLength: 1 type: string - description: The original (i.e. raw) log's entry. - description: A log's entry which pertains to a specific log's source. - ExternalBackend: - title: External backend required: - - default - - purpose + - color + - display_name + - favicon + - footer + - logo + - name + - tab_title + title: Appearance type: object + NewCloudCostManagementAccount: + description: | + Create a new Cloud Cost Management account to connect CP. + If a canonical is missing, the one from credential will be applied properties: - id: - $ref: '#/components/schemas/ID' - purpose: + canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ type: string - default: - $ref: '#/components/schemas/Default' - jwt: + external_backend: + $ref: '#/components/schemas/NewExternalBackend' + name: + description: A user-defined name for the account type: string - description: JWT is a credential identifying this EB for a public interaction - right now it's only filled when the Purpose == RemoteTFState as we'll - use it for the Inventory. - project_canonical: - $ref: '#/components/schemas/ProjectCanonical' - environment_canonical: - $ref: '#/components/schemas/EnvironmentCanonical' - credential_canonical: - $ref: '#/components/schemas/Canonical' -# aws_storage: -# $ref: '#/components/schemas/AWSStorage' -# gcp_storage: -# $ref: '#/components/schemas/GCPStorage' -# swift_storage: -# $ref: '#/components/schemas/SwiftStorage' - created_at: - $ref: '#/components/schemas/CreatedAt' - updated_at: - $ref: '#/components/schemas/UpdatedAt' - description: "An external backend contains the configuration needed in order\ - \ to be plugged into the Cycloid system. A backend is a general purpose concept,\ - \ but Cycloid specifies which ones are supported and the list of those which\ - \ are supported for every concrete feature." - NewExternalBackend: - title: New External backend required: - - purpose - - engine + - external_backend + title: Create CloudCostManagementAccount type: object + NewCloudCostManagementAccountChild: + description: "Create a new Cloud Cost Management Child account. This count has no \nExternalBackend since it is not ingesting data.\nIf a canonical is missing, the one from credential will be applied\n" properties: - purpose: - type: string - enum: - - remote_tfstate - engine: + canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ type: string - enum: - - aws_storage - - gcp_storage - - swift_storage - default: - $ref: '#/components/schemas/Default' credential_canonical: - $ref: '#/components/schemas/Canonical' - project_canonical: - $ref: '#/components/schemas/ProjectCanonical' - environment_canonical: - $ref: '#/components/schemas/EnvironmentCanonical' - aws_storage: - $ref: '#/components/schemas/AWSStorage' - gcp_storage: - $ref: '#/components/schemas/GCPStorage' - swift_storage: - $ref: '#/components/schemas/SwiftStorage' - description: "An external backend contains the configuration needed in order\ - \ to be plugged into the Cycloid system. A backend is a general purpose concept,\ - \ but Cycloid specifies which ones are supported and the list of those which\ - \ are supported for every concrete feature." - UpdateExternalBackend: - title: Update External backend - required: - - purpose - type: object - properties: - id: - $ref: '#/components/schemas/ID' - purpose: + description: Canonical of the credentials used type: string - enum: - - remote_tfstate - default: - $ref: '#/components/schemas/Default' - credential_canonical: - $ref: '#/components/schemas/Canonical' - project_canonical: - $ref: '#/components/schemas/ProjectCanonical' - environment_canonical: - $ref: '#/components/schemas/EnvironmentCanonical' - aws_storage: - $ref: '#/components/schemas/AWSStorage' - gcp_storage: - $ref: '#/components/schemas/GCPStorage' - swift_storage: - $ref: '#/components/schemas/SwiftStorage' - description: "An external backend contains the configuration needed in order\ - \ to be plugged into the Cycloid system. A backend is a general purpose concept,\ - \ but Cycloid specifies which ones are supported and the list of those which\ - \ are supported for every concrete feature." - AWSStorage: - title: AWSStorage - description: | - Representation of AWS storage for external backend. - Must be matched with a credential of the "aws" type. + name: + description: A user-defined name for the account + type: string + parent_account_id: + description: The ID of the parent account on the CP + type: string + required: + - credential_canonical + - parent_account_id + title: Create CloudCostManagementAccountChild type: object + NewConfigRepository: properties: - region: - type: string - description: | - The AWS region where the resource exists - bucket: + branch: type: string - description: | - The AWS bucket containing objects - key: + canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ type: string - description: | - The S3 Key uniquely identifies an object in a bucket - endpoint: + credential_canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ type: string - description: | - A custom endpoint for the S3 API (default: s3.amazonaws.com) - s3_force_path_style: - type: boolean - description: | - Always use path-style S3 URLs (https:/// instead of https://.) - skip_verify_ssl: + default: type: boolean - description: | - Set this to `true` to not verify SSL certificates - GCPStorage: - title: GCPStorage - description: | - Representation of GCP remote tf state for external backend. - Must be matched with a credential of the "gcp" type. - type: object - properties: - bucket: + name: type: string - description: | - The GCP bucket containing objects - object: + url: + pattern: ^((/|~)[^/]*)+.(\.git)|(([\w\]+@[\w\.]+))(:(//)?)([\w\.@\:/\-~]+)(/)? type: string - description: | - The GCP object uniquely identifying an object in a bucket, - will be required if the EB is not default - SwiftStorage: - title: SwiftStorage - description: | - Representation of Swift remote tf state for external backend. - Must be matched with a credential of the "swift" type. + required: + - branch + - credential_canonical + - default + - name + - url + title: NewConfigRepository type: object + NewCredential: + description: Represents the Credential properties: - container: + body: + $ref: '#/components/schemas/CredentialRaw' + canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ type: string - description: | - The Swift container containing objects - object: + description: + type: string + name: type: string + owner: description: | - The swift object uniquely identifying an object in a container, - will be required if the EB is not default - skip_verify_ssl: - type: boolean - description: | - Set this to `true` to not verify SSL certificates - region: + User canonical that owns this credential. If omitted then the person creating this + credential will be assigned as owner. When a user is the owner of a credential he has + all the permissions on it. type: string - description: | - The Swift region where the resource exists - Event: - title: An event - required: - - id - - message - - severity - - tags - - timestamp - - title - - type - type: object - properties: - id: - type: integer - description: The unique ID of the event from the database. - format: uint32 - timestamp: - type: integer - description: The timestamp when the event was created in milliseconds. - format: uint64 - type: + path: + pattern: '[a-zA-z0-9_\-./]' type: string - description: The type of the event + type: enum: - - Cycloid - - AWS - - Monitoring - - Custom - title: - minLength: 1 + - ssh + - aws + - custom + - azure + - azure_storage + - gcp + - basic_auth + - elasticsearch + - swift + - vmware type: string - description: The title of the event. - message: + required: + - name + - path + - raw + - type + title: Credential + type: object + NewEnvironment: + description: Represent an entity necessary for environment creation + properties: + canonical: + maxLength: 100 minLength: 1 + pattern: ^[\da-zA-Z]+(?:[\da-zA-Z\-._]+[\da-zA-Z]|[\da-zA-Z])$ type: string - description: The message associated to the event. - icon: + cloud_provider_canonical: + maxLength: 100 minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ type: string - description: "[A Font Awesome class name](https://fontawesome.com/icons)" - severity: + color: + maxLength: 64 type: string - description: The severity associated to the event. - enum: - - info - - warn - - err - - crit - tags: - type: array - description: The list of tags associated to the event. + icon: + maxLength: 64 + type: string + inputs: + description: | + The variables set within a form with the corresponding environment + canonical and use case items: - $ref: '#/components/schemas/Tag' - color: - maxLength: 20 + $ref: '#/components/schemas/FormInput' + type: array + use_case: + maxLength: 100 minLength: 3 - pattern: "[a-z]+" + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ type: string - description: "The HTML color associated to the event. The valid colors are\ - \ the ones listed in the CSS 2 specification: https://www.w3.org/TR/CSS2/syndata.html#value-def-color.\ - \ Only the keyword are accepted, the hexadecimal values are not valid." - description: A event which has registered an activity in the Cycloid platform. - NewEvent: - title: A new event required: - - message - - severity - - tags - - title - - type + - canonical + title: NewEnvironment type: object + NewEvent: + description: A new event to register in the Cycloid platform. properties: - type: + color: + description: 'The HTML color associated to the event. The valid colors are the ones listed in the CSS 2 specification: https://www.w3.org/TR/CSS2/syndata.html#value-def-color. Only the keyword are accepted, the hexadecimal values are not valid.' + maxLength: 20 + minLength: 3 + pattern: '[a-z]+' type: string - description: The type of the event - enum: - - Cycloid - - AWS - - Monitoring - - Custom - title: - minLength: 1 + icon: + description: '[A Font Awesome class name](https://fontawesome.com/icons)' + minLength: 3 type: string - description: The title of the event. message: - minLength: 1 - type: string description: The message associated to the event. - icon: - minLength: 3 + minLength: 1 type: string - description: "[A Font Awesome class name](https://fontawesome.com/icons)" severity: - type: string description: tThe severity associated to the event. enum: - - info - - warn - - err - - crit + - info + - warn + - err + - crit + type: string tags: - type: array description: The list of tags associated to the event. items: $ref: '#/components/schemas/Tag' - color: - maxLength: 20 - minLength: 3 - pattern: "[a-z]+" - type: string - description: "The HTML color associated to the event. The valid colors are\ - \ the ones listed in the CSS 2 specification: https://www.w3.org/TR/CSS2/syndata.html#value-def-color.\ - \ Only the keyword are accepted, the hexadecimal values are not valid." - description: A new event to register in the Cycloid platform. - Tag: - title: Key and value pair - required: - - key - - value - type: object - properties: - key: - maxLength: 254 + type: array + title: + description: The title of the event. minLength: 1 type: string - value: - maxLength: 254 - pattern: "^(?:[\\w\\-+=.:/@ ]*)$" + type: + description: The type of the event + enum: + - Cycloid + - AWS + - Monitoring + - Custom type: string - description: "Key and value pair defined with the widely adopted name, tag." - TerraformProvider: - title: Provider required: - - abbreviation - - canonical - - cloud - - name - - schema + - message + - severity + - tags + - title + - type + title: A new event type: object + NewExternalBackend: + description: An external backend contains the configuration needed in order to be plugged into the Cycloid system. A backend is a general purpose concept, but Cycloid specifies which ones are supported and the list of those which are supported for every concrete feature. properties: - name: - $ref: '#/components/schemas/Name' - canonical: + aws_storage: + $ref: '#/components/schemas/AWSStorage' + configuration: + $ref: '#/components/schemas/ExternalBackendConfiguration' + credential_canonical: + description: | + The type of the credential must be one of: ["aws", "azure_storage", "elasticsearch", "gcp", "swift", "vmware"] + maxLength: 100 minLength: 3 - pattern: "^[a-z0-9]+[a-z0-9\\-_]+[a-z0-9]+$" - type: string - abbreviation: + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ type: string - cloud: + default: + description: Will mark this EB as default for the specific purpose type: boolean - schema: - type: object - properties: {} - description: Provider of infrastructure - TerraformProviderSimple: - title: TerraformProviderSimple - required: - - abbreviation - - canonical - - cloud - - name - type: object - properties: - name: - $ref: '#/components/schemas/Name' - canonical: - minLength: 3 - pattern: "^[a-z0-9]+[a-z0-9\\-_]+[a-z0-9]+$" + engine: + enum: + - aws_storage + - gcp_storage + - swift_storage type: string - abbreviation: + environment_canonical: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ type: string - cloud: - type: boolean - description: Provider of infrastructure without the config - TerraformProviderResource: - title: Resource + gcp_storage: + $ref: '#/components/schemas/GCPStorage' + project_canonical: + maxLength: 100 + minLength: 1 + pattern: (^[a-z0-9]+(([a-z0-9\-_]+)?[a-z0-9]+)?$) + type: string + purpose: + enum: + - events + - logs + - remote_tfstate + - cost_explorer + type: string + swift_storage: + $ref: '#/components/schemas/SwiftStorage' required: - - attributes - - canonical - - category - - description - - is_edge - - is_node - - keywords - - schema - - short_description + - configuration + - purpose + title: New External backend type: object + NewInfraImport: + description: Entry that represents all the data needed to import a stack properties: - canonical: + configuration: + $ref: '#/components/schemas/CloudProviderConfiguration' + credential_canonical: + description: Credential that will be used to import from the provider + maxLength: 100 minLength: 3 - pattern: "^[a-z0-9]+[a-z0-9\\-_]+[a-z0-9]+$" + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ type: string - schema: + environment: + $ref: '#/components/schemas/NewEnvironment' + external_backend: + $ref: '#/components/schemas/NewInfraImportExternalBackend' + include: + description: 'List of resources to import, these names are the ones on TF (ex: aws_instance). If not set then it means that all the resources will be imported' + items: + type: string + type: array + module_variables: + additionalProperties: + items: + type: string + type: array + description: It's a KV where the key is the resource name and the value is the list (array) of attributes to include as part of the module type: object - properties: {} - is_node: - type: boolean - is_edge: - type: boolean - image: - type: string - format: uri - category: - type: string - short_description: - type: string - description: - $ref: '#/components/schemas/Description' - keywords: + project: + $ref: '#/components/schemas/NewInfraImportProject' + stack: + $ref: '#/components/schemas/NewServiceCatalog' + tags: + description: List of tags to filter with format NAME:VALUE + items: + type: string type: array + targets: + description: List of resources to import via ID, those IDs are the ones documented on Terraform that are needed to Import. The format is 'aws_instance.ID' items: type: string - attributes: - $ref: '#/components/schemas/TerraformProviderResourceAttributes' - description: A Resource of a Provider - TerraformProviderResourceAttributes: - title: ResourceAttributes + type: array + required: + - configuration + - credential_canonical + - stack + title: New Infra Import + type: object + NewInfraImportExternalBackend: + description: An external backend contains the configuration needed in order to be plugged into the Cycloid system. A backend is a general purpose concept, but Cycloid specifies which ones are supported and the list of those which are supported for every concrete feature. + properties: + aws_storage: + $ref: '#/components/schemas/AWSStorage' + configuration: + $ref: '#/components/schemas/ExternalBackendConfiguration' + credential_canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + engine: + enum: + - aws_storage + - gcp_storage + - swift_storage + type: string + gcp_storage: + $ref: '#/components/schemas/GCPStorage' + swift_storage: + $ref: '#/components/schemas/SwiftStorage' + required: + - configuration + title: New External backend type: object + NewInfraImportProject: + description: The entity which represents the information of a new project. properties: - important: - type: array - items: - type: string - status: + canonical: + maxLength: 100 + minLength: 1 + pattern: (^[a-z0-9]+(([a-z0-9\-_]+)?[a-z0-9]+)?$) + type: string + config_repository_canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + description: + description: | + A description regarding the project to help identify/remember details, + implementation, purpose, etc. + type: string + name: + minLength: 1 type: string - normalized_status: - type: object - properties: {} - description: "Is a KV where the K is the resource possible value and the\ - \ Value is the normalized value of it. The current possible values are\ - \ \"unknown\", \"pending\", \"running\", \"stopping\"" - description: Holds specific logic of some attributes - TerraformProviderResourceSimple: - title: ResourceSimple required: - - attributes - - canonical - - category - - description - - is_edge - - is_node - - keywords - - short_description + - config_repository_canonical + - name + title: Create Project for the Infra Import type: object + NewInfraPolicy: + description: Create a new policy to control operations across infrastructure. properties: + body: + description: The body field is the code in plain text that defines the rules for the policy. + type: string canonical: + maxLength: 100 minLength: 3 - pattern: "^[a-z0-9]+[a-z0-9\\-_]+[a-z0-9]+$" + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ type: string - is_node: - type: boolean - is_edge: + description: + type: string + enabled: type: boolean - image: + name: + minLength: 3 type: string - format: uri - short_description: + owner: + description: | + User canonical that owns this InfraPolicy. When a user is the + owner of an InfraPolicy it has all the permissions on it. + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ type: string - description: - $ref: '#/components/schemas/Description' - category: + severity: + enum: + - critical + - warning + - advisory type: string - keywords: - type: array - items: - type: string - attributes: - $ref: '#/components/schemas/TerraformProviderResourceAttributes' - description: A Resource of a Provider without the config - TerraformJSONConfig: - title: TerraformJSONConfig required: - - config + - body + - name + - owner + - severity + title: Create InfraPolicy type: object + NewInventoryResource: + description: The Resource of the Inventory representing an element of your infrastructure properties: - config: - type: object + cpu: + description: The amount of cpu cores that it has in units + format: uint64 + minimum: 0 + type: integer + custom_attributes: + description: List of attributes (key value object) of the Resource, can be anything + example: + another: one + custom: attribute properties: {} - description: The JSON config for Terraform - TerraformHCLConfig: - title: TerraformHCLConfig - required: - - config - type: object - properties: - config: + type: object + label: + description: A way to distinguish and categorize resources + example: my-label type: string - description: The HCL config for Terraform - TerraformValidationResult: - title: TerraformValidationResult - required: - - errors - type: object - properties: - errors: - type: array - items: - type: string - description: "The result of the validation, if errors is empty means that is\ - \ correct" - TerraformJSONDiagram: - title: TerraformDiagram - type: object - description: The JSON Diagram structure - TerraformImage: - title: TerraformImage - required: - - image - type: object - properties: - image: - pattern: "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$" + memory: + description: The amount of memory that it has in MB + format: uint64 + minimum: 0 + type: integer + name: + description: The name of the resource type: string - format: byte - description: The Image from the TF structure - UserEmail: - title: User email address - required: - - email - type: object - properties: - email: + provider: + description: The provider of the created Resource + type: string + storage: + description: The amount of storage that it has in MB + format: uint64 + minimum: 0 + type: integer + type: + description: The type of the resource type: string - format: email - description: The user's email address - UserGuide: - title: User guide JSON schema - type: object - description: The user's guide progress JSON schema - Infrastructure: - title: Infrastructure required: - - config - - graph + - label + - name + - provider + - type + title: New Inventory Resource type: object + NewKPI: + description: A KPI's configuration that needs to be saved properties: - graph: - $ref: '#/components/schemas/InfrastructureGraph' + canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string config: - $ref: '#/components/schemas/InfrastructureConfig' - description: Holds all the Infrastructure of the project in an environment - InfrastructureConfig: - title: InfrastructureConfig - type: object - description: Holds all the Infrastructure config of the TFState - InfrastructureGraph: - title: InfrastructureGraph - required: - - edges - - nodes - type: object - properties: - nodes: - type: array - items: - $ref: '#/components/schemas/InfrastructureGraphNode' - edges: - type: array - items: - $ref: '#/components/schemas/InfrastructureGraphEdge' - description: Holds all the Infrastructure of the project in an environment in - Graph format - InfrastructureGraphNode: - title: Infrastructure - required: - - canonical - - id - - position - - resource - type: object - properties: - id: + description: | + The config represent some extra parameters which are required for the configuration of certain KPIs. Please refer to the documentation for more details. + properties: {} + type: object + description: type: string - canonical: + environment_canonical: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:[\da-zA-Z\-._]+[\da-zA-Z]|[\da-zA-Z])$ + type: string + job_name: + type: string + name: + minLength: 3 + type: string + pipeline_name: + type: string + project_canonical: + maxLength: 100 + minLength: 1 + pattern: (^[a-z0-9]+(([a-z0-9\-_]+)?[a-z0-9]+)?$) + type: string + type: + enum: + - build_avg_time + - build_frequency + - build_history + - code_coverage + - time_to_release + type: string + widget: + enum: + - bars + - stackbars + - doughnut + - history + - line + - pie + - summary type: string - position: - type: array - description: "It holds [x,y]" - items: - type: integer - format: uint64 - resource: - $ref: '#/components/schemas/TerraformProviderResourceSimple' - description: Holds the information of a Node of the Graph - InfrastructureGraphEdge: - title: Infrastructure required: - - canonicals - - id - - source - - target + - name + - type + - widget + title: New KPI type: object + NewLicence: + description: Object containing licence parameters properties: - id: - type: string - source: - type: string - target: + key: + description: Licence's key in the JWT format type: string - canonicals: - type: array - items: - type: string - description: Holds the information of an Edge of the Graph - Summary: - title: Summary of the organization required: - - config_repositories - - credentials - - pipelines - - projects - - roles - - service_catalog_sources - - service_catalogs - - teams - - users + - key + title: Licence type: object + NewMemberInvitation: + description: Send an invitation to a user to something. Something can be to create an account, to join to an organization, to join to a team, etc. API operation determines the operation to perform. properties: - projects: - type: integer - format: uint64 - pipelines: - type: integer - format: uint64 - credentials: - type: integer - format: uint64 - service_catalog_sources: - type: integer - format: uint64 - config_repositories: - type: integer - format: uint64 - teams: - type: integer - format: uint64 - users: - type: integer - format: uint64 - roles: - type: integer - format: uint64 - service_catalogs: - type: integer - format: uint64 - APIKey: - title: API key + email: + description: Invite user by email + format: email + type: string + role_canonical: + description: The role of the member. + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string required: - - canonical - - id - - last_seven - - name - - rules + - email + - role_canonical + title: Invite user type: object + NewOAuthUser: + description: The User OAuth information + example: + country_code: country_code + email: email + family_name: family_name + given_name: given_name + invitation_token: invitation_token + locale: en + picture_url: https://openapi-generator.tech + social_id: social_id + username: username properties: - canonical: - $ref: '#/components/schemas/Canonical' - name: - minLength: 3 + country_code: + description: Code of a country the user is from + pattern: ^[A-Z]{2}$ type: string - description: - $ref: '#/components/schemas/Description' - rules: - type: array - items: - $ref: '#/components/schemas/Rule' - token: + email: + format: email type: string - description: "The actual API key in the format of JWT token, returned only\ - \ upon creation." - last_seven: + family_name: + type: string + given_name: + type: string + invitation_token: + description: The field is used when a user signup from an invitation to an organization. Giving the token, the created user will be automatically added to the organization. + minLength: 5 + type: string + locale: + description: User's preferred language + enum: + - en + - fr + - es + type: string + picture_url: + format: uri + type: string + social_id: + type: string + username: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ type: string - description: The last seven characters of API key. Allows user to differentiate - between keys. - id: - $ref: '#/components/schemas/ID' - owner: - $ref: '#/components/schemas/User' - last_used: - type: integer - description: This field contains the date of the last usage of the API key - format: uint64 - description: "The entity which represents the information of an API key. The\ - \ \"token\" field is only filled once, upon creation" - NewAPIKey: - title: Create API key required: - - name - - rules + - email + - given_name + - social_id + - username + title: User's OAuth information type: object + NewOrganization: + description: The entity which represents a new organization to create in the application. properties: canonical: - $ref: '#/components/schemas/Canonical' - name: + maxLength: 100 minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ type: string - description: - $ref: '#/components/schemas/Description' - rules: - type: array - items: - $ref: '#/components/schemas/NewRule' - owner: - type: string - description: | - User canonical that owns this API key. If omitted then the person creating this - credential will be assigned as owner. When a user is the owner of an API key he has - all the permissions on it. - description: The entity which represents the information of a new API key. - UpdateAPIKey: - title: Update API key - required: - - name - type: object - properties: name: minLength: 3 type: string - description: - $ref: '#/components/schemas/Description' - owner: - type: string - description: | - User canonical that owns this API key. Only the owner or an - organization admin can update such a field. When a user is the owner - of a API key it has all the permission on it. - description: "The entity which represents the information of the API key to\ - \ be updated. \nThe API key rules are immutable and cannot be changed.\n" - InfraPolicy: - title: InfraPolicy required: - - body - - canonical - - created_at - - description - - enabled - - id - - name - - severity - - updated_at + - name + title: Create Organization type: object + NewPipeline: + description: The entity which represents a new pipeline to create in the application. properties: - id: - $ref: '#/components/schemas/ID' - created_at: - type: integer - format: uint64 - updated_at: - type: integer - format: uint64 - name: + check_credentials: + description: Validate credentials manager variables in the pipeline config. + type: boolean + environment: + $ref: '#/components/schemas/NewEnvironment' + passed_config: + type: string + pipeline_name: + maxLength: 50 minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-._]+[a-z0-9]+$ type: string - description: - $ref: '#/components/schemas/Description' - canonical: - $ref: '#/components/schemas/Canonical' - owner: - $ref: '#/components/schemas/User' - body: + use_case: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ type: string - description: The body field is the code in plain text that defines the rules - for the policy. - severity: + yaml_vars: type: string - description: | - It defines the enforcement level. It must be used from the caller of the InfraPolicy - validation endpoint to apply the specific logic in case of not respected InfraPolicies. - Uses critical to block the changes. - Uses warning to block the changes but allow to override manually. - Uses advisory to allow them but a notification must be send. - enum: - - critical - - warning - - advisory - enabled: - type: boolean - description: The policy to control operations across infrastructure. - NewInfraPolicy: - title: Create InfraPolicy required: - - body - - name - - owner - - severity + - environment + - pipeline_name + title: Create Pipeline type: object + NewProject: + additionalProperties: false + description: The entity which represents the information of a new project. properties: - name: + canonical: + maxLength: 100 + minLength: 1 + pattern: (^[a-z0-9]+(([a-z0-9\-_]+)?[a-z0-9]+)?$) + type: string + config_repository_canonical: + maxLength: 100 minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ type: string description: - $ref: '#/components/schemas/Description' - canonical: - $ref: '#/components/schemas/Canonical' - owner: - $ref: '#/components/schemas/Canonical' - body: - type: string - description: The body field is the code in plain text that defines the rules - for the policy. - severity: + description: | + A description regarding the project to help identify/remember details, + implementation, purpose, etc. type: string - enum: - - critical - - warning - - advisory - enabled: - type: boolean - description: Create a new policy to control operations across infrastructure. - UpdateInfraPolicy: - title: Update InfraPolicy - required: - - body - - description - - enabled - - name - - owner - - severity - type: object - properties: name: - minLength: 3 + minLength: 1 type: string - description: - $ref: '#/components/schemas/Description' owner: - $ref: '#/components/schemas/Owner' - body: + description: | + User canonical that owns this project. If omitted then the person + creating this project will be assigned as owner. When a user is the + owner of a project it has all the permissions on it. type: string - description: The body field is the code in plain text that defines the rules - for the policy. - severity: + service_catalog_ref: + description: It's the ref of the Service Catalog, like 'cycloidio:stack-magento' type: string - enum: - - critical - - warning - - advisory - enabled: - type: boolean - description: Update a policy to control operations across infrastructure. - InfraPoliciesValidationResult: - title: Infra policies validation results. - type: object - properties: - criticals: - type: array - items: - $ref: '#/components/schemas/InfraPoliciesValidationResultItem' - warnings: - type: array - items: - $ref: '#/components/schemas/InfraPoliciesValidationResultItem' - advisories: - type: array - items: - $ref: '#/components/schemas/InfraPoliciesValidationResultItem' - description: The set of not respected rules for the checked policies. - InfraPoliciesValidationResultItem: - required: - - infra_policy - type: object - properties: - infra_policy: - $ref: '#/components/schemas/InfraPolicy' - reasons: - type: array + team_canonical: description: | - The messages about the reason of the validation failure - that's written in the InfraPolicy's Body of the failed rule. - items: - type: string - description: | - InfraPoliciesValidationResultItem represents a checked rule - with a failed result generated from the validation process. - Subscription: - title: Subscription + Is only required when the using Quotas, it'll link the Project + to the Team + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string required: - - expires_at - - plan + - config_repository_canonical + - name + - service_catalog_ref + title: Create Project type: object + NewQuota: + description: The Quota defines the basic needs to create a quota properties: - expires_at: + cpu: + description: The amount of cpu that it has in units + format: uint64 minimum: 0 type: integer + memory: + description: The amount of memory that it has in MB format: uint64 - plan: - $ref: '#/components/schemas/SubscriptionPlan' - members_count: minimum: 0 type: integer + resource_pool_canonical: + description: The Resource Pool it'll be used + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + storage: + description: The amount of storage that it has in MB format: uint64 - current_members: minimum: 0 type: integer - format: uint64 - description: | - It reflects the relation between an Organization and a Plan which - could be the Free Trial or others, for more info check https://www.cycloid.io/pricing - NewSubscription: - title: New Subscription - required: - - plan_canonical - type: object - properties: - plan_canonical: - $ref: '#/components/schemas/Canonical' - description: It reflects the creation of a Subscription - SubscriptionPlan: - title: SubscriptionPlan - required: - - canonical - - name - type: object - properties: - name: + team_canonical: + description: The Team it'll be limiting + maxLength: 100 minLength: 3 - type: string - canonical: - $ref: '#/components/schemas/Canonical' - description: It reflects the Plan used for the subscription - Invitation: - title: Invitation + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string required: - - created_at - - email - - id - - role - - state + - cpu + - memory + - resource_pool_canonical + - storage + - team_canonical + title: New Quota type: object + NewResourcePool: + description: The Resource Pool defines the basic needs to create/update a resource pool properties: - id: - $ref: '#/components/schemas/ID' - created_at: - $ref: '#/components/schemas/CreatedAt' - email: + label: type: string - format: email - state: + name: type: string - enum: - - pending - - accepted - - declined - role: - $ref: '#/components/schemas/Role' - invitee: - $ref: '#/components/schemas/UserAccount' - invited_by: - $ref: '#/components/schemas/MemberOrg' - resent_at: - minimum: 0 - type: integer - format: uint64 - description: It represents an Invitation to join an Organization. - PendingInvite: - title: PendingInvite required: - - email + - label + - name + title: New Resource Pool type: object + NewRole: + description: New role represents the authorization level that a user has access to. A role contains a list of rules to define the access control. Note not all the entities supports roles access control; see the API endpoints to know which entities support them. + example: + canonical: canonical + description: description + name: name + rules: + - action: action + effect: allow + resources: + - resources + - resources + - action: action + effect: allow + resources: + - resources + - resources properties: - email: + canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ type: string - format: email - description: Contains the email used for the invitation - CanDoInput: - title: CanDoInput + description: + type: string + name: + maxLength: 100 + minLength: 3 + type: string + rules: + items: + $ref: '#/components/schemas/NewRule' + type: array required: - - action - - entity_canonicals + - name + - rules + title: New role access control type: object + NewRule: + description: NewRule represents an existing or new permission or constraint to access to an entity of the system. A Rule is aggregated into roles in order to be applied. + example: + action: action + effect: allow + resources: + - resources + - resources properties: action: + description: It can be the normal Policy.Code or contain globs like `*` or `**` type: string - entity_canonicals: - type: array - description: List of the canonicals to the Resource excluding the Organization + effect: + enum: + - allow + type: string + resources: + description: It is the list of resources in which this Rule applies to, the format of it is the one on the Policy.Code but with the `canonical` of the entities like `organization:org-can:team:team-can` for an action of `organization:team:read` items: type: string - description: The input of the 'can_do' endpoint - CanDoOutput: - title: CanDoOutput + type: array required: - - ok + - action + - effect + title: NewRule type: object + NewServiceCatalog: + description: Represents the Service Catalog item properties: - ok: - type: boolean - entity_canonicals: + author: + type: string + canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + dependencies: + items: + $ref: '#/components/schemas/ServiceCatalogDependency' type: array + description: + type: string + image: + format: uri + type: string + keywords: items: type: string - description: The output of the 'can_do' endpoint - CostEstimationResult: - title: CostEstimationResult + type: array + name: + type: string + service_catalog_source_canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + team_canonical: + description: | + Team responsible for the maintenance of the underlying service catalogs + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + technologies: + items: + $ref: '#/components/schemas/ServiceCatalogTechnology' + type: array + visibility: + type: string required: - - resource_estimates + - author + - description + - keywords + - name + - service_catalog_source_canonical + title: NewServiceCatalog type: object + NewServiceCatalogFromTemplate: + description: Represents the Service Catalog item properties: + author: + type: string + canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string name: - $ref: '#/components/schemas/Name' - description: Name of the current estimation - info: type: string - description: "Extra details regarding estimation - usually related to no\ - \ known resources, unknown providers, etc." - resource_estimates: - type: array - items: - $ref: '#/components/schemas/CostEstimationResourceEstimate' - skipped_resource_addresses: - type: array + service_catalog_source_canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + team_canonical: description: | - A list of addresses of resources that were skipped from the estimation process. A resource might be skipped - due to being invalid or unsupported by Terracost. - items: - type: string - prior_cost: + Team responsible for the maintenance of the underlying service catalogs + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ type: string - description: Prior monthly cost of the plan in decimal form. - planned_cost: + use_case: type: string - description: Planned monthly cost of the plan in decimal form. - prior_hourly_cost: + visibility: type: string - description: Prior hourly cost of the plan in decimal form. - planned_hourly_cost: + required: + - canonical + - name + - service_catalog_source_canonical + - use_case + title: NewServiceCatalogFromTemplate + type: object + NewServiceCatalogSource: + properties: + branch: + type: string + canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + credential_canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + name: + type: string + on_create_team: + description: | + Team responsible for the maintenance of the underlying service catalogs + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + on_create_visibility: + description: | + The visibility setting allows to specify which visibility will be applied to stacks in this catalog repository. + This option is only applied during initial catalog repository creation, not for subsequent updates. + type: string + owner: + description: | + User canonical that owns this service catalog source. If omitted then the person + creating this service catalog source will be assigned as owner. When a user is the + owner of a service catalog source they has all the permissions on it. + type: string + url: + pattern: ^((/|~)[^/]*)+.(\.git)|(([\w\]+@[\w\.]+))(:(//)?)([\w\.@\:/\-~]+)(/)? type: string - description: Planned hourly cost of the plan in decimal form. - description: The result of cost estimation. - CostEstimationResourceEstimate: - title: CostEstimationResourceEstimate required: - - address - - components - - provider - - type + - branch + - name + - url + title: NewServiceCatalogSource type: object + NewSubscription: + description: It reflects the creation of a Subscription properties: - provider: + plan_canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ type: string - description: The resource's cloud provider. - type: + required: + - plan_canonical + title: New Subscription + type: object + NewTeam: + description: The entity which represents the information of a new team. + properties: + canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ type: string - description: Type of the resource. - address: + name: + minLength: 3 type: string - description: Unique identifier of the resource. - image: + owner: + description: | + User canonical that owns this team. If omitted then the person + creating this team will be assigned as owner. When a user is the + owner of a team it has all the permissions on it. type: string - description: Path to the image of the resource - format: uri - components: - type: array - description: List of resource cost components. + roles_canonical: + description: The roles to be assigned to a team. items: - $ref: '#/components/schemas/CostEstimationComponent' - prior_cost: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + type: array + required: + - name + - roles_canonical + title: Create Team + type: object + NewTeamMemberAssignation: + description: Member is a user assigned to a Team + properties: + username: + description: Assign user by username + format: string type: string - description: Prior monthly cost of the resource estimate in decimal form. - planned_cost: + required: + - username + title: Assign user + type: object + NewUserAccount: + description: Create a new user account. + properties: + country_code: + description: Code of a country the user is from + pattern: ^[A-Z]{2}$ type: string - description: Planned monthly cost of the resource estimate in decimal form. - prior_hourly_cost: + email: + format: email type: string - description: Prior hourly cost of the resource estimate in decimal form. - planned_hourly_cost: + family_name: + minLength: 2 type: string - description: Planned hourly cost of the resource estimate in decimal form. - description: Estimate for a single cloud resource. - CostEstimationComponent: - title: CostEstimationComponent + given_name: + minLength: 2 + type: string + invitation_token: + description: The field is used when a user signup from an invitation to an organization. Giving the token, the created user will be automatically added to the organization. + minLength: 5 + type: string + locale: + description: User's preferred language + enum: + - en + - fr + - es + type: string + password: + format: password + minLength: 8 + type: string + username: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + required: + - email + - family_name + - given_name + - password + - username + title: Sign up + type: object + OnFailurePlan: + description: The plan definition when the action has failed. + properties: + next: + $ref: '#/components/schemas/Plan' + step: + $ref: '#/components/schemas/Plan' required: - - label - - rate + - next + - step + title: OnFailurePlan type: object + OnSuccessPlan: + description: The plan definition when the action has been successful. properties: - label: - type: string - description: Human-readable label of the component. - rate: - type: string - description: Monthly rate per unit. - unit: - type: string - description: Unit of estimation. - usage: - type: boolean - description: If the price is from usage or configuration - prior: - $ref: '#/components/schemas/CostEstimationComponentState' - planned: - $ref: '#/components/schemas/CostEstimationComponentState' - description: Cost component of a cloud resource estimate. - CostEstimationComponentState: - title: CostEstimationComponentState + next: + $ref: '#/components/schemas/Plan' + step: + $ref: '#/components/schemas/Plan' required: - - cost - - details - - hourly_cost - - quantity + - next + - step + title: OnSuccessPlan type: object + Organization: + description: The entity which holds all the direct information attached to an organization. + example: + admins: + - created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + invitation_email: invitation_email + invitation_resent_at: 0 + invitation_state: pending + invited_at: 0 + invited_by: null + last_login_at: 0 + locale: en + mfa_enabled: true + picture_url: https://openapi-generator.tech + role: + canonical: canonical + created_at: 0 + default: true + description: description + id: 1 + name: name + rules: + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + updated_at: 0 + updated_at: 0 + username: username + - created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + invitation_email: invitation_email + invitation_resent_at: 0 + invitation_state: pending + invited_at: 0 + invited_by: null + last_login_at: 0 + locale: en + mfa_enabled: true + picture_url: https://openapi-generator.tech + role: + canonical: canonical + created_at: 0 + default: true + description: description + id: 1 + name: name + rules: + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + updated_at: 0 + updated_at: 0 + username: username + appearance: + canonical: canonical + color: + b: 37 + g: 153 + r: 20 + created_at: 0 + display_name: display_name + favicon: https://openapi-generator.tech + footer: footer + is_active: true + logo: https://openapi-generator.tech + name: name + tab_title: tab_title + updated_at: 0 + blocked: + - blocked + - blocked + can_children_create_appearance: true + can_create_appearance: true + canonical: canonical + ci_port: ci_port + ci_team_name: ci_team_name + ci_url: ci_url + created_at: 0 + has_children: true + id: 1 + mfa_enabled: true + name: name + quotas: true + subscription: + current_members: 0 + expires_at: 0 + members_count: 0 + plan: + canonical: canonical + name: name + updated_at: 0 properties: - quantity: - type: integer - description: Quantity of units. - format: uint32 - details: + admins: + items: + $ref: '#/components/schemas/MemberOrg' type: array - description: List of items on which the cost is dependent. + appearance: + $ref: '#/components/schemas/Appearance' + blocked: items: type: string - cost: + type: array + can_children_create_appearance: + type: boolean + can_create_appearance: + type: boolean + canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ type: string - description: Monthly cost of the component state in decimal form. - hourly_cost: + ci_port: type: string - description: Hourly cost of the component state in decimal form. - description: Either a Prior or Planned cost component state. - CloudCostManagementProjectResources: - title: CloudCostManagementProjectResources + ci_team_name: + type: string + ci_url: + type: string + created_at: + format: uint64 + minimum: 0 + type: integer + has_children: + type: boolean + id: + format: uint32 + minimum: 1 + type: integer + mfa_enabled: + type: boolean + name: + minLength: 3 + type: string + quotas: + type: boolean + subscription: + $ref: '#/components/schemas/Subscription' + updated_at: + format: uint64 + minimum: 0 + type: integer required: - - cost - - project - - providers + - blocked + - can_children_create_appearance + - can_create_appearance + - canonical + - ci_port + - ci_team_name + - ci_url + - created_at + - has_children + - id + - mfa_enabled + - name + - quotas + - updated_at + title: Organization type: object + PageConcourse: + example: + limit: 1 + since: 0 + until: 6 properties: - cost: - type: number - description: Cost for the project in the period - project: - type: string - providers: - type: array - items: - $ref: '#/components/schemas/CloudCostManagementProjectProviderResources' - description: | - The new resources and associated cost for a project in a period of time. - CloudCostManagementProjectProviderResources: - title: CloudCostManagementProjectProviderResources + limit: + description: The maximum number of entities to return + format: uint64 + type: integer + since: + description: Entities returned should have a higher timestamp than this one + format: uint64 + type: integer + until: + description: Entities returned should have a lower timestamp than this one + format: uint64 + type: integer required: - - co2e - - cost - - kwh - - new_resources - - provider - - resources + - limit + - since + - until + title: PageConcourse type: object + Pagination: + example: + index: 1 + size: 0 + total: 0 properties: - cost: - type: number - description: Cost of the project for the provider - kwh: - type: number - description: "Energy consumption for the project and provider, in kwh" - co2e: - type: number - description: "CO2e emissions for the project and provider, in metric tons" - provider: - type: string - resources: + index: + description: The index of the page sent (the first page is 1). + format: uint64 + minimum: 1 type: integer - new_resources: + size: + description: The size of the page (the number of entities per page) + format: uint64 + minimum: 0 + type: integer + total: + description: The total number of items. + format: uint64 + minimum: 0 type: integer - description: | - Trend for a project - CloudCostManagementDashboard: - title: CloudCostManagementDashboard required: - - filter_values - - project_resources - - projects - - providers + - index + - size + - total + title: Pagination type: object + PaginationAWS: + example: + next: next properties: - total_cost: - type: number - total_kwh: - type: number - total_co2e: - type: number - providers: - $ref: '#/components/schemas/CloudCostManagementHistogram' - projects: - $ref: '#/components/schemas/CloudCostManagementHistogram' - project_resources: - type: array - items: - $ref: '#/components/schemas/CloudCostManagementProjectResources' - filter_values: - $ref: '#/components/schemas/CloudCostManagementFilterValues' - description: "The dashboard of the Cloud Cost Management, it contains\n- a histogram\ - \ of the cost in the period aggregated by provider and\n by time granularity\n\ - - a histogram of the cost aggregated by the top projects and providers\n \ - \ and filtered by the top projects\n- a list of resources and relative cost\ - \ for each top projects\n- a map containing properties that can be specified\ - \ filtering the \n returned results, with a set of valid values for each.\n" - CloudCostManagementProviderDetails: - title: CloudCostManagementProviderDetails + next: + description: The token to retrieve the next page of results. Empty string when there isn't a next page. + type: string required: - - cost_histogram + - next + title: AWS Pagination type: object + PaginationConcourse: + example: + next: + limit: 1 + since: 0 + until: 6 + previous: + limit: 1 + since: 0 + until: 6 properties: - cost_histogram: - $ref: '#/components/schemas/CloudCostManagementHistogram' - filter_values: - $ref: '#/components/schemas/CloudCostManagementFilterValues' - description: | - Description of the costs of a specific provider - CloudCostManagementProjectsDashboard: - title: CloudCostManagementProjectsDashboard + next: + $ref: '#/components/schemas/PageConcourse' + previous: + $ref: '#/components/schemas/PageConcourse' required: - - project_providers - - projects + - next + - previous + title: PaginationConcourse type: object + PendingMemberInvitation: + description: Contains the email used for the member invitation + example: + email: email properties: - project_providers: - $ref: '#/components/schemas/CloudCostManagementHistogram' - projects: - $ref: '#/components/schemas/CloudCostManagementHistogram' - description: "The projects dashboard of the Cloud Cost Management, it contains\n\ - - a histogram of the cost aggregated by date and project \n- a histogram of\ - \ cost aggregated by projects and providers\n" - CloudCostManagementProviders: - title: CloudCostManagementProviders + email: + format: email + type: string required: - - cost_histogram + - email + title: PendingMemberInvitation type: object + PinComment: + description: Represents a pin comment of a resource properties: - cost_histogram: - $ref: '#/components/schemas/CloudCostManagementHistogram' + pin_comment: + type: string + required: + - pin_comment + title: PinComment + type: object + Pipeline: description: | - Date histogram of the cost of all the providers - CloudCostManagementHistogram: - title: CloudCostManagementHistogram + The entity which represents a pipeline in the application. + example: + archived: true + created_at: 0 + environment: + canonical: canonical + cloud_provider: + abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + color: color + created_at: 0 + icon: icon + id: 1 + updated_at: 0 + use_case: use_case + groups: + - jobs: + - jobs + - jobs + name: name + resources: + - resources + - resources + - jobs: + - jobs + - jobs + name: name + resources: + - resources + - resources + id: 0 + jobs: + - disable_manual_trigger: true + finished_build: + api_url: api_url + end_time: 7 + id: 1 + job_name: job_name + name: name + pipeline_id: 1 + pipeline_name: pipeline_name + reap_time: 1 + start_time: 6 + status: status + team_name: team_name + first_logged_build_id: 1 + groups: + - groups + - groups + has_new_inputs: true + id: 7 + inputs: + - name: name + passed: + - passed + - passed + resource: resource + trigger: true + version: + every: true + latest: true + pinned: + key: pinned + - name: name + passed: + - passed + - passed + resource: resource + trigger: true + version: + every: true + latest: true + pinned: + key: pinned + name: name + next_build: + api_url: api_url + end_time: 7 + id: 1 + job_name: job_name + name: name + pipeline_id: 1 + pipeline_name: pipeline_name + reap_time: 1 + start_time: 6 + status: status + team_name: team_name + outputs: + - name: name + resource: resource + - name: name + resource: resource + paused: true + pipeline_id: 4 + pipeline_name: pipeline_name + team_name: team_name + transition_build: + api_url: api_url + end_time: 7 + id: 1 + job_name: job_name + name: name + pipeline_id: 1 + pipeline_name: pipeline_name + reap_time: 1 + start_time: 6 + status: status + team_name: team_name + - disable_manual_trigger: true + finished_build: + api_url: api_url + end_time: 7 + id: 1 + job_name: job_name + name: name + pipeline_id: 1 + pipeline_name: pipeline_name + reap_time: 1 + start_time: 6 + status: status + team_name: team_name + first_logged_build_id: 1 + groups: + - groups + - groups + has_new_inputs: true + id: 7 + inputs: + - name: name + passed: + - passed + - passed + resource: resource + trigger: true + version: + every: true + latest: true + pinned: + key: pinned + - name: name + passed: + - passed + - passed + resource: resource + trigger: true + version: + every: true + latest: true + pinned: + key: pinned + name: name + next_build: + api_url: api_url + end_time: 7 + id: 1 + job_name: job_name + name: name + pipeline_id: 1 + pipeline_name: pipeline_name + reap_time: 1 + start_time: 6 + status: status + team_name: team_name + outputs: + - name: name + resource: resource + - name: name + resource: resource + paused: true + pipeline_id: 4 + pipeline_name: pipeline_name + team_name: team_name + transition_build: + api_url: api_url + end_time: 7 + id: 1 + job_name: job_name + name: name + pipeline_id: 1 + pipeline_name: pipeline_name + reap_time: 1 + start_time: 6 + status: status + team_name: team_name + name: name + paused: true + project: + canonical: canonical + config_repository_canonical: config_repository_canonical + created_at: 0 + description: description + environments: + - canonical: canonical + cloud_provider: + abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + color: color + created_at: 0 + icon: icon + id: 1 + updated_at: 0 + use_case: use_case + - canonical: canonical + cloud_provider: + abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + color: color + created_at: 0 + icon: icon + id: 1 + updated_at: 0 + use_case: use_case + favorite: true + id: 1 + import_status: succeeded + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + service_catalog: + author: author + blueprint: true + canonical: canonical + cloud_providers: + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + created_at: 0 + dependencies: + - ref: ref + required: true + - ref: ref + required: true + description: description + directory: directory + form_enabled: true + id: 1 + image: https://openapi-generator.tech + import_status: succeeded + keywords: + - keywords + - keywords + name: name + organization_canonical: organization_canonical + quota_enabled: true + readme: readme + ref: ref + service_catalog_source_canonical: service_catalog_source_canonical + team: + canonical: canonical + created_at: 0 + id: 1 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + updated_at: 0 + technologies: + - technology: technology + version: version + - technology: technology + version: version + trusted: true + updated_at: 0 + visibility: visibility + team: + canonical: canonical + created_at: 0 + id: 1 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + updated_at: 0 + updated_at: 0 + public: true + started: true + status: status + team_name: team_name + updated_at: 0 + use_case: use_case + properties: + archived: + type: boolean + created_at: + format: uint64 + minimum: 0 + type: integer + environment: + $ref: '#/components/schemas/Environment' + groups: + items: + $ref: '#/components/schemas/GroupConfig' + type: array + id: + format: uint64 + type: integer + jobs: + items: + $ref: '#/components/schemas/Job' + type: array + name: + type: string + paused: + type: boolean + project: + $ref: '#/components/schemas/Project' + public: + type: boolean + started: + type: boolean + status: + type: string + team_name: + type: string + updated_at: + format: uint64 + minimum: 0 + type: integer + use_case: + maxLength: 100 + minLength: 1 + pattern: (^[a-z0-9]+(([a-z0-9\-_]+)?[a-z0-9]+)?$) + type: string required: - - buckets - - co2e - - cost - - kwh + - created_at + - environment + - id + - jobs + - name + - paused + - project + - public + - team_name + - updated_at + - use_case + title: Pipeline type: object + PipelineDiff: + description: Represents a diff element of a PipelineDiffs. + example: + diff: + - delta_type: delta_type + line: line + - delta_type: delta_type + line: line + name: name + status: added properties: - cost: - type: number - description: The total cost for the period. - kwh: - type: number - description: "The total energy consumption for the period, in kwh." - co2e: - type: number - description: "The total CO2e emissions for the period, in metric tons." - buckets: - type: array + diff: + description: Represents the diff of all configuration line for an element items: - $ref: '#/components/schemas/CloudCostManagementBucket' - description: The histogram of the costs for a period composed of buckets that - aggregate the costs. - CloudCostManagementBucket: - title: CloudCostManagementBucket + $ref: '#/components/schemas/PipelineDiffRecord' + type: array + name: + description: Represents the name of the element in a pipeline. For example the job name for jobs section + type: string + status: + description: Represents the status of the element (added, removed, changed) + enum: + - added + - removed + - changed + type: string required: - - co2e - - cost - - kwh - - value + - diff + - name + - status + title: PipelineDiff type: object + PipelineDiffRecord: + description: Represents a diff record of a pipeline diff + example: + delta_type: delta_type + line: line properties: - cost: - type: number - value: + delta_type: + description: Represents the type of delta (added, removed, changed, equals) for the text line type: string - description: "The value of the aggregation term, for example if we aggregate\ - \ cost \nby region aggregate_value can be us-east-2, if we aggregate by\ - \ project\nthis can be cool_project_number_42, by service can be S3 or\ - \ EC2, etc..\n" - kwh: - type: number - description: "The total energy consumption for the aggregated usage, in\ - \ kwh" - co2e: - type: number - description: "The total CO2e emissions for the aggregated usage, in metric\ - \ tons." - buckets: - type: array - items: - $ref: '#/components/schemas/CloudCostManagementBucket' - description: "A sum of the cost generated in a period aggregated by one or more\ - \ terms,\nfor example if we aggregate costs by project here we have all the\ - \ cost \ngenerated by a specific project in the period of time defined by\ - \ the \nfilters of the histogram. In case the filter specifies more than\ - \ one \naggregation term this type will recursively contain the other levels\ - \ of \naggregation.\n" - CloudCostManagementFilterValues: - title: CloudCostManagementFilterValues + line: + description: Represents a text line in a pipeline configuration + type: string + required: + - delta_type + - line + title: PipelineDiffRecord type: object + PipelineDiffs: + description: Represents the diffs between two pipelines + example: + groups: + - diff: + - delta_type: delta_type + line: line + - delta_type: delta_type + line: line + name: name + status: added + - diff: + - delta_type: delta_type + line: line + - delta_type: delta_type + line: line + name: name + status: added + jobs: + - diff: + - delta_type: delta_type + line: line + - delta_type: delta_type + line: line + name: name + status: added + - diff: + - delta_type: delta_type + line: line + - delta_type: delta_type + line: line + name: name + status: added + resource_types: + - diff: + - delta_type: delta_type + line: line + - delta_type: delta_type + line: line + name: name + status: added + - diff: + - delta_type: delta_type + line: line + - delta_type: delta_type + line: line + name: name + status: added + resources: + - diff: + - delta_type: delta_type + line: line + - delta_type: delta_type + line: line + name: name + status: added + - diff: + - delta_type: delta_type + line: line + - delta_type: delta_type + line: line + name: name + status: added properties: - providers: - type: array + groups: items: - type: string - projects: + $ref: '#/components/schemas/PipelineDiff' type: array + jobs: items: - type: string - environments: + $ref: '#/components/schemas/PipelineDiff' type: array + resource_types: items: - type: string - services: + $ref: '#/components/schemas/PipelineDiff' type: array + resources: items: - type: string - master_accounts: + $ref: '#/components/schemas/PipelineDiff' type: array + title: PipelineDiffs + type: object + PipelineStatus: + description: Pipeline status returned upon pipelines comparison between the one locally stored in the database and its counter part on git. + example: + diffs: + groups: + - diff: + - delta_type: delta_type + line: line + - delta_type: delta_type + line: line + name: name + status: added + - diff: + - delta_type: delta_type + line: line + - delta_type: delta_type + line: line + name: name + status: added + jobs: + - diff: + - delta_type: delta_type + line: line + - delta_type: delta_type + line: line + name: name + status: added + - diff: + - delta_type: delta_type + line: line + - delta_type: delta_type + line: line + name: name + status: added + resource_types: + - diff: + - delta_type: delta_type + line: line + - delta_type: delta_type + line: line + name: name + status: added + - diff: + - delta_type: delta_type + line: line + - delta_type: delta_type + line: line + name: name + status: added + resources: + - diff: + - delta_type: delta_type + line: line + - delta_type: delta_type + line: line + name: name + status: added + - diff: + - delta_type: delta_type + line: line + - delta_type: delta_type + line: line + name: name + status: added + error: error + synced: unknown + properties: + diffs: + $ref: '#/components/schemas/PipelineDiffs' + error: + type: string + synced: + description: |- + The state can vary depending on how far the comparison process went. There are 4 possible states which are: + - unknown: one of the pipeline (database/git) couldn't be retrieved + - sycned: both database & git pipelines are identical + - out_of_sync: database & git pipelines have some differences + - errored: both pipelines got retrieved but the comparison triggered an error + enum: + - unknown + - synced + - out_of_sync + - errored + type: string + required: + - synced + title: PipelineStatus + type: object + PipelineVariables: + description: The entity which contains pipeline's variables. + example: + has_saved_yaml_vars: true + yaml_vars: yaml_vars + properties: + has_saved_yaml_vars: + description: | + The has_saved_yaml_vars specifies whether the returned vars are from + the saved ones or the sample ones. If the has_saved_yaml_vars is true, + it means that the saved have been returned. + type: boolean + yaml_vars: + type: string + required: + - has_saved_yaml_vars + - yaml_vars + title: Pipeline variables + type: object + Plan: + description: The plan is what represent a concourse build. + properties: + aggregate: + type: string + attempts: items: - type: string - linked_accounts: + format: uint32 + type: integer type: array + do: items: - type: string - regions: + $ref: '#/components/schemas/Plan' type: array + ensure: + $ref: '#/components/schemas/EnsurePlan' + get: + $ref: '#/components/schemas/GetPlan' + id: + type: string + on_failure: + $ref: '#/components/schemas/OnFailurePlan' + on_success: + $ref: '#/components/schemas/OnSuccessPlan' + put: + $ref: '#/components/schemas/PutPlan' + retry: items: - type: string - resources: + $ref: '#/components/schemas/Plan' type: array + task: + $ref: '#/components/schemas/TaskPlan' + timeout: + $ref: '#/components/schemas/TimeoutPlan' + try: + $ref: '#/components/schemas/TryPlan' + required: + - id + title: Plan + type: object + PlanConfig: + description: The plan configuration when creating new build. + properties: + aggregate: items: - type: string - instance_types: + $ref: '#/components/schemas/PlanConfig' type: array + conditions: items: type: string - categories: type: array + do: items: - type: string - currencies: + $ref: '#/components/schemas/PlanConfig' type: array + get: + type: string + params: + additionalProperties: + properties: {} + type: object + type: object + passed: items: type: string - tags: - type: object - additionalProperties: - type: array - items: - type: string - description: | - A collection of the values for which the cost can be filtered, i.e. all - the providers, services, regions, etc... for one org. - TerraformPlanInput: - title: TerraformPlanInput - required: - - tfplan - type: object - properties: - tfplan: - type: string - description: "Terraform plan file in escaped JSON format. See more: https://www.terraform.io/internals/json-format" - description: Input for endpoints that require a Terraform plan. - KPI: - title: KPI - required: - - canonical - - config - - created_at - - description - - error - - id - - name - - type - - updated_at - - widget - type: object - properties: - id: - $ref: '#/components/schemas/ID' - name: - minLength: 3 + type: array + privileged: + type: boolean + put: type: string - canonical: - $ref: '#/components/schemas/Canonical' - type: + raw_name: type: string - enum: - - build_avg_time - - build_frequency - - build_history - - code_coverage - - time_to_release - widget: + raw_trigger: + type: boolean + resource: type: string - enum: - - bars - - stackbars - - doughnut - - history - - line - - pie - - summary - config: - type: object - properties: {} - description: | - The config represent some extra parameters which are required for the configuration of certain KPIs. Please refer to the documentation for more details. - description: - $ref: '#/components/schemas/Description' - project_canonical: - $ref: '#/components/schemas/ProjectCanonical' - environment_canonical: - $ref: '#/components/schemas/EnvironmentCanonical' - pipeline_name: + task: type: string - job_name: + taskConfig: + $ref: '#/components/schemas/TaskConfig' + taskConfigPath: type: string - error: + title: PlanConfig + type: object + Policy: + description: Policy represents a permission or constraint to access to an entity of the system. A policy is aggregated into roles in order to be applied. + example: + code: code + created_at: 0 + description: description + entities: + - entities + - entities + id: 1 + updated_at: 0 + properties: + code: + maxLength: 60 + minLength: 5 + pattern: (?:[a-z]+_)*[a-z]+(?::(?:[a-z]+_)*[a-z]+)*$ type: string - description: "If an error occurred in the last import, that field will be\ - \ filled with the message of the error" created_at: - $ref: '#/components/schemas/CreatedAt' + format: uint64 + minimum: 0 + type: integer + description: + type: string + entities: + items: + type: string + type: array + id: + format: uint32 + minimum: 1 + type: integer updated_at: - $ref: '#/components/schemas/UpdatedAt' - data_set: - type: array - description: "The data is represented in CSV format. Depending on the widget\ - \ configured for the KPI, the format may vary. For more information please\ - \ refer to our product documentation." - items: - type: object - properties: {} - favorite: - type: boolean - description: A KPI - NewKPI: - title: New KPI + format: uint64 + minimum: 0 + type: integer required: - - name - - type - - widget + - code + - description + - id + title: Policy type: object + Preparation: + example: + build_id: build_id + inputs: '{}' + inputs_satisfied: '{}' + max_running_builds: max_running_builds + missing_input_reasons: '{}' + paused_job: paused_job + paused_pipeline: paused_pipeline properties: - name: - minLength: 3 - type: string - canonical: - $ref: '#/components/schemas/Canonical' - type: - type: string - enum: - - build_avg_time - - build_frequency - - build_history - - code_coverage - - time_to_release - widget: + build_id: type: string - enum: - - bars - - stackbars - - doughnut - - history - - line - - pie - - summary - config: + inputs: + properties: {} type: object + inputs_satisfied: properties: {} - description: | - The config represent some extra parameters which are required for the configuration of certain KPIs. Please refer to the documentation for more details. - description: - $ref: '#/components/schemas/Description' - project_canonical: - $ref: '#/components/schemas/ProjectCanonical' - environment_canonical: - $ref: '#/components/schemas/EnvironmentCanonical' - pipeline_name: + type: object + max_running_builds: type: string - job_name: + missing_input_reasons: + properties: {} + type: object + paused_job: type: string - description: A KPI's configuration that needs to be saved - Country: - title: Country - required: - - code - - name - type: object - properties: - code: - pattern: "^[A-Z]{2}$" + paused_pipeline: type: string - name: - $ref: '#/components/schemas/Name' - description: Single country Representation - NewLicence: - title: Licence required: - - key + - build_id + - inputs + - inputs_satisfied + - max_running_builds + - missing_input_reasons + - paused_job + - paused_pipeline + title: Preparation type: object + Project: + description: The entity which represents the information of a project. + example: + canonical: canonical + config_repository_canonical: config_repository_canonical + created_at: 0 + description: description + environments: + - canonical: canonical + cloud_provider: + abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + color: color + created_at: 0 + icon: icon + id: 1 + updated_at: 0 + use_case: use_case + - canonical: canonical + cloud_provider: + abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + color: color + created_at: 0 + icon: icon + id: 1 + updated_at: 0 + use_case: use_case + favorite: true + id: 1 + import_status: succeeded + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + service_catalog: + author: author + blueprint: true + canonical: canonical + cloud_providers: + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + created_at: 0 + dependencies: + - ref: ref + required: true + - ref: ref + required: true + description: description + directory: directory + form_enabled: true + id: 1 + image: https://openapi-generator.tech + import_status: succeeded + keywords: + - keywords + - keywords + name: name + organization_canonical: organization_canonical + quota_enabled: true + readme: readme + ref: ref + service_catalog_source_canonical: service_catalog_source_canonical + team: + canonical: canonical + created_at: 0 + id: 1 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + updated_at: 0 + technologies: + - technology: technology + version: version + - technology: technology + version: version + trusted: true + updated_at: 0 + visibility: visibility + team: + canonical: canonical + created_at: 0 + id: 1 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + updated_at: 0 + updated_at: 0 properties: - key: + canonical: + maxLength: 100 + minLength: 1 + pattern: (^[a-z0-9]+(([a-z0-9\-_]+)?[a-z0-9]+)?$) type: string - description: Licence's key in the JWT format - description: Object containing licence parameters - Licence: - title: Licence - required: - - company_name - - created_at - - current_members - - email_address - - expires_at - - key - - members_count - - on_prem - - updated_at - - version - type: object - properties: - key: + config_repository_canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ type: string - description: Licence's key in the JWT format created_at: - $ref: '#/components/schemas/CreatedAt' - updated_at: - $ref: '#/components/schemas/UpdatedAt' - company_name: - type: string - email_address: - type: string - members_count: - minimum: 0 - type: integer format: uint64 - expires_at: minimum: 0 type: integer - format: uint64 - version: + description: type: string - on_prem: + environments: + items: + $ref: '#/components/schemas/Environment' + type: array + favorite: type: boolean - current_members: - minimum: 0 + id: + format: uint32 + minimum: 1 type: integer + import_status: + description: The import process status. + enum: + - succeeded + - failed + - importing + type: string + name: + minLength: 1 + type: string + owner: + $ref: '#/components/schemas/User' + service_catalog: + $ref: '#/components/schemas/ServiceCatalog' + team: + $ref: '#/components/schemas/SimpleTeam' + updated_at: format: uint64 - description: Object containing licence parameters - NewInfraImport: - title: New Infra Import - required: - - configuration - - credential_canonical - - stack - type: object - properties: - module_variables: - type: object - additionalProperties: - type: array - items: - type: string - description: It's a KV where the key is the resource name and the value - is the list (array) of attributes to include as part of the module - tags: - type: array - description: List of tags to filter with format NAME:VALUE - items: - type: string - include: - type: array - description: "List of resources to import, these names are the ones on TF\ - \ (ex: aws_instance). If not set then it means that all the resources\ - \ will be imported" - items: - type: string - targets: - type: array - description: "List of resources to import via ID, those IDs are the ones\ - \ documented on Terraform that are needed to Import. The format is 'aws_instance.ID'" - items: - type: string - credential_canonical: - $ref: '#/components/schemas/Canonical' - stack: - $ref: '#/components/schemas/NewServiceCatalog' - project: - $ref: '#/components/schemas/NewInfraImportProject' - environment: - $ref: '#/components/schemas/NewEnvironment' - external_backend: - $ref: '#/components/schemas/NewInfraImportExternalBackend' - configuration: - $ref: '#/components/schemas/CloudProviderConfiguration' - description: Entry that represents all the data needed to import a stack - InfraImportResourceBody: - title: Provider Resources body - required: - - configuration - - credential_canonical - type: object - properties: - credential_canonical: - $ref: '#/components/schemas/Canonical' - configuration: - $ref: '#/components/schemas/CloudProviderConfiguration' - tags: - type: array - items: - type: string - description: Entry that represents all the data needed for fetching resource - InfraImportResourcesBody: - title: Provider's Resources body - required: - - configuration - - credential_canonical - type: object - properties: - credential_canonical: - $ref: '#/components/schemas/Canonical' - configuration: - $ref: '#/components/schemas/CloudProviderConfiguration' - description: Entry that represents all the data needed for fetching resources - CloudProviderConfiguration: + minimum: 0 + type: integer required: - - type + - canonical + - created_at + - environments + - id + - name + - updated_at + title: Project type: object - properties: - type: - type: string - discriminator: - propertyName: type - CloudProviderAWSConfiguration: - description: | - Representation of AWS configuration - allOf: - - $ref: '#/components/schemas/CloudProviderConfiguration' - - required: - - region - type: object - properties: - region: - type: string - description: | - The AWS region where the resource exists - CloudProviderGCPConfiguration: - description: | - Representation of Google configuration - allOf: - - $ref: '#/components/schemas/CloudProviderConfiguration' - - required: - - project - - region - type: object - properties: - region: - type: string - description: | - The Google region where the resource exists - project: - type: string - description: | - The Google project where the resource exists - CloudProviderAzureConfiguration: - description: | - Representation of Azure configuration - allOf: - - $ref: '#/components/schemas/CloudProviderConfiguration' - - required: - - environment - - resource_group_names - type: object - properties: - resource_group_names: - minItems: 1 - type: array - description: | - The Azure resource group name of the configuration - items: - type: string - environment: - type: string - description: | - The Azure environment of the configuration - CloudProviderVMWareVSphereConfiguration: + ProjectEnvironmentConfig: description: | - Representation of VMware vSphere configuration - allOf: - - $ref: '#/components/schemas/CloudProviderConfiguration' - - required: - - allow_unverified_ssl - - server - type: object - properties: - server: - type: string - description: "This is the vCenter Server FQDN or IP Address for vSphere\ - \ API operations \n" - allow_unverified_ssl: - type: boolean - description: | - Used to disable verification of server's SSL certificate. - NewInfraImportProject: - title: Create Project for the Infra Import + Representation of project's environment configuration done via the forms. + The full forms file is returned, but the use case picked has the + Set variables matching the current configuration - if any. + example: + forms: + use_cases: + - name: name + sections: + - groups: + - condition: condition + folded: true + name: name + technologies: + - technologies + - technologies + vars: + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + - condition: condition + folded: true + name: name + technologies: + - technologies + - technologies + vars: + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + name: name + - groups: + - condition: condition + folded: true + name: name + technologies: + - technologies + - technologies + vars: + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + - condition: condition + folded: true + name: name + technologies: + - technologies + - technologies + vars: + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + name: name + - name: name + sections: + - groups: + - condition: condition + folded: true + name: name + technologies: + - technologies + - technologies + vars: + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + - condition: condition + folded: true + name: name + technologies: + - technologies + - technologies + vars: + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + name: name + - groups: + - condition: condition + folded: true + name: name + technologies: + - technologies + - technologies + vars: + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + - condition: condition + folded: true + name: name + technologies: + - technologies + - technologies + vars: + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + name: name + version: version + resource_pool_canonical: resource_pool_canonical + use_case: use_case + properties: + forms: + $ref: '#/components/schemas/FormsFileV3' + resource_pool_canonical: + description: The resource pool canonical, only require when using Quotas + type: string + use_case: + description: The use case picked for that environment + type: string + required: + - forms + - use_case + title: Project Environment Config + type: object + ProjectEnvironmentConsumption: + description: The Consumption of a Project in an Environment + example: + cpu: 0 + environment: + canonical: canonical + cloud_provider: + abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + color: color + created_at: 0 + icon: icon + id: 1 + updated_at: 0 + use_case: use_case + id: 1 + memory: 0 + project: + canonical: canonical + created_at: 0 + description: description + favorite: true + id: 1 + import_status: succeeded + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + updated_at: 0 + storage: 0 + properties: + cpu: + description: The amount of cpu that it has in units + format: uint64 + minimum: 0 + type: integer + environment: + $ref: '#/components/schemas/Environment' + id: + format: uint32 + minimum: 1 + type: integer + memory: + description: The amount of memory that it has in MB + format: uint64 + minimum: 0 + type: integer + project: + $ref: '#/components/schemas/ProjectSimple' + storage: + description: The amount of storage that it has in MB + format: uint64 + minimum: 0 + type: integer required: - - config_repository_canonical - - name + - cpu + - environment + - id + - memory + - project + - storage + title: ProjectEnvironmentConsumption type: object + ProjectSimple: + description: The entity which represents minimal information of a project. + example: + canonical: canonical + created_at: 0 + description: description + favorite: true + id: 1 + import_status: succeeded + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + updated_at: 0 properties: canonical: - $ref: '#/components/schemas/Canonical' - name: + maxLength: 100 minLength: 1 + pattern: (^[a-z0-9]+(([a-z0-9\-_]+)?[a-z0-9]+)?$) type: string + created_at: + format: uint64 + minimum: 0 + type: integer description: - $ref: '#/components/schemas/Description' - config_repository_canonical: - $ref: '#/components/schemas/Canonical' - description: The entity which represents the information of a new project. - NewInfraImportExternalBackend: - title: New External backend + type: string + favorite: + type: boolean + id: + format: uint32 + minimum: 1 + type: integer + import_status: + description: The import process status. + enum: + - succeeded + - failed + - importing + type: string + name: + minLength: 1 + type: string + owner: + $ref: '#/components/schemas/User' + updated_at: + format: uint64 + minimum: 0 + type: integer required: - - configuration + - canonical + - created_at + - id + - name + - updated_at + title: ProjectSimple type: object + PublicBuildInput: + description: Represent the information of a build input + example: + first_occurrence: true + name: name + pipeline_id: 0 + version: + key: version properties: - credential_canonical: - $ref: '#/components/schemas/Canonical' - aws_storage: - $ref: '#/components/schemas/AWSStorage' - gcp_storage: - $ref: '#/components/schemas/GCPStorage' - swift_storage: - $ref: '#/components/schemas/SwiftStorage' - description: "An external backend contains the configuration needed in order\ - \ to be plugged into the Cycloid system. A backend is a general purpose concept,\ - \ but Cycloid specifies which ones are supported and the list of those which\ - \ are supported for every concrete feature." - InfraImport: - title: Infra Import + first_occurrence: + type: boolean + name: + type: string + pipeline_id: + format: uint64 + type: integer + version: + additionalProperties: + type: string + type: object required: - - error - - logs - - service_catalog_ref - - status + - first_occurrence + - name + - pipeline_id + - version + title: PublicBuildInput type: object + PublicBuildOutput: + description: Represents the information of a build output + example: + name: name + version: + key: version properties: - status: - type: string - description: The import process status. - enum: - - succeeded - - failed - - importing - project_canonical: - $ref: '#/components/schemas/ProjectCanonical' - service_catalog_ref: - type: string - description: "It's the ref of the Service Catalog, like 'cycloidio:stack-magento'" - logs: + name: type: string - error: + version: + additionalProperties: + type: string + type: object + required: + - name + - version + title: PublicBuildOutput + type: object + PublicPlan: + description: The public plan returned requesting a build plan. + example: + plan: '{}' + schema: schema + properties: + plan: + properties: {} + type: object + schema: type: string - description: | - The entity which represents the information of for the import of a new Stack or Project. - InfraImportPreset: - title: InfraImportPreset required: - - name - - resources + - plan + - schema + title: PublicPlan type: object + PutPlan: + description: The put plan following a plan. properties: name: - $ref: '#/components/schemas/Name' - resources: - type: array + type: string + params: + additionalProperties: + properties: {} + type: object + type: object + resource: + type: string + source: + additionalProperties: + properties: {} + type: object + type: object + tags: items: type: string - description: | - Infra Import's pre-configured group with Resources commonly used together in a specific context. - InfraImportResource: - title: Infra Import Resource + type: array + type: + type: string + versioned_resource_types: + items: + $ref: '#/components/schemas/VersionedResourceType' + type: array required: - - id + - resource + - source + - type + title: PutPlan type: object + Quota: + description: A Quota holds the information of the restrictions applied to a Team having as source a Resource Pool + example: + cpu: 0 + id: 1 + memory: 0 + resource_pool: + allocated_cpu: 0 + allocated_memory: 0 + allocated_storage: 0 + canonical: canonical + cpu: 0 + id: 1 + label: label + memory: 0 + name: name + storage: 0 + used_cpu: 0 + used_memory: 0 + used_storage: 0 + storage: 0 + team: + canonical: canonical + created_at: 0 + id: 1 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + updated_at: 0 + used_cpu: 0 + used_memory: 0 + used_storage: 0 properties: + cpu: + description: The amount of cpu that it has in units + format: uint64 + minimum: 0 + type: integer id: - type: string - description: | - The representation of the Infra Import's Resource of a Cloud Provider. - CloudCostManagementAccount: - title: CloudCostManagementAccount + format: uint32 + minimum: 1 + type: integer + memory: + description: The amount of memory that it has in MB + format: uint64 + minimum: 0 + type: integer + resource_pool: + $ref: '#/components/schemas/ResourcePool' + storage: + description: The amount of storage that it has in MB + format: uint64 + minimum: 0 + type: integer + team: + $ref: '#/components/schemas/SimpleTeam' + used_cpu: + description: The amount of CPU that is used in units + format: uint64 + minimum: 0 + type: integer + used_memory: + description: The amount of memory that is used in MB + format: uint64 + minimum: 0 + type: integer + used_storage: + description: The amount of Storage that is used in MB + format: uint64 + minimum: 0 + type: integer required: - - account_id - - canonical - - cloud_provider - - created_at - - enabled - - id - - name - - status - - updated_at + - cpu + - id + - memory + - resource_pool + - storage + - team + - used_cpu + - used_memory + - used_storage + title: Quota type: object + Resource: + description: The entity which represents a resource in the application. + example: + build: + end_time: 5 + id: 1 + job_name: job_name + name: name + pipeline_id: 2 + pipeline_name: pipeline_name + plan: '{}' + start_time: 5 + status: status + team_name: team_name + icon: icon + last_checked: 0 + name: name + pin_comment: pin_comment + pinned_in_config: true + pinned_version: + key: pinned_version + pipeline_id: 6 + pipeline_name: pipeline_name + team_name: team_name + type: type properties: - canonical: - $ref: '#/components/schemas/Canonical' + build: + $ref: '#/components/schemas/BuildSummary' + icon: + type: string + last_checked: + format: uint64 + type: integer name: - $ref: '#/components/schemas/Name' - account_id: type: string - description: The ID of an account on the CP - parent_account_id: + pin_comment: type: string - description: The ID of the parent account on the CP - created_at: - $ref: '#/components/schemas/CreatedAt' - updated_at: - $ref: '#/components/schemas/UpdatedAt' - last_ingestion_started_at: + pinned_in_config: + type: boolean + pinned_version: + additionalProperties: + type: string + type: object + pipeline_id: + format: uint64 + type: integer + pipeline_name: + type: string + team_name: + type: string + type: + type: string + required: + - name + - type + title: Resource + type: object + ResourcePool: + description: A Resource Pool holds the information of all the Resources that have the same label. The Used is the amount used by Projects using Quotas and Allocated is the amount declared by Quotas + example: + allocated_cpu: 0 + allocated_memory: 0 + allocated_storage: 0 + canonical: canonical + cpu: 0 + id: 1 + label: label + memory: 0 + name: name + storage: 0 + used_cpu: 0 + used_memory: 0 + used_storage: 0 + properties: + allocated_cpu: + description: The amount of CPU that is allocated (quotas defined) in units + format: uint64 + minimum: 0 + type: integer + allocated_memory: + description: The amount of memory that is allocated (quotas defined) in MB + format: uint64 minimum: 0 type: integer + allocated_storage: + description: The amount of Storage that is allocated (quotas defined) in MB format: uint64 - last_ingestion_ended_at: minimum: 0 type: integer + canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + cpu: + description: The amount of cpu that it has in units format: uint64 + minimum: 0 + type: integer id: - $ref: '#/components/schemas/ID' - external_backend: - $ref: '#/components/schemas/ExternalBackend' - credential: - $ref: '#/components/schemas/CredentialSimple' - status: + format: uint32 + minimum: 1 + type: integer + label: + description: The label to which match the resources type: string - enum: - - idle - - error - - import - status_message: + memory: + description: The amount of memory that it has in MB + format: uint64 + minimum: 0 + type: integer + name: type: string - cloud_provider: - $ref: '#/components/schemas/CloudProvider' + storage: + description: The amount of storage that it has in MB + format: uint64 + minimum: 0 + type: integer + used_cpu: + description: The amount of CPU that is used in units + format: uint64 + minimum: 0 + type: integer + used_memory: + description: The amount of memory that is used in MB + format: uint64 + minimum: 0 + type: integer + used_storage: + description: The amount of Storage that is used in MB + format: uint64 + minimum: 0 + type: integer + required: + - allocated_cpu + - allocated_memory + - allocated_storage + - canonical + - cpu + - label + - memory + - name + - storage + - used_cpu + - used_memory + - used_storage + title: Resource Pool + type: object + ResourceVersion: + description: Represent the outputs of a job + example: + enabled: true + id: 0 + metadata: + - name: name + value: value + - name: name + value: value + version: + key: version + properties: enabled: type: boolean - phase: - type: string - enum: - - green - - blue - unfinalized_period: - type: string - description: Object containing Cloud Cost Management account parameters - CloudCostManagementAccountParent: - title: CloudCostManagementAccountParent + id: + format: uint64 + type: integer + metadata: + items: + $ref: '#/components/schemas/MetadataField' + type: array + version: + additionalProperties: + type: string + type: object required: - - account_id - - canonical - - cloud_provider - - created_at - - enabled - - id - - name - - status - - updated_at + - enabled + - id + - version + title: ResourceVersion type: object + Role: + description: Role represents the authorization level that an user has to access to a specific entity of the system. A role contains a list of rules to define the access control. Note not all the entities supports roles access control; see the API endpoints to know which entities support them. + example: + canonical: canonical + created_at: 0 + default: true + description: description + id: 1 + name: name + rules: + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + updated_at: 0 properties: canonical: - $ref: '#/components/schemas/Canonical' - name: - $ref: '#/components/schemas/Name' - account_id: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ type: string - description: The ID of an account on the CP created_at: - $ref: '#/components/schemas/CreatedAt' - updated_at: - $ref: '#/components/schemas/UpdatedAt' - last_ingestion_started_at: + format: uint64 minimum: 0 type: integer + default: + type: boolean + description: + type: string + id: + format: uint32 + minimum: 1 + type: integer + name: + maxLength: 100 + minLength: 3 + type: string + rules: + items: + $ref: '#/components/schemas/Rule' + type: array + updated_at: format: uint64 - last_ingestion_ended_at: minimum: 0 type: integer - format: uint64 - id: - $ref: '#/components/schemas/ID' - status: + required: + - canonical + - default + - description + - id + - name + - rules + title: Role access control + type: object + Rule: + description: Rules define the specific access to the platform + example: + action: action + effect: allow + id: 0 + resources: + - resources + - resources + properties: + action: + description: It can be the normal Policy.Code or contain globs like `*` or `**` type: string + effect: enum: - - idle - - error - - import - status_message: + - allow type: string - cloud_provider: - $ref: '#/components/schemas/CloudProvider' - enabled: - type: boolean - description: | - Object containing Cloud Cost Management parent account parameters. The difference - between it and CloudCostManagementAccount is that parent has no EB/Credential - displayed, as it's not necessary - CloudCostManagementLinkedAccount: - title: CloudCostManagementLinkedAccount + id: + description: This is the id of the row from the database, but for blocking organizations we generate rules that are not in the database. When this happens the id is allowed to be 0. + format: uint32 + minimum: 0 + type: integer + resources: + description: It is the list of resources in which this Rule applies to, the format of it is the one on the Policy.Code but with the `canonical` of the entities like `organization:org-can:team:team-can` for an action of `organization:team:read` + items: + type: string + type: array required: - - account_id - - cloud_provider - - id - - name + - action + - effect + - id + title: Rule type: object + SCConfig: + description: This entity is being used for automatic creation of SC config properties: - id: - $ref: '#/components/schemas/ID' - account_id: + configs: + description: Config files that will be created + items: + $ref: '#/components/schemas/ConfigFile' + type: array + required: + - configs + title: SC Config + type: object + SCConfigFormData: + additionalProperties: + additionalProperties: + items: + $ref: '#/components/schemas/FormEntity' + type: array + type: object + description: Represents the Data related to Forms that is stored in a SC Configuration for a given Use Case + title: Form Data + type: object + SCConfigPathConfig: + description: Represents a Configuration which holds Path and Content + properties: + content: type: string - description: ID of the account in the cloud provider - name: - $ref: '#/components/schemas/Name' - cloud_provider: + path: type: string - description: | - The cloud provider canonical that this project is using - between the - supported ones. - description: | - An account that is linked to a Cloud Cost Management account in the cloud - provider. It is not managed by Cloud Cost Management, but appears in the cost records. - UpdateCloudCostManagementLinkedAccount: - title: Update CloudCostManagementLinkedAccount required: - - name + - content + - path + title: Path Configuration type: object + SCConfigPathDestConfig: + description: Represents a Configuration which holds Path, Destination and Content properties: - name: - $ref: '#/components/schemas/Name' - description: "Attributes of a CCM linked accout that can be updated by a user.\ - \ \n" - NewCloudCostManagementAccount: - title: Create CloudCostManagementAccount + content: + type: string + destination: + type: string + path: + type: string required: - - external_backend + - content + - destination + - path + title: Path and Destination Configuration type: object + SCConfigPipelineConfig: + description: Represents the Service Catalog Configuration for a Pipeline of a given Use Case properties: - canonical: - $ref: '#/components/schemas/Canonical' + pipeline: + $ref: '#/components/schemas/SCConfigPathConfig' + variables: + $ref: '#/components/schemas/SCConfigPathDestConfig' + required: + - pipeline + - variables + title: Pipeline Configuration + type: object + SCConfigTechConfig: + additionalProperties: + $ref: '#/components/schemas/SCConfigPathDestConfig' + description: Represents the Service Catalog Configuration for a Technology of a given Use Case + title: Tech Configuration + type: object + SCConfigUseCaseConfig: + description: Represents the Service Catalog Configuration for a given Use Case + properties: + ansible: + additionalProperties: + $ref: '#/components/schemas/SCConfigPathDestConfig' + description: Represents the Service Catalog Configuration for a Technology of a given Use Case + title: Tech Configuration + type: object + cloud_provider: + type: string + description: + type: string + forms: + $ref: '#/components/schemas/FormUseCase' name: - $ref: '#/components/schemas/Name' - external_backend: - $ref: '#/components/schemas/NewExternalBackend' - description: | - Create a new Cloud Cost Management account to connect CP. - If a canonical is missing, the one from credential will be applied - NewCloudCostManagementAccountChild: - title: Create CloudCostManagementAccountChild + type: string + pipeline: + $ref: '#/components/schemas/SCConfigPipelineConfig' + terraform: + additionalProperties: + $ref: '#/components/schemas/SCConfigPathDestConfig' + description: Represents the Service Catalog Configuration for a Technology of a given Use Case + title: Tech Configuration + type: object required: - - credential_canonical - - parent_account_id + - cloud_provider + - description + - name + - pipeline + title: Use Case Configuration type: object + ServiceCatalog: + description: Represents the Service Catalog item + example: + author: author + blueprint: true + canonical: canonical + cloud_providers: + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + created_at: 0 + dependencies: + - ref: ref + required: true + - ref: ref + required: true + description: description + directory: directory + form_enabled: true + id: 1 + image: https://openapi-generator.tech + import_status: succeeded + keywords: + - keywords + - keywords + name: name + organization_canonical: organization_canonical + quota_enabled: true + readme: readme + ref: ref + service_catalog_source_canonical: service_catalog_source_canonical + team: + canonical: canonical + created_at: 0 + id: 1 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + updated_at: 0 + technologies: + - technology: technology + version: version + - technology: technology + version: version + trusted: true + updated_at: 0 + visibility: visibility properties: + author: + type: string + blueprint: + description: Determines if given stack is a blueprint + type: boolean canonical: - $ref: '#/components/schemas/Canonical' - name: - $ref: '#/components/schemas/Name' - parent_account_id: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ type: string - description: The ID of the parent account on the CP - credential_canonical: + cloud_providers: + description: Cloud providers supported by the stack + items: + $ref: '#/components/schemas/CloudProvider' + type: array + created_at: + format: uint64 + minimum: 0 + type: integer + dependencies: + items: + $ref: '#/components/schemas/ServiceCatalogDependency' + type: array + description: + type: string + directory: + description: Directory where the ServiceCatalog configuration is found. type: string - description: Canonical of the credentials used - description: "Create a new Cloud Cost Management Child account. This count has\ - \ no \nExternalBackend since it is not ingesting data.\nIf a canonical is\ - \ missing, the one from credential will be applied\n" - UpdateCloudCostManagementAccount: - title: Update CloudCostManagementAccount - required: - - enabled - - external_backend - type: object - properties: - enabled: + form_enabled: + description: Indicates if this stack can be configured with form's or not. Based on the presence or not of a valid .forms.yaml file since it's creation or last refresh. type: boolean - name: - $ref: '#/components/schemas/Name' - external_backend: - $ref: '#/components/schemas/UpdateExternalBackend' - description: Update a Cloud Cost Management account to connect CP. - CloudCostManagementTagMapping: - title: CloudCostManagementTagMapping - required: - - created_at - - id - - updated_at - type: object - properties: id: - $ref: '#/components/schemas/ID' - project_tags: - type: array - items: - type: string - project_regex: + format: uint32 + minimum: 1 + type: integer + image: + format: uri type: string - environment_tags: - type: array + import_status: + description: The import process status. + enum: + - succeeded + - failed + - importing + type: string + keywords: items: type: string - environment_regex: - type: string - all_tags: type: array - description: This is a list of all the tag keys in the DB for the Org + name: + type: string + organization_canonical: + description: Organization that the stack belongs to + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + quota_enabled: + description: Indicates if this stack can be configured with form's and has a Quota configuration. + type: boolean + readme: + description: Readme of the stack + type: string + ref: + type: string + service_catalog_source_canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + team: + $ref: '#/components/schemas/SimpleTeam' + technologies: items: - type: string - created_at: - $ref: '#/components/schemas/CreatedAt' + $ref: '#/components/schemas/ServiceCatalogTechnology' + type: array + trusted: + description: If 'true' the ServiceCatalog is from the main organization and can be trusted. + type: boolean updated_at: - $ref: '#/components/schemas/UpdatedAt' - description: "Object containing Cloud Cost Management tag mapping. The mapping\ - \ is used to \nidentify resources belonging to projects and environments across\ - \ cloud\nproviders. The mapping can be a set of tag keys or a regexp to capture\n\ - tag keys.\n" - UpdateCloudCostManagementTagMapping: - title: Create or Update CloudCostManagementTagMapping + format: uint64 + minimum: 0 + type: integer + visibility: + type: string + required: + - author + - canonical + - description + - directory + - form_enabled + - id + - keywords + - name + - organization_canonical + - quota_enabled + - ref + - trusted + - visibility + title: Service Catalog type: object + ServiceCatalogChanges: + description: Represents list of service catalogs changes during the refresh of a service catalog source. + example: + created: + - author: author + blueprint: true + canonical: canonical + cloud_providers: + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + created_at: 0 + dependencies: + - ref: ref + required: true + - ref: ref + required: true + description: description + directory: directory + form_enabled: true + id: 1 + image: https://openapi-generator.tech + import_status: succeeded + keywords: + - keywords + - keywords + name: name + organization_canonical: organization_canonical + quota_enabled: true + readme: readme + ref: ref + service_catalog_source_canonical: service_catalog_source_canonical + team: + canonical: canonical + created_at: 0 + id: 1 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + updated_at: 0 + technologies: + - technology: technology + version: version + - technology: technology + version: version + trusted: true + updated_at: 0 + visibility: visibility + - author: author + blueprint: true + canonical: canonical + cloud_providers: + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + created_at: 0 + dependencies: + - ref: ref + required: true + - ref: ref + required: true + description: description + directory: directory + form_enabled: true + id: 1 + image: https://openapi-generator.tech + import_status: succeeded + keywords: + - keywords + - keywords + name: name + organization_canonical: organization_canonical + quota_enabled: true + readme: readme + ref: ref + service_catalog_source_canonical: service_catalog_source_canonical + team: + canonical: canonical + created_at: 0 + id: 1 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + updated_at: 0 + technologies: + - technology: technology + version: version + - technology: technology + version: version + trusted: true + updated_at: 0 + visibility: visibility + deleted: + - author: author + blueprint: true + canonical: canonical + cloud_providers: + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + created_at: 0 + dependencies: + - ref: ref + required: true + - ref: ref + required: true + description: description + directory: directory + form_enabled: true + id: 1 + image: https://openapi-generator.tech + import_status: succeeded + keywords: + - keywords + - keywords + name: name + organization_canonical: organization_canonical + quota_enabled: true + readme: readme + ref: ref + service_catalog_source_canonical: service_catalog_source_canonical + team: + canonical: canonical + created_at: 0 + id: 1 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + updated_at: 0 + technologies: + - technology: technology + version: version + - technology: technology + version: version + trusted: true + updated_at: 0 + visibility: visibility + - author: author + blueprint: true + canonical: canonical + cloud_providers: + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + created_at: 0 + dependencies: + - ref: ref + required: true + - ref: ref + required: true + description: description + directory: directory + form_enabled: true + id: 1 + image: https://openapi-generator.tech + import_status: succeeded + keywords: + - keywords + - keywords + name: name + organization_canonical: organization_canonical + quota_enabled: true + readme: readme + ref: ref + service_catalog_source_canonical: service_catalog_source_canonical + team: + canonical: canonical + created_at: 0 + id: 1 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + updated_at: 0 + technologies: + - technology: technology + version: version + - technology: technology + version: version + trusted: true + updated_at: 0 + visibility: visibility + updated: + - author: author + blueprint: true + canonical: canonical + cloud_providers: + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + created_at: 0 + dependencies: + - ref: ref + required: true + - ref: ref + required: true + description: description + directory: directory + form_enabled: true + id: 1 + image: https://openapi-generator.tech + import_status: succeeded + keywords: + - keywords + - keywords + name: name + organization_canonical: organization_canonical + quota_enabled: true + readme: readme + ref: ref + service_catalog_source_canonical: service_catalog_source_canonical + team: + canonical: canonical + created_at: 0 + id: 1 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + updated_at: 0 + technologies: + - technology: technology + version: version + - technology: technology + version: version + trusted: true + updated_at: 0 + visibility: visibility + - author: author + blueprint: true + canonical: canonical + cloud_providers: + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + created_at: 0 + dependencies: + - ref: ref + required: true + - ref: ref + required: true + description: description + directory: directory + form_enabled: true + id: 1 + image: https://openapi-generator.tech + import_status: succeeded + keywords: + - keywords + - keywords + name: name + organization_canonical: organization_canonical + quota_enabled: true + readme: readme + ref: ref + service_catalog_source_canonical: service_catalog_source_canonical + team: + canonical: canonical + created_at: 0 + id: 1 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + updated_at: 0 + technologies: + - technology: technology + version: version + - technology: technology + version: version + trusted: true + updated_at: 0 + visibility: visibility properties: - project_tags: - type: array + created: items: - type: string - project_regex: - type: string - environment_tags: + $ref: '#/components/schemas/ServiceCatalog' type: array + deleted: items: - type: string - environment_regex: - type: string - description: Create or Update a Cloud Cost Management tag mapping for projects - and environments - State: - title: State - type: object - properties: - terraform_version: - type: string - version: - type: integer - format: uint32 - serial: - type: integer - format: uint32 - lineage: - type: string - resources: + $ref: '#/components/schemas/ServiceCatalog' type: array + updated: items: - $ref: '#/components/schemas/StateResource' - outputs: - type: object - properties: {} - description: The State of an Inventory of the Project's environment - StateResource: - title: State Resource + $ref: '#/components/schemas/ServiceCatalog' + type: array + required: + - created + - deleted + - updated + title: ServiceCatalogChanges + type: object + ServiceCatalogConfig: + additionalProperties: + $ref: '#/components/schemas/SCConfigUseCaseConfig' + description: Represents a Service Catalog's Config item + title: Service Catalog Configuration type: object + ServiceCatalogDependenciesValidationResult: + description: The result of the Service Catalog dependencies validation. If errors and warnings are empty then it means that the dependencies are respected. + example: + errors: + - errors + - errors + warnings: + - warnings + - warnings properties: - provider: - type: string - type: - type: string - name: - $ref: '#/components/schemas/Name' - module: - type: string - mode: - type: string - instances: - type: array + errors: items: - $ref: '#/components/schemas/StateResourceInstances' - image: - type: string - description: Image of the resource type - format: uri - category: - type: string - description: Category of the resource type - short_description: - type: string - description: Short description of the resource type documentation - description: - $ref: '#/components/schemas/Description' - keywords: + type: string type: array - description: Set of keywords to categorize the resource type + warnings: items: type: string - project_canonical: - type: string - description: Project canonical in which this resource is used - description: The Resource of a State in the Inventory of the Project's environment - StateResourceInstances: - title: State Resource Instances + type: array + required: + - errors + - warnings + title: ServiceCatalogValidationResult type: object + ServiceCatalogDependency: + description: Service Catalog Dependency identifies ServiceCatalog being dependency of other + example: + ref: ref + required: true properties: - attributes: - type: object - properties: {} - custom_attributes: - type: object - properties: {} - description: The Instances inside Resources of a State in the Inventory of the - Project's environment - StateLock: - title: State Lock + ref: + type: string + required: + type: boolean + title: ServiceCatalogDependency type: object + ServiceCatalogSource: + example: + branch: branch + canonical: canonical + changes: + created: + - author: author + blueprint: true + canonical: canonical + cloud_providers: + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + created_at: 0 + dependencies: + - ref: ref + required: true + - ref: ref + required: true + description: description + directory: directory + form_enabled: true + id: 1 + image: https://openapi-generator.tech + import_status: succeeded + keywords: + - keywords + - keywords + name: name + organization_canonical: organization_canonical + quota_enabled: true + readme: readme + ref: ref + service_catalog_source_canonical: service_catalog_source_canonical + team: + canonical: canonical + created_at: 0 + id: 1 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + updated_at: 0 + technologies: + - technology: technology + version: version + - technology: technology + version: version + trusted: true + updated_at: 0 + visibility: visibility + - author: author + blueprint: true + canonical: canonical + cloud_providers: + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + created_at: 0 + dependencies: + - ref: ref + required: true + - ref: ref + required: true + description: description + directory: directory + form_enabled: true + id: 1 + image: https://openapi-generator.tech + import_status: succeeded + keywords: + - keywords + - keywords + name: name + organization_canonical: organization_canonical + quota_enabled: true + readme: readme + ref: ref + service_catalog_source_canonical: service_catalog_source_canonical + team: + canonical: canonical + created_at: 0 + id: 1 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + updated_at: 0 + technologies: + - technology: technology + version: version + - technology: technology + version: version + trusted: true + updated_at: 0 + visibility: visibility + deleted: + - author: author + blueprint: true + canonical: canonical + cloud_providers: + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + created_at: 0 + dependencies: + - ref: ref + required: true + - ref: ref + required: true + description: description + directory: directory + form_enabled: true + id: 1 + image: https://openapi-generator.tech + import_status: succeeded + keywords: + - keywords + - keywords + name: name + organization_canonical: organization_canonical + quota_enabled: true + readme: readme + ref: ref + service_catalog_source_canonical: service_catalog_source_canonical + team: + canonical: canonical + created_at: 0 + id: 1 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + updated_at: 0 + technologies: + - technology: technology + version: version + - technology: technology + version: version + trusted: true + updated_at: 0 + visibility: visibility + - author: author + blueprint: true + canonical: canonical + cloud_providers: + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + created_at: 0 + dependencies: + - ref: ref + required: true + - ref: ref + required: true + description: description + directory: directory + form_enabled: true + id: 1 + image: https://openapi-generator.tech + import_status: succeeded + keywords: + - keywords + - keywords + name: name + organization_canonical: organization_canonical + quota_enabled: true + readme: readme + ref: ref + service_catalog_source_canonical: service_catalog_source_canonical + team: + canonical: canonical + created_at: 0 + id: 1 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + updated_at: 0 + technologies: + - technology: technology + version: version + - technology: technology + version: version + trusted: true + updated_at: 0 + visibility: visibility + updated: + - author: author + blueprint: true + canonical: canonical + cloud_providers: + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + created_at: 0 + dependencies: + - ref: ref + required: true + - ref: ref + required: true + description: description + directory: directory + form_enabled: true + id: 1 + image: https://openapi-generator.tech + import_status: succeeded + keywords: + - keywords + - keywords + name: name + organization_canonical: organization_canonical + quota_enabled: true + readme: readme + ref: ref + service_catalog_source_canonical: service_catalog_source_canonical + team: + canonical: canonical + created_at: 0 + id: 1 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + updated_at: 0 + technologies: + - technology: technology + version: version + - technology: technology + version: version + trusted: true + updated_at: 0 + visibility: visibility + - author: author + blueprint: true + canonical: canonical + cloud_providers: + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + created_at: 0 + dependencies: + - ref: ref + required: true + - ref: ref + required: true + description: description + directory: directory + form_enabled: true + id: 1 + image: https://openapi-generator.tech + import_status: succeeded + keywords: + - keywords + - keywords + name: name + organization_canonical: organization_canonical + quota_enabled: true + readme: readme + ref: ref + service_catalog_source_canonical: service_catalog_source_canonical + team: + canonical: canonical + created_at: 0 + id: 1 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + updated_at: 0 + technologies: + - technology: technology + version: version + - technology: technology + version: version + trusted: true + updated_at: 0 + visibility: visibility + created_at: 0 + credential_canonical: credential_canonical + id: 1 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + refreshed_at: 0 + service_catalogs: + - author: author + blueprint: true + canonical: canonical + cloud_providers: + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + created_at: 0 + dependencies: + - ref: ref + required: true + - ref: ref + required: true + description: description + directory: directory + form_enabled: true + id: 1 + image: https://openapi-generator.tech + import_status: succeeded + keywords: + - keywords + - keywords + name: name + organization_canonical: organization_canonical + quota_enabled: true + readme: readme + ref: ref + service_catalog_source_canonical: service_catalog_source_canonical + team: + canonical: canonical + created_at: 0 + id: 1 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + updated_at: 0 + technologies: + - technology: technology + version: version + - technology: technology + version: version + trusted: true + updated_at: 0 + visibility: visibility + - author: author + blueprint: true + canonical: canonical + cloud_providers: + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + created_at: 0 + dependencies: + - ref: ref + required: true + - ref: ref + required: true + description: description + directory: directory + form_enabled: true + id: 1 + image: https://openapi-generator.tech + import_status: succeeded + keywords: + - keywords + - keywords + name: name + organization_canonical: organization_canonical + quota_enabled: true + readme: readme + ref: ref + service_catalog_source_canonical: service_catalog_source_canonical + team: + canonical: canonical + created_at: 0 + id: 1 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + updated_at: 0 + technologies: + - technology: technology + version: version + - technology: technology + version: version + trusted: true + updated_at: 0 + visibility: visibility + stack_count: 0 + updated_at: 0 + url: url properties: - id: - type: string - operation: - type: string - info: - type: string - who: - type: string - version: - type: string - created: + branch: type: string - description: The Lock management of a State in the Inventory of the Project's - environment - NewInventoryResource: - title: New Inventory Resource - required: - - label - - name - - provider - - type - type: object - properties: - provider: + canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ type: string - description: The provider of the created Resource - type: + changes: + $ref: '#/components/schemas/ServiceCatalogChanges' + created_at: + format: uint64 + minimum: 0 + type: integer + credential_canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ type: string - description: The type of the resource + id: + format: uint32 + minimum: 1 + type: integer name: - $ref: '#/components/schemas/Name' - custom_attributes: - type: object - properties: {} - description: "List of attributes (key value object) of the Resource, can\ - \ be anything" - example: - custom: attribute - another: one - label: type: string - description: A way to distinguish and categorize resources - example: my-label - memory: + on_create_team: null + on_create_visibility: null + owner: + $ref: '#/components/schemas/User' + refreshed_at: + description: The last time the Service Catalog Source was (successfully) refreshed. + format: uint64 minimum: 0 type: integer - description: The amount of memory that it has in MB - format: uint64 - cpu: + service_catalogs: + description: Represents list of service catalogs in the service catalog source. Not used during update action on a service catalog source. + items: + $ref: '#/components/schemas/ServiceCatalog' + type: array + stack_count: + format: uint32 minimum: 0 type: integer - description: The amount of cpu cores that it has in units + updated_at: format: uint64 - storage: minimum: 0 type: integer - description: The amount of storage that it has in MB - format: uint64 - description: The Resource of the Inventory representing an element of your infrastructure - InventoryResource: - title: Inventory Resource + url: + pattern: ^((/|~)[^/]*)+.(\.git)|(([\w\]+@[\w\.]+))(:(//)?)([\w\.@\:/\-~]+)(/)? + type: string required: - - name - - provider - - type + - canonical + - id + - name + - owner + - stack_count + - url + title: ServiceCatalogSource type: object + ServiceCatalogTechnology: + description: ServiceCatalogTechnology is a Technology of the Service Catalog + example: + technology: technology + version: version properties: - id: - $ref: '#/components/schemas/ID' - provider: - type: string - description: The provider of the created Resource - type: - type: string - description: The type of the resource - name: - $ref: '#/components/schemas/Name' - mode: + technology: type: string - description: The way this resource is handled - module: + version: type: string - description: The module it belongs to - custom_attributes: - type: object - properties: {} - description: "List of attributes of the Resource, can be anything" - label: + title: ServiceCatalogTechnology + type: object + SimpleTeam: + description: The entity which represents the information of a team a bit simplified. + example: + canonical: canonical + created_at: 0 + id: 1 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + updated_at: 0 + properties: + canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ type: string - description: A way to distinguish and categorize resources - memory: - minimum: 0 - type: integer - description: The amount of memory that it has in MB + created_at: format: uint64 - cpu: minimum: 0 type: integer - description: The amount of cpu that it has in units + id: + format: uint32 + minimum: 1 + type: integer + name: + minLength: 3 + type: string + owner: + $ref: '#/components/schemas/User' + updated_at: format: uint64 - storage: minimum: 0 type: integer - description: The amount of storage that it has in MB - format: uint64 - attributes: - type: object + required: + - canonical + - created_at + - id + - name + - updated_at + title: SimpleTeam + type: object + State: + description: The State of an Inventory of the Project's environment + properties: + lineage: + type: string + outputs: properties: {} - image: + type: object + resources: + items: + $ref: '#/components/schemas/StateResource' + type: array + serial: + format: uint32 + type: integer + terraform_version: type: string - description: Image of the resource type - format: uri - category: + version: + format: uint32 + type: integer + title: State + type: object + StateLock: + description: The Lock management of a State in the Inventory of the Project's environment + example: + created: created + id: id + info: info + operation: operation + version: version + who: who + properties: + created: + type: string + id: + type: string + info: type: string + operation: + type: string + version: + type: string + who: + type: string + title: State Lock + type: object + StateResource: + description: The Resource of a State in the Inventory of the Project's environment + properties: + category: description: Category of the resource type - short_description: type: string - description: Short description of the resource type documentation description: - $ref: '#/components/schemas/Description' - keywords: + description: Full description of the resource type documentation + type: string + image: + description: Image of the resource type + format: uri + type: string + instances: + items: + $ref: '#/components/schemas/StateResourceInstances' type: array + keywords: description: Set of keywords to categorize the resource type items: type: string - project_canonical: - $ref: '#/components/schemas/ProjectCanonical' - environment_canonical: - $ref: '#/components/schemas/EnvironmentCanonical' - description: The Resource of the Inventory representing an element of your infrastructure - InventoryResourceLabel: - title: Inventory Resource Label - required: - - cpu - - memory - - name - - storage - type: object - properties: - name: - $ref: '#/components/schemas/Name' - memory: - minimum: 0 - type: integer - description: The aggregated amount of memory of resources having the label - in MB - format: uint64 - cpu: - minimum: 0 - type: integer - description: The aggregated amount of cpu of resources having the label - format: uint64 - storage: - minimum: 0 - type: integer - description: The aggregated amount of storage of resources having the label - in MB - format: uint64 - description: Aggregated information of resources having a label - NewResourcePool: - title: New Resource Pool - required: - - label - - name - type: object - properties: + type: array + mode: + type: string + module: + type: string name: - $ref: '#/components/schemas/Name' - label: type: string - description: The Resource Pool defines the basic needs to create/update a resource - pool - ResourcePool: - title: Resource Pool - required: - - allocated_cpu - - allocated_memory - - allocated_storage - - canonical - - cpu - - label - - memory - - name - - storage - - used_cpu - - used_memory - - used_storage + project_canonical: + description: Project canonical in which this resource is used + type: string + provider: + type: string + short_description: + description: Short description of the resource type documentation + type: string + type: + type: string + title: State Resource type: object + StateResourceInstances: + description: The Instances inside Resources of a State in the Inventory of the Project's environment properties: - id: - $ref: '#/components/schemas/ID' - name: - $ref: '#/components/schemas/Name' - canonical: - $ref: '#/components/schemas/Canonical' - label: - type: string - description: The label to which match the resources - memory: - minimum: 0 - type: integer - description: The amount of memory that it has in MB + attributes: + properties: {} + type: object + custom_attributes: + properties: {} + type: object + title: State Resource Instances + type: object + Subscription: + description: | + It reflects the relation between an Organization and a Plan which + could be the Free Trial or others, for more info check https://www.cycloid.io/pricing + example: + current_members: 0 + expires_at: 0 + members_count: 0 + plan: + canonical: canonical + name: name + properties: + current_members: format: uint64 - cpu: minimum: 0 type: integer - description: The amount of cpu that it has in units + expires_at: format: uint64 - storage: minimum: 0 type: integer - description: The amount of storage that it has in MB + members_count: format: uint64 - used_memory: minimum: 0 type: integer - description: The amount of memory that is used in MB + plan: + $ref: '#/components/schemas/SubscriptionPlan' + required: + - expires_at + - plan + title: Subscription + type: object + SubscriptionPlan: + description: It reflects the Plan used for the subscription + example: + canonical: canonical + name: name + properties: + canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + name: + minLength: 3 + type: string + required: + - canonical + - name + title: SubscriptionPlan + type: object + Summary: + example: + config_repositories: 5 + credentials: 1 + pipelines: 6 + projects: 0 + roles: 9 + service_catalog_sources: 5 + service_catalogs: 3 + teams: 2 + users: 7 + properties: + config_repositories: format: uint64 - used_cpu: - minimum: 0 type: integer - description: The amount of CPU that is used in units + credentials: format: uint64 - used_storage: - minimum: 0 type: integer - description: The amount of Storage that is used in MB + pipelines: format: uint64 - allocated_memory: - minimum: 0 type: integer - description: The amount of memory that is allocated (quotas defined) in - MB + projects: format: uint64 - allocated_cpu: - minimum: 0 type: integer - description: The amount of CPU that is allocated (quotas defined) in units + roles: format: uint64 - allocated_storage: - minimum: 0 type: integer - description: The amount of Storage that is allocated (quotas defined) in - MB + service_catalog_sources: format: uint64 - description: A Resource Pool holds the information of all the Resources that - have the same label. The Used is the amount used by Projects using Quotas - and Allocated is the amount declared by Quotas - NewQuota: - title: New Quota - required: - - cpu - - memory - - resource_pool_canonical - - storage - - team_canonical - type: object - properties: - memory: - minimum: 0 type: integer - description: The amount of memory that it has in MB + service_catalogs: format: uint64 - cpu: - minimum: 0 type: integer - description: The amount of cpu that it has in units + teams: format: uint64 - storage: - minimum: 0 type: integer - description: The amount of storage that it has in MB + users: format: uint64 - resource_pool_canonical: - $ref: '#/components/schemas/Canonical' - team_canonical: - $ref: '#/components/schemas/Canonical' - description: The Quota defines the basic needs to create a quota - UpdateQuota: - title: Update Quota + type: integer required: - - cpu - - memory - - storage + - config_repositories + - credentials + - pipelines + - projects + - roles + - service_catalog_sources + - service_catalogs + - teams + - users + title: Summary of the organization type: object + SwiftRemoteTFState: + allOf: + - $ref: '#/components/schemas/ExternalBackendConfiguration' + - properties: + container: + description: | + The Swift container containing objects + type: string + object: + description: | + The swift object uniquely identifying an object in a container + type: string + region: + description: | + The Swift region where the resource exists + type: string + skip_verify_ssl: + description: | + Set this to `true` to not verify SSL certificates + type: boolean + required: + - container + - region + type: object + description: | + Deprecated. Please use SwiftStorage. + Representation of Swift remote tf state for external backend. + Must be matched with a credential of the "swift" type. + SwiftStorage: + description: | + Representation of Swift remote tf state for external backend. + Must be matched with a credential of the "swift" type. + discriminator: + propertyName: engine + example: + engine: engine properties: - memory: - minimum: 0 - type: integer - description: The amount of memory that it has in MB - format: uint64 - cpu: - minimum: 0 - type: integer - description: The amount of cpu that it has in units - format: uint64 - storage: - minimum: 0 - type: integer - description: The amount of storage that it has in MB - format: uint64 - description: The Quota defines the basic needs to update a create - Quota: - title: Quota + bucket: + description: | + The GCP bucket containing objects + type: string + container: + description: | + The Swift container containing objects + type: string + endpoint: + description: | + A custom endpoint for the S3 API (default: s3.amazonaws.com) + type: string + engine: + type: string + key: + description: | + The S3 Key uniquely identifies an object in a bucket + type: string + object: + description: | + The swift object uniquely identifying an object in a container, + will be required if the EB is not default + type: string + region: + description: | + The Swift region where the resource exists + type: string + s3_force_path_style: + description: | + Always use path-style S3 URLs (https:/// instead of https://.) + type: boolean + skip_verify_ssl: + description: | + Set this to `true` to not verify SSL certificates + type: boolean + required: + - container + - region + type: object + Tag: + description: Key and value pair defined with the widely adopted name, tag. + example: + key: key + value: value + properties: + key: + maxLength: 254 + minLength: 1 + type: string + value: + maxLength: 254 + pattern: ^(?:[\w\-+=.:/@ ]*)$ + type: string + required: + - key + - value + title: Key and value pair + type: object + TaskConfig: + description: The configuration of a concourse task. + properties: + image: + type: string + inputs: + items: + $ref: '#/components/schemas/TaskInputConfig' + type: array + params: + additionalProperties: + type: string + type: object + platform: + type: string + run: + $ref: '#/components/schemas/TaskRunConfig' + tags: + items: + type: string + type: array + title: TaskConfig + type: object + TaskInputConfig: + description: The configuration of inputs for concourse tasks. + properties: + name: + type: string + path: + type: string + required: + - name + title: TaskInputConfig + type: object + TaskPlan: + description: The task plan. + properties: + config: + $ref: '#/components/schemas/TaskConfig' + config_path: + type: string + image_artifact_name: + type: string + input_mapping: + additionalProperties: + type: string + type: object + name: + type: string + output_mapping: + additionalProperties: + type: string + type: object + params: + additionalProperties: + properties: {} + type: object + type: object + privileged: + type: boolean + tags: + items: + type: string + type: array + versioned_resource_types: + items: + $ref: '#/components/schemas/VersionedResourceType' + type: array required: - - cpu - - id - - memory - - resource_pool - - storage - - team - - used_cpu - - used_memory - - used_storage + - privileged + title: TaskPlan + type: object + TaskRunConfig: + description: The configuration of a concourse task-run. + properties: + args: + items: + type: string + type: array + path: + minLength: 3 + type: string + title: TaskRunConfig type: object + Team: + description: The entity which represents the information of a team. + example: + canonical: canonical + created_at: 0 + id: 1 + member_count: 5 + members_preview: + - created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + invited_by: + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + invitation_email: invitation_email + invitation_resent_at: 0 + invitation_state: pending + invited_at: 0 + invited_by: null + last_login_at: 0 + locale: en + mfa_enabled: true + picture_url: https://openapi-generator.tech + role: + canonical: canonical + created_at: 0 + default: true + description: description + id: 1 + name: name + rules: + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + updated_at: 0 + updated_at: 0 + username: username + last_login_at: 0 + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + - created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + invited_by: + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + invitation_email: invitation_email + invitation_resent_at: 0 + invitation_state: pending + invited_at: 0 + invited_by: null + last_login_at: 0 + locale: en + mfa_enabled: true + picture_url: https://openapi-generator.tech + role: + canonical: canonical + created_at: 0 + default: true + description: description + id: 1 + name: name + rules: + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + updated_at: 0 + updated_at: 0 + username: username + last_login_at: 0 + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + - created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + invited_by: + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + invitation_email: invitation_email + invitation_resent_at: 0 + invitation_state: pending + invited_at: 0 + invited_by: null + last_login_at: 0 + locale: en + mfa_enabled: true + picture_url: https://openapi-generator.tech + role: + canonical: canonical + created_at: 0 + default: true + description: description + id: 1 + name: name + rules: + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + updated_at: 0 + updated_at: 0 + username: username + last_login_at: 0 + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + - created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + invited_by: + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + invitation_email: invitation_email + invitation_resent_at: 0 + invitation_state: pending + invited_at: 0 + invited_by: null + last_login_at: 0 + locale: en + mfa_enabled: true + picture_url: https://openapi-generator.tech + role: + canonical: canonical + created_at: 0 + default: true + description: description + id: 1 + name: name + rules: + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + updated_at: 0 + updated_at: 0 + username: username + last_login_at: 0 + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + - created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + invited_by: + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + invitation_email: invitation_email + invitation_resent_at: 0 + invitation_state: pending + invited_at: 0 + invited_by: null + last_login_at: 0 + locale: en + mfa_enabled: true + picture_url: https://openapi-generator.tech + role: + canonical: canonical + created_at: 0 + default: true + description: description + id: 1 + name: name + rules: + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + updated_at: 0 + updated_at: 0 + username: username + last_login_at: 0 + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + roles: + - canonical: canonical + created_at: 0 + default: true + description: description + id: 1 + name: name + rules: + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + updated_at: 0 + - canonical: canonical + created_at: 0 + default: true + description: description + id: 1 + name: name + rules: + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + updated_at: 0 + updated_at: 0 properties: - id: - $ref: '#/components/schemas/ID' - memory: - minimum: 0 - type: integer - description: The amount of memory that it has in MB - format: uint64 - cpu: - minimum: 0 - type: integer - description: The amount of cpu that it has in units + canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + created_at: format: uint64 - storage: minimum: 0 type: integer - description: The amount of storage that it has in MB - format: uint64 - used_memory: - minimum: 0 + id: + format: uint32 + minimum: 1 type: integer - description: The amount of memory that is used in MB - format: uint64 - used_cpu: - minimum: 0 + member_count: + description: The total count of members of the team. + format: uint32 type: integer - description: The amount of CPU that is used in units + members_preview: + description: Preview of the list of team members, limited to 6 members. + items: + $ref: '#/components/schemas/MemberTeam' + maxItems: 6 + type: array + name: + minLength: 3 + type: string + owner: + $ref: '#/components/schemas/User' + roles: + items: + $ref: '#/components/schemas/Role' + minItems: 1 + type: array + updated_at: format: uint64 - used_storage: minimum: 0 type: integer - description: The amount of Storage that is used in MB - format: uint64 - team: - $ref: '#/components/schemas/SimpleTeam' - resource_pool: - $ref: '#/components/schemas/ResourcePool' - description: A Quota holds the information of the restrictions applied to a - Team having as source a Resource Pool - ProjectEnvironmentConsumption: - title: ProjectEnvironmentConsumption required: - - cpu - - environment - - id - - memory - - project - - storage + - canonical + - created_at + - id + - member_count + - members_preview + - name + - roles + - updated_at + title: Team type: object + TerraformHCLConfig: + description: The HCL config for Terraform + example: + config: config properties: - id: - $ref: '#/components/schemas/ID' - memory: - minimum: 0 - type: integer - description: The amount of memory that it has in MB - format: uint64 - cpu: - minimum: 0 - type: integer - description: The amount of cpu that it has in units - format: uint64 - storage: - minimum: 0 - type: integer - description: The amount of storage that it has in MB - format: uint64 - project: - $ref: '#/components/schemas/ProjectSimple' - environment: - $ref: '#/components/schemas/Environment' - description: The Consumption of a Project in an Environment - ProjectSimple: - title: ProjectSimple + config: + type: string required: - - canonical - - created_at - - id - - name - - updated_at + - config + title: TerraformHCLConfig type: object + TerraformImage: + description: The Image from the TF structure + example: + image: image properties: - id: - $ref: '#/components/schemas/ID' - canonical: - $ref: '#/components/schemas/Canonical' - name: - $ref: '#/components/schemas/Name' - description: - $ref: '#/components/schemas/Description' - owner: - $ref: '#/components/schemas/User' - created_at: - $ref: '#/components/schemas/CreatedAt' - updated_at: - $ref: '#/components/schemas/UpdatedAt' - import_status: + image: + format: byte + pattern: ^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$ + type: string + required: + - image + title: TerraformImage + type: object + TerraformJSONConfig: + description: The JSON config for Terraform + example: + config: '{}' + properties: + config: + properties: {} + type: object + required: + - config + title: TerraformJSONConfig + type: object + TerraformJSONDiagram: + description: The JSON Diagram structure + title: TerraformDiagram + type: object + TerraformPlanInput: + description: Input for endpoints that require a Terraform plan. + properties: + tfplan: + description: 'Terraform plan file in escaped JSON format. See more: https://www.terraform.io/internals/json-format' type: string - description: The import process status. - enum: - - succeeded - - failed - - importing - favorite: - type: boolean - description: The entity which represents minimal information of a project. - Appearance: - title: Appearance required: - - canonical - - color - - display_name - - favicon - - footer - - logo - - name - - tab_title + - tfplan + title: TerraformPlanInput type: object + TerraformProvider: + description: Provider of infrastructure + example: + abbreviation: abbreviation + canonical: canonical + cloud: true + name: name + schema: '{}' properties: + abbreviation: + type: string canonical: - $ref: '#/components/schemas/Canonical' - name: - $ref: '#/components/schemas/Name' - display_name: - maxLength: 50 - minLength: 1 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ type: string - tab_title: - maxLength: 50 - minLength: 1 + cloud: + type: boolean + name: type: string - color: - required: - - b - - g - - r + schema: + properties: {} type: object - properties: - r: - maximum: 255 - minimum: 0 - type: integer - description: Red color value of the RGB color - format: uint32 - g: - maximum: 255 - minimum: 0 - type: integer - description: Green color value of the RGB color - format: uint32 - b: - maximum: 255 - minimum: 0 - type: integer - description: Blue color value of the RGB color - format: uint32 - logo: + required: + - abbreviation + - canonical + - cloud + - name + - schema + title: Provider + type: object + TerraformProviderCycloid: + title: TerraformProviderCycloid + required: + - url + - jwt + - organization_canonical + properties: + jwt: type: string - format: uri - favicon: + organization_canonical: + type: string + url: + type: string + TerraformProviderResource: + description: A Resource of a Provider + example: + attributes: + important: + - important + - important + normalized_status: '{}' + status: status + canonical: canonical + category: category + description: description + image: https://openapi-generator.tech + is_edge: true + is_node: true + keywords: + - keywords + - keywords + schema: '{}' + short_description: short_description + properties: + attributes: + $ref: '#/components/schemas/TerraformProviderResourceAttributes' + canonical: + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + category: type: string + description: + type: string + image: format: uri - footer: - maxLength: 1000 - minLength: 0 type: string - is_active: + is_edge: type: boolean - created_at: - $ref: '#/components/schemas/CreatedAt' - updated_at: - $ref: '#/components/schemas/UpdatedAt' - description: "An Appearance holds the values of the branding configuration,\ - \ which are rendered across an organization" - NewAppearance: - title: Appearance + is_node: + type: boolean + keywords: + items: + type: string + type: array + schema: + properties: {} + type: object + short_description: + type: string required: - - color - - display_name - - favicon - - footer - - logo - - name - - tab_title + - attributes + - canonical + - category + - description + - is_edge + - is_node + - keywords + - schema + - short_description + title: Resource type: object + TerraformProviderResourceAttributes: + description: Holds specific logic of some attributes + example: + important: + - important + - important + normalized_status: '{}' + status: status properties: - name: - $ref: '#/components/schemas/Name' - display_name: - maxLength: 50 - minLength: 1 + important: + items: + type: string + type: array + normalized_status: + description: Is a KV where the K is the resource possible value and the Value is the normalized value of it. The current possible values are "unknown", "pending", "running", "stopping" + properties: {} + type: object + status: type: string - tab_title: - maxLength: 50 - minLength: 1 + title: ResourceAttributes + type: object + TerraformProviderResourceSimple: + description: A Resource of a Provider without the config + example: + attributes: + important: + - important + - important + normalized_status: '{}' + status: status + canonical: canonical + category: category + description: description + image: https://openapi-generator.tech + is_edge: true + is_node: true + keywords: + - keywords + - keywords + short_description: short_description + properties: + attributes: + $ref: '#/components/schemas/TerraformProviderResourceAttributes' + canonical: + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ type: string - color: - required: - - b - - g - - r - type: object - properties: - r: - maximum: 255 - minimum: 0 - type: integer - description: Red color value of the RGB color - format: uint32 - g: - maximum: 255 - minimum: 0 - type: integer - description: Green color value of the RGB color - format: uint32 - b: - maximum: 255 - minimum: 0 - type: integer - description: Blue color value of the RGB color - format: uint32 - logo: + category: + type: string + description: + type: string + image: + format: uri + type: string + is_edge: + type: boolean + is_node: + type: boolean + keywords: + items: + type: string + type: array + short_description: type: string - format: uri - favicon: + required: + - attributes + - canonical + - category + - description + - is_edge + - is_node + - keywords + - short_description + title: ResourceSimple + type: object + TerraformProviderSimple: + description: Provider of infrastructure without the config + example: + abbreviation: abbreviation + canonical: canonical + cloud: true + name: name + properties: + abbreviation: type: string - format: uri - footer: - maxLength: 1000 - minLength: 0 + canonical: + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ type: string - description: "An Appearance holds the values of the branding configuration,\ - \ which are rendered across an organization" - Canonical: - title: Canonical - maxLength: 100 - minLength: 3 - pattern: "^[a-z0-9]+[a-z0-9\\-_]+[a-z0-9]+$" - type: string - description: The canonical of an entity - ProjectCanonical: - title: ProjectCanonical - maxLength: 100 - minLength: 1 - pattern: "(^[a-z0-9]+(([a-z0-9\\-_]+)?[a-z0-9]+)?$)" - type: string - description: The canonical of an entity - EnvironmentCanonical: - title: EnvironmentCanonical - maxLength: 100 - minLength: 1 - pattern: "^[\\da-zA-Z]+(?:(?:[\\da-zA-Z\\-._]+)?[\\da-zA-Z])?$" - type: string - description: The canonical of an entity - AppearanceCanonical: - maxLength: 100 - minLength: 1 - pattern: "^[a-z0-9]+[a-z0-9\\-_]+[a-z0-9]+$" - type: string - Description: - title: Description - type: string - description: The description of an entity - Owner: - type: string - maxLength: 100 - minLength: 3 - pattern: "^[a-z0-9]+[a-z0-9\\-_]+[a-z0-9]+$" - description: | - User canonical that owns this entity. If omitted then the person creating this - entity will be assigned as owner. When a user is the owner of the entity he has - all the permissions on it. - In case of API keys, the owner of API key is assigned as an owner. If - API key has no owner, then no owner is set for entity as well. - GitURL: - pattern: '^((/|~)[^/]*)+.(\.git)|(([\w\]+@[\w\.]+))(:(//)?)([\w\.@\:/\-~]+)(/)?' - type: string - description: | - GitURL represents all git URL formats we accept. - Branch: - type: string - description: Branch needs to be valid git repository branch - Name: - type: string - minLength: 1 - description: The name of an entity - ID: - minimum: 1 - type: integer - format: uint32 - description: ID represents the id of the entity - CreatedAt: - minimum: 0 - type: integer - format: uint64 - description: The time of creation of the entity - UpdatedAt: - minimum: 0 - type: integer - format: uint64 - description: The time of the last update of the entity - Default: - type: boolean - description: Whether the given entity is default one - responses: - not_found_entity_in_path: - description: The response sent when any of the entities present in the path - is not found. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Entity not found - code: NotFoundEntity - not_enough_permissions: - description: "The authenticated user cannot perform the operation because, it\ - \ doesn't have permissions for such operation." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Not enough permissions to perform the operation - code: Unauthorized - unexpected_error: - description: "The response sent when an unexpected error happened, as known\ - \ as an internal server error." - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: Server Internal error - code: Unexpected - unprocessable_entity: - description: All the custom errors that are generated from the Cycloid API - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - unauthenticated: - description: The user cannot be authenticated with the credentials which she/he - has used. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - code: Unauthenticated - message: invalid credentials - required_content_length_header: - description: The request has a body but it doesn't have a Content-Length header. - content: {} - retry_operation: - description: The operation couldn't be executed or completed and it should retried. - headers: - Retry-After: - description: The number of seconds to wait until retry the request - schema: - type: integer - format: uint16 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - code: RetryOperation - message: Operation must be retried. - locked_state: - description: The operation couldn't be executed or completed because the state - is locked. - headers: - Content-Length: - description: The length of the response body in octets (8-bit bytes). - schema: - type: integer - format: uint64 - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorPayload' - example: - errors: - - message: some error - code: SomeCode - parameters: - page_index: - name: page_index - in: query - description: The page number to request. The first page is 1. - schema: - type: integer - format: uint32 - default: 1 - page_size: - name: page_size - in: query - description: The number of items at most which the response can have. - schema: - type: integer - format: uint32 - default: 1000 - default: - name: default - in: query - description: Value describing whether to return default - schema: - $ref: '#/components/schemas/Default' - organization_canonical_query: - name: organization_canonical - in: query - description: A canonical of a organization used for filtering. - schema: - $ref: '#/components/schemas/Canonical' - child_canonical_query: - name: child_canonical - in: query - description: A canonical of a child organization used for filtering. - schema: - $ref: '#/components/schemas/Description' - project_query: - name: project - in: query - description: A canonical of a project used for filtering. - schema: - $ref: '#/components/schemas/ProjectCanonical' - project_name_query: - name: project_name - in: query - description: Search by project's name - schema: - $ref: '#/components/schemas/Name' - project_created_at_query: - name: project_created_at - in: query - description: Search by project's creation date - schema: - type: integer - format: uint64 - project_description_query: - name: project_description - in: query - description: Search by project's description - schema: - $ref: '#/components/schemas/Description' - project_config_repository_canonical_query: - name: project_config_repository_canonical - in: query - description: Search by project's config repository's canonical - schema: - $ref: '#/components/schemas/Canonical' - team_name_query: - name: team_name - in: query - description: Search by team's name - schema: - type: string - team_created_at_query: - name: team_created_at - in: query - description: Search by team's creation date - schema: - type: integer - format: uint64 - team_description_query: - name: team_description - in: query - description: Search by team's description - schema: - type: string - service_catalog_status_query: - name: service_catalog_status - in: query - description: The status of the catalog service used for filtering. - schema: - type: string - service_catalog_own_query: - name: service_catalog_own - in: query - description: | - Filters the Service Catalogs to only show the ones owned by the User Organization - schema: - type: boolean - service_catalog_trusted_query: - name: service_catalog_trusted - in: query - description: | - Filters the Service Catalogs to only show the ones that are from trusted source (Cycloid) - schema: - type: boolean - service_catalog_template_query: - name: service_catalog_template - in: query - description: | - Filters the Service Catalogs to only show the ones that are templates - schema: - type: boolean - default: false - owner_query: - name: user_id - in: query - description: Search by entity's owner - schema: - type: integer - format: uint32 - order_by_query: - name: order_by - in: query + cloud: + type: boolean + name: + type: string + required: + - abbreviation + - canonical + - cloud + - name + title: TerraformProviderSimple + type: object + TerraformValidationResult: + description: The result of the validation, if errors is empty means that is correct + example: + errors: + - errors + - errors + properties: + errors: + items: + type: string + type: array + required: + - errors + title: TerraformValidationResult + type: object + TimeoutPlan: + description: The plan to ensure to be run. + properties: + next: + $ref: '#/components/schemas/Plan' + step: + $ref: '#/components/schemas/Plan' + required: + - next + - step + title: EnsurePlan + type: object + TryPlan: + description: The plan to ensure to be run. + properties: + next: + $ref: '#/components/schemas/Plan' + step: + $ref: '#/components/schemas/Plan' + required: + - next + - step + title: EnsurePlan + type: object + UpdateAPIKey: + description: "The entity which represents the information of the API key to be updated. \nThe API key rules are immutable and cannot be changed.\n" + properties: + description: + type: string + name: + minLength: 3 + type: string + owner: + description: | + User canonical that owns this API key. Only the owner or an + organization admin can update such a field. When a user is the owner + of a API key it has all the permission on it. + type: string + required: + - name + title: Update API key + type: object + UpdateCloudCostManagementAccount: + description: Update a Cloud Cost Management account to connect CP. + properties: + enabled: + type: boolean + external_backend: + $ref: '#/components/schemas/UpdateExternalBackend' + name: + description: A user-defined name for the account + type: string + required: + - enabled + - external_backend + title: Update CloudCostManagementAccount + type: object + UpdateCloudCostManagementLinkedAccount: description: | - Allows to order the list of items. Example usage: field_name:asc - schema: - type: string - concourse_page_since: - name: concourse_page_since - in: query - description: The time after which we should look for entities to return. - schema: - type: integer - format: uint64 - default: 0 - concourse_page_until: - name: concourse_page_until - in: query - description: The time before which we should look for entities to return. - schema: - type: integer - format: uint64 - default: 0 - concourse_page_limit: - name: concourse_page_limit - in: query - description: The number of items at most which the response can have. - schema: - type: integer - format: uint64 - default: 10 - cost_tag_key: - name: key - in: query - description: The key of a tag - schema: - maxLength: 127 - minLength: 3 - pattern: "^[\\w\\-+=.:/@ ]+$" - type: string - cost_tag_key_value_filter: - name: tag - in: query - description: The key and value of a tag concatenated by a ;. - allowEmptyValue: false - style: form - explode: true - schema: - type: array - items: - maxLength: 127 - minLength: 4 - pattern: "^[^;]+;[^;]+$" + Attributes of a CCM linked accout that can be updated by a user. + properties: + name: + type: string + required: + - name + title: Update CloudCostManagementLinkedAccount + type: object + UpdateCloudCostManagementTagMapping: + description: Create or Update a Cloud Cost Management tag mapping for projects and environments + properties: + environment_regex: + type: string + environment_tags: + items: + type: string + type: array + project_regex: + type: string + project_tags: + items: + type: string + type: array + title: Create or Update CloudCostManagementTagMapping + type: object + UpdateConfigRepository: + properties: + branch: + type: string + credential_canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + default: + type: boolean + name: + type: string + url: + pattern: ^((/|~)[^/]*)+.(\.git)|(([\w\]+@[\w\.]+))(:(//)?)([\w\.@\:/\-~]+)(/)? + type: string + required: + - branch + - credential_canonical + - default + - name + - url + title: UpdateConfigRepository + type: object + UpdateCredential: + description: Represents the Credential + properties: + body: + $ref: '#/components/schemas/CredentialRaw' + canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + description: + type: string + name: + type: string + owner: + description: | + User canonical that owns this credential. When a user is the owner of a credential he has + all the permissions on it. + type: string + path: + pattern: '[a-zA-z0-9_\-./]' + type: string + type: + enum: + - ssh + - aws + - custom + - azure + - azure_storage + - gcp + - basic_auth + - elasticsearch + - vmware + type: string + required: + - canonical + - name + - path + - raw + - type + title: Credential + type: object + UpdateEnvironment: + description: Represent an entity necessary for environment update + properties: + cloud_provider_canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + color: + maxLength: 64 + type: string + icon: + maxLength: 64 + type: string + inputs: + description: | + The variables set within a form with the corresponding environment + canonical and use case + items: + $ref: '#/components/schemas/FormInput' + type: array + use_case: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + title: Update Environment + type: object + UpdateExternalBackend: + description: An external backend contains the configuration needed in order to be plugged into the Cycloid system. A backend is a general purpose concept, but Cycloid specifies which ones are supported and the list of those which are supported for every concrete feature. + properties: + aws_storage: + $ref: '#/components/schemas/AWSStorage' + configuration: + $ref: '#/components/schemas/ExternalBackendConfiguration' + credential_canonical: + description: | + The type of the credential must be one of: ["aws", "azure_storage", "elasticsearch", "gcp", "swift", "vmware"] + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + default: + description: Will mark this EB as default for the specific purpose + type: boolean + engine: + enum: + - aws_storage + - gcp_storage + - swift_storage + type: string + environment_canonical: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + gcp_storage: + $ref: '#/components/schemas/GCPStorage' + id: + format: uint32 + minimum: 1 + type: integer + project_canonical: + maxLength: 100 + minLength: 1 + pattern: (^[a-z0-9]+(([a-z0-9\-_]+)?[a-z0-9]+)?$) + type: string + purpose: + enum: + - events + - logs + - remote_tfstate + - cost_explorer + type: string + swift_storage: + $ref: '#/components/schemas/SwiftStorage' + required: + - configuration + - purpose + title: Update External backend + type: object + UpdateInfraPolicy: + description: Update a policy to control operations across infrastructure. + properties: + body: + description: The body field is the code in plain text that defines the rules for the policy. + type: string + description: + type: string + enabled: + type: boolean + name: + minLength: 3 + type: string + owner: + description: | + User canonical that owns this InfraPolicy. When a user is the + owner of an InfraPolicy it has all the permissions on it. + In the event where the Owner has been deleted then a new one can be assigned + or an empty canonical is allowed to not reset it. + maxLength: 100 + type: string + severity: + enum: + - critical + - warning + - advisory + type: string + required: + - body + - description + - enabled + - name + - owner + - severity + title: Update InfraPolicy + type: object + UpdateOrganization: + description: The entity which represents the information of an organization to be updated. + properties: + can_children_create_appearance: + type: boolean + mfa_enabled: + type: boolean + name: + minLength: 3 + type: string + quotas: + type: boolean + required: + - name + title: Update Organization + type: object + UpdatePipeline: + description: The entity which represents a new pipeline config to update in the application. + properties: + check_credentials: + type: boolean + passed_config: + type: string + yaml_vars: + type: string + required: + - passed_config + title: Update Pipeline + type: object + UpdateProject: + additionalProperties: false + description: The entity which represents the information of the project to be updated. + properties: + cloud_provider: + description: | + The cloud provider canonical that this project is using - between the + supported ones. + enum: + - aws + - google + - azurerm + - flexibleengine + - openstack type: string - cost_granularity_filter: - name: granularity - in: query - description: "Sets the cost granularity, it can be month, week, day." - required: true - allowEmptyValue: false - schema: - type: string - enum: - - month - - week - - day - cost_metrics_filter: - name: metrics - in: query - description: |- - Which metrics are returned in the query. For more information about blended and unblended rates, see https://aws.amazon.com/premiumsupport/knowledge-center/blended-rates-intro/. - Valid values are BlendedCost, UnblendedCost, and UsageQuantity. - If you return the UsageQuantity metric, the service aggregates all usage numbers without taking into account the units. For example, if you aggregate usageQuantity across all of EC2, the results aren't meaningful because EC2 compute hours and data transfer are measured in different units (for example, hours vs. GB). To get more meaningful UsageQuantity metrics, filter by UsageType or UsageTypeGroups. - required: true - allowEmptyValue: false - style: form - explode: true - schema: - uniqueItems: true - type: array - items: + config_repository_canonical: + description: | + The config_repository_canonical points to new Config Repository the project + will be using. If this value is filled and it's different from the + current one, the whole project will be migrated to new CR, meaning + configuration files will also be moved. + If the project didn't have config_repository_canonical set, this action will + only attach the project to the CR, it won't create/move any files. + In order to be sure everything works, make sure the + config_repository_canonical is pointing at the CR with the same git + repository that was used during project creation. + Although the config_repository_canonical is not marked as required, + it's actually required for projects that are already using CR. This + field not being required is only for compatibility with older projects, + which are not having CR yet. + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + description: + type: string + name: + minLength: 1 + type: string + owner: + description: | + User canonical that owns this project. Only the owner or an + organization admin can update such a field. When a user is the owner + of a project it has all the permission on it. + type: string + service_catalog_ref: + description: It's the ref of the Service Catalog, like 'cycloidio:stack-magento' + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+:[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + updated_at: + description: "This will be used to assert that the Project is in it's last updated form\nbecause if not we could have inconsistencies with the environments. The \nformat is in seconds, basically UNIX format.\n" + format: uint64 + minimum: 0 + type: integer + required: + - name + - service_catalog_ref + - updated_at + title: Update Project + type: object + UpdateQuota: + description: The Quota defines the basic needs to update a create + properties: + cpu: + description: The amount of cpu that it has in units + format: uint64 + minimum: 0 + type: integer + memory: + description: The amount of memory that it has in MB + format: uint64 + minimum: 0 + type: integer + storage: + description: The amount of storage that it has in MB + format: uint64 + minimum: 0 + type: integer + required: + - cpu + - memory + - storage + title: Update Quota + type: object + UpdateServiceCatalog: + description: Represents the Service Catalog item + properties: + author: + type: string + canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + dependencies: + items: + $ref: '#/components/schemas/ServiceCatalogDependency' + type: array + description: + type: string + image: + format: uri + type: string + keywords: + items: + type: string + type: array + name: + type: string + service_catalog_source_canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + team_canonical: + description: | + Team responsible for the maintenance of the underlying service catalogs + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + technologies: + items: + $ref: '#/components/schemas/ServiceCatalogTechnology' + type: array + visibility: + type: string + required: + - author + - description + - keywords + - name + - service_catalog_source_canonical + title: UpdateServiceCatalog + type: object + UpdateServiceCatalogSource: + properties: + branch: + type: string + credential_canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + name: type: string + owner: + description: | + User canonical that owns this service catalog source. If omitted then the person + creating this service catalog source will be assigned as owner. When a user is the + owner of a service catalog source they has all the permissions on it. + type: string + url: + pattern: ^((/|~)[^/]*)+.(\.git)|(([\w\]+@[\w\.]+))(:(//)?)([\w\.@\:/\-~]+)(/)? + type: string + required: + - name + - url + title: UpdateServiceCatalogSource + type: object + UpdateTeam: + description: The entity which represents the information of the team to be updated. + properties: + canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + name: + minLength: 3 + type: string + owner: + description: | + User canonical that owns this team. Only the owner or an + organization admin can update this field. When a user is the owner + of a team it has all the permission on it. + type: string + roles_canonical: + description: The roles to be re-assigned to a team. + items: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + type: array + required: + - canonical + - name + - roles_canonical + title: Update Team + type: object + UpdateUserAccount: + description: The user's account information of the authenticated user to be updated. Emails and password can be omitted if they don't have to be updated, because we can now if they have been sent or not although go-swagger doesn't currently support `PATCH` updates (see [comment](https://github.com/cycloidio/youdeploy-http-api/pull/71#issuecomment-321894076)), we do for this one with this 2 properties because they are good for the user, specially for the `password_update` one. In order to detect if they have been sent or not, we check if the length of array of emails is 0 (if it's sent, then the length MUST be greater than 0 as specified with minItems) and in case of the `password_update` field if it's `nil` or not. If the 'picture_url' is not send then it's removed from the user as it implies that it has deleted it, and also because we do not support partial updates + properties: + country_code: + description: Code of a country the user is from + pattern: ^[A-Z]{2}$ + type: string + emails: + items: + $ref: '#/components/schemas/UpdateUserAccountEmail' + minItems: 1 + type: array + family_name: + minLength: 2 + type: string + given_name: + minLength: 2 + type: string + locale: + description: User's preferred language enum: - - BlendedCost - - UnblendedCost - - UsageQuantity - cost_begin_filter: - name: begin - in: query - description: Sets the start date for retrieving AWS costs. The start date is - inclusive. - required: true - schema: - type: string - format: date - cost_end_filter: - name: end - in: query - description: Sets the end dates for retrieving AWS costs. The end date is exclusive. - required: true - schema: - type: string - format: date - cost_currency_filter: - name: currency - in: query - description: The currency required for the results. - required: true - schema: - type: string - enum: - - USD - - EUR - - CNY - - GBP - cost_projects_filter: - name: projects - in: query - description: The names of the projects that you can use to filter your results - allowEmptyValue: false - style: form - explode: true - schema: - type: array - items: + - en + - fr + - es type: string - cost_environments_filter: - name: environments - in: query - description: The names of the environments that you can use to filter your results - allowEmptyValue: false - style: form - explode: true - schema: - type: array - items: + mfa_enabled: + type: boolean + password_update: + $ref: '#/components/schemas/UpdateUserAccount_password_update' + picture_url: + format: uri type: string - cost_services_filter: - name: services - in: query - description: The names of the services that you can use to filter and group - your results. - allowEmptyValue: false - style: form - explode: true - schema: - type: array - items: + username: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ type: string - cost_categories_filter: - name: categories - in: query - description: The names of the categories that you can use to filter and group - your results. - allowEmptyValue: false - style: form - explode: true - schema: - type: array - items: + required: + - family_name + - given_name + - locale + - mfa_enabled + - username + title: Update user's account + type: object + UpdateUserAccount_password_update: + description: The update password requires to confirm the old password. + properties: + current: + format: password + minLength: 8 type: string - enum: - - other - - compute - - storage - - database - - dev_tools - - networking - - analytics - - containers - - machine_learning - - multimedia - - security - cost_dashboard_filter_values: - name: dashboard - in: query - description: Specifies if the filter values are for the dashboard - schema: - type: boolean - default: false - cloud_provider_account_id: - name: cloud_provider_account_id - in: path - description: The id of an account in the Cloud Provider. - required: true - schema: - type: string - cost_linked_accounts_filter: - name: linked_accounts - in: query - description: The ids of the linked accounts that you can use to filter your - results - allowEmptyValue: false - style: form - explode: true - schema: - type: array - items: + new: + format: password + minLength: 8 type: string - cost_master_accounts_filter: - name: master_accounts - in: query - description: The ids of the master accounts that you can use to filter your - results - allowEmptyValue: false - style: form - explode: true - schema: - type: array - items: + required: + - current + - new + type: object + UpdateUserAccountEmail: + description: The email address of a user to be updated. + properties: + email: + format: email type: string - cost_providers_filter: - name: providers - in: query - description: The names of the providers that you can use to filter your results - allowEmptyValue: false - style: form - explode: true - schema: - type: array - items: + purpose: + description: This values are set by the application to indicate the purpose of the email address. At least there is always one which is the primary. type: string - cost_regions_filter: - name: regions - in: query - description: The names of the regions that you can use to filter your results - allowEmptyValue: false - style: form - explode: true - schema: - type: array - items: + required: + - email + - purpose + title: User's email + type: object + User: + description: A summary of a user to be used in places where only the basic information are need or are enough. + example: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + properties: + country_code: + description: Code of a country the user is from + pattern: ^[A-Z]{2}$ type: string - cost_resources_filter: - name: resources - in: query - description: The names of the resources that you can use to filter your results - allowEmptyValue: false - style: form - explode: true - schema: - type: array - items: + created_at: + description: When the user became a member. + format: uint64 + minimum: 0 + type: integer + email: + description: User's primary email. + format: email type: string - cost_resource_tagging_filter: - name: resource_tagging - in: query - description: Filter results by only tagged or not tagged resources - schema: - type: string - enum: - - tagged_resources - - untagged_resources - cost_group_by_filter: - name: group_by - in: query - description: "Represents a group when you specify a group by criteria, or in\ - \ the response to a query with a specific grouping." - allowEmptyValue: false - style: form - explode: true - schema: - uniqueItems: true - type: array - items: + family_name: + minLength: 2 type: string - enum: - - environment - - service - - instance_type - - category - - location - - linked_account - - project - - record_type - cost_record_type_filter: - name: record_types - in: query - description: The type of records that you can use to filter your results. For - example usage or credit. - allowEmptyValue: false - style: form - explode: true - schema: - type: array - items: + given_name: + minLength: 2 type: string - organization_canonical: - name: organization_canonical - in: path - description: A canonical of an organization. - required: true - schema: - $ref: '#/components/schemas/Canonical' - environment_query: - name: environment - in: query - description: The environment canonical to use a query filter - schema: - $ref: '#/components/schemas/EnvironmentCanonical' - environment_canonical: - name: environment_canonical - in: path - description: The environment canonical to use as part of a path - required: true - schema: - $ref: '#/components/schemas/EnvironmentCanonical' - kpi_canonical: - name: kpi_canonical - in: path - description: A canonical of a kpi. - required: true - schema: - $ref: '#/components/schemas/Canonical' - cache_path_query: - name: cache_path - in: query - description: The cache path to use as part of a clearTaskCache request - schema: - type: string - team_canonical: - name: team_canonical - in: path - description: A canonical of a team. - required: true - schema: - $ref: '#/components/schemas/Canonical' - project_canonical: - name: project_canonical - in: path - description: A canonical of a project. - required: true - schema: - $ref: '#/components/schemas/ProjectCanonical' - api_key_canonical: - name: api_key_canonical - in: path - description: A canonical of an API key. - required: true - schema: - $ref: '#/components/schemas/Canonical' - username: - name: username - in: path - description: A username - required: true - schema: - $ref: '#/components/schemas/Canonical' - pipeline_name: - name: inpath_pipeline_name - in: path - description: A pipeline name - required: true - schema: - maxLength: 100 - minLength: 1 - pattern: "^[a-z0-9]+[a-z0-9\\-_.]+[a-z0-9]+$" - type: string - pipeline_name_query: - name: pipeline_name - in: query - description: A pipeline name - required: true - schema: - maxLength: 100 - minLength: 1 - pattern: "^[a-z0-9]+[a-z0-9\\-_.]+[a-z0-9]+$" - type: string - concourse_pipeline_name_query: - name: concourse_pipeline_name - in: query - description: A pipeline name - schema: - maxLength: 100 - minLength: 1 - pattern: "^[a-z0-9]+[a-z0-9\\-_.]+[a-z0-9]+$" - type: string - project_canonical_query: - name: project_canonical - in: query - description: A list of projects' canonical to filter from - style: form - explode: false - schema: - type: array - items: + id: + format: uint32 + minimum: 1 + type: integer + last_login_at: + description: When the user logged in last time. + format: uint64 + minimum: 0 + type: integer + locale: + description: The local that the user prefer. + pattern: ^[a-z]{2}(?:-[a-z][a-z])?$ type: string - environment_canonical_query: - name: environment_canonical - in: query - description: A list of environments' canonical to filter from - style: form - explode: false - schema: - type: array - items: + mfa_enabled: + type: boolean + picture_url: + format: uri + type: string + updated_at: + description: When the user had the role modified. + format: uint64 + minimum: 0 + type: integer + username: + maxLength: 30 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + required: + - created_at + - email + - family_name + - given_name + - id + - locale + - mfa_enabled + - username + title: Basic info of a user + type: object + UserAccount: + description: The user's account contains information related with the authenticated user. + example: + country: + code: code + name: name + created_at: 0 + emails: + - created_at: 0 + email: email + purpose: purpose + verified: true + - created_at: 0 + email: email + purpose: purpose + verified: true + family_name: family_name + given_name: given_name + guide: '{}' + last_login: 0 + locale: en + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + properties: + country: + $ref: '#/components/schemas/Country' + created_at: + format: uint64 + minimum: 0 + type: integer + emails: + items: + $ref: '#/components/schemas/UserAccountEmail' + minItems: 1 + type: array + family_name: + minLength: 2 type: string - statuses_query: - name: statuses - in: query - description: "List of statuses that you want to filter a pipeline/job with.\ - \ Pipeline can be either paused or unpaused, but jobs can be started, pending,\ - \ succeeded, failed, errored, aborted. So if any of a pipeline's job has one\ - \ of the given status, the associated pipeline will be included in the response." - allowEmptyValue: true - style: form - explode: true - schema: - uniqueItems: true - type: array - items: + given_name: + minLength: 2 type: string + guide: + description: The user's guide progress JSON schema + title: User guide JSON schema + type: object + last_login: + format: uint64 + minimum: 0 + type: integer + locale: + description: User's preferred language enum: - - aborted - - errored - - failed - - paused - - pending - - started - - succeeded - build_id: - name: build_id - in: path - description: A build id - required: true - schema: - maxLength: 20 - minLength: 1 - pattern: "^[0-9]+$" - type: string - job_name: - name: job_name - in: path - description: A job name - required: true - schema: - maxLength: 150 - minLength: 1 - type: string - step_name: - name: step_name - in: path - description: A step name from a job task - required: true - schema: - maxLength: 150 - minLength: 1 - type: string - resource_name: - name: resource_name - in: path - description: A resource name - required: true - schema: - maxLength: 150 - minLength: 1 - type: string - filter_version: - name: filter_version - in: query - description: A version of a resource - style: form - explode: false - schema: - type: array - items: + - en + - fr + - es type: string - resource_version_id: - name: resource_version_id - in: path - description: A resource's version id - required: true - schema: - type: integer - format: uint64 - service_catalog_ref: - name: service_catalog_ref - in: path - description: A Service Catalog name - required: true - schema: - pattern: "^[a-z0-9]+[a-z0-9\\-_]+[a-z0-9]+:[a-z0-9]+[a-z0-9\\-_]+[a-z0-9]+$" - type: string - use_case_canonical: - name: use_case_canonical - in: path - description: A use case canonical - required: true - schema: - $ref: '#/components/schemas/Canonical' - credential_canonical: - name: credential_canonical - in: path - description: A Credential canonical - required: true - schema: - $ref: '#/components/schemas/Canonical' - credential_canonical_query: - name: credential_canonical - in: query - description: A Credential canonical - required: true - schema: - $ref: '#/components/schemas/Canonical' - credential_canonical_not_required_query: - name: credential_canonical - in: query - description: A Credential canonical - schema: - $ref: '#/components/schemas/Canonical' - credential_type_query: - name: credential_type - in: query - description: | - Deprecated. Please use credential_types. - A Credential type - schema: - type: string - enum: - - ssh - - aws - - custom - - azure - - azure_storage - - gcp - - basic_auth - - elasticsearch - - swift - credential_types_query: - name: credential_types - in: query - description: Multiple Credential types - allowEmptyValue: true - style: form - explode: true - schema: - uniqueItems: true - type: array - items: + mfa_enabled: + type: boolean + picture_url: + format: uri type: string - enum: - - ssh - - aws - - custom - - azure - - azure_storage - - gcp - - basic_auth - - elasticsearch - - swift - credential_options_service_query: - name: service - in: query - required: true - schema: - type: string - enum: - - gcp_bigquery - git_url_query: - name: git_url - in: query - description: Git URL to repository - required: true - schema: - pattern: "^((/|~)[^/]*)+.(\\.git)|(([\\w\\]+@[\\w\\.]+))(:(//)?)([\\w\\.@\\\ - :/\\-~]+)(/)?" - type: string - external_backend_id: - name: external_backend_id - in: path - description: External Backend ID - required: true - schema: - type: integer - format: uint32 - service_catalog_source_canonical: - name: service_catalog_source_canonical - in: path - description: Organization Service Catalog Sources canonical - required: true - schema: - $ref: '#/components/schemas/Canonical' - service_catalog_source_canonical_query: - name: service_catalog_source_canonical - in: query - description: Organization Service Catalog Sources canonical - schema: - $ref: '#/components/schemas/Canonical' - config_repository_canonical: - name: config_repository_canonical - in: path - description: Organization Config Repositories canonical - required: true - schema: - $ref: '#/components/schemas/Canonical' - aws_next_token: - name: next - in: query - description: The token to retrieve the next page of results - schema: - minLength: 1 - type: string - aws_infrastructure_resource_query: - name: resource - in: query - description: Supported AWS type of resource to query. The parameter can be specified - several times in order to request for different kind of resources. - allowEmptyValue: false - style: form - explode: true - schema: - uniqueItems: true - type: array - items: + updated_at: + format: uint64 + minimum: 0 + type: integer + username: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + required: + - created_at + - emails + - family_name + - given_name + - last_login + - locale + - mfa_enabled + - updated_at + - username + title: User's account + type: object + UserAccountEmail: + description: The email address of a user. + example: + created_at: 0 + email: email + purpose: purpose + verified: true + properties: + created_at: + format: uint64 + minimum: 0 + type: integer + email: + format: email + type: string + purpose: + description: This values are set by the application to indicate the purpose of the email address. At least there is always one which is the primary. + type: string + verified: + type: boolean + required: + - email + - purpose + - verified + title: User's email + type: object + UserEmail: + description: The user's email address + properties: + email: + format: email + type: string + required: + - email + title: User email address + type: object + UserGuide: + description: The user's guide progress JSON schema + title: User guide JSON schema + type: object + UserLogin: + description: Validate the user to access to the application. The user can login with the primary email address or with username. + properties: + email: + format: email + type: string + organization_canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + password: + format: password + minLength: 8 + type: string + username: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + required: + - password + title: Log in + type: object + UserOAuth: + description: The User OAuth information, if it's on the platform it'll return the 'token' to login, if not the 'user' to show to the user + example: + token: token + user: + country_code: country_code + email: email + family_name: family_name + given_name: given_name + invitation_token: invitation_token + locale: en + picture_url: https://openapi-generator.tech + social_id: social_id + username: username + properties: + token: + description: Is the JWT of the platform user type: string - enum: - - instances - - vpcs - - images - - security_groups - - subnets - - volumes - - snapshots - - cache_clusters - - load_balancers_v1 - - load_balancers_v2 - - db_instances - - buckets - aws_tags: - name: tag - in: query - description: "An amazon tag, represented as `key|value` and where `key` or `value`\ - \ could be omitted but not both, in order to select resources which has a\ - \ `key` or a `value` whatever is its counterpart. `key` nor `value` can contains\ - \ the `|` character. The parameter can be specified several times in order\ - \ to request resources which match with at least one of the `tag|value` pairs" - allowEmptyValue: false - style: form - explode: true - schema: - uniqueItems: true - type: array - items: - maxLength: 383 - minLength: 2 - pattern: "^(?:(?:[\\w\\-+=.:/@ ]+\\|)|(?:\\|[\\w\\-+=.:/@ ]+)|(?:[\\w\\\ - -+=.:/@ ]+\\|[\\w\\-+=.:/@ ]+))$" + user: + $ref: '#/components/schemas/NewOAuthUser' + title: User's OAuth information + type: object + UserPasswordResetReq: + description: Request to send a token for allowing the user to reset its current password. + properties: + email: + description: the email address must be the primary email of the user. + format: email type: string - timestamp_range_begin_query: - name: begin - in: query - description: "The unix timestamp in seconds, which indicate the start of the\ - \ time range." - schema: - type: integer - format: uint64 - timestamp_range_end_query: - name: end - in: query - description: "The unix timestamp in seconds, which indicate the end of the time\ - \ range." - schema: - type: integer - format: uint64 - timestamp_range_begin_query_ms: - name: begin - in: query - description: "The unix timestamp in milliseconds, which indicate the start of\ - \ the time range." - schema: - type: integer - format: uint64 - timestamp_range_end_query_ms: - name: end - in: query - description: "The unix timestamp in milliseconds, which indicate the end of\ - \ the time range." - schema: - type: integer - format: uint64 - raw_query: - name: query - in: query - description: A free text which the content depends of the context of the API - endpoint. Can be a free text value or a complete query expressed of supported - query language. - schema: - minLength: 1 - type: string - log_source_id: - name: log_source_id - in: path - description: "A unique identifier, which group log's entries under under a context,\ - \ established by the source." - required: true - schema: - minLength: 1 - type: string - event_type: - name: type - in: query - description: Specify the types of the events to be requested. The returned events - must have one of the specified types. - allowEmptyValue: false - style: form - explode: true - schema: - type: array - items: + required: + - email + title: User password reset request + type: object + UserPasswordResetUpdate: + description: Reset the current user password to the one provided. The user must have a valid token for the resetting password action. + properties: + password: + format: password + minLength: 8 type: string - enum: - - Cycloid - - AWS - - Monitoring - - Custom - event_severity: - name: severity - in: query - description: Specify the severities of the events to be requested. The returned - events must have one of the specified severities. - allowEmptyValue: false - style: form - explode: true - schema: - type: array - items: + token: + minLength: 1 type: string - enum: - - info - - warn - - err - - crit - provider_canonical: - name: provider_canonical - in: path - description: A canonical of a Provider - required: true - schema: - minLength: 3 - pattern: "^[a-z0-9]+[a-z0-9\\-_]+[a-z0-9]+$" - type: string - resource_canonical: - name: resource_canonical - in: path - description: A canonical of a Resource - required: true - schema: - minLength: 3 - pattern: "^[a-z0-9]+[a-z0-9\\-_]+[a-z0-9]+$" - type: string - role_canonical: - name: role_canonical - in: path - description: Organization Role canonical - required: true - schema: - $ref: '#/components/schemas/Canonical' - verification_token: - name: verification_token - in: path - description: "A token for verifying emails, invitations, etc." - required: true - schema: - minLength: 5 - type: string - authentication_token: - name: authentication_token - in: path - description: A token for authenticating login vie email - required: true - schema: - minLength: 5 - type: string - social_type: - name: social_type - in: path - description: The OAuth Social type - required: true - schema: - type: string - enum: - - azuread - - saml2 - - google - - github - oauth_code: - name: oauth_code - in: query - description: The OAuth code returned form the Social Provider - required: true - schema: - type: string - infra_policy_canonical: - name: infra_policy_canonical - in: path - description: The canonical of an InfraPolicy. - required: true - schema: - $ref: '#/components/schemas/Canonical' - infra_policy_canonical_query: - name: infra_policy_canonical - in: query - description: Search by infra policy canonical - schema: - $ref: '#/components/schemas/Canonical' - infra_policy_name_query: - name: infra_policy_name - in: query - description: Search by InfraPolicy's name - schema: - type: string - infra_policy_created_at_query: - name: infra_policy_created_at - in: query - description: Search by InfraPolicy's creation date - schema: - type: integer - format: uint64 - infra_policy_severity_query: - name: infra_policy_severity - in: query - description: Search by InfraPolicy's severity - schema: - type: string - enum: - - critical - - warning - - advisory - infra_policy_enabled_query: - name: infra_policy_enabled - in: query - description: Search by InfraPolicy's enabled - schema: - type: boolean - invitation_created_at_query: - name: invitation_created_at - in: query - description: Search by Invitation's creation date - schema: - type: integer - format: uint64 - invitation_state_query: - name: invitation_state - in: query - description: Search by Invitation's state - schema: - type: string - enum: - - accepted - - pending - - declined - invitation_id: - name: invitation_id - in: path - description: Organization Invitation id. - required: true - schema: - type: integer - format: uint32 - kpi_retrieve_data: - name: fetch_data + required: + - password + - token + title: User password reset update + type: object + UserSession: + description: The JWT which allows the user to access to the application. + example: + owns: + - owns + - owns + permissions: + key: + action: action + effect: allow + id: 0 + resources: + - resources + - resources + token: token + properties: + owns: + items: + type: string + type: array + permissions: + additionalProperties: + $ref: '#/components/schemas/Rule' + type: object + token: + type: string + required: + - owns + - permissions + - token + title: User's session + type: object + VMwareVsphere: + allOf: + - $ref: '#/components/schemas/ExternalBackendConfiguration' + - properties: + allow_unverified_ssl: + description: | + Whether verification of SSL certificate should be disabled. + type: boolean + server: + description: | + FQDN or IP address of the vCenter server. + type: string + type: object + description: | + Representation of VMwareVsphere external backend. + Must be matched with a credential of the "vmware" type. + VersionConfig: + description: The entity which represents a version configuration in the application. + example: + every: true + latest: true + pinned: + key: pinned + properties: + every: + type: boolean + latest: + type: boolean + pinned: + additionalProperties: + type: string + type: object + title: VersionConfig + type: object + VersionedResourceType: + description: The versioned resources type. + properties: + id: + format: uint32 + type: integer + name: + type: string + privileged: + type: boolean + source: + additionalProperties: + properties: {} + type: object + type: object + tags: + additionalProperties: + type: string + type: object + type: + type: string + version: + additionalProperties: + type: string + type: object + required: + - id + - name + - privileged + - source + - tags + - type + - version + title: VersionedResourceType + type: object + Worker: + description: The entity which represents a worker in the application. + example: + active_containers: 0 + active_volumes: 6 + ephemeral: true + name: name + platform: platform + start_time: 1 + state: state + tags: + - tags + - tags + team: team + version: version + properties: + active_containers: + format: uint64 + type: integer + active_volumes: + format: uint64 + type: integer + ephemeral: + type: boolean + name: + type: string + platform: + type: string + start_time: + format: uint64 + type: integer + state: + type: string + tags: + items: + type: string + type: array + team: + type: string + version: + type: string + required: + - active_containers + - active_volumes + - ephemeral + - name + - platform + - start_time + - state + - version + title: Worker + type: object + assignMemberToTeam_200_response: + example: + data: + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + invited_by: + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + invitation_email: invitation_email + invitation_resent_at: 0 + invitation_state: pending + invited_at: 0 + invited_by: null + last_login_at: 0 + locale: en + mfa_enabled: true + picture_url: https://openapi-generator.tech + role: + canonical: canonical + created_at: 0 + default: true + description: description + id: 1 + name: name + rules: + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + updated_at: 0 + updated_at: 0 + username: username + last_login_at: 0 + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + properties: + data: + $ref: '#/components/schemas/MemberTeam' + required: + - data + type: object + canDo_200_response: + example: + data: + entity_canonicals: + - entity_canonicals + - entity_canonicals + ok: true + properties: + data: + $ref: '#/components/schemas/CanDoOutput' + required: + - data + type: object + clearTaskCache_200_response: + example: + data: + caches_removed: 0 + properties: + data: + $ref: '#/components/schemas/ClearTaskCache' + required: + - data + type: object + costEstimateTfPlan_200_response: + example: + data: + info: info + name: name + planned_cost: planned_cost + planned_hourly_cost: planned_hourly_cost + prior_cost: prior_cost + prior_hourly_cost: prior_hourly_cost + resource_estimates: + - address: address + components: + - label: label + planned: + cost: cost + details: + - details + - details + hourly_cost: hourly_cost + quantity: 0 + prior: + cost: cost + details: + - details + - details + hourly_cost: hourly_cost + quantity: 0 + rate: rate + unit: unit + usage: true + - label: label + planned: + cost: cost + details: + - details + - details + hourly_cost: hourly_cost + quantity: 0 + prior: + cost: cost + details: + - details + - details + hourly_cost: hourly_cost + quantity: 0 + rate: rate + unit: unit + usage: true + image: https://openapi-generator.tech + planned_cost: planned_cost + planned_hourly_cost: planned_hourly_cost + prior_cost: prior_cost + prior_hourly_cost: prior_hourly_cost + provider: provider + type: type + - address: address + components: + - label: label + planned: + cost: cost + details: + - details + - details + hourly_cost: hourly_cost + quantity: 0 + prior: + cost: cost + details: + - details + - details + hourly_cost: hourly_cost + quantity: 0 + rate: rate + unit: unit + usage: true + - label: label + planned: + cost: cost + details: + - details + - details + hourly_cost: hourly_cost + quantity: 0 + prior: + cost: cost + details: + - details + - details + hourly_cost: hourly_cost + quantity: 0 + rate: rate + unit: unit + usage: true + image: https://openapi-generator.tech + planned_cost: planned_cost + planned_hourly_cost: planned_hourly_cost + prior_cost: prior_cost + prior_hourly_cost: prior_hourly_cost + provider: provider + type: type + skipped_resource_addresses: + - skipped_resource_addresses + - skipped_resource_addresses + properties: + data: + $ref: '#/components/schemas/CostEstimationResult' + required: + - data + type: object + createAPIKey_200_response: + example: + data: + canonical: canonical + description: description + id: 1 + last_seven: last_seven + last_used: 7 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + rules: + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + token: token + properties: + data: + $ref: '#/components/schemas/APIKey' + required: + - data + type: object + createBuild_200_response: + example: + data: + api_url: api_url + end_time: 7 + id: 1 + job_name: job_name + name: name + pipeline_id: 1 + pipeline_name: pipeline_name + reap_time: 1 + start_time: 6 + status: status + team_name: team_name + properties: + data: + $ref: '#/components/schemas/Build' + required: + - data + type: object + createChild_200_response: + example: + data: + admins: + - created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + invitation_email: invitation_email + invitation_resent_at: 0 + invitation_state: pending + invited_at: 0 + invited_by: null + last_login_at: 0 + locale: en + mfa_enabled: true + picture_url: https://openapi-generator.tech + role: + canonical: canonical + created_at: 0 + default: true + description: description + id: 1 + name: name + rules: + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + updated_at: 0 + updated_at: 0 + username: username + - created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + invitation_email: invitation_email + invitation_resent_at: 0 + invitation_state: pending + invited_at: 0 + invited_by: null + last_login_at: 0 + locale: en + mfa_enabled: true + picture_url: https://openapi-generator.tech + role: + canonical: canonical + created_at: 0 + default: true + description: description + id: 1 + name: name + rules: + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + updated_at: 0 + updated_at: 0 + username: username + appearance: + canonical: canonical + color: + b: 37 + g: 153 + r: 20 + created_at: 0 + display_name: display_name + favicon: https://openapi-generator.tech + footer: footer + is_active: true + logo: https://openapi-generator.tech + name: name + tab_title: tab_title + updated_at: 0 + blocked: + - blocked + - blocked + can_children_create_appearance: true + can_create_appearance: true + canonical: canonical + ci_port: ci_port + ci_team_name: ci_team_name + ci_url: ci_url + created_at: 0 + has_children: true + id: 1 + mfa_enabled: true + name: name + quotas: true + subscription: + current_members: 0 + expires_at: 0 + members_count: 0 + plan: + canonical: canonical + name: name + updated_at: 0 + properties: + data: + $ref: '#/components/schemas/Organization' + required: + - data + type: object + createCloudCostManagementAccount_200_response: + example: + data: + account_id: account_id + canonical: canonical + cloud_provider: + abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + created_at: 0 + credential: + canonical: canonical + created_at: 0 + description: description + id: 1 + in_use: + config_repositories: + - canonical: canonical + name: name + - canonical: canonical + name: name + external_backends: + - engine: engine + environment: + canonical: canonical + project: + canonical: canonical + name: name + purpose: purpose + - engine: engine + environment: + canonical: canonical + project: + canonical: canonical + name: name + purpose: purpose + service_catalog_sources: + - canonical: canonical + name: name + - canonical: canonical + name: name + keys: + - keys + - keys + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + path: path + type: ssh + updated_at: 0 + enabled: true + external_backend: + configuration: + engine: engine + created_at: 0 + credential_canonical: credential_canonical + default: true + environment_canonical: environment_canonical + id: 1 + jwt: jwt + project_canonical: project_canonical + purpose: purpose + updated_at: 0 + id: 1 + last_ingestion_ended_at: 0 + last_ingestion_started_at: 0 + name: name + parent_account_id: parent_account_id + phase: green + status: idle + status_message: status_message + unfinalized_period: unfinalized_period + updated_at: 0 + properties: + data: + $ref: '#/components/schemas/CloudCostManagementAccount' + required: + - data + type: object + createConfigRepository_200_response: + example: + data: + branch: branch + canonical: canonical + created_at: 0 + credential_canonical: credential_canonical + default: true + id: 1 + name: name + updated_at: 0 + url: url + properties: + data: + $ref: '#/components/schemas/ConfigRepository' + required: + - data + type: object + createCredential_200_response: + example: + data: + canonical: canonical + created_at: 0 + description: description + id: 1 + in_use: + config_repositories: + - canonical: canonical + name: name + - canonical: canonical + name: name + external_backends: + - engine: engine + environment: + canonical: canonical + project: + canonical: canonical + name: name + purpose: purpose + - engine: engine + environment: + canonical: canonical + project: + canonical: canonical + name: name + purpose: purpose + service_catalog_sources: + - canonical: canonical + name: name + - canonical: canonical + name: name + keys: + - keys + - keys + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + path: path + raw: + access_key: access_key + account_name: account_name + auth_url: auth_url + ca_cert: ca_cert + client_id: client_id + client_secret: client_secret + domain_id: domain_id + environment: public + json_key: json_key + password: password + raw: '{}' + secret_key: secret_key + ssh_key: ssh_key + subscription_id: subscription_id + tenant_id: tenant_id + username: username + type: ssh + updated_at: 0 + properties: + data: + $ref: '#/components/schemas/Credential' + required: + - data + type: object + createEnvironment_200_response: + example: + data: + canonical: canonical + cloud_provider: + abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + color: color + created_at: 0 + icon: icon + id: 1 + updated_at: 0 + use_case: use_case + properties: + data: + $ref: '#/components/schemas/Environment' + required: + - data + type: object + createExternalBackend_200_response: + example: + data: + configuration: + engine: engine + created_at: 0 + credential_canonical: credential_canonical + default: true + environment_canonical: environment_canonical + id: 1 + jwt: jwt + project_canonical: project_canonical + purpose: purpose + updated_at: 0 + properties: + data: + $ref: '#/components/schemas/ExternalBackend' + required: + - data + type: object + createFormsConfig_200_response: + example: + data: '{}' + properties: + data: + properties: {} + type: object + required: + - data + type: object + createInfraPolicy_200_response: + example: + data: + body: body + canonical: canonical + created_at: 6 + description: description + enabled: true + id: 1 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + severity: critical + updated_at: 1 + properties: + data: + $ref: '#/components/schemas/InfraPolicy' + required: + - data + type: object + createKpi_200_response: + example: + data: + canonical: canonical + config: '{}' + created_at: 0 + data_set: + - '{}' + - '{}' + description: description + environment_canonical: environment_canonical + error: error + favorite: true + id: 1 + job_name: job_name + name: name + pipeline_name: pipeline_name + project_canonical: project_canonical + type: build_avg_time + updated_at: 0 + widget: bars + properties: + data: + $ref: '#/components/schemas/KPI' + required: + - data + type: object + createPipeline_200_response: + example: + data: + archived: true + created_at: 0 + environment: + canonical: canonical + cloud_provider: + abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + color: color + created_at: 0 + icon: icon + id: 1 + updated_at: 0 + use_case: use_case + groups: + - jobs: + - jobs + - jobs + name: name + resources: + - resources + - resources + - jobs: + - jobs + - jobs + name: name + resources: + - resources + - resources + id: 0 + jobs: + - disable_manual_trigger: true + finished_build: + api_url: api_url + end_time: 7 + id: 1 + job_name: job_name + name: name + pipeline_id: 1 + pipeline_name: pipeline_name + reap_time: 1 + start_time: 6 + status: status + team_name: team_name + first_logged_build_id: 1 + groups: + - groups + - groups + has_new_inputs: true + id: 7 + inputs: + - name: name + passed: + - passed + - passed + resource: resource + trigger: true + version: + every: true + latest: true + pinned: + key: pinned + - name: name + passed: + - passed + - passed + resource: resource + trigger: true + version: + every: true + latest: true + pinned: + key: pinned + name: name + next_build: + api_url: api_url + end_time: 7 + id: 1 + job_name: job_name + name: name + pipeline_id: 1 + pipeline_name: pipeline_name + reap_time: 1 + start_time: 6 + status: status + team_name: team_name + outputs: + - name: name + resource: resource + - name: name + resource: resource + paused: true + pipeline_id: 4 + pipeline_name: pipeline_name + team_name: team_name + transition_build: + api_url: api_url + end_time: 7 + id: 1 + job_name: job_name + name: name + pipeline_id: 1 + pipeline_name: pipeline_name + reap_time: 1 + start_time: 6 + status: status + team_name: team_name + - disable_manual_trigger: true + finished_build: + api_url: api_url + end_time: 7 + id: 1 + job_name: job_name + name: name + pipeline_id: 1 + pipeline_name: pipeline_name + reap_time: 1 + start_time: 6 + status: status + team_name: team_name + first_logged_build_id: 1 + groups: + - groups + - groups + has_new_inputs: true + id: 7 + inputs: + - name: name + passed: + - passed + - passed + resource: resource + trigger: true + version: + every: true + latest: true + pinned: + key: pinned + - name: name + passed: + - passed + - passed + resource: resource + trigger: true + version: + every: true + latest: true + pinned: + key: pinned + name: name + next_build: + api_url: api_url + end_time: 7 + id: 1 + job_name: job_name + name: name + pipeline_id: 1 + pipeline_name: pipeline_name + reap_time: 1 + start_time: 6 + status: status + team_name: team_name + outputs: + - name: name + resource: resource + - name: name + resource: resource + paused: true + pipeline_id: 4 + pipeline_name: pipeline_name + team_name: team_name + transition_build: + api_url: api_url + end_time: 7 + id: 1 + job_name: job_name + name: name + pipeline_id: 1 + pipeline_name: pipeline_name + reap_time: 1 + start_time: 6 + status: status + team_name: team_name + name: name + paused: true + project: + canonical: canonical + config_repository_canonical: config_repository_canonical + created_at: 0 + description: description + environments: + - canonical: canonical + cloud_provider: + abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + color: color + created_at: 0 + icon: icon + id: 1 + updated_at: 0 + use_case: use_case + - canonical: canonical + cloud_provider: + abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + color: color + created_at: 0 + icon: icon + id: 1 + updated_at: 0 + use_case: use_case + favorite: true + id: 1 + import_status: succeeded + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + service_catalog: + author: author + blueprint: true + canonical: canonical + cloud_providers: + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + created_at: 0 + dependencies: + - ref: ref + required: true + - ref: ref + required: true + description: description + directory: directory + form_enabled: true + id: 1 + image: https://openapi-generator.tech + import_status: succeeded + keywords: + - keywords + - keywords + name: name + organization_canonical: organization_canonical + quota_enabled: true + readme: readme + ref: ref + service_catalog_source_canonical: service_catalog_source_canonical + team: + canonical: canonical + created_at: 0 + id: 1 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + updated_at: 0 + technologies: + - technology: technology + version: version + - technology: technology + version: version + trusted: true + updated_at: 0 + visibility: visibility + team: + canonical: canonical + created_at: 0 + id: 1 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + updated_at: 0 + updated_at: 0 + public: true + started: true + status: status + team_name: team_name + updated_at: 0 + use_case: use_case + properties: + data: + $ref: '#/components/schemas/Pipeline' + required: + - data + type: object + createProject_200_response: + example: + data: + canonical: canonical + config_repository_canonical: config_repository_canonical + created_at: 0 + description: description + environments: + - canonical: canonical + cloud_provider: + abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + color: color + created_at: 0 + icon: icon + id: 1 + updated_at: 0 + use_case: use_case + - canonical: canonical + cloud_provider: + abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + color: color + created_at: 0 + icon: icon + id: 1 + updated_at: 0 + use_case: use_case + favorite: true + id: 1 + import_status: succeeded + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + service_catalog: + author: author + blueprint: true + canonical: canonical + cloud_providers: + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + created_at: 0 + dependencies: + - ref: ref + required: true + - ref: ref + required: true + description: description + directory: directory + form_enabled: true + id: 1 + image: https://openapi-generator.tech + import_status: succeeded + keywords: + - keywords + - keywords + name: name + organization_canonical: organization_canonical + quota_enabled: true + readme: readme + ref: ref + service_catalog_source_canonical: service_catalog_source_canonical + team: + canonical: canonical + created_at: 0 + id: 1 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + updated_at: 0 + technologies: + - technology: technology + version: version + - technology: technology + version: version + trusted: true + updated_at: 0 + visibility: visibility + team: + canonical: canonical + created_at: 0 + id: 1 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + updated_at: 0 + updated_at: 0 + properties: + data: + $ref: '#/components/schemas/Project' + required: + - data + type: object + createQuota_200_response: + example: + data: + cpu: 0 + id: 1 + memory: 0 + resource_pool: + allocated_cpu: 0 + allocated_memory: 0 + allocated_storage: 0 + canonical: canonical + cpu: 0 + id: 1 + label: label + memory: 0 + name: name + storage: 0 + used_cpu: 0 + used_memory: 0 + used_storage: 0 + storage: 0 + team: + canonical: canonical + created_at: 0 + id: 1 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + updated_at: 0 + used_cpu: 0 + used_memory: 0 + used_storage: 0 + properties: + data: + $ref: '#/components/schemas/Quota' + required: + - data + type: object + createResourcePool_200_response: + example: + data: + allocated_cpu: 0 + allocated_memory: 0 + allocated_storage: 0 + canonical: canonical + cpu: 0 + id: 1 + label: label + memory: 0 + name: name + storage: 0 + used_cpu: 0 + used_memory: 0 + used_storage: 0 + properties: + data: + $ref: '#/components/schemas/ResourcePool' + required: + - data + type: object + createRole_200_response: + example: + data: + canonical: canonical + description: description + name: name + rules: + - action: action + effect: allow + resources: + - resources + - resources + - action: action + effect: allow + resources: + - resources + - resources + properties: + data: + $ref: '#/components/schemas/NewRole' + required: + - data + type: object + createServiceCatalog_200_response: + example: + data: + author: author + blueprint: true + canonical: canonical + cloud_providers: + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + created_at: 0 + dependencies: + - ref: ref + required: true + - ref: ref + required: true + description: description + directory: directory + form_enabled: true + id: 1 + image: https://openapi-generator.tech + import_status: succeeded + keywords: + - keywords + - keywords + name: name + organization_canonical: organization_canonical + quota_enabled: true + readme: readme + ref: ref + service_catalog_source_canonical: service_catalog_source_canonical + team: + canonical: canonical + created_at: 0 + id: 1 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + updated_at: 0 + technologies: + - technology: technology + version: version + - technology: technology + version: version + trusted: true + updated_at: 0 + visibility: visibility + properties: + data: + $ref: '#/components/schemas/ServiceCatalog' + required: + - data + type: object + createServiceCatalogSource_200_response: + example: + data: + branch: branch + canonical: canonical + changes: + created: + - author: author + blueprint: true + canonical: canonical + cloud_providers: + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + created_at: 0 + dependencies: + - ref: ref + required: true + - ref: ref + required: true + description: description + directory: directory + form_enabled: true + id: 1 + image: https://openapi-generator.tech + import_status: succeeded + keywords: + - keywords + - keywords + name: name + organization_canonical: organization_canonical + quota_enabled: true + readme: readme + ref: ref + service_catalog_source_canonical: service_catalog_source_canonical + team: + canonical: canonical + created_at: 0 + id: 1 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + updated_at: 0 + technologies: + - technology: technology + version: version + - technology: technology + version: version + trusted: true + updated_at: 0 + visibility: visibility + - author: author + blueprint: true + canonical: canonical + cloud_providers: + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + created_at: 0 + dependencies: + - ref: ref + required: true + - ref: ref + required: true + description: description + directory: directory + form_enabled: true + id: 1 + image: https://openapi-generator.tech + import_status: succeeded + keywords: + - keywords + - keywords + name: name + organization_canonical: organization_canonical + quota_enabled: true + readme: readme + ref: ref + service_catalog_source_canonical: service_catalog_source_canonical + team: + canonical: canonical + created_at: 0 + id: 1 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + updated_at: 0 + technologies: + - technology: technology + version: version + - technology: technology + version: version + trusted: true + updated_at: 0 + visibility: visibility + deleted: + - author: author + blueprint: true + canonical: canonical + cloud_providers: + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + created_at: 0 + dependencies: + - ref: ref + required: true + - ref: ref + required: true + description: description + directory: directory + form_enabled: true + id: 1 + image: https://openapi-generator.tech + import_status: succeeded + keywords: + - keywords + - keywords + name: name + organization_canonical: organization_canonical + quota_enabled: true + readme: readme + ref: ref + service_catalog_source_canonical: service_catalog_source_canonical + team: + canonical: canonical + created_at: 0 + id: 1 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + updated_at: 0 + technologies: + - technology: technology + version: version + - technology: technology + version: version + trusted: true + updated_at: 0 + visibility: visibility + - author: author + blueprint: true + canonical: canonical + cloud_providers: + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + created_at: 0 + dependencies: + - ref: ref + required: true + - ref: ref + required: true + description: description + directory: directory + form_enabled: true + id: 1 + image: https://openapi-generator.tech + import_status: succeeded + keywords: + - keywords + - keywords + name: name + organization_canonical: organization_canonical + quota_enabled: true + readme: readme + ref: ref + service_catalog_source_canonical: service_catalog_source_canonical + team: + canonical: canonical + created_at: 0 + id: 1 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + updated_at: 0 + technologies: + - technology: technology + version: version + - technology: technology + version: version + trusted: true + updated_at: 0 + visibility: visibility + updated: + - author: author + blueprint: true + canonical: canonical + cloud_providers: + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + created_at: 0 + dependencies: + - ref: ref + required: true + - ref: ref + required: true + description: description + directory: directory + form_enabled: true + id: 1 + image: https://openapi-generator.tech + import_status: succeeded + keywords: + - keywords + - keywords + name: name + organization_canonical: organization_canonical + quota_enabled: true + readme: readme + ref: ref + service_catalog_source_canonical: service_catalog_source_canonical + team: + canonical: canonical + created_at: 0 + id: 1 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + updated_at: 0 + technologies: + - technology: technology + version: version + - technology: technology + version: version + trusted: true + updated_at: 0 + visibility: visibility + - author: author + blueprint: true + canonical: canonical + cloud_providers: + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + created_at: 0 + dependencies: + - ref: ref + required: true + - ref: ref + required: true + description: description + directory: directory + form_enabled: true + id: 1 + image: https://openapi-generator.tech + import_status: succeeded + keywords: + - keywords + - keywords + name: name + organization_canonical: organization_canonical + quota_enabled: true + readme: readme + ref: ref + service_catalog_source_canonical: service_catalog_source_canonical + team: + canonical: canonical + created_at: 0 + id: 1 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + updated_at: 0 + technologies: + - technology: technology + version: version + - technology: technology + version: version + trusted: true + updated_at: 0 + visibility: visibility + created_at: 0 + credential_canonical: credential_canonical + id: 1 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + refreshed_at: 0 + service_catalogs: + - author: author + blueprint: true + canonical: canonical + cloud_providers: + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + created_at: 0 + dependencies: + - ref: ref + required: true + - ref: ref + required: true + description: description + directory: directory + form_enabled: true + id: 1 + image: https://openapi-generator.tech + import_status: succeeded + keywords: + - keywords + - keywords + name: name + organization_canonical: organization_canonical + quota_enabled: true + readme: readme + ref: ref + service_catalog_source_canonical: service_catalog_source_canonical + team: + canonical: canonical + created_at: 0 + id: 1 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + updated_at: 0 + technologies: + - technology: technology + version: version + - technology: technology + version: version + trusted: true + updated_at: 0 + visibility: visibility + - author: author + blueprint: true + canonical: canonical + cloud_providers: + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + created_at: 0 + dependencies: + - ref: ref + required: true + - ref: ref + required: true + description: description + directory: directory + form_enabled: true + id: 1 + image: https://openapi-generator.tech + import_status: succeeded + keywords: + - keywords + - keywords + name: name + organization_canonical: organization_canonical + quota_enabled: true + readme: readme + ref: ref + service_catalog_source_canonical: service_catalog_source_canonical + team: + canonical: canonical + created_at: 0 + id: 1 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + updated_at: 0 + technologies: + - technology: technology + version: version + - technology: technology + version: version + trusted: true + updated_at: 0 + visibility: visibility + stack_count: 0 + updated_at: 0 + url: url + properties: + data: + $ref: '#/components/schemas/ServiceCatalogSource' + required: + - data + type: object + createTeam_200_response: + example: + data: + canonical: canonical + created_at: 0 + id: 1 + member_count: 5 + members_preview: + - created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + invited_by: + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + invitation_email: invitation_email + invitation_resent_at: 0 + invitation_state: pending + invited_at: 0 + invited_by: null + last_login_at: 0 + locale: en + mfa_enabled: true + picture_url: https://openapi-generator.tech + role: + canonical: canonical + created_at: 0 + default: true + description: description + id: 1 + name: name + rules: + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + updated_at: 0 + updated_at: 0 + username: username + last_login_at: 0 + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + - created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + invited_by: + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + invitation_email: invitation_email + invitation_resent_at: 0 + invitation_state: pending + invited_at: 0 + invited_by: null + last_login_at: 0 + locale: en + mfa_enabled: true + picture_url: https://openapi-generator.tech + role: + canonical: canonical + created_at: 0 + default: true + description: description + id: 1 + name: name + rules: + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + updated_at: 0 + updated_at: 0 + username: username + last_login_at: 0 + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + - created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + invited_by: + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + invitation_email: invitation_email + invitation_resent_at: 0 + invitation_state: pending + invited_at: 0 + invited_by: null + last_login_at: 0 + locale: en + mfa_enabled: true + picture_url: https://openapi-generator.tech + role: + canonical: canonical + created_at: 0 + default: true + description: description + id: 1 + name: name + rules: + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + updated_at: 0 + updated_at: 0 + username: username + last_login_at: 0 + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + - created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + invited_by: + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + invitation_email: invitation_email + invitation_resent_at: 0 + invitation_state: pending + invited_at: 0 + invited_by: null + last_login_at: 0 + locale: en + mfa_enabled: true + picture_url: https://openapi-generator.tech + role: + canonical: canonical + created_at: 0 + default: true + description: description + id: 1 + name: name + rules: + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + updated_at: 0 + updated_at: 0 + username: username + last_login_at: 0 + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + - created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + invited_by: + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + invitation_email: invitation_email + invitation_resent_at: 0 + invitation_state: pending + invited_at: 0 + invited_by: null + last_login_at: 0 + locale: en + mfa_enabled: true + picture_url: https://openapi-generator.tech + role: + canonical: canonical + created_at: 0 + default: true + description: description + id: 1 + name: name + rules: + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + updated_at: 0 + updated_at: 0 + username: username + last_login_at: 0 + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + roles: + - canonical: canonical + created_at: 0 + default: true + description: description + id: 1 + name: name + rules: + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + updated_at: 0 + - canonical: canonical + created_at: 0 + default: true + description: description + id: 1 + name: name + rules: + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + updated_at: 0 + updated_at: 0 + properties: + data: + $ref: '#/components/schemas/Team' + required: + - data + type: object + diffPipeline_200_response: + example: + data: + groups: + - diff: + - delta_type: delta_type + line: line + - delta_type: delta_type + line: line + name: name + status: added + - diff: + - delta_type: delta_type + line: line + - delta_type: delta_type + line: line + name: name + status: added + jobs: + - diff: + - delta_type: delta_type + line: line + - delta_type: delta_type + line: line + name: name + status: added + - diff: + - delta_type: delta_type + line: line + - delta_type: delta_type + line: line + name: name + status: added + resource_types: + - diff: + - delta_type: delta_type + line: line + - delta_type: delta_type + line: line + name: name + status: added + - diff: + - delta_type: delta_type + line: line + - delta_type: delta_type + line: line + name: name + status: added + resources: + - diff: + - delta_type: delta_type + line: line + - delta_type: delta_type + line: line + name: name + status: added + - diff: + - delta_type: delta_type + line: line + - delta_type: delta_type + line: line + name: name + status: added + properties: + data: + $ref: '#/components/schemas/PipelineDiffs' + required: + - data + type: object + emailAuthenticationVerification_200_response: + example: + data: + owns: + - owns + - owns + permissions: + key: + action: action + effect: allow + id: 0 + resources: + - resources + - resources + token: token + properties: + data: + $ref: '#/components/schemas/UserSession' + required: + - data + type: object + getAPIKeys_200_response: + example: + data: + - canonical: canonical + description: description + id: 1 + last_seven: last_seven + last_used: 7 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + rules: + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + token: token + - canonical: canonical + description: description + id: 1 + last_seven: last_seven + last_used: 7 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + rules: + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + token: token + pagination: + index: 1 + size: 0 + total: 0 + properties: + data: + items: + $ref: '#/components/schemas/APIKey' + type: array + pagination: + $ref: '#/components/schemas/Pagination' + required: + - data + - pagination + type: object + getActiveAppearance_200_response: + example: + data: + canonical: canonical + color: + b: 37 + g: 153 + r: 20 + created_at: 0 + display_name: display_name + favicon: https://openapi-generator.tech + footer: footer + is_active: true + logo: https://openapi-generator.tech + name: name + tab_title: tab_title + updated_at: 0 + properties: + data: + $ref: '#/components/schemas/Appearance' + required: + - data + type: object + getAppVersion_200_response: + example: + data: + branch: branch + revision: revision + version: version + properties: + data: + $ref: '#/components/schemas/AppVersion' + required: + - data + type: object + getBuildPlan_200_response: + example: + data: + plan: '{}' + schema: schema + properties: + data: + $ref: '#/components/schemas/PublicPlan' + required: + - data + type: object + getBuildPreparation_200_response: + example: + data: + build_id: build_id + inputs: '{}' + inputs_satisfied: '{}' + max_running_builds: max_running_builds + missing_input_reasons: '{}' + paused_job: paused_job + paused_pipeline: paused_pipeline + properties: + data: + $ref: '#/components/schemas/Preparation' + required: + - data + type: object + getBuildResources_200_response: + example: + data: + inputs: + - first_occurrence: true + name: name + pipeline_id: 0 + version: + key: version + - first_occurrence: true + name: name + pipeline_id: 0 + version: + key: version + outputs: + - name: name + version: + key: version + - name: name + version: + key: version + properties: + data: + $ref: '#/components/schemas/BuildInputsOutputs' + required: + - data + type: object + getBuilds_200_response: + example: + data: + - api_url: api_url + end_time: 7 + id: 1 + job_name: job_name + name: name + pipeline_id: 1 + pipeline_name: pipeline_name + reap_time: 1 + start_time: 6 + status: status + team_name: team_name + - api_url: api_url + end_time: 7 + id: 1 + job_name: job_name + name: name + pipeline_id: 1 + pipeline_name: pipeline_name + reap_time: 1 + start_time: 6 + status: status + team_name: team_name + pagination_concourse: + next: + limit: 1 + since: 0 + until: 6 + previous: + limit: 1 + since: 0 + until: 6 + properties: + data: + items: + $ref: '#/components/schemas/Build' + type: array + pagination_concourse: + $ref: '#/components/schemas/PaginationConcourse' + required: + - data + - pagination_concourse + type: object + getBuildsWithVersionAsInput_200_response: + example: + data: + - api_url: api_url + end_time: 7 + id: 1 + job_name: job_name + name: name + pipeline_id: 1 + pipeline_name: pipeline_name + reap_time: 1 + start_time: 6 + status: status + team_name: team_name + - api_url: api_url + end_time: 7 + id: 1 + job_name: job_name + name: name + pipeline_id: 1 + pipeline_name: pipeline_name + reap_time: 1 + start_time: 6 + status: status + team_name: team_name + properties: + data: + items: + $ref: '#/components/schemas/Build' + type: array + required: + - data + type: object + getChildren_200_response: + example: + data: + - admins: + - created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + invitation_email: invitation_email + invitation_resent_at: 0 + invitation_state: pending + invited_at: 0 + invited_by: null + last_login_at: 0 + locale: en + mfa_enabled: true + picture_url: https://openapi-generator.tech + role: + canonical: canonical + created_at: 0 + default: true + description: description + id: 1 + name: name + rules: + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + updated_at: 0 + updated_at: 0 + username: username + - created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + invitation_email: invitation_email + invitation_resent_at: 0 + invitation_state: pending + invited_at: 0 + invited_by: null + last_login_at: 0 + locale: en + mfa_enabled: true + picture_url: https://openapi-generator.tech + role: + canonical: canonical + created_at: 0 + default: true + description: description + id: 1 + name: name + rules: + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + updated_at: 0 + updated_at: 0 + username: username + appearance: + canonical: canonical + color: + b: 37 + g: 153 + r: 20 + created_at: 0 + display_name: display_name + favicon: https://openapi-generator.tech + footer: footer + is_active: true + logo: https://openapi-generator.tech + name: name + tab_title: tab_title + updated_at: 0 + blocked: + - blocked + - blocked + can_children_create_appearance: true + can_create_appearance: true + canonical: canonical + ci_port: ci_port + ci_team_name: ci_team_name + ci_url: ci_url + created_at: 0 + has_children: true + id: 1 + mfa_enabled: true + name: name + quotas: true + subscription: + current_members: 0 + expires_at: 0 + members_count: 0 + plan: + canonical: canonical + name: name + updated_at: 0 + - admins: + - created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + invitation_email: invitation_email + invitation_resent_at: 0 + invitation_state: pending + invited_at: 0 + invited_by: null + last_login_at: 0 + locale: en + mfa_enabled: true + picture_url: https://openapi-generator.tech + role: + canonical: canonical + created_at: 0 + default: true + description: description + id: 1 + name: name + rules: + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + updated_at: 0 + updated_at: 0 + username: username + - created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + invitation_email: invitation_email + invitation_resent_at: 0 + invitation_state: pending + invited_at: 0 + invited_by: null + last_login_at: 0 + locale: en + mfa_enabled: true + picture_url: https://openapi-generator.tech + role: + canonical: canonical + created_at: 0 + default: true + description: description + id: 1 + name: name + rules: + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + updated_at: 0 + updated_at: 0 + username: username + appearance: + canonical: canonical + color: + b: 37 + g: 153 + r: 20 + created_at: 0 + display_name: display_name + favicon: https://openapi-generator.tech + footer: footer + is_active: true + logo: https://openapi-generator.tech + name: name + tab_title: tab_title + updated_at: 0 + blocked: + - blocked + - blocked + can_children_create_appearance: true + can_create_appearance: true + canonical: canonical + ci_port: ci_port + ci_team_name: ci_team_name + ci_url: ci_url + created_at: 0 + has_children: true + id: 1 + mfa_enabled: true + name: name + quotas: true + subscription: + current_members: 0 + expires_at: 0 + members_count: 0 + plan: + canonical: canonical + name: name + updated_at: 0 + pagination: + index: 1 + size: 0 + total: 0 + properties: + data: + items: + $ref: '#/components/schemas/Organization' + type: array + pagination: + $ref: '#/components/schemas/Pagination' + required: + - data + - pagination + type: object + getCloudCostManagementAccounts_200_response: + example: + data: + - account_id: account_id + canonical: canonical + cloud_provider: + abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + created_at: 0 + credential: + canonical: canonical + created_at: 0 + description: description + id: 1 + in_use: + config_repositories: + - canonical: canonical + name: name + - canonical: canonical + name: name + external_backends: + - engine: engine + environment: + canonical: canonical + project: + canonical: canonical + name: name + purpose: purpose + - engine: engine + environment: + canonical: canonical + project: + canonical: canonical + name: name + purpose: purpose + service_catalog_sources: + - canonical: canonical + name: name + - canonical: canonical + name: name + keys: + - keys + - keys + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + path: path + type: ssh + updated_at: 0 + enabled: true + external_backend: + configuration: + engine: engine + created_at: 0 + credential_canonical: credential_canonical + default: true + environment_canonical: environment_canonical + id: 1 + jwt: jwt + project_canonical: project_canonical + purpose: purpose + updated_at: 0 + id: 1 + last_ingestion_ended_at: 0 + last_ingestion_started_at: 0 + name: name + parent_account_id: parent_account_id + phase: green + status: idle + status_message: status_message + unfinalized_period: unfinalized_period + updated_at: 0 + - account_id: account_id + canonical: canonical + cloud_provider: + abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + created_at: 0 + credential: + canonical: canonical + created_at: 0 + description: description + id: 1 + in_use: + config_repositories: + - canonical: canonical + name: name + - canonical: canonical + name: name + external_backends: + - engine: engine + environment: + canonical: canonical + project: + canonical: canonical + name: name + purpose: purpose + - engine: engine + environment: + canonical: canonical + project: + canonical: canonical + name: name + purpose: purpose + service_catalog_sources: + - canonical: canonical + name: name + - canonical: canonical + name: name + keys: + - keys + - keys + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + path: path + type: ssh + updated_at: 0 + enabled: true + external_backend: + configuration: + engine: engine + created_at: 0 + credential_canonical: credential_canonical + default: true + environment_canonical: environment_canonical + id: 1 + jwt: jwt + project_canonical: project_canonical + purpose: purpose + updated_at: 0 + id: 1 + last_ingestion_ended_at: 0 + last_ingestion_started_at: 0 + name: name + parent_account_id: parent_account_id + phase: green + status: idle + status_message: status_message + unfinalized_period: unfinalized_period + updated_at: 0 + pagination: + index: 1 + size: 0 + total: 0 + properties: + data: + items: + $ref: '#/components/schemas/CloudCostManagementAccount' + type: array + pagination: + $ref: '#/components/schemas/Pagination' + required: + - data + type: object + getCloudCostManagementAccountsHasParent_200_response: + example: + data: + account_id: account_id + canonical: canonical + cloud_provider: + abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + created_at: 0 + enabled: true + id: 1 + last_ingestion_ended_at: 0 + last_ingestion_started_at: 0 + name: name + status: idle + status_message: status_message + updated_at: 0 + properties: + data: + $ref: '#/components/schemas/CloudCostManagementAccountParent' + required: + - data + type: object + getCloudCostManagementDashboard_200_response: + example: + data: + filter_values: + categories: + - categories + - categories + currencies: + - currencies + - currencies + environments: + - environments + - environments + instance_types: + - instance_types + - instance_types + linked_accounts: + - linked_accounts + - linked_accounts + linked_accounts_with_cp: '{}' + master_accounts: + - master_accounts + - master_accounts + master_accounts_with_cp: '{}' + projects: + - projects + - projects + providers: + - providers + - providers + regions: + - regions + - regions + resources: + - resources + - resources + services: + - services + - services + tags: + key: + - tags + - tags + project_resources: + - cost: 2.027123023002322 + project: project + providers: + - co2e: 1.2315135367772556 + cost: 4.145608029883936 + kwh: 7.386281948385884 + new_resources: 1 + provider: provider + resources: 1 + - co2e: 1.2315135367772556 + cost: 4.145608029883936 + kwh: 7.386281948385884 + new_resources: 1 + provider: provider + resources: 1 + - cost: 2.027123023002322 + project: project + providers: + - co2e: 1.2315135367772556 + cost: 4.145608029883936 + kwh: 7.386281948385884 + new_resources: 1 + provider: provider + resources: 1 + - co2e: 1.2315135367772556 + cost: 4.145608029883936 + kwh: 7.386281948385884 + new_resources: 1 + provider: provider + resources: 1 + projects: + buckets: + - buckets: + - null + - null + co2e: 3.616076749251911 + cost: 7.061401241503109 + kwh: 9.301444243932576 + value: value + - buckets: + - null + - null + co2e: 3.616076749251911 + cost: 7.061401241503109 + kwh: 9.301444243932576 + value: value + co2e: 2.3021358869347655 + cost: 5.962133916683182 + kwh: 5.637376656633329 + providers: + buckets: + - buckets: + - null + - null + co2e: 3.616076749251911 + cost: 7.061401241503109 + kwh: 9.301444243932576 + value: value + - buckets: + - null + - null + co2e: 3.616076749251911 + cost: 7.061401241503109 + kwh: 9.301444243932576 + value: value + co2e: 2.3021358869347655 + cost: 5.962133916683182 + kwh: 5.637376656633329 + total_co2e: 1.4658129805029452 + total_cost: 0.8008281904610115 + total_kwh: 6.027456183070403 + properties: + data: + $ref: '#/components/schemas/CloudCostManagementDashboard' + required: + - data + type: object + getCloudCostManagementFilterVaules_200_response: + example: + data: + categories: + - categories + - categories + currencies: + - currencies + - currencies + environments: + - environments + - environments + instance_types: + - instance_types + - instance_types + linked_accounts: + - linked_accounts + - linked_accounts + linked_accounts_with_cp: '{}' + master_accounts: + - master_accounts + - master_accounts + master_accounts_with_cp: '{}' + projects: + - projects + - projects + providers: + - providers + - providers + regions: + - regions + - regions + resources: + - resources + - resources + services: + - services + - services + tags: + key: + - tags + - tags + properties: + data: + $ref: '#/components/schemas/CloudCostManagementFilterValues' + required: + - data + type: object + getCloudCostManagementLinkedAccounts_200_response: + example: + data: + - account_id: account_id + cloud_provider: cloud_provider + id: 1 + name: name + - account_id: account_id + cloud_provider: cloud_provider + id: 1 + name: name + properties: + data: + items: + $ref: '#/components/schemas/CloudCostManagementLinkedAccount' + type: array + required: + - data + type: object + getCloudCostManagementProjectsDashboard_200_response: + example: + data: + project_providers: + buckets: + - buckets: + - null + - null + co2e: 3.616076749251911 + cost: 7.061401241503109 + kwh: 9.301444243932576 + value: value + - buckets: + - null + - null + co2e: 3.616076749251911 + cost: 7.061401241503109 + kwh: 9.301444243932576 + value: value + co2e: 2.3021358869347655 + cost: 5.962133916683182 + kwh: 5.637376656633329 + projects: + buckets: + - buckets: + - null + - null + co2e: 3.616076749251911 + cost: 7.061401241503109 + kwh: 9.301444243932576 + value: value + - buckets: + - null + - null + co2e: 3.616076749251911 + cost: 7.061401241503109 + kwh: 9.301444243932576 + value: value + co2e: 2.3021358869347655 + cost: 5.962133916683182 + kwh: 5.637376656633329 + properties: + data: + $ref: '#/components/schemas/CloudCostManagementProjectsDashboard' + required: + - data + type: object + getCloudCostManagementProvider_200_response: + example: + data: + cost_histogram: + buckets: + - buckets: + - null + - null + co2e: 3.616076749251911 + cost: 7.061401241503109 + kwh: 9.301444243932576 + value: value + - buckets: + - null + - null + co2e: 3.616076749251911 + cost: 7.061401241503109 + kwh: 9.301444243932576 + value: value + co2e: 2.3021358869347655 + cost: 5.962133916683182 + kwh: 5.637376656633329 + filter_values: + categories: + - categories + - categories + currencies: + - currencies + - currencies + environments: + - environments + - environments + instance_types: + - instance_types + - instance_types + linked_accounts: + - linked_accounts + - linked_accounts + linked_accounts_with_cp: '{}' + master_accounts: + - master_accounts + - master_accounts + master_accounts_with_cp: '{}' + projects: + - projects + - projects + providers: + - providers + - providers + regions: + - regions + - regions + resources: + - resources + - resources + services: + - services + - services + tags: + key: + - tags + - tags + properties: + data: + $ref: '#/components/schemas/CloudCostManagementProviderDetails' + required: + - data + type: object + getCloudCostManagementProviderDetails_200_response: + example: + data: + buckets: + - buckets: + - null + - null + co2e: 3.616076749251911 + cost: 7.061401241503109 + kwh: 9.301444243932576 + value: value + - buckets: + - null + - null + co2e: 3.616076749251911 + cost: 7.061401241503109 + kwh: 9.301444243932576 + value: value + co2e: 2.3021358869347655 + cost: 5.962133916683182 + kwh: 5.637376656633329 + properties: + data: + $ref: '#/components/schemas/CloudCostManagementHistogram' + required: + - data + type: object + getCloudCostManagementProviders_200_response: + example: + data: + cost_histogram: + buckets: + - buckets: + - null + - null + co2e: 3.616076749251911 + cost: 7.061401241503109 + kwh: 9.301444243932576 + value: value + - buckets: + - null + - null + co2e: 3.616076749251911 + cost: 7.061401241503109 + kwh: 9.301444243932576 + value: value + co2e: 2.3021358869347655 + cost: 5.962133916683182 + kwh: 5.637376656633329 + properties: + data: + $ref: '#/components/schemas/CloudCostManagementProviders' + required: + - data + type: object + getCloudCostManagementTagMapping_200_response: + example: + data: + all_tags: + - all_tags + - all_tags + created_at: 0 + environment_regex: environment_regex + environment_tags: + - environment_tags + - environment_tags + id: 1 + project_regex: project_regex + project_tags: + - project_tags + - project_tags + updated_at: 0 + properties: + data: + $ref: '#/components/schemas/CloudCostManagementTagMapping' + required: + - data + type: object + getCloudCostManagementTags_200_response: + example: + data: + - data + - data + properties: + data: + items: + type: string + type: array + required: + - data + type: object + getCloudProviders_200_response: + example: + data: + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + pagination: + index: 1 + size: 0 + total: 0 + properties: + data: + items: + $ref: '#/components/schemas/CloudProvider' + type: array + pagination: + $ref: '#/components/schemas/Pagination' + required: + - data + - pagination + type: object + getConfig_200_response: + example: + data: + authentication: + local: + enabled: true + oauth: + - client_id: client_id + provider: provider + type: type + - client_id: client_id + provider: provider + type: type + saml2: + - provider: provider + sso_url: https://openapi-generator.tech + - provider: provider + sso_url: https://openapi-generator.tech + properties: + data: + $ref: '#/components/schemas/AppConfig' + required: + - data + type: object + getCountries_200_response: + example: + data: + - code: code + name: name + - code: code + name: name + properties: + data: + items: + $ref: '#/components/schemas/Country' + type: array + required: + - data + type: object + getCredentialOptions_200_response: + example: + data: '{}' + properties: + data: + description: The credential options. The shape of the items could be anything, since each service can have very different options. + type: object + required: + - data + type: object + getEnvironments_200_response: + example: + data: + - canonical: canonical + cloud_provider: + abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + color: color + created_at: 0 + icon: icon + id: 1 + updated_at: 0 + use_case: use_case + - canonical: canonical + cloud_provider: + abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + color: color + created_at: 0 + icon: icon + id: 1 + updated_at: 0 + use_case: use_case + pagination: + index: 1 + size: 0 + total: 0 + properties: + data: + items: + $ref: '#/components/schemas/Environment' + type: array + pagination: + $ref: '#/components/schemas/Pagination' + required: + - data + - pagination + type: object + getEvents_200_response: + description: The list of log lines + example: + data: + - color: color + icon: icon + id: 0 + message: message + severity: info + tags: + - key: key + value: value + - key: key + value: value + timestamp: 6 + title: title + type: Cycloid + - color: color + icon: icon + id: 0 + message: message + severity: info + tags: + - key: key + value: value + - key: key + value: value + timestamp: 6 + title: title + type: Cycloid + properties: + data: + items: + $ref: '#/components/schemas/Event' + type: array + required: + - data + type: object + getEventsTags_200_response: + description: The list of tags with associated set of values + example: + data: '{}' + properties: + data: + properties: {} + type: object + required: + - data + type: object + getExternalBackends_200_response: + example: + data: + - configuration: + engine: engine + created_at: 0 + credential_canonical: credential_canonical + default: true + environment_canonical: environment_canonical + id: 1 + jwt: jwt + project_canonical: project_canonical + purpose: purpose + updated_at: 0 + - configuration: + engine: engine + created_at: 0 + credential_canonical: credential_canonical + default: true + environment_canonical: environment_canonical + id: 1 + jwt: jwt + project_canonical: project_canonical + purpose: purpose + updated_at: 0 + pagination: + index: 1 + size: 0 + total: 0 + properties: + data: + items: + $ref: '#/components/schemas/ExternalBackend' + type: array + pagination: + $ref: '#/components/schemas/Pagination' + required: + - data + type: object + getInfraImportPresets_200_response: + example: + data: + - name: name + resources: + - resources + - resources + - name: name + resources: + - resources + - resources + pagination: + index: 1 + size: 0 + total: 0 + properties: + data: + items: + $ref: '#/components/schemas/InfraImportPreset' + type: array + pagination: + $ref: '#/components/schemas/Pagination' + required: + - data + - pagination + type: object + getInfraImportResource_200_response: + example: + data: + - id: id + - id: id + pagination: + index: 1 + size: 0 + total: 0 + properties: + data: + items: + $ref: '#/components/schemas/InfraImportResource' + type: array + pagination: + $ref: '#/components/schemas/Pagination' + required: + - data + - pagination + type: object + getInfraImportResources_200_response: + example: + data: + - attributes: + important: + - important + - important + normalized_status: '{}' + status: status + canonical: canonical + category: category + description: description + image: https://openapi-generator.tech + is_edge: true + is_node: true + keywords: + - keywords + - keywords + short_description: short_description + - attributes: + important: + - important + - important + normalized_status: '{}' + status: status + canonical: canonical + category: category + description: description + image: https://openapi-generator.tech + is_edge: true + is_node: true + keywords: + - keywords + - keywords + short_description: short_description + pagination: + index: 1 + size: 0 + total: 0 + properties: + data: + items: + $ref: '#/components/schemas/TerraformProviderResourceSimple' + type: array + pagination: + $ref: '#/components/schemas/Pagination' + required: + - data + - pagination + type: object + getInfraPolicies_200_response: + example: + data: + - body: body + canonical: canonical + created_at: 6 + description: description + enabled: true + id: 1 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + severity: critical + updated_at: 1 + - body: body + canonical: canonical + created_at: 6 + description: description + enabled: true + id: 1 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + severity: critical + updated_at: 1 + pagination: + index: 1 + size: 0 + total: 0 + properties: + data: + items: + $ref: '#/components/schemas/InfraPolicy' + type: array + pagination: + $ref: '#/components/schemas/Pagination' + required: + - data + type: object + getInventoryResource_200_response: + example: + data: + attributes: '{}' + category: category + cpu: 0 + custom_attributes: '{}' + description: description + environment_canonical: environment_canonical + id: 1 + image: https://openapi-generator.tech + keywords: + - keywords + - keywords + label: label + memory: 0 + mode: mode + module: module + name: name + project_canonical: project_canonical + provider: provider + short_description: short_description + storage: 0 + type: type + properties: + data: + $ref: '#/components/schemas/InventoryResource' + required: + - data + type: object + getJob_200_response: + example: + data: + disable_manual_trigger: true + finished_build: + api_url: api_url + end_time: 7 + id: 1 + job_name: job_name + name: name + pipeline_id: 1 + pipeline_name: pipeline_name + reap_time: 1 + start_time: 6 + status: status + team_name: team_name + first_logged_build_id: 1 + groups: + - groups + - groups + has_new_inputs: true + id: 7 + inputs: + - name: name + passed: + - passed + - passed + resource: resource + trigger: true + version: + every: true + latest: true + pinned: + key: pinned + - name: name + passed: + - passed + - passed + resource: resource + trigger: true + version: + every: true + latest: true + pinned: + key: pinned + name: name + next_build: + api_url: api_url + end_time: 7 + id: 1 + job_name: job_name + name: name + pipeline_id: 1 + pipeline_name: pipeline_name + reap_time: 1 + start_time: 6 + status: status + team_name: team_name + outputs: + - name: name + resource: resource + - name: name + resource: resource + paused: true + pipeline_id: 4 + pipeline_name: pipeline_name + team_name: team_name + transition_build: + api_url: api_url + end_time: 7 + id: 1 + job_name: job_name + name: name + pipeline_id: 1 + pipeline_name: pipeline_name + reap_time: 1 + start_time: 6 + status: status + team_name: team_name + properties: + data: + $ref: '#/components/schemas/Job' + required: + - data + type: object + getJobs_200_response: + example: + data: + - disable_manual_trigger: true + finished_build: + api_url: api_url + end_time: 7 + id: 1 + job_name: job_name + name: name + pipeline_id: 1 + pipeline_name: pipeline_name + reap_time: 1 + start_time: 6 + status: status + team_name: team_name + first_logged_build_id: 1 + groups: + - groups + - groups + has_new_inputs: true + id: 7 + inputs: + - name: name + passed: + - passed + - passed + resource: resource + trigger: true + version: + every: true + latest: true + pinned: + key: pinned + - name: name + passed: + - passed + - passed + resource: resource + trigger: true + version: + every: true + latest: true + pinned: + key: pinned + name: name + next_build: + api_url: api_url + end_time: 7 + id: 1 + job_name: job_name + name: name + pipeline_id: 1 + pipeline_name: pipeline_name + reap_time: 1 + start_time: 6 + status: status + team_name: team_name + outputs: + - name: name + resource: resource + - name: name + resource: resource + paused: true + pipeline_id: 4 + pipeline_name: pipeline_name + team_name: team_name + transition_build: + api_url: api_url + end_time: 7 + id: 1 + job_name: job_name + name: name + pipeline_id: 1 + pipeline_name: pipeline_name + reap_time: 1 + start_time: 6 + status: status + team_name: team_name + - disable_manual_trigger: true + finished_build: + api_url: api_url + end_time: 7 + id: 1 + job_name: job_name + name: name + pipeline_id: 1 + pipeline_name: pipeline_name + reap_time: 1 + start_time: 6 + status: status + team_name: team_name + first_logged_build_id: 1 + groups: + - groups + - groups + has_new_inputs: true + id: 7 + inputs: + - name: name + passed: + - passed + - passed + resource: resource + trigger: true + version: + every: true + latest: true + pinned: + key: pinned + - name: name + passed: + - passed + - passed + resource: resource + trigger: true + version: + every: true + latest: true + pinned: + key: pinned + name: name + next_build: + api_url: api_url + end_time: 7 + id: 1 + job_name: job_name + name: name + pipeline_id: 1 + pipeline_name: pipeline_name + reap_time: 1 + start_time: 6 + status: status + team_name: team_name + outputs: + - name: name + resource: resource + - name: name + resource: resource + paused: true + pipeline_id: 4 + pipeline_name: pipeline_name + team_name: team_name + transition_build: + api_url: api_url + end_time: 7 + id: 1 + job_name: job_name + name: name + pipeline_id: 1 + pipeline_name: pipeline_name + reap_time: 1 + start_time: 6 + status: status + team_name: team_name + pagination: + index: 1 + size: 0 + total: 0 + properties: + data: + items: + $ref: '#/components/schemas/Job' + type: array + pagination: + $ref: '#/components/schemas/Pagination' + required: + - data + - pagination + type: object + getKpis_200_response: + example: + data: + - canonical: canonical + config: '{}' + created_at: 0 + data_set: + - '{}' + - '{}' + description: description + environment_canonical: environment_canonical + error: error + favorite: true + id: 1 + job_name: job_name + name: name + pipeline_name: pipeline_name + project_canonical: project_canonical + type: build_avg_time + updated_at: 0 + widget: bars + - canonical: canonical + config: '{}' + created_at: 0 + data_set: + - '{}' + - '{}' + description: description + environment_canonical: environment_canonical + error: error + favorite: true + id: 1 + job_name: job_name + name: name + pipeline_name: pipeline_name + project_canonical: project_canonical + type: build_avg_time + updated_at: 0 + widget: bars + pagination: + index: 1 + size: 0 + total: 0 + properties: + data: + items: + $ref: '#/components/schemas/KPI' + type: array + pagination: + $ref: '#/components/schemas/Pagination' + required: + - data + type: object + getLicence_200_response: + example: + data: + company_name: company_name + created_at: 0 + current_members: 0 + email_address: email_address + expires_at: 0 + key: key + members_count: 0 + on_prem: true + updated_at: 0 + version: version + properties: + data: + $ref: '#/components/schemas/Licence' + required: + - data + type: object + getOAuthUser_200_response: + example: + data: + token: token + user: + country_code: country_code + email: email + family_name: family_name + given_name: given_name + invitation_token: invitation_token + locale: en + picture_url: https://openapi-generator.tech + social_id: social_id + username: username + properties: + data: + $ref: '#/components/schemas/UserOAuth' + required: + - data + type: object + getOrgMembers_200_response: + example: + data: + - created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + invitation_email: invitation_email + invitation_resent_at: 0 + invitation_state: pending + invited_at: 0 + invited_by: null + last_login_at: 0 + locale: en + mfa_enabled: true + picture_url: https://openapi-generator.tech + role: + canonical: canonical + created_at: 0 + default: true + description: description + id: 1 + name: name + rules: + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + updated_at: 0 + updated_at: 0 + username: username + - created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + invitation_email: invitation_email + invitation_resent_at: 0 + invitation_state: pending + invited_at: 0 + invited_by: null + last_login_at: 0 + locale: en + mfa_enabled: true + picture_url: https://openapi-generator.tech + role: + canonical: canonical + created_at: 0 + default: true + description: description + id: 1 + name: name + rules: + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + updated_at: 0 + updated_at: 0 + username: username + pagination: + index: 1 + size: 0 + total: 0 + properties: + data: + items: + $ref: '#/components/schemas/MemberOrg' + type: array + pagination: + $ref: '#/components/schemas/Pagination' + required: + - data + - pagination + type: object + getPendingMemberInvitation_200_response: + example: + data: + email: email + properties: + data: + $ref: '#/components/schemas/PendingMemberInvitation' + required: + - data + type: object + getPipelineConfig_200_response: + example: + data: data + properties: + data: + type: string + required: + - data + type: object + getPipelineResources_200_response: + example: + data: + - build: + end_time: 5 + id: 1 + job_name: job_name + name: name + pipeline_id: 2 + pipeline_name: pipeline_name + plan: '{}' + start_time: 5 + status: status + team_name: team_name + icon: icon + last_checked: 0 + name: name + pin_comment: pin_comment + pinned_in_config: true + pinned_version: + key: pinned_version + pipeline_id: 6 + pipeline_name: pipeline_name + team_name: team_name + type: type + - build: + end_time: 5 + id: 1 + job_name: job_name + name: name + pipeline_id: 2 + pipeline_name: pipeline_name + plan: '{}' + start_time: 5 + status: status + team_name: team_name + icon: icon + last_checked: 0 + name: name + pin_comment: pin_comment + pinned_in_config: true + pinned_version: + key: pinned_version + pipeline_id: 6 + pipeline_name: pipeline_name + team_name: team_name + type: type + pagination: + index: 1 + size: 0 + total: 0 + properties: + data: + items: + $ref: '#/components/schemas/Resource' + type: array + pagination: + $ref: '#/components/schemas/Pagination' + required: + - data + - pagination + type: object + getPipelineVariables_200_response: + example: + data: + has_saved_yaml_vars: true + yaml_vars: yaml_vars + properties: + data: + $ref: '#/components/schemas/PipelineVariables' + required: + - data + type: object + getPipelines_200_response: + example: + data: + - archived: true + created_at: 0 + environment: + canonical: canonical + cloud_provider: + abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + color: color + created_at: 0 + icon: icon + id: 1 + updated_at: 0 + use_case: use_case + groups: + - jobs: + - jobs + - jobs + name: name + resources: + - resources + - resources + - jobs: + - jobs + - jobs + name: name + resources: + - resources + - resources + id: 0 + jobs: + - disable_manual_trigger: true + finished_build: + api_url: api_url + end_time: 7 + id: 1 + job_name: job_name + name: name + pipeline_id: 1 + pipeline_name: pipeline_name + reap_time: 1 + start_time: 6 + status: status + team_name: team_name + first_logged_build_id: 1 + groups: + - groups + - groups + has_new_inputs: true + id: 7 + inputs: + - name: name + passed: + - passed + - passed + resource: resource + trigger: true + version: + every: true + latest: true + pinned: + key: pinned + - name: name + passed: + - passed + - passed + resource: resource + trigger: true + version: + every: true + latest: true + pinned: + key: pinned + name: name + next_build: + api_url: api_url + end_time: 7 + id: 1 + job_name: job_name + name: name + pipeline_id: 1 + pipeline_name: pipeline_name + reap_time: 1 + start_time: 6 + status: status + team_name: team_name + outputs: + - name: name + resource: resource + - name: name + resource: resource + paused: true + pipeline_id: 4 + pipeline_name: pipeline_name + team_name: team_name + transition_build: + api_url: api_url + end_time: 7 + id: 1 + job_name: job_name + name: name + pipeline_id: 1 + pipeline_name: pipeline_name + reap_time: 1 + start_time: 6 + status: status + team_name: team_name + - disable_manual_trigger: true + finished_build: + api_url: api_url + end_time: 7 + id: 1 + job_name: job_name + name: name + pipeline_id: 1 + pipeline_name: pipeline_name + reap_time: 1 + start_time: 6 + status: status + team_name: team_name + first_logged_build_id: 1 + groups: + - groups + - groups + has_new_inputs: true + id: 7 + inputs: + - name: name + passed: + - passed + - passed + resource: resource + trigger: true + version: + every: true + latest: true + pinned: + key: pinned + - name: name + passed: + - passed + - passed + resource: resource + trigger: true + version: + every: true + latest: true + pinned: + key: pinned + name: name + next_build: + api_url: api_url + end_time: 7 + id: 1 + job_name: job_name + name: name + pipeline_id: 1 + pipeline_name: pipeline_name + reap_time: 1 + start_time: 6 + status: status + team_name: team_name + outputs: + - name: name + resource: resource + - name: name + resource: resource + paused: true + pipeline_id: 4 + pipeline_name: pipeline_name + team_name: team_name + transition_build: + api_url: api_url + end_time: 7 + id: 1 + job_name: job_name + name: name + pipeline_id: 1 + pipeline_name: pipeline_name + reap_time: 1 + start_time: 6 + status: status + team_name: team_name + name: name + paused: true + project: + canonical: canonical + config_repository_canonical: config_repository_canonical + created_at: 0 + description: description + environments: + - canonical: canonical + cloud_provider: + abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + color: color + created_at: 0 + icon: icon + id: 1 + updated_at: 0 + use_case: use_case + - canonical: canonical + cloud_provider: + abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + color: color + created_at: 0 + icon: icon + id: 1 + updated_at: 0 + use_case: use_case + favorite: true + id: 1 + import_status: succeeded + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + service_catalog: + author: author + blueprint: true + canonical: canonical + cloud_providers: + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + created_at: 0 + dependencies: + - ref: ref + required: true + - ref: ref + required: true + description: description + directory: directory + form_enabled: true + id: 1 + image: https://openapi-generator.tech + import_status: succeeded + keywords: + - keywords + - keywords + name: name + organization_canonical: organization_canonical + quota_enabled: true + readme: readme + ref: ref + service_catalog_source_canonical: service_catalog_source_canonical + team: + canonical: canonical + created_at: 0 + id: 1 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + updated_at: 0 + technologies: + - technology: technology + version: version + - technology: technology + version: version + trusted: true + updated_at: 0 + visibility: visibility + team: + canonical: canonical + created_at: 0 + id: 1 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + updated_at: 0 + updated_at: 0 + public: true + started: true + status: status + team_name: team_name + updated_at: 0 + use_case: use_case + - archived: true + created_at: 0 + environment: + canonical: canonical + cloud_provider: + abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + color: color + created_at: 0 + icon: icon + id: 1 + updated_at: 0 + use_case: use_case + groups: + - jobs: + - jobs + - jobs + name: name + resources: + - resources + - resources + - jobs: + - jobs + - jobs + name: name + resources: + - resources + - resources + id: 0 + jobs: + - disable_manual_trigger: true + finished_build: + api_url: api_url + end_time: 7 + id: 1 + job_name: job_name + name: name + pipeline_id: 1 + pipeline_name: pipeline_name + reap_time: 1 + start_time: 6 + status: status + team_name: team_name + first_logged_build_id: 1 + groups: + - groups + - groups + has_new_inputs: true + id: 7 + inputs: + - name: name + passed: + - passed + - passed + resource: resource + trigger: true + version: + every: true + latest: true + pinned: + key: pinned + - name: name + passed: + - passed + - passed + resource: resource + trigger: true + version: + every: true + latest: true + pinned: + key: pinned + name: name + next_build: + api_url: api_url + end_time: 7 + id: 1 + job_name: job_name + name: name + pipeline_id: 1 + pipeline_name: pipeline_name + reap_time: 1 + start_time: 6 + status: status + team_name: team_name + outputs: + - name: name + resource: resource + - name: name + resource: resource + paused: true + pipeline_id: 4 + pipeline_name: pipeline_name + team_name: team_name + transition_build: + api_url: api_url + end_time: 7 + id: 1 + job_name: job_name + name: name + pipeline_id: 1 + pipeline_name: pipeline_name + reap_time: 1 + start_time: 6 + status: status + team_name: team_name + - disable_manual_trigger: true + finished_build: + api_url: api_url + end_time: 7 + id: 1 + job_name: job_name + name: name + pipeline_id: 1 + pipeline_name: pipeline_name + reap_time: 1 + start_time: 6 + status: status + team_name: team_name + first_logged_build_id: 1 + groups: + - groups + - groups + has_new_inputs: true + id: 7 + inputs: + - name: name + passed: + - passed + - passed + resource: resource + trigger: true + version: + every: true + latest: true + pinned: + key: pinned + - name: name + passed: + - passed + - passed + resource: resource + trigger: true + version: + every: true + latest: true + pinned: + key: pinned + name: name + next_build: + api_url: api_url + end_time: 7 + id: 1 + job_name: job_name + name: name + pipeline_id: 1 + pipeline_name: pipeline_name + reap_time: 1 + start_time: 6 + status: status + team_name: team_name + outputs: + - name: name + resource: resource + - name: name + resource: resource + paused: true + pipeline_id: 4 + pipeline_name: pipeline_name + team_name: team_name + transition_build: + api_url: api_url + end_time: 7 + id: 1 + job_name: job_name + name: name + pipeline_id: 1 + pipeline_name: pipeline_name + reap_time: 1 + start_time: 6 + status: status + team_name: team_name + name: name + paused: true + project: + canonical: canonical + config_repository_canonical: config_repository_canonical + created_at: 0 + description: description + environments: + - canonical: canonical + cloud_provider: + abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + color: color + created_at: 0 + icon: icon + id: 1 + updated_at: 0 + use_case: use_case + - canonical: canonical + cloud_provider: + abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + color: color + created_at: 0 + icon: icon + id: 1 + updated_at: 0 + use_case: use_case + favorite: true + id: 1 + import_status: succeeded + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + service_catalog: + author: author + blueprint: true + canonical: canonical + cloud_providers: + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + created_at: 0 + dependencies: + - ref: ref + required: true + - ref: ref + required: true + description: description + directory: directory + form_enabled: true + id: 1 + image: https://openapi-generator.tech + import_status: succeeded + keywords: + - keywords + - keywords + name: name + organization_canonical: organization_canonical + quota_enabled: true + readme: readme + ref: ref + service_catalog_source_canonical: service_catalog_source_canonical + team: + canonical: canonical + created_at: 0 + id: 1 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + updated_at: 0 + technologies: + - technology: technology + version: version + - technology: technology + version: version + trusted: true + updated_at: 0 + visibility: visibility + team: + canonical: canonical + created_at: 0 + id: 1 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + updated_at: 0 + updated_at: 0 + public: true + started: true + status: status + team_name: team_name + updated_at: 0 + use_case: use_case + pagination: + index: 1 + size: 0 + total: 0 + properties: + data: + items: + $ref: '#/components/schemas/Pipeline' + type: array + pagination: + $ref: '#/components/schemas/Pagination' + required: + - data + - pagination + type: object + getPolicies_200_response: + example: + data: + - code: code + created_at: 0 + description: description + entities: + - entities + - entities + id: 1 + updated_at: 0 + - code: code + created_at: 0 + description: description + entities: + - entities + - entities + id: 1 + updated_at: 0 + pagination: + index: 1 + size: 0 + total: 0 + properties: + data: + items: + $ref: '#/components/schemas/Policy' + type: array + pagination: + $ref: '#/components/schemas/Pagination' + required: + - data + - pagination + type: object + getProjEnvLogEntries_200_response: + description: The list of log lines + example: + data: + - host: host + message: message + timestamp: timestamp + - host: host + message: message + timestamp: timestamp + properties: + data: + items: + $ref: '#/components/schemas/LogSourceEntry' + type: array + required: + - data + type: object + getProjEnvLogSources_200_response: + description: The list of log sources. + example: + data: + - id: id + - id: id + properties: + data: + items: + $ref: '#/components/schemas/LogSource' + type: array + required: + - data + type: object + getProjInfrastructure_200_response: + description: The Infrastructure from the Project's environment + example: + data: + config: '{}' + graph: + edges: + - canonicals: + - canonicals + - canonicals + id: id + source: source + target: target + - canonicals: + - canonicals + - canonicals + id: id + source: source + target: target + nodes: + - canonical: canonical + id: id + name: name + position: + - 0 + - 0 + resource: + attributes: + important: + - important + - important + normalized_status: '{}' + status: status + canonical: canonical + category: category + description: description + image: https://openapi-generator.tech + is_edge: true + is_node: true + keywords: + - keywords + - keywords + short_description: short_description + - canonical: canonical + id: id + name: name + position: + - 0 + - 0 + resource: + attributes: + important: + - important + - important + normalized_status: '{}' + status: status + canonical: canonical + category: category + description: description + image: https://openapi-generator.tech + is_edge: true + is_node: true + keywords: + - keywords + - keywords + short_description: short_description + properties: + data: + $ref: '#/components/schemas/Infrastructure' + required: + - data + type: object + getProjectConfig_200_response: + example: + data: + forms: + use_cases: + - name: name + sections: + - groups: + - condition: condition + folded: true + name: name + technologies: + - technologies + - technologies + vars: + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + - condition: condition + folded: true + name: name + technologies: + - technologies + - technologies + vars: + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + name: name + - groups: + - condition: condition + folded: true + name: name + technologies: + - technologies + - technologies + vars: + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + - condition: condition + folded: true + name: name + technologies: + - technologies + - technologies + vars: + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + name: name + - name: name + sections: + - groups: + - condition: condition + folded: true + name: name + technologies: + - technologies + - technologies + vars: + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + - condition: condition + folded: true + name: name + technologies: + - technologies + - technologies + vars: + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + name: name + - groups: + - condition: condition + folded: true + name: name + technologies: + - technologies + - technologies + vars: + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + - condition: condition + folded: true + name: name + technologies: + - technologies + - technologies + vars: + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + name: name + version: version + resource_pool_canonical: resource_pool_canonical + use_case: use_case + properties: + data: + $ref: '#/components/schemas/ProjectEnvironmentConfig' + type: object + getProjectImport_200_response: + example: + data: + error: error + logs: logs + project_canonical: project_canonical + service_catalog_ref: service_catalog_ref + status: succeeded + properties: + data: + $ref: '#/components/schemas/InfraImport' + required: + - data + type: object + getProjects_200_response: + example: + data: + - canonical: canonical + config_repository_canonical: config_repository_canonical + created_at: 0 + description: description + environments: + - canonical: canonical + cloud_provider: + abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + color: color + created_at: 0 + icon: icon + id: 1 + updated_at: 0 + use_case: use_case + - canonical: canonical + cloud_provider: + abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + color: color + created_at: 0 + icon: icon + id: 1 + updated_at: 0 + use_case: use_case + favorite: true + id: 1 + import_status: succeeded + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + service_catalog: + author: author + blueprint: true + canonical: canonical + cloud_providers: + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + created_at: 0 + dependencies: + - ref: ref + required: true + - ref: ref + required: true + description: description + directory: directory + form_enabled: true + id: 1 + image: https://openapi-generator.tech + import_status: succeeded + keywords: + - keywords + - keywords + name: name + organization_canonical: organization_canonical + quota_enabled: true + readme: readme + ref: ref + service_catalog_source_canonical: service_catalog_source_canonical + team: + canonical: canonical + created_at: 0 + id: 1 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + updated_at: 0 + technologies: + - technology: technology + version: version + - technology: technology + version: version + trusted: true + updated_at: 0 + visibility: visibility + team: + canonical: canonical + created_at: 0 + id: 1 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + updated_at: 0 + updated_at: 0 + - canonical: canonical + config_repository_canonical: config_repository_canonical + created_at: 0 + description: description + environments: + - canonical: canonical + cloud_provider: + abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + color: color + created_at: 0 + icon: icon + id: 1 + updated_at: 0 + use_case: use_case + - canonical: canonical + cloud_provider: + abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + color: color + created_at: 0 + icon: icon + id: 1 + updated_at: 0 + use_case: use_case + favorite: true + id: 1 + import_status: succeeded + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + service_catalog: + author: author + blueprint: true + canonical: canonical + cloud_providers: + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + created_at: 0 + dependencies: + - ref: ref + required: true + - ref: ref + required: true + description: description + directory: directory + form_enabled: true + id: 1 + image: https://openapi-generator.tech + import_status: succeeded + keywords: + - keywords + - keywords + name: name + organization_canonical: organization_canonical + quota_enabled: true + readme: readme + ref: ref + service_catalog_source_canonical: service_catalog_source_canonical + team: + canonical: canonical + created_at: 0 + id: 1 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + updated_at: 0 + technologies: + - technology: technology + version: version + - technology: technology + version: version + trusted: true + updated_at: 0 + visibility: visibility + team: + canonical: canonical + created_at: 0 + id: 1 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + updated_at: 0 + updated_at: 0 + pagination: + index: 1 + size: 0 + total: 0 + properties: + data: + items: + $ref: '#/components/schemas/Project' + type: array + pagination: + $ref: '#/components/schemas/Pagination' + required: + - data + - pagination + type: object + getResource_200_response: + example: + data: + build: + end_time: 5 + id: 1 + job_name: job_name + name: name + pipeline_id: 2 + pipeline_name: pipeline_name + plan: '{}' + start_time: 5 + status: status + team_name: team_name + icon: icon + last_checked: 0 + name: name + pin_comment: pin_comment + pinned_in_config: true + pinned_version: + key: pinned_version + pipeline_id: 6 + pipeline_name: pipeline_name + team_name: team_name + type: type + properties: + data: + $ref: '#/components/schemas/Resource' + required: + - data + type: object + getResourceVersions_200_response: + example: + data: + - enabled: true + id: 0 + metadata: + - name: name + value: value + - name: name + value: value + version: + key: version + - enabled: true + id: 0 + metadata: + - name: name + value: value + - name: name + value: value + version: + key: version + pagination_concourse: + next: + limit: 1 + since: 0 + until: 6 + previous: + limit: 1 + since: 0 + until: 6 + properties: + data: + items: + $ref: '#/components/schemas/ResourceVersion' + type: array + pagination_concourse: + $ref: '#/components/schemas/PaginationConcourse' + required: + - data + - pagination_concourse + type: object + getRole_200_response: + example: + data: + canonical: canonical + created_at: 0 + default: true + description: description + id: 1 + name: name + rules: + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + updated_at: 0 + properties: + data: + $ref: '#/components/schemas/Role' + required: + - data + type: object + getRoles_200_response: + example: + data: + - canonical: canonical + created_at: 0 + default: true + description: description + id: 1 + name: name + rules: + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + updated_at: 0 + - canonical: canonical + created_at: 0 + default: true + description: description + id: 1 + name: name + rules: + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + updated_at: 0 + pagination: + index: 1 + size: 0 + total: 0 + properties: + data: + items: + $ref: '#/components/schemas/Role' + type: array + pagination: + $ref: '#/components/schemas/Pagination' + required: + - data + - pagination + type: object + getRunningInfraAWS_200_response: + example: + data: + buckets: + total_amount: 0 + cache_clusters: + total_amount: 0 + db_instances: + total_amount: 0 + images: + total_amount: 0 + instances: + total_amount: 0 + load_balancers_v1: + total_amount: 0 + load_balancers_v2: + total_amount: 0 + security_groups: + total_amount: 0 + snapshots: + total_amount: 0 + subnets: + total_amount: 0 + volumes: + total_amount: 0 + vpcs: + total_amount: 0 + properties: + data: + $ref: '#/components/schemas/AWSInfrastructureResourcesAggregation' + required: + - data + type: object + getRunningInfraAWSBuckets_200_response: + description: Although this response contains a collection of items, it doesn't have pagination because the AWS SDK, to request the S3 Buckets resources, doesn't provide any pagination mechanism. + example: + data: + - null + - null + properties: + data: + items: + $ref: '#/components/schemas/AWSInfrastructureResourceBucket' + type: array + required: + - data + type: object + getRunningInfraAWSDBInstances_200_response: + example: + data: + - null + - null + pagination: + next: next + properties: + data: + items: + $ref: '#/components/schemas/AWSInfrastructureResourceDBInstance' + type: array + pagination: + $ref: '#/components/schemas/PaginationAWS' + required: + - data + type: object + getRunningInfraAWSElasticacheClusters_200_response: + example: + data: + - null + - null + pagination: + next: next + properties: + data: + items: + $ref: '#/components/schemas/AWSInfrastructureResourceElasticacheCluster' + type: array + pagination: + $ref: '#/components/schemas/PaginationAWS' + required: + - data + type: object + getRunningInfraAWSImages_200_response: + description: Although this response contains a collection of items, it doesn't have pagination because the AWS SDK, to request the images resources, doesn't provide any pagination mechanism. + example: + data: + - null + - null + properties: + data: + items: + $ref: '#/components/schemas/AWSInfrastructureResourceImage' + type: array + required: + - data + type: object + getRunningInfraAWSInstances_200_response: + example: + data: + - null + - null + pagination: + next: next + properties: + data: + items: + $ref: '#/components/schemas/AWSInfrastructureResourceInstance' + type: array + pagination: + $ref: '#/components/schemas/PaginationAWS' + required: + - data + type: object + getRunningInfraAWSLoadBalancersV1_200_response: + example: + data: + - null + - null + pagination: + next: next + properties: + data: + items: + $ref: '#/components/schemas/AWSInfrastructureResourceLoadBalancerV1' + type: array + pagination: + $ref: '#/components/schemas/PaginationAWS' + required: + - data + type: object + getRunningInfraAWSLoadBalancersV2_200_response: + example: + data: + - null + - null + pagination: + next: next + properties: + data: + items: + $ref: '#/components/schemas/AWSInfrastructureResourceLoadBalancerV2' + type: array + pagination: + $ref: '#/components/schemas/PaginationAWS' + required: + - data + type: object + getRunningInfraAWSSecurityGroups_200_response: + example: + data: + - null + - null + pagination: + next: next + properties: + data: + items: + $ref: '#/components/schemas/AWSInfrastructureResourceSecurityGroup' + type: array + pagination: + $ref: '#/components/schemas/PaginationAWS' + required: + - data + type: object + getRunningInfraAWSSnapshots_200_response: + example: + data: + - null + - null + pagination: + next: next + properties: + data: + items: + $ref: '#/components/schemas/AWSInfrastructureResourceSnapshot' + type: array + pagination: + $ref: '#/components/schemas/PaginationAWS' + required: + - data + type: object + getRunningInfraAWSSubnets_200_response: + description: Although this response contains a collection of items, it doesn't have pagination because the AWS SDK, to request the subnets resources, doesn't provide any pagination mechanism. + example: + data: + - null + - null + properties: + data: + items: + $ref: '#/components/schemas/AWSInfrastructureResourceSubnet' + type: array + required: + - data + type: object + getRunningInfraAWSVPCs_200_response: + description: Although this response contains a collection of items, it doesn't have pagination because the AWS SDK, to request the VPCs resources, doesn't provide any pagination mechanism. + example: + data: + - null + - null + properties: + data: + items: + $ref: '#/components/schemas/AWSInfrastructureResourceVPC' + type: array + required: + - data + type: object + getRunningInfraAWSVolumes_200_response: + example: + data: + - null + - null + pagination: + next: next + properties: + data: + items: + $ref: '#/components/schemas/AWSInfrastructureResourceVolume' + type: array + pagination: + $ref: '#/components/schemas/PaginationAWS' + required: + - data + type: object + getServiceCatalogSources_200_response: + example: + data: + - branch: branch + canonical: canonical + changes: + created: + - author: author + blueprint: true + canonical: canonical + cloud_providers: + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + created_at: 0 + dependencies: + - ref: ref + required: true + - ref: ref + required: true + description: description + directory: directory + form_enabled: true + id: 1 + image: https://openapi-generator.tech + import_status: succeeded + keywords: + - keywords + - keywords + name: name + organization_canonical: organization_canonical + quota_enabled: true + readme: readme + ref: ref + service_catalog_source_canonical: service_catalog_source_canonical + team: + canonical: canonical + created_at: 0 + id: 1 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + updated_at: 0 + technologies: + - technology: technology + version: version + - technology: technology + version: version + trusted: true + updated_at: 0 + visibility: visibility + - author: author + blueprint: true + canonical: canonical + cloud_providers: + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + created_at: 0 + dependencies: + - ref: ref + required: true + - ref: ref + required: true + description: description + directory: directory + form_enabled: true + id: 1 + image: https://openapi-generator.tech + import_status: succeeded + keywords: + - keywords + - keywords + name: name + organization_canonical: organization_canonical + quota_enabled: true + readme: readme + ref: ref + service_catalog_source_canonical: service_catalog_source_canonical + team: + canonical: canonical + created_at: 0 + id: 1 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + updated_at: 0 + technologies: + - technology: technology + version: version + - technology: technology + version: version + trusted: true + updated_at: 0 + visibility: visibility + deleted: + - author: author + blueprint: true + canonical: canonical + cloud_providers: + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + created_at: 0 + dependencies: + - ref: ref + required: true + - ref: ref + required: true + description: description + directory: directory + form_enabled: true + id: 1 + image: https://openapi-generator.tech + import_status: succeeded + keywords: + - keywords + - keywords + name: name + organization_canonical: organization_canonical + quota_enabled: true + readme: readme + ref: ref + service_catalog_source_canonical: service_catalog_source_canonical + team: + canonical: canonical + created_at: 0 + id: 1 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + updated_at: 0 + technologies: + - technology: technology + version: version + - technology: technology + version: version + trusted: true + updated_at: 0 + visibility: visibility + - author: author + blueprint: true + canonical: canonical + cloud_providers: + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + created_at: 0 + dependencies: + - ref: ref + required: true + - ref: ref + required: true + description: description + directory: directory + form_enabled: true + id: 1 + image: https://openapi-generator.tech + import_status: succeeded + keywords: + - keywords + - keywords + name: name + organization_canonical: organization_canonical + quota_enabled: true + readme: readme + ref: ref + service_catalog_source_canonical: service_catalog_source_canonical + team: + canonical: canonical + created_at: 0 + id: 1 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + updated_at: 0 + technologies: + - technology: technology + version: version + - technology: technology + version: version + trusted: true + updated_at: 0 + visibility: visibility + updated: + - author: author + blueprint: true + canonical: canonical + cloud_providers: + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + created_at: 0 + dependencies: + - ref: ref + required: true + - ref: ref + required: true + description: description + directory: directory + form_enabled: true + id: 1 + image: https://openapi-generator.tech + import_status: succeeded + keywords: + - keywords + - keywords + name: name + organization_canonical: organization_canonical + quota_enabled: true + readme: readme + ref: ref + service_catalog_source_canonical: service_catalog_source_canonical + team: + canonical: canonical + created_at: 0 + id: 1 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + updated_at: 0 + technologies: + - technology: technology + version: version + - technology: technology + version: version + trusted: true + updated_at: 0 + visibility: visibility + - author: author + blueprint: true + canonical: canonical + cloud_providers: + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + created_at: 0 + dependencies: + - ref: ref + required: true + - ref: ref + required: true + description: description + directory: directory + form_enabled: true + id: 1 + image: https://openapi-generator.tech + import_status: succeeded + keywords: + - keywords + - keywords + name: name + organization_canonical: organization_canonical + quota_enabled: true + readme: readme + ref: ref + service_catalog_source_canonical: service_catalog_source_canonical + team: + canonical: canonical + created_at: 0 + id: 1 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + updated_at: 0 + technologies: + - technology: technology + version: version + - technology: technology + version: version + trusted: true + updated_at: 0 + visibility: visibility + created_at: 0 + credential_canonical: credential_canonical + id: 1 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + refreshed_at: 0 + service_catalogs: + - author: author + blueprint: true + canonical: canonical + cloud_providers: + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + created_at: 0 + dependencies: + - ref: ref + required: true + - ref: ref + required: true + description: description + directory: directory + form_enabled: true + id: 1 + image: https://openapi-generator.tech + import_status: succeeded + keywords: + - keywords + - keywords + name: name + organization_canonical: organization_canonical + quota_enabled: true + readme: readme + ref: ref + service_catalog_source_canonical: service_catalog_source_canonical + team: + canonical: canonical + created_at: 0 + id: 1 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + updated_at: 0 + technologies: + - technology: technology + version: version + - technology: technology + version: version + trusted: true + updated_at: 0 + visibility: visibility + - author: author + blueprint: true + canonical: canonical + cloud_providers: + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + created_at: 0 + dependencies: + - ref: ref + required: true + - ref: ref + required: true + description: description + directory: directory + form_enabled: true + id: 1 + image: https://openapi-generator.tech + import_status: succeeded + keywords: + - keywords + - keywords + name: name + organization_canonical: organization_canonical + quota_enabled: true + readme: readme + ref: ref + service_catalog_source_canonical: service_catalog_source_canonical + team: + canonical: canonical + created_at: 0 + id: 1 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + updated_at: 0 + technologies: + - technology: technology + version: version + - technology: technology + version: version + trusted: true + updated_at: 0 + visibility: visibility + stack_count: 0 + updated_at: 0 + url: url + - branch: branch + canonical: canonical + changes: + created: + - author: author + blueprint: true + canonical: canonical + cloud_providers: + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + created_at: 0 + dependencies: + - ref: ref + required: true + - ref: ref + required: true + description: description + directory: directory + form_enabled: true + id: 1 + image: https://openapi-generator.tech + import_status: succeeded + keywords: + - keywords + - keywords + name: name + organization_canonical: organization_canonical + quota_enabled: true + readme: readme + ref: ref + service_catalog_source_canonical: service_catalog_source_canonical + team: + canonical: canonical + created_at: 0 + id: 1 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + updated_at: 0 + technologies: + - technology: technology + version: version + - technology: technology + version: version + trusted: true + updated_at: 0 + visibility: visibility + - author: author + blueprint: true + canonical: canonical + cloud_providers: + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + created_at: 0 + dependencies: + - ref: ref + required: true + - ref: ref + required: true + description: description + directory: directory + form_enabled: true + id: 1 + image: https://openapi-generator.tech + import_status: succeeded + keywords: + - keywords + - keywords + name: name + organization_canonical: organization_canonical + quota_enabled: true + readme: readme + ref: ref + service_catalog_source_canonical: service_catalog_source_canonical + team: + canonical: canonical + created_at: 0 + id: 1 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + updated_at: 0 + technologies: + - technology: technology + version: version + - technology: technology + version: version + trusted: true + updated_at: 0 + visibility: visibility + deleted: + - author: author + blueprint: true + canonical: canonical + cloud_providers: + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + created_at: 0 + dependencies: + - ref: ref + required: true + - ref: ref + required: true + description: description + directory: directory + form_enabled: true + id: 1 + image: https://openapi-generator.tech + import_status: succeeded + keywords: + - keywords + - keywords + name: name + organization_canonical: organization_canonical + quota_enabled: true + readme: readme + ref: ref + service_catalog_source_canonical: service_catalog_source_canonical + team: + canonical: canonical + created_at: 0 + id: 1 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + updated_at: 0 + technologies: + - technology: technology + version: version + - technology: technology + version: version + trusted: true + updated_at: 0 + visibility: visibility + - author: author + blueprint: true + canonical: canonical + cloud_providers: + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + created_at: 0 + dependencies: + - ref: ref + required: true + - ref: ref + required: true + description: description + directory: directory + form_enabled: true + id: 1 + image: https://openapi-generator.tech + import_status: succeeded + keywords: + - keywords + - keywords + name: name + organization_canonical: organization_canonical + quota_enabled: true + readme: readme + ref: ref + service_catalog_source_canonical: service_catalog_source_canonical + team: + canonical: canonical + created_at: 0 + id: 1 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + updated_at: 0 + technologies: + - technology: technology + version: version + - technology: technology + version: version + trusted: true + updated_at: 0 + visibility: visibility + updated: + - author: author + blueprint: true + canonical: canonical + cloud_providers: + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + created_at: 0 + dependencies: + - ref: ref + required: true + - ref: ref + required: true + description: description + directory: directory + form_enabled: true + id: 1 + image: https://openapi-generator.tech + import_status: succeeded + keywords: + - keywords + - keywords + name: name + organization_canonical: organization_canonical + quota_enabled: true + readme: readme + ref: ref + service_catalog_source_canonical: service_catalog_source_canonical + team: + canonical: canonical + created_at: 0 + id: 1 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + updated_at: 0 + technologies: + - technology: technology + version: version + - technology: technology + version: version + trusted: true + updated_at: 0 + visibility: visibility + - author: author + blueprint: true + canonical: canonical + cloud_providers: + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + created_at: 0 + dependencies: + - ref: ref + required: true + - ref: ref + required: true + description: description + directory: directory + form_enabled: true + id: 1 + image: https://openapi-generator.tech + import_status: succeeded + keywords: + - keywords + - keywords + name: name + organization_canonical: organization_canonical + quota_enabled: true + readme: readme + ref: ref + service_catalog_source_canonical: service_catalog_source_canonical + team: + canonical: canonical + created_at: 0 + id: 1 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + updated_at: 0 + technologies: + - technology: technology + version: version + - technology: technology + version: version + trusted: true + updated_at: 0 + visibility: visibility + created_at: 0 + credential_canonical: credential_canonical + id: 1 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + refreshed_at: 0 + service_catalogs: + - author: author + blueprint: true + canonical: canonical + cloud_providers: + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + created_at: 0 + dependencies: + - ref: ref + required: true + - ref: ref + required: true + description: description + directory: directory + form_enabled: true + id: 1 + image: https://openapi-generator.tech + import_status: succeeded + keywords: + - keywords + - keywords + name: name + organization_canonical: organization_canonical + quota_enabled: true + readme: readme + ref: ref + service_catalog_source_canonical: service_catalog_source_canonical + team: + canonical: canonical + created_at: 0 + id: 1 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + updated_at: 0 + technologies: + - technology: technology + version: version + - technology: technology + version: version + trusted: true + updated_at: 0 + visibility: visibility + - author: author + blueprint: true + canonical: canonical + cloud_providers: + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + created_at: 0 + dependencies: + - ref: ref + required: true + - ref: ref + required: true + description: description + directory: directory + form_enabled: true + id: 1 + image: https://openapi-generator.tech + import_status: succeeded + keywords: + - keywords + - keywords + name: name + organization_canonical: organization_canonical + quota_enabled: true + readme: readme + ref: ref + service_catalog_source_canonical: service_catalog_source_canonical + team: + canonical: canonical + created_at: 0 + id: 1 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + updated_at: 0 + technologies: + - technology: technology + version: version + - technology: technology + version: version + trusted: true + updated_at: 0 + visibility: visibility + stack_count: 0 + updated_at: 0 + url: url + properties: + data: + items: + $ref: '#/components/schemas/ServiceCatalogSource' + type: array + required: + - data + type: object + getServiceCatalogTerraform_200_response: + example: + data: + config: '{}' + properties: + data: + $ref: '#/components/schemas/TerraformJSONConfig' + required: + - data + type: object + getServiceCatalogTerraformDiagram_200_response: + example: + created_at: 0 + data: '{}' + updated_at: 0 + properties: + created_at: + format: uint64 + minimum: 0 + type: integer + data: + description: The JSON Diagram structure + title: TerraformDiagram + type: object + updated_at: + format: uint64 + minimum: 0 + type: integer + required: + - data + type: object + getServiceCatalogTerraformImage_200_response: + example: + data: + image: image + properties: + data: + $ref: '#/components/schemas/TerraformImage' + required: + - data + type: object + getServiceStatus_200_response: + example: + data: + canonical: canonical + category: category + message: message + status: Unknown + properties: + data: + $ref: '#/components/schemas/CheckReport' + required: + - data + type: object + getState_200_response: + description: The state of an organization + example: + data: '{}' + properties: + data: + properties: {} + type: object + required: + - data + type: object + getStatus_200_response: + example: + data: + checks: + - canonical: canonical + category: category + message: message + status: Unknown + - canonical: canonical + category: category + message: message + status: Unknown + message: message + status: Unknown + properties: + data: + $ref: '#/components/schemas/GeneralStatus' + required: + - data + type: object + getSummary_200_response: + example: + data: + config_repositories: 5 + credentials: 1 + pipelines: 6 + projects: 0 + roles: 9 + service_catalog_sources: 5 + service_catalogs: 3 + teams: 2 + users: 7 + properties: + data: + $ref: '#/components/schemas/Summary' + required: + - data + type: object + getTeamMembers_200_response: + example: + data: + - created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + invited_by: + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + invitation_email: invitation_email + invitation_resent_at: 0 + invitation_state: pending + invited_at: 0 + invited_by: null + last_login_at: 0 + locale: en + mfa_enabled: true + picture_url: https://openapi-generator.tech + role: + canonical: canonical + created_at: 0 + default: true + description: description + id: 1 + name: name + rules: + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + updated_at: 0 + updated_at: 0 + username: username + last_login_at: 0 + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + - created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + invited_by: + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + invitation_email: invitation_email + invitation_resent_at: 0 + invitation_state: pending + invited_at: 0 + invited_by: null + last_login_at: 0 + locale: en + mfa_enabled: true + picture_url: https://openapi-generator.tech + role: + canonical: canonical + created_at: 0 + default: true + description: description + id: 1 + name: name + rules: + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + updated_at: 0 + updated_at: 0 + username: username + last_login_at: 0 + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + pagination: + index: 1 + size: 0 + total: 0 + properties: + data: + items: + $ref: '#/components/schemas/MemberTeam' + type: array + pagination: + $ref: '#/components/schemas/Pagination' + required: + - data + - pagination + type: object + getTeams_200_response: + example: + data: + - canonical: canonical + created_at: 0 + id: 1 + member_count: 5 + members_preview: + - created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + invited_by: + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + invitation_email: invitation_email + invitation_resent_at: 0 + invitation_state: pending + invited_at: 0 + invited_by: null + last_login_at: 0 + locale: en + mfa_enabled: true + picture_url: https://openapi-generator.tech + role: + canonical: canonical + created_at: 0 + default: true + description: description + id: 1 + name: name + rules: + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + updated_at: 0 + updated_at: 0 + username: username + last_login_at: 0 + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + - created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + invited_by: + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + invitation_email: invitation_email + invitation_resent_at: 0 + invitation_state: pending + invited_at: 0 + invited_by: null + last_login_at: 0 + locale: en + mfa_enabled: true + picture_url: https://openapi-generator.tech + role: + canonical: canonical + created_at: 0 + default: true + description: description + id: 1 + name: name + rules: + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + updated_at: 0 + updated_at: 0 + username: username + last_login_at: 0 + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + - created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + invited_by: + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + invitation_email: invitation_email + invitation_resent_at: 0 + invitation_state: pending + invited_at: 0 + invited_by: null + last_login_at: 0 + locale: en + mfa_enabled: true + picture_url: https://openapi-generator.tech + role: + canonical: canonical + created_at: 0 + default: true + description: description + id: 1 + name: name + rules: + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + updated_at: 0 + updated_at: 0 + username: username + last_login_at: 0 + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + - created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + invited_by: + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + invitation_email: invitation_email + invitation_resent_at: 0 + invitation_state: pending + invited_at: 0 + invited_by: null + last_login_at: 0 + locale: en + mfa_enabled: true + picture_url: https://openapi-generator.tech + role: + canonical: canonical + created_at: 0 + default: true + description: description + id: 1 + name: name + rules: + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + updated_at: 0 + updated_at: 0 + username: username + last_login_at: 0 + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + - created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + invited_by: + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + invitation_email: invitation_email + invitation_resent_at: 0 + invitation_state: pending + invited_at: 0 + invited_by: null + last_login_at: 0 + locale: en + mfa_enabled: true + picture_url: https://openapi-generator.tech + role: + canonical: canonical + created_at: 0 + default: true + description: description + id: 1 + name: name + rules: + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + updated_at: 0 + updated_at: 0 + username: username + last_login_at: 0 + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + roles: + - canonical: canonical + created_at: 0 + default: true + description: description + id: 1 + name: name + rules: + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + updated_at: 0 + - canonical: canonical + created_at: 0 + default: true + description: description + id: 1 + name: name + rules: + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + updated_at: 0 + updated_at: 0 + - canonical: canonical + created_at: 0 + id: 1 + member_count: 5 + members_preview: + - created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + invited_by: + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + invitation_email: invitation_email + invitation_resent_at: 0 + invitation_state: pending + invited_at: 0 + invited_by: null + last_login_at: 0 + locale: en + mfa_enabled: true + picture_url: https://openapi-generator.tech + role: + canonical: canonical + created_at: 0 + default: true + description: description + id: 1 + name: name + rules: + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + updated_at: 0 + updated_at: 0 + username: username + last_login_at: 0 + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + - created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + invited_by: + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + invitation_email: invitation_email + invitation_resent_at: 0 + invitation_state: pending + invited_at: 0 + invited_by: null + last_login_at: 0 + locale: en + mfa_enabled: true + picture_url: https://openapi-generator.tech + role: + canonical: canonical + created_at: 0 + default: true + description: description + id: 1 + name: name + rules: + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + updated_at: 0 + updated_at: 0 + username: username + last_login_at: 0 + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + - created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + invited_by: + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + invitation_email: invitation_email + invitation_resent_at: 0 + invitation_state: pending + invited_at: 0 + invited_by: null + last_login_at: 0 + locale: en + mfa_enabled: true + picture_url: https://openapi-generator.tech + role: + canonical: canonical + created_at: 0 + default: true + description: description + id: 1 + name: name + rules: + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + updated_at: 0 + updated_at: 0 + username: username + last_login_at: 0 + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + - created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + invited_by: + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + invitation_email: invitation_email + invitation_resent_at: 0 + invitation_state: pending + invited_at: 0 + invited_by: null + last_login_at: 0 + locale: en + mfa_enabled: true + picture_url: https://openapi-generator.tech + role: + canonical: canonical + created_at: 0 + default: true + description: description + id: 1 + name: name + rules: + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + updated_at: 0 + updated_at: 0 + username: username + last_login_at: 0 + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + - created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + invited_by: + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + invitation_email: invitation_email + invitation_resent_at: 0 + invitation_state: pending + invited_at: 0 + invited_by: null + last_login_at: 0 + locale: en + mfa_enabled: true + picture_url: https://openapi-generator.tech + role: + canonical: canonical + created_at: 0 + default: true + description: description + id: 1 + name: name + rules: + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + updated_at: 0 + updated_at: 0 + username: username + last_login_at: 0 + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + roles: + - canonical: canonical + created_at: 0 + default: true + description: description + id: 1 + name: name + rules: + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + updated_at: 0 + - canonical: canonical + created_at: 0 + default: true + description: description + id: 1 + name: name + rules: + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + updated_at: 0 + updated_at: 0 + pagination: + index: 1 + size: 0 + total: 0 + properties: + data: + items: + $ref: '#/components/schemas/Team' + type: array + pagination: + $ref: '#/components/schemas/Pagination' + required: + - data + - pagination + type: object + getTerraformProvider_200_response: + example: + data: + abbreviation: abbreviation + canonical: canonical + cloud: true + name: name + schema: '{}' + properties: + data: + $ref: '#/components/schemas/TerraformProvider' + required: + - data + type: object + getTerraformProviderDataSource_200_response: + example: + data: + attributes: + important: + - important + - important + normalized_status: '{}' + status: status + canonical: canonical + category: category + description: description + image: https://openapi-generator.tech + is_edge: true + is_node: true + keywords: + - keywords + - keywords + schema: '{}' + short_description: short_description + properties: + data: + $ref: '#/components/schemas/TerraformProviderResource' + required: + - data + type: object + getTerraformProviders_200_response: + example: + data: + - abbreviation: abbreviation + canonical: canonical + cloud: true + name: name + - abbreviation: abbreviation + canonical: canonical + cloud: true + name: name + pagination: + index: 1 + size: 0 + total: 0 + properties: + data: + items: + $ref: '#/components/schemas/TerraformProviderSimple' + type: array + pagination: + $ref: '#/components/schemas/Pagination' + required: + - data + - pagination + type: object + getUserAccount_200_response: + example: + data: + country: + code: code + name: name + created_at: 0 + emails: + - created_at: 0 + email: email + purpose: purpose + verified: true + - created_at: 0 + email: email + purpose: purpose + verified: true + family_name: family_name + given_name: given_name + guide: '{}' + last_login: 0 + locale: en + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + properties: + data: + $ref: '#/components/schemas/UserAccount' + required: + - data + type: object + getWorkers_200_response: + example: + data: + - active_containers: 0 + active_volumes: 6 + ephemeral: true + name: name + platform: platform + start_time: 1 + state: state + tags: + - tags + - tags + team: team + version: version + - active_containers: 0 + active_volumes: 6 + ephemeral: true + name: name + platform: platform + start_time: 1 + state: state + tags: + - tags + - tags + team: team + version: version + pagination: + index: 1 + size: 0 + total: 0 + properties: + data: + items: + $ref: '#/components/schemas/Worker' + type: array + pagination: + $ref: '#/components/schemas/Pagination' + required: + - data + - pagination + type: object + inviteUserToOrgMember_200_response: + example: + data: + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + invitation_email: invitation_email + invitation_resent_at: 0 + invitation_state: pending + invited_at: 0 + invited_by: null + last_login_at: 0 + locale: en + mfa_enabled: true + picture_url: https://openapi-generator.tech + role: + canonical: canonical + created_at: 0 + default: true + description: description + id: 1 + name: name + rules: + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + - action: action + effect: allow + id: 0 + resources: + - resources + - resources + updated_at: 0 + updated_at: 0 + username: username + properties: + data: + $ref: '#/components/schemas/MemberOrg' + required: + - data + type: object + listAppearances_200_response: + example: + data: + - canonical: canonical + color: + b: 37 + g: 153 + r: 20 + created_at: 0 + display_name: display_name + favicon: https://openapi-generator.tech + footer: footer + is_active: true + logo: https://openapi-generator.tech + name: name + tab_title: tab_title + updated_at: 0 + - canonical: canonical + color: + b: 37 + g: 153 + r: 20 + created_at: 0 + display_name: display_name + favicon: https://openapi-generator.tech + footer: footer + is_active: true + logo: https://openapi-generator.tech + name: name + tab_title: tab_title + updated_at: 0 + pagination: + index: 1 + size: 0 + total: 0 + properties: + data: + items: + $ref: '#/components/schemas/Appearance' + type: array + pagination: + $ref: '#/components/schemas/Pagination' + required: + - data + - pagination + type: object + listConfigRepositories_200_response: + example: + data: + - branch: branch + canonical: canonical + created_at: 0 + credential_canonical: credential_canonical + default: true + id: 1 + name: name + updated_at: 0 + url: url + - branch: branch + canonical: canonical + created_at: 0 + credential_canonical: credential_canonical + default: true + id: 1 + name: name + updated_at: 0 + url: url + properties: + data: + items: + $ref: '#/components/schemas/ConfigRepository' + type: array + required: + - data + type: object + listCredentials_200_response: + example: + data: + - canonical: canonical + created_at: 0 + description: description + id: 1 + in_use: + config_repositories: + - canonical: canonical + name: name + - canonical: canonical + name: name + external_backends: + - engine: engine + environment: + canonical: canonical + project: + canonical: canonical + name: name + purpose: purpose + - engine: engine + environment: + canonical: canonical + project: + canonical: canonical + name: name + purpose: purpose + service_catalog_sources: + - canonical: canonical + name: name + - canonical: canonical + name: name + keys: + - keys + - keys + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + path: path + type: ssh + updated_at: 0 + - canonical: canonical + created_at: 0 + description: description + id: 1 + in_use: + config_repositories: + - canonical: canonical + name: name + - canonical: canonical + name: name + external_backends: + - engine: engine + environment: + canonical: canonical + project: + canonical: canonical + name: name + purpose: purpose + - engine: engine + environment: + canonical: canonical + project: + canonical: canonical + name: name + purpose: purpose + service_catalog_sources: + - canonical: canonical + name: name + - canonical: canonical + name: name + keys: + - keys + - keys + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + path: path + type: ssh + updated_at: 0 + pagination: + index: 1 + size: 0 + total: 0 + properties: + data: + items: + $ref: '#/components/schemas/CredentialSimple' + type: array + pagination: + $ref: '#/components/schemas/Pagination' + required: + - data + - pagination + type: object + listInventoryResources_200_response: + example: + data: + - attributes: '{}' + category: category + cpu: 0 + custom_attributes: '{}' + description: description + environment_canonical: environment_canonical + id: 1 + image: https://openapi-generator.tech + keywords: + - keywords + - keywords + label: label + memory: 0 + mode: mode + module: module + name: name + project_canonical: project_canonical + provider: provider + short_description: short_description + storage: 0 + type: type + - attributes: '{}' + category: category + cpu: 0 + custom_attributes: '{}' + description: description + environment_canonical: environment_canonical + id: 1 + image: https://openapi-generator.tech + keywords: + - keywords + - keywords + label: label + memory: 0 + mode: mode + module: module + name: name + project_canonical: project_canonical + provider: provider + short_description: short_description + storage: 0 + type: type + filters: '{}' + pagination: + index: 1 + size: 0 + total: 0 + properties: + data: + items: + $ref: '#/components/schemas/InventoryResource' + type: array + filters: + description: Filters is the possible values the filters can have on list requests + title: Filters + type: object + pagination: + $ref: '#/components/schemas/Pagination' + required: + - data + - pagination + type: object + listQuotaConsumptions_200_response: + example: + data: + cpu: 0 + environment: + canonical: canonical + cloud_provider: + abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + color: color + created_at: 0 + icon: icon + id: 1 + updated_at: 0 + use_case: use_case + id: 1 + memory: 0 + project: + canonical: canonical + created_at: 0 + description: description + favorite: true + id: 1 + import_status: succeeded + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + updated_at: 0 + storage: 0 + properties: + data: + $ref: '#/components/schemas/ProjectEnvironmentConsumption' + required: + - data + type: object + listQuotas_200_response: + example: + data: + - cpu: 0 + id: 1 + memory: 0 + resource_pool: + allocated_cpu: 0 + allocated_memory: 0 + allocated_storage: 0 + canonical: canonical + cpu: 0 + id: 1 + label: label + memory: 0 + name: name + storage: 0 + used_cpu: 0 + used_memory: 0 + used_storage: 0 + storage: 0 + team: + canonical: canonical + created_at: 0 + id: 1 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + updated_at: 0 + used_cpu: 0 + used_memory: 0 + used_storage: 0 + - cpu: 0 + id: 1 + memory: 0 + resource_pool: + allocated_cpu: 0 + allocated_memory: 0 + allocated_storage: 0 + canonical: canonical + cpu: 0 + id: 1 + label: label + memory: 0 + name: name + storage: 0 + used_cpu: 0 + used_memory: 0 + used_storage: 0 + storage: 0 + team: + canonical: canonical + created_at: 0 + id: 1 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + updated_at: 0 + used_cpu: 0 + used_memory: 0 + used_storage: 0 + pagination: + index: 1 + size: 0 + total: 0 + properties: + data: + items: + $ref: '#/components/schemas/Quota' + type: array + pagination: + $ref: '#/components/schemas/Pagination' + required: + - data + - pagination + type: object + listResourceLabels_200_response: + example: + data: + - cpu: 0 + memory: 0 + name: name + storage: 0 + - cpu: 0 + memory: 0 + name: name + storage: 0 + properties: + data: + items: + $ref: '#/components/schemas/InventoryResourceLabel' + type: array + required: + - data + type: object + listResourcePools_200_response: + example: + data: + - allocated_cpu: 0 + allocated_memory: 0 + allocated_storage: 0 + canonical: canonical + cpu: 0 + id: 1 + label: label + memory: 0 + name: name + storage: 0 + used_cpu: 0 + used_memory: 0 + used_storage: 0 + - allocated_cpu: 0 + allocated_memory: 0 + allocated_storage: 0 + canonical: canonical + cpu: 0 + id: 1 + label: label + memory: 0 + name: name + storage: 0 + used_cpu: 0 + used_memory: 0 + used_storage: 0 + pagination: + index: 1 + size: 0 + total: 0 + properties: + data: + items: + $ref: '#/components/schemas/ResourcePool' + type: array + pagination: + $ref: '#/components/schemas/Pagination' + required: + - data + - pagination + type: object + listServiceCatalogs_200_response: + example: + data: + - author: author + blueprint: true + canonical: canonical + cloud_providers: + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + created_at: 0 + dependencies: + - ref: ref + required: true + - ref: ref + required: true + description: description + directory: directory + form_enabled: true + id: 1 + image: https://openapi-generator.tech + import_status: succeeded + keywords: + - keywords + - keywords + name: name + organization_canonical: organization_canonical + quota_enabled: true + readme: readme + ref: ref + service_catalog_source_canonical: service_catalog_source_canonical + team: + canonical: canonical + created_at: 0 + id: 1 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + updated_at: 0 + technologies: + - technology: technology + version: version + - technology: technology + version: version + trusted: true + updated_at: 0 + visibility: visibility + - author: author + blueprint: true + canonical: canonical + cloud_providers: + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + created_at: 0 + dependencies: + - ref: ref + required: true + - ref: ref + required: true + description: description + directory: directory + form_enabled: true + id: 1 + image: https://openapi-generator.tech + import_status: succeeded + keywords: + - keywords + - keywords + name: name + organization_canonical: organization_canonical + quota_enabled: true + readme: readme + ref: ref + service_catalog_source_canonical: service_catalog_source_canonical + team: + canonical: canonical + created_at: 0 + id: 1 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + updated_at: 0 + technologies: + - technology: technology + version: version + - technology: technology + version: version + trusted: true + updated_at: 0 + visibility: visibility + pagination: + index: 1 + size: 0 + total: 0 + properties: + data: + items: + $ref: '#/components/schemas/ServiceCatalog' + type: array + pagination: + $ref: '#/components/schemas/Pagination' + required: + - data + - pagination + type: object + lockState_200_response: + description: The Inventory from the Project's environment + example: + data: + created: created + id: id + info: info + operation: operation + version: version + who: who + properties: + data: + $ref: '#/components/schemas/StateLock' + required: + - data + type: object + refreshServiceCatalogSource_200_response: + example: + data: + created: + - author: author + blueprint: true + canonical: canonical + cloud_providers: + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + created_at: 0 + dependencies: + - ref: ref + required: true + - ref: ref + required: true + description: description + directory: directory + form_enabled: true + id: 1 + image: https://openapi-generator.tech + import_status: succeeded + keywords: + - keywords + - keywords + name: name + organization_canonical: organization_canonical + quota_enabled: true + readme: readme + ref: ref + service_catalog_source_canonical: service_catalog_source_canonical + team: + canonical: canonical + created_at: 0 + id: 1 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + updated_at: 0 + technologies: + - technology: technology + version: version + - technology: technology + version: version + trusted: true + updated_at: 0 + visibility: visibility + - author: author + blueprint: true + canonical: canonical + cloud_providers: + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + created_at: 0 + dependencies: + - ref: ref + required: true + - ref: ref + required: true + description: description + directory: directory + form_enabled: true + id: 1 + image: https://openapi-generator.tech + import_status: succeeded + keywords: + - keywords + - keywords + name: name + organization_canonical: organization_canonical + quota_enabled: true + readme: readme + ref: ref + service_catalog_source_canonical: service_catalog_source_canonical + team: + canonical: canonical + created_at: 0 + id: 1 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + updated_at: 0 + technologies: + - technology: technology + version: version + - technology: technology + version: version + trusted: true + updated_at: 0 + visibility: visibility + deleted: + - author: author + blueprint: true + canonical: canonical + cloud_providers: + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + created_at: 0 + dependencies: + - ref: ref + required: true + - ref: ref + required: true + description: description + directory: directory + form_enabled: true + id: 1 + image: https://openapi-generator.tech + import_status: succeeded + keywords: + - keywords + - keywords + name: name + organization_canonical: organization_canonical + quota_enabled: true + readme: readme + ref: ref + service_catalog_source_canonical: service_catalog_source_canonical + team: + canonical: canonical + created_at: 0 + id: 1 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + updated_at: 0 + technologies: + - technology: technology + version: version + - technology: technology + version: version + trusted: true + updated_at: 0 + visibility: visibility + - author: author + blueprint: true + canonical: canonical + cloud_providers: + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + created_at: 0 + dependencies: + - ref: ref + required: true + - ref: ref + required: true + description: description + directory: directory + form_enabled: true + id: 1 + image: https://openapi-generator.tech + import_status: succeeded + keywords: + - keywords + - keywords + name: name + organization_canonical: organization_canonical + quota_enabled: true + readme: readme + ref: ref + service_catalog_source_canonical: service_catalog_source_canonical + team: + canonical: canonical + created_at: 0 + id: 1 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + updated_at: 0 + technologies: + - technology: technology + version: version + - technology: technology + version: version + trusted: true + updated_at: 0 + visibility: visibility + updated: + - author: author + blueprint: true + canonical: canonical + cloud_providers: + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + created_at: 0 + dependencies: + - ref: ref + required: true + - ref: ref + required: true + description: description + directory: directory + form_enabled: true + id: 1 + image: https://openapi-generator.tech + import_status: succeeded + keywords: + - keywords + - keywords + name: name + organization_canonical: organization_canonical + quota_enabled: true + readme: readme + ref: ref + service_catalog_source_canonical: service_catalog_source_canonical + team: + canonical: canonical + created_at: 0 + id: 1 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + updated_at: 0 + technologies: + - technology: technology + version: version + - technology: technology + version: version + trusted: true + updated_at: 0 + visibility: visibility + - author: author + blueprint: true + canonical: canonical + cloud_providers: + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + - abbreviation: abbreviation + canonical: aws + created_at: 0 + id: 1 + name: name + regions: + - regions + - regions + updated_at: 0 + created_at: 0 + dependencies: + - ref: ref + required: true + - ref: ref + required: true + description: description + directory: directory + form_enabled: true + id: 1 + image: https://openapi-generator.tech + import_status: succeeded + keywords: + - keywords + - keywords + name: name + organization_canonical: organization_canonical + quota_enabled: true + readme: readme + ref: ref + service_catalog_source_canonical: service_catalog_source_canonical + team: + canonical: canonical + created_at: 0 + id: 1 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + updated_at: 0 + technologies: + - technology: technology + version: version + - technology: technology + version: version + trusted: true + updated_at: 0 + visibility: visibility + properties: + data: + $ref: '#/components/schemas/ServiceCatalogChanges' + required: + - data + type: object + samlAssertionConsumerService_request: + properties: + SAMLResponse: + description: Base64-encoded SAML authentication response document. + type: string + type: object + sendEvent_200_response: + description: The newly created event + example: + data: + color: color + icon: icon + id: 0 + message: message + severity: info + tags: + - key: key + value: value + - key: key + value: value + timestamp: 6 + title: title + type: Cycloid + properties: + data: + $ref: '#/components/schemas/Event' + required: + - data + type: object + syncedPipeline_200_response: + example: + data: + diffs: + groups: + - diff: + - delta_type: delta_type + line: line + - delta_type: delta_type + line: line + name: name + status: added + - diff: + - delta_type: delta_type + line: line + - delta_type: delta_type + line: line + name: name + status: added + jobs: + - diff: + - delta_type: delta_type + line: line + - delta_type: delta_type + line: line + name: name + status: added + - diff: + - delta_type: delta_type + line: line + - delta_type: delta_type + line: line + name: name + status: added + resource_types: + - diff: + - delta_type: delta_type + line: line + - delta_type: delta_type + line: line + name: name + status: added + - diff: + - delta_type: delta_type + line: line + - delta_type: delta_type + line: line + name: name + status: added + resources: + - diff: + - delta_type: delta_type + line: line + - delta_type: delta_type + line: line + name: name + status: added + - diff: + - delta_type: delta_type + line: line + - delta_type: delta_type + line: line + name: name + status: added + error: error + synced: unknown + properties: + data: + $ref: '#/components/schemas/PipelineStatus' + required: + - data + type: object + terraformJSONToHCL_200_response: + example: + data: + config: config + properties: + data: + $ref: '#/components/schemas/TerraformHCLConfig' + required: + - data + type: object + terraformValidate_200_response: + example: + data: + errors: + - errors + - errors + properties: + data: + $ref: '#/components/schemas/TerraformValidationResult' + required: + - data + type: object + validateFormsFile_200_response: + example: + data: + errors: + - errors + - errors + forms: + use_cases: + - name: name + sections: + - groups: + - condition: condition + folded: true + name: name + technologies: + - technologies + - technologies + vars: + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + - condition: condition + folded: true + name: name + technologies: + - technologies + - technologies + vars: + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + name: name + - groups: + - condition: condition + folded: true + name: name + technologies: + - technologies + - technologies + vars: + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + - condition: condition + folded: true + name: name + technologies: + - technologies + - technologies + vars: + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + name: name + - name: name + sections: + - groups: + - condition: condition + folded: true + name: name + technologies: + - technologies + - technologies + vars: + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + - condition: condition + folded: true + name: name + technologies: + - technologies + - technologies + vars: + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + name: name + - groups: + - condition: condition + folded: true + name: name + technologies: + - technologies + - technologies + vars: + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + - condition: condition + folded: true + name: name + technologies: + - technologies + - technologies + vars: + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + - current: '{}' + default: '{}' + depends_on: + - depends_on + - depends_on + description: description + folded: true + key: key + mismatch_values: + - '{}' + - '{}' + name: name + required: true + source: source + type: integer + unit: unit + validations: + - '{}' + - '{}' + values: '{}' + values_ref: values_ref + widget: auto_complete + widget_config: '{}' + name: name + version: version + properties: + data: + $ref: '#/components/schemas/FormsValidationResult' + required: + - data + type: object + validateProjectInfraPolicies_200_response: + example: + data: + advisories: + - infra_policy: + body: body + canonical: canonical + created_at: 6 + description: description + enabled: true + id: 1 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + severity: critical + updated_at: 1 + reasons: + - reasons + - reasons + - infra_policy: + body: body + canonical: canonical + created_at: 6 + description: description + enabled: true + id: 1 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + severity: critical + updated_at: 1 + reasons: + - reasons + - reasons + criticals: + - infra_policy: + body: body + canonical: canonical + created_at: 6 + description: description + enabled: true + id: 1 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + severity: critical + updated_at: 1 + reasons: + - reasons + - reasons + - infra_policy: + body: body + canonical: canonical + created_at: 6 + description: description + enabled: true + id: 1 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + severity: critical + updated_at: 1 + reasons: + - reasons + - reasons + warnings: + - infra_policy: + body: body + canonical: canonical + created_at: 6 + description: description + enabled: true + id: 1 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + severity: critical + updated_at: 1 + reasons: + - reasons + - reasons + - infra_policy: + body: body + canonical: canonical + created_at: 6 + description: description + enabled: true + id: 1 + name: name + owner: + country_code: country_code + created_at: 0 + email: email + family_name: family_name + given_name: given_name + id: 1 + last_login_at: 0 + locale: locale + mfa_enabled: true + picture_url: https://openapi-generator.tech + updated_at: 0 + username: username + severity: critical + updated_at: 1 + reasons: + - reasons + - reasons + properties: + data: + $ref: '#/components/schemas/InfraPoliciesValidationResult' + type: object + validateServiceCatalogDependencies_200_response: + example: + data: + errors: + - errors + - errors + warnings: + - warnings + - warnings + properties: + data: + $ref: '#/components/schemas/ServiceCatalogDependenciesValidationResult' + required: + - data + type: object + securitySchemes: + api_key: + description: The API authorization is done with JWT tokens + in: header + name: Authorization + type: apiKey + api_key_query: + description: The API authorization is done with JWT tokens in the query string in: query + name: api_key + type: apiKey +info: + contact: + email: contact@cycloid.io + name: The Great Owl + url: https://www.cycloid.io + description: This is the Cycloid's API Reference. It provides descriptions, syntax, and usage examples for each of the actions and data types available within our console. + license: + name: Cycloid @copyrights + url: https://cycloid.io + termsOfService: https://console.cycloid.io/terms + title: Welcome! + version: "0" +openapi: 3.0.1 +paths: + /appearance: + get: + description: Get the default appearance available in the platform + operationId: getDefaultAppearance + responses: + "200": + content: + application/json: + example: + data: + canonical: default + color: + b: 151 + g: 151 + r: 28 + created_at: 1503225026 + display_name: Cycloid + favicon: /static/favicons/favicon.ico + footer: "" + is_active: true + logo: /static/logos/logo.svg + name: Default + tab_title: Cycloid + updated_at: 1503335026 + schema: + $ref: '#/components/schemas/getActiveAppearance_200_response' + description: Default Appearance available in the platform. + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + security: [] + tags: + - Appearance + /appearance/{organization_canonical}: + get: + description: Get the active appearance available in the organization + operationId: getActiveAppearance + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + "200": + content: + application/json: + example: + data: + canonical: default + color: + b: 151 + g: 151 + r: 28 + created_at: 1503225026 + display_name: Cycloid + favicon: https://console.cycloid.io/static/favicons/favicon.ico + footer: "" + is_active: true + logo: https://console.cycloid.io/static/images/app-logo-square.svg + name: Default + tab_title: Cycloid + updated_at: 1503335026 + schema: + $ref: '#/components/schemas/getActiveAppearance_200_response' + description: Default Appearance available in the organization. + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + security: [] + tags: + - Appearance + /config: + get: + description: Get the Cycloid configuration. + operationId: getConfig + responses: + "200": + content: + application/json: + example: + data: + authentication: + local: + enabled: true + oauth: + - client_id: 67b96869-421d-4897-9f95-dc66aacbe915 + provider: azuread + tenant_id: 67b96869-421d-4897-9f95-dc66aacbe915 + type: AzureADAuthConfig + - client_id: 741192805913-s10ibou8065iofnb9rcir9269skiqts9.apps.googleusercontent.com + provider: google + type: GoogleOAuthConfig + - client_id: 6a94210b44f4a612952e + host_address: https://api.github.com + provider: github + type: GitHubOAuthConfig + saml2: + - provider: https://samltest.id/saml/idp + sso_url: https://samltest.id/idp/profile/SAML2/Redirect/SSO?SAMLRequest=fJLPbtswDIdfReDdkeV0aU3UAbwGwwJ... + schema: + $ref: '#/components/schemas/getConfig_200_response' + description: Cycloid configuration, including available authentication methods. + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + security: [] + tags: + - Cycloid + /countries: + get: + description: Get the Cycloid supported countries. + operationId: getCountries + responses: + "200": + content: + application/json: + example: + data: + - code: AD + name: Andorra + - code: FR + name: France + - code: GB + name: United Kingdom + schema: + $ref: '#/components/schemas/getCountries_200_response' + description: Cycloid supported countries + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + security: [] + tags: + - Cycloid + /inventory: + get: + description: Get the state + operationId: getState + parameters: + - description: Token with the information about state and credentials. + in: query + name: jwt + required: true + schema: + type: string + responses: + "200": + content: + application/json: + example: + data: + lineage: 2f9ab173-9fc7-965b-c17d-2e43868f14cf + resources: + - id: 1 + instances: + attributes: + id: sg-0e74bbe876eba7e6f + ingress: + cidr_blocks: [] + description: "" + from_port: 80 + ipv6_cidr_blocks: [] + prefix_list_ids: [] + protocol: tcp + security_groups: + - sg-0cfe32960213dea69 + self: false + to_port: 80 + custom_attributes: + custom_att: sg-0e74bbe876eba7e6f + module: module.kapsule + name: front + outputs: + alb_front_dns_name: + type: string + value: cycloidio-website-front-prod-119239496.eu-west-1.elb.amazonaws.com + provider: aws + type: aws_instance + serial: 1 + terraform version: 0.12.28 + version: 1 + schema: + $ref: '#/components/schemas/getState_200_response' + description: Get the state of an organization + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + security: [] + tags: + - Organization Inventory + post: + description: Create or update an Inventory State + operationId: createOrUpdateState + parameters: + - description: Token with the information about state and credentials. + in: query + name: jwt + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + type: object + description: The information of the Inventory new data + required: true + responses: + "204": + content: {} + description: Success update + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "411": + content: {} + description: The request has a body but it doesn't have a Content-Length header. + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "423": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The operation couldn't be executed or completed because the state is locked. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + security: [] + tags: + - Organization Inventory + x-codegen-request-body-name: body + /inventory-plan: + get: + description: Get the terraform plan of the inventory. It uses '-' as the Concourse resource that uses it automatically adds '-plan' on it's implementation to push the plan. So to simplify the configuration we use '-' also. + operationId: getInventoryPlan + parameters: + - description: Token with the information about state and credentials. + in: query + name: jwt + required: true + schema: + type: string + responses: + "200": + content: + application/json: + schema: + type: object + description: Get the plan of an inventory + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + security: [] + tags: + - Organization Inventory Plan + post: + description: Create or replace an Inventory plan + operationId: setInventoryPlan + parameters: + - description: Token with the information about state and credentials. + in: query + name: jwt + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + type: object + description: The plan of the Inventory + required: false + responses: + "204": + content: {} + description: Success update + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "411": + content: {} + description: The request has a body but it doesn't have a Content-Length header. + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + security: [] + tags: + - Organization Inventory Plan + x-codegen-request-body-name: body + /inventory/lock: + delete: + description: unlocks an State of Inventory + operationId: unlockState + parameters: + - description: Token with the information about state and credentials. + in: query + name: jwt + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/StateLock' + description: The information of the Inventory new data + required: true + responses: + "204": + content: {} + description: Unlocking the Status of an Organization Status Inventory Item + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + security: [] + tags: + - Organization Inventory + x-codegen-request-body-name: body + post: + description: Locks an Inventory State + operationId: lockState + parameters: + - description: Token with the information about state and credentials. + in: query + name: jwt + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/StateLock' + description: The information of the Inventory new data + required: true + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/lockState_200_response' + description: Lock ID of the Organization Inventory State + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "411": + content: {} + description: The request has a body but it doesn't have a Content-Length header. + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + security: [] + tags: + - Organization Inventory + x-codegen-request-body-name: body + /members/verify/{verification_token}: + get: + description: Get the email address used for the pending member invitation + operationId: getPendingMemberInvitation + parameters: + - description: A token for verifying emails, invitations, etc. + in: path + name: verification_token + required: true + schema: + minLength: 5 + type: string + responses: + "200": + content: + application/json: + example: + data: + email: user@user.com + schema: + $ref: '#/components/schemas/getPendingMemberInvitation_200_response' + description: The email address used for the pending member invitation + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + security: [] + tags: + - Organization members + /organizations: + get: + description: Get the organizations that the authenticated user has access. + operationId: getOrgs + parameters: + - description: The page number to request. The first page is 1. + in: query + name: page_index + schema: + default: 1 + format: uint32 + type: integer + - description: The number of items at most which the response can have. + in: query + name: page_size + schema: + default: 1000 + format: uint32 + type: integer + - description: Search by the organization's name + in: query + name: organization_name + schema: + type: string + - description: Search by organization's creation date + in: query + name: organization_created_at + schema: + format: uint64 + type: integer + - description: | + Allows to order the list of items. Example usage: field_name:asc + in: query + name: order_by + schema: + type: string + responses: + "200": + content: + application/json: + example: + data: + - blocked: [] + can_children_create_appearance: true + can_create_appearance: true + canonical: org1 + ci_port: 443 + ci_team_name: asfdOPNljk + ci_url: https://scheduler.cycloid.io + created_at: 1503225026 + has_children: true + id: 1 + name: Organization 1 + quotas: false + subscription: + expires_at: 1501131026 + members_count: 10 + plan: + canonical: free_trial + id: 5 + name: Free Trial + updated_at: 1503335026 + - blocked: [] + can_children_create_appearance: true + can_create_appearance: true + canonical: org2 + ci_port: 443 + ci_team_name: asfdOPNljk + ci_url: https://scheduler.cycloid.io + created_at: 1501131026 + has_children: false + id: 1 + name: Organization 2 + quotas: false + subscription: + expires_at: 1501131026 + members_count: 10 + plan: + canonical: free_trial + id: 5 + name: Free Trial + updated_at: 1503333026 + - blocked: [] + can_children_create_appearance: true + can_create_appearance: true + canonical: org3 + ci_port: 443 + ci_team_name: asfdOPNljk + ci_url: https://scheduler.cycloid.io + created_at: 1500135021 + has_children: false + id: 1 + name: Organization 3 + quotas: false + subscription: + expires_at: 1501131026 + members_count: 10 + plan: + canonical: free_trial + id: 5 + name: Free Trial + updated_at: 1503332021 + pagination: + index: 1 + size: 10 + total: 3 + schema: + $ref: '#/components/schemas/getChildren_200_response' + description: List of the organizations which authenticated user has access. + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organizations + post: + description: Create a new organization, making the authenticated user the owner of it. + operationId: createOrg + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/NewOrganization' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/NewOrganization' + description: The information of the organization to create. + required: true + responses: + "200": + content: + application/json: + example: + data: + blocked: [] + can_children_create_appearance: false + can_create_appearance: true + canonical: org1 + ci_port: 443 + ci_team_name: asfdOPNljk + ci_url: https://scheduler.cycloid.io + created_at: 1503225026 + has_children: false + id: 1 + name: Organization 1 + quotas: false + updated_at: 1503335026 + schema: + $ref: '#/components/schemas/createChild_200_response' + description: Organization created. The body contains the information of the new created organization. + "411": + content: {} + description: The request has a body but it doesn't have a Content-Length header. + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organizations + x-codegen-request-body-name: body + /organizations/{organization_canonical}: + delete: + description: Delete the organization. + operationId: deleteOrg + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + "204": + content: {} + description: Organization has been deleted. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organizations + get: + description: Get the information of the organization. + operationId: getOrg + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + "200": + content: + application/json: + example: + data: + blocked: [] + can_children_create_appearance: false + can_create_appearance: true + canonical: org3 + ci_team_name: asfdOPNljk + created_at: 1500135021 + has_children: false + id: 1 + name: Organization 3 + quotas: false + subscription: + expires_at: 1501131026 + members_count: 10 + plan: + canonical: free_trial + id: 5 + name: Free Trial + updated_at: 1503332021 + schema: + $ref: '#/components/schemas/createChild_200_response' + description: The information of the organization which has the specified ID. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organizations + put: + description: Update the information of the organization. + operationId: updateOrg + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/UpdateOrganization' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UpdateOrganization' + description: The information of the organization to update. + required: true + responses: + "200": + content: + application/json: + example: + data: + blocked: [] + can_children_create_appearance: true + can_create_appearance: true + canonical: org2 + ci_team_name: asfdOPNljk + created_at: 1501131026 + id: 1 + name: Organization 2 + quotas: false + subscription: + expires_at: 1501131026 + members_count: 10 + plan: + canonical: free_trial + id: 5 + name: Free Trial + updated_at: 1503333026 + schema: + $ref: '#/components/schemas/createChild_200_response' + description: Organization updated. The body contains information of the updated organization. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "411": + content: {} + description: The request has a body but it doesn't have a Content-Length header. + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organizations + x-codegen-request-body-name: body + /organizations/{organization_canonical}/ancestors: + get: + description: Get all the ancestors between the Organization and the User with the shortest path. + operationId: getAncestors + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + "200": + content: + application/json: + example: + data: + - blocked: [] + can_children_create_appearance: true + can_create_appearance: true + canonical: org1 + ci_team_name: asfdOPNljk + created_at: 1503225026 + id: 1 + name: Organization 1 + quotas: false + updated_at: 1503335026 + - blocked: + - require_payment + can_children_create_appearance: true + can_create_appearance: true + canonical: org2 + ci_team_name: asfdOPNljk + created_at: 1501131026 + id: 2 + name: Organization 2 + quotas: false + updated_at: 1503333026 + - blocked: + - require_payment + can_children_create_appearance: true + can_create_appearance: true + canonical: org3 + ci_team_name: asfdOPNljk + created_at: 1500135021 + id: 3 + name: Organization 3 + quotas: false + updated_at: 1503332021 + pagination: + index: 33 + size: 10 + total: 42 + schema: + $ref: '#/components/schemas/getChildren_200_response' + description: Get all the ancestors between the Organization and the User with the shortest path. 0 index is the parent and n is the searched child + "401": + content: + application/json: + example: + errors: + - code: Unauthenticated + message: invalid credentials + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The user cannot be authenticated with the credentials which she/he has used. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organizations + /organizations/{organization_canonical}/api_keys: + get: + description: Get list of API keys of the organization. + operationId: getAPIKeys + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: The page number to request. The first page is 1. + in: query + name: page_index + schema: + default: 1 + format: uint32 + type: integer + - description: The number of items at most which the response can have. + in: query + name: page_size + schema: + default: 1000 + format: uint32 + type: integer + - description: Search by entity's owner + in: query + name: member_id + schema: + format: uint32 + type: integer + responses: + "200": + content: + application/json: + example: + data: + - canonical: ak-1 + description: this is ak-1 + id: 5 + name: AK 1 + owner: + created_at: 1503225026 + email: mariana.jimenezo@fakeemail.com + family_name: Jimenezo + given_name: Mariana + id: 10 + picture_url: https://avatars2.githubusercontent.com/u/14579210 + role: + canonical: role-can + description: this is the standard role + id: 42 + name: standard role + rules: + - action: organization:delete + effect: allow + id: 1 + resources: + - organization:org-can + - organization:org-can2 + - action: organization:team:create + effect: allow + id: 20 + resources: [] + - action: organization:team:read + effect: allow + id: 21 + resources: + - organization:org-can:team:team-can + username: user-2 + role: + description: Role for API key + id: 5 + name: Organization API key + policies: [] + token: jwt... + - canonical: ak-2 + description: this is ak-2 + id: 5 + name: AK 2 + owner: + created_at: 1503225001 + email: jorge.hombre@test.com + family_name: Hombre + given_name: Jorge + id: 2 + picture_url: https://avatars2.githubusercontent.com/u/14579203 + role: + canonical: role-can + description: this is the standard role + id: 42 + name: standard role + rules: + - action: organization:delete + effect: allow + id: 1 + resources: + - organization:org-can + - organization:org-can2 + - action: organization:team:create + effect: allow + id: 20 + resources: [] + - action: organization:team:read + effect: allow + id: 21 + resources: + - organization:org-can:team:team-can + username: user-3 + role: + description: Role for API key + id: 5 + name: Organization API key + policies: [] + token: jwt... + schema: + $ref: '#/components/schemas/getAPIKeys_200_response' + description: List of the API keys which the organization has. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization API keys + post: + description: Create a new API key in the organization. + operationId: createAPIKey + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/NewAPIKey' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/NewAPIKey' + description: The information of the API key to create. + required: true + responses: + "200": + content: + application/json: + example: + data: + canonical: ak-1 + description: this is ak-1 + id: 5 + name: AK 1 + owner: + created_at: 1503225026 + email: mariana.jimenezo@fakeemail.com + family_name: Jimenezo + given_name: Mariana + id: 10 + picture_url: https://avatars2.githubusercontent.com/u/14579210 + role: + canonical: role-can + description: this is the standard role + id: 42 + name: standard role + rules: + - action: organization:delete + effect: allow + id: 1 + resources: + - organization:org-can + - organization:org-can2 + - action: organization:team:create + effect: allow + id: 20 + resources: [] + - action: organization:team:read + effect: allow + id: 21 + resources: + - organization:org-can:team:team-can + username: user-2 + role: + description: Role for API key + id: 5 + name: Organization API key + policies: [] + token: jwt... + schema: + $ref: '#/components/schemas/createAPIKey_200_response' + description: API key created. The body contains the information of the new API key of the organization. + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "411": + content: {} + description: The request has a body but it doesn't have a Content-Length header. + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization API keys + x-codegen-request-body-name: body + /organizations/{organization_canonical}/api_keys/{api_key_canonical}: + delete: + description: Delete an API key of the organization. + operationId: deleteAPIKey + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of an API key. + in: path + name: api_key_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + "204": + content: {} + description: API key has been deleted. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization API keys + get: + description: Get an API key of the organization. + operationId: getAPIKey + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of an API key. + in: path + name: api_key_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + "200": + content: + application/json: + example: + data: + canonical: ak-1 + description: this is ak-1 + id: 5 + name: AK 1 + owner: + created_at: 1503225026 + email: mariana.jimenezo@fakeemail.com + family_name: Jimenezo + given_name: Mariana + id: 10 + picture_url: https://avatars2.githubusercontent.com/u/14579210 + role: + canonical: role-can + description: this is the standard role + id: 42 + name: standard role + rules: + - action: organization:delete + effect: allow + id: 1 + resources: + - organization:org-can + - organization:org-can2 + - action: organization:team:create + effect: allow + id: 20 + resources: [] + - action: organization:team:read + effect: allow + id: 21 + resources: + - organization:org-can:team:team-can + username: user-2 + rules: + - action: organization:delete + effect: allow + id: 1 + resources: + - organization:org-can + - organization:org-can2 + - action: organization:team:create + effect: allow + id: 20 + resources: [] + - action: organization:team:read + effect: allow + id: 21 + resources: + - organization:org-can:team:team-can + token: jwt... + schema: + $ref: '#/components/schemas/createAPIKey_200_response' + description: The information of the API key of the organization which has the specified canonical. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization API keys + put: + description: Update the information of an API key of the organization. If the API key has some information on the fields which aren't required and they are not sent or set to their default values, which depend of their types, the information will be removed. + operationId: updateAPIkey + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of an API key. + in: path + name: api_key_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/UpdateAPIKey' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UpdateAPIKey' + description: The information of the API key to update. + required: true + responses: + "200": + content: + application/json: + example: + data: + canonical: ak-1 + description: this is ak-1 + id: 5 + name: AK 1 + owner: + created_at: 1503225026 + email: mariana.jimenezo@fakeemail.com + family_name: Jimenezo + given_name: Mariana + id: 10 + picture_url: https://avatars2.githubusercontent.com/u/14579210 + role: + canonical: role-can + description: this is the standard role + id: 42 + name: standard role + rules: + - action: organization:delete + effect: allow + id: 1 + resources: + - organization:org-can + - organization:org-can2 + - action: organization:team:create + effect: allow + id: 20 + resources: [] + - action: organization:team:read + effect: allow + id: 21 + resources: + - organization:org-can:team:team-can + username: user-2 + rules: + - action: organization:delete + effect: allow + id: 1 + resources: + - organization:org-can + - organization:org-can2 + - action: organization:team:create + effect: allow + id: 20 + resources: [] + - action: organization:team:read + effect: allow + id: 21 + resources: + - organization:org-can:team:team-can + token: jwt... + schema: + $ref: '#/components/schemas/createAPIKey_200_response' + description: API ey updated. The body contains information of the updated API key. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "411": + content: {} + description: The request has a body but it doesn't have a Content-Length header. + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization API keys + x-codegen-request-body-name: body + /organizations/{organization_canonical}/appearances: + get: + description: List of appearances available in the organization. + operationId: listAppearances + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: The page number to request. The first page is 1. + in: query + name: page_index + schema: + default: 1 + format: uint32 + type: integer + - description: The number of items at most which the response can have. + in: query + name: page_size + schema: + default: 1000 + format: uint32 + type: integer + responses: + "200": + content: + application/json: + example: + data: + - canonical: default + color: + b: 151 + g: 151 + r: 28 + created_at: 1503225026 + display_name: Cycloid + favicon: https://console.cycloid.io/static/favicons/favicon.ico + footer: "" + is_active: false + logo: https://console.cycloid.io/static/images/app-logo-square.svg + name: Default + tab_title: Cycloid + updated_at: 1503335026 + - canonical: custom + color: + b: 151 + g: 151 + r: 28 + created_at: 1503225026 + display_name: Brand Name + favicon: https://console.cycloid.io/static/favicons/favicon.ico + footer: "" + is_active: true + logo: https://console.cycloid.io/static/images/app-logo-square.svg + name: Custom + tab_title: Brand Name + updated_at: 1503335026 + pagination: + index: 1 + size: 10 + total: 2 + schema: + $ref: '#/components/schemas/listAppearances_200_response' + description: List of appearances which are available in the organization. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Appearances + post: + description: Create a new appearance for the organization. + operationId: createAppearance + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/NewAppearance' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/NewAppearance' + description: The information of the organization's appearance to create. + required: true + responses: + "200": + content: + application/json: + example: + data: + color: + b: 0 + g: 0 + r: 0 + display_name: Brand Name + favicon: https://console.cycloid.io/static/favicons/favicon.ico + footer: "" + is_active: false + logo: https://console.cycloid.io/static/images/app-logo-square.svg + tab_title: Brand Name + schema: + $ref: '#/components/schemas/getActiveAppearance_200_response' + description: New appearance created in the organization. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Appearances + x-codegen-request-body-name: body + /organizations/{organization_canonical}/appearances/{appearance_canonical}: + delete: + description: Delete an existing appearance in the organization. + operationId: deleteAppearance + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of an appearance. + in: path + name: appearance_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + "204": + content: {} + description: Organization appearance has been deleted. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Appearances + get: + description: Get the appearance available in the organization with a canonical + operationId: getAppearance + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of an appearance. + in: path + name: appearance_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + "200": + content: + application/json: + example: + data: + canonical: custom + color: + b: 151 + g: 151 + r: 28 + created_at: 1503225026 + display_name: Cycloid + favicon: https://console.cycloid.io/static/favicons/favicon.ico + footer: "" + is_active: false + logo: https://console.cycloid.io/static/images/app-logo-square.svg + name: Default + tab_title: Cycloid + updated_at: 1503335026 + schema: + $ref: '#/components/schemas/getActiveAppearance_200_response' + description: Appearance available in the organization with such canonical. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Appearances + put: + description: Update an existing appearance in the organization. + operationId: updateAppearance + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of an appearance. + in: path + name: appearance_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/Appearance' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/Appearance' + description: The information of the organization's appearance to update. + required: true + responses: + "200": + content: + application/json: + example: + data: + canonical: custom + color: + b: 0 + g: 0 + r: 0 + created_at: 1503225026 + display_name: Brand Name + favicon: https://console.cycloid.io/static/favicons/favicon.ico + footer: "" + is_active: true + logo: https://console.cycloid.io/static/images/app-logo-square.svg + name: Custom + tab_title: Brand Name + updated_at: 1503335026 + schema: + $ref: '#/components/schemas/getActiveAppearance_200_response' + description: Updated appearance belonging to the organization. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Appearances + x-codegen-request-body-name: body + /organizations/{organization_canonical}/branches: + get: + description: | + Return all the branches of repository. If the repository is empty then an + empty list will be returned. + operationId: getRepoBranches + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A Credential canonical + in: query + name: credential_canonical + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: Git URL to repository + in: query + name: git_url + required: true + schema: + pattern: ^((/|~)[^/]*)+.(\.git)|(([\w\]+@[\w\.]+))(:(//)?)([\w\.@\:/\-~]+)(/)? + type: string + responses: + "200": + content: + application/json: + example: + data: + - stacks + - stacks2 + schema: + $ref: '#/components/schemas/getCloudCostManagementTags_200_response' + description: List of the repository branches + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organizations + /organizations/{organization_canonical}/can_do: + post: + description: Checks if the JWT can do the action + operationId: canDo + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/CanDoInput' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/CanDoInput' + description: The information of the authorization + required: true + responses: + "200": + content: + application/json: + example: + data: + entity_canonicals: + - pepito + - grillo + ok: true + schema: + $ref: '#/components/schemas/canDo_200_response' + description: The information of the possibility to do the action + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organizations + x-codegen-request-body-name: body + /organizations/{organization_canonical}/children: + get: + description: Get the children organizations that the authenticated user has access. + operationId: getChildren + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: The page number to request. The first page is 1. + in: query + name: page_index + schema: + default: 1 + format: uint32 + type: integer + - description: The number of items at most which the response can have. + in: query + name: page_size + schema: + default: 1000 + format: uint32 + type: integer + - description: Search by the organization's name + in: query + name: organization_name + schema: + type: string + - description: Search by organization's creation date + in: query + name: organization_created_at + schema: + format: date-time + type: string + - description: | + Allows to order the list of items. Example usage: field_name:asc + in: query + name: order_by + schema: + type: string + responses: + "200": + content: + application/json: + example: + data: + - blocked: [] + canonical: org1 + ci_team_name: asfdOPNljk + created_at: 1503225026 + has_children: true + id: 1 + name: Organization 1 + updated_at: 1503335026 + - blocked: [] + canonical: org2 + ci_team_name: asfdOPNljk + created_at: 1501131026 + has_children: false + id: 1 + name: Organization 2 + updated_at: 1503333026 + - blocked: [] + canonical: org3 + ci_team_name: asfdOPNljk + created_at: 1500135021 + has_children: false + id: 1 + name: Organization 3 + updated_at: 1503332021 + pagination: + index: 1 + size: 10 + total: 3 + schema: + $ref: '#/components/schemas/getChildren_200_response' + description: List of the children organizations which the authenticated user has access. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Children + post: + description: Create a new organization child, making the authenticated user the owner of it. + operationId: createChild + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/NewOrganization' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/NewOrganization' + description: The information of the organization to create. + required: true + responses: + "200": + content: + application/json: + example: + data: + blocked: [] + canonical: org1 + ci_team_name: asfdOPNljk + created_at: 1503225026 + id: 1 + name: Organization 1 + updated_at: 1503335026 + schema: + $ref: '#/components/schemas/createChild_200_response' + description: Organization created. The body contains the information of the new created organization. + tags: + - Organization Children + x-codegen-request-body-name: body + /organizations/{organization_canonical}/cloud_cost_management: + get: + description: "Return the dashboard of the Cloud Cost Management. It contains one histogram per \ncloud provider, five top projects, the list of projects resources \naggregated by cloud provider and the cost of the new resource in the \nperiod.\n" + operationId: getCloudCostManagementDashboard + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - allowEmptyValue: false + description: Sets the cost granularity, it can be month, week, day. + in: query + name: granularity + required: true + schema: + enum: + - month + - week + - day + type: string + - description: Sets the start date for retrieving AWS costs. The start date is inclusive. + in: query + name: begin + required: true + schema: + format: date + type: string + - description: Sets the end dates for retrieving AWS costs. The end date is exclusive. + in: query + name: end + required: true + schema: + format: date + type: string + - description: The currency required for the results. + in: query + name: currency + required: true + schema: + enum: + - USD + - EUR + - CNY + - GBP + type: string + - allowEmptyValue: false + description: The names of the projects that you can use to filter your results + explode: true + in: query + name: projects + schema: + items: + type: string + type: array + style: form + - allowEmptyValue: false + description: The ids of the linked accounts that you can use to filter your results + explode: true + in: query + name: linked_accounts + schema: + items: + type: string + type: array + style: form + - allowEmptyValue: false + description: The ids of the master accounts that you can use to filter your results + explode: true + in: query + name: master_accounts + schema: + items: + type: string + type: array + style: form + - allowEmptyValue: false + description: The type of records that you can use to filter your results. For example usage or credit. + explode: true + in: query + name: record_types + schema: + items: + type: string + type: array + style: form + responses: + "200": + content: + application/json: + example: + data: + filter_values: + currencies: + - USD + - EUR + projects: + - proj1 + - proj2 + providers: + - aws + - gcp + tags: + key1: + - value1 + - value2 + key2: + - value1 + - value2 + - value3 + key3: + - value1 + projects: + buckets: + - buckets: + - cost: 50 + value: proj1 + - cost: 50 + value: proj2 + cost: 100 + value: 2021-03 + - buckets: + - cost: 150 + value: proj1 + - cost: 50 + value: proj2 + cost: 200 + value: 2021-04 + cost: 300 + providers: + buckets: + - buckets: + - cost: 170 + value: 2021-03 + - cost: 130 + value: 2021-04 + cost: 300 + value: aws + - buckets: + - cost: 40 + value: 2021-03 + - cost: 60 + value: 2021-04 + cost: 100 + value: google + cost: 400 + resources: + - project: proj1 + providers: + - new_resources: 10 + provider: aws + resources: 12 + - new_resources: 7 + provider: google + resources: 23 + - project: proj2 + providers: + - new_resources: 4 + provider: aws + resources: 7 + schema: + $ref: '#/components/schemas/getCloudCostManagementDashboard_200_response' + description: Cloud Cost Management dashboard. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Cloud Cost Management Dashboard + /organizations/{organization_canonical}/cloud_cost_management/{provider_canonical}: + get: + description: Return a histogram of the costs generated in a given period aggregated by time granularity and other terms, for a single provider. + operationId: getCloudCostManagementProvider + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a Provider + in: path + name: provider_canonical + required: true + schema: + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - allowEmptyValue: false + description: Sets the cost granularity, it can be month, week, day. + in: query + name: granularity + required: true + schema: + enum: + - month + - week + - day + type: string + - description: Sets the start date for retrieving AWS costs. The start date is inclusive. + in: query + name: begin + required: true + schema: + format: date + type: string + - description: Sets the end dates for retrieving AWS costs. The end date is exclusive. + in: query + name: end + required: true + schema: + format: date + type: string + - description: The currency required for the results. + in: query + name: currency + required: true + schema: + enum: + - USD + - EUR + - CNY + - GBP + type: string + - allowEmptyValue: false + description: The names of the projects that you can use to filter your results + explode: true + in: query + name: projects + schema: + items: + type: string + type: array + style: form + - allowEmptyValue: false + description: The names of the environments that you can use to filter your results + explode: true + in: query + name: environments + schema: + items: + type: string + type: array + style: form + - allowEmptyValue: false + description: The names of the services that you can use to filter and group your results. + explode: true + in: query + name: services + schema: + items: + type: string + type: array + style: form + - allowEmptyValue: false + description: The key and value of a tag concatenated by a ;. + explode: true + in: query + name: tags + schema: + items: + maxLength: 127 + minLength: 4 + pattern: ^[^;]+;[^;]+$ + type: string + type: array + style: form + - allowEmptyValue: false + description: The names of the categories that you can use to filter and group your results. + explode: true + in: query + name: categories + schema: + items: + enum: + - other + - compute + - storage + - database + - dev_tools + - networking + - analytics + - containers + - machine_learning + - multimedia + - security + type: string + type: array + style: form + - allowEmptyValue: false + description: The ids of the master accounts that you can use to filter your results + explode: true + in: query + name: master_accounts + schema: + items: + type: string + type: array + style: form + - allowEmptyValue: false + description: The ids of the linked accounts that you can use to filter your results + explode: true + in: query + name: linked_accounts + schema: + items: + type: string + type: array + style: form + - allowEmptyValue: false + description: The names of the regions that you can use to filter your results + explode: true + in: query + name: regions + schema: + items: + type: string + type: array + style: form + - description: Filter results by only tagged or not tagged resources + in: query + name: resource_tagging + schema: + enum: + - tagged_resources + - untagged_resources + type: string + - allowEmptyValue: false + description: Represents a group when you specify a group by criteria, or in the response to a query with a specific grouping. + explode: true + in: query + name: group_by + schema: + items: + enum: + - environment + - service + - instance_type + - category + - location + - linked_account + - project + - record_type + type: string + type: array + uniqueItems: true + style: form + - allowEmptyValue: false + description: The type of records that you can use to filter your results. For example usage or credit. + explode: true + in: query + name: record_types + schema: + items: + type: string + type: array + style: form + responses: + "200": + content: + application/json: + example: + data: + buckets: + - buckets: + - buckets: + - cost: 25 + value: storage + - cost: 25 + value: compute + cost: 50 + value: us-est-1 + - buckets: + - cost: 20 + value: storge + - cost: 30 + value: compute + cost: 50 + value: us-est-2 + cost: 100 + value: 2021-03 + - buckets: + - buckets: + - cost: 50 + value: storage + - cost: 20 + value: compute + cost: 70 + value: us-est-1 + - buckets: + - cost: 15 + value: storage + - cost: 15 + value: compute + cost: 30 + value: us-est-2 + cost: 100 + value: 2021-04 + cost: 200 + filter_values: + components: + - storage + - compute + - containers + linked_account: + - acc1 + - acc2 + projects: + - proj1 + - proj2 + regions: + - us-east-1 + - eu-west-1 + tags: + key1: + - value1 + - value2 + key2: + - value1 + - value2 + - value3 + key3: + - value1 + schema: + $ref: '#/components/schemas/getCloudCostManagementProvider_200_response' + description: | + Cloud Cost Management histogram for a period of time and a single provider. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Cloud Cost Management Provider Histograms + /organizations/{organization_canonical}/cloud_cost_management/accounts: + get: + description: Return a list of Cloud Cost Management accounts which matches the scope specified by the filter. + operationId: getCloudCostManagementAccounts + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: The page number to request. The first page is 1. + in: query + name: page_index + schema: + default: 1 + format: uint32 + type: integer + - description: The number of items at most which the response can have. + in: query + name: page_size + schema: + default: 1000 + format: uint32 + type: integer + - description: Search by Cloud Cost Management account's creation date + in: query + name: cloud_cost_management_account_created_at_query + schema: + format: uint64 + type: integer + - description: | + Allows to order the list of items. Example usage: field_name:asc + in: query + name: order_by + schema: + type: string + responses: + "200": + content: + application/json: + example: + data: + account_id: account_id + canonical: my-cloud-cost-management-account + cloud_provider: + canonical: aws + created_at: 1503225026 + external_backend: + configuration: + bucket: b + engine: AWSStorage + key: k + region: eu-west1 + credential_canonical: credential + purpose: cost_explorer + id: 1 + last_ingestion_ended_at: 1503335026 + name: My AWS Cloud Cost Managment account + updated_at: 1503335026 + schema: + $ref: '#/components/schemas/getCloudCostManagementAccounts_200_response' + description: List of Cloud Cost Management accounts. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Cloud Cost Management Accounts + post: + description: Create a new Cloud Cost Management account. + operationId: createCloudCostManagementAccount + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/NewCloudCostManagementAccount' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/NewCloudCostManagementAccount' + required: true + responses: + "200": + content: + application/json: + example: + data: + account_id: account_id + canonical: my-cloud-cost-management-account + cloud_provider: + canonical: aws + created_at: 1503225026 + external_backend: + configuration: + bucket: b + engine: AWSStorage + key: k + region: eu-west1 + credential_canonical: credential + purpose: cost_explorer + id: 1 + last_ingestion_ended_at: 1503335026 + name: My AWS Cloud Cost Managment account + updated_at: 1503335026 + schema: + $ref: '#/components/schemas/createCloudCostManagementAccount_200_response' + description: The new Cloud Cost Management account created. + "411": + content: {} + description: The request has a body but it doesn't have a Content-Length header. + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Cloud Cost Management Accounts + x-codegen-request-body-name: body + /organizations/{organization_canonical}/cloud_cost_management/accounts/{cloud_cost_management_account_canonical}: + delete: + description: Delete the CloudCostManagementAccount. + operationId: deleteCloudCostManagementAccount + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: The canonical of an CloudCostManagementAccount. + in: path + name: cloud_cost_management_account_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + "204": + content: {} + description: CloudCostManagementAccount has been deleted. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Cloud Cost Management Accounts + get: + description: Get the information of the CloudCostManagementAccount. + operationId: getCloudCostManagementAccount + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: The canonical of an CloudCostManagementAccount. + in: path + name: cloud_cost_management_account_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + "200": + content: + application/json: + example: + data: + account_id: account_id + canonical: my-cloud-cost-management-account + cloud_provider: + canonical: aws + created_at: 1503225026 + external_backend: + configuration: + bucket: b + engine: AWSStorage + key: k + region: eu-west1 + credential_canonical: credential + purpose: cost_explorer + id: 1 + last_ingestion_ended_at: 1503335026 + updated_at: 1503335026 + schema: + $ref: '#/components/schemas/createCloudCostManagementAccount_200_response' + description: The information of the CloudCostManagementAccount which has the specified canonical. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Cloud Cost Management Accounts + put: + description: Update an existing CloudCostManagementAccount + operationId: updateCloudCostManagementAccount + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: The canonical of an CloudCostManagementAccount. + in: path + name: cloud_cost_management_account_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/UpdateCloudCostManagementAccount' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UpdateCloudCostManagementAccount' + description: The information of the organization to update. + required: true + responses: + "200": + content: + application/json: + example: + data: + account_id: account_id + canonical: my-cloud-cost-management-account + cloud_provider: + canonical: aws + created_at: 1503225026 + external_backend: + configuration: + bucket: b + engine: AWSStorage + key: k + region: eu-west1 + credential_canonical: credential + purpose: cost_explorer + id: 1 + last_ingestion_ended_at: 1503335026 + updated_at: 1503335026 + schema: + $ref: '#/components/schemas/createCloudCostManagementAccount_200_response' + description: CloudCostManagementAccount updated. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Cloud Cost Management Accounts + x-codegen-request-body-name: body + /organizations/{organization_canonical}/cloud_cost_management/accounts/{cloud_cost_management_account_canonical}/linked_accounts: + get: + description: Return a list of cloud provider accounts linked to a specific Cloud Cost Management account. + operationId: getCloudCostManagementLinkedAccounts + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: The canonical of an CloudCostManagementAccount. + in: path + name: cloud_cost_management_account_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + "200": + content: + application/json: + example: + data: + - account_id: xxxxxx-xxxxxx-xxxxxxx + cloud_provider: aws + id: 102 + name: A linked account + - account_id: yyyyyy-yyyyyy-yyyyyyy + cloud_provider: aws + id: 109 + name: Another linked account + schema: + $ref: '#/components/schemas/getCloudCostManagementLinkedAccounts_200_response' + description: List of linked accounts of a Cloud Cost Management account. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Cloud Cost Management Accounts + ? /organizations/{organization_canonical}/cloud_cost_management/accounts/{cloud_cost_management_account_canonical}/linked_accounts/{cloud_provider_account_id} + : put: + description: Update a Cloud Cost Management linked account + operationId: updateCloudCostManagementLinkedAccount + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: The canonical of an CloudCostManagementAccount. + in: path + name: cloud_cost_management_account_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: The id of an account in the Cloud Provider. + in: path + name: cloud_provider_account_id + required: true + schema: + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/UpdateCloudCostManagementLinkedAccount' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UpdateCloudCostManagementLinkedAccount' + description: The updated attributes of the Cloud Cost Management linked account + required: true + responses: + "200": + content: + application/json: + example: + data: + account_id: "123456789" + cloud_provider: aws + id: 99 + name: Updated linked account name + schema: + $ref: '#/components/schemas/CloudCostManagementLinkedAccount' + description: Updated Cloud Cost Management linked account + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Cloud Cost Management Accounts + x-codegen-request-body-name: body + /organizations/{organization_canonical}/cloud_cost_management/accounts/has_parent: + get: + description: Return whether account under provided credentials is a child account + operationId: getCloudCostManagementAccountsHasParent + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A Credential canonical + in: query + name: credential_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/getCloudCostManagementAccountsHasParent_200_response' + description: CE Account of the parent + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Cloud Cost Management Accounts + /organizations/{organization_canonical}/cloud_cost_management/child-accounts: + post: + description: Create a new Cloud Cost Management account. + operationId: createCloudCostManagementAccountChild + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/NewCloudCostManagementAccountChild' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/NewCloudCostManagementAccountChild' + required: true + responses: + "200": + content: + application/json: + example: + data: + account_id: account_id + canonical: my-cloud-cost-management-account + created_at: 1503225026 + credential_canonical: this-credential-is-cool + id: 1 + last_ingestion_ended_at: 1503335026 + parent_account_id: 123456-78900 + updated_at: 1503335026 + schema: + $ref: '#/components/schemas/createCloudCostManagementAccount_200_response' + description: The new Cloud Cost Management account created. + "411": + content: {} + description: The request has a body but it doesn't have a Content-Length header. + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Cloud Cost Management Accounts + x-codegen-request-body-name: body + /organizations/{organization_canonical}/cloud_cost_management/filter_values: + get: + description: Return a map with all the possible filter vaules + operationId: getCloudCostManagementFilterVaules + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: Sets the start date for retrieving AWS costs. The start date is inclusive. + in: query + name: begin + required: true + schema: + format: date + type: string + - description: Sets the end dates for retrieving AWS costs. The end date is exclusive. + in: query + name: end + required: true + schema: + format: date + type: string + - allowEmptyValue: false + description: The names of the projects that you can use to filter your results + explode: true + in: query + name: projects + schema: + items: + type: string + type: array + style: form + - allowEmptyValue: false + description: The names of the environments that you can use to filter your results + explode: true + in: query + name: environments + schema: + items: + type: string + type: array + style: form + - allowEmptyValue: false + description: The names of the services that you can use to filter and group your results. + explode: true + in: query + name: services + schema: + items: + type: string + type: array + style: form + - allowEmptyValue: false + description: The key and value of a tag concatenated by a ;. + explode: true + in: query + name: tags + schema: + items: + maxLength: 127 + minLength: 4 + pattern: ^[^;]+;[^;]+$ + type: string + type: array + style: form + - allowEmptyValue: false + description: The names of the categories that you can use to filter and group your results. + explode: true + in: query + name: categories + schema: + items: + enum: + - other + - compute + - storage + - database + - dev_tools + - networking + - analytics + - containers + - machine_learning + - multimedia + - security + type: string + type: array + style: form + - allowEmptyValue: false + description: The ids of the master accounts that you can use to filter your results + explode: true + in: query + name: master_accounts + schema: + items: + type: string + type: array + style: form + - allowEmptyValue: false + description: The ids of the linked accounts that you can use to filter your results + explode: true + in: query + name: linked_accounts + schema: + items: + type: string + type: array + style: form + - allowEmptyValue: false + description: The names of the regions that you can use to filter your results + explode: true + in: query + name: regions + schema: + items: + type: string + type: array + style: form + - description: Filter results by only tagged or not tagged resources + in: query + name: resource_tagging + schema: + enum: + - tagged_resources + - untagged_resources + type: string + - allowEmptyValue: false + description: Represents a group when you specify a group by criteria, or in the response to a query with a specific grouping. + explode: true + in: query + name: group_by + schema: + items: + enum: + - environment + - service + - instance_type + - category + - location + - linked_account + - project + - record_type + type: string + type: array + uniqueItems: true + style: form + - description: Specifies if the filter values are for the dashboard + in: query + name: dashboard + schema: + default: false + type: boolean + responses: + "200": + content: + application/json: + example: + data: + components: + - storage + - compute + - containers + linked_account: + - acc1 + - acc2 + projects: + - proj1 + - proj2 + regions: + - us-east-1 + - eu-west-1 + tags: + key1: + - value1 + - value2 + key2: + - value1 + - value2 + - value3 + key3: + - value1 + schema: + $ref: '#/components/schemas/getCloudCostManagementFilterVaules_200_response' + description: | + Cloud Cost Management histogram for a period of time and a single provider. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Cloud Cost Management filter vaules + /organizations/{organization_canonical}/cloud_cost_management/projects: + get: + description: "Return the projects dashboard of the Cloud Cost Management. \nIt contains one date histogram with the aggregation by project,\nand a histogram with the aggregation by project and provider.\n" + operationId: getCloudCostManagementProjectsDashboard + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - allowEmptyValue: false + description: Sets the cost granularity, it can be month, week, day. + in: query + name: granularity + required: true + schema: + enum: + - month + - week + - day + type: string + - description: Sets the start date for retrieving AWS costs. The start date is inclusive. + in: query + name: begin + required: true + schema: + format: date + type: string + - description: Sets the end dates for retrieving AWS costs. The end date is exclusive. + in: query + name: end + required: true + schema: + format: date + type: string + - description: The currency required for the results. + in: query + name: currency + required: true + schema: + enum: + - USD + - EUR + - CNY + - GBP + type: string + - allowEmptyValue: false + description: The names of the projects that you can use to filter your results + explode: true + in: query + name: projects + schema: + items: + type: string + type: array + style: form + - allowEmptyValue: false + description: The ids of the linked accounts that you can use to filter your results + explode: true + in: query + name: linked_accounts + schema: + items: + type: string + type: array + style: form + - allowEmptyValue: false + description: The ids of the master accounts that you can use to filter your results + explode: true + in: query + name: master_accounts + schema: + items: + type: string + type: array + style: form + responses: + "200": + content: + application/json: + example: + data: + project_providers: + - project: proj1 + providers: + - provider: + - cost: 50 + - cost: 10 + - project: proj2 + providers: + - provider: + - cost: 50 + - cost: 10 + projects: + buckets: + - buckets: + - cost: 50 + value: proj1 + - cost: 50 + value: proj2 + cost: 100 + value: 2021-03 + - buckets: + - cost: 150 + value: proj1 + - cost: 50 + value: proj2 + cost: 200 + value: 2021-04 + cost: 300 + schema: + $ref: '#/components/schemas/getCloudCostManagementProjectsDashboard_200_response' + description: Cloud Cost Management dashboard. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Cloud Cost Management Projects Dashboard + /organizations/{organization_canonical}/cloud_cost_management/providers: + get: + description: Return a histogram of the costs generated in a given period aggregated by time granularity and other terms, for a single provider. + operationId: getCloudCostManagementProviders + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - allowEmptyValue: false + description: Sets the cost granularity, it can be month, week, day. + in: query + name: granularity + required: true + schema: + enum: + - month + - week + - day + type: string + - description: Sets the start date for retrieving AWS costs. The start date is inclusive. + in: query + name: begin + required: true + schema: + format: date + type: string + - description: Sets the end dates for retrieving AWS costs. The end date is exclusive. + in: query + name: end + required: true + schema: + format: date + type: string + - description: The currency required for the results. + in: query + name: currency + required: true + schema: + enum: + - USD + - EUR + - CNY + - GBP + type: string + - allowEmptyValue: false + description: The names of the projects that you can use to filter your results + explode: true + in: query + name: projects + schema: + items: + type: string + type: array + style: form + - allowEmptyValue: false + description: The ids of the linked accounts that you can use to filter your results + explode: true + in: query + name: linked_accounts + schema: + items: + type: string + type: array + style: form + - allowEmptyValue: false + description: The ids of the master accounts that you can use to filter your results + explode: true + in: query + name: master_accounts + schema: + items: + type: string + type: array + style: form + responses: + "200": + content: + application/json: + example: + data: + - buckets: + - buckets: + - buckets: + - cost: 25 + value: storage + - cost: 25 + value: compute + cost: 50 + value: us-est-1 + - buckets: + - cost: 20 + value: storge + - cost: 30 + value: compute + cost: 50 + value: us-est-2 + cost: 100 + value: 2021-03 + - buckets: + - buckets: + - cost: 50 + value: storage + - cost: 20 + value: compute + cost: 70 + value: us-est-1 + - buckets: + - cost: 15 + value: storage + - cost: 15 + value: compute + cost: 30 + value: us-est-2 + cost: 100 + value: 2021-04 + cost: 200 + - buckets: + - buckets: + - buckets: + - cost: 25 + value: storage + - cost: 25 + value: compute + cost: 50 + value: us-est-1 + - buckets: + - cost: 20 + value: storge + - cost: 30 + value: compute + cost: 50 + value: us-est-2 + cost: 100 + value: 2021-03 + - buckets: + - buckets: + - cost: 50 + value: storage + - cost: 20 + value: compute + cost: 70 + value: us-est-1 + - buckets: + - cost: 15 + value: storage + - cost: 15 + value: compute + cost: 30 + value: us-est-2 + cost: 100 + value: 2021-04 + cost: 200 + schema: + $ref: '#/components/schemas/getCloudCostManagementProviders_200_response' + description: | + Cloud Cost Management histogram for a period of time and a single provider. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Cloud Cost Management Provider Histograms + /organizations/{organization_canonical}/cloud_cost_management/providers/{provider_canonical}: + get: + description: Return a histogram of the costs generated in a given period aggregated by time granularity and other terms, for a single provider. + operationId: getCloudCostManagementProviderDetails + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a Provider + in: path + name: provider_canonical + required: true + schema: + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - allowEmptyValue: false + description: Sets the cost granularity, it can be month, week, day. + in: query + name: granularity + required: true + schema: + enum: + - month + - week + - day + type: string + - description: Sets the start date for retrieving AWS costs. The start date is inclusive. + in: query + name: begin + required: true + schema: + format: date + type: string + - description: Sets the end dates for retrieving AWS costs. The end date is exclusive. + in: query + name: end + required: true + schema: + format: date + type: string + - description: The currency required for the results. + in: query + name: currency + required: true + schema: + enum: + - USD + - EUR + - CNY + - GBP + type: string + - allowEmptyValue: false + description: The names of the projects that you can use to filter your results + explode: true + in: query + name: projects + schema: + items: + type: string + type: array + style: form + - allowEmptyValue: false + description: The names of the environments that you can use to filter your results + explode: true + in: query + name: environments + schema: + items: + type: string + type: array + style: form + - allowEmptyValue: false + description: The names of the services that you can use to filter and group your results. + explode: true + in: query + name: services + schema: + items: + type: string + type: array + style: form + - allowEmptyValue: false + description: The key and value of a tag concatenated by a ;. + explode: true + in: query + name: tags + schema: + items: + maxLength: 127 + minLength: 4 + pattern: ^[^;]+;[^;]+$ + type: string + type: array + style: form + - allowEmptyValue: false + description: The names of the categories that you can use to filter and group your results. + explode: true + in: query + name: categories + schema: + items: + enum: + - other + - compute + - storage + - database + - dev_tools + - networking + - analytics + - containers + - machine_learning + - multimedia + - security + type: string + type: array + style: form + - allowEmptyValue: false + description: The ids of the master accounts that you can use to filter your results + explode: true + in: query + name: master_accounts + schema: + items: + type: string + type: array + style: form + - allowEmptyValue: false + description: The ids of the linked accounts that you can use to filter your results + explode: true + in: query + name: linked_accounts + schema: + items: + type: string + type: array + style: form + - allowEmptyValue: false + description: The names of the regions that you can use to filter your results + explode: true + in: query + name: regions + schema: + items: + type: string + type: array + style: form + - description: Filter results by only tagged or not tagged resources + in: query + name: resource_tagging + schema: + enum: + - tagged_resources + - untagged_resources + type: string + - allowEmptyValue: false + description: Represents a group when you specify a group by criteria, or in the response to a query with a specific grouping. + explode: true + in: query + name: group_by + schema: + items: + enum: + - environment + - service + - instance_type + - category + - location + - linked_account + - project + - record_type + type: string + type: array + uniqueItems: true + style: form + - allowEmptyValue: false + description: The type of records that you can use to filter your results. For example usage or credit. + explode: true + in: query + name: record_types + schema: + items: + type: string + type: array + style: form + responses: + "200": + content: + application/json: + example: + data: + buckets: + - buckets: + - buckets: + - cost: 25 + value: storage + - cost: 25 + value: compute + cost: 50 + value: us-est-1 + - buckets: + - cost: 20 + value: storge + - cost: 30 + value: compute + cost: 50 + value: us-est-2 + cost: 100 + value: 2021-03 + - buckets: + - buckets: + - cost: 50 + value: storage + - cost: 20 + value: compute + cost: 70 + value: us-est-1 + - buckets: + - cost: 15 + value: storage + - cost: 15 + value: compute + cost: 30 + value: us-est-2 + cost: 100 + value: 2021-04 + cost: 200 + filter_values: + components: + - storage + - compute + - containers + linked_account: + - acc1 + - acc2 + projects: + - proj1 + - proj2 + regions: + - us-east-1 + - eu-west-1 + tags: + key1: + - value1 + - value2 + key2: + - value1 + - value2 + - value3 + key3: + - value1 + schema: + $ref: '#/components/schemas/getCloudCostManagementProviderDetails_200_response' + description: | + Cloud Cost Management histogram for a period of time and a single provider. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Cloud Cost Management Provider Details + /organizations/{organization_canonical}/cloud_cost_management/tag_mapping: + get: + description: Return the Cloud Cost Management tag mapping for the organization + operationId: getCloudCostManagementTagMapping + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + "200": + content: + application/json: + example: + data: + created_at: 1503225026 + environment_regex: ^Environment$ + environment_tags: + - env + - environment + id: 1 + project_regex: ^Project$ + project_tags: + - proj + - project + updated_at: 1503335026 + schema: + $ref: '#/components/schemas/getCloudCostManagementTagMapping_200_response' + description: The CloudCostManagementTagMapping for the organization + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Cloud Cost Management Tag Mappings + put: + description: Create or Update a Cloud Cost Management Tag Mapping. + operationId: putCloudCostManagementTagMapping + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/UpdateCloudCostManagementTagMapping' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UpdateCloudCostManagementTagMapping' + required: true + responses: + "200": + content: + application/json: + example: + data: + created_at: 1503225026 + environment_regex: ^Environment$ + environment_tags: + - env + - environment + id: 1 + project_regex: ^Project$ + project_tags: + - proj + - project + updated_at: 1503335026 + schema: + $ref: '#/components/schemas/getCloudCostManagementTagMapping_200_response' + description: The new or updated Cloud Cost Management Tag Mapping + "411": + content: {} + description: The request has a body but it doesn't have a Content-Length header. + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Cloud Cost Management Tag Mappings + x-codegen-request-body-name: body + /organizations/{organization_canonical}/cloud_cost_management/tags: + get: + description: Return a list of tags used in Cloud Cost Management records. + operationId: getCloudCostManagementTags + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/getCloudCostManagementTags_200_response' + description: List of Cloud Cost Management records' tags. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Cloud Cost Management + /organizations/{organization_canonical}/cloud_providers: + get: + description: Get the list of Cloud Providers + operationId: getCloudProviders + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: The page number to request. The first page is 1. + in: query + name: page_index + schema: + default: 1 + format: uint32 + type: integer + - description: The number of items at most which the response can have. + in: query + name: page_size + schema: + default: 1000 + format: uint32 + type: integer + responses: + "200": + content: + application/json: + example: + data: + - abbreviation: AWS + canonical: aws + id: 1 + name: Amazon Web Services + regions: + - af-south-1 + - eu-west-2 + - us-east-1 + - us-east-2 + - abbreviation: GCP + canonical: google + id: 2 + name: Google Cloud Platform + - abbreviation: Azure + canonical: azurerm + id: 3 + name: Azure + regions: + - asia + - asiapacific + - australia + - australiacentral + - abbreviation: FlexibleEngine + canonical: flexibleengine + id: 4 + name: Flexible Engine + - abbreviation: OpenStack + canonical: openstack + id: 5 + name: OpenStack + - abbreviation: Scaleway + canonical: scaleway + id: 6 + name: Scaleway + - abbreviation: VMware + canonical: vmware + id: 7 + name: VMware + - abbreviation: OVH + canonical: ovh + id: 8 + name: OVH Cloud + - abbreviation: Alibaba + canonical: alibaba + id: 9 + name: Alibaba Cloud + - abbreviation: OCI + canonical: oracle + id: 10 + name: Oracle Cloud Infrastructure + pagination: + index: 1 + size: 10 + total: 2 + schema: + $ref: '#/components/schemas/getCloudProviders_200_response' + description: List of Cloud Providers + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Cloud providers + /organizations/{organization_canonical}/code_generation/infra_import/providers/{provider_canonical}/presets: + get: + description: List Infra Import Presets + operationId: getInfraImportPresets + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a Provider + in: path + name: provider_canonical + required: true + schema: + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + "200": + content: + application/json: + example: + data: + - name: Preset1 + resources: + - aws_route53_zone + - aws_security_group + schema: + $ref: '#/components/schemas/getInfraImportPresets_200_response' + description: The Infra Import Presets + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Code Generation + /organizations/{organization_canonical}/code_generation/infra_import/providers/{provider_canonical}/resources: + post: + description: List infrastructure import provider's resources + operationId: getInfraImportResources + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a Provider + in: path + name: provider_canonical + required: true + schema: + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/InfraImportResourcesBody' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/InfraImportResourcesBody' + description: Access information of the Cloud Provider's Resources. + required: true + responses: + "200": + content: + application/json: + example: + data: + - canonical: aws_instance + category: SomeCategory + description: detailed resource description + image: http://via.placeholder.com/150x150 + is_edge: false + is_node: true + keywords: [] + short_description: resource description + - canonical: aws_elb + category: SomeCategory + description: detailed resource description + image: http://via.placeholder.com/150x150 + is_edge: false + is_node: true + keywords: [] + short_description: resource description + schema: + $ref: '#/components/schemas/getInfraImportResources_200_response' + description: The InfraImport's Resources Types + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Code Generation + x-codegen-request-body-name: body + ? /organizations/{organization_canonical}/code_generation/infra_import/providers/{provider_canonical}/resources/{resource_canonical} + : post: + description: List Provider's Resource + operationId: getInfraImportResource + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a Provider + in: path + name: provider_canonical + required: true + schema: + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a Resource + in: path + name: resource_canonical + required: true + schema: + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/InfraImportResourceBody' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/InfraImportResourceBody' + description: Information for filtering and access the Cloud Provider's Resources. + required: true + responses: + "200": + content: + application/json: + example: + data: + - id: i-1234567890abcdef0 + - id: i-1234567890abcdef1 + schema: + $ref: '#/components/schemas/getInfraImportResource_200_response' + description: The Infra Import's Resources + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Code Generation + x-codegen-request-body-name: body + /organizations/{organization_canonical}/code_generation/terraform/jsontohcl: + post: + description: Transforms a JSON to a HCL + operationId: terraformJSONToHCL + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/TerraformJSONConfig' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/TerraformJSONConfig' + description: The Terraform JSON config + required: true + responses: + "200": + content: + application/json: + example: + data: + config: " \"data\" \"aws_ami\" \"debian_jessie_latest\" { \"most_recent\" = true } \"locals\" = { \"codecommit_repository_name\" = \"something\" } \"output\" \"sensitive\" { \"sensitive\" = true\n\"value\" = \"VALUE\" } \"provider\" \"aws\" { \"access_key\" = \"${var.access_key}\" } \"resource\" \"aws_elb\" \"front\" { \"name\" = \"${var.project}-front-${var.env}\" \"tags\" = { \"name\" = \"some name\" } } \"variable\" \"front_disk_size\" { \"default\" = 60 } " + schema: + $ref: '#/components/schemas/terraformJSONToHCL_200_response' + description: The HCL translation of the config + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Code Generation + x-codegen-request-body-name: body + /organizations/{organization_canonical}/code_generation/terraform/providers: + get: + description: Return all the Providers + operationId: getTerraformProviders + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: The page number to request. The first page is 1. + in: query + name: page_index + schema: + default: 1 + format: uint32 + type: integer + - description: The number of items at most which the response can have. + in: query + name: page_size + schema: + default: 1000 + format: uint32 + type: integer + responses: + "200": + content: + application/json: + example: + data: + - abbreviation: AWS + canonical: aws + cloud: true + image: http://via.placeholder.com/150x150 + name: Amazon Web Service + - abbreviation: Template + canonical: template + cloud: false + image: http://via.placeholder.com/150x150 + name: Terraform Template + pagination: + index: 1 + size: 10 + total: 2 + schema: + $ref: '#/components/schemas/getTerraformProviders_200_response' + description: List of the Providers + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Code Generation + /organizations/{organization_canonical}/code_generation/terraform/providers/{provider_canonical}: + get: + description: Get the information of the Provider + operationId: getTerraformProvider + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a Provider + in: path + name: provider_canonical + required: true + schema: + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + "200": + content: + application/json: + example: + data: + abbreviation: AWS + canonical: aws + cloud: true + image: http://via.placeholder.com/150x150 + name: Amazon Web Service + schema: + access_key: + default: "" + optional: true + required: false + type: TypeString + secret_key: + default: "" + optional: true + required: false + type: TypeString + schema: + $ref: '#/components/schemas/getTerraformProvider_200_response' + description: The information of the Provider + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Code Generation + /organizations/{organization_canonical}/code_generation/terraform/providers/{provider_canonical}/data_sources: + get: + description: Return all the DataSources for the Provider + operationId: getTerraformProviderDataSources + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a Provider + in: path + name: provider_canonical + required: true + schema: + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: The page number to request. The first page is 1. + in: query + name: page_index + schema: + default: 1 + format: uint32 + type: integer + - description: The number of items at most which the response can have. + in: query + name: page_size + schema: + default: 1000 + format: uint32 + type: integer + responses: + "200": + content: + application/json: + example: + data: + - canonical: aws_instance + category: SomeCategory + description: detailed resource description + image: http://via.placeholder.com/150x150 + is_edge: false + is_node: true + keywords: [] + short_description: resource description + - canonical: aws_elb + category: SomeCategory + description: detailed resource description + image: http://via.placeholder.com/150x150 + is_edge: false + is_node: true + keywords: [] + short_description: resource description + pagination: + index: 1 + size: 10 + total: 2 + schema: + $ref: '#/components/schemas/getInfraImportResources_200_response' + description: List of the DataSources + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Code Generation + ? /organizations/{organization_canonical}/code_generation/terraform/providers/{provider_canonical}/data_sources/{resource_canonical} + : get: + description: Get the information of the DataSource + operationId: getTerraformProviderDataSource + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a Provider + in: path + name: provider_canonical + required: true + schema: + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a Resource + in: path + name: resource_canonical + required: true + schema: + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + "200": + content: + application/json: + example: + data: + canonical: aws_lb + category: SomeCategory + description: detailed resource description + image: http://via.placeholder.com/150x150 + is_edge: false + is_node: true + keywords: [] + schema: + dns_name: + default: "" + optional: false + required: false + type: TypeString + internal: + default: "null" + optional: true + required: false + type: TypeBool + short_description: resource description + schema: + $ref: '#/components/schemas/getTerraformProviderDataSource_200_response' + description: The information of the DataSource + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Code Generation + /organizations/{organization_canonical}/code_generation/terraform/providers/{provider_canonical}/resources: + get: + description: Return all the Resources for the Provider + operationId: getTerraformProviderResources + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a Provider + in: path + name: provider_canonical + required: true + schema: + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: The page number to request. The first page is 1. + in: query + name: page_index + schema: + default: 1 + format: uint32 + type: integer + - description: The number of items at most which the response can have. + in: query + name: page_size + schema: + default: 1000 + format: uint32 + type: integer + responses: + "200": + content: + application/json: + example: + data: + - canonical: aws_instance + category: SomeCategory + description: detailed resource description + image: http://via.placeholder.com/150x150 + is_edge: false + is_node: true + keywords: [] + short_description: resource description + - canonical: aws_elb + category: SomeCategory + description: detailed resource description + image: http://via.placeholder.com/150x150 + is_edge: false + is_node: true + keywords: [] + short_description: resource description + pagination: + index: 1 + size: 10 + total: 2 + schema: + $ref: '#/components/schemas/getInfraImportResources_200_response' + description: List of the Resources + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Code Generation + /organizations/{organization_canonical}/code_generation/terraform/providers/{provider_canonical}/resources/{resource_canonical}: + get: + description: Get the information of the Resource + operationId: getTerraformProviderResource + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a Provider + in: path + name: provider_canonical + required: true + schema: + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a Resource + in: path + name: resource_canonical + required: true + schema: + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + "200": + content: + application/json: + example: + data: + attributes: + important: + - count + normalized_status: + "on": running + status: status + canonical: aws_lb + category: SomeCategory + description: detailed resource description + image: http://via.placeholder.com/150x150 + is_edge: false + is_node: true + keywords: [] + schema: + dns_name: + default: "" + optional: false + required: false + type: TypeString + internal: + default: "null" + optional: true + required: false + type: TypeBool + short_description: resource description + schema: + $ref: '#/components/schemas/getTerraformProviderDataSource_200_response' + description: The information of the Resource + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Code Generation + /organizations/{organization_canonical}/code_generation/terraform/validate: + post: + description: Validates a TF configuration + operationId: terraformValidate + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/TerraformJSONConfig' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/TerraformJSONConfig' + description: The Terraform JSON config + required: true + responses: + "200": + content: + application/json: + example: + data: + errors: + - 'resource ''aws_elb.front'' config: unknown variable referenced: ''name''; define it with a ''variable'' block' + schema: + $ref: '#/components/schemas/terraformValidate_200_response' + description: The result of validating the provided configuration + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Code Generation + x-codegen-request-body-name: body + /organizations/{organization_canonical}/config_repositories: + get: + description: Return all the config repositories + operationId: listConfigRepositories + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: The page number to request. The first page is 1. + in: query + name: page_index + schema: + default: 1 + format: uint32 + type: integer + - description: The number of items at most which the response can have. + in: query + name: page_size + schema: + default: 1000 + format: uint32 + type: integer + - description: Value describing whether to return default + in: query + name: default + schema: + default: false + type: boolean + responses: + "200": + content: + application/json: + example: + data: + - branch: configs + canonical: my-personal-repo + created_at: 1503225026 + default: true + id: 1 + name: My personal repo + updated_at: 1503335026 + url: git@github.com:myuser/repository.git + - branch: configs + canonical: my-personal-repo2 + created_at: 1503225026 + default: false + id: 2 + name: My personal repo 2 + updated_at: 1503335026 + url: git@github.com:myuser/repository.git + pagination: + index: 1 + size: 10 + total: 2 + schema: + $ref: '#/components/schemas/listConfigRepositories_200_response' + description: List of the config repositories. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Config Repositories + post: + description: Creates a config repository + operationId: createConfigRepository + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/NewConfigRepository' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/NewConfigRepository' + description: The information of the config repository to create. + required: true + responses: + "200": + content: + application/json: + example: + data: + branch: configs + canonical: my-personal-repo + created_at: 1503225026 + credential_id: 1 + default: true + id: 1 + name: My personal repo + updated_at: 1503335026 + url: git@github.com:myuser/repository.git + schema: + $ref: '#/components/schemas/createConfigRepository_200_response' + description: Success creation + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "411": + content: {} + description: The request has a body but it doesn't have a Content-Length header. + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Config Repositories + x-codegen-request-body-name: body + /organizations/{organization_canonical}/config_repositories/{config_repository_canonical}: + delete: + description: delete a Config Repositories + operationId: deleteConfigRepository + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: Organization Config Repositories canonical + in: path + name: config_repository_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + "204": + content: {} + description: Organization Config repository has been deleted + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Config Repositories + get: + description: Return the Config Repository + operationId: getConfigRepository + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: Organization Config Repositories canonical + in: path + name: config_repository_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: The page number to request. The first page is 1. + in: query + name: page_index + schema: + default: 1 + format: uint32 + type: integer + - description: The number of items at most which the response can have. + in: query + name: page_size + schema: + default: 1000 + format: uint32 + type: integer + responses: + "200": + content: + application/json: + example: + data: + branch: configs + canonical: my-personal-repo + created_at: 1503225026 + default: true + id: 1 + name: My personal repo + updated_at: 1503335026 + url: git@github.com:myuser/repository.git + schema: + $ref: '#/components/schemas/createConfigRepository_200_response' + description: Organization Config Repository. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Config Repositories + put: + description: Update a config repository + operationId: updateConfigRepository + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: Organization Config Repositories canonical + in: path + name: config_repository_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/UpdateConfigRepository' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UpdateConfigRepository' + description: The information of the config repository to create. + required: true + responses: + "200": + content: + application/json: + example: + data: + branch: configs + canonical: my-personal-repo + created_at: 1503225026 + credential_id: 1 + default: true + id: 1 + name: My personal repo + updated_at: 1503335026 + url: git@github.com:myuser/repository.git + schema: + $ref: '#/components/schemas/createConfigRepository_200_response' + description: Success creation + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "411": + content: {} + description: The request has a body but it doesn't have a Content-Length header. + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Config Repositories + x-codegen-request-body-name: body + /organizations/{organization_canonical}/config_repositories/{config_repository_canonical}/config: + post: + description: Create Service Catalog config files in the Config Repository. + operationId: createConfigRepositoryConfig + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: Organization Config Repositories canonical + in: path + name: config_repository_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/SCConfig' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/SCConfig' + description: | + The body contains Service Catalog's config files and paths where they'll be created in the Config Repository. + required: true + responses: + "204": + content: {} + description: SC config files have been created successfully + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "411": + content: {} + description: The request has a body but it doesn't have a Content-Length header. + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Config Repositories + x-codegen-request-body-name: body + /organizations/{organization_canonical}/cost_estimation/tfplan: + post: + description: Estimate costs of a Terraform plan in JSON format. + operationId: costEstimateTfPlan + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/TerraformPlanInput' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/TerraformPlanInput' + required: true + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/costEstimateTfPlan_200_response' + description: The result of estimating the costs of a Terraform plan. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Cost Estimation + x-codegen-request-body-name: body + /organizations/{organization_canonical}/credentials: + get: + description: Return all the Credentials, depending on the caller permissions it'll return the Raw data or not. If the caller has List and not Get it'll not return the Raw, if it has List and Read it'll return the Raw. + operationId: listCredentials + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: The page number to request. The first page is 1. + in: query + name: page_index + schema: + default: 1 + format: uint32 + type: integer + - description: The number of items at most which the response can have. + in: query + name: page_size + schema: + default: 1000 + format: uint32 + type: integer + - description: | + Deprecated. Please use credential_types. + A Credential type + in: query + name: credential_type + schema: + enum: + - ssh + - aws + - custom + - azure + - azure_storage + - gcp + - basic_auth + - elasticsearch + - swift + type: string + - allowEmptyValue: true + description: Multiple Credential types + explode: true + in: query + name: credential_types + schema: + items: + enum: + - ssh + - aws + - custom + - azure + - azure_storage + - gcp + - basic_auth + - elasticsearch + - swift + type: string + type: array + uniqueItems: true + style: form + responses: + "200": + content: + application/json: + example: + data: + - canonical: name-key1 + created_at: 1503225026 + id: 1 + name: name-key + owner: + created_at: 1503225026 + email: mariana.jimenezo@fakeemail.com + family_name: Jimenezo + given_name: Mariana + id: 10 + picture_url: https://avatars2.githubusercontent.com/u/14579210 + role: + canonical: role-can + description: this is the standard role + id: 42 + name: standard role + rules: + - action: organization:delete + effect: allow + id: 1 + resources: + - organization:org-can + - organization:org-can2 + - action: organization:team:create + effect: allow + id: 20 + resources: [] + - action: organization:team:read + effect: allow + id: 21 + resources: + - organization:org-can:team:team-can + username: user-2 + path: my/path + raw: + ssh_key: key + type: ssh + updated_at: 1503335026 + - canonical: name-key2 + created_at: 1503225026 + id: 2 + name: name-key + owner: + created_at: 1503225026 + email: mariana.jimenezo@fakeemail.com + family_name: Jimenezo + given_name: Mariana + id: 10 + picture_url: https://avatars2.githubusercontent.com/u/14579210 + role: + canonical: role-can + description: this is the standard role + id: 42 + name: standard role + rules: + - action: organization:delete + effect: allow + id: 1 + resources: + - organization:org-can + - organization:org-can2 + - action: organization:team:create + effect: allow + id: 20 + resources: [] + - action: organization:team:read + effect: allow + id: 21 + resources: + - organization:org-can:team:team-can + username: user-2 + path: my/path + raw: + ssh_key: key + type: ssh + updated_at: 1503335026 + pagination: + index: 1 + size: 10 + total: 2 + schema: + $ref: '#/components/schemas/listCredentials_200_response' + description: List of the Credentials + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Credentials + post: + description: |- + Create a new Credential, based on the type you will have to pass different parameters within the body: + * ssh: ssh_key + * aws: access_key, secret_key + * gcp: json_key + * azure: client_id, client_secret, subscription_id, tenant_id + * azure_storage: account_name, access_key + * basic_auth: username, password + * elasticsearch: username, password, ca_cert + * swift: auth_url, username, password, domain_id, tenant_id + * vmware: username, password + operationId: createCredential + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/NewCredential' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/NewCredential' + description: The information of the organization to create. + required: true + responses: + "200": + content: + application/json: + example: + data: + canonical: name-key + id: 2 + name: name-key + path: my/path + raw: + ssh_key: key + type: ssh + schema: + $ref: '#/components/schemas/createCredential_200_response' + description: Credential created. The body contains the information of the new created Credential. + "411": + content: {} + description: The request has a body but it doesn't have a Content-Length header. + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Credentials + x-codegen-request-body-name: body + /organizations/{organization_canonical}/credentials/{credential_canonical}: + delete: + description: Delete the Credential. + operationId: deleteCredential + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A Credential canonical + in: path + name: credential_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + "204": + content: {} + description: Credential has been deleted. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "409": + content: {} + description: Credential deletion has internal conflict + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Credentials + get: + description: Get the information of the Credential. + operationId: getCredential + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A Credential canonical + in: path + name: credential_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + "200": + content: + application/json: + example: + data: + canonical: name-key + id: 2 + name: name-key + owner: + created_at: 1503225026 + email: mariana.jimenezo@fakeemail.com + family_name: Jimenezo + given_name: Mariana + id: 10 + picture_url: https://avatars2.githubusercontent.com/u/14579210 + role: + canonical: role-can + description: this is the standard role + id: 42 + name: standard role + rules: + - action: organization:delete + effect: allow + id: 1 + resources: + - organization:org-can + - organization:org-can2 + - action: organization:team:create + effect: allow + id: 20 + resources: [] + - action: organization:team:read + effect: allow + id: 21 + resources: + - organization:org-can:team:team-can + username: user-2 + path: my/path + raw: + ssh_key: key + type: ssh + schema: + $ref: '#/components/schemas/createCredential_200_response' + description: The information of the Credential which has the specified ID. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Credentials + put: + description: |- + Update an existing Credential, based on the type you will have to pass different parameters within the body: + * ssh: ssh_key + * aws: access_key, secret_key + * gcp: json_key + * azure: client_id, client_secret, subscription_id, tenant_id + * azure_storage: account_name, access_key + * basic_auth: username, password + * elasticsearch: username, password, ca_cert + * swift: auth_url, username, password, domain_id, tenant_id + * vmware: username, password + operationId: updateCredential + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A Credential canonical + in: path + name: credential_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/UpdateCredential' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UpdateCredential' + description: The information of the organization to update. + required: true + responses: + "200": + content: + application/json: + example: + data: + canonical: name-key + id: 2 + name: name-key + path: my/path + raw: + ssh_key: key + type: ssh + schema: + $ref: '#/components/schemas/createCredential_200_response' + description: Credential updated. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "411": + content: {} + description: The request has a body but it doesn't have a Content-Length header. + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Credentials + x-codegen-request-body-name: body + /organizations/{organization_canonical}/credentials/{credential_canonical}/options: + get: + description: Get options of the Credential. + operationId: getCredentialOptions + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A Credential canonical + in: path + name: credential_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - in: query + name: service + required: true + schema: + enum: + - gcp_bigquery + type: string + responses: + "200": + content: + application/json: + example: + data: + projects: + - datasets: + - id: all_billing_data + tables: + - id: cloud_pricing_export + - id: gcp_billing_export_resource_v1_GOOGLE_CLOUD_ACCOUNT_ID + - id: gcp_billing_export_v1_GOOGLE_CLOUD_ACCOUNT_ID + id: cycloid-xxx + - datasets: [] + id: cycloid-demo + schema: + $ref: '#/components/schemas/getCredentialOptions_200_response' + description: Service-specific options for the Credential with the specified ID. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Credentials + /organizations/{organization_canonical}/environments: + get: + description: Get all the environments of the Organization + operationId: getEnvironments + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: The page number to request. The first page is 1. + in: query + name: page_index + schema: + default: 1 + format: uint32 + type: integer + - description: The number of items at most which the response can have. + in: query + name: page_size + schema: + default: 1000 + format: uint32 + type: integer + responses: + "200": + content: + application/json: + example: + data: + - canonical: staging + created_at: 1503225026 + id: 2 + updated_at: 1503335026 + - canonical: dev + created_at: 1503225026 + id: 3 + updated_at: 1503335026 + pagination: + index: 1 + size: 10 + total: 2 + schema: + $ref: '#/components/schemas/getEnvironments_200_response' + description: Returns all the Environments + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Environments + /organizations/{organization_canonical}/events: + get: + description: |- + Retrieve the list of events which has been registered on the organization. The events to request can be filtered using Unix timestamps in milliseconds (begin and end timestamps range), the event type and severity; when more than one are applied then they are applied with a logical AND. + - The Unix timestamps must always be specified, the rest of the filters + are not mandatory. + operationId: getEvents + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: The unix timestamp in milliseconds, which indicate the start of the time range. + in: query + name: begin + schema: + format: uint64 + type: integer + - description: The unix timestamp in milliseconds, which indicate the end of the time range. + in: query + name: end + schema: + format: uint64 + type: integer + - allowEmptyValue: false + description: Specify the types of the events to be requested. The returned events must have one of the specified types. + explode: true + in: query + name: type + schema: + items: + enum: + - Cycloid + - AWS + - Monitoring + - Custom + type: string + type: array + style: form + - allowEmptyValue: false + description: Specify the severities of the events to be requested. The returned events must have one of the specified severities. + explode: true + in: query + name: severity + schema: + items: + enum: + - info + - warn + - err + - crit + type: string + type: array + style: form + responses: + "200": + content: + application/json: + example: + data: + - icon: fa-info-circle + id: 42 + message: Cyclobot created the build cleanup-deployment#42 of pipeline awesome-project-pr_1337 + severity: info + tags: + - key: action + value: create + - key: entity + value: build + - key: name + value: awesome-project-pr_1337/cleanup-deployment + - key: user + value: cyclobot + timestamp: "0123456789" + title: A build has been created + type: Cycloid + - icon: fa-info-circle + id: 2 + message: A new deployment of awesome-project version 1.1.93-rc.5 has been done on staging environment + severity: info + tags: + - key: env + value: staging + - key: project + value: awesome-project + timestamp: "0123456795" + title: Success deployment of awesome-project version 1.1.93-rc.5 on staging environment + type: Custom + - id: 3 + message: Kubernetes nodes of the deployment awesome-project are under heavy load + severity: warn + tags: + - key: Name + value: my-mum-kubernetes-prod + - key: UUID + value: 3ec0a46e-435e-4c5e-989b-02179efb49b5 + - key: alertname + value: K8SNodeDiskPressure + - key: condition + value: DiskPressure + - key: customer + value: awesome-customer + - key: env + value: prod + - key: instance + value: 172.30.12.2338080 + - key: job + value: kube-state-metrics + - key: node + value: ip-127-0-0-1.eu-west-1.compute.internal + - key: project + value: kubernetes + - key: receiver + value: on_call + - key: service + value: k8s + - key: severity + value: warning + - key: status + value: false + timestamp: "0123456810" + title: Nodes are overloaded + type: Monitoring + - icon: fa-aws + id: 5 + message: A new AWS instance has been created + severity: info + tags: + - key: env + value: testing + - key: project + value: awesome-project + timestamp: "0123456823" + title: AWS created + type: AWS + - icon: fa-aws + id: 7 + message: A new AWS instance is ready to accept requests + severity: info + tags: + - key: env + value: testing + - key: project + value: secret-project + timestamp: "0123456834" + title: AWS is ready + type: AWS + schema: + $ref: '#/components/schemas/getEvents_200_response' + description: The list of events which fulfills the query parameters filter + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organizations + post: + description: Send a event on the organization to be registered. + operationId: sendEvent + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/NewEvent' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/NewEvent' + description: The information associated with the event to register. + required: true + responses: + "200": + content: + application/json: + example: + data: + - icon: fa-info-circle + message: A new member has been added to the project Website + severity: info + tags: + - key: project_canonical + value: website + - key: environment_canonical + value: development + - key: user + value: batman + timestamp: "0123456789" + title: New member added + type: Cycloid + schema: + $ref: '#/components/schemas/sendEvent_200_response' + description: Event has been registered + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organizations + x-codegen-request-body-name: body + /organizations/{organization_canonical}/events/tags: + get: + description: Retrieve the list of tags and set of values for all the events of the organization. + operationId: getEventsTags + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + "200": + content: + application/json: + example: + data: + action: + - create + - delete + - update + customer: + - awesome-customer + - cycloid + entity: + - build + - pipeline + env: + - prod + - staging + - testing + name: + - awesome-project-pr_1337 + - awesome-project-pr_42 + project: + - awesome-project + - pet-project + - secret-project + user: + - cycloidbot + - geralt-of-rivia + schema: + $ref: '#/components/schemas/getEventsTags_200_response' + description: The list of tags and set of values for all the events of the organization. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organizations + /organizations/{organization_canonical}/external_backends: + get: + description: Get the list of organization external backends + operationId: getExternalBackends + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A list of projects' canonical to filter from + in: query + name: project_canonical + schema: + pattern: ^[\da-z]+(?:(?:[\da-z\-._]+)?[\da-z])?$ + type: string + - description: A list of environments' canonical to filter from + in: query + name: environment_canonical + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: Filter for default Terraform External Backend + in: query + name: external_backend_default + schema: + type: boolean + responses: + "200": + content: + application/json: + example: + data: + - configuration: + engine: AWSCloudWatchLogs + region: eu-west1 + created_at: 1503225026 + credential_id: 1 + id: 1 + project_canonical: project1 + purpose: logs + updated_at: 1503335026 + - configuration: + engine: AWSCloudWatchLogs + region: eu-west1 + created_at: 1503225026 + credential_id: 2 + id: 2 + project_canonical: project2 + purpose: logs + updated_at: 1503335026 + - configuration: + bucket: mybucket + engine: AWSStorage + key: /my/key + region: eu-west1 + created_at: 1503225026 + credential: 3 + environment_canonical: envA + id: 3 + project_canonical: project1 + purpose: remote_tfstate + updated_at: 1503335026 + - configuration: + blob: /my/blob + container: mycontainer + engine: AWSStorage + created_at: 1503225026 + credential: 4 + environment_canonical: envA + id: 4 + project_canonical: project2 + purpose: logs + updated_at: 1503335026 + - configuration: + bucket: mybucket + engine: GCPStorage + object: /my/object + created_at: 1503225026 + credential_id: 5 + environment_canonical: envB + id: 5 + project_canonical: project2 + purpose: remote_tfstate + updated_at: 1503335026 + schema: + $ref: '#/components/schemas/getExternalBackends_200_response' + description: The list of the external backends + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization External Backends + post: + description: Save information about the external backend + operationId: createExternalBackend + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A list of projects' canonical to filter from + in: query + name: project_canonical + schema: + pattern: ^[\da-z]+(?:(?:[\da-z\-._]+)?[\da-z])?$ + type: string + - description: A list of environments' canonical to filter from + in: query + name: environment_canonical + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: Filter for default Terraform External Backend + in: query + name: external_backend_default + schema: + type: boolean + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/NewExternalBackend' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/NewExternalBackend' + description: The information of the external backend + required: true + responses: + "200": + content: + application/json: + example: + data: + configuration: + engine: AWSCloudWatchLogs + region: eu-west1 + created_at: 1503225026 + credential_id: 1 + id: 1 + project_canonical: project1 + purpose: logs + updated_at: 1503335026 + schema: + $ref: '#/components/schemas/createExternalBackend_200_response' + description: external backend has been registered + tags: + - Organization External Backends + x-codegen-request-body-name: body + /organizations/{organization_canonical}/external_backends/{external_backend_id}: + delete: + description: delete an External Backend + operationId: deleteExternalBackend + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: External Backend ID + in: path + name: external_backend_id + required: true + schema: + format: uint32 + type: integer + responses: + "204": + content: {} + description: Organization Service Catalog Sources has been deleted + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization External Backends + get: + description: Get the external backend + operationId: getExternalBackend + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: External Backend ID + in: path + name: external_backend_id + required: true + schema: + format: uint32 + type: integer + responses: + "200": + content: + application/json: + example: + data: + configuration: + engine: AWSCloudWatchLogs + created_at: 1503225026 + credential_id: 1 + id: 1 + project_canonical: project1 + purpose: logs + updated_at: 1503335026 + schema: + $ref: '#/components/schemas/createExternalBackend_200_response' + description: The external backend + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization External Backends + put: + description: Update an External Backend + operationId: updateExternalBackend + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: External Backend ID + in: path + name: external_backend_id + required: true + schema: + format: uint32 + type: integer + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/UpdateExternalBackend' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UpdateExternalBackend' + description: The information of the external backend new data + required: true + responses: + "200": + content: + application/json: + example: + data: + configuration: + engine: AWSCloudWatchLogs + region: eu-west1 + created_at: 1503225026 + credential_id: 1 + id: 1 + project_canonical: project1 + purpose: logs + updated_at: 1503335026 + schema: + $ref: '#/components/schemas/createExternalBackend_200_response' + description: Success update + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "411": + content: {} + description: The request has a body but it doesn't have a Content-Length header. + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization External Backends + x-codegen-request-body-name: body + /organizations/{organization_canonical}/forms/validate: + post: + description: Validate a forms file definition + operationId: validateFormsFile + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/FormsValidation' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/FormsValidation' + description: The content of the forms file to be validated. + required: true + responses: + "200": + content: + application/json: + example: + data: + errors: + - 'The Forms File has an invalid format: use case "use-caseX" invalid definition for variable "key-one" (key) in section "ansible" of "database": The Forms Widget has an invalid format' + - 'The Forms File has an invalid format: use case "use-caseX" invalid definition for variable "key-two" (key) in section "ansible" of "database": The Forms Widget has an invalid format' + - 'The Forms File has an invalid format: use case "use-caseX" invalid definition for variable "key-four" (key) in section "ansible" of "database": The Forms Widget has an invalid format' + - 'The Forms File has an invalid format: use case "use-caseX" invalid definition for variable "key-five" (key) in section "ansible" of "database": The Forms Widget has an invalid format' + - 'The Forms File has an invalid format: use case "default" invalid definition for variable "key-two" (key) in section "ansible" of "database": The Forms Widget has an invalid format' + - 'The Forms File has an invalid format: use case "default" - key "key-one" has been found twice' + - 'The Forms File has an invalid format: use case "default" - key "key-two" has been found twice' + - 'The Forms File has an invalid format: Forms Technology "INVALID-TECH" is unknown' + - 'The Forms File has an invalid format: use case "default" invalid definition for variable "key-two" (key) in section "ansible" of "groupX": The Forms File Branch Source has an invalid format' + forms: + use_cases: + - name: prod + sections: + - groups: + - name: database + technologies: + - ansible + vars: + - default: + foo: bar + description: "" + key: key-one + name: map variable + type: map + unit: ($, GHz, GB) + values: + - foo: bar + - bar: foo + widget: radios + - default: true + description: "" + key: key-oneb + name: checkbox variable + type: boolean + widget: checkbox + - default: + - bar + - foo + description: something k2 + key: key-two + name: array variable + required: false + type: array + unit: ($, GHz, GB) + values: + - - foo + - bar + - - bar + - foo + widget: dropdown + - description: something k3 + key: key-three + name: required variable without default + required: true + type: integer + unit: something + widget: number + - description: something k3b + key: key-threeb + name: some float + required: false + type: float + widget: number + - default: 20 + description: something k5 + key: key-five + name: dropdown one value + required: false + type: integer + unit: ($, GHz, GB) + values: + - 20 + widget: dropdown + - description: something k6 + key: key-six + name: radios one value + required: false + type: integer + unit: ($, GHz, GB) + values: + - 20 + widget: radios + - description: something k7 + key: key-seven + name: slider list one value + required: false + type: integer + unit: ($, GHz, GB) + values: + - 20 + widget: slider_list + name: ansible + - groups: + - name: database + technologies: + - terraform + vars: + - default: 2 + description: something k1 + key: key-eight + name: integer variable + required: false + type: integer + unit: ($, GHz, GB) + values: + - 1 + - 10 + widget: slider_range + - default: 20 + description: something k2 + key: key-nine + name: required with default + required: true + type: integer + unit: ($, GHz, GB) + values: + - 10 + - 20 + - 30 + widget: dropdown + - description: something k3 + key: key-ten + name: not required no default + required: false + type: integer + unit: ($, GHz, GB) + values: + - 1 + - 5 + widget: slider_list + name: terraform + - groups: + - name: database + technologies: + - pipeline + vars: + - default: t2.micro + description: something + key: key-eleven + name: string with values and default + type: string + unit: ($, GHz, GB) + values: + - t2.micro + - t2.medium + - t2.large + widget: auto_complete + - description: something k5 + key: key-twelve + name: not required no default, but values + required: false + type: integer + unit: ($, GHz, GB) + values: + - 100 + - 200 + widget: dropdown + - description: something k6 + key: key-thirteen + name: not required no default, but values + required: false + type: integer + unit: ($, GHz, GB) + values: + - 10 + - 40 + - 80 + widget: dropdown + name: pipeline + - name: dev + sections: + - groups: + - name: database + technologies: + - ansible + vars: + - default: + foo: bar + description: something k1 + key: key-one + name: map variable + type: map + unit: ($, GHz, GB) + values: + - foo: bar + - bar: foo + widget: dropdown + name: ansible + - name: extra-one + sections: + - groups: + - name: database + technologies: + - ansible + vars: + - description: "" + key: key-two + name: switch variable + type: boolean + widget: switch + - default: + foo: bar + description: something k1 + key: key-one + name: map variable + type: map + unit: ($, GHz, GB) + values: + - foo: bar + - bar: foo + widget: dropdown + name: ansible + version: 2 + schema: + $ref: '#/components/schemas/validateFormsFile_200_response' + description: The result of validating the provided configuration + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Forms + x-codegen-request-body-name: body + /organizations/{organization_canonical}/forms/values_ref: + post: + description: Returns the values from the ref + operationId: valuesRefForms + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/FormsValuesRef' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/FormsValuesRef' + description: The URL to fetch the values from + required: true + responses: + "200": + content: + application/json: + example: + data: + bar: foo + foo: bar + schema: + $ref: '#/components/schemas/createFormsConfig_200_response' + description: The result pulling the values from the url + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Forms + x-codegen-request-body-name: body + /organizations/{organization_canonical}/infra_imports: + post: + description: Create a new Infra Import + operationId: createInfraImport + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/NewInfraImport' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/NewInfraImport' + description: The information of the Infra Import to create + required: true + responses: + "202": + content: {} + description: The Infra Import has been created and processing in the background + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Infra Imports + x-codegen-request-body-name: body + /organizations/{organization_canonical}/infra_policies: + get: + description: Return a list of infrastructure policies which matches the scope specified by the filter. + operationId: getInfraPolicies + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: The page number to request. The first page is 1. + in: query + name: page_index + schema: + default: 1 + format: uint32 + type: integer + - description: The number of items at most which the response can have. + in: query + name: page_size + schema: + default: 1000 + format: uint32 + type: integer + - description: Search by InfraPolicy's name + in: query + name: infra_policy_name + schema: + type: string + - description: Search by InfraPolicy's creation date + in: query + name: infra_policy_created_at + schema: + format: uint64 + type: integer + - description: Search by InfraPolicy's severity + in: query + name: infra_policy_severity + schema: + enum: + - critical + - warning + - advisory + type: string + - description: Search by InfraPolicy's enabled + in: query + name: infra_policy_enabled + schema: + type: boolean + - description: Search by infra policy canonical + in: query + name: infra_policy_canonical + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: | + Allows to order the list of items. Example usage: field_name:asc + in: query + name: order_by + schema: + type: string + responses: + "200": + content: + application/json: + example: + data: + - canonical: my-infra-policy + created_at: 1503225026 + description: Apply changes across my infrastructure in a safe way! + enabled: true + id: 1 + name: My Infra Policy + owner: + created_at: 1503225026 + email: mariano.jimenez@fakeemail.com + family_name: Jimenez + given_name: Mariano + id: 1 + picture_url: https://avatars2.githubusercontent.com/u/14579210 + role: + description: this is the standard role + id: 42 + name: standard role + policies: + - code: team:create + description: this is the policy + id: 1 + username: user-1 + raw: allow = true {count(violation) == 0} + updated_at: 1503335026 + schema: + $ref: '#/components/schemas/getInfraPolicies_200_response' + description: List of infrastructure policies. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Infrastructure Policies + post: + description: Create a new policy. + operationId: createInfraPolicy + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/NewInfraPolicy' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/NewInfraPolicy' + required: true + responses: + "200": + content: + application/json: + example: + data: + canonical: my-infra-policy + created_at: 1503225026 + description: Apply changes across my infrastructure in a safe way! + enabled: true + id: 1 + name: My Infra Policy + owner: + created_at: 1503225026 + email: mariano.jimenez@fakeemail.com + family_name: Jimenez + given_name: Mariano + id: 1 + picture_url: https://avatars2.githubusercontent.com/u/14579210 + role: + description: this is the standard role + id: 42 + name: standard role + policies: + - code: team:create + description: this is the policy + id: 1 + username: user-1 + raw: allow = true {count(violation) == 0} + updated_at: 1503335026 + schema: + $ref: '#/components/schemas/createInfraPolicy_200_response' + description: The new InfraPolicy created. + "411": + content: {} + description: The request has a body but it doesn't have a Content-Length header. + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Infrastructure Policies + x-codegen-request-body-name: body + /organizations/{organization_canonical}/infra_policies/{infra_policy_canonical}: + delete: + description: Delete the InfraPolicy. + operationId: deleteInfraPolicy + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: The canonical of an InfraPolicy. + in: path + name: infra_policy_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + "204": + content: {} + description: InfraPolicy has been deleted. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Infrastructure Policies + get: + description: Get the information of the InfraPolicy. + operationId: getInfraPolicy + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: The canonical of an InfraPolicy. + in: path + name: infra_policy_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + "200": + content: + application/json: + example: + data: + canonical: my-infra-policy + created_at: 1503225026 + description: Apply changes across my infrastructure in a safe way! + enabled: true + id: 1 + name: My Infra Policy + owner: + created_at: 1503225026 + email: mariano.jimenez@fakeemail.com + family_name: Jimenez + given_name: Mariano + id: 1 + picture_url: https://avatars2.githubusercontent.com/u/14579210 + role: + description: this is the standard role + id: 42 + name: standard role + policies: + - code: team:create + description: this is the policy + id: 1 + username: user-1 + raw: allow = true {count(violation) == 0} + updated_at: 1503335026 + schema: + $ref: '#/components/schemas/createInfraPolicy_200_response' + description: The information of the InfraPolicy which has the specified canonical. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Infrastructure Policies + put: + description: Update an existing InfraPolicy + operationId: updateInfraPolicy + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: The canonical of an InfraPolicy. + in: path + name: infra_policy_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/UpdateInfraPolicy' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UpdateInfraPolicy' + description: The information of the organization to update. + required: true + responses: + "200": + content: + application/json: + example: + data: + body: allow = true {count(violation) == 0} + canonical: my-infra-policy + created_at: 1503225026 + description: Apply changes across my infrastructure in a safe way! + enabled: true + id: 1 + name: My Infra Policy + owner: + created_at: 1503225026 + email: mariano.jimenez@fakeemail.com + family_name: Jimenez + given_name: Mariano + id: 1 + picture_url: https://avatars2.githubusercontent.com/u/14579210 + role: + description: this is the standard role + id: 42 + name: standard role + policies: + - code: team:create + description: this is the policy + id: 1 + username: user-1 + severity: critical + updated_at: 1503335026 + schema: + $ref: '#/components/schemas/createInfraPolicy_200_response' + description: InfraPolicy updated. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Infrastructure Policies + x-codegen-request-body-name: body + /organizations/{organization_canonical}/infrastructures/aws: + get: + deprecated: true + description: Get the number of resources classified by types, of the running AWS infrastructure of the organization and associated AWS account (credential). The parameters allow to select the scope of the request to one project of the organization and/or a set of type of resource. + operationId: getRunningInfraAWS + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A Credential canonical + in: query + name: credential_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A list of projects' canonical to filter from + in: query + name: project_canonical + schema: + pattern: ^[\da-z]+(?:(?:[\da-z\-._]+)?[\da-z])?$ + type: string + - allowEmptyValue: false + description: Supported AWS type of resource to query. The parameter can be specified several times in order to request for different kind of resources. + explode: true + in: query + name: resource + schema: + items: + enum: + - instances + - vpcs + - images + - security_groups + - subnets + - volumes + - snapshots + - cache_clusters + - load_balancers_v1 + - load_balancers_v2 + - db_instances + - buckets + type: string + type: array + uniqueItems: true + style: form + - allowEmptyValue: false + description: An amazon tag, represented as `key|value` and where `key` or `value` could be omitted but not both, in order to select resources which has a `key` or a `value` whatever is its counterpart. `key` nor `value` can contains the `|` character. The parameter can be specified several times in order to request resources which match with at least one of the `tag|value` pairs + explode: true + in: query + name: tag + schema: + items: + maxLength: 383 + minLength: 2 + pattern: ^(?:(?:[\w\-+=.:/@ ]+\|)|(?:\|[\w\-+=.:/@ ]+)|(?:[\w\-+=.:/@ ]+\|[\w\-+=.:/@ ]+))$ + type: string + type: array + uniqueItems: true + style: form + responses: + "200": + content: + application/json: + example: + data: + buckets: + total_amount: 10 + db_instances: + total_amount: 34 + images: + total_amount: 6 + instances: + total_amount: 94875 + load_balancers_v2: + total_amount: 4 + security_groups: + total_amount: 9 + snapshots: + total_amount: 786 + subnets: + total_amount: 31 + volumes: + total_amount: 45 + vpcs: + total_amount: 98 + schema: + $ref: '#/components/schemas/getRunningInfraAWS_200_response' + description: The number of resources classified per type which matches the scope specified by the filter. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Infrastructure + /organizations/{organization_canonical}/infrastructures/aws/buckets: + get: + deprecated: true + description: Get the list of S3 buckets of the running AWS infrastructure and associated with the AWS account (credential). The parameters allow to select the scope of the request to one project of the organization. + operationId: getRunningInfraAWSBuckets + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A Credential canonical + in: query + name: credential_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A list of projects' canonical to filter from + in: query + name: project_canonical + schema: + pattern: ^[\da-z]+(?:(?:[\da-z\-._]+)?[\da-z])?$ + type: string + - allowEmptyValue: false + description: An amazon tag, represented as `key|value` and where `key` or `value` could be omitted but not both, in order to select resources which has a `key` or a `value` whatever is its counterpart. `key` nor `value` can contains the `|` character. The parameter can be specified several times in order to request resources which match with at least one of the `tag|value` pairs + explode: true + in: query + name: tag + schema: + items: + maxLength: 383 + minLength: 2 + pattern: ^(?:(?:[\w\-+=.:/@ ]+\|)|(?:\|[\w\-+=.:/@ ]+)|(?:[\w\-+=.:/@ ]+\|[\w\-+=.:/@ ]+))$ + type: string + type: array + uniqueItems: true + style: form + responses: + "200": + content: + application/json: + example: + data: + - CreationDate: 2017-03-29T05:15:27Z + Name: config-bucket-123456789101 + Tags: [] + - CreationDate: 2017-03-29T01:12:21Z + Name: data-some-log-dbm + Tags: + - Key: client + Value: Cycloid + - CreationDate: 2017-03-29T10:28:14Z + Name: dev-sdk.web.fr + Tags: [] + - CreationDate: 2017-06-19T14:57:15Z + Name: marianorajoy.es + Tags: + - Key: owner + Value: Mariano Rajoy + - CreationDate: 2017-03-29T18:01:25Z + Name: dtrump.com + Tags: [] + schema: + $ref: '#/components/schemas/getRunningInfraAWSBuckets_200_response' + description: The list of AWS S3 buckets which matches the scope specified by the filter. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Infrastructure + /organizations/{organization_canonical}/infrastructures/aws/db_instances: + get: + deprecated: true + description: Get the list of RDS DB instances of the running AWS infrastructure and associated with the AWS account (credential). The parameters allow to select the scope of the request to one project of the organization. + operationId: getRunningInfraAWSDBInstances + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A Credential canonical + in: query + name: credential_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A list of projects' canonical to filter from + in: query + name: project_canonical + schema: + pattern: ^[\da-z]+(?:(?:[\da-z\-._]+)?[\da-z])?$ + type: string + - description: The number of items at most which the response can have. + in: query + name: page_size + schema: + default: 1000 + format: uint32 + type: integer + - description: The token to retrieve the next page of results + in: query + name: next + schema: + minLength: 1 + type: string + - allowEmptyValue: false + description: An amazon tag, represented as `key|value` and where `key` or `value` could be omitted but not both, in order to select resources which has a `key` or a `value` whatever is its counterpart. `key` nor `value` can contains the `|` character. The parameter can be specified several times in order to request resources which match with at least one of the `tag|value` pairs + explode: true + in: query + name: tag + schema: + items: + maxLength: 383 + minLength: 2 + pattern: ^(?:(?:[\w\-+=.:/@ ]+\|)|(?:\|[\w\-+=.:/@ ]+)|(?:[\w\-+=.:/@ ]+\|[\w\-+=.:/@ ]+))$ + type: string + type: array + uniqueItems: true + style: form + responses: + "200": + content: + application/json: + example: + data: + - AllocatedStorage: 50 + AutoMinorVersionUpgrade: true + AvailabilityZone: eu-west-1b + BackupRetentionPeriod: 7 + CACertificateIdentifier: rds-ca-2015 + CopyTagsToSnapshot: false + DBInstanceArn: arn:aws:rds:eu-west-1:123456789101:db:amazon-rds-api-gateway-dev + DBInstanceClass: db.t2.small + DBInstanceIdentifier: amazon-rds-api-gateway-dev + DBInstanceStatus: available + DBName: api_gateway_dev + DBParameterGroups: + - DBParameterGroupName: rds-optimized-postgresql-amazon-dev + ParameterApplyStatus: in-sync + DBSubnetGroup: + DBSubnetGroupDescription: subnet-rds-amazon-dev + DBSubnetGroupName: subnet-rds-amazon-dev + SubnetGroupStatus: Complete + Subnets: + - SubnetAvailabilityZone: + Name: eu-west-1b + SubnetIdentifier: subnet-1ee9cf68 + SubnetStatus: Active + - SubnetAvailabilityZone: + Name: eu-west-1c + SubnetIdentifier: subnet-5ccca204 + SubnetStatus: Active + - SubnetAvailabilityZone: + Name: eu-west-1a + SubnetIdentifier: subnet-53614d37 + SubnetStatus: Active + VpcId: vpc-257d2d41 + DbInstancePort: 0 + DbiResourceId: db-LLW4DT3OHVULRQ4GLZWSJ3MOVQ + Endpoint: + Address: amazon-rds-api-gateway-dev.cwhghoaxsi70.eu-west-1.rds.amazonaws.com + HostedZoneId: Z29XKXDKYMONMX + Port: 5432 + Engine: postgres + EngineVersion: 9.4.7 + IAMDatabaseAuthenticationEnabled: false + InstanceCreateTime: 2017-12-05T18:21:34.311Z + LatestRestorableTime: 2018-02-06T11:40:39Z + LicenseModel: postgresql-license + MasterUsername: amazon + MonitoringInterval: 0 + MultiAZ: false + OptionGroupMemberships: + - OptionGroupName: default:postgres-9-4 + Status: in-sync + PendingModifiedValues: {} + PerformanceInsightsEnabled: false + PreferredBackupWindow: 02:00-04:00 + PreferredMaintenanceWindow: tue:06:00-tue:07:00 + PubliclyAccessible: false + StorageEncrypted: false + StorageType: gp2 + Tags: [] + VpcSecurityGroups: + - Status: active + VpcSecurityGroupId: sg-64d29802 + pagination: + next: "" + schema: + $ref: '#/components/schemas/getRunningInfraAWSDBInstances_200_response' + description: The list of AWS RDS DB Instances which matches the scope specified by the filter. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Infrastructure + /organizations/{organization_canonical}/infrastructures/aws/elasticache_clusters: + get: + deprecated: true + description: Get the list of Elasticache clusters of the running AWS infrastructure and associated with the AWS account (credential). The parameters allow to select the scope of the request to one project of the organization. + operationId: getRunningInfraAWSElasticacheClusters + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A Credential canonical + in: query + name: credential_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A list of projects' canonical to filter from + in: query + name: project_canonical + schema: + pattern: ^[\da-z]+(?:(?:[\da-z\-._]+)?[\da-z])?$ + type: string + - description: The number of items at most which the response can have. + in: query + name: page_size + schema: + default: 1000 + format: uint32 + type: integer + - description: The token to retrieve the next page of results + in: query + name: next + schema: + minLength: 1 + type: string + - allowEmptyValue: false + description: An amazon tag, represented as `key|value` and where `key` or `value` could be omitted but not both, in order to select resources which has a `key` or a `value` whatever is its counterpart. `key` nor `value` can contains the `|` character. The parameter can be specified several times in order to request resources which match with at least one of the `tag|value` pairs + explode: true + in: query + name: tag + schema: + items: + maxLength: 383 + minLength: 2 + pattern: ^(?:(?:[\w\-+=.:/@ ]+\|)|(?:\|[\w\-+=.:/@ ]+)|(?:[\w\-+=.:/@ ]+\|[\w\-+=.:/@ ]+))$ + type: string + type: array + uniqueItems: true + style: form + responses: + "200": + content: + application/json: + example: + data: + - AtRestEncryptionEnabled: false + AuthTokenEnabled: false + AutoMinorVersionUpgrade: true + CacheClusterCreateTime: 2015-11-23T11:24:24.677Z + CacheClusterId: cache0 + CacheClusterStatus: available + CacheNodeType: cache.t2.micro + CacheParameterGroup: + CacheParameterGroupName: default.redis2.8 + ParameterApplyStatus: in-sync + CacheSubnetGroupName: amazon-cache0-eu-we1 + ClientDownloadLandingPage: 'https://console.aws.amazon.com/elasticache/home#client-download:' + Engine: redis + EngineVersion: 2.8.23 + NumCacheNodes: 1 + PendingModifiedValues: {} + PreferredAvailabilityZone: eu-west-1a + PreferredMaintenanceWindow: tue:06:00-tue:07:00 + SecurityGroups: + - SecurityGroupId: sg-fff37b9b + Status: active + Tags: + - Key: project + Value: website + - Key: client + Value: cycloid + - Key: env + Value: prod + - Key: role + Value: cache + TransitEncryptionEnabled: false + pagination: + next: "" + schema: + $ref: '#/components/schemas/getRunningInfraAWSElasticacheClusters_200_response' + description: The list of AWS elasticache clusters which matches the scope specified by the filter. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Infrastructure + /organizations/{organization_canonical}/infrastructures/aws/images: + get: + deprecated: true + description: Get the list of images of the running AWS infrastructure and associated with the AWS account (credential). The parameters allow to select the scope of the request to one project of the organization. + operationId: getRunningInfraAWSImages + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A Credential canonical + in: query + name: credential_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A list of projects' canonical to filter from + in: query + name: project_canonical + schema: + pattern: ^[\da-z]+(?:(?:[\da-z\-._]+)?[\da-z])?$ + type: string + - allowEmptyValue: false + description: An amazon tag, represented as `key|value` and where `key` or `value` could be omitted but not both, in order to select resources which has a `key` or a `value` whatever is its counterpart. `key` nor `value` can contains the `|` character. The parameter can be specified several times in order to request resources which match with at least one of the `tag|value` pairs + explode: true + in: query + name: tag + schema: + items: + maxLength: 383 + minLength: 2 + pattern: ^(?:(?:[\w\-+=.:/@ ]+\|)|(?:\|[\w\-+=.:/@ ]+)|(?:[\w\-+=.:/@ ]+\|[\w\-+=.:/@ ]+))$ + type: string + type: array + uniqueItems: true + style: form + responses: + "200": + content: + application/json: + example: + data: + - Architecture: x86_64 + BlockDeviceMappings: + - DeviceName: /dev/xvda + Ebs: + DeleteOnTermination: true + Encrypted: false + SnapshotId: snap-e978d105 + VolumeSize: 8 + VolumeType: standard + CreationDate: 2016-05-24T21:14:11Z + Description: hashicorp vault + Hypervisor: xen + ImageId: ami-01d94872 + ImageLocation: 123456789101/vault + ImageType: machine + Name: vault + OwnerId: "123456789101" + Public: false + RootDeviceName: /dev/xvda + RootDeviceType: ebs + State: available + Tags: [] + VirtualizationType: hvm + - Architecture: x86_64 + BlockDeviceMappings: + - DeviceName: /dev/xvda + Ebs: + DeleteOnTermination: true + Encrypted: false + SnapshotId: snap-0d4d246f98692cab9 + VolumeSize: 8 + VolumeType: gp2 + CreationDate: 2017-09-15T17:45:50Z + Hypervisor: xen + ImageId: ami-34995b4d + ImageLocation: 123456789101/pipeline_demo 1505497225 + ImageType: machine + Name: pipeline_demo 1505497225 + OwnerId: "123456789101" + Public: false + RootDeviceName: /dev/xvda + RootDeviceType: ebs + SriovNetSupport: simple + State: available + Tags: + - Key: client + Value: cycloid + - Key: env + Value: demo + - Key: Name + Value: demo-pipeline-1505497225 + - Key: role + Value: front + - Key: project + Value: demo-website + VirtualizationType: hvm + schema: + $ref: '#/components/schemas/getRunningInfraAWSImages_200_response' + description: The list of AWS images which matches the scope specified by the filter. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Infrastructure + /organizations/{organization_canonical}/infrastructures/aws/instances: + get: + deprecated: true + description: Get the list of instances of the running AWS infrastructure and associated with the AWS account (credential). The parameters allow to select the scope of the request to one project of the organization. + operationId: getRunningInfraAWSInstances + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A Credential canonical + in: query + name: credential_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A list of projects' canonical to filter from + in: query + name: project_canonical + schema: + pattern: ^[\da-z]+(?:(?:[\da-z\-._]+)?[\da-z])?$ + type: string + - description: The number of items at most which the response can have. + in: query + name: page_size + schema: + default: 1000 + format: uint32 + type: integer + - description: The token to retrieve the next page of results + in: query + name: next + schema: + minLength: 1 + type: string + - allowEmptyValue: false + description: An amazon tag, represented as `key|value` and where `key` or `value` could be omitted but not both, in order to select resources which has a `key` or a `value` whatever is its counterpart. `key` nor `value` can contains the `|` character. The parameter can be specified several times in order to request resources which match with at least one of the `tag|value` pairs + explode: true + in: query + name: tag + schema: + items: + maxLength: 383 + minLength: 2 + pattern: ^(?:(?:[\w\-+=.:/@ ]+\|)|(?:\|[\w\-+=.:/@ ]+)|(?:[\w\-+=.:/@ ]+\|[\w\-+=.:/@ ]+))$ + type: string + type: array + uniqueItems: true + style: form + responses: + "200": + content: + application/json: + example: + data: + - AmiLaunchIndex: 0 + Architecture: x86_64 + BlockDeviceMappings: + - DeviceName: /dev/xvda + Ebs: + AttachTime: 2016-09-02T08:07:12Z + DeleteOnTermination: true + Status: attached + VolumeId: vol-c888994f + ClientToken: "" + EbsOptimized: false + Hypervisor: xen + IamInstanceProfile: + Arn: arn:aws:iam::123456789101:instance-profile/profile-front-website-prod + Id: AIPAJFKQFTYM7KEEE2SWU + ImageId: ami-e079f893 + InstanceId: i-2000dcad + InstanceType: t2.micro + KeyName: cycloid + LaunchTime: 2016-09-19T07:11:18Z + Monitoring: + State: disabled + NetworkInterfaces: + - Association: + IpOwnerId: amazon + PublicDnsName: ec2-54-192-0-1.eu-west-1.compute.amazonaws.com + PublicIp: 54.192.0.1 + Attachment: + AttachTime: 2016-09-02T08:07:11Z + AttachmentId: eni-attach-10d509cf + DeleteOnTermination: true + DeviceIndex: 0 + Status: attached + Description: "" + Groups: + - GroupId: sg-64565003 + GroupName: website-front-prod + - GroupId: sg-3543334e + GroupName: allow_metrics + - GroupId: sg-c1db70a6 + GroupName: allow_bastion + MacAddress: 06:9a:1a:77:6c:db + NetworkInterfaceId: eni-b1f859fd + OwnerId: "123456789101" + PrivateDnsName: ip-10-42-0-2.eu-west-1.compute.internal + PrivateIpAddress: 10.42.0.2 + PrivateIpAddresses: + - Association: + IpOwnerId: amazon + PublicDnsName: ec2-54-192-0-1.eu-west-1.compute.amazonaws.com + PublicIp: 54.192.0.1 + Primary: true + PrivateDnsName: ip-10-42-0-2.eu-west-1.compute.internal + PrivateIpAddress: 10.42.0.2 + SourceDestCheck: true + Status: in-use + SubnetId: subnet-6b5a8f1d + VpcId: vpc-21fb3e45 + Placement: + AvailabilityZone: eu-west-1b + GroupName: "" + Tenancy: default + PrivateDnsName: ip-10-42-0-2.eu-west-1.compute.internal + PrivateIpAddress: 10.42.0.2 + PublicDnsName: ec2-54-192-0-1.eu-west-1.compute.amazonaws.com + PublicIpAddress: 54.192.0.1 + RootDeviceName: /dev/xvda + RootDeviceType: ebs + SecurityGroups: + - GroupId: sg-64565003 + GroupName: website-front-prod + - GroupId: sg-3543334e + GroupName: allow_metrics + - GroupId: sg-c1db70a6 + GroupName: allow_bastion + SourceDestCheck: true + State: + Code: 16 + Name: running + StateReason: + Code: Client.UserInitiatedShutdown + Message: 'Client.UserInitiatedShutdown: User initiated shutdown' + StateTransitionReason: "" + SubnetId: subnet-6b5a8f1d + Tags: + - Key: project + Value: website + - Key: client + Value: cycloid + - Key: Name + Value: CYCLOID-WEBSITE-FRONT1-EU-WE1-PROD + - Key: env + Value: prod + - Key: role + Value: front + VirtualizationType: hvm + VpcId: vpc-21fb3e45 + pagination: + next: "" + schema: + $ref: '#/components/schemas/getRunningInfraAWSInstances_200_response' + description: The list of AWS instances which matches the scope specified by the filter. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Infrastructure + /organizations/{organization_canonical}/infrastructures/aws/load_balancers_v1: + get: + deprecated: true + description: Get the list of load balancers (ELB) of the running AWS infrastructure and associated with the AWS account (credential). The parameters allow to select the scope of the request to one project of the organization. + operationId: getRunningInfraAWSLoadBalancersV1 + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A Credential canonical + in: query + name: credential_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A list of projects' canonical to filter from + in: query + name: project_canonical + schema: + pattern: ^[\da-z]+(?:(?:[\da-z\-._]+)?[\da-z])?$ + type: string + - description: The number of items at most which the response can have. + in: query + name: page_size + schema: + default: 1000 + format: uint32 + type: integer + - description: The token to retrieve the next page of results + in: query + name: next + schema: + minLength: 1 + type: string + - allowEmptyValue: false + description: An amazon tag, represented as `key|value` and where `key` or `value` could be omitted but not both, in order to select resources which has a `key` or a `value` whatever is its counterpart. `key` nor `value` can contains the `|` character. The parameter can be specified several times in order to request resources which match with at least one of the `tag|value` pairs + explode: true + in: query + name: tag + schema: + items: + maxLength: 383 + minLength: 2 + pattern: ^(?:(?:[\w\-+=.:/@ ]+\|)|(?:\|[\w\-+=.:/@ ]+)|(?:[\w\-+=.:/@ ]+\|[\w\-+=.:/@ ]+))$ + type: string + type: array + uniqueItems: true + style: form + responses: + "200": + content: + application/json: + example: + data: + - AvailabilityZones: + - eu-west-1b + - eu-west-1c + - eu-west-1a + CanonicalHostedZoneName: WEBSITE-FRONT-PROD-1234567890.eu-west-1.elb.amazonaws.com + CanonicalHostedZoneNameID: Z32O12XQLNTSW2 + CreatedTime: 2016-09-02T08:07:35.52Z + DNSName: WEBSITE-FRONT-PROD-1234567890.eu-west-1.elb.amazonaws.com + HealthCheck: + HealthyThreshold: 2 + Interval: 30 + Target: HTTP:80/ + Timeout: 20 + UnhealthyThreshold: 2 + Instances: + - InstanceId: i-2000dcdd + - InstanceId: i-911b05af + ListenerDescriptions: + - Listener: + InstancePort: 80 + InstanceProtocol: HTTP + LoadBalancerPort: 80 + Protocol: HTTP + - Listener: + InstancePort: 80 + InstanceProtocol: HTTP + LoadBalancerPort: 443 + Protocol: HTTPS + SSLCertificateId: arn:aws:iam::123456789101:server-certificate/cloudfront/example + PolicyNames: + - website-front-prod + - ELBSecurityPolicy-2016-08 + LoadBalancerName: WEBSITE-FRONT-PROD + Policies: + LBCookieStickinessPolicies: + - CookieExpirationPeriod: 3600 + PolicyName: website-front-prod + OtherPolicies: + - ELBSecurityPolicy-2016-08 + Scheme: internet-facing + SecurityGroups: + - sg-9c494ffb + SourceSecurityGroup: + GroupName: website-elb-front-prod + OwnerAlias: "123456789101" + Subnets: + - subnet-550fac31 + - subnet-6b5a8f1d + - subnet-b95dbde1 + Tags: + - Key: client + Value: cycloid + VPCId: vpc-21fb3e45 + - AvailabilityZones: + - eu-west-1b + - eu-west-1c + - eu-west-1a + CanonicalHostedZoneName: WEBSITE-FRONT-PREPROD-1234567890.eu-west-1.elb.amazonaws.com + CanonicalHostedZoneNameID: Z32O12XQLNTSW2 + CreatedTime: 2016-09-02T08:07:35.91Z + DNSName: WEBSITE-FRONT-PREPROD-1234567890.eu-west-1.elb.amazonaws.com + HealthCheck: + HealthyThreshold: 2 + Interval: 30 + Target: HTTP:80/ + Timeout: 20 + UnhealthyThreshold: 2 + Instances: + - InstanceId: i-ab00dc26 + - InstanceId: i-9ec9a815 + ListenerDescriptions: + - Listener: + InstancePort: 80 + InstanceProtocol: HTTP + LoadBalancerPort: 80 + Protocol: HTTP + - Listener: + InstancePort: 80 + InstanceProtocol: HTTP + LoadBalancerPort: 443 + Protocol: HTTPS + SSLCertificateId: arn:aws:iam::123456789101:server-certificate/cloudfront/example + PolicyNames: + - website-front-preprod + - ELBSecurityPolicy-2016-08 + LoadBalancerName: WEBSITE-FRONT-PREPROD + Policies: + LBCookieStickinessPolicies: + - CookieExpirationPeriod: 3600 + PolicyName: AWSConsole-LBCookieStickinessPolicy-WEBSITE-FRONT-PREPROD-1473338142315 + - CookieExpirationPeriod: 3600 + PolicyName: AWSConsole-LBCookieStickinessPolicy-WEBSITE-FRONT-PREPROD-1473337367977 + - CookieExpirationPeriod: 3600 + PolicyName: website-front-preprod + - CookieExpirationPeriod: 3600 + PolicyName: AWSConsole-LBCookieStickinessPolicy-WEBSITE-FRONT-PREPROD-1473337375883 + OtherPolicies: + - ELBSecurityPolicy-2016-08 + Scheme: internet-facing + SecurityGroups: + - sg-9b494ffc + SourceSecurityGroup: + GroupName: website-elb-front-preprod + OwnerAlias: "123456789101" + Subnets: + - subnet-550fac31 + - subnet-6b5a8f1d + - subnet-b95dbde1 + Tags: [] + VPCId: vpc-21fb3e45 + pagination: + next: "" + schema: + $ref: '#/components/schemas/getRunningInfraAWSLoadBalancersV1_200_response' + description: The list of AWS load balancers (ELB) which matches the scope specified by the filter. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Infrastructure + /organizations/{organization_canonical}/infrastructures/aws/load_balancers_v2: + get: + deprecated: true + description: Get the list of load balancers (ELB v2 or a.k.a ALB) of the running AWS infrastructure and associated with the AWS account (credential). The parameters allow to select the scope of the request to one project of the organization. + operationId: getRunningInfraAWSLoadBalancersV2 + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A Credential canonical + in: query + name: credential_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A list of projects' canonical to filter from + in: query + name: project_canonical + schema: + pattern: ^[\da-z]+(?:(?:[\da-z\-._]+)?[\da-z])?$ + type: string + - description: The number of items at most which the response can have. + in: query + name: page_size + schema: + default: 1000 + format: uint32 + type: integer + - description: The token to retrieve the next page of results + in: query + name: next + schema: + minLength: 1 + type: string + - allowEmptyValue: false + description: An amazon tag, represented as `key|value` and where `key` or `value` could be omitted but not both, in order to select resources which has a `key` or a `value` whatever is its counterpart. `key` nor `value` can contains the `|` character. The parameter can be specified several times in order to request resources which match with at least one of the `tag|value` pairs + explode: true + in: query + name: tag + schema: + items: + maxLength: 383 + minLength: 2 + pattern: ^(?:(?:[\w\-+=.:/@ ]+\|)|(?:\|[\w\-+=.:/@ ]+)|(?:[\w\-+=.:/@ ]+\|[\w\-+=.:/@ ]+))$ + type: string + type: array + uniqueItems: true + style: form + responses: + "200": + content: + application/json: + example: + data: + - AvailabilityZones: + - SubnetId: subnet-225f3155 + ZoneName: eu-west-1b + - SubnetId: subnet-74f1712d + ZoneName: eu-west-1c + - SubnetId: subnet-cd793fa8 + ZoneName: eu-west-1a + CanonicalHostedZoneId: Z32O12XQLNTSW2 + CreatedTime: 2016-12-14T15:32:58.83Z + DNSName: alb-amazon-front-prex-1234567890.eu-west-1.elb.amazonaws.com + IpAddressType: ipv4 + LoadBalancerArn: arn:aws:elasticloadbalancing:eu-west-1:123456789101:loadbalancer/app/alb-amazon-front-prex/f81f78ed3ec382cf + LoadBalancerName: alb-amazon-front-prex + Scheme: internet-facing + SecurityGroups: + - sg-4c10e028 + State: + Code: active + Tags: [] + Type: application + VpcId: vpc-315ed454 + - AvailabilityZones: + - SubnetId: subnet-3ba8a072 + ZoneName: eu-west-1b + - SubnetId: subnet-45d1d622 + ZoneName: eu-west-1a + - SubnetId: subnet-6b034030 + ZoneName: eu-west-1c + CanonicalHostedZoneId: Z32O12XQLNTSW2 + CreatedTime: 2017-12-19T09:12:39.84Z + DNSName: amazon-apicache-staging-1234567890.eu-west-1.elb.amazonaws.com + IpAddressType: ipv4 + LoadBalancerArn: arn:aws:elasticloadbalancing:eu-west-1:123456789101:loadbalancer/app/amazon-apicache-staging/f6404ce290fc3434 + LoadBalancerName: amazon-apicache-staging + Scheme: internet-facing + SecurityGroups: + - sg-02510079 + State: + Code: active + Tags: + - Key: client + Value: cycloid + Type: application + VpcId: vpc-d7d3cdb0 + - AvailabilityZones: + - SubnetId: subnet-1fe9cf69 + ZoneName: eu-west-1b + - SubnetId: subnet-5e614d3a + ZoneName: eu-west-1a + - SubnetId: subnet-5ecca206 + ZoneName: eu-west-1c + CanonicalHostedZoneId: Z32O12XQLNTSW2 + CreatedTime: 2017-12-19T17:08:25.2Z + DNSName: amazon-apicache-dev-1234567890.eu-west-1.elb.amazonaws.com + IpAddressType: ipv4 + LoadBalancerArn: arn:aws:elasticloadbalancing:eu-west-1:123456789101:loadbalancer/app/amazon-apicache-dev/9f76887ef888cf4a + LoadBalancerName: amazon-apicache-dev + Scheme: internet-facing + SecurityGroups: + - sg-3980d042 + State: + Code: active + Tags: [] + Type: application + VpcId: vpc-257d2d41 + pagination: + next: "" + schema: + $ref: '#/components/schemas/getRunningInfraAWSLoadBalancersV2_200_response' + description: The list of AWS load balancers (ELB v2 or a.k.a ALB) which matches the scope specified by the filter. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Infrastructure + /organizations/{organization_canonical}/infrastructures/aws/security_groups: + get: + deprecated: true + description: Get the list of security groups of the running AWS infrastructure and associated with the AWS account (credential). The parameters allow to select the scope of the request to one project of the organization. + operationId: getRunningInfraAWSSecurityGroups + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A Credential canonical + in: query + name: credential_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A list of projects' canonical to filter from + in: query + name: project_canonical + schema: + pattern: ^[\da-z]+(?:(?:[\da-z\-._]+)?[\da-z])?$ + type: string + - description: The number of items at most which the response can have. + in: query + name: page_size + schema: + default: 1000 + format: uint32 + type: integer + - description: The token to retrieve the next page of results + in: query + name: next + schema: + minLength: 1 + type: string + - allowEmptyValue: false + description: An amazon tag, represented as `key|value` and where `key` or `value` could be omitted but not both, in order to select resources which has a `key` or a `value` whatever is its counterpart. `key` nor `value` can contains the `|` character. The parameter can be specified several times in order to request resources which match with at least one of the `tag|value` pairs + explode: true + in: query + name: tag + schema: + items: + maxLength: 383 + minLength: 2 + pattern: ^(?:(?:[\w\-+=.:/@ ]+\|)|(?:\|[\w\-+=.:/@ ]+)|(?:[\w\-+=.:/@ ]+\|[\w\-+=.:/@ ]+))$ + type: string + type: array + uniqueItems: true + style: form + responses: + "200": + content: + application/json: + example: + data: + - Description: Allow metrics server to collect metrics + GroupId: sg-35c7b54e + GroupName: test_allow_metrics + IpPermissions: + - FromPort: 9100 + IpProtocol: tcp + ToPort: 9100 + UserIdGroupPairs: + - GroupId: sg-cada71ad + PeeringStatus: active + UserId: "123456789101" + VpcId: vpc-21fb3e45 + VpcPeeringConnectionId: pcx-ab75ccc2 + IpPermissionsEgress: + - IpProtocol: "-1" + IpRanges: + - CidrIp: 0.0.0.0/0 + OwnerId: "123456789101" + Tags: + - Key: project + Value: infra + - Key: Name + Value: allow-metrics + - Key: client + Value: cycloid + VpcId: vpc-0296ad66 + pagination: + next: "" + schema: + $ref: '#/components/schemas/getRunningInfraAWSSecurityGroups_200_response' + description: The list of AWS security groups which matches the scope specified by the filter. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Infrastructure + /organizations/{organization_canonical}/infrastructures/aws/snapshots: + get: + deprecated: true + description: Get the list of snapshots of the running AWS infrastructure and associated with the AWS account (credential). The parameters allow to select the scope of the request to one project of the organization. + operationId: getRunningInfraAWSSnapshots + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A Credential canonical + in: query + name: credential_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A list of projects' canonical to filter from + in: query + name: project_canonical + schema: + pattern: ^[\da-z]+(?:(?:[\da-z\-._]+)?[\da-z])?$ + type: string + - description: The number of items at most which the response can have. + in: query + name: page_size + schema: + default: 1000 + format: uint32 + type: integer + - description: The token to retrieve the next page of results + in: query + name: next + schema: + minLength: 1 + type: string + - allowEmptyValue: false + description: An amazon tag, represented as `key|value` and where `key` or `value` could be omitted but not both, in order to select resources which has a `key` or a `value` whatever is its counterpart. `key` nor `value` can contains the `|` character. The parameter can be specified several times in order to request resources which match with at least one of the `tag|value` pairs + explode: true + in: query + name: tag + schema: + items: + maxLength: 383 + minLength: 2 + pattern: ^(?:(?:[\w\-+=.:/@ ]+\|)|(?:\|[\w\-+=.:/@ ]+)|(?:[\w\-+=.:/@ ]+\|[\w\-+=.:/@ ]+))$ + type: string + type: array + uniqueItems: true + style: form + responses: + "200": + content: + application/json: + example: + data: + - Description: Created by CreateImage(i-7c6ea6bc) for ami-67affc14 from vol-fadc527c + Encrypted: false + OwnerId: "123456789101" + Progress: 100% + SnapshotId: snap-f4c73492 + StartTime: 2016-11-17T16:17:18Z + State: completed + Tags: [] + VolumeId: vol-fadc527c + VolumeSize: 8 + - Description: Created by CreateImage(i-78a845ee) for ami-9d5a09ee from vol-73d82bc3 + Encrypted: false + OwnerId: "123456789101" + Progress: 100% + SnapshotId: snap-94f92ff2 + StartTime: 2016-11-16T16:46:39Z + State: completed + Tags: [] + VolumeId: vol-73d82bc3 + VolumeSize: 8 + pagination: + next: "" + schema: + $ref: '#/components/schemas/getRunningInfraAWSSnapshots_200_response' + description: The list of AWS snapshots which matches the scope specified by the filter. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Infrastructure + /organizations/{organization_canonical}/infrastructures/aws/subnets: + get: + deprecated: true + description: Get the list of subnets of the running AWS infrastructure and associated with the AWS account (credential). The parameters allow to select the scope of the request to one project of the organization. + operationId: getRunningInfraAWSSubnets + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A Credential canonical + in: query + name: credential_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A list of projects' canonical to filter from + in: query + name: project_canonical + schema: + pattern: ^[\da-z]+(?:(?:[\da-z\-._]+)?[\da-z])?$ + type: string + - allowEmptyValue: false + description: An amazon tag, represented as `key|value` and where `key` or `value` could be omitted but not both, in order to select resources which has a `key` or a `value` whatever is its counterpart. `key` nor `value` can contains the `|` character. The parameter can be specified several times in order to request resources which match with at least one of the `tag|value` pairs + explode: true + in: query + name: tag + schema: + items: + maxLength: 383 + minLength: 2 + pattern: ^(?:(?:[\w\-+=.:/@ ]+\|)|(?:\|[\w\-+=.:/@ ]+)|(?:[\w\-+=.:/@ ]+\|[\w\-+=.:/@ ]+))$ + type: string + type: array + uniqueItems: true + style: form + responses: + "200": + content: + application/json: + example: + data: + - AssignIpv6AddressOnCreation: false + AvailabilityZone: eu-west-1b + AvailableIpAddressCount: 251 + CidrBlock: 10.50.3.0/24 + DefaultForAz: false + MapPublicIpOnLaunch: false + State: available + SubnetId: subnet-373f3241 + Tags: + - Key: client + Value: cycloid + - Key: Name + Value: private-subnet-eu-west-1b + VpcId: vpc-0296ad66 + - AssignIpv6AddressOnCreation: false + AvailabilityZone: eu-west-1a + AvailableIpAddressCount: 251 + CidrBlock: 10.50.1.0/24 + DefaultForAz: false + MapPublicIpOnLaunch: false + State: available + SubnetId: subnet-6e131c0a + Tags: + - Key: client + Value: cycloid + - Key: Name + Value: private-subnet-eu-west-1a + VpcId: vpc-0296ad66 + - AssignIpv6AddressOnCreation: false + AvailabilityZone: eu-west-1a + AvailableIpAddressCount: 251 + CidrBlock: 10.51.1.0/24 + DefaultForAz: false + MapPublicIpOnLaunch: false + State: available + SubnetId: subnet-76131c12 + Tags: + - Key: client + Value: cycloid + - Key: Name + Value: private-subnet-eu-west-1a + VpcId: vpc-0c96ad68 + - AssignIpv6AddressOnCreation: false + AvailabilityZone: eu-west-1c + AvailableIpAddressCount: 251 + CidrBlock: 10.42.0.0/24 + DefaultForAz: false + MapPublicIpOnLaunch: true + State: available + SubnetId: subnet-b95dbde1 + Tags: + - Key: client + Value: cycloid + - Key: Name + Value: public-subnet-eu-west-1c + VpcId: vpc-21fb3e45 + schema: + $ref: '#/components/schemas/getRunningInfraAWSSubnets_200_response' + description: The list of AWS subnets instances which matches the scope specified by the filter. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Infrastructure + /organizations/{organization_canonical}/infrastructures/aws/volumes: + get: + deprecated: true + description: Get the list of volumes of the running AWS infrastructure and associated with the AWS account (credential). The parameters allow to select the scope of the request to one project of the organization. + operationId: getRunningInfraAWSVolumes + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A Credential canonical + in: query + name: credential_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A list of projects' canonical to filter from + in: query + name: project_canonical + schema: + pattern: ^[\da-z]+(?:(?:[\da-z\-._]+)?[\da-z])?$ + type: string + - description: The number of items at most which the response can have. + in: query + name: page_size + schema: + default: 1000 + format: uint32 + type: integer + - description: The token to retrieve the next page of results + in: query + name: next + schema: + minLength: 1 + type: string + - allowEmptyValue: false + description: An amazon tag, represented as `key|value` and where `key` or `value` could be omitted but not both, in order to select resources which has a `key` or a `value` whatever is its counterpart. `key` nor `value` can contains the `|` character. The parameter can be specified several times in order to request resources which match with at least one of the `tag|value` pairs + explode: true + in: query + name: tag + schema: + items: + maxLength: 383 + minLength: 2 + pattern: ^(?:(?:[\w\-+=.:/@ ]+\|)|(?:\|[\w\-+=.:/@ ]+)|(?:[\w\-+=.:/@ ]+\|[\w\-+=.:/@ ]+))$ + type: string + type: array + uniqueItems: true + style: form + responses: + "200": + content: + application/json: + example: + data: + - Attachments: + - AttachTime: 2017-04-26T09:31:12Z + DeleteOnTermination: false + Device: /dev/xvdf + InstanceId: i-02e0848c23c9cf89d + State: attached + VolumeId: vol-0e976363ad5f4f523 + AvailabilityZone: eu-west-1c + CreateTime: 2017-04-26T09:30:51.516Z + Encrypted: false + Size: 10 + SnapshotId: "" + State: in-use + Tags: + - Key: Name + Value: cycloid-kubernetes-etcd2-eu-we1-prod + VolumeId: vol-0e976363ad5f4f523 + VolumeType: standard + - Attachments: + - AttachTime: 2016-09-02T08:07:12Z + DeleteOnTermination: true + Device: /dev/xvda + InstanceId: i-2000dcad + State: attached + VolumeId: vol-c888994f + AvailabilityZone: eu-west-1b + CreateTime: 2016-09-02T08:07:12.162Z + Encrypted: false + Size: 10 + SnapshotId: snap-de88bcce + State: in-use + Tags: [] + VolumeId: vol-c888994f + VolumeType: standard + - Attachments: + - AttachTime: 2016-09-02T08:07:12Z + DeleteOnTermination: true + Device: /dev/xvda + InstanceId: i-ab00dc26 + State: attached + VolumeId: vol-01889986 + AvailabilityZone: eu-west-1b + CreateTime: 2016-09-02T08:07:12.887Z + Encrypted: false + Size: 10 + SnapshotId: snap-de88bcce + State: in-use + Tags: [] + VolumeId: vol-01889986 + VolumeType: standard + pagination: + next: "" + schema: + $ref: '#/components/schemas/getRunningInfraAWSVolumes_200_response' + description: The list of AWS volumes which matches the scope specified by the filter. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Infrastructure + /organizations/{organization_canonical}/infrastructures/aws/vpcs: + get: + deprecated: true + description: Get the list of VPCs of the running AWS infrastructure and associated with the AWS account (credential). The parameters allow to select the scope of the request to one project of the organization. + operationId: getRunningInfraAWSVPCs + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A Credential canonical + in: query + name: credential_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A list of projects' canonical to filter from + in: query + name: project_canonical + schema: + pattern: ^[\da-z]+(?:(?:[\da-z\-._]+)?[\da-z])?$ + type: string + - allowEmptyValue: false + description: An amazon tag, represented as `key|value` and where `key` or `value` could be omitted but not both, in order to select resources which has a `key` or a `value` whatever is its counterpart. `key` nor `value` can contains the `|` character. The parameter can be specified several times in order to request resources which match with at least one of the `tag|value` pairs + explode: true + in: query + name: tag + schema: + items: + maxLength: 383 + minLength: 2 + pattern: ^(?:(?:[\w\-+=.:/@ ]+\|)|(?:\|[\w\-+=.:/@ ]+)|(?:[\w\-+=.:/@ ]+\|[\w\-+=.:/@ ]+))$ + type: string + type: array + uniqueItems: true + style: form + responses: + "200": + content: + application/json: + example: + data: + - CidrBlock: 172.31.0.0/16 + CidrBlockAssociationSet: + - AssociationId: vpc-cidr-assoc-5bd62d32 + CidrBlock: 172.31.0.0/16 + CidrBlockState: + State: associated + DhcpOptionsId: dopt-2e748c47 + InstanceTenancy: default + IsDefault: true + State: available + Tags: [] + VpcId: vpc-462bd42f + schema: + $ref: '#/components/schemas/getRunningInfraAWSVPCs_200_response' + description: The list of AWS VPCs which matches the scope specified by the filter. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Infrastructure + /organizations/{organization_canonical}/inventory: + get: + description: List the inventory resources + operationId: listInventoryResources + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + "200": + content: + application/json: + example: + data: + - attributes: + id: sg-0e74bbe876eba7e6f + ingress: + cidr_blocks: [] + description: "" + from_port: 80 + ipv6_cidr_blocks: [] + prefix_list_ids: [] + protocol: tcp + security_groups: + - sg-0cfe32960213dea69 + self: false + to_port: 80 + custom_attributes: + custom_att: sg-0e74bbe876eba7e6f + id: 1 + module: module.kapsule + name: front + provider: aws + type: aws_instance + filters: + types: + - aws_instance + schema: + $ref: '#/components/schemas/listInventoryResources_200_response' + description: List the Inventory Resources + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Inventory + /organizations/{organization_canonical}/inventory/resource_labels: + get: + description: List Resource Labels + operationId: listResourceLabels + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/listResourceLabels_200_response' + description: Get Resource Labels + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Inventory + /organizations/{organization_canonical}/inventory/resource_types: + get: + description: List Resource Types + operationId: listResourceTypes + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: Provider of Inventory Resource + in: query + name: resources_provider + required: true + schema: + type: string + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/getCloudCostManagementTags_200_response' + description: Get Resource Types + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Inventory + /organizations/{organization_canonical}/inventory/resources: + post: + description: Create an Inventory Resource + operationId: createInventoryResource + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/NewInventoryResource' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/NewInventoryResource' + description: The information of the Inventory new resource data + required: true + responses: + "204": + content: {} + description: Resource Created + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Inventory + x-codegen-request-body-name: body + /organizations/{organization_canonical}/inventory/resources/{inventory_resource_id}: + delete: + description: Delete an Inventory Resource + operationId: deleteInventoryResource + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: Inventory Resource ID + in: path + name: inventory_resource_id + required: true + schema: + format: uint32 + type: integer + responses: + "204": + content: {} + description: Inventory Resource deleted + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Inventory + get: + description: Get the inventory resource by the ID + operationId: getInventoryResource + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: Inventory Resource ID + in: path + name: inventory_resource_id + required: true + schema: + format: uint32 + type: integer + responses: + "200": + content: + application/json: + example: + attributes: + id: sg-0e74bbe876eba7e6f + ingress: + cidr_blocks: [] + description: "" + from_port: 80 + ipv6_cidr_blocks: [] + prefix_list_ids: [] + protocol: tcp + security_groups: + - sg-0cfe32960213dea69 + self: false + to_port: 80 + custom_attributes: + custom_att: sg-0e74bbe876eba7e6f + id: 1 + module: module.kapsule + name: front + provider: aws + type: aws_instance + schema: + $ref: '#/components/schemas/getInventoryResource_200_response' + description: Resource with the given ID + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Inventory + put: + description: Create an Inventory Resource + operationId: updateInventoryResource + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: Inventory Resource ID + in: path + name: inventory_resource_id + required: true + schema: + format: uint32 + type: integer + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/NewInventoryResource' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/NewInventoryResource' + description: The information of the Inventory new data + required: true + responses: + "200": + content: + application/json: + example: + data: + attributes: + id: sg-0e74bbe876eba7e6f + ingress: + cidr_blocks: [] + description: "" + from_port: 80 + ipv6_cidr_blocks: [] + prefix_list_ids: [] + protocol: tcp + security_groups: + - sg-0cfe32960213dea69 + self: false + to_port: 80 + custom_attributes: + custom_att: sg-0e74bbe876eba7e6f + id: 1 + module: module.kapsule + name: front + provider: aws + type: aws_instance + schema: + $ref: '#/components/schemas/getInventoryResource_200_response' + description: The updated Inventory Resource + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Inventory + x-codegen-request-body-name: body + /organizations/{organization_canonical}/kpis: + get: + description: Get the list of configured organization KPIs + operationId: getKpis + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A list of projects' canonical to filter from + in: query + name: project_canonical + schema: + pattern: ^[\da-z]+(?:(?:[\da-z\-._]+)?[\da-z])?$ + type: string + - description: A list of environments' canonical to filter from + in: query + name: environment_canonical + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: The unix timestamp in seconds, which indicate the start of the time range. + in: query + name: begin + schema: + format: uint64 + type: integer + - description: The unix timestamp in seconds, which indicate the end of the time range. + in: query + name: end + schema: + format: uint64 + type: integer + - description: | + Flag to retrieve KPIs' data upon retrieving KPIs themselves + in: query + name: fetch_data + schema: + type: boolean + - description: The page number to request. The first page is 1. + in: query + name: page_index + schema: + default: 1 + format: uint32 + type: integer + - description: The number of items at most which the response can have. + in: query + name: page_size + schema: + default: 1000 + format: uint32 + type: integer + - description: | + Flag to retrieve favorite data from the members favorite list. + in: query + name: favorite + schema: + type: boolean + responses: + "200": + content: + application/json: + example: + data: + - canonical: my-kpi-1 + created_at: 1503224026 + data_set: + - - date + - time + - - 1607904000 + - 39 + - - 1607817600 + - 140 + description: This KPI shows the code coverage of your code on an environment + environment_canonical: env1 + error: Something went wrong while importing + favorite: true + id: 1 + job_name: job1 + name: My KPI 1 + pipeline_name: pipeline1 + project_canonical: project1 + type: buildavgtime + updated_at: 1503224526 + widget: doughnut + - canonical: my-kpi-2 + conf: + envs: + - staging + - preprod + - prod + created_at: 1503227026 + data_set: + - - date + - env + - version + - duration + - final + - released + - - 1592100100 + - dev + - v1 + - 50 + - false + - true + - - 1592100280 + - dev + - v2 + - 95 + - false + - true + - - 1592100500 + - dev + - v3 + - 160 + - false + - true + - - 1592101700 + - dev + - v4 + - 0 + - false + - false + - - 1592100150 + - staging + - v1 + - 850 + - false + - true + - - 1592100375 + - staging + - v2 + - 625 + - false + - true + - - 1592100660 + - staging + - v3 + - 340 + - false + - true + - - 1592101000 + - prod + - v3 + - 0 + - true + - false + description: This KPI shows how long time passes between deployment on your different environment + error: "" + favorite: true + id: 2 + name: My KPI 2 + project_canonical: project2 + type: timetorelease + updated_at: 1503227526 + widget: line + - canonical: my-kpi-10 + created_at: 1503225026 + data_set: + - - date + - coverage + - - 1592100100 + - 13.4 + - - 1592100150 + - 28 + - - 1592100280 + - 85.2 + - - 1592100375 + - 83.9 + description: This KPI shows the code coverage of your code on an environment + environment_canonical: env2 + error: "" + favorite: false + id: 10 + job_name: "" + name: My KPI 10 + pipeline_name: "" + project_canonical: project2 + type: codecoverage + updated_at: 1503225526 + widget: doughnut + schema: + $ref: '#/components/schemas/getKpis_200_response' + description: The list of the KPIs + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization kpis + post: + description: Save information about the KPI + operationId: createKpi + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A list of projects' canonical to filter from + in: query + name: project_canonical + schema: + pattern: ^[\da-z]+(?:(?:[\da-z\-._]+)?[\da-z])?$ + type: string + - description: A list of environments' canonical to filter from + in: query + name: environment_canonical + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: The unix timestamp in seconds, which indicate the start of the time range. + in: query + name: begin + schema: + format: uint64 + type: integer + - description: The unix timestamp in seconds, which indicate the end of the time range. + in: query + name: end + schema: + format: uint64 + type: integer + - description: | + Flag to retrieve KPIs' data upon retrieving KPIs themselves + in: query + name: fetch_data + schema: + type: boolean + - description: The page number to request. The first page is 1. + in: query + name: page_index + schema: + default: 1 + format: uint32 + type: integer + - description: The number of items at most which the response can have. + in: query + name: page_size + schema: + default: 1000 + format: uint32 + type: integer + - description: | + Flag to retrieve favorite data from the members favorite list. + in: query + name: favorite + schema: + type: boolean + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/NewKPI' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/NewKPI' + description: The information of the KPI + required: true + responses: + "200": + content: + application/json: + example: + data: + canonical: my-kpi-1 + created_at: 1503224026 + description: This KPI shows the code coverage of your code on an environment + environment_canonical: env1 + error: Something went wrong while importing + id: 1 + job_name: job1 + name: My KPI 1 + pipeline_name: pipeline1 + project_canonical: project1 + type: buildavgtime + updated_at: 1503224526 + widget: doughnut + schema: + $ref: '#/components/schemas/createKpi_200_response' + description: KPI has been configured + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization kpis + x-codegen-request-body-name: body + /organizations/{organization_canonical}/kpis/{kpi_canonical}: + delete: + description: delete a KPI + operationId: deleteKpi + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a kpi. + in: path + name: kpi_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: The unix timestamp in seconds, which indicate the start of the time range. + in: query + name: begin + schema: + format: uint64 + type: integer + - description: The unix timestamp in seconds, which indicate the end of the time range. + in: query + name: end + schema: + format: uint64 + type: integer + - description: | + Flag to retrieve KPIs' data upon retrieving KPIs themselves + in: query + name: fetch_data + schema: + type: boolean + responses: + "204": + content: {} + description: Organization's KPI has been deleted + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization kpis + get: + description: Get the KPI + operationId: getKpi + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a kpi. + in: path + name: kpi_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: The unix timestamp in seconds, which indicate the start of the time range. + in: query + name: begin + schema: + format: uint64 + type: integer + - description: The unix timestamp in seconds, which indicate the end of the time range. + in: query + name: end + schema: + format: uint64 + type: integer + - description: | + Flag to retrieve KPIs' data upon retrieving KPIs themselves + in: query + name: fetch_data + schema: + type: boolean + responses: + "200": + content: + application/json: + example: + data: + canonical: my-kpi-1 + created_at: 1503224026 + data_set: + - - date + - time + - - 1607904000 + - 39 + - - 1607817600 + - 140 + description: This KPI shows the code coverage of your code on an environment + environment_canonical: env1 + error: "" + id: 1 + job_name: job1 + name: My KPI 1 + pipeline_name: pipeline1 + project_canonical: project1 + type: buildavgtime + updated_at: 1503224526 + widget: doughnut + schema: + $ref: '#/components/schemas/createKpi_200_response' + description: The KPI + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization kpis + put: + description: Update a KPI + operationId: updateKpi + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a kpi. + in: path + name: kpi_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: The unix timestamp in seconds, which indicate the start of the time range. + in: query + name: begin + schema: + format: uint64 + type: integer + - description: The unix timestamp in seconds, which indicate the end of the time range. + in: query + name: end + schema: + format: uint64 + type: integer + - description: | + Flag to retrieve KPIs' data upon retrieving KPIs themselves + in: query + name: fetch_data + schema: + type: boolean + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/NewKPI' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/NewKPI' + description: The information of the KPI new data + required: true + responses: + "200": + content: + application/json: + example: + data: + canonical: my-kpi-11 + created_at: 1503224026 + description: This KPI shows the code coverage of your code on an environment + environment_canonical: env1 + error: "" + id: 11 + job_name: job1 + name: My KPI 11 + pipeline_name: pipeline1 + project_canonical: project1 + type: buildavgtime + updated_at: 1503224526 + widget: doughnut + schema: + $ref: '#/components/schemas/createKpi_200_response' + description: Success update + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "411": + content: {} + description: The request has a body but it doesn't have a Content-Length header. + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization kpis + x-codegen-request-body-name: body + /organizations/{organization_canonical}/kpis/{kpi_canonical}/favorites: + delete: + description: Remove a kpi from the user favorites list. + operationId: deleteKPIFavorite + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a kpi. + in: path + name: kpi_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + "204": + content: {} + description: The kpi has been removed from user favorites list. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization kpis + post: + description: Add a kpi in the user favorites list. + operationId: createKPIFavorite + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a kpi. + in: path + name: kpi_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + "204": + content: {} + description: The kpi has been added to user favorites list. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization kpis + /organizations/{organization_canonical}/licence: + get: + description: Get currently active licence. + operationId: getLicence + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + "200": + content: + application/json: + example: + data: + company_name: Cycloid + created_at: 1503225026 + email_address: email@cycloid.io + expires_at: 1503226026 + key: eyJhbGciOiJSUzUxMiIsInR5cCI6IkpXVCJ9.eyJjb21wYW55X25hbWUiOiJjeWNsb2lkIiwiZW1haWxfYWRkcmVzcyI6ImN5Y2xvaWRAb2ZmaWNlLmlvIiwibWVtYmVyc19jb3VudCI6NSwiZXhwaXJlc19hdCI6IjIwMjItMTItMTNUMDA6MDA6MDBaIiwidmVyc2lvbiI6IjEiLCJhdWQiOiJjeWNsb2lkIiwianRpIjoiNGE1ZTQzMDYtNmUwMy00MjFmLTllM2ItY2VlZmJhZjMyNDk0IiwiaWF0IjoxNjExMzE2NjUwLCJpc3MiOiJodHRwczovL2N5Y2xvaWQuaW8iLCJuYmYiOjE2MTEzMTY2NTAsInN1YiI6Imh0dHBzOi8vY3ljbG9pZC5pbyJ9.Z_DvpqprGU0uW26vkpzdTYvyC4imiw0AY1FJMmpeEyVkfYlRI2Q1MWcFZPxMaTafi1TAjwwJOxdY1fxnghMfKng4-4dEtPhcsJQy3nC_ODyACtxDpZMRRaIb8pzBN7AqFvBWWPVKAdqfYXI7IZMX5jjIfaFHtzzs5OnXwQ9USl4 + members_count: 5 + updated_at: 1503225026 + version: "1" + schema: + $ref: '#/components/schemas/getLicence_200_response' + description: Currently active licence entity. + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + security: [] + tags: + - Organization licence + post: + description: Activate Cycloid's licence. If another licence already exists, it will be overwritten + operationId: activateLicence + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/NewLicence' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/NewLicence' + description: The licence key + required: true + responses: + "204": + content: {} + description: The product has been activated + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "411": + content: {} + description: The request has a body but it doesn't have a Content-Length header. + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + security: [] + tags: + - Organization licence + x-codegen-request-body-name: body + /organizations/{organization_canonical}/members: + get: + description: Get the members of an organization. + operationId: getOrgMembers + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: The page number to request. The first page is 1. + in: query + name: page_index + schema: + default: 1 + format: uint32 + type: integer + - description: The number of items at most which the response can have. + in: query + name: page_size + schema: + default: 1000 + format: uint32 + type: integer + - description: Search by Invitation's state + in: query + name: invitation_state + schema: + enum: + - accepted + - pending + - declined + type: string + - description: Search by the user's given name + in: query + name: user_given_name + schema: + type: string + - description: Search by the user's family name + in: query + name: user_family_name + schema: + type: string + - description: Search by the role's name + in: query + name: role_name + schema: + type: string + - description: Search by the user canonical + in: query + name: user_canonical + schema: + type: string + - description: Search by user creation date + in: query + name: user_created_at + schema: + format: uint64 + type: integer + - description: Search by member joining date + in: query + name: member_created_at + schema: + format: uint64 + type: integer + - description: | + Allows to order the list of items. Example usage: field_name:asc + in: query + name: order_by + schema: + type: string + responses: + "200": + content: + application/json: + example: + data: + - created_at: 1503225026 + email: mariano.jimenez@fakeemail.com + family_name: Jimenez + given_name: Mariano + id: 1 + invitation_email: jordi.capdevila@fakeemail.com + invitation_state: accepted + last_login_at: 1503225576 + picture_url: https://avatars2.githubusercontent.com/u/14579210 + role: + canonical: role-can + description: Organization existing role + id: 17 + name: existing + rules: + - action: organization:delete + effect: allow + id: 1 + resources: + - organization:org-can + - organization:org-can2 + - action: organization:team:create + effect: allow + id: 20 + resources: [] + - action: organization:team:read + effect: allow + id: 21 + resources: + - organization:org-can:team:team-can + username: user-1 + - created_at: 1503281026 + email: jordi.capdevila@fakeemail.com + family_name: Capdevila + given_name: Jordi + id: 1 + invitation_email: jordi.capdevila@fakeemail.com + invitation_state: accepted + last_login_at: 1503225576 + picture_url: https://avatars2.githubusercontent.com/u/14579210 + role: + canonical: role-can + description: Organization existing role + id: 17 + name: existing + rules: + - action: organization:delete + effect: allow + id: 1 + resources: + - organization:org-can + - organization:org-can2 + - action: organization:team:create + effect: allow + id: 20 + resources: [] + - action: organization:team:read + effect: allow + id: 21 + resources: + - organization:org-can:team:team-can + username: user2 + - created_at: 1502225026 + email: ivan.drago@fakeemail.com + family_name: Drago + given_name: Ivan + id: 1 + invitation_email: jordi.capdevila@fakeemail.com + invitation_state: accepted + last_login_at: 1503225576 + picture_url: https://avatars2.githubusercontent.com/u/14579210 + role: + canonical: role-can + description: Organization existing role + id: 17 + name: existing + rules: + - action: organization:delete + effect: allow + id: 1 + resources: + - organization:org-can + - organization:org-can2 + - action: organization:team:create + effect: allow + id: 20 + resources: [] + - action: organization:team:read + effect: allow + id: 21 + resources: + - organization:org-can:team:team-can + username: user-3 + pagination: + index: 1 + size: 10 + total: 3 + schema: + $ref: '#/components/schemas/getOrgMembers_200_response' + description: List of the members of the organization. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization members + post: + description: Invite a user to be a member of the organization. + operationId: inviteUserToOrgMember + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/NewMemberInvitation' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/NewMemberInvitation' + description: The user's member invitation. + required: true + responses: + "200": + content: + application/json: + example: + data: + created_at: 1503281026 + email: jordi.capdevila@fakeemail.com + family_name: Capdevila + given_name: Jordi + id: 1 + invitation_email: jordi.capdevila@fakeemail.com + invitation_state: accepted + picture_url: https://avatars2.githubusercontent.com/u/14579210 + role: + description: A project manager + id: 2 + name: project manager + policies: + - code: team:read + description: Grant the access to read the teams of an organization + entities: [] + id: 21 + - code: team:edit + description: Grant the access to edit teams + entities: [] + id: 22 + - code: project:read + description: Grant the access to projects + entities: [] + id: 60 + - code: project:create + description: Grant the access to create a project in the organization + entities: [] + id: 61 + - code: project:edit + description: Grant the access to edit projects + entities: [] + id: 62 + username: user2 + schema: + $ref: '#/components/schemas/inviteUserToOrgMember_200_response' + description: The information of the member of the organization. + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "411": + content: {} + description: The request has a body but it doesn't have a Content-Length header. + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization members + x-codegen-request-body-name: body + /organizations/{organization_canonical}/members/{member_id}: + delete: + description: Remove a member of the organization. + operationId: removeOrgMember + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A member id + in: path + name: member_id + required: true + schema: + format: uint32 + type: integer + responses: + "204": + content: {} + description: Member has been removed. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization members + get: + description: Get the information of a member of the organization. + operationId: getOrgMember + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A member id + in: path + name: member_id + required: true + schema: + format: uint32 + type: integer + responses: + "200": + content: + application/json: + example: + data: + created_at: 1503281026 + email: jordi.capdevila@fakeemail.com + family_name: Capdevila + given_name: Jordi + id: 1 + invitation_email: jordi.capdevila@fakeemail.com + invitation_state: accepted + picture_url: https://avatars2.githubusercontent.com/u/14579210 + role: + description: A project manager + id: 2 + name: project manager + policies: + - code: team:read + description: Grant the access to read the teams of an organization + entities: [] + id: 21 + - code: team:edit + description: Grant the access to edit teams + entities: [] + id: 22 + - code: project:read + description: Grant the access to projects + entities: [] + id: 60 + - code: project:create + description: Grant the access to create a project in the organization + entities: [] + id: 61 + - code: project:edit + description: Grant the access to edit projects + entities: [] + id: 62 + username: user2 + schema: + $ref: '#/components/schemas/inviteUserToOrgMember_200_response' + description: The information of the member of the organization. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization members + put: + description: Update member of the organization. + operationId: updateOrgMember + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A member id + in: path + name: member_id + required: true + schema: + format: uint32 + type: integer + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/MemberAssignation' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/MemberAssignation' + description: The member information to be updated. + required: true + responses: + "200": + content: + application/json: + example: + data: + created_at: 1503281026 + email: jordi.capdevila@fakeemail.com + family_name: Capdevila + given_name: Jordi + id: 1 + invitation_email: jordi.capdevila@fakeemail.com + invitation_state: accepted + picture_url: https://avatars2.githubusercontent.com/u/14579210 + role: + description: A project manager + id: 2 + name: project manager + policies: + - code: team:read + description: Grant the access to read the teams of an organization + entities: [] + id: 21 + - code: team:edit + description: Grant the access to edit teams + entities: [] + id: 22 + - code: project:read + description: Grant the access to projects + entities: [] + id: 60 + - code: project:create + description: Grant the access to create a project in the organization + entities: [] + id: 61 + - code: project:edit + description: Grant the access to edit projects + entities: [] + id: 62 + username: user2 + schema: + $ref: '#/components/schemas/inviteUserToOrgMember_200_response' + description: The information of the member of the organization. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization members + x-codegen-request-body-name: body + /organizations/{organization_canonical}/members/{member_id}/resend: + put: + description: Resend the email containing the verification token to accept the member Invitation. + operationId: resendMemberInvitation + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A member id + in: path + name: member_id + required: true + schema: + format: uint32 + type: integer + responses: + "204": + content: {} + description: The member Invitation has been resent. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + security: [] + tags: + - Organization members + /organizations/{organization_canonical}/pipelines: + get: + description: Get all the pipelines that the authenticated user has access to. + operationId: getPipelines + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A pipeline name + in: query + name: concourse_pipeline_name + schema: + maxLength: 100 + minLength: 1 + pattern: ^[a-z0-9]+[a-z0-9\-_.]+[a-z0-9]+$ + type: string + - description: A list of projects' canonical to filter from + in: query + name: project_canonical + schema: + pattern: ^[\da-z]+(?:(?:[\da-z\-._]+)?[\da-z])?$ + type: string + - description: A list of environments' canonical to filter from + in: query + name: environment_canonical + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - allowEmptyValue: true + description: List of statuses that you want to filter a pipeline/job with. Pipeline can be either paused or unpaused, but jobs can be started, pending, succeeded, failed, errored, aborted. So if any of a pipeline's job has one of the given status, the associated pipeline will be included in the response. + explode: true + in: query + name: statuses + schema: + items: + enum: + - aborted + - errored + - failed + - paused + - pending + - started + - succeeded + type: string + type: array + uniqueItems: true + style: form + - description: The page number to request. The first page is 1. + in: query + name: page_index + schema: + default: 1 + format: uint32 + type: integer + - description: The number of items at most which the response can have. + in: query + name: page_size + schema: + default: 1000 + format: uint32 + type: integer + responses: + "200": + content: + application/json: + example: + data: + - archived: false + created_at: 1500135021 + environment: dev + groups: [] + id: 154 + name: approval-resource + paused: true + project: + canonical: proj-1 + created_at: 1500135021 + id: 5 + name: project1 + service_catalog_ref: cycloidio:stack-magento + updated_at: 1500135021 + public: false + team_name: cycloid-products + updated_at: 1500135021 + use_case: approval-of-resources + - archived: false + created_at: 1500135021 + environment: dev + groups: + - jobs: + - pr-code-validate + name: pull-requests + resources: [] + - jobs: + - preprod-code-validate + - preprod-build-deploy + name: preprod + resources: [] + id: 196 + name: frontend + paused: false + project: + canonical: proj-1 + created_at: 1500135021 + id: 5 + name: project1 + service_catalog_ref: cycloidio:stack-magento + updated_at: 1500135021 + public: false + team_name: cycloid-products + updated_at: 1500135021 + use_case: frontend + - archived: false + created_at: 1500135021 + environment: dev + groups: + - jobs: + - code-validation-develop + - code-validation-pull-requests + name: all + resources: [] + - jobs: + - code-validation-develop + name: develop + resources: [] + - jobs: + - code-validation-pull-requests + name: pull-requests + resources: [] + id: 252 + name: http-api + paused: false + project: + canonical: proj-1 + created_at: 1500135021 + id: 5 + name: project1 + service_catalog_ref: cycloidio:stack-magento + updated_at: 1500135021 + public: false + team_name: cycloid-products + updated_at: 1500135021 + use_case: ci-cd-pipelines + pagination: + index: 1 + size: 10 + total: 5 + schema: + $ref: '#/components/schemas/getPipelines_200_response' + description: List of all the pipelines which authenticated user has access to. + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization pipelines + /organizations/{organization_canonical}/pipelines/{inpath_pipeline_name}/diff: + put: + description: The diff between the provided pipeline configuration and the pipeline from the given name. + operationId: diffPipeline + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A pipeline name + in: path + name: inpath_pipeline_name + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[a-z0-9]+[a-z0-9\-_.]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/UpdatePipeline' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UpdatePipeline' + description: The pipeline configuration + required: true + responses: + "200": + content: + application/json: + example: + data: + groups: + - diff: + - delta_type: '-' + line: '- test-develop' + label: group + name: bar + status: removed + jobs: + - diff: + - delta_type: + + line: '- terraform-plan-api' + label: job + name: foo + status: added + resource_types: + - diff: + - delta_type: '-' + line: 'name: terraform' + label: resource type + name: glop + status: removed + resources: + - diff: + - delta_type: '-' + line: ' - key: foo' + - delta_type: + + line: ' - key: bar' + label: resource + name: bli + status: changed + schema: + $ref: '#/components/schemas/diffPipeline_200_response' + description: The diff between the provided pipeline configuration and the existing pipeline has been done. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "411": + content: {} + description: The request has a body but it doesn't have a Content-Length header. + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization pipelines + x-codegen-request-body-name: body + /organizations/{organization_canonical}/pipelines/{inpath_pipeline_name}/synced: + get: + description: Will check if the pipeline from the database and the one specified in the stack are synced or not + operationId: syncedPipeline + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A pipeline name + in: path + name: inpath_pipeline_name + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[a-z0-9]+[a-z0-9\-_.]+[a-z0-9]+$ + type: string + responses: + "200": + content: + application/json: + example: + data: + diffs: + groups: + - diff: + - delta_type: '-' + line: '- test-develop' + label: group + name: bar + status: removed + jobs: + - diff: + - delta_type: + + line: '- terraform-plan-api' + label: job + name: foo + status: added + resource_types: + - diff: + - delta_type: '-' + line: 'name: terraform' + label: resource type + name: glop + status: removed + resources: + - diff: + - delta_type: '-' + line: ' - key: foo' + - delta_type: + + line: ' - key: bar' + label: resource + name: bli + status: changed + error: "" + synced: out_of_sync + schema: + $ref: '#/components/schemas/syncedPipeline_200_response' + description: The diff between the stack's pipeline and the existing pipeline if any exists. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "411": + content: {} + description: The request has a body but it doesn't have a Content-Length header. + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization pipelines + /organizations/{organization_canonical}/policies: + get: + description: Get the list of Policies + operationId: getPolicies + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: The page number to request. The first page is 1. + in: query + name: page_index + schema: + default: 1 + format: uint32 + type: integer + - description: The number of items at most which the response can have. + in: query + name: page_size + schema: + default: 1000 + format: uint32 + type: integer + responses: + "200": + content: + application/json: + example: + data: + - code: organization:delete + description: Grant the access to delete the organization + id: 1 + - code: organization:edit + description: Grant the access to edit the organization + id: 2 + - code: team:create + description: Grant the access to create teams + id: 20 + - code: team:read + description: Grant the access to read the teams of an organization + id: 21 + - code: team:edit + description: Grant the access to edit teams + id: 22 + - code: team:delete + description: Grant the access to delete teams + id: 23 + - code: member:invite + description: Grant the access to invite members to join to the organization + id: 40 + - code: member:remove + description: Grant the access to remove members + id: 41 + - code: member:read + description: Grant the access to read the members + id: 42 + - code: project:read + description: Grant the access to projects + entities: + - "10" + - "32" + id: 60 + - code: project:create + description: Grant the access to create a project in the organization + entities: [] + id: 61 + - code: project:edit + description: Grant the access to edit projects + entities: [] + id: 62 + pagination: + index: 1 + size: 10 + total: 2 + schema: + $ref: '#/components/schemas/getPolicies_200_response' + description: List of Policies + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Policies + /organizations/{organization_canonical}/projects: + get: + description: Get list of projects of the organization. + operationId: getProjects + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: The page number to request. The first page is 1. + in: query + name: page_index + schema: + default: 1 + format: uint32 + type: integer + - description: The number of items at most which the response can have. + in: query + name: page_size + schema: + default: 1000 + format: uint32 + type: integer + - description: Search by project's name + in: query + name: project_name + schema: + type: string + - description: Search by project's creation date + in: query + name: project_created_at + schema: + format: uint64 + type: integer + - description: Search by project's description + in: query + name: project_description + schema: + type: string + - description: Search by project's config repository's canonical + in: query + name: project_config_repository_canonical + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: Organization Service Catalog Sources canonical + in: query + name: service_catalog_source_canonical + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: Search by entity's owner + in: query + name: member_id + schema: + format: uint32 + type: integer + - description: | + Allows to order the list of items. Example usage: field_name:asc + in: query + name: order_by + schema: + type: string + - description: | + Flag to retrieve favorite data from the members favorite list. + in: query + name: favorite + schema: + type: boolean + - description: A list of environments' canonical to filter from + in: query + name: environment_canonical + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + responses: + "200": + content: + application/json: + example: + data: + - canonical: proj-1 + cloud_provider: + abbreviation: AWS + canonical: aws + created_at: 1503225026 + id: 4 + name: Amazon Web Services + updated_at: 1503335026 + created_at: 1503225026 + description: my-description1 + environments: + - dev + - staging + - production + favorite: true + id: 1 + name: Project 1 + owner: + created_at: 1503225026 + email: mariano.jimenez@fakeemail.com + family_name: Jimenez + given_name: Mariano + id: 1 + picture_url: https://avatars2.githubusercontent.com/u/14579210 + role: + canonical: role-can + description: Organization existing role + id: 17 + name: existing + rules: + - action: organization:delete + effect: allow + id: 1 + resources: + - organization:org-can + - organization:org-can2 + - action: organization:team:create + effect: allow + id: 20 + resources: [] + - action: organization:team:read + effect: allow + id: 21 + resources: + - organization:org-can:team:team-can + username: user-1 + service_catalog_name: Magento Stack + service_catalog_ref: cycloidio:stack-magento + updated_at: 1503335026 + - canonical: proj2 + cloud_provider: + abbreviation: GCP + canonical: google + created_at: 1503225026 + id: 2 + name: Google Cloud Platform + updated_at: 1503335026 + created_at: 1501131026 + description: my-description2 + environments: + - dev + - staging + favorite: true + id: 1 + name: Project 2 + service_catalog_name: Magento Stack 2 + service_catalog_ref: cycloidio:stack-magento2 + updated_at: 1503333026 + - canonical: proj3 + created_at: 1500135021 + description: my-description3 + environments: [] + favorite: true + id: 1 + name: Project 3 + service_catalog_name: Some other stack + service_catalog_ref: cycloidio:stack-something + updated_at: 1503332021 + - canonical: proj-4 + created_at: 1500035021 + description: my-description4 + environments: + - dev + - staging + - production + favorite: false + id: 1 + name: Project 4 + owner: + created_at: 1503225026 + email: mariana.jimenezo@fakeemail.com + family_name: Jimenezo + given_name: Mariana + id: 10 + picture_url: https://avatars2.githubusercontent.com/u/14579210 + role: + canonical: role-can + description: Organization existing role + id: 17 + name: existing + rules: + - action: organization:delete + effect: allow + id: 1 + resources: + - organization:org-can + - organization:org-can2 + - action: organization:team:create + effect: allow + id: 20 + resources: [] + - action: organization:team:read + effect: allow + id: 21 + resources: + - organization:org-can:team:team-can + username: user-2 + service_catalog_name: Magento Stack 3 + service_catalog_ref: cycloidio:stack-magento3 + updated_at: 1502332021 + pagination: + index: 1 + size: 10 + total: 4 + schema: + $ref: '#/components/schemas/getProjects_200_response' + description: List of the projects which the organization has. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization projects + post: + description: Create a new project with pipelines in the organization. + operationId: createProject + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/NewProject' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/NewProject' + description: | + The information of the project to create. + required: true + responses: + "200": + content: + application/json: + example: + data: + canonical: proj3 + created_at: 1500135021 + description: the-description + id: 1 + name: Project 3 + owner: + created_at: 1503225026 + email: mariano.jimenez@fakeemail.com + family_name: Jimenez + given_name: Mariano + id: 1 + picture_url: https://avatars2.githubusercontent.com/u/14579210 + role: + canonical: role-can + description: Organization existing role + id: 17 + name: existing + rules: + - action: organization:delete + effect: allow + id: 1 + resources: + - organization:org-can + - organization:org-can2 + - action: organization:team:create + effect: allow + id: 20 + resources: [] + - action: organization:team:read + effect: allow + id: 21 + resources: + - organization:org-can:team:team-can + username: user-1 + service_catalog: + author: Cycloid CI + canonical: stack-foo + description: CI sample + directory: /config + id: 1 + keywords: + - ci + name: foo + ref: cycloid:stack-foo + service_catalog_source_id: 1 + trusted: true + updated_at: 1503332021 + schema: + $ref: '#/components/schemas/createProject_200_response' + description: Project created. The body contains the information of the new project of the organization. + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "411": + content: {} + description: The request has a body but it doesn't have a Content-Length header. + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization projects + x-codegen-request-body-name: body + /organizations/{organization_canonical}/projects/{project_canonical}: + delete: + description: Delete a project of the organization. + operationId: deleteProject + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + responses: + "204": + content: {} + description: Project has been deleted. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization projects + get: + description: Get a project of the organization. + operationId: getProject + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + responses: + "200": + content: + application/json: + example: + data: + canonical: proj2 + created_at: 1501131026 + environments: + - canonical: staging + created_at: 1503225026 + id: 2 + updated_at: 1503335026 + use_case: uc + - canonical: dev + created_at: 1503225026 + id: 3 + updated_at: 1503335026 + use_case: uc2 + id: 1 + name: Project 2 + owner: + created_at: 1503225026 + email: mariano.jimenez@fakeemail.com + family_name: Jimenez + given_name: Mariano + id: 1 + picture_url: https://avatars2.githubusercontent.com/u/14579210 + role: + canonical: role-can + description: Organization existing role + id: 17 + name: existing + rules: + - action: organization:delete + effect: allow + id: 1 + resources: + - organization:org-can + - organization:org-can2 + - action: organization:team:create + effect: allow + id: 20 + resources: [] + - action: organization:team:read + effect: allow + id: 21 + resources: + - organization:org-can:team:team-can + username: user-1 + service_catalog: + author: Cycloid CI + canonical: stack-foo + description: CI sample + directory: /config + id: 1 + keywords: + - ci + name: foo + ref: cycloid:stack-foo + service_catalog_source_id: 1 + trusted: true + updated_at: 1503333026 + schema: + $ref: '#/components/schemas/createProject_200_response' + description: The information of the project of the organization which has the specified ID. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization projects + put: + description: Update the information of a project of the organization. If the project has some information on the fields which aren't required and they are not sent or set to their default values, which depend of their types, the information will be removed. + operationId: updateProject + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/UpdateProject' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UpdateProject' + description: The information of the project to update. + required: true + responses: + "200": + content: + application/json: + example: + data: + canonical: proj-1 + config_repository_canonical: stack-magento-cr + created_at: 1503225026 + id: 1 + name: Project 1 + owner: + created_at: 1503225026 + email: mariano.jimenez@fakeemail.com + family_name: Jimenez + given_name: Mariano + id: 10 + picture_url: https://avatars2.githubusercontent.com/u/14579210 + role: + canonical: role-can + description: Organization existing role + id: 17 + name: existing + rules: + - action: organization:delete + effect: allow + id: 1 + resources: + - organization:org-can + - organization:org-can2 + - action: organization:team:create + effect: allow + id: 20 + resources: [] + - action: organization:team:read + effect: allow + id: 21 + resources: + - organization:org-can:team:team-can + username: user-1 + service_catalog: + author: Cycloid CI + canonical: stack-foo + description: CI sample + directory: /config + id: 1 + keywords: + - ci + name: foo + ref: cycloid:stack-foo + service_catalog_source_id: 1 + trusted: true + service_catalog_ref: cycloidio:stack-magento + updated_at: 1503335026 + schema: + $ref: '#/components/schemas/createProject_200_response' + description: Project updated. The body contains information of the updated project. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "411": + content: {} + description: The request has a body but it doesn't have a Content-Length header. + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization projects + x-codegen-request-body-name: body + /organizations/{organization_canonical}/projects/{project_canonical}/environment/{environment_canonical}/config: + get: + description: Fetch the current project's environment's configuration. + operationId: getProjectConfig + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: The environment canonical to use as part of a path + in: path + name: environment_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + responses: + "200": + content: + application/json: + example: + data: + forms: + prod: + ansible: + database: + - current: + foo: bar + default: + foo: bar + description: "" + key: key-one + name: map variable + type: map + unit: ($, GHz, GB) + values: + - foo: bar + - bar: foo + widget: radios + - current: + - bar + - foo + default: + - bar + - foo + description: something k2 + key: key-two + name: array variable + required: false + type: array + unit: ($, GHz, GB) + values: + - - foo + - bar + - - bar + - foo + widget: dropdown + - description: something k3 + key: key-three + name: required variable without default + required: true + type: integer + unit: something + widget: number + pipeline: + database: + - default: t2.micro + description: something + key: key-four + name: string with values and default + type: string + unit: ($, GHz, GB) + values: + - t2.micro + - t2.medium + - t2.large + widget: cy_cred + - current: 152 + description: something k5 + key: key-five + name: not required no default, but values + required: false + type: integer + unit: ($, GHz, GB) + values: + - 100 + - 200 + widget: dropdown + - current: 10 + description: something k6 + key: key-six + name: not required no default, but values + required: false + type: integer + unit: ($, GHz, GB) + values: + - 10 + - 40 + - 80 + widget: dropdown + terraform: + database: + - current: 10 + default: 2 + description: something k1 + key: key-one + name: integer variable + required: false + type: integer + unit: ($, GHz, GB) + values: + - 1 + - 10 + widget: slider_range + - default: 20 + description: something k2 + key: key-two + name: required with default + required: true + type: integer + unit: ($, GHz, GB) + values: + - 10 + - 20 + - 30 + widget: dropdown + - current: 1 + description: something k3 + key: key-three + name: not required no default + required: false + type: integer + unit: ($, GHz, GB) + values: + - 1 + - 5 + widget: slider_list + resource_pool_canonical: prcan + use_case: prod + schema: + $ref: '#/components/schemas/getProjectConfig_200_response' + description: Set of config to create the project / push onto repositories + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization projects + /organizations/{organization_canonical}/projects/{project_canonical}/environments: + post: + description: Create a new environment with provider, icon and color in a project + operationId: createEnvironment + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/NewEnvironment' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/NewEnvironment' + description: The canonical of the environment to create and its configuration. + required: true + responses: + "200": + content: + application/json: + example: + data: + canonical: env + cloud_provider_canonical: aws + color: lime + created_at: 1500135021 + icon: world + id: 1 + updated_at: 1503332021 + use_case: prod + schema: + $ref: '#/components/schemas/createEnvironment_200_response' + description: Environment created. The body contains the information of the new environment. + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "411": + content: {} + description: The request has a body but it doesn't have a Content-Length header. + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization projects + x-codegen-request-body-name: body + /organizations/{organization_canonical}/projects/{project_canonical}/environments/{environment_canonical}: + delete: + description: Delete a project environment. + operationId: deleteEnvironment + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: The environment canonical to use as part of a path + in: path + name: environment_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + responses: + "204": + content: {} + description: Project environment has been deleted. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization projects + get: + description: Get a project environment of the organization. + operationId: getEnvironment + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: The environment canonical to use as part of a path + in: path + name: environment_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + responses: + "200": + content: + application/json: + example: + data: + cloud_provider_canonical: aws + color: lime + icon: world + use_case: prod + schema: + $ref: '#/components/schemas/createEnvironment_200_response' + description: The body contains the environment. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization projects + put: + description: Update a project environment of the organization. + operationId: updateEnvironment + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: The environment canonical to use as part of a path + in: path + name: environment_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/UpdateEnvironment' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UpdateEnvironment' + description: The canonical of the environment to update and its configuration. + required: true + responses: + "200": + content: + application/json: + example: + data: + cloud_provider_canonical: aws + color: lime + icon: world + use_case: prod + schema: + $ref: '#/components/schemas/createEnvironment_200_response' + description: Environment updated. The body contains the information of the updated environment. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization projects + x-codegen-request-body-name: body + /organizations/{organization_canonical}/projects/{project_canonical}/environments/{environment_canonical}/infrastructure: + get: + description: Get the infrastructure of the Project on the environment + operationId: getProjInfrastructure + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: The environment canonical to use as part of a path + in: path + name: environment_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + responses: + "200": + content: + application/json: + example: + data: + config: + resource: + aws_instance: + front: + ami: ami-0211a849817dcceca + arn: arn:aws:ec2:eu-west-1:99999992:instance/i-08ffccfdf54168280 + associate_public_ip_address: false + availability_zone: eu-west-1a + cpu_core_count: 1 + cpu_threads_per_core: 2 + credit_specification: + - cpu_credits: unlimited + disable_api_termination: false + ebs_block_device: [] + ebs_optimized: false + ephemeral_block_device: [] + get_password_data: false + iam_instance_profile: cycloid_profile-front-sample-magento-prod + id: i-08ffccfdf54168280 + instance_state: running + instance_type: t3.small + ipv6_address_count: 0 + ipv6_addresses: [] + key_name: cycloid + monitoring: false + network_interface: [] + password_data: "" + placement_group: "" + primary_network_interface_id: eni-01eac7f767b723514 + private_dns: ip-10-4-0-3.eu-west-1.compute.internal + private_ip: 10.4.0.3 + public_dns: "" + public_ip: "" + root_block_device: + - delete_on_termination: true + encrypted: false + iops: 180 + kms_key_id: "" + volume_id: vol-0a0da4a72f6548eb0 + volume_size: 60 + volume_type: gp2 + security_groups: [] + source_dest_check: true + subnet_id: subnet-7e131c1a + tags: + Name: sample-magento-front0-eu-we1-prod + bar: bla + client: cycloid + cycloid.io: "true" + env: prod + foo: test + monitoring_discovery: "false" + project: sample-magento + role: front + tenancy: default + volume_tags: + Name: sample-magento-front0-eu-we1-prod + bar: bla + client: cycloid + cycloid.io: "true" + env: prod + foo: test + monitoring_discovery: "false" + project: sample-magento + role: front + vpc_security_group_ids: + - sg-0d6e0e07fbc6ec626 + - sg-ddeee6bb + aws_lb: + front: + access_logs.#: "1" + access_logs.0.bucket: "" + access_logs.0.enabled: "false" + access_logs.0.prefix: "" + arn: arn:aws:elasticloadbalancing:eu-west-1:99999994:loadbalancer/app/amazon-front-prod/fa8c187e287baaf1 + arn_suffix: app/amazon-front-prod/fa8c187e287baaf1 + dns_name: amazon-front-prod-1234567890.eu-west-1.elb.amazonaws.com + enable_deletion_protection: "false" + enable_http2: "true" + id: arn:aws:elasticloadbalancing:eu-west-1:99999994:loadbalancer/app/amazon-front-prod/fa8c187e287baaf1 + idle_timeout: "600" + internal: "false" + ip_address_type: ipv4 + load_balancer_type: application + name: amazon-front-prod + security_groups.#: "1" + security_groups.3982542233: sg-815549fb + subnet_mapping.#: "3" + subnet_mapping.707871693.allocation_id: "" + subnet_mapping.707871693.subnet_id: subnet-08c11040 + subnet_mapping.1243641484.allocation_id: "" + subnet_mapping.1243641484.subnet_id: subnet-e8f5368e + subnet_mapping.1617803526.allocation_id: "" + subnet_mapping.1617803526.subnet_id: subnet-4caca117 + subnets.#: "3" + subnets.1359096304: subnet-08c11040 + subnets.3529352084: subnet-4caca117 + subnets.4038704495: subnet-e8f5368e + tags.%: "6" + tags.Name: amazon-front-eu-we1-prod + tags.client: amazon + tags.cycloid.io: "true" + tags.env: prod + tags.project: amazon + tags.role: front + vpc_id: vpc-5972c43f + zone_id: Z32O12XQLNTSW2 + aws_security_group: + front: + cidr_blocks: + - 0.0.0.0/0 + description: "" + from_port: 443 + id: sgrule-3405156902 + ipv6_cidr_blocks: [] + prefix_list_ids: [] + protocol: tcp + security_group_id: sg-0f4d72e0081ca0c09 + self: false + to_port: 443 + type: ingress + graph: + edges: + - canonicals: + - aws_security_group.front + id: UUID-edge-1 + source: UUID-node-1 + target: UUID-node-2 + nodes: + - canonical: aws_lb.front + id: UUID-node-1 + position: + - 0 + - 0 + resource: + canonical: aws_lb + category: some category + description: description of the resource + image: http://via.placeholder.com/150x150 + is_edge: false + is_node: true + keywords: + - some + - key + short_description: resource + - canonical: aws_instance.front + id: UUID-node-2 + position: + - 0 + - 0 + resource: + canonical: aws_instance + category: some category + description: description of the resource + image: http://via.placeholder.com/150x150 + is_edge: false + is_node: true + keywords: + - some + - key + short_description: resource + schema: + $ref: '#/components/schemas/getProjInfrastructure_200_response' + description: Get the Infrastructure View of the Project's environment + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Infrastructure + /organizations/{organization_canonical}/projects/{project_canonical}/environments/{environment_canonical}/logs/sources: + get: + description: Get the list of sources configured for the specified project's environment of the organization. + operationId: getProjEnvLogSources + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: The environment canonical to use as part of a path + in: path + name: environment_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + responses: + "200": + content: + application/json: + example: + data: + - id: access.log + - id: exception.log + schema: + $ref: '#/components/schemas/getProjEnvLogSources_200_response' + description: The list of sources related to the project's environment. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Logs + ? /organizations/{organization_canonical}/projects/{project_canonical}/environments/{environment_canonical}/logs/sources/{log_source_id} + : get: + description: |- + Get log's entries information of the specified log stream stream which is associated to the project's environment of the specified organization. The log's entries to request can be filtered using the unix timestamp ranges and/or the query as follow - When unix timestamps are defined, they are converted to the specific + query language used by the configured underlying log system (e.g AWS + Cloud Watch, ElasticSearch, etc.) and appended to the query value + respecting the syntax but not checking the content of the query, which + means that if the whole query must be enclosed by curly brackets hence + the query value is enclosed on them, the time range filter will be + added inside not just appended at the end, because otherwise it would + cause wrong syntax; on the other hand, not checking the content means + that if the query contains a timerange filter, the whole query will + contain both and the result will be the one returned by on the + underlying log system, being an error or not. + - When no time range are defined, then the query is used as it has been + send, there is not modification on the query to send to the underlying + log system, hence the result will be the one returned by it. + - If none of the filters (timestamp range and query) are sent, then + a 422 status code will be responded. + - Some constraints are established by the underlying log system, so + depending which one has been configured some parameters may be + required or not. + operationId: getProjEnvLogEntries + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: The environment canonical to use as part of a path + in: path + name: environment_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: A unique identifier, which group log's entries under under a context, established by the source. + in: path + name: log_source_id + required: true + schema: + minLength: 1 + type: string + - description: The unix timestamp in milliseconds, which indicate the start of the time range. + in: query + name: begin + schema: + format: uint64 + type: integer + - description: The unix timestamp in milliseconds, which indicate the end of the time range. + in: query + name: end + schema: + format: uint64 + type: integer + - description: A free text which the content depends of the context of the API endpoint. Can be a free text value or a complete query expressed of supported query language. + in: query + name: query + schema: + minLength: 1 + type: string + responses: + "200": + content: + application/json: + example: + data: + - host: theowlhost + message: 178.154.171.21 - - [21/Sep/2017:02:51:22 +0200] "GET /1663-large_default/tienda-de-campana-basica-para-2-personas.jpg HTTP/1.0" 302 773 "-" "Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots)" + timestamp: "0123456789" + - host: mymon + message: 141.8.132.28 - - [21/Sep/2017:02:51:27 +0200] "GET /1663-large_default/tienda-de-campana-basica-para-2-personas.jpg/ HTTP/1.0" 302 731 "-" "Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots)" + timestamp: "0123456795" + - host: theowlhost + message: 46.229.168.65 - - [21/Sep/2017:02:51:28 +0200] "GET /mosquitera-enrollable-lateral.html HTTP/1.0" 200 25313 "-" "Mozilla/5.0 (compatible; SemrushBot/1.2~bl; +http://www.semrush.com/bot.html)" + timestamp: "0123456800" + - host: mymon + message: 141.10.132.56 - - [21/Sep/2017:02:51:56 +0200] "GET /1663-large_default/tienda-de-campana-basica-para-2-personas.jpg/ HTTP/1.0" 302 731 "-" "Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots)" + timestamp: "0123456805" + - host: burrowing + message: 46.229.168.65 - - [21/Sep/2017:02:52:03 +0200] "GET /mosquitera-enrollable-lateral.html HTTP/1.0" 200 25313 "-" "Mozilla/5.0 (compatible; SemrushBot/1.2~bl; +http://www.semrush.com/bot.html)" + timestamp: "0123456810" + - host: theowlhost + message: 141.10.132.56 - - [21/Sep/2017:02:52:23 +0200] "GET /1663-large_default/tienda-de-campana-basica-para-2-personas.jpg/ HTTP/1.0" 302 731 "-" "Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots)" + timestamp: "0123456823" + - host: elf + message: 123.229.145.65 - - [21/Sep/2017:02:52:49 +0200] "GET /mosquitera-enrollable-lateral.html HTTP/1.0" 200 25313 "-" "Mozilla/5.0 (compatible; SemrushBot/1.2~bl; +http://www.semrush.com/bot.html)" + timestamp: "0123456834" + - host: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaelf + message: 123.229.145.65 - - [21/Sep/2017:02:52:49 +0200] "GET /mosquitera-enrollable-lateral.html HTTP/1.0" 200 25313 "-" "Mozilla/5.0 (compatible; SemrushBot/1.2~bl; +http://www.semrush.com/bot.html)" + timestamp: "0123456834" + schema: + $ref: '#/components/schemas/getProjEnvLogEntries_200_response' + description: The list of log's entries which are comprehended by the begin and end timestamps and are selected by the optional query. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Logs + ? /organizations/{organization_canonical}/projects/{project_canonical}/environments/{environment_canonical}/validate_infra_policies + : post: + description: Check the InfraPolicies assigned to the Project and the Environment to identify if some are not respected. + operationId: validateProjectInfraPolicies + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: The environment canonical to use as part of a path + in: path + name: environment_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/TerraformPlanInput' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/TerraformPlanInput' + description: The project's attributes to check before to apply an infrastructure change. + required: true + responses: + "200": + content: + application/json: + example: + data: + advisories: [] + criticals: + - body: |- + package example + + deny[reason] { + reason := "This is a failing error example" + } + canonical: infrapolicy-1 + created_at: 1606735667 + description: This is an example + enabled: true + id: 8 + name: InfraPolicy 1 + owner: + created_at: 1503225026 + email: mariano.jimenez@fakeemail.com + family_name: Jimenez + given_name: Mariano + id: 1 + picture_url: https://avatars2.githubusercontent.com/u/14579210 + role: + description: this is the standard role + id: 42 + name: standard role + policies: + - code: team:read + description: this is the policy + id: 1 + username: user-1 + severity: critical + updated_at: 1606735667 + reasons: + - This is a failing error example + warnings: [] + schema: + $ref: '#/components/schemas/validateProjectInfraPolicies_200_response' + description: The list of the policies not respected. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Infrastructure Policies + x-codegen-request-body-name: body + /organizations/{organization_canonical}/projects/{project_canonical}/favorites: + delete: + description: Remove a project from the user favorites list. + operationId: deleteProjectFavorite + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + responses: + "204": + content: {} + description: The project has been removed from user favorites list. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization projects + post: + description: Add a new project in the user favorites list. + operationId: createProjectFavorite + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + responses: + "204": + content: {} + description: The project has been added to user favorites list. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization projects + /organizations/{organization_canonical}/projects/{project_canonical}/forms/config: + post: + description: Generate a set of configs based on the forms inputs + operationId: createFormsConfig + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/FormInputs' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/FormInputs' + description: The information of the filled forms for a new project. + required: true + responses: + "200": + content: + application/json: + example: + data: + dev: + ansible: + magento: + content: | + # In this file you could override any variables present in default_front.yaml file + + # Usually you might want to override those variables : + # magento_backend_frontname: admin + # magento_admin_firstname: admin + # magento_admin_lastname: admin + # magento_admin_email: root@localhost.local + # magento_admin_user: admin + + # magento_admin_password: 4Bigs3cr3t + + # In case you want to use vault to encrypt this password use the following command to generate the ansible vault var : + # echo -n "4Bigs3cr3t" | ansible-vault encrypt_string --stdin-name=magento_admin_password + #>> magento_admin_password: !vault | + #>> $ANSIBLE_VAULT;1.1;AES256 + #>> 37363232383334316164366337366430316535636130376134323366313565356365363662653539 + #>> 3161303331303565643831383839626263653362636466660a316530613935393464366536383839 + #>> 30303836326138306339623431356234333239343435623333343333623938633761636132303662 + #>> 3135343861383531660a393934316237363961663865393939313966373838653339326565353263 + #>> 6238 + destination: ansible/environments/dev-front.yml + path: ansible/environments/front.yml.sample + pipeline: + pipeline: + content: | + groups: + + - name: magento-((env)) + jobs: + - magento-((env))-build + - full-deploy-front-magento-((env)) + - app-deploy-front-magento-((env)) + - terraform-plan-magento-((env)) + - terraform-apply-magento-((env)) + - magento-((env))-unittests + - magento-((env))-functional-tests + + resource_types: + + - name: terraform + type: docker-image + source: + repository: ljfranklin/terraform-resource + + resources: + + - name: terraform-magento-((env)) + type: terraform + source: + storage: + bucket: ((terraform_storage_bucket_name)) + bucket_path: ((terraform_storage_bucket_path)) + region_name: ((aws_default_region)) + access_key_id: "((terraform_storage_access_key))" + secret_access_key: "((terraform_storage_secret_key))" + vars: + access_key: ((aws_access_key)) + secret_key: ((aws_secret_key)) + env: + AWS_ACCESS_KEY_ID: ((aws_access_key)) + AWS_DEFAULT_REGION: ((aws_default_region)) + AWS_SECRET_ACCESS_KEY: ((aws_secret_key)) + path: pipeline/magento.yml + variables: + content: | + env: dev + magento_deploy_bucket_name: magento-deploy + magento_deploy_bucket_object_path: /catalog-magento/dev/magento.tar.gz + magento_deploy_bucket_region: eu-west-1 + magento_deploy_bucket_access_key: ... + magento_deploy_bucket_secret_access_key: ... + terraform_storage_access_key: ... + terraform_storage_secret_key: ... + terraform_storage_bucket_name: magento-terraform-remote-state + terraform_storage_bucket_path: magento/dev + aws_access_key: ... + aws_secret_key: ... + aws_default_region: eu-west-1 + + ansible_vault_password: ... + bastion_url: admin@bastion.server.com + bastion_private_key_pair: |- + -----BEGIN RSA PRIVATE KEY----- + -----END RSA PRIVATE KEY----- + + catalog_magento_git_private_key: |- + -----BEGIN RSA PRIVATE KEY----- + -----END RSA PRIVATE KEY----- + + magento_git_repository: git@github.com:myuser/code-magento.git + magento_git_branch: master + magento_git_private_key: |- + -----BEGIN RSA PRIVATE KEY----- + -----END RSA PRIVATE KEY----- + + + magento_config_git_repository: git@github.com:myuser/config-magento.git + magento_config_git_branch: master + magento_config_git_private_key: |- + -----BEGIN RSA PRIVATE KEY----- + -----END RSA PRIVATE KEY----- + destination: pipeline/prod-variables.yml + path: pipeline/variables.sample.yml + terraform: + magento: + content: | + variable "rds_password" { + default = "ChangeMePls" + } + + module "magento" { + source = "module-magento" + + env = "prod" + vpc_id = "" + private_subnets_ids = ["private-subnets"] + magento_ssl_cert = "" + bastion_sg_allow = "" + public_subnets_ids = [""] + + rds_password = "${var.rds_password}" + + # project = "magento" + + # FIXME optimized false : should be changes with the instance type ? + + # rds_database = "magento" + # rds_disk_size = 10 + # rds_multiaz = false + # rds_storage_type = "gp2" + # rds_subnet = "" + # rds_type = "db.t2.small" + # rds_username = "magento" + # rds_engine = ""mysql" + # rds_engine_version = "5.7.16" + # rds_backup_retention = 7 + # rds_parameters = "" + + # cache_subnet = "cache-subnet-id" + # elasticache_type = "cache.t2.micro" + # elasticache_nodes = "1 + # elasticache_parameter_group_name = "default.redis3.2" + # elasticache_engine = "redis" + # elasticache_port = "6379" + # front_count = "1" + # front_disk_size = "60" + # front_disk_type = "gp2" + # front_type = "t2.small" + + } + destination: terraform/magento/dev/magento.tf + path: terraform/magento.tf.sample + prod: + ansible: + magento: + content: | + # In this file you could override any variables present in default_front.yaml file + + # Usually you might want to override those variables : + # magento_backend_frontname: admin + # magento_admin_firstname: admin + # magento_admin_lastname: admin + # magento_admin_email: root@localhost.local + # magento_admin_user: admin + + # magento_admin_password: 4Bigs3cr3t + + # In case you want to use vault to encrypt this password use the following command to generate the ansible vault var : + # echo -n "4Bigs3cr3t" | ansible-vault encrypt_string --stdin-name=magento_admin_password + #>> magento_admin_password: !vault | + #>> $ANSIBLE_VAULT;1.1;AES256 + #>> 37363232383334316164366337366430316535636130376134323366313565356365363662653539 + #>> 3161303331303565643831383839626263653362636466660a316530613935393464366536383839 + #>> 30303836326138306339623431356234333239343435623333343333623938633761636132303662 + #>> 3135343861383531660a393934316237363961663865393939313966373838653339326565353263 + #>> 6238 + destination: ansible/environments/prod-front.yml + path: ansible/environments/front.yml.sample + pipeline: + pipeline: + content: | + groups: + + - name: magento-((env)) + jobs: + - magento-((env))-build + - full-deploy-front-magento-((env)) + - app-deploy-front-magento-((env)) + - terraform-plan-magento-((env)) + - terraform-apply-magento-((env)) + - magento-((env))-unittests + - magento-((env))-functional-tests + + resource_types: + + - name: terraform + type: docker-image + source: + repository: ljfranklin/terraform-resource + + resources: + + - name: terraform-magento-((env)) + type: terraform + source: + storage: + bucket: ((terraform_storage_bucket_name)) + bucket_path: ((terraform_storage_bucket_path)) + region_name: ((aws_default_region)) + access_key_id: "((terraform_storage_access_key))" + secret_access_key: "((terraform_storage_secret_key))" + vars: + access_key: ((aws_access_key)) + secret_key: ((aws_secret_key)) + env: + AWS_ACCESS_KEY_ID: ((aws_access_key)) + AWS_DEFAULT_REGION: ((aws_default_region)) + AWS_SECRET_ACCESS_KEY: ((aws_secret_key)) + path: pipeline/magento.yml + variables: + content: | + env: prod + magento_deploy_bucket_name: magento-deploy + magento_deploy_bucket_object_path: /catalog-magento/prod/magento.tar.gz + magento_deploy_bucket_region: eu-west-1 + magento_deploy_bucket_access_key: ... + magento_deploy_bucket_secret_access_key: ... + terraform_storage_access_key: ... + terraform_storage_secret_key: ... + terraform_storage_bucket_name: magento-terraform-remote-state + terraform_storage_bucket_path: magento/prod + aws_access_key: ... + aws_secret_key: ... + aws_default_region: eu-west-1 + + ansible_vault_password: ... + bastion_url: admin@bastion.server.com + bastion_private_key_pair: |- + -----BEGIN RSA PRIVATE KEY----- + -----END RSA PRIVATE KEY----- + + catalog_magento_git_private_key: |- + -----BEGIN RSA PRIVATE KEY----- + -----END RSA PRIVATE KEY----- + + magento_git_repository: git@github.com:myuser/code-magento.git + magento_git_branch: master + magento_git_private_key: |- + -----BEGIN RSA PRIVATE KEY----- + -----END RSA PRIVATE KEY----- + + + magento_config_git_repository: git@github.com:myuser/config-magento.git + magento_config_git_branch: master + magento_config_git_private_key: |- + -----BEGIN RSA PRIVATE KEY----- + -----END RSA PRIVATE KEY----- + destination: pipeline/prod-variables.yml + path: pipeline/variables.sample.yml + terraform: + magento: + content: | + variable "rds_password" { + default = "ChangeMePls" + } + + module "magento" { + source = "module-magento" + + env = "prod" + vpc_id = "" + private_subnets_ids = ["private-subnets"] + magento_ssl_cert = "" + bastion_sg_allow = "" + public_subnets_ids = [""] + + rds_password = "${var.rds_password}" + + # project = "magento" + + # FIXME optimized false : should be changes with the instance type ? + + # rds_database = "magento" + # rds_disk_size = 10 + # rds_multiaz = false + # rds_storage_type = "gp2" + # rds_subnet = "" + # rds_type = "db.t2.small" + # rds_username = "magento" + # rds_engine = ""mysql" + # rds_engine_version = "5.7.16" + # rds_backup_retention = 7 + # rds_parameters = "" + + # cache_subnet = "cache-subnet-id" + # elasticache_type = "cache.t2.micro" + # elasticache_nodes = "1 + # elasticache_parameter_group_name = "default.redis3.2" + # elasticache_engine = "redis" + # elasticache_port = "6379" + # front_count = "1" + # front_disk_size = "60" + # front_disk_type = "gp2" + # front_type = "t2.small" + + } + destination: terraform/magento/prod/magento.tf + path: terraform/magento.tf.sample + schema: + $ref: '#/components/schemas/createFormsConfig_200_response' + description: Set of config to create the project / push onto repositories + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Forms + x-codegen-request-body-name: body + /organizations/{organization_canonical}/projects/{project_canonical}/forms/estimate: + post: + description: Estimates the Cost from the Froms Inputs + operationId: costEstimateForms + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/FormInputs' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/FormInputs' + description: The information of the filled forms for a new project. + required: true + responses: + "200": + content: + application/json: + example: + data: + prod: + usecase: + - info: some potential info here + name: some name + planned_cost: "30.252" + planned_hourly_cost: "0.04144" + prior_cost: "10.544" + prior_hourly_cost: "0.01444" + resource_estimates: + - address: aws_instance.example + components: + - label: Compute + planned: + cost: "5.00" + hourly_cost: "0.00685" + quantity: 1 + prior: + cost: "5.00" + hourly_cost: "0.00685" + quantity: 1 + - label: Storage + planned: + cost: "25.252" + hourly_cost: "0.03459" + quantity: 150 + prior: + cost: "5.544" + hourly_cost: "0.00759" + quantity: 30 + planned_cost: "30.252" + planned_hourly_cost: "0.04144" + prior_cost: "10.544" + prior_hourly_cost: "0.01444" + provider: aws + type: aws_instance + - info: some potential info here + name: some 2 + planned_cost: "30.252" + planned_hourly_cost: "0.04144" + prior_cost: "10.544" + prior_hourly_cost: "0.01444" + resource_estimates: + - address: aws_instance.example + components: + - label: Compute + planned: + cost: "5.00" + hourly_cost: "0.00685" + quantity: 1 + prior: + cost: "5.00" + hourly_cost: "0.00685" + quantity: 1 + - label: Storage + planned: + cost: "25.252" + hourly_cost: "0.03459" + quantity: 150 + prior: + cost: "5.544" + hourly_cost: "0.00759" + quantity: 30 + planned_cost: "30.252" + planned_hourly_cost: "0.04144" + prior_cost: "10.544" + prior_hourly_cost: "0.01444" + provider: aws + type: aws_instance + schema: + $ref: '#/components/schemas/createFormsConfig_200_response' + description: The result of estimating the costs of a stack. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Cost Estimation + x-codegen-request-body-name: body + /organizations/{organization_canonical}/projects/{project_canonical}/forms/quotas: + post: + description: Estimates the Quotas from the Form Inputs + operationId: quotasEstimateForms + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/FormInputs' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/FormInputs' + description: The information of the filled forms for a new project. + required: true + responses: + "200": + content: + application/json: + example: + data: + dev: + usecase-dev: + cpu: 10 + memory: 20 + storage: 30 + prod: + usecase: + cpu: 10 + memory: 20 + storage: 30 + usecase2: + cpu: 20 + memory: 20 + storage: 10 + schema: + $ref: '#/components/schemas/createFormsConfig_200_response' + description: The result of estimating the costs of a stack. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Quotas + x-codegen-request-body-name: body + /organizations/{organization_canonical}/projects/{project_canonical}/import: + delete: + description: Delete the Project Import of the organization. + operationId: deleteProjectImport + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + responses: + "204": + content: {} + description: The Project Import has been deleted. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Infra Imports + get: + description: Get the Project Import of the organization. + operationId: getProjectImport + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + responses: + "200": + content: + application/json: + example: + data: + logs: The Provider1 Resource has been imported + project_canonical: my-project-1 + service_catalog_ref: cycloidio:stack-magento + status: Importing + schema: + $ref: '#/components/schemas/getProjectImport_200_response' + description: The information of the Project import process. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Infra Imports + /organizations/{organization_canonical}/projects/{project_canonical}/import/retry: + put: + description: Retry to import a Project. + operationId: retryProjectImport + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + responses: + "202": + content: {} + description: The request to retry the Project import has been accepted and processing in the background + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Infra Imports + /organizations/{organization_canonical}/projects/{project_canonical}/pipelines: + get: + description: Get the pipelines that the authenticated user has access to. + operationId: getProjectPipelines + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: The page number to request. The first page is 1. + in: query + name: page_index + schema: + default: 1 + format: uint32 + type: integer + - description: The number of items at most which the response can have. + in: query + name: page_size + schema: + default: 1000 + format: uint32 + type: integer + responses: + "200": + content: + application/json: + example: + data: + - created_at: 1500135021 + environment: dev + groups: [] + id: 154 + name: approval-resource + paused: true + project: + canonical: proj-1 + created_at: 1500135021 + id: 5 + name: project1 + service_catalog_ref: cycloidio:stack-magento + updated_at: 1500135021 + public: false + started: true + status: succeeded + team_name: cycloid-products + updated_at: 1500135021 + use_case: approval-resource + - created_at: 1500135021 + environment: dev + groups: + - jobs: + - pr-code-validate + name: pull-requests + resources: [] + - jobs: + - preprod-code-validate + - preprod-build-deploy + name: preprod + resources: [] + id: 196 + name: frontend + paused: false + project: + canonical: proj-1 + created_at: 1500135021 + id: 5 + name: project1 + service_catalog_ref: cycloidio:stack-magento + updated_at: 1500135021 + public: false + started: true + status: failed + team_name: cycloid-products + updated_at: 1500135021 + use_case: frontend-use-case + - created_at: 1500135021 + environment: dev + groups: + - jobs: + - code-validation-preprod + - build-container-preprod + - tag-container-image-preprod + - clean-container-preprod + name: all + resources: [] + - jobs: + - code-validation-preprod + - build-container-preprod + - tag-container-image-preprod + - clean-container-preprod + name: preprod + resources: [] + id: 238 + name: ci-website + paused: true + project: + canonical: proj-1 + created_at: 1500135021 + id: 5 + name: project1 + service_catalog_ref: cycloidio:stack-magento + updated_at: 1500135021 + public: false + started: true + status: pending + team_name: cycloid-products + updated_at: 1500135021 + use_case: website-use-case + pagination: + index: 1 + size: 10 + total: 5 + schema: + $ref: '#/components/schemas/getPipelines_200_response' + description: List of the pipelines which authenticated user has access to. + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization pipelines + post: + description: Create a new pipeline + operationId: createPipeline + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/NewPipeline' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/NewPipeline' + description: The configuration of the pipeline to create. + required: true + responses: + "200": + content: + application/json: + example: + data: + created_at: 1500135021 + environment: dev + groups: + - jobs: + - code-validation-preprod + - build-container-preprod + - tag-container-image-preprod + - clean-container-preprod + name: all + resources: [] + - jobs: + - code-validation-preprod + - build-container-preprod + - tag-container-image-preprod + - clean-container-preprod + name: preprod + resources: [] + id: 238 + name: ci-website + paused: true + project: + canonical: proj-1 + created_at: 1500135021 + id: 5 + name: project1 + service_catalog_ref: cycloidio:stack-magento + updated_at: 1500135021 + public: false + started: false + status: pending + team_name: cycloid-products + updated_at: 1500135021 + use_case: website-ci-use-case + schema: + $ref: '#/components/schemas/createPipeline_200_response' + description: The information of the pipeline which has been created. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "411": + content: {} + description: The request has a body but it doesn't have a Content-Length header. + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization pipelines + x-codegen-request-body-name: body + /organizations/{organization_canonical}/projects/{project_canonical}/pipelines/{inpath_pipeline_name}: + delete: + description: Delete the pipeline. + operationId: deletePipeline + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: A pipeline name + in: path + name: inpath_pipeline_name + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[a-z0-9]+[a-z0-9\-_.]+[a-z0-9]+$ + type: string + responses: + "204": + content: {} + description: Pipeline has been deleted. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization pipelines + get: + description: Get the configuration of the pipeline. + operationId: getPipeline + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: A pipeline name + in: path + name: inpath_pipeline_name + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[a-z0-9]+[a-z0-9\-_.]+[a-z0-9]+$ + type: string + responses: + "200": + content: + application/json: + example: + data: + created_at: 1500135021 + environment: dev + groups: + - jobs: + - code-validation-preprod + - build-container-preprod + - tag-container-image-preprod + - clean-container-preprod + name: all + resources: [] + - jobs: + - code-validation-preprod + - build-container-preprod + - tag-container-image-preprod + - clean-container-preprod + name: preprod + resources: [] + id: 238 + name: ci-website + paused: true + project: + canonical: proj-1 + created_at: 1500135021 + id: 5 + name: project1 + service_catalog_ref: cycloidio:stack-magento + updated_at: 1500135021 + public: false + team_name: cycloid-products + updated_at: 1500135021 + use_case: website-ci-use-case + schema: + $ref: '#/components/schemas/createPipeline_200_response' + description: The information of the pipeline which has the specified name. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization pipelines + put: + description: Update the configuration of the given pipeline name. + operationId: updatePipeline + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: A pipeline name + in: path + name: inpath_pipeline_name + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[a-z0-9]+[a-z0-9\-_.]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/UpdatePipeline' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UpdatePipeline' + description: The pipeline configuration + required: true + responses: + "200": + content: + application/json: + example: + data: + created_at: 1500135021 + environment: dev + groups: + - jobs: + - code-validation-preprod + - build-container-preprod + - tag-container-image-preprod + - clean-container-preprod + name: all + resources: [] + - jobs: + - code-validation-preprod + - build-container-preprod + - tag-container-image-preprod + - clean-container-preprod + name: preprod + resources: [] + id: 238 + name: ci-website + paused: true + project: + canonical: proj-1 + created_at: 1500135021 + id: 5 + name: project1 + service_catalog_ref: cycloidio:stack-magento + updated_at: 1500135021 + public: false + team_name: cycloid-products + updated_at: 1500135021 + use_case: website-ci-use-case + schema: + $ref: '#/components/schemas/createPipeline_200_response' + description: The information of the pipeline which has been updated. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "411": + content: {} + description: The request has a body but it doesn't have a Content-Length header. + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization pipelines + x-codegen-request-body-name: body + /organizations/{organization_canonical}/projects/{project_canonical}/pipelines/{inpath_pipeline_name}/builds/{build_id}/events: + get: + description: Get the events of a build. + operationId: getBuildEvents + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: A pipeline name + in: path + name: inpath_pipeline_name + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[a-z0-9]+[a-z0-9\-_.]+[a-z0-9]+$ + type: string + - description: A build id + in: path + name: build_id + required: true + schema: + maxLength: 20 + minLength: 1 + pattern: ^[0-9]+$ + type: string + responses: + "200": + content: {} + description: Stream is starting + headers: + Content-Type: + schema: + enum: + - text/event-stream + type: string + x-produces: + - text/event-stream + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + text/event-stream: + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + text/event-stream: + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + text/event-stream: + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + security: + - api_key_query: [] + tags: + - Organization pipelines build + /organizations/{organization_canonical}/projects/{project_canonical}/pipelines/{inpath_pipeline_name}/config: + get: + description: Get the YAML configuration of the pipeline. + operationId: getPipelineConfig + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: A pipeline name + in: path + name: inpath_pipeline_name + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[a-z0-9]+[a-z0-9\-_.]+[a-z0-9]+$ + type: string + responses: + "200": + content: + application/json: + example: + data: '{"resources":[{"name":"5m","type":"time","source":{"interval":"5m"}}],"jobs":[{"name":"job-hello-world","public":true,"plan":[{"get":"5m","trigger":true},{"task":"hello-world","privileged":true,"config":{"platform":"linux","image_resource":{"type":"docker-image","source":{"repository":"busybox"}},"run":{"path":"echo","args":["hello world"]}}}]}]}' + schema: + $ref: '#/components/schemas/getPipelineConfig_200_response' + description: This endpoint returns the config of the pipeline. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization pipelines + /organizations/{organization_canonical}/projects/{project_canonical}/pipelines/{inpath_pipeline_name}/jobs: + get: + description: Get the jobs of the pipeline that the authenticated user has access to. + operationId: getJobs + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: A pipeline name + in: path + name: inpath_pipeline_name + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[a-z0-9]+[a-z0-9\-_.]+[a-z0-9]+$ + type: string + - description: The page number to request. The first page is 1. + in: query + name: page_index + schema: + default: 1 + format: uint32 + type: integer + - description: The number of items at most which the response can have. + in: query + name: page_size + schema: + default: 1000 + format: uint32 + type: integer + responses: + "200": + content: + application/json: + example: + data: + - disable_manual_trigger: false + finished_build: + end_time: 1504185134 + id: 11405 + job_name: code-validation-preprod + name: "33" + pipeline_id: 1 + pipeline_name: fake-pipeline-0 + reap_time: 0 + start_time: 1504185102 + status: succeeded + team_name: cycloid-products + first_logged_build_id: 0 + groups: + - all + - preprod + id: 1273 + inputs: + - name: git-website-preprod + passed: [] + resource: git-website-preprod + tags: [] + trigger: true + name: code-validation-preprod + next_build: + id: 11214 + name: some-build + pipeline_id: 1 + pipeline_name: fake-pipeline-0 + status: running + team_name: ieijcu + outputs: [] + paused: false + pipeline_id: 1 + pipeline_name: fake-pipeline-0 + - disable_manual_trigger: false + finished_build: + end_time: 1504185344 + id: 11406 + job_name: build-container-preprod + name: "82" + pipeline_id: 1 + pipeline_name: fake-pipeline-0 + reap_time: 0 + start_time: 1504185240 + status: failed + team_name: cycloid-products + first_logged_build_id: 0 + groups: + - all + - preprod + id: 1274 + inputs: + - name: git-website-preprod + passed: + - code-validation-preprod + resource: git-website-preprod + tags: [] + trigger: true + - name: vault-preprod + passed: [] + resource: vault-preprod + tags: [] + trigger: false + name: build-container-preprod + next_build: + id: 11214 + name: some-build + pipeline_id: 1 + pipeline_name: fake-pipeline-0 + status: running + team_name: ieijcu + outputs: + - name: slack-alert-preprod + resource: slack-alert-preprod + - name: slack-alert-preprod + resource: slack-alert-preprod + - name: ecr-website-preprod + resource: ecr-website-preprod + paused: false + pipeline_id: 1 + pipeline_name: fake-pipeline-0 + - disable_manual_trigger: false + finished_build: + end_time: 1500471211 + id: 10793 + job_name: tag-container-image-preprod + name: "16" + pipeline_id: 1 + pipeline_name: fake-pipeline-0 + reap_time: 0 + start_time: 1500471046 + status: succeeded + team_name: cycloid-products + first_logged_build_id: 0 + groups: + - all + - preprod + id: 1275 + inputs: + - name: git-website-preprod + passed: + - build-container-preprod + resource: git-website-preprod + tags: [] + trigger: false + - name: ecr-website-preprod + passed: + - build-container-preprod + resource: ecr-website-preprod + tags: [] + trigger: true + name: tag-container-image-preprod + next_build: + id: 11214 + name: some-build + pipeline_id: 1 + pipeline_name: fake-pipeline-0 + status: running + team_name: ieijcu + outputs: + - name: ecr-website-preprod + resource: ecr-website-preprod + paused: false + pipeline_id: 1 + pipeline_name: fake-pipeline-0 + - disable_manual_trigger: false + finished_build: + end_time: 1500471305 + id: 10794 + job_name: clean-container-preprod + name: "13" + pipeline_id: 1 + pipeline_name: fake-pipeline-0 + reap_time: 0 + start_time: 1500471262 + status: succeeded + team_name: cycloid-products + first_logged_build_id: 0 + groups: + - all + - preprod + id: 1276 + inputs: + - name: ecr-website-preprod + passed: + - tag-container-image-preprod + resource: ecr-website-preprod + tags: [] + trigger: true + name: clean-container-preprod + next_build: + id: 11214 + name: some-build + pipeline_id: 1 + pipeline_name: fake-pipeline-0 + status: running + team_name: ieijcu + outputs: [] + paused: false + pipeline_id: 1 + pipeline_name: fake-pipeline-0 + pagination: + index: 1 + size: 10 + total: 4 + schema: + $ref: '#/components/schemas/getJobs_200_response' + description: List of the pipeline's jobs which authenticated user has access to. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization pipelines jobs + /organizations/{organization_canonical}/projects/{project_canonical}/pipelines/{inpath_pipeline_name}/jobs/{job_name}: + get: + description: Get the information of the job. + operationId: getJob + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: A pipeline name + in: path + name: inpath_pipeline_name + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[a-z0-9]+[a-z0-9\-_.]+[a-z0-9]+$ + type: string + - description: A job name + in: path + name: job_name + required: true + schema: + maxLength: 150 + minLength: 1 + type: string + responses: + "200": + content: + application/json: + example: + data: + disable_manual_trigger: false + finished_build: + api_url: /api/v1/builds/11406 + end_time: 1504185344 + id: 11406 + job_name: build-container-preprod + name: "82" + pipeline_name: ci-website + reap_time: 0 + start_time: 1504185240 + status: failed + team_name: cycloid-products + first_logged_build_id: 0 + groups: + - all + - preprod + id: 1274 + inputs: + - name: git-website-preprod + passed: + - code-validation-preprod + resource: git-website-preprod + tags: [] + trigger: true + - name: vault-preprod + passed: [] + resource: vault-preprod + tags: [] + trigger: false + name: build-container-preprod + next_build: + api_url: /api/v1/builds/11408 + id: 11214 + name: some-build + status: running + team_name: ieijcu + outputs: + - name: slack-alert-preprod + resource: slack-alert-preprod + - name: slack-alert-preprod + resource: slack-alert-preprod + - name: ecr-website-preprod + resource: ecr-website-preprod + paused: false + schema: + $ref: '#/components/schemas/getJob_200_response' + description: The configuration of the job which has the specified name. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization pipelines jobs + /organizations/{organization_canonical}/projects/{project_canonical}/pipelines/{inpath_pipeline_name}/jobs/{job_name}/builds: + get: + description: Get the pipeline job's builds that the authenticated user has access to. + operationId: getBuilds + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: A pipeline name + in: path + name: inpath_pipeline_name + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[a-z0-9]+[a-z0-9\-_.]+[a-z0-9]+$ + type: string + - description: A job name + in: path + name: job_name + required: true + schema: + maxLength: 150 + minLength: 1 + type: string + - description: The time after which we should look for entities to return. + in: query + name: concourse_page_since + schema: + default: 0 + format: uint64 + type: integer + - description: The time before which we should look for entities to return. + in: query + name: concourse_page_until + schema: + default: 0 + format: uint64 + type: integer + - description: The number of items at most which the response can have. + in: query + name: concourse_page_limit + schema: + default: 10 + format: uint64 + type: integer + responses: + "200": + content: + application/json: + example: + data: + - api_url: /api/v1/builds/11406 + end_time: 1504185344 + id: 11406 + job_name: build-container-preprod + name: "82" + pipeline_id: 3 + pipeline_name: ci-website + reap_time: 0 + start_time: 1504185240 + status: failed + team_name: cycloid-products + - api_url: /api/v1/builds/11404 + end_time: 1504185078 + id: 11404 + job_name: build-container-preprod + name: "81" + pipeline_id: 3 + pipeline_name: ci-website + reap_time: 0 + start_time: 1504184979 + status: failed + team_name: cycloid-products + - api_url: /api/v1/builds/11402 + end_time: 1504184140 + id: 11402 + job_name: build-container-preprod + name: "80" + pipeline_id: 3 + pipeline_name: ci-website + reap_time: 0 + start_time: 1504184038 + status: failed + team_name: cycloid-products + pagination_concourse: + next: + limit: 3 + since: 11402 + until: 0 + previous: + limit: 3 + since: 11508 + until: 0 + schema: + $ref: '#/components/schemas/getBuilds_200_response' + description: List the pipeline job's builds which authenticated user has access to. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization pipelines jobs build + post: + description: Create a new build for the job + operationId: createBuild + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: A pipeline name + in: path + name: inpath_pipeline_name + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[a-z0-9]+[a-z0-9\-_.]+[a-z0-9]+$ + type: string + - description: A job name + in: path + name: job_name + required: true + schema: + maxLength: 150 + minLength: 1 + type: string + responses: + "200": + content: + application/json: + example: + data: + api_url: /api/v1/builds/11406 + end_time: 1504185344 + id: 11406 + job_name: build-container-preprod + name: "82" + pipeline_id: 3 + pipeline_name: ci-website + reap_time: 0 + start_time: 1504185240 + status: failed + team_name: cycloid-products + schema: + $ref: '#/components/schemas/createBuild_200_response' + description: Create a new build for the pipeline's job and returns its details + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization pipelines jobs build + ? /organizations/{organization_canonical}/projects/{project_canonical}/pipelines/{inpath_pipeline_name}/jobs/{job_name}/builds/{build_id} + : get: + description: Get the information of the build. + operationId: getBuild + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: A pipeline name + in: path + name: inpath_pipeline_name + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[a-z0-9]+[a-z0-9\-_.]+[a-z0-9]+$ + type: string + - description: A job name + in: path + name: job_name + required: true + schema: + maxLength: 150 + minLength: 1 + type: string + - description: A build id + in: path + name: build_id + required: true + schema: + maxLength: 20 + minLength: 1 + pattern: ^[0-9]+$ + type: string + responses: + "200": + content: + application/json: + example: + data: + api_url: /api/v1/builds/11406 + end_time: 1504185344 + id: 11406 + job_name: build-container-preprod + name: "82" + pipeline_id: 3 + pipeline_name: ci-website + reap_time: 0 + start_time: 1504185240 + status: failed + team_name: cycloid-products + schema: + $ref: '#/components/schemas/createBuild_200_response' + description: The information of the build which has the specified id. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization pipelines jobs build + post: + description: Reruns a specific build. + operationId: rerunBuild + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: A pipeline name + in: path + name: inpath_pipeline_name + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[a-z0-9]+[a-z0-9\-_.]+[a-z0-9]+$ + type: string + - description: A job name + in: path + name: job_name + required: true + schema: + maxLength: 150 + minLength: 1 + type: string + - description: A build id + in: path + name: build_id + required: true + schema: + maxLength: 20 + minLength: 1 + pattern: ^[0-9]+$ + type: string + responses: + "200": + content: + application/json: + example: + data: + api_url: /api/v1/builds/11406 + end_time: 1504185344 + id: 11406 + job_name: build-container-preprod + name: "82.1" + pipeline_id: 3 + pipeline_name: ci-website + reap_time: 0 + start_time: 1504185240 + status: waiting + team_name: cycloid-products + schema: + $ref: '#/components/schemas/createBuild_200_response' + description: Returns the new build created from the specified build ID. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization pipelines jobs build + ? /organizations/{organization_canonical}/projects/{project_canonical}/pipelines/{inpath_pipeline_name}/jobs/{job_name}/builds/{build_id}/abort + : put: + description: Abort a specific build. + operationId: abortBuild + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: A pipeline name + in: path + name: inpath_pipeline_name + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[a-z0-9]+[a-z0-9\-_.]+[a-z0-9]+$ + type: string + - description: A job name + in: path + name: job_name + required: true + schema: + maxLength: 150 + minLength: 1 + type: string + - description: A build id + in: path + name: build_id + required: true + schema: + maxLength: 20 + minLength: 1 + pattern: ^[0-9]+$ + type: string + responses: + "204": + content: {} + description: The build has been aborted. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization pipelines jobs build + ? /organizations/{organization_canonical}/projects/{project_canonical}/pipelines/{inpath_pipeline_name}/jobs/{job_name}/builds/{build_id}/plan + : get: + description: Get the plan of the build. + operationId: getBuildPlan + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: A pipeline name + in: path + name: inpath_pipeline_name + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[a-z0-9]+[a-z0-9\-_.]+[a-z0-9]+$ + type: string + - description: A job name + in: path + name: job_name + required: true + schema: + maxLength: 150 + minLength: 1 + type: string + - description: A build id + in: path + name: build_id + required: true + schema: + maxLength: 20 + minLength: 1 + pattern: ^[0-9]+$ + type: string + responses: + "200": + content: + application/json: + example: + data: + plan: + do: + - get: + name: concourse + resource: concourse + type: git + version: + ref: 37a827fb8056bfb88848823f49ae8efe9515e2ea + id: 59b6ed1b + - id: 59b6ed1c + task: + name: build + privileged: false + id: 59b6ed1d + schema: exec.v2 + schema: + $ref: '#/components/schemas/getBuildPlan_200_response' + description: The information of the build's plan which has the specified id. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization pipelines jobs build + ? /organizations/{organization_canonical}/projects/{project_canonical}/pipelines/{inpath_pipeline_name}/jobs/{job_name}/builds/{build_id}/preparation + : get: + description: Get the preparation of the Build. + operationId: getBuildPreparation + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: A pipeline name + in: path + name: inpath_pipeline_name + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[a-z0-9]+[a-z0-9\-_.]+[a-z0-9]+$ + type: string + - description: A job name + in: path + name: job_name + required: true + schema: + maxLength: 150 + minLength: 1 + type: string + - description: A build id + in: path + name: build_id + required: true + schema: + maxLength: 20 + minLength: 1 + pattern: ^[0-9]+$ + type: string + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/getBuildPreparation_200_response' + description: Return the Preparation + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization pipelines jobs build + ? /organizations/{organization_canonical}/projects/{project_canonical}/pipelines/{inpath_pipeline_name}/jobs/{job_name}/builds/{build_id}/resources + : get: + description: Get the resources of the build. + operationId: getBuildResources + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: A pipeline name + in: path + name: inpath_pipeline_name + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[a-z0-9]+[a-z0-9\-_.]+[a-z0-9]+$ + type: string + - description: A job name + in: path + name: job_name + required: true + schema: + maxLength: 150 + minLength: 1 + type: string + - description: A build id + in: path + name: build_id + required: true + schema: + maxLength: 20 + minLength: 1 + pattern: ^[0-9]+$ + type: string + - description: The page number to request. The first page is 1. + in: query + name: page_index + schema: + default: 1 + format: uint32 + type: integer + - description: The number of items at most which the response can have. + in: query + name: page_size + schema: + default: 1000 + format: uint32 + type: integer + responses: + "200": + content: + application/json: + example: + data: + inputs: + - first_occurrence: true + metadata: + - name: commit + value: 59ecb8ec73d7c4ea4c3827440ed1429268cf4c94 + - name: author + value: Adrien Jerphagnon + - name: author_date + value: 2017-07-19 15:23:46 +0200 + - name: committer + value: Adrien Jerphagnon + - name: committer_date + value: 2017-07-19 15:23:46 +0200 + - name: branch + value: master + - name: message + value: Up assets version + name: git-website-preprod + pipeline_id: 238 + resource: git-website-preprod + type: git + version: + ref: 59ecb8ec73d7c4ea4c3827440ed1429268cf4c94 + - first_occurrence: true + metadata: [] + name: vault-preprod + pipeline_id: 238 + resource: vault-preprod + type: vault + version: + date: "1500470493" + - first_occurrence: true + metadata: [] + name: vault-preprod + pipeline_id: 238 + resource: vault-preprod + type: vault + version: + date: "1500470521" + outputs: + - enabled: false + id: 0 + metadata: [] + name: website preprod + resource: ecr-website-preprod + type: "" + version: + digest: sha256:58c226280d56dcfe5f7f1de2cce6f22eac36fa95ce8e1b9c604523c4a50d7401 + - enabled: false + id: 0 + metadata: [] + name: slack alert preprod + resource: slack-alert-preprod + type: "" + version: + timestamp: "1500470978" + schema: + $ref: '#/components/schemas/getBuildResources_200_response' + description: The resources of the build's which has the specified id. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization pipelines jobs build + /organizations/{organization_canonical}/projects/{project_canonical}/pipelines/{inpath_pipeline_name}/jobs/{job_name}/pause: + put: + description: Pause a job + operationId: pauseJob + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: A pipeline name + in: path + name: inpath_pipeline_name + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[a-z0-9]+[a-z0-9\-_.]+[a-z0-9]+$ + type: string + - description: A job name + in: path + name: job_name + required: true + schema: + maxLength: 150 + minLength: 1 + type: string + responses: + "204": + content: {} + description: Job has been paused. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization pipelines jobs + ? /organizations/{organization_canonical}/projects/{project_canonical}/pipelines/{inpath_pipeline_name}/jobs/{job_name}/tasks/{step_name}/cache + : delete: + description: Clear task cache + operationId: clearTaskCache + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: A pipeline name + in: path + name: inpath_pipeline_name + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[a-z0-9]+[a-z0-9\-_.]+[a-z0-9]+$ + type: string + - description: A job name + in: path + name: job_name + required: true + schema: + maxLength: 150 + minLength: 1 + type: string + - description: A step name from a job task + in: path + name: step_name + required: true + schema: + maxLength: 150 + minLength: 1 + type: string + - description: The cache path to use as part of a clearTaskCache request + in: query + name: cache_path + schema: + type: string + responses: + "200": + content: + application/json: + example: + data: + caches_removed: 42 + schema: + $ref: '#/components/schemas/clearTaskCache_200_response' + description: Cache has been cleared. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization pipelines jobs + /organizations/{organization_canonical}/projects/{project_canonical}/pipelines/{inpath_pipeline_name}/jobs/{job_name}/unpause: + put: + description: Unpause a job + operationId: unpauseJob + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: A pipeline name + in: path + name: inpath_pipeline_name + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[a-z0-9]+[a-z0-9\-_.]+[a-z0-9]+$ + type: string + - description: A job name + in: path + name: job_name + required: true + schema: + maxLength: 150 + minLength: 1 + type: string + responses: + "204": + content: {} + description: Job has been unpause. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization pipelines jobs + /organizations/{organization_canonical}/projects/{project_canonical}/pipelines/{inpath_pipeline_name}/pause: + put: + description: Pause a pipeline + operationId: pausePipeline + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: A pipeline name + in: path + name: inpath_pipeline_name + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[a-z0-9]+[a-z0-9\-_.]+[a-z0-9]+$ + type: string + responses: + "204": + content: {} + description: Pipeline has been paused. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization pipelines + /organizations/{organization_canonical}/projects/{project_canonical}/pipelines/{inpath_pipeline_name}/rename: + put: + description: Rename a pipeline + operationId: renamePipeline + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: A pipeline name + in: path + name: inpath_pipeline_name + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[a-z0-9]+[a-z0-9\-_.]+[a-z0-9]+$ + type: string + - description: A pipeline name + in: query + name: pipeline_name + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[a-z0-9]+[a-z0-9\-_.]+[a-z0-9]+$ + type: string + responses: + "204": + content: {} + description: Pipeline has been renamed. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization pipelines + /organizations/{organization_canonical}/projects/{project_canonical}/pipelines/{inpath_pipeline_name}/resources: + get: + description: Get the resources of the pipeline. + operationId: getPipelineResources + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: A pipeline name + in: path + name: inpath_pipeline_name + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[a-z0-9]+[a-z0-9\-_.]+[a-z0-9]+$ + type: string + - description: The page number to request. The first page is 1. + in: query + name: page_index + schema: + default: 1 + format: uint32 + type: integer + - description: The number of items at most which the response can have. + in: query + name: page_size + schema: + default: 1000 + format: uint32 + type: integer + responses: + "200": + content: + application/json: + example: + data: + - check_error: "" + failing_to_check: false + groups: [] + name: ecr-website-preprod + paused: false + type: docker-image + - check_error: "" + failing_to_check: false + groups: [] + name: git-website-preprod + paused: false + type: git + - check_error: "" + failing_to_check: false + groups: [] + name: vault-preprod + paused: false + type: vault + - check_error: "" + failing_to_check: false + groups: [] + name: slack-alert-preprod + paused: false + type: slack-notification + pagination: + index: 1 + size: 10 + total: 4 + schema: + $ref: '#/components/schemas/getPipelineResources_200_response' + description: The resources of the pipeline's which has the specified name. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization pipelines resources + /organizations/{organization_canonical}/projects/{project_canonical}/pipelines/{inpath_pipeline_name}/resources/{resource_name}: + get: + description: Get a specific resource of the pipeline. + operationId: getResource + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: A pipeline name + in: path + name: inpath_pipeline_name + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[a-z0-9]+[a-z0-9\-_.]+[a-z0-9]+$ + type: string + - description: A resource name + in: path + name: resource_name + required: true + schema: + maxLength: 150 + minLength: 1 + type: string + responses: + "200": + content: + application/json: + example: + data: + check_error: "" + failing_to_check: false + groups: [] + name: ecr-website-preprod + paused: false + type: docker-image + schema: + $ref: '#/components/schemas/getResource_200_response' + description: The resource of the pipeline's which has the specified name. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization pipelines resources + ? /organizations/{organization_canonical}/projects/{project_canonical}/pipelines/{inpath_pipeline_name}/resources/{resource_name}/check + : post: + description: Trigger a check for a specified resource. + operationId: checkResource + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: A pipeline name + in: path + name: inpath_pipeline_name + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[a-z0-9]+[a-z0-9\-_.]+[a-z0-9]+$ + type: string + - description: A resource name + in: path + name: resource_name + required: true + schema: + maxLength: 150 + minLength: 1 + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/CIVersion' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/CIVersion' + description: Check for new version from the specified version. + required: false + responses: + "200": + content: + application/json: + example: + data: + api_url: /api/v1/builds/62 + id: 62 + name: check + pipeline_id: 1 + pipeline_name: pipeline1 + resource_name: 5m + start_time: 1630426278 + status: started + team_name: 1359872e-88fe-47a7-8c55-923108823a55 + schema: + $ref: '#/components/schemas/createBuild_200_response' + description: The resource checked result. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization pipelines resources + x-codegen-request-body-name: body + ? /organizations/{organization_canonical}/projects/{project_canonical}/pipelines/{inpath_pipeline_name}/resources/{resource_name}/pin_comment + : put: + description: Set pin comment on a specified resource + operationId: resourceSetPinComment + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: A pipeline name + in: path + name: inpath_pipeline_name + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[a-z0-9]+[a-z0-9\-_.]+[a-z0-9]+$ + type: string + - description: A resource name + in: path + name: resource_name + required: true + schema: + maxLength: 150 + minLength: 1 + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/PinComment' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PinComment' + description: Specify the comment to put on a pinned resource. + required: true + responses: + "204": + content: {} + description: Resource pin has been commented + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization pipelines resources + x-codegen-request-body-name: body + ? /organizations/{organization_canonical}/projects/{project_canonical}/pipelines/{inpath_pipeline_name}/resources/{resource_name}/unpin + : put: + description: Unpin a specified resource + operationId: unpinResource + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: A pipeline name + in: path + name: inpath_pipeline_name + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[a-z0-9]+[a-z0-9\-_.]+[a-z0-9]+$ + type: string + - description: A resource name + in: path + name: resource_name + required: true + schema: + maxLength: 150 + minLength: 1 + type: string + responses: + "204": + content: {} + description: Resource has been unpinned + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization pipelines resources + ? /organizations/{organization_canonical}/projects/{project_canonical}/pipelines/{inpath_pipeline_name}/resources/{resource_name}/versions + : get: + description: Get versions of a pipeline's resource + operationId: getResourceVersions + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: A pipeline name + in: path + name: inpath_pipeline_name + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[a-z0-9]+[a-z0-9\-_.]+[a-z0-9]+$ + type: string + - description: A resource name + in: path + name: resource_name + required: true + schema: + maxLength: 150 + minLength: 1 + type: string + - description: A version of a resource + explode: false + in: query + name: filter_version + schema: + items: + type: string + type: array + style: form + - description: The time after which we should look for entities to return. + in: query + name: concourse_page_since + schema: + default: 0 + format: uint64 + type: integer + - description: The time before which we should look for entities to return. + in: query + name: concourse_page_until + schema: + default: 0 + format: uint64 + type: integer + - description: The number of items at most which the response can have. + in: query + name: concourse_page_limit + schema: + default: 10 + format: uint64 + type: integer + responses: + "200": + content: + application/json: + example: + data: + - enabled: true + id: 45 + resource: time-resource + type: time + version: + time: 2018-06-07T16:12:02.037357287Z + - enabled: true + id: 46 + resource: time-resource + type: time + version: + time: 2018-06-07T16:13:02.037357287Z + pagination_concourse: + next: + limit: 3 + since: 11402 + until: 0 + previous: + limit: 3 + since: 11896 + until: 0 + schema: + $ref: '#/components/schemas/getResourceVersions_200_response' + description: Get versions of a specified resource. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization pipelines resources + ? /organizations/{organization_canonical}/projects/{project_canonical}/pipelines/{inpath_pipeline_name}/resources/{resource_name}/versions/{resource_version_id}/disable + : put: + description: Disable a specified version of a resource + operationId: disableResourceVersion + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: A pipeline name + in: path + name: inpath_pipeline_name + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[a-z0-9]+[a-z0-9\-_.]+[a-z0-9]+$ + type: string + - description: A resource name + in: path + name: resource_name + required: true + schema: + maxLength: 150 + minLength: 1 + type: string + - description: A resource's version id + in: path + name: resource_version_id + required: true + schema: + format: uint64 + type: integer + responses: + "204": + content: {} + description: Resource version have been disabled + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization pipelines resources + ? /organizations/{organization_canonical}/projects/{project_canonical}/pipelines/{inpath_pipeline_name}/resources/{resource_name}/versions/{resource_version_id}/enable + : put: + description: Enable a specified version of a resource + operationId: enableResourceVersion + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: A pipeline name + in: path + name: inpath_pipeline_name + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[a-z0-9]+[a-z0-9\-_.]+[a-z0-9]+$ + type: string + - description: A resource name + in: path + name: resource_name + required: true + schema: + maxLength: 150 + minLength: 1 + type: string + - description: A resource's version id + in: path + name: resource_version_id + required: true + schema: + format: uint64 + type: integer + responses: + "204": + content: {} + description: Resource version have been enabled + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization pipelines resources + ? /organizations/{organization_canonical}/projects/{project_canonical}/pipelines/{inpath_pipeline_name}/resources/{resource_name}/versions/{resource_version_id}/input_to + : get: + description: Get builds that used a specified resource version as input. + operationId: getBuildsWithVersionAsInput + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: A pipeline name + in: path + name: inpath_pipeline_name + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[a-z0-9]+[a-z0-9\-_.]+[a-z0-9]+$ + type: string + - description: A resource name + in: path + name: resource_name + required: true + schema: + maxLength: 150 + minLength: 1 + type: string + - description: A resource's version id + in: path + name: resource_version_id + required: true + schema: + format: uint64 + type: integer + responses: + "200": + content: + application/json: + example: + data: + - api_url: /api/v1/builds/11406 + end_time: 1504185344 + id: 11406 + job_name: build-container-preprod + name: "82" + pipeline_id: 3 + pipeline_name: ci-website + reap_time: 0 + start_time: 1504185240 + status: failed + team_name: cycloid-products + - api_url: /api/v1/builds/11404 + end_time: 1504185078 + id: 11404 + job_name: build-container-preprod + name: "81" + pipeline_id: 3 + pipeline_name: ci-website + reap_time: 0 + start_time: 1504184979 + status: failed + team_name: cycloid-products + schema: + $ref: '#/components/schemas/getBuildsWithVersionAsInput_200_response' + description: The resource of the pipeline's which has the specified name. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization pipelines resources + ? /organizations/{organization_canonical}/projects/{project_canonical}/pipelines/{inpath_pipeline_name}/resources/{resource_name}/versions/{resource_version_id}/output_of + : get: + description: Get builds that used a specified resource version as output. + operationId: getBuildsWithVersionAsOutput + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: A pipeline name + in: path + name: inpath_pipeline_name + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[a-z0-9]+[a-z0-9\-_.]+[a-z0-9]+$ + type: string + - description: A resource name + in: path + name: resource_name + required: true + schema: + maxLength: 150 + minLength: 1 + type: string + - description: A resource's version id + in: path + name: resource_version_id + required: true + schema: + format: uint64 + type: integer + responses: + "200": + content: + application/json: + example: + data: + - api_url: /api/v1/builds/11406 + end_time: 1504185344 + id: 11406 + job_name: build-container-preprod + name: "82" + pipeline_id: 3 + pipeline_name: ci-website + reap_time: 0 + start_time: 1504185240 + status: failed + team_name: cycloid-products + - api_url: /api/v1/builds/11404 + end_time: 1504185078 + id: 11404 + job_name: build-container-preprod + name: "81" + pipeline_id: 3 + pipeline_name: ci-website + reap_time: 0 + start_time: 1504184979 + status: failed + team_name: cycloid-products + schema: + $ref: '#/components/schemas/getBuildsWithVersionAsInput_200_response' + description: The resource of the pipeline's which has the specified name. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization pipelines resources + ? /organizations/{organization_canonical}/projects/{project_canonical}/pipelines/{inpath_pipeline_name}/resources/{resource_name}/versions/{resource_version_id}/pin + : put: + description: Pin a specified version of a resource + operationId: pinResourceVersion + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: A pipeline name + in: path + name: inpath_pipeline_name + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[a-z0-9]+[a-z0-9\-_.]+[a-z0-9]+$ + type: string + - description: A resource name + in: path + name: resource_name + required: true + schema: + maxLength: 150 + minLength: 1 + type: string + - description: A resource's version id + in: path + name: resource_version_id + required: true + schema: + format: uint64 + type: integer + responses: + "204": + content: {} + description: Resource version has been pinned + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization pipelines resources + /organizations/{organization_canonical}/projects/{project_canonical}/pipelines/{inpath_pipeline_name}/unpause: + put: + description: Unpause a pipeline + operationId: unpausePipeline + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: A pipeline name + in: path + name: inpath_pipeline_name + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[a-z0-9]+[a-z0-9\-_.]+[a-z0-9]+$ + type: string + responses: + "204": + content: {} + description: Pipeline has been unpaused. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization pipelines + /organizations/{organization_canonical}/projects/{project_canonical}/pipelines/{inpath_pipeline_name}/variables: + get: + description: Get the YAML variables of the pipeline. + operationId: getPipelineVariables + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: A pipeline name + in: path + name: inpath_pipeline_name + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[a-z0-9]+[a-z0-9\-_.]+[a-z0-9]+$ + type: string + responses: + "200": + content: + application/json: + example: + data: + has_saved_yaml_vars: true + yaml_vars: 'var1: some_var' + schema: + $ref: '#/components/schemas/getPipelineVariables_200_response' + description: This endpoint returns the variables of the pipeline. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "409": + content: {} + description: Project has no config repository configured + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization pipelines + /organizations/{organization_canonical}/quotas: + get: + description: List of quotas available in the organization. + operationId: listQuotas + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: The page number to request. The first page is 1. + in: query + name: page_index + schema: + default: 1 + format: uint32 + type: integer + - description: The number of items at most which the response can have. + in: query + name: page_size + schema: + default: 1000 + format: uint32 + type: integer + responses: + "200": + content: + application/json: + example: + data: + - cpu: 11 + id: 17 + memory: 10 + storage: 12 + used_cpu: 11 + used_memory: 10 + used_storage: 12 + - cpu: 11 + id: 2 + memory: 10 + storage: 12 + used_cpu: 11 + used_memory: 10 + used_storage: 12 + pagination: + index: 1 + size: 10 + total: 2 + schema: + $ref: '#/components/schemas/listQuotas_200_response' + description: List of quotas which are available in the organization. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Quotas + post: + description: Create a new quota available in the organization. + operationId: createQuota + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/NewQuota' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/NewQuota' + description: The information of the organization's quota to create. + required: true + responses: + "200": + content: + application/json: + example: + data: + cpu: 11 + id: 17 + memory: 10 + storage: 12 + used_cpu: 11 + used_memory: 10 + used_storage: 12 + schema: + $ref: '#/components/schemas/createQuota_200_response' + description: New quota created in the organization. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Quotas + x-codegen-request-body-name: body + /organizations/{organization_canonical}/quotas/{quota_id}: + delete: + description: Delete an existing quota in the organization. + operationId: deleteQuota + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: Quota ID + in: path + name: quota_id + required: true + schema: + format: uint32 + type: integer + responses: + "204": + content: {} + description: Organization quota has been deleted. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Quotas + get: + description: Get the quota available in the organization with an canonical + operationId: getQuota + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: Quota ID + in: path + name: quota_id + required: true + schema: + format: uint32 + type: integer + responses: + "200": + content: + application/json: + example: + data: + cpu: 11 + id: 17 + memory: 10 + storage: 12 + used_cpu: 11 + used_memory: 10 + used_storage: 12 + schema: + $ref: '#/components/schemas/createQuota_200_response' + description: Quota available in the organization with such canonical. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Quotas + put: + description: Update an existing quota in the organization. + operationId: updateQuota + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: Quota ID + in: path + name: quota_id + required: true + schema: + format: uint32 + type: integer + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/UpdateQuota' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UpdateQuota' + description: The information of the organization's quota to update. + required: true + responses: + "200": + content: + application/json: + example: + data: + cpu: 11 + memory: 10 + storage: 12 + used_cpu: 11 + used_memory: 10 + used_storage: 12 + schema: + $ref: '#/components/schemas/createQuota_200_response' + description: Updated quota belonging to the organization. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Quotas + x-codegen-request-body-name: body + /organizations/{organization_canonical}/quotas/{quota_id}/consumptions: + get: + description: Get the quota consumptions by project and environment + operationId: listQuotaConsumptions + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: Quota ID + in: path + name: quota_id + required: true + schema: + format: uint32 + type: integer + responses: + "200": + content: + application/json: + example: + data: + cpu: 11 + environment: + canonical: dev + cloud_provider: + abbreviation: AWS + canonical: aws + name: Amazon Web Services + created_at: 1503225026 + id: 3 + updated_at: 1503335026 + id: 17 + memory: 10 + project: + canonical: proj2 + created_at: 1501131026 + id: 1 + name: prj + owner: + created_at: 1503225026 + email: mariano.jimenez@fakeemail.com + family_name: Jimenez + given_name: Mariano + id: 1 + picture_url: https://avatars2.githubusercontent.com/u/14579210 + username: user-1 + updated_at: 1503333026 + storage: 12 + schema: + $ref: '#/components/schemas/listQuotaConsumptions_200_response' + description: Quota available in the organization with such canonical. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Quotas + /organizations/{organization_canonical}/resource_pools: + get: + description: List of resource pools available in the organization. + operationId: listResourcePools + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: The page number to request. The first page is 1. + in: query + name: page_index + schema: + default: 1 + format: uint32 + type: integer + - description: The number of items at most which the response can have. + in: query + name: page_size + schema: + default: 1000 + format: uint32 + type: integer + responses: + "200": + content: + application/json: + example: + data: + - allocated_cpu: 11 + allocated_memory: 10 + allocated_storage: 12 + canonical: prod_pool + cpu: 11 + id: 17 + label: production + memory: 10 + name: Prod Pool + storage: 12 + used_cpu: 11 + used_memory: 10 + used_storage: 12 + - allocated_cpu: 11 + allocated_memory: 10 + allocated_storage: 12 + canonical: staging_pool + cpu: 11 + id: 2 + label: staging + memory: 10 + name: Stating Pool + storage: 12 + used_cpu: 11 + used_memory: 10 + used_storage: 12 + pagination: + index: 1 + size: 10 + total: 2 + schema: + $ref: '#/components/schemas/listResourcePools_200_response' + description: List of resource pools which are available in the organization. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Resource Pools + post: + description: Create a new resource pool available in the organization. + operationId: createResourcePool + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/NewResourcePool' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/NewResourcePool' + description: The information of the organization's resource_pool to create. + required: true + responses: + "200": + content: + application/json: + example: + data: + canonical: resource_pool_can + label: staging + name: existing + schema: + $ref: '#/components/schemas/createResourcePool_200_response' + description: New resource pool created in the organization. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Resource Pools + x-codegen-request-body-name: body + /organizations/{organization_canonical}/resource_pools/{resource_pool_canonical}: + delete: + description: Delete an existing resource_pool in the organization. + operationId: deleteResourcePool + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: Organization Resource Pool canonical + in: path + name: resource_pool_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + "204": + content: {} + description: Organization resource_pool has been deleted. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Resource Pools + get: + description: Get the resource pool available in the organization with an canonical + operationId: getResourcePool + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: Organization Resource Pool canonical + in: path + name: resource_pool_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + "200": + content: + application/json: + example: + data: + allocated_cpu: 11 + allocated_memory: 10 + allocated_storage: 12 + canonical: prod_pool + cpu: 11 + id: 17 + label: production + memory: 10 + name: Prod Pool + storage: 12 + used_cpu: 11 + used_memory: 10 + used_storage: 12 + schema: + $ref: '#/components/schemas/createResourcePool_200_response' + description: ResourcePool available in the organization with such canonical. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization ResourcePools + put: + description: Update an existing resource_pool in the organization. + operationId: updateResourcePool + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: Organization Resource Pool canonical + in: path + name: resource_pool_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/NewResourcePool' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/NewResourcePool' + description: The information of the organization's resource_pool to update. + required: true + responses: + "200": + content: + application/json: + example: + data: + allocated_cpu: 11 + allocated_memory: 10 + allocated_storage: 12 + canonical: prod_pool + cpu: 11 + id: 17 + label: production + memory: 10 + name: Prod Pool + storage: 12 + used_cpu: 11 + used_memory: 10 + used_storage: 12 + schema: + $ref: '#/components/schemas/createResourcePool_200_response' + description: Updated resource pool belonging to the organization. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Resource Pools + x-codegen-request-body-name: body + /organizations/{organization_canonical}/roles: + get: + description: Get the list of roles available in the organization. + operationId: getRoles + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: The page number to request. The first page is 1. + in: query + name: page_index + schema: + default: 1 + format: uint32 + type: integer + - description: The number of items at most which the response can have. + in: query + name: page_size + schema: + default: 1000 + format: uint32 + type: integer + responses: + "200": + content: + application/json: + example: + data: + - canonical: role-can + description: Organization existing role + id: 17 + name: existing + rules: + - action: organization:delete + effect: allow + id: 1 + resources: + - organization:org-can + - organization:org-can2 + - action: organization:team:create + effect: allow + id: 20 + resources: [] + - action: organization:team:read + effect: allow + id: 21 + resources: + - organization:org-can:team:team-can + - canonical: role-can2 + description: A project manager + id: 2 + name: project manager + rules: + - action: organization:team:create + effect: allow + id: 20 + resources: [] + - action: organization:team:read + effect: allow + id: 21 + resources: + - organization:org-can:team:team-can + pagination: + index: 1 + size: 10 + total: 2 + schema: + $ref: '#/components/schemas/getRoles_200_response' + description: List of roles which are available in the organization. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Roles + post: + description: Create a new role available in the organization. + operationId: createRole + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/NewRole' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/NewRole' + description: The information of the organization's role to create. + required: true + responses: + "200": + content: + application/json: + example: + data: + canonical: role-can + description: Organization existing role + id: 17 + name: existing + rules: + - action: organization:delete + effect: allow + id: 1 + resources: + - organization:org-can + - organization:org-can2 + - action: organization:team:create + effect: allow + id: 20 + resources: [] + - action: organization:team:read + effect: allow + id: 21 + resources: + - organization:org-can:team:team-can + schema: + $ref: '#/components/schemas/createRole_200_response' + description: New role created in the organization. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Roles + x-codegen-request-body-name: body + /organizations/{organization_canonical}/roles/{role_canonical}: + delete: + description: Delete an existing role in the organization. + operationId: deleteRole + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: Organization Role canonical + in: path + name: role_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + "204": + content: {} + description: Organization role has been deleted. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Roles + get: + description: Get the role available in the organization with an canonical + operationId: getRole + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: Organization Role canonical + in: path + name: role_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + "200": + content: + application/json: + example: + data: + canonical: role-can + description: Organization existing role + id: 17 + name: existing + rules: + - action: organization:delete + effect: allow + id: 1 + resources: + - organization:org-can + - organization:org-can2 + - action: organization:team:create + effect: allow + id: 20 + resources: [] + - action: organization:team:read + effect: allow + id: 21 + resources: + - organization:org-can:team:team-can + schema: + $ref: '#/components/schemas/getRole_200_response' + description: Role available in the organization with such canonical. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Roles + put: + description: Update an existing role in the organization. + operationId: updateRole + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: Organization Role canonical + in: path + name: role_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/NewRole' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/NewRole' + description: The information of the organization's role to update. + required: true + responses: + "200": + content: + application/json: + example: + data: + canonical: role-can + description: Organization existing role + id: 17 + name: existing + rules: + - action: organization:delete + effect: allow + id: 1 + resources: + - organization:org-can + - organization:org-can2 + - action: organization:team:create + effect: allow + id: 20 + resources: [] + - action: organization:team:read + effect: allow + id: 21 + resources: + - organization:org-can:team:team-can + schema: + $ref: '#/components/schemas/getRole_200_response' + description: Updated role belonging to the organization. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Roles + x-codegen-request-body-name: body + /organizations/{organization_canonical}/service_catalog_sources: + get: + description: Return all the private service catalogs + operationId: getServiceCatalogSources + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: The page number to request. The first page is 1. + in: query + name: page_index + schema: + default: 1 + format: uint32 + type: integer + - description: The number of items at most which the response can have. + in: query + name: page_size + schema: + default: 1000 + format: uint32 + type: integer + responses: + "200": + content: + application/json: + example: + data: + - branch: my-favourite-branch + canonical: my-personal-repo + created_at: 1503225026 + credential_id: 1 + id: 1 + name: My personal repo + owner: + created_at: 1503225026 + email: mariano.jimenez@fakeemail.com + family_name: Jimenez + given_name: Mariano + id: 1 + picture_url: https://avatars2.githubusercontent.com/u/14579210 + role: + description: A developer of the team + id: 3 + name: developer + policies: + - code: team:read + description: Grant the access to read the teams of an organization + entities: [] + id: 21 + - code: member:read + description: Grant the access to read the members + entities: [] + id: 42 + username: user-1 + service_catalogs: + - author: Cycloid CI + canonical: stack-foo + description: CI sample + directory: /config + id: 1 + keywords: + - ci + name: foo + ref: cycloid:stack-foo + service_catalog_source_id: 1 + trusted: true + stack_count: 1 + updated_at: 1503335026 + url: git@github.com:myuser/repository.git + - branch: my-second-favourite-branch + canonical: my-personal-repo-2 + created_at: 1503225026 + id: 2 + name: My personal repo 2 + owner: + created_at: 1503225026 + email: mariano.jimenez@fakeemail.com + family_name: Jimenez + given_name: Mariano + id: 1 + picture_url: https://avatars2.githubusercontent.com/u/14579210 + role: + description: A developer of the team + id: 3 + name: developer + policies: + - code: team:read + description: Grant the access to read the teams of an organization + entities: [] + id: 21 + - code: member:read + description: Grant the access to read the members + entities: [] + id: 42 + - code: project:read + description: Grant the access to projects + entities: [] + id: 60 + username: user-1 + service_catalogs: + - author: Cycloid CI + canonical: stack-bar + description: CI sample + directory: /cfg + id: 2 + keywords: + - ci + name: bar + ref: cycloid:stack-bar + service_catalog_source_id: 2 + trusted: true + stack_count: 4 + updated_at: 1503335026 + url: https://github.com/cycloid-community-catalog/stack-dummy.git + pagination: + index: 1 + size: 10 + total: 2 + schema: + $ref: '#/components/schemas/getServiceCatalogSources_200_response' + description: List of the private service catalogs. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Service Catalog Sources + post: + description: Creates a Service catalog source + operationId: createServiceCatalogSource + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/NewServiceCatalogSource' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/NewServiceCatalogSource' + description: The information of the organization to create. + required: true + responses: + "200": + content: + application/json: + example: + data: + branch: my-scs-branch + canonical: my-personal-repo + created_at: 1503225026 + credential_id: 1 + id: 1 + name: My personal repo + owner: + created_at: 1503225026 + email: mariano.jimenez@fakeemail.com + family_name: Jimenez + given_name: Mariano + id: 1 + picture_url: https://avatars2.githubusercontent.com/u/14579210 + role: + description: A developer of the team + id: 3 + name: developer + policies: + - code: team:read + description: Grant the access to read the teams of an organization + entities: [] + id: 21 + - code: member:read + description: Grant the access to read the members + entities: [] + id: 42 + - code: project:read + description: Grant the access to projects + entities: [] + id: 60 + username: user-1 + service_catalogs: + - author: Cycloid CI + canonical: stack-foo + description: CI sample + directory: /config + id: 1 + keywords: + - ci + name: foo + ref: cycloid:stack-foo + service_catalog_source_id: 1 + trusted: true + stack_count: 1 + updated_at: 1503335026 + url: git@github.com:myuser/repository.git + schema: + $ref: '#/components/schemas/createServiceCatalogSource_200_response' + description: Success creation + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "411": + content: {} + description: The request has a body but it doesn't have a Content-Length header. + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Service Catalog Sources + x-codegen-request-body-name: body + /organizations/{organization_canonical}/service_catalog_sources/{service_catalog_source_canonical}: + delete: + description: delete a Service catalog source + operationId: deleteServiceCatalogSource + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: Organization Service Catalog Sources canonical + in: path + name: service_catalog_source_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + "204": + content: {} + description: Organization Service Catalog Sources has been deleted + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Service Catalog Sources + get: + description: Return the Service Catalog Source + operationId: getServiceCatalogSource + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: Organization Service Catalog Sources canonical + in: path + name: service_catalog_source_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: The page number to request. The first page is 1. + in: query + name: page_index + schema: + default: 1 + format: uint32 + type: integer + - description: The number of items at most which the response can have. + in: query + name: page_size + schema: + default: 1000 + format: uint32 + type: integer + responses: + "200": + content: + application/json: + example: + data: + branch: my-scs-branch + canonical: my-personal-repo + created_at: 1503225026 + credential_id: 1 + id: 1 + name: My personal repo + owner: + created_at: 1503225026 + email: mariano.jimenez@fakeemail.com + family_name: Jimenez + given_name: Mariano + id: 1 + picture_url: https://avatars2.githubusercontent.com/u/14579210 + role: + description: A developer of the team + id: 3 + name: developer + policies: + - code: team:read + description: Grant the access to read the teams of an organization + entities: [] + id: 21 + - code: member:read + description: Grant the access to read the members + entities: [] + id: 42 + username: user-1 + service_catalogs: + - author: Cycloid CI + canonical: stack-foo + description: CI sample + directory: /config + id: 1 + keywords: + - ci + name: foo + ref: cycloid:stack-foo + service_catalog_source_id: 1 + trusted: true + stack_count: 1 + updated_at: 1503335026 + url: git@github.com:myuser/repository.git + schema: + $ref: '#/components/schemas/createServiceCatalogSource_200_response' + description: Organization Service Catalog Sources. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Service Catalog Sources + put: + description: Update a Service catalog source + operationId: updateServiceCatalogSource + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: Organization Service Catalog Sources canonical + in: path + name: service_catalog_source_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/UpdateServiceCatalogSource' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UpdateServiceCatalogSource' + description: The information of the organization to create. + required: true + responses: + "200": + content: + application/json: + example: + data: + branch: my-favourite-branch + canonical: my-personal-repo + created_at: 1503225026 + credential_id: 1 + id: 1 + name: My personal repo + owner: + created_at: 1503225026 + email: mariano.jimenez@fakeemail.com + family_name: Jimenez + given_name: Mariano + id: 1 + picture_url: https://avatars2.githubusercontent.com/u/14579210 + role: + description: A developer of the team + id: 3 + name: developer + policies: + - code: team:read + description: Grant the access to read the teams of an organization + entities: [] + id: 21 + - code: member:read + description: Grant the access to read the members + entities: [] + id: 42 + username: user-1 + service_catalogs: + created: + - author: Cycloid CI + canonical: stack-foo + description: CI sample + directory: /config + id: 1 + keywords: + - ci + name: foo + ref: cycloid:stack-foo + service_catalog_source_id: 1 + trusted: true + deleted: + - author: Cycloid CI + canonical: stack-foo3 + description: CI sample + directory: / + id: 3 + keywords: + - ci + name: fo3 + ref: cycloid:stack-foo3 + service_catalog_source_id: 1 + trusted: true + updated: + - author: Cycloid CI + canonical: stack-foo2 + description: CI sample + directory: /config/prod + id: 2 + keywords: + - ci + name: foo2 + ref: cycloid:stack-foo2 + service_catalog_source_id: 1 + trusted: true + stack_count: 1 + updated_at: 1503335026 + url: git@github.com:myuser/repository.git + schema: + $ref: '#/components/schemas/createServiceCatalogSource_200_response' + description: Success update + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "411": + content: {} + description: The request has a body but it doesn't have a Content-Length header. + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Service Catalog Sources + x-codegen-request-body-name: body + /organizations/{organization_canonical}/service_catalog_sources/{service_catalog_source_canonical}/refresh: + post: + description: Refresh a Service catalog source + operationId: refreshServiceCatalogSource + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: Organization Service Catalog Sources canonical + in: path + name: service_catalog_source_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + "200": + content: + application/json: + example: + data: + branch: my-favourite-branch + canonical: my-personal-repo + changes: + created: + - author: Cycloid CI + canonical: stack-foo + description: CI sample + directory: /config + id: 1 + keywords: + - ci + name: foo + ref: cycloid:stack-foo + service_catalog_source_id: 1 + trusted: true + deleted: + - author: Cycloid CI + canonical: stack-foo3 + description: CI sample + directory: / + id: 3 + keywords: + - ci + name: fo3 + ref: cycloid:stack-foo3 + service_catalog_source_id: 1 + trusted: true + updated: + - author: Cycloid CI + canonical: stack-foo2 + description: CI sample + directory: /config/prod + id: 2 + keywords: + - ci + name: foo2 + ref: cycloid:stack-foo2 + service_catalog_source_id: 1 + trusted: true + created_at: 1503225026 + credential_id: 1 + id: 1 + name: My personal repo + updated_at: 1503335026 + url: git@github.com:cycloidio/youdeploy-http-api.git + schema: + $ref: '#/components/schemas/refreshServiceCatalogSource_200_response' + description: Success refresh + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "411": + content: {} + description: The request has a body but it doesn't have a Content-Length header. + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Service Catalog Sources + /organizations/{organization_canonical}/service_catalog_sources/{service_catalog_source_canonical}/validate: + post: + description: Validate a Service catalog source + operationId: validateServiceCatalogSource + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: Organization Service Catalog Sources canonical + in: path + name: service_catalog_source_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + "204": + content: {} + description: The SCS has been validated + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "411": + content: {} + description: The request has a body but it doesn't have a Content-Length header. + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Service Catalog Sources + /organizations/{organization_canonical}/service_catalogs: + get: + description: Return all the service catalogs + operationId: listServiceCatalogs + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: The page number to request. The first page is 1. + in: query + name: page_index + schema: + default: 1 + format: uint32 + type: integer + - description: The number of items at most which the response can have. + in: query + name: page_size + schema: + default: 1000 + format: uint32 + type: integer + - description: | + Filters the Service Catalogs to only show the ones owned by the User Organization + in: query + name: service_catalog_own + schema: + type: boolean + - description: | + Filters the Service Catalogs to only show the ones that are templates + in: query + name: service_catalog_template + schema: + default: false + type: boolean + responses: + "200": + content: + application/json: + example: + data: + - author: Cycloid + canonical: stack-magento + created_at: 1503225026 + description: Super magento stack + directory: /config + id: 1 + image: http://via.placeholder.com/150x150 + keywords: + - stack + - php + name: stack-magento + ref: orgCanonical:stackCanonical + service_catalog_source_canonical: scscan + technologies: + - technology: nginx + version: "1.15" + - technology: debian + version: "9.1" + - technology: magento + version: "2.2" + - technology: Php + version: "7.2" + - technology: Redis + version: "2.4" + - technology: Elasticsearch + version: "6.2" + trusted: true + updated_at: 1503335026 + visibility: local + - author: Cycloid + canonical: stack-magento + created_at: 1503225026 + description: Super magento stack + id: 2 + image: http://via.placeholder.com/150x150 + keywords: + - stack + - php + name: infra-classic-web + ref: cycloidio:stack-magento + service_catalog_source_canonical: scscan + technologies: + - technology: nginx + version: "1.15" + - technology: debian + version: "9.1" + - technology: magento + version: "2.2" + - technology: Php + version: "7.2" + - technology: Redis + version: "2.4" + - technology: Elasticsearch + version: "6.2" + trusted: false + updated_at: 1503335026 + visibility: local + pagination: + index: 1 + size: 10 + total: 2 + schema: + $ref: '#/components/schemas/listServiceCatalogs_200_response' + description: List of the service catalogs. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Service catalogs + post: + description: Create a new Service Catalog + operationId: createServiceCatalog + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/NewServiceCatalog' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/NewServiceCatalog' + description: The information of the ServiceCatalog. + required: true + responses: + "200": + content: + application/json: + example: + data: + author: Cycloid + canonical: stack-magento + created_at: 1503225026 + description: Super magento stack + directory: /config + id: 1 + image: http://via.placeholder.com/150x150 + keywords: + - stack + - php + name: stack-magento + ref: orgCanonical:stackCanonical + service_catalog_source_canonical: scscan + technologies: + - technology: nginx + version: "1.15" + - technology: debian + version: "9.1" + - technology: magento + version: "2.2" + - technology: Php + version: "7.2" + - technology: Redis + version: "2.4" + - technology: Elasticsearch + version: "6.2" + trusted: true + type: stack + updated_at: 1503335026 + visibility: local + schema: + $ref: '#/components/schemas/createServiceCatalog_200_response' + description: The information of the service catalog. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Service catalogs + x-codegen-request-body-name: body + /organizations/{organization_canonical}/service_catalogs/{service_catalog_ref}: + delete: + description: Delete the service catalog. + operationId: deleteServiceCatalog + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A Service Catalog name + in: path + name: service_catalog_ref + required: true + schema: + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+:[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + "204": + content: {} + description: Service Catalog has been deleted. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "409": + content: {} + description: Service Catalog deletion has internal conflict + tags: + - Service catalogs + get: + description: Get the information of the service catalog + operationId: getServiceCatalog + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A Service Catalog name + in: path + name: service_catalog_ref + required: true + schema: + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+:[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + "200": + content: + application/json: + example: + data: + author: Cycloid + canonical: stack-magento + created_at: 1503225026 + description: Super magento stack + directory: / + id: 1 + image: http://via.placeholder.com/150x150 + keywords: + - stack + - php + name: stack-magento + ref: cycloidio:stack-magento + service_catalog_source_canonical: scscan + technologies: + - technology: nginx + version: "1.15" + - technology: debian + version: "9.1" + - technology: magento + version: "2.2" + - technology: Php + version: "7.2" + - technology: Redis + version: "2.4" + - technology: Elasticsearch + version: "6.2" + trusted: true + updated_at: 1503335026 + visibility: local + schema: + $ref: '#/components/schemas/createServiceCatalog_200_response' + description: The information of the service catalog. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Service catalogs + put: + description: Update the information of the service catalog + operationId: updateServiceCatalog + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A Service Catalog name + in: path + name: service_catalog_ref + required: true + schema: + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+:[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/UpdateServiceCatalog' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UpdateServiceCatalog' + description: The information of the ServiceCatalog Terraform. + required: true + responses: + "200": + content: + application/json: + example: + data: + author: Cycloid + canonical: stack-magento + created_at: 1503225026 + description: Super magento stack + directory: / + id: 1 + image: http://via.placeholder.com/150x150 + keywords: + - stack + - php + name: stack-magento + ref: cycloidio:stack-magento + service_catalog_source_canonical: scscan + technologies: + - technology: nginx + version: "1.15" + - technology: debian + version: "9.1" + - technology: magento + version: "2.2" + - technology: Php + version: "7.2" + - technology: Redis + version: "2.4" + - technology: Elasticsearch + version: "6.2" + trusted: true + type: stack + updated_at: 1503335026 + visibility: local + schema: + $ref: '#/components/schemas/createServiceCatalog_200_response' + description: Updated the Service Catalog + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Service catalogs + x-codegen-request-body-name: body + /organizations/{organization_canonical}/service_catalogs/{service_catalog_ref}/{use_case_canonical}/terraform: + get: + description: Get the information of the service catalog Terraform config + operationId: getServiceCatalogTerraform + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A Service Catalog name + in: path + name: service_catalog_ref + required: true + schema: + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+:[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A use case canonical + in: path + name: use_case_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + "200": + content: + application/json: + example: + data: + config: + data: + aws_ami: + debian_jessie_latest: + most_recent: true + locals: + codecommit_repository_name: something + output: + sensitive: + sensitive: true + value: VALUE + provider: + aws: + access_key: ${var.access_key} + resource: + aws_elb: + front: + name: ${var.project}-front-${var.env} + tags: + name: some name + variable: + front_disk_size: + default: 60 + schema: + $ref: '#/components/schemas/getServiceCatalogTerraform_200_response' + description: The information of Terraform + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Service catalogs + put: + description: Update/Create the information of the service catalog Terraform config + operationId: updateServiceCatalogTerraform + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A Service Catalog name + in: path + name: service_catalog_ref + required: true + schema: + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+:[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A use case canonical + in: path + name: use_case_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/TerraformJSONConfig' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/TerraformJSONConfig' + description: The information of the ServiceCatalog Terraform. + required: true + responses: + "204": + content: {} + description: Configuration has been updated + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Service catalogs + x-codegen-request-body-name: body + /organizations/{organization_canonical}/service_catalogs/{service_catalog_ref}/config: + get: + description: Get the config of the service catalog + operationId: getServiceCatalogConfig + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A Service Catalog name + in: path + name: service_catalog_ref + required: true + schema: + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+:[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A use case of a stack to be selectd from the stack config + in: query + name: use_case + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A list of projects' canonical to filter from + in: query + name: project_canonical + schema: + pattern: ^[\da-z]+(?:(?:[\da-z\-._]+)?[\da-z])?$ + type: string + - description: A list of environments' canonical to filter from + in: query + name: environment_canonical + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + responses: + "200": + content: + application/json: + example: + data: + first-usecase: + ansible: + magento: + content: | + # In this file you could override any variables present in default_front.yaml file + + # Usually you might want to override those variables : + # magento_backend_frontname: admin + # magento_admin_firstname: admin + # magento_admin_lastname: admin + # magento_admin_email: root@localhost.local + # magento_admin_user: admin + + # magento_admin_password: 4Bigs3cr3t + + # In case you want to use vault to encrypt this password use the following command to generate the ansible vault var : + # echo -n "4Bigs3cr3t" | ansible-vault encrypt_string --stdin-name=magento_admin_password + #>> magento_admin_password: !vault | + #>> $ANSIBLE_VAULT;1.1;AES256 + #>> 37363232383334316164366337366430316535636130376134323366313565356365363662653539 + #>> 3161303331303565643831383839626263653362636466660a316530613935393464366536383839 + #>> 30303836326138306339623431356234333239343435623333343333623938633761636132303662 + #>> 3135343861383531660a393934316237363961663865393939313966373838653339326565353263 + #>> 6238 + destination: ansible/environments/($ environment $)-front.yml + path: ansible/environments/front.yml.sample + forms: + pipeline: + group1: + - default: nobucket + description: Bucket used to store magento code + key: magento_deploy_bucket_name + name: The bucket used + type: string + widget: text_area + - description: Doesn't matter + key: no-exist + name: Some imaginary var + type: string + widget: text_area + terraform: + group2: + - description: List of public network IDs + key: public_subnets_ids + name: Pub nets + type: array + widget: simple_text + - description: The VPC ID to run the project + key: vpc_id + name: VPC ID + type: string + widget: text_area + pipeline: + pipeline: + content: | + groups: + + - name: magento-((env)) + jobs: + - magento-((env))-build + - full-deploy-front-magento-((env)) + - app-deploy-front-magento-((env)) + - terraform-plan-magento-((env)) + - terraform-apply-magento-((env)) + - magento-((env))-unittests + - magento-((env))-functional-tests + + resource_types: + + - name: terraform + type: docker-image + source: + repository: ljfranklin/terraform-resource + + resources: + + - name: terraform-magento-((env)) + type: terraform + source: + storage: + bucket: ((terraform_storage_bucket_name)) + bucket_path: ((terraform_storage_bucket_path)) + region_name: ((aws_default_region)) + access_key_id: "((terraform_storage_access_key))" + secret_access_key: "((terraform_storage_secret_key))" + vars: + access_key: ((aws_access_key)) + secret_key: ((aws_secret_key)) + env: + AWS_ACCESS_KEY_ID: ((aws_access_key)) + AWS_DEFAULT_REGION: ((aws_default_region)) + AWS_SECRET_ACCESS_KEY: ((aws_secret_key)) + path: pipeline/magento.yml + variables: + content: | + env: ($ environment $) + magento_deploy_bucket_name: magento-deploy + magento_deploy_bucket_object_path: /catalog-magento/($ environment $)/magento.tar.gz + magento_deploy_bucket_region: eu-west-1 + magento_deploy_bucket_access_key: ... + magento_deploy_bucket_secret_access_key: ... + terraform_storage_access_key: ... + terraform_storage_secret_key: ... + terraform_storage_bucket_name: magento-terraform-remote-state + terraform_storage_bucket_path: magento/($ environment $) + aws_access_key: ... + aws_secret_key: ... + aws_default_region: eu-west-1 + + ansible_vault_password: ... + bastion_url: admin@bastion.server.com + bastion_private_key_pair: |- + -----BEGIN RSA PRIVATE KEY----- + -----END RSA PRIVATE KEY----- + + catalog_magento_git_private_key: |- + -----BEGIN RSA PRIVATE KEY----- + -----END RSA PRIVATE KEY----- + + magento_git_repository: git@github.com:myuser/code-magento.git + magento_git_branch: master + magento_git_private_key: |- + -----BEGIN RSA PRIVATE KEY----- + -----END RSA PRIVATE KEY----- + + + magento_config_git_repository: git@github.com:myuser/config-magento.git + magento_config_git_branch: master + magento_config_git_private_key: |- + -----BEGIN RSA PRIVATE KEY----- + -----END RSA PRIVATE KEY----- + destination: pipeline/($ environment $)-variables.yml + path: pipeline/variables.sample.yml + terraform: + magento: + content: | + variable "rds_password" { + default = "ChangeMePls" + } + + module "magento" { + source = "module-magento" + + env = "($ environment $)" + vpc_id = "" + private_subnets_ids = ["private-subnets"] + magento_ssl_cert = "" + bastion_sg_allow = "" + public_subnets_ids = [""] + + rds_password = "${var.rds_password}" + + # project = "magento" + + # FIXME optimized false : should be changes with the instance type ? + + # rds_database = "magento" + # rds_disk_size = 10 + # rds_multiaz = false + # rds_storage_type = "gp2" + # rds_subnet = "" + # rds_type = "db.t2.small" + # rds_username = "magento" + # rds_engine = ""mysql" + # rds_engine_version = "5.7.16" + # rds_backup_retention = 7 + # rds_parameters = "" + + # cache_subnet = "cache-subnet-id" + # elasticache_type = "cache.t2.micro" + # elasticache_nodes = "1 + # elasticache_parameter_group_name = "default.redis3.2" + # elasticache_engine = "redis" + # elasticache_port = "6379" + # front_count = "1" + # front_disk_size = "60" + # front_disk_type = "gp2" + # front_type = "t2.small" + + } + destination: terraform/magento/($ environment $)/magento.tf + path: terraform/magento.tf.sample + second-usecase: + ansible: + magento: + content: | + # In this file you could override any variables present in default_front.yaml file + + # Usually you might want to override those variables : + # magento_backend_frontname: admin + # magento_admin_firstname: admin + # magento_admin_lastname: admin + # magento_admin_email: root@localhost.local + # magento_admin_user: admin + + # magento_admin_password: 4Bigs3cr3t + + # In case you want to use vault to encrypt this password use the following command to generate the ansible vault var : + # echo -n "4Bigs3cr3t" | ansible-vault encrypt_string --stdin-name=magento_admin_password + #>> magento_admin_password: !vault | + #>> $ANSIBLE_VAULT;1.1;AES256 + #>> 37363232383334316164366337366430316535636130376134323366313565356365363662653539 + #>> 3161303331303565643831383839626263653362636466660a316530613935393464366536383839 + #>> 30303836326138306339623431356234333239343435623333343333623938633761636132303662 + #>> 3135343861383531660a393934316237363961663865393939313966373838653339326565353263 + #>> 6238 + destination: ansible/environments/($ environment $)-front.yml + path: ansible/environments/front.yml.sample + forms: + pipeline: + group1: + - default: nobucket + description: Bucket used to store magento code + key: magento_deploy_bucket_name + name: The bucket used + type: string + widget: text_area + - description: Doesn't matter + key: no-exist + name: Some imaginary var + type: string + widget: text_area + terraform: + group2: + - description: List of public network IDs + key: public_subnets_ids + name: Pub nets + type: array + widget: simple_text + - description: The VPC ID to run the project + key: vpc_id + name: VPC ID + type: string + widget: text_area + pipeline: + pipeline: + content: | + groups: + + - name: magento-((env)) + jobs: + - magento-((env))-build + - full-deploy-front-magento-((env)) + - app-deploy-front-magento-((env)) + - terraform-plan-magento-((env)) + - terraform-apply-magento-((env)) + - magento-((env))-unittests + - magento-((env))-functional-tests + + resource_types: + + - name: terraform + type: docker-image + source: + repository: ljfranklin/terraform-resource + + resources: + + - name: terraform-magento-((env)) + type: terraform + source: + storage: + bucket: ((terraform_storage_bucket_name)) + bucket_path: ((terraform_storage_bucket_path)) + region_name: ((aws_default_region)) + access_key_id: "((terraform_storage_access_key))" + secret_access_key: "((terraform_storage_secret_key))" + vars: + access_key: ((aws_access_key)) + secret_key: ((aws_secret_key)) + env: + AWS_ACCESS_KEY_ID: ((aws_access_key)) + AWS_DEFAULT_REGION: ((aws_default_region)) + AWS_SECRET_ACCESS_KEY: ((aws_secret_key)) + path: pipeline/magento.yml + variables: + content: | + env: ($ environment $) + magento_deploy_bucket_name: magento-deploy + magento_deploy_bucket_object_path: /catalog-magento/($ environment $)/magento.tar.gz + magento_deploy_bucket_region: eu-west-1 + magento_deploy_bucket_access_key: ... + magento_deploy_bucket_secret_access_key: ... + terraform_storage_access_key: ... + terraform_storage_secret_key: ... + terraform_storage_bucket_name: magento-terraform-remote-state + terraform_storage_bucket_path: magento/($ environment $) + aws_access_key: ... + aws_secret_key: ... + aws_default_region: eu-west-1 + + ansible_vault_password: ... + bastion_url: admin@bastion.server.com + bastion_private_key_pair: |- + -----BEGIN RSA PRIVATE KEY----- + -----END RSA PRIVATE KEY----- + + catalog_magento_git_private_key: |- + -----BEGIN RSA PRIVATE KEY----- + -----END RSA PRIVATE KEY----- + + magento_git_repository: git@github.com:myuser/code-magento.git + magento_git_branch: master + magento_git_private_key: |- + -----BEGIN RSA PRIVATE KEY----- + -----END RSA PRIVATE KEY----- + + + magento_config_git_repository: git@github.com:myuser/config-magento.git + magento_config_git_branch: master + magento_config_git_private_key: |- + -----BEGIN RSA PRIVATE KEY----- + -----END RSA PRIVATE KEY----- + destination: pipeline/($ environment $)-variables.yml + path: pipeline/variables.sample.yml + terraform: + magento: + content: | + variable "rds_password" { + default = "ChangeMePls" + } + + module "magento" { + source = "module-magento" + + env = "($ environment $)" + vpc_id = "" + private_subnets_ids = ["private-subnets"] + magento_ssl_cert = "" + bastion_sg_allow = "" + public_subnets_ids = [""] + + rds_password = "${var.rds_password}" + + # project = "magento" + + # FIXME optimized false : should be changes with the instance type ? + + # rds_database = "magento" + # rds_disk_size = 10 + # rds_multiaz = false + # rds_storage_type = "gp2" + # rds_subnet = "" + # rds_type = "db.t2.small" + # rds_username = "magento" + # rds_engine = ""mysql" + # rds_engine_version = "5.7.16" + # rds_backup_retention = 7 + # rds_parameters = "" + + # cache_subnet = "cache-subnet-id" + # elasticache_type = "cache.t2.micro" + # elasticache_nodes = "1 + # elasticache_parameter_group_name = "default.redis3.2" + # elasticache_engine = "redis" + # elasticache_port = "6379" + # front_count = "1" + # front_disk_size = "60" + # front_disk_type = "gp2" + # front_type = "t2.small" + + } + destination: terraform/magento/($ environment $)/magento.tf + path: terraform/magento.tf.sample + schema: + $ref: '#/components/schemas/createFormsConfig_200_response' + description: The config of the service catalog. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Service catalogs + /organizations/{organization_canonical}/service_catalogs/{service_catalog_ref}/dependencies/validate: + get: + description: Validates the dependencies of a Service Catalog + operationId: validateServiceCatalogDependencies + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A Service Catalog name + in: path + name: service_catalog_ref + required: true + schema: + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+:[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + "200": + content: + application/json: + example: + data: + errors: + - dependency 'abc' is required to deploy the stack + warnings: + - dependency 'dep' is recommended to deploy the stack + schema: + $ref: '#/components/schemas/validateServiceCatalogDependencies_200_response' + description: The result of the service catalog's dependencies validation + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Service catalogs + /organizations/{organization_canonical}/service_catalogs/{service_catalog_ref}/import: + delete: + description: Delete the Stack import of the organization. + operationId: deleteServiceCatalogImport + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A Service Catalog name + in: path + name: service_catalog_ref + required: true + schema: + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+:[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + "204": + content: {} + description: The Stack import has been deleted. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Infra Imports + get: + description: Get the import of a new Stack of the organization. + operationId: getServiceCatalogImport + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A Service Catalog name + in: path + name: service_catalog_ref + required: true + schema: + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+:[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + "200": + content: + application/json: + example: + data: + logs: + - Imported Resource 1 + - Imported Resource 2 + project_canonical: my-project-1 + service_catalog_ref: cycloidio:stack-magento + status: Importing + schema: + $ref: '#/components/schemas/getProjectImport_200_response' + description: The information of the Stack import process. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Infra Imports + /organizations/{organization_canonical}/service_catalogs/{service_catalog_ref}/import/retry: + put: + description: Retry to import a Stack. + operationId: retryServiceCatalogImport + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A Service Catalog name + in: path + name: service_catalog_ref + required: true + schema: + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+:[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + "202": + content: {} + description: The request to retry the Stack import has been accepted and processing in the background + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Infra Imports + /organizations/{organization_canonical}/service_catalogs/{service_catalog_ref}/template: + post: description: | - Flag to retrieve KPIs' data upon retrieving KPIs themselves - schema: - type: boolean - favorite: - name: favorite - in: query + Create a new Service Catalog using the ref and use case passed as template + operationId: createServiceCatalogFromTemplate + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A Service Catalog name + in: path + name: service_catalog_ref + required: true + schema: + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+:[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/NewServiceCatalogFromTemplate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/NewServiceCatalogFromTemplate' + description: The information of the ServiceCatalog. + required: true + responses: + "200": + content: + application/json: + example: + data: + author: Cycloid + canonical: bootstrap-stack + name: bootstrap-stack + service_catalog_source_canonical: scscan + use_case: aws-ec2 + schema: + $ref: '#/components/schemas/createServiceCatalog_200_response' + description: The information of the service catalog. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Service catalogs + x-codegen-request-body-name: body + /organizations/{organization_canonical}/service_catalogs/{service_catalog_ref}/terraform/diagram: + get: + description: Get the information of the service catalog Terraform diagram + operationId: getServiceCatalogTerraformDiagram + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A Service Catalog name + in: path + name: service_catalog_ref + required: true + schema: + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+:[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + "200": + content: + application/json: + example: + created_at: 1503225026 + data: + random: + data: true + updated_at: 1503335026 + schema: + $ref: '#/components/schemas/getServiceCatalogTerraformDiagram_200_response' + description: The information of Terraform Diagram + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Service catalogs + put: + description: Update/Create the information of the service catalog Terraform diagram + operationId: updateServiceCatalogTerraformDiagram + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A Service Catalog name + in: path + name: service_catalog_ref + required: true + schema: + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+:[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/TerraformJSONDiagram' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/TerraformJSONDiagram' + description: The information of the ServiceCatalog Terraform Diagram + required: true + responses: + "204": + content: {} + description: Configuration has been updated + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Service catalogs + x-codegen-request-body-name: body + /organizations/{organization_canonical}/service_catalogs/{service_catalog_ref}/terraform/diagram/image: + get: + description: Get the SC TF Image + operationId: getServiceCatalogTerraformImage + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A Service Catalog name + in: path + name: service_catalog_ref + required: true + schema: + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+:[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/getServiceCatalogTerraformImage_200_response' + description: The SC TF Image + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Service catalogs + put: + description: Update/Create the Image for the SC TF Image + operationId: updateServiceCatalogTerraformImage + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A Service Catalog name + in: path + name: service_catalog_ref + required: true + schema: + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+:[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/TerraformImage' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/TerraformImage' + description: The information of the ServiceCatalog Terraform Diagram + required: true + responses: + "204": + content: {} + description: Configuration has been updated + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Service catalogs + x-codegen-request-body-name: body + /organizations/{organization_canonical}/subscriptions: + post: + description: Creates a subscription for the Organization + operationId: createSubscription + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/NewSubscription' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/NewSubscription' + description: The information of the subscription to create + required: true + responses: + "204": + content: {} + description: Created Subscription + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "411": + content: {} + description: The request has a body but it doesn't have a Content-Length header. + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Subscriptions + x-codegen-request-body-name: body + /organizations/{organization_canonical}/summary: + get: + description: Get the summary of the organization + operationId: getSummary + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + "200": + content: + application/json: + example: + data: + config_repositories: 5 + credentials: 5 + pipelines: 5 + projects: 5 + roles: 5 + service_catalog_sources: 5 + service_catalogs: 5 + teams: 5 + users: 5 + schema: + $ref: '#/components/schemas/getSummary_200_response' + description: The summary object + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organizations + /organizations/{organization_canonical}/teams: + get: + description: Get list of teams of the organization. + operationId: getTeams + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: The page number to request. The first page is 1. + in: query + name: page_index + schema: + default: 1 + format: uint32 + type: integer + - description: The number of items at most which the response can have. + in: query + name: page_size + schema: + default: 1000 + format: uint32 + type: integer + - description: Search by team's name + in: query + name: team_name + schema: + type: string + - description: Search by team's creation date + in: query + name: team_created_at + schema: + format: uint64 + type: integer + - description: Search by team's description + in: query + name: team_description + schema: + type: string + - description: Search by entity's owner + in: query + name: member_id + schema: + format: uint32 + type: integer + - description: | + Allows to order the list of items. Example usage: field_name:asc + in: query + name: order_by + schema: + type: string + responses: + "200": + content: + application/json: + example: + data: + - canonical: team1 + created_at: 1503225026 + id: 1 + member_count: 12 + members_preview: + - created_at: 678123 + email: coder@company.com + family_name: Coder + given_name: Cody + id: 42 + username: coder + - created_at: 678123 + email: tester@company.com + family_name: Tester + given_name: Tony + id: 43 + username: tester + name: Team 1 + owner: + created_at: 1503225026 + email: superuser@company.com + family_name: Smith + given_name: Owen + id: 99 + role: + canonical: role-can + description: Organization existing role + id: 17 + name: existing + rules: + - action: organization:delete + effect: allow + id: 1 + resources: + - organization:org-can + - organization:org-can2 + - action: organization:team:create + effect: allow + id: 20 + resources: [] + - action: organization:team:read + effect: allow + id: 21 + resources: + - organization:org-can:team:team-can + username: superuser + roles: + - canonical: role-can + description: Organization existing role + id: 17 + name: existing + rules: + - action: organization:delete + effect: allow + id: 1 + resources: + - organization:org-can + - organization:org-can2 + - action: organization:team:create + effect: allow + id: 20 + resources: [] + - action: organization:team:read + effect: allow + id: 21 + resources: + - organization:org-can:team:team-can + updated_at: 1503335026 + pagination: + index: 1 + size: 10 + total: 1 + schema: + $ref: '#/components/schemas/getTeams_200_response' + description: List of the teams which the organization has. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization teams + post: + description: Create a new team in the organization. + operationId: createTeam + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/NewTeam' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/NewTeam' + description: The information of the team to create. + required: true + responses: + "200": + content: + application/json: + example: + data: + canonical: team1 + created_at: 1503225026 + id: 1 + member_count: 12 + members_preview: + - created_at: 678123 + email: coder@company.com + family_name: Coder + given_name: Cody + id: 42 + username: coder + - created_at: 678123 + email: tester@company.com + family_name: Tester + given_name: Tony + id: 43 + username: tester + name: Team 1 + owner: + created_at: 1503225026 + email: superuser@company.com + family_name: Smith + given_name: Owen + id: 99 + role: + canonical: role-can + description: Organization existing role + id: 17 + name: existing + rules: + - action: organization:delete + effect: allow + id: 1 + resources: + - organization:org-can + - organization:org-can2 + - action: organization:team:create + effect: allow + id: 20 + resources: [] + - action: organization:team:read + effect: allow + id: 21 + resources: + - organization:org-can:team:team-can + username: superuser + roles: + - canonical: role-can + description: Organization existing role + id: 17 + name: existing + rules: + - action: organization:delete + effect: allow + id: 1 + resources: + - organization:org-can + - organization:org-can2 + - action: organization:team:create + effect: allow + id: 20 + resources: [] + - action: organization:team:read + effect: allow + id: 21 + resources: + - organization:org-can:team:team-can + - canonical: role-can + description: Organization existing role + id: 10 + name: existing + rules: + - action: organization:delete + effect: allow + id: 1 + resources: + - organization:org-can + - organization:org-can2 + - action: organization:team:read + effect: allow + id: 21 + resources: + - organization:org-can:team:team-can + updated_at: 1503335026 + schema: + $ref: '#/components/schemas/createTeam_200_response' + description: Team created. The body contains the information of the new team of the organization. + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "411": + content: {} + description: The request has a body but it doesn't have a Content-Length header. + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization teams + x-codegen-request-body-name: body + /organizations/{organization_canonical}/teams/{team_canonical}: + delete: + description: Delete a team of the organization. + operationId: deleteTeam + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a team. + in: path + name: team_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + "204": + content: {} + description: Team has been deleted. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization teams + get: + description: Get the information of a team of the organization. + operationId: getTeam + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a team. + in: path + name: team_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + "200": + content: + application/json: + example: + data: + canonical: team-2 + created_at: 1503225026 + id: 1 + member_count: 12 + members_preview: + - created_at: 678123 + email: cooluser@company.com + family_name: family + given_name: given + id: 42 + username: cooluser + name: Team 2 + owner: + created_at: 1503225026 + email: superuser@company.com + family_name: Smith + given_name: Owen + id: 99 + role: + canonical: role-can + description: Organization existing role + id: 17 + name: existing + rules: + - action: organization:delete + effect: allow + id: 1 + resources: + - organization:org-can + - organization:org-can2 + - action: organization:team:create + effect: allow + id: 20 + resources: [] + - action: organization:team:read + effect: allow + id: 21 + resources: + - organization:org-can:team:team-can + username: superuser + roles: + - canonical: role-can + description: Organization existing role + id: 17 + name: existing + rules: + - action: organization:delete + effect: allow + id: 1 + resources: + - organization:org-can + - organization:org-can2 + - action: organization:team:create + effect: allow + id: 20 + resources: [] + - action: organization:team:read + effect: allow + id: 21 + resources: + - organization:org-can:team:team-can + updated_at: 1503335026 + schema: + $ref: '#/components/schemas/createTeam_200_response' + description: The information of the team of the organization which has the specified ID. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization teams + put: + description: Update the information of a team of the organization. + operationId: updateTeam + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a team. + in: path + name: team_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/UpdateTeam' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UpdateTeam' + description: The information of the team to update. + required: true + responses: + "200": + content: + application/json: + example: + data: + canonical: team-3 + created_at: 1503220026 + id: 1 + member_count: 12 + members_preview: + - created_at: 678123 + email: coder@company.com + family_name: Coder + given_name: Cody + id: 42 + username: coder + - created_at: 678123 + email: tester@company.com + family_name: Tester + given_name: Tony + id: 43 + username: tester + name: Team 3 + owner: + created_at: 1503225026 + email: superuser@company.com + family_name: Smith + given_name: Owen + id: 99 + role: + canonical: role-can + description: Organization existing role + id: 17 + name: existing + rules: + - action: organization:delete + effect: allow + id: 1 + resources: + - organization:org-can + - organization:org-can2 + - action: organization:team:create + effect: allow + id: 20 + resources: [] + - action: organization:team:read + effect: allow + id: 21 + resources: + - organization:org-can:team:team-can + username: superuser + roles: + - canonical: role-can + description: Organization existing role + id: 17 + name: existing + rules: + - action: organization:delete + effect: allow + id: 1 + resources: + - organization:org-can + - organization:org-can2 + - action: organization:team:create + effect: allow + id: 20 + resources: [] + - action: organization:team:read + effect: allow + id: 21 + resources: + - organization:org-can:team:team-can + - canonical: role-can + description: Organization existing role + id: 10 + name: existing + rules: + - action: organization:delete + effect: allow + id: 1 + resources: + - organization:org-can + - organization:org-can2 + - action: organization:team:read + effect: allow + id: 21 + resources: + - organization:org-can:team:team-can + updated_at: 1503335126 + schema: + $ref: '#/components/schemas/createTeam_200_response' + description: Team updated. The body contains information of the updated team. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "411": + content: {} + description: The request has a body but it doesn't have a Content-Length header. + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization teams + x-codegen-request-body-name: body + /organizations/{organization_canonical}/teams/{team_canonical}/members: + get: + description: Get the members of a team of the organization. + operationId: getTeamMembers + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a team. + in: path + name: team_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: The page number to request. The first page is 1. + in: query + name: page_index + schema: + default: 1 + format: uint32 + type: integer + - description: The number of items at most which the response can have. + in: query + name: page_size + schema: + default: 1000 + format: uint32 + type: integer + responses: + "200": + content: + application/json: + example: + data: + - created_at: 1503225026 + email: mariano.jimenez@fakeemail.com + family_name: Jimenez + given_name: Mariano + id: 1 + last_login_at: 1503225576 + picture_url: https://avatars2.githubusercontent.com/u/14579210 + username: user-1 + - created_at: 1503281026 + email: jordi.capdevila@fakeemail.com + family_name: Capdevila + given_name: Jordi + id: 1 + invited_at: 1503281026 + picture_url: https://avatars2.githubusercontent.com/u/14579210 + username: user2 + pagination: + index: 1 + size: 10 + total: 2 + schema: + $ref: '#/components/schemas/getTeamMembers_200_response' + description: List of the members who are assigned to the team. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization team members + post: + description: Assign a user of the organization to be a member of a team. + operationId: assignMemberToTeam + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a team. + in: path + name: team_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/NewTeamMemberAssignation' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/NewTeamMemberAssignation' + description: The assignation information for being a member or being updated. + required: true + responses: + "200": + content: + application/json: + example: + data: + created_at: 1503225026 + email: mariano.jimenez@fakeemail.com + family_name: Jimenez + given_name: Mariano + id: 1 + last_login_at: 1503281333 + picture_url: https://avatars2.githubusercontent.com/u/14579210 + role: + canonical: role-can + description: Organization existing role + id: 17 + name: existing + rules: + - action: organization:delete + effect: allow + id: 1 + resources: + - organization:org-can + - organization:org-can2 + - action: organization:team:create + effect: allow + id: 20 + resources: [] + - action: organization:team:read + effect: allow + id: 21 + resources: + - organization:org-can:team:team-can + username: user-1 + schema: + $ref: '#/components/schemas/assignMemberToTeam_200_response' + description: The information of the member of the team. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization team members + x-codegen-request-body-name: body + /organizations/{organization_canonical}/teams/{team_canonical}/members/{member_id}: + delete: + description: Unassign a member of the team. After this operation, the user will not be a member of the team. + operationId: unassignMemberFromTeam + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a team. + in: path + name: team_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A member id + in: path + name: member_id + required: true + schema: + format: uint32 + type: integer + responses: + "204": + content: {} + description: The user has been unassigned of the team. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization team members + get: + description: Get the information of a member of the team. + operationId: getTeamMember + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a team. + in: path + name: team_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A member id + in: path + name: member_id + required: true + schema: + format: uint32 + type: integer + responses: + "200": + content: + application/json: + example: + data: + created_at: 1503225026 + email: mariano.jimenez@fakeemail.com + family_name: Jimenez + given_name: Mariano + id: 1 + last_login_at: 1503281333 + picture_url: https://avatars2.githubusercontent.com/u/14579210 + role: + canonical: role-can + description: Organization existing role + id: 17 + name: existing + rules: + - action: organization:delete + effect: allow + id: 1 + resources: + - organization:org-can + - organization:org-can2 + - action: organization:team:create + effect: allow + id: 20 + resources: [] + - action: organization:team:read + effect: allow + id: 21 + resources: + - organization:org-can:team:team-can + username: user-1 + schema: + $ref: '#/components/schemas/assignMemberToTeam_200_response' + description: The information of the member of the team. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization team members + /organizations/{organization_canonical}/workers: + get: + description: Get the workers that the authenticated user has access to. + operationId: getWorkers + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: The page number to request. The first page is 1. + in: query + name: page_index + schema: + default: 1 + format: uint32 + type: integer + - description: The number of items at most which the response can have. + in: query + name: page_size + schema: + default: 1000 + format: uint32 + type: integer + responses: + "200": + content: + application/json: + example: + data: + - active_containers: 256 + active_volumes: 0 + ephemeral: false + name: worker1 + platform: linux + start_time: 1552997739 + state: running + team: org1 + version: "2.1" + - active_containers: 256 + active_volumes: 10 + ephemeral: true + name: worker2 + platform: linux + start_time: 1552997639 + state: running + tags: + - fastcpu + team: org2 + version: "2.1" + - active_containers: 300 + active_volumes: 20 + ephemeral: true + name: worker3 + platform: linux + start_time: 1552997839 + state: running + tags: + - ssd + team: org3 + version: "2.1" + pagination: + index: 1 + size: 5 + total: 3 + schema: + $ref: '#/components/schemas/getWorkers_200_response' + description: List of the workers which authenticated user has access to. + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization workers + /saml2: + get: + description: Returns the Cycloid instance's SAML2 metadata that can be plugged into an Identity Provider. + operationId: getSamlMetadata + responses: + "200": + content: + application/xml: + schema: + type: object + description: SAML2 XML metadata describing the Cycloid Service Provider. + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + application/xml: + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + application/xml: + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + security: [] + tags: + - SAML2 + /saml2/acs: + post: + description: Assertion Consumer Service callback endpoint for the SAML2 Identity Provider. + operationId: samlAssertionConsumerService + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/samlAssertionConsumerService_request' + responses: + "303": + content: {} + description: The response will always be a redirect to the front-end with the authentication code. With this code, the application can proceed with a normal OAuth flow, by sending it to the /user/saml2/oauth endpoint. + headers: + Location: + description: Location URL will contain either a "code" or "error" query parameter, depending on authentication result. + schema: + format: uri + type: string + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + security: [] + tags: + - SAML2 + /status: + get: + description: Get the status of the Cycloid's services. + operationId: getStatus + responses: + "200": + content: + application/json: + example: + data: + checks: + - canonical: s0 + category: internal + message: no issue reported while connecting to s0 + status: Success + - canonical: s1 + category: internal + message: unknown state for s1 service + status: Unknown + - canonical: s2 + category: internal + message: issue detected while connecting to s2 + status: Error + - canonical: s3 + category: internal + message: issue detected while connecting to s3 + status: Success + message: some services returned an unknown state (s1), while some other returned errors (s2, s3) + status: Error + schema: + $ref: '#/components/schemas/getStatus_200_response' + description: General application status and services statuses. + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + security: [] + tags: + - Cycloid + /status/{service_status_canonical}: + get: + description: Get the status of the Cycloid's service. It uses 200 and 500 to also identify the status + operationId: getServiceStatus + parameters: + - description: The canonical of the service you want to get the status from + in: path + name: service_status_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + "200": + content: + application/json: + example: + data: + canonical: s0 + category: internal + message: no issue reported while connecting to s0 + status: Success + schema: + $ref: '#/components/schemas/getServiceStatus_200_response' + description: General application status and services statuses. + "500": + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + security: [] + tags: + - Cycloid + /user: + delete: + description: The authenticated user delete itself from the system. + operationId: deleteUserAccount + responses: + "204": + content: {} + description: User account has been deleted. + "403": + content: + application/json: + example: + errors: + - code: Unauthorized + message: Not enough permissions to perform the operation + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - User + get: + description: Get the information of the account of the authenticated user. + operationId: getUserAccount + responses: + "200": + content: + application/json: + example: + data: + country: + code: GB + name: United Kingdom + created_at: 1503225026 + emails: + - email: mariano@jimenez.com + purpose: primary + verified: true + family_name: Jimenez + given_name: Mariano + guide: + presentation: false + tutorial: + configEnv: false + createProject: false + credentials: false + customEnvConfig: false + deployed: false + finish: false + letsgo: false + reviewDeploy: false + selectStack: false + tasksDetails: false + welcome: false + last_login: 1503413020 + locale: en + picture_url: https://avatars2.githubusercontent.com/u/14579210 + updated_at: 1503335026 + username: user-1 + schema: + $ref: '#/components/schemas/getUserAccount_200_response' + description: The user account information. + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - User + post: + description: Create a new User (sign-up). + operationId: signUp + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/NewUserAccount' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/NewUserAccount' + description: The user content + required: true + responses: + "204": + content: {} + description: Account created. The account MUST be verified through the link sent to the email address. + "411": + content: {} + description: The request has a body but it doesn't have a Content-Length header. + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + security: [] + tags: + - User + x-codegen-request-body-name: body + put: + description: Update the information of the account of the authenticated user. + operationId: updateUserAccount + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/UpdateUserAccount' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UpdateUserAccount' + description: The user content + required: true + responses: + "200": + content: + application/json: + example: + data: + country_code: UK + created_at: 1503225026 + emails: + - email: mariano@jimenez.com + purpose: primary + verified: true + family_name: Jimenez + given_name: Mariano + last_login: 1503413020 + locale: en + picture_url: https://avatars2.githubusercontent.com/u/14579210 + updated_at: 1503335026 + username: user-1 + schema: + $ref: '#/components/schemas/getUserAccount_200_response' + description: The updated user profile information. + "409": + content: {} + description: Trying setting an unverified email as the primary + "411": + content: {} + description: The request has a body but it doesn't have a Content-Length header. + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "503": + content: + application/json: + example: + errors: + - code: RetryOperation + message: Operation must be retried. + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The operation couldn't be executed or completed and it should retried. + headers: + Retry-After: + description: The number of seconds to wait until retry the request + schema: + format: uint16 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - User + x-codegen-request-body-name: body + /user/{social_type}/oauth: + get: + description: Used to know if a user from the platform exists on that 'social_type'. If it exists we'll return the JWT 'token', if it does not we'll return the data of that user on the 'user' so it can be confirmed and created + operationId: getOAuthUser + parameters: + - description: The OAuth Social type + in: path + name: social_type + required: true + schema: + enum: + - azuread + - saml2 + - google + - github + type: string + - description: The OAuth code returned form the Social Provider + in: query + name: oauth_code + required: true + schema: + type: string + responses: + "200": + content: + application/json: + example: + data: + user: + email: some@email.com + given_name: some name + picture_url: https://via.placeholder.com/150?text=cycloid.io + social_id: some-random-id + username: some-name + schema: + $ref: '#/components/schemas/getOAuthUser_200_response' + description: Used to know if a user from the platform exists on that 'social_type'. + "401": + content: + application/json: + example: + errors: + - code: Unauthenticated + message: invalid credentials + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The user cannot be authenticated with the credentials which she/he has used. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + security: [] + tags: + - User + post: + description: Create a user from the OAuth 'social_type' + operationId: createOAuthUser + parameters: + - description: The OAuth Social type + in: path + name: social_type + required: true + schema: + enum: + - azuread + - saml2 + - google + - github + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/NewOAuthUser' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/NewOAuthUser' + description: The user content + required: true + responses: + "200": + content: + application/json: + example: + data: + token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImY0YjdiZjZlLTE1NmYtNDYxMy05NmFiLWIwMzg5NzdiMWRkMSJ9.eyJpc3MiOiJodHRwczovL2N5Y2xvaWQuaW8iLCJzdWIiOiJodHRwczovL2N5Y2xvaWQuaW8iLCJhdWQiOiJjdXN0b21lciIsIm5iZiI6MTUwMzQ3NDg2NywiaWF0IjoxNTAzNDc0ODY3LCJqdGkiOiJjNDU5ODgwMS04YWQzLTRhMDctODIwZC02MzRmN2RkMWQ2MDgiLCJjeWNsb2lkIjp7InVzZXIiOnsiaWQiOjEsInVzZXJuYW1lIjoidXNlci0xIiwiZ2l2ZW5fbmFtZSI6Ik1hcmlhbm8iLCJmYW1pbHlfbmFtZSI6IkppbWVuZXoiLCJwaWN0dXJlX3VybCI6Imh0dHBzOi8vYXZhdGFyczIuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ1NzkyMTAiLCJsb2NhbGUiOiJlbiJ9LCJvcmdhbml6YXRpb24iOnsiaWQiOjIsImNhbm9uaWNhbCI6Im9yZzIiLCJuYW1lIjoiT3JnIDIifSwicGVybWlzc2lvbnMiOnsib3JnYW5pemF0aW9uOmRlbGV0ZSI6WyIxIl0sIm9yZ2FuaXphdGlvbjp1cGRhdGUiOltdLCJvcmdhbml6YXRpb246dGVhbTpjcmVhdGUiOltdLCJvcmdhbml6YXRpb246dGVhbTpyZWFkIjpbXSwib3JnYW5pemF0aW9uOnRlYW06ZGVsZXRlIjpbIjIiXSwib3JnYW5pemF0aW9uOm1lbWJlcjpjcmVhdGUiOltdLCJvcmdhbml6YXRpb246bWVtYmVyOnJlYWQiOltdLCJvcmdhbml6YXRpb246bWVtYmVyOmRlbGV0ZSI6W10sIm9yZ2FuaXphdGlvbjpwcm9qZWN0OnJlYWQiOltdfX19.CHA3146UEHwVW6nYkDgYeSukGeZIH55mi4O0LsemenA + schema: + $ref: '#/components/schemas/emailAuthenticationVerification_200_response' + description: Create a user from the OAuth 'social_type' + "401": + content: + application/json: + example: + errors: + - code: Unauthenticated + message: invalid credentials + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The user cannot be authenticated with the credentials which she/he has used. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + security: [] + tags: + - User + x-codegen-request-body-name: body + /user/aws_marketplace: + post: + description: Create a new AWS Marketplace User. + operationId: signUpAWSMarketplace + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/NewAWSMarketplaceUserAccount' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/NewAWSMarketplaceUserAccount' + description: The user content + required: true + responses: + "204": + content: {} + description: Account created. The account MUST be verified through the link sent to the email address. + "411": + content: {} + description: The request has a body but it doesn't have a Content-Length header. + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + security: [] + tags: + - User + x-codegen-request-body-name: body + /user/aws_marketplace/entitlement: + post: description: | - Flag to retrieve favorite data from the members favorite list. - schema: - type: boolean - cloud_cost_management_account_canonical: - name: cloud_cost_management_account_canonical - in: path - description: The canonical of an CloudCostManagementAccount. - required: true - schema: - $ref: '#/components/schemas/Canonical' - cloud_cost_management_account_created_at_query: - name: cloud_cost_management_account_created_at_query - in: query - description: Search by Cloud Cost Management account's creation date - schema: - type: integer - format: uint64 - jwt: - name: jwt - in: query - description: Token with the information about state and credentials. - required: true - schema: - type: string - inventory_resource_id: - name: inventory_resource_id - in: path - description: Inventory Resource ID - required: true - schema: - type: integer - format: uint32 - inventory_resource_provider_query: - name: resources_provider - in: query - description: Provider of Inventory Resource - required: true - schema: - type: string - resource_pool_canonical: - name: resource_pool_canonical - in: path - description: Organization Resource Pool canonical - required: true - schema: - $ref: '#/components/schemas/Canonical' - quota_id: - name: quota_id - in: path - description: Quota ID - required: true - schema: - type: integer - format: uint32 - appearance_canonical: - name: appearance_canonical - in: path - description: A canonical of an appearance. - required: true - schema: - $ref: '#/components/schemas/AppearanceCanonical' - service_status_canonical: - name: service_status_canonical - in: path - description: The canonical of the service you want to get the status from - required: true - schema: - maxLength: 100 - minLength: 3 - pattern: "^[a-z0-9]+[a-z0-9\\-_]+[a-z0-9]+$" - type: string - member_id: - name: member_id - description: A member id - in: path - required: true - schema: - type: integer - format: uint32 - securitySchemes: - api_key: - type: apiKey - description: The API authorization is done with JWT tokens - name: Authorization - in: header + This endpoint handles redirections from AWS Marketplace to our system. + If user doesn't exist, he'll be redirected to registration page. + If user exist, he'll be redirected to login page. + operationId: handleAWSMarketplaceUserEntitlement + responses: + "301": + content: {} + description: The user is redirected based on his account state. + headers: + Location: + schema: + type: string + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + security: [] + tags: + - User + /user/email/authentication/{authentication_token}: + put: + description: Verify that the email address is own by the user. + operationId: emailAuthenticationVerification + parameters: + - description: A token for authenticating login vie email + in: path + name: authentication_token + required: true + schema: + minLength: 5 + type: string + responses: + "200": + content: + application/json: + example: + data: + owns: + - organization:seraf:team:teamcan + permissions: + organization:team:create: + action: organization:team:read + effect: allow + id: 21 + resources: + - organization:org-can:team:team-can + token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImY0YjdiZjZlLTE1NmYtNDYxMy05NmFiLWIwMzg5NzdiMWRkMSJ9.eyJpc3MiOiJodHRwczovL2N5Y2xvaWQuaW8iLCJzdWIiOiJodHRwczovL2N5Y2xvaWQuaW8iLCJhdWQiOiJjdXN0b21lciIsIm5iZiI6MTUwMzQ3NDg2NywiaWF0IjoxNTAzNDc0ODY3LCJqdGkiOiJjNDU5ODgwMS04YWQzLTRhMDctODIwZC02MzRmN2RkMWQ2MDgiLCJjeWNsb2lkIjp7InVzZXIiOnsiaWQiOjEsInVzZXJuYW1lIjoidXNlci0xIiwiZ2l2ZW5fbmFtZSI6Ik1hcmlhbm8iLCJmYW1pbHlfbmFtZSI6IkppbWVuZXoiLCJwaWN0dXJlX3VybCI6Imh0dHBzOi8vYXZhdGFyczIuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ1NzkyMTAiLCJsb2NhbGUiOiJlbiJ9fX0.v6BuWwO6vN6PNW9d-Eqdoy7GHfUXKQ7byRbqwKRwHlA + schema: + $ref: '#/components/schemas/emailAuthenticationVerification_200_response' + description: The token which represents the session of the user. + "401": + content: + application/json: + example: + errors: + - code: Unauthenticated + message: invalid credentials + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The user cannot be authenticated with the credentials which she/he has used. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + security: [] + tags: + - User + /user/email/verification: + post: + description: Re-send the verification user's email to the indicated address. + operationId: emailVerificationResend + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/UserEmail' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UserEmail' + description: The email address to re-send the verification email. This endpoint doesn't return any error status code if the email doesn't exist nor it's already verified for avoiding that an attacker could find registered users email address. + required: true + responses: + "204": + content: {} + description: The email verification has been re-sent. + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + security: [] + tags: + - User + x-codegen-request-body-name: body + /user/email/verification/{verification_token}: + put: + description: Verify that the email address is own by the user. + operationId: emailVerification + parameters: + - description: A token for verifying emails, invitations, etc. + in: path + name: verification_token + required: true + schema: + minLength: 5 + type: string + responses: + "204": + content: {} + description: Email address has been verified. + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + security: [] + tags: + - User + /user/guide: + put: + description: Update user's guide progress. + operationId: updateUserGuide + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/UserGuide' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UserGuide' + description: The guide's progress JSON schema + required: false + responses: + "204": + content: {} + description: The guide progress has been updated. + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + security: [] + tags: + - User + x-codegen-request-body-name: body + /user/login: + post: + description: Authenticate a user and return a new JWT token. + operationId: login + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/UserLogin' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UserLogin' + description: The user content + required: true + responses: + "200": + content: + application/json: + example: + data: + owns: + - organization:seraf:team:teamcan + permissions: + organization:team:create: + action: organization:team:read + effect: allow + id: 21 + resources: + - organization:org-can:team:team-can + token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImY0YjdiZjZlLTE1NmYtNDYxMy05NmFiLWIwMzg5NzdiMWRkMSJ9.eyJpc3MiOiJodHRwczovL2N5Y2xvaWQuaW8iLCJzdWIiOiJodHRwczovL2N5Y2xvaWQuaW8iLCJhdWQiOiJjdXN0b21lciIsIm5iZiI6MTUwMzQ3NDg2NywiaWF0IjoxNTAzNDc0ODY3LCJqdGkiOiJjNDU5ODgwMS04YWQzLTRhMDctODIwZC02MzRmN2RkMWQ2MDgiLCJjeWNsb2lkIjp7InVzZXIiOnsiaWQiOjEsInVzZXJuYW1lIjoidXNlci0xIiwiZ2l2ZW5fbmFtZSI6Ik1hcmlhbm8iLCJmYW1pbHlfbmFtZSI6IkppbWVuZXoiLCJwaWN0dXJlX3VybCI6Imh0dHBzOi8vYXZhdGFyczIuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ1NzkyMTAiLCJsb2NhbGUiOiJlbiJ9fX0.v6BuWwO6vN6PNW9d-Eqdoy7GHfUXKQ7byRbqwKRwHlA + schema: + $ref: '#/components/schemas/emailAuthenticationVerification_200_response' + description: The token which represents the session of the user. + "401": + content: + application/json: + example: + errors: + - code: Unauthenticated + message: invalid credentials + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The user cannot be authenticated with the credentials which she/he has used. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + security: [] + tags: + - User + x-codegen-request-body-name: body + /user/refresh_token: + get: + description: Refresh the user JWT and returns a new one if the previous is valid. The 'organization_canonical_query' has to be of an organization in which the user belongs to, and the 'child_canonical_query' of a child of the 'organization_canonical_query' in any level (could be of a grand child). + operationId: refreshToken + parameters: + - description: A canonical of a organization used for filtering. + in: query + name: organization_canonical + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a child organization used for filtering. + in: query + name: child_canonical + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + "200": + content: + application/json: + example: + data: + owns: + - organization:seraf:team:teamcan + permissions: + organization:team:create: + action: organization:team:read + effect: allow + id: 21 + resources: + - organization:org-can:team:team-can + token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImY0YjdiZjZlLTE1NmYtNDYxMy05NmFiLWIwMzg5NzdiMWRkMSJ9.eyJpc3MiOiJodHRwczovL2N5Y2xvaWQuaW8iLCJzdWIiOiJodHRwczovL2N5Y2xvaWQuaW8iLCJhdWQiOiJjdXN0b21lciIsIm5iZiI6MTUwMzQ3NDg2NywiaWF0IjoxNTAzNDc0ODY3LCJqdGkiOiJjNDU5ODgwMS04YWQzLTRhMDctODIwZC02MzRmN2RkMWQ2MDgiLCJjeWNsb2lkIjp7InVzZXIiOnsiaWQiOjEsInVzZXJuYW1lIjoidXNlci0xIiwiZ2l2ZW5fbmFtZSI6Ik1hcmlhbm8iLCJmYW1pbHlfbmFtZSI6IkppbWVuZXoiLCJwaWN0dXJlX3VybCI6Imh0dHBzOi8vYXZhdGFyczIuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ1NzkyMTAiLCJsb2NhbGUiOiJlbiJ9LCJvcmdhbml6YXRpb24iOnsiaWQiOjIsImNhbm9uaWNhbCI6Im9yZzIiLCJuYW1lIjoiT3JnIDIifSwicGVybWlzc2lvbnMiOnsib3JnYW5pemF0aW9uOmRlbGV0ZSI6WyIxIl0sIm9yZ2FuaXphdGlvbjp1cGRhdGUiOltdLCJvcmdhbml6YXRpb246dGVhbTpjcmVhdGUiOltdLCJvcmdhbml6YXRpb246dGVhbTpyZWFkIjpbXSwib3JnYW5pemF0aW9uOnRlYW06ZGVsZXRlIjpbIjIiXSwib3JnYW5pemF0aW9uOm1lbWJlcjpjcmVhdGUiOltdLCJvcmdhbml6YXRpb246bWVtYmVyOnJlYWQiOltdLCJvcmdhbml6YXRpb246bWVtYmVyOmRlbGV0ZSI6W10sIm9yZ2FuaXphdGlvbjpwcm9qZWN0OnJlYWQiOltdfX19.CHA3146UEHwVW6nYkDgYeSukGeZIH55mi4O0LsemenA + schema: + $ref: '#/components/schemas/emailAuthenticationVerification_200_response' + description: The token which represents the session of the user. + "401": + content: + application/json: + example: + errors: + - code: Unauthenticated + message: invalid credentials + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The user cannot be authenticated with the credentials which she/he has used. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - User + /user/reset_password: + post: + description: Request to reset the password. Due to security reasons, this endpoint doesn't return Not Found (404) when the email doesn't exist or belongs to a user primary email. + operationId: passwordResetReq + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/UserPasswordResetReq' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UserPasswordResetReq' + description: The reset password payload + required: true + responses: + "204": + content: {} + description: The password has been changed. + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + security: [] + tags: + - User + x-codegen-request-body-name: body + put: + description: Reset the user password when it has been forgotten. Due to security reasons, the endpoint doesn't return a Unprocessable Entity (422) when the token is invalid. 404 Status code is returned if the user has been deleted of the system between the user password request and this request. + operationId: passwordResetUpdate + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/UserPasswordResetUpdate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UserPasswordResetUpdate' + description: The reset password payload + required: true + responses: + "204": + content: {} + description: The password has been changed. + "404": + content: + application/json: + example: + errors: + - code: NotFoundEntity + message: Entity not found + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + security: [] + tags: + - User + x-codegen-request-body-name: body + /version: + get: + description: Get the version of the Cycloid's API. + operationId: getAppVersion + responses: + "200": + content: + application/json: + example: + data: + branch: master + revision: 9d3d4d97 + version: 1.0.0 + schema: + $ref: '#/components/schemas/getAppVersion_200_response' + description: Application version. + "422": + content: + application/json: + example: + errors: + - code: SomeCode + message: some error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - code: Unexpected + message: Server Internal error + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + security: [] + tags: + - Cycloid +security: + - api_key: [] + - api_key_query: [] +servers: + - url: https://http-api.cycloid.io/ +tags: + - description: Operation related to Cycloid's application. + name: Cycloid + - description: Operations for organizations. + name: Organizations + - description: Operations for teams which belong to an organization. + name: Organization teams + - description: Operations for projects which belong to an organization. + name: Organization projects + - description: Operations for members of an organization. + name: Organization members + - description: Operations for the authenticated user. + name: User + - description: Operations regarding pipelines in an organization. + name: Organization pipelines + - description: Operations on jobs belonging to a pipeline. + name: Organization pipelines jobs + - description: Operations on build of a job from a pipeline. + name: Organization pipelines jobs build + - description: Operations on the infrastructure of an organization + name: Organization Infrastructure + - description: Operations to perform on an environment associated to a project of an organization. + name: Organization Environments + - description: Operations on the logs of a project + name: Organization Logs + - description: Operations on the children of an organization + name: Organization Children + - description: Operations on the infrastructure policies of an organization + name: Organization Infrastructure Policies + - description: Operations on the subscriptions + name: Organization Subscriptions + - description: Operations related to estimating cost of infrastructure. + name: Cost Estimation + - description: Operations on KPIs of an organization + name: Organization kpis x-original-swagger-version: "2.0" diff --git a/out_code_spec.json b/out_code_spec.json index 16302f8..ef1bb87 100644 --- a/out_code_spec.json +++ b/out_code_spec.json @@ -32,15 +32,13 @@ { "name": "branch", "string": { - "computed_optional_required": "required", - "description": "Branch needs to be valid git repository branch" + "computed_optional_required": "required" } }, { "name": "canonical", "string": { "computed_optional_required": "computed_optional", - "description": "The canonical of an entity", "validators": [ { "custom": { @@ -72,7 +70,6 @@ "name": "credential_canonical", "string": { "computed_optional_required": "computed_optional", - "description": "The canonical of an entity", "validators": [ { "custom": { @@ -103,27 +100,14 @@ { "name": "name", "string": { - "computed_optional_required": "required", - "description": "The name of an entity", - "validators": [ - { - "custom": { - "imports": [ - { - "path": "github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator" - } - ], - "schema_definition": "stringvalidator.LengthAtLeast(1)" - } - } - ] + "computed_optional_required": "required" } }, { - "name": "owner", + "name": "on_create_team", "string": { "computed_optional_required": "computed_optional", - "description": "User canonical that owns this entity. If omitted then the person creating this\nentity will be assigned as owner. When a user is the owner of the entity he has\nall the permissions on it.\nIn case of API keys, the owner of API key is assigned as an owner. If \nAPI key has no owner, then no owner is set for entity as well.\n", + "description": "Team responsible for the maintenance of the underlying service catalogs\n", "validators": [ { "custom": { @@ -151,11 +135,24 @@ ] } }, + { + "name": "on_create_visibility", + "string": { + "computed_optional_required": "computed_optional", + "description": "The visibility setting allows to specify which visibility will be applied to stacks in this catalog repository.\nThis option is only applied during initial catalog repository creation, not for subsequent updates.\n" + } + }, + { + "name": "owner", + "string": { + "computed_optional_required": "computed_optional", + "description": "User canonical that owns this service catalog source. If omitted then the person\ncreating this service catalog source will be assigned as owner. When a user is the\nowner of a service catalog source they has all the permissions on it.\n" + } + }, { "name": "url", "string": { "computed_optional_required": "required", - "description": "GitURL represents all git URL formats we accept.\n", "validators": [ { "custom": { @@ -215,15 +212,13 @@ { "name": "branch", "string": { - "computed_optional_required": "required", - "description": "Branch needs to be valid git repository branch" + "computed_optional_required": "required" } }, { "name": "canonical", "string": { "computed_optional_required": "computed_optional", - "description": "The canonical of an entity", "validators": [ { "custom": { @@ -255,7 +250,6 @@ "name": "credential_canonical", "string": { "computed_optional_required": "required", - "description": "The canonical of an entity", "validators": [ { "custom": { @@ -286,34 +280,19 @@ { "name": "default", "bool": { - "computed_optional_required": "required", - "description": "Whether the given entity is default one" + "computed_optional_required": "required" } }, { "name": "name", "string": { - "computed_optional_required": "required", - "description": "The name of an entity", - "validators": [ - { - "custom": { - "imports": [ - { - "path": "github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator" - } - ], - "schema_definition": "stringvalidator.LengthAtLeast(1)" - } - } - ] + "computed_optional_required": "required" } }, { "name": "url", "string": { "computed_optional_required": "required", - "description": "GitURL represents all git URL formats we accept.\n", "validators": [ { "custom": { @@ -373,7 +352,7 @@ { "name": "body", "single_nested": { - "computed_optional_required": "required", + "computed_optional_required": "computed_optional", "attributes": [ { "name": "access_key", @@ -417,6 +396,24 @@ "computed_optional_required": "computed_optional" } }, + { + "name": "environment", + "string": { + "computed_optional_required": "computed_optional", + "validators": [ + { + "custom": { + "imports": [ + { + "path": "github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator" + } + ], + "schema_definition": "stringvalidator.OneOf(\n\"public\",\n\"usgovernment\",\n\"china\",\n\"german\",\n)" + } + } + ] + } + }, { "name": "json_key", "string": { @@ -473,7 +470,6 @@ "name": "canonical", "string": { "computed_optional_required": "computed_optional", - "description": "The canonical of an entity", "validators": [ { "custom": { @@ -504,59 +500,20 @@ { "name": "description", "string": { - "computed_optional_required": "computed_optional", - "description": "The description of an entity" + "computed_optional_required": "computed_optional" } }, { "name": "name", "string": { - "computed_optional_required": "required", - "description": "The name of an entity", - "validators": [ - { - "custom": { - "imports": [ - { - "path": "github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator" - } - ], - "schema_definition": "stringvalidator.LengthAtLeast(1)" - } - } - ] + "computed_optional_required": "required" } }, { "name": "owner", "string": { "computed_optional_required": "computed_optional", - "description": "User canonical that owns this entity. If omitted then the person creating this\nentity will be assigned as owner. When a user is the owner of the entity he has\nall the permissions on it.\nIn case of API keys, the owner of API key is assigned as an owner. If \nAPI key has no owner, then no owner is set for entity as well.\n", - "validators": [ - { - "custom": { - "imports": [ - { - "path": "github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator" - } - ], - "schema_definition": "stringvalidator.LengthBetween(3, 100)" - } - }, - { - "custom": { - "imports": [ - { - "path": "regexp" - }, - { - "path": "github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator" - } - ], - "schema_definition": "stringvalidator.RegexMatches(regexp.MustCompile(\"^[a-z0-9]+[a-z0-9\\\\-_]+[a-z0-9]+$\"), \"\")" - } - } - ] + "description": "User canonical that owns this credential. If omitted then the person creating this\ncredential will be assigned as owner. When a user is the owner of a credential he has\nall the permissions on it.\n" } }, { @@ -644,9 +601,16 @@ "attributes": [ { "name": "bucket", + "string": { + "computed_optional_required": "required", + "description": "The GCP bucket containing objects\n" + } + }, + { + "name": "container", "string": { "computed_optional_required": "computed_optional", - "description": "The AWS bucket containing objects\n" + "description": "The Swift container containing objects\n" } }, { @@ -656,6 +620,12 @@ "description": "A custom endpoint for the S3 API (default: s3.amazonaws.com)\n" } }, + { + "name": "engine", + "string": { + "computed_optional_required": "computed_optional" + } + }, { "name": "key", "string": { @@ -664,10 +634,17 @@ } }, { - "name": "region", + "name": "object", "string": { "computed_optional_required": "computed_optional", - "description": "The AWS region where the resource exists\n" + "description": "The swift object uniquely identifying an object in a container,\nwill be required if the EB is not default\n" + } + }, + { + "name": "region", + "string": { + "computed_optional_required": "required", + "description": "The Swift region where the resource exists\n" } }, { @@ -688,11 +665,81 @@ "description": "Representation of AWS storage for external backend.\nMust be matched with a credential of the \"aws\" type.\n" } }, + { + "name": "configuration", + "single_nested": { + "computed_optional_required": "required", + "attributes": [ + { + "name": "bucket", + "string": { + "computed_optional_required": "computed_optional", + "description": "The GCP bucket containing objects\n" + } + }, + { + "name": "container", + "string": { + "computed_optional_required": "computed_optional", + "description": "The Swift container containing objects\n" + } + }, + { + "name": "endpoint", + "string": { + "computed_optional_required": "computed_optional", + "description": "A custom endpoint for the S3 API (default: s3.amazonaws.com)\n" + } + }, + { + "name": "engine", + "string": { + "computed_optional_required": "required" + } + }, + { + "name": "key", + "string": { + "computed_optional_required": "computed_optional", + "description": "The S3 Key uniquely identifies an object in a bucket\n" + } + }, + { + "name": "object", + "string": { + "computed_optional_required": "computed_optional", + "description": "The swift object uniquely identifying an object in a container,\nwill be required if the EB is not default\n" + } + }, + { + "name": "region", + "string": { + "computed_optional_required": "computed_optional", + "description": "The Swift region where the resource exists\n" + } + }, + { + "name": "s3_force_path_style", + "bool": { + "computed_optional_required": "computed_optional", + "description": "Always use path-style S3 URLs (https://\u003cHOST\u003e/\u003cBUCKET\u003e instead of https://\u003cBUCKET\u003e.\u003cHOST\u003e)\n" + } + }, + { + "name": "skip_verify_ssl", + "bool": { + "computed_optional_required": "computed_optional", + "description": "Set this to `true` to not verify SSL certificates\n" + } + } + ] + } + }, { "name": "credential_canonical", "string": { "computed_optional_required": "computed_optional", - "description": "The canonical of an entity", + "description": "The type of the credential must be one of: [\"aws\", \"azure_storage\", \"elasticsearch\", \"gcp\", \"swift\", \"vmware\"]\n", "validators": [ { "custom": { @@ -724,13 +771,13 @@ "name": "default", "bool": { "computed_optional_required": "computed_optional", - "description": "Whether the given entity is default one" + "description": "Will mark this EB as default for the specific purpose" } }, { "name": "engine", "string": { - "computed_optional_required": "required", + "computed_optional_required": "computed_optional", "validators": [ { "custom": { @@ -749,7 +796,6 @@ "name": "environment_canonical", "string": { "computed_optional_required": "computed_optional", - "description": "The canonical of an entity", "validators": [ { "custom": { @@ -785,15 +831,63 @@ { "name": "bucket", "string": { - "computed_optional_required": "computed_optional", + "computed_optional_required": "required", "description": "The GCP bucket containing objects\n" } }, + { + "name": "container", + "string": { + "computed_optional_required": "computed_optional", + "description": "The Swift container containing objects\n" + } + }, + { + "name": "endpoint", + "string": { + "computed_optional_required": "computed_optional", + "description": "A custom endpoint for the S3 API (default: s3.amazonaws.com)\n" + } + }, + { + "name": "engine", + "string": { + "computed_optional_required": "computed_optional" + } + }, + { + "name": "key", + "string": { + "computed_optional_required": "computed_optional", + "description": "The S3 Key uniquely identifies an object in a bucket\n" + } + }, { "name": "object", "string": { "computed_optional_required": "computed_optional", - "description": "The GCP object uniquely identifying an object in a bucket,\nwill be required if the EB is not default\n" + "description": "The swift object uniquely identifying an object in a container,\nwill be required if the EB is not default\n" + } + }, + { + "name": "region", + "string": { + "computed_optional_required": "computed_optional", + "description": "The Swift region where the resource exists\n" + } + }, + { + "name": "s3_force_path_style", + "bool": { + "computed_optional_required": "computed_optional", + "description": "Always use path-style S3 URLs (https://\u003cHOST\u003e/\u003cBUCKET\u003e instead of https://\u003cBUCKET\u003e.\u003cHOST\u003e)\n" + } + }, + { + "name": "skip_verify_ssl", + "bool": { + "computed_optional_required": "computed_optional", + "description": "Set this to `true` to not verify SSL certificates\n" } } ], @@ -804,7 +898,6 @@ "name": "project_canonical", "string": { "computed_optional_required": "computed_optional", - "description": "The canonical of an entity", "validators": [ { "custom": { @@ -844,7 +937,7 @@ "path": "github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator" } ], - "schema_definition": "stringvalidator.OneOf(\n\"remote_tfstate\",\n)" + "schema_definition": "stringvalidator.OneOf(\n\"events\",\n\"logs\",\n\"remote_tfstate\",\n\"cost_explorer\",\n)" } } ] @@ -856,12 +949,39 @@ "computed_optional_required": "computed_optional", "attributes": [ { - "name": "container", + "name": "bucket", "string": { "computed_optional_required": "computed_optional", + "description": "The GCP bucket containing objects\n" + } + }, + { + "name": "container", + "string": { + "computed_optional_required": "required", "description": "The Swift container containing objects\n" } }, + { + "name": "endpoint", + "string": { + "computed_optional_required": "computed_optional", + "description": "A custom endpoint for the S3 API (default: s3.amazonaws.com)\n" + } + }, + { + "name": "engine", + "string": { + "computed_optional_required": "computed_optional" + } + }, + { + "name": "key", + "string": { + "computed_optional_required": "computed_optional", + "description": "The S3 Key uniquely identifies an object in a bucket\n" + } + }, { "name": "object", "string": { @@ -872,10 +992,17 @@ { "name": "region", "string": { - "computed_optional_required": "computed_optional", + "computed_optional_required": "required", "description": "The Swift region where the resource exists\n" } }, + { + "name": "s3_force_path_style", + "bool": { + "computed_optional_required": "computed_optional", + "description": "Always use path-style S3 URLs (https://\u003cHOST\u003e/\u003cBUCKET\u003e instead of https://\u003cBUCKET\u003e.\u003cHOST\u003e)\n" + } + }, { "name": "skip_verify_ssl", "bool": { @@ -937,7 +1064,6 @@ "name": "canonical", "string": { "computed_optional_required": "computed_optional", - "description": "The canonical of an entity", "validators": [ { "custom": { @@ -988,6 +1114,204 @@ "single_nested": { "computed_optional_required": "computed", "attributes": [ + { + "name": "admins", + "list_nested": { + "computed_optional_required": "computed", + "nested_object": { + "attributes": [ + { + "name": "created_at", + "int64": { + "computed_optional_required": "computed", + "description": "When the user became a member." + } + }, + { + "name": "email", + "string": { + "computed_optional_required": "computed", + "description": "user email" + } + }, + { + "name": "family_name", + "string": { + "computed_optional_required": "computed" + } + }, + { + "name": "given_name", + "string": { + "computed_optional_required": "computed" + } + }, + { + "name": "id", + "int64": { + "computed_optional_required": "computed" + } + }, + { + "name": "invitation_email", + "string": { + "computed_optional_required": "computed", + "description": "The email address to which the invitation was sent. It's used to resend the invitation." + } + }, + { + "name": "invitation_resent_at", + "int64": { + "computed_optional_required": "computed" + } + }, + { + "name": "invitation_state", + "string": { + "computed_optional_required": "computed" + } + }, + { + "name": "invited_at", + "int64": { + "computed_optional_required": "computed", + "description": "When the user had been invited to join as a member. When not present, the user is already a member, so she/he has verified her/his invitation." + } + }, + { + "name": "last_login_at", + "int64": { + "computed_optional_required": "computed", + "description": "When the user logged in last time." + } + }, + { + "name": "locale", + "string": { + "computed_optional_required": "computed", + "description": "User's preferred language" + } + }, + { + "name": "mfa_enabled", + "bool": { + "computed_optional_required": "computed" + } + }, + { + "name": "picture_url", + "string": { + "computed_optional_required": "computed" + } + }, + { + "name": "role", + "single_nested": { + "computed_optional_required": "computed", + "attributes": [ + { + "name": "canonical", + "string": { + "computed_optional_required": "computed" + } + }, + { + "name": "created_at", + "int64": { + "computed_optional_required": "computed" + } + }, + { + "name": "default", + "bool": { + "computed_optional_required": "computed" + } + }, + { + "name": "description", + "string": { + "computed_optional_required": "computed" + } + }, + { + "name": "id", + "int64": { + "computed_optional_required": "computed" + } + }, + { + "name": "name", + "string": { + "computed_optional_required": "computed" + } + }, + { + "name": "rules", + "list_nested": { + "computed_optional_required": "computed", + "nested_object": { + "attributes": [ + { + "name": "action", + "string": { + "computed_optional_required": "computed", + "description": "It can be the normal Policy.Code or contain globs like `*` or `**`" + } + }, + { + "name": "effect", + "string": { + "computed_optional_required": "computed" + } + }, + { + "name": "id", + "int64": { + "computed_optional_required": "computed", + "description": "This is the id of the row from the database, but for blocking organizations we generate rules that are not in the database. When this happens the id is allowed to be 0." + } + }, + { + "name": "resources", + "list": { + "computed_optional_required": "computed", + "element_type": { + "string": {} + }, + "description": "It is the list of resources in which this Rule applies to, the format of it is the one on the Policy.Code but with the `canonical` of the entities like `organization:org-can:team:team-can` for an action of `organization:team:read`" + } + } + ] + } + } + }, + { + "name": "updated_at", + "int64": { + "computed_optional_required": "computed" + } + } + ], + "description": "Role represents the authorization level that an user has to access to a specific entity of the system. A role contains a list of rules to define the access control. Note not all the entities supports roles access control; see the API endpoints to know which entities support them." + } + }, + { + "name": "updated_at", + "int64": { + "computed_optional_required": "computed", + "description": "When the user had the role modified." + } + }, + { + "name": "username", + "string": { + "computed_optional_required": "computed" + } + } + ] + } + } + }, { "name": "appearance", "single_nested": { @@ -996,8 +1320,7 @@ { "name": "canonical", "string": { - "computed_optional_required": "computed", - "description": "The canonical of an entity" + "computed_optional_required": "computed" } }, { @@ -1032,8 +1355,7 @@ { "name": "created_at", "int64": { - "computed_optional_required": "computed", - "description": "The time of creation of the entity" + "computed_optional_required": "computed" } }, { @@ -1069,8 +1391,7 @@ { "name": "name", "string": { - "computed_optional_required": "computed", - "description": "The name of an entity" + "computed_optional_required": "computed" } }, { @@ -1082,8 +1403,7 @@ { "name": "updated_at", "int64": { - "computed_optional_required": "computed", - "description": "The time of the last update of the entity" + "computed_optional_required": "computed" } } ], @@ -1114,8 +1434,7 @@ { "name": "canonical", "string": { - "computed_optional_required": "computed", - "description": "The canonical of an entity" + "computed_optional_required": "computed" } }, { @@ -1139,8 +1458,7 @@ { "name": "created_at", "int64": { - "computed_optional_required": "computed", - "description": "The time of creation of the entity" + "computed_optional_required": "computed" } }, { @@ -1152,8 +1470,7 @@ { "name": "id", "int64": { - "computed_optional_required": "computed", - "description": "ID represents the id of the entity" + "computed_optional_required": "computed" } }, { @@ -1205,8 +1522,7 @@ { "name": "canonical", "string": { - "computed_optional_required": "computed", - "description": "The canonical of an entity" + "computed_optional_required": "computed" } }, { @@ -1226,8 +1542,7 @@ { "name": "updated_at", "int64": { - "computed_optional_required": "computed", - "description": "The time of the last update of the entity" + "computed_optional_required": "computed" } } ], @@ -1284,7 +1599,7 @@ "name": "role_canonical", "string": { "computed_optional_required": "required", - "description": "The canonical of an entity", + "description": "The role of the member.", "validators": [ { "custom": { diff --git a/provider/catalog_repository_resource.go b/provider/catalog_repository_resource.go index eed33d6..585e874 100644 --- a/provider/catalog_repository_resource.go +++ b/provider/catalog_repository_resource.go @@ -66,8 +66,10 @@ func (r *catalogRepositoryResource) Create(ctx context.Context, req resource.Cre url := data.Url.ValueString() branch := data.Branch.ValueString() credCan := data.CredentialCanonical.ValueString() + visibility := data.OnCreateVisibility.ValueString() + team := data.OnCreateTeam.ValueString() - cr, err := mid.CreateCatalogRepository(orgCan, name, url, branch, credCan) + cr, err := mid.CreateCatalogRepository(orgCan, name, url, branch, credCan, visibility, team) if err != nil { resp.Diagnostics.AddError( "Unable create catalog repository", diff --git a/resource_catalog_repository/catalog_repository_resource_gen.go b/resource_catalog_repository/catalog_repository_resource_gen.go index 1be559e..badeae9 100644 --- a/resource_catalog_repository/catalog_repository_resource_gen.go +++ b/resource_catalog_repository/catalog_repository_resource_gen.go @@ -16,38 +16,43 @@ func CatalogRepositoryResourceSchema(ctx context.Context) schema.Schema { return schema.Schema{ Attributes: map[string]schema.Attribute{ "branch": schema.StringAttribute{ - Required: true, - Description: "Branch needs to be valid git repository branch", - MarkdownDescription: "Branch needs to be valid git repository branch", + Required: true, }, "canonical": schema.StringAttribute{ - Optional: true, - Computed: true, - Description: "The canonical of an entity", - MarkdownDescription: "The canonical of an entity", + Optional: true, + Computed: true, Validators: []validator.String{ stringvalidator.LengthBetween(3, 100), stringvalidator.RegexMatches(regexp.MustCompile("^[a-z0-9]+[a-z0-9\\-_]+[a-z0-9]+$"), ""), }, }, "credential_canonical": schema.StringAttribute{ - Optional: true, - Computed: true, - Description: "The canonical of an entity", - MarkdownDescription: "The canonical of an entity", + Optional: true, + Computed: true, Validators: []validator.String{ stringvalidator.LengthBetween(3, 100), stringvalidator.RegexMatches(regexp.MustCompile("^[a-z0-9]+[a-z0-9\\-_]+[a-z0-9]+$"), ""), }, }, "name": schema.StringAttribute{ - Required: true, - Description: "The name of an entity", - MarkdownDescription: "The name of an entity", + Required: true, + }, + "on_create_team": schema.StringAttribute{ + Optional: true, + Computed: true, + Description: "Team responsible for the maintenance of the underlying service catalogs\n", + MarkdownDescription: "Team responsible for the maintenance of the underlying service catalogs\n", Validators: []validator.String{ - stringvalidator.LengthAtLeast(1), + stringvalidator.LengthBetween(3, 100), + stringvalidator.RegexMatches(regexp.MustCompile("^[a-z0-9]+[a-z0-9\\-_]+[a-z0-9]+$"), ""), }, }, + "on_create_visibility": schema.StringAttribute{ + Optional: true, + Computed: true, + Description: "The visibility setting allows to specify which visibility will be applied to stacks in this catalog repository.\nThis option is only applied during initial catalog repository creation, not for subsequent updates.\n", + MarkdownDescription: "The visibility setting allows to specify which visibility will be applied to stacks in this catalog repository.\nThis option is only applied during initial catalog repository creation, not for subsequent updates.\n", + }, "organization_canonical": schema.StringAttribute{ Optional: true, Computed: true, @@ -61,17 +66,11 @@ func CatalogRepositoryResourceSchema(ctx context.Context) schema.Schema { "owner": schema.StringAttribute{ Optional: true, Computed: true, - Description: "User canonical that owns this entity. If omitted then the person creating this\nentity will be assigned as owner. When a user is the owner of the entity he has\nall the permissions on it.\nIn case of API keys, the owner of API key is assigned as an owner. If \nAPI key has no owner, then no owner is set for entity as well.\n", - MarkdownDescription: "User canonical that owns this entity. If omitted then the person creating this\nentity will be assigned as owner. When a user is the owner of the entity he has\nall the permissions on it.\nIn case of API keys, the owner of API key is assigned as an owner. If \nAPI key has no owner, then no owner is set for entity as well.\n", - Validators: []validator.String{ - stringvalidator.LengthBetween(3, 100), - stringvalidator.RegexMatches(regexp.MustCompile("^[a-z0-9]+[a-z0-9\\-_]+[a-z0-9]+$"), ""), - }, + Description: "User canonical that owns this service catalog source. If omitted then the person\ncreating this service catalog source will be assigned as owner. When a user is the\nowner of a service catalog source they has all the permissions on it.\n", + MarkdownDescription: "User canonical that owns this service catalog source. If omitted then the person\ncreating this service catalog source will be assigned as owner. When a user is the\nowner of a service catalog source they has all the permissions on it.\n", }, "url": schema.StringAttribute{ - Required: true, - Description: "GitURL represents all git URL formats we accept.\n", - MarkdownDescription: "GitURL represents all git URL formats we accept.\n", + Required: true, Validators: []validator.String{ stringvalidator.RegexMatches(regexp.MustCompile("^((/|~)[^/]*)+.(\\.git)|(([\\w\\]+@[\\w\\.]+))(:(//)?)([\\w\\.@\\:/\\-~]+)(/)?"), ""), }, @@ -85,6 +84,8 @@ type CatalogRepositoryModel struct { Canonical types.String `tfsdk:"canonical"` CredentialCanonical types.String `tfsdk:"credential_canonical"` Name types.String `tfsdk:"name"` + OnCreateTeam types.String `tfsdk:"on_create_team"` + OnCreateVisibility types.String `tfsdk:"on_create_visibility"` OrganizationCanonical types.String `tfsdk:"organization_canonical"` Owner types.String `tfsdk:"owner"` Url types.String `tfsdk:"url"` diff --git a/resource_config_repository/config_repository_resource_gen.go b/resource_config_repository/config_repository_resource_gen.go index 9e35f6f..75ca6d2 100644 --- a/resource_config_repository/config_repository_resource_gen.go +++ b/resource_config_repository/config_repository_resource_gen.go @@ -16,41 +16,28 @@ func ConfigRepositoryResourceSchema(ctx context.Context) schema.Schema { return schema.Schema{ Attributes: map[string]schema.Attribute{ "branch": schema.StringAttribute{ - Required: true, - Description: "Branch needs to be valid git repository branch", - MarkdownDescription: "Branch needs to be valid git repository branch", + Required: true, }, "canonical": schema.StringAttribute{ - Optional: true, - Computed: true, - Description: "The canonical of an entity", - MarkdownDescription: "The canonical of an entity", + Optional: true, + Computed: true, Validators: []validator.String{ stringvalidator.LengthBetween(3, 100), stringvalidator.RegexMatches(regexp.MustCompile("^[a-z0-9]+[a-z0-9\\-_]+[a-z0-9]+$"), ""), }, }, "credential_canonical": schema.StringAttribute{ - Required: true, - Description: "The canonical of an entity", - MarkdownDescription: "The canonical of an entity", + Required: true, Validators: []validator.String{ stringvalidator.LengthBetween(3, 100), stringvalidator.RegexMatches(regexp.MustCompile("^[a-z0-9]+[a-z0-9\\-_]+[a-z0-9]+$"), ""), }, }, "default": schema.BoolAttribute{ - Required: true, - Description: "Whether the given entity is default one", - MarkdownDescription: "Whether the given entity is default one", + Required: true, }, "name": schema.StringAttribute{ - Required: true, - Description: "The name of an entity", - MarkdownDescription: "The name of an entity", - Validators: []validator.String{ - stringvalidator.LengthAtLeast(1), - }, + Required: true, }, "organization_canonical": schema.StringAttribute{ Optional: true, @@ -63,9 +50,7 @@ func ConfigRepositoryResourceSchema(ctx context.Context) schema.Schema { }, }, "url": schema.StringAttribute{ - Required: true, - Description: "GitURL represents all git URL formats we accept.\n", - MarkdownDescription: "GitURL represents all git URL formats we accept.\n", + Required: true, Validators: []validator.String{ stringvalidator.RegexMatches(regexp.MustCompile("^((/|~)[^/]*)+.(\\.git)|(([\\w\\]+@[\\w\\.]+))(:(//)?)([\\w\\.@\\:/\\-~]+)(/)?"), ""), }, diff --git a/resource_credential/credential_resource_gen.go b/resource_credential/credential_resource_gen.go index e4099ad..f3889e2 100644 --- a/resource_credential/credential_resource_gen.go +++ b/resource_credential/credential_resource_gen.go @@ -51,6 +51,18 @@ func CredentialResourceSchema(ctx context.Context) schema.Schema { Optional: true, Computed: true, }, + "environment": schema.StringAttribute{ + Optional: true, + Computed: true, + Validators: []validator.String{ + stringvalidator.OneOf( + "public", + "usgovernment", + "china", + "german", + ), + }, + }, "json_key": schema.StringAttribute{ Optional: true, Computed: true, @@ -95,33 +107,25 @@ func CredentialResourceSchema(ctx context.Context) schema.Schema { AttrTypes: BodyValue{}.AttributeTypes(ctx), }, }, - Required: true, + Optional: true, + Computed: true, Description: "All the possible fields inside it", MarkdownDescription: "All the possible fields inside it", }, "canonical": schema.StringAttribute{ - Optional: true, - Computed: true, - Description: "The canonical of an entity", - MarkdownDescription: "The canonical of an entity", + Optional: true, + Computed: true, Validators: []validator.String{ stringvalidator.LengthBetween(3, 100), stringvalidator.RegexMatches(regexp.MustCompile("^[a-z0-9]+[a-z0-9\\-_]+[a-z0-9]+$"), ""), }, }, "description": schema.StringAttribute{ - Optional: true, - Computed: true, - Description: "The description of an entity", - MarkdownDescription: "The description of an entity", + Optional: true, + Computed: true, }, "name": schema.StringAttribute{ - Required: true, - Description: "The name of an entity", - MarkdownDescription: "The name of an entity", - Validators: []validator.String{ - stringvalidator.LengthAtLeast(1), - }, + Required: true, }, "organization_canonical": schema.StringAttribute{ Optional: true, @@ -136,12 +140,8 @@ func CredentialResourceSchema(ctx context.Context) schema.Schema { "owner": schema.StringAttribute{ Optional: true, Computed: true, - Description: "User canonical that owns this entity. If omitted then the person creating this\nentity will be assigned as owner. When a user is the owner of the entity he has\nall the permissions on it.\nIn case of API keys, the owner of API key is assigned as an owner. If \nAPI key has no owner, then no owner is set for entity as well.\n", - MarkdownDescription: "User canonical that owns this entity. If omitted then the person creating this\nentity will be assigned as owner. When a user is the owner of the entity he has\nall the permissions on it.\nIn case of API keys, the owner of API key is assigned as an owner. If \nAPI key has no owner, then no owner is set for entity as well.\n", - Validators: []validator.String{ - stringvalidator.LengthBetween(3, 100), - stringvalidator.RegexMatches(regexp.MustCompile("^[a-z0-9]+[a-z0-9\\-_]+[a-z0-9]+$"), ""), - }, + Description: "User canonical that owns this credential. If omitted then the person creating this\ncredential will be assigned as owner. When a user is the owner of a credential he has\nall the permissions on it.\n", + MarkdownDescription: "User canonical that owns this credential. If omitted then the person creating this\ncredential will be assigned as owner. When a user is the owner of a credential he has\nall the permissions on it.\n", }, "path": schema.StringAttribute{ Required: true, @@ -332,6 +332,24 @@ func (t BodyType) ValueFromObject(ctx context.Context, in basetypes.ObjectValue) fmt.Sprintf(`domain_id expected to be basetypes.StringValue, was: %T`, domainIdAttribute)) } + environmentAttribute, ok := attributes["environment"] + + if !ok { + diags.AddError( + "Attribute Missing", + `environment is missing from object`) + + return nil, diags + } + + environmentVal, ok := environmentAttribute.(basetypes.StringValue) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`environment expected to be basetypes.StringValue, was: %T`, environmentAttribute)) + } + jsonKeyAttribute, ok := attributes["json_key"] if !ok { @@ -488,6 +506,7 @@ func (t BodyType) ValueFromObject(ctx context.Context, in basetypes.ObjectValue) ClientId: clientIdVal, ClientSecret: clientSecretVal, DomainId: domainIdVal, + Environment: environmentVal, JsonKey: jsonKeyVal, Password: passwordVal, Raw: rawVal, @@ -689,6 +708,24 @@ func NewBodyValue(attributeTypes map[string]attr.Type, attributes map[string]att fmt.Sprintf(`domain_id expected to be basetypes.StringValue, was: %T`, domainIdAttribute)) } + environmentAttribute, ok := attributes["environment"] + + if !ok { + diags.AddError( + "Attribute Missing", + `environment is missing from object`) + + return NewBodyValueUnknown(), diags + } + + environmentVal, ok := environmentAttribute.(basetypes.StringValue) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`environment expected to be basetypes.StringValue, was: %T`, environmentAttribute)) + } + jsonKeyAttribute, ok := attributes["json_key"] if !ok { @@ -845,6 +882,7 @@ func NewBodyValue(attributeTypes map[string]attr.Type, attributes map[string]att ClientId: clientIdVal, ClientSecret: clientSecretVal, DomainId: domainIdVal, + Environment: environmentVal, JsonKey: jsonKeyVal, Password: passwordVal, Raw: rawVal, @@ -932,6 +970,7 @@ type BodyValue struct { ClientId basetypes.StringValue `tfsdk:"client_id"` ClientSecret basetypes.StringValue `tfsdk:"client_secret"` DomainId basetypes.StringValue `tfsdk:"domain_id"` + Environment basetypes.StringValue `tfsdk:"environment"` JsonKey basetypes.StringValue `tfsdk:"json_key"` Password basetypes.StringValue `tfsdk:"password"` Raw basetypes.ObjectValue `tfsdk:"raw"` @@ -944,7 +983,7 @@ type BodyValue struct { } func (v BodyValue) ToTerraformValue(ctx context.Context) (tftypes.Value, error) { - attrTypes := make(map[string]tftypes.Type, 15) + attrTypes := make(map[string]tftypes.Type, 16) var val tftypes.Value var err error @@ -956,6 +995,7 @@ func (v BodyValue) ToTerraformValue(ctx context.Context) (tftypes.Value, error) attrTypes["client_id"] = basetypes.StringType{}.TerraformType(ctx) attrTypes["client_secret"] = basetypes.StringType{}.TerraformType(ctx) attrTypes["domain_id"] = basetypes.StringType{}.TerraformType(ctx) + attrTypes["environment"] = basetypes.StringType{}.TerraformType(ctx) attrTypes["json_key"] = basetypes.StringType{}.TerraformType(ctx) attrTypes["password"] = basetypes.StringType{}.TerraformType(ctx) attrTypes["raw"] = basetypes.ObjectType{ @@ -971,7 +1011,7 @@ func (v BodyValue) ToTerraformValue(ctx context.Context) (tftypes.Value, error) switch v.state { case attr.ValueStateKnown: - vals := make(map[string]tftypes.Value, 15) + vals := make(map[string]tftypes.Value, 16) val, err = v.AccessKey.ToTerraformValue(ctx) @@ -1029,6 +1069,14 @@ func (v BodyValue) ToTerraformValue(ctx context.Context) (tftypes.Value, error) vals["domain_id"] = val + val, err = v.Environment.ToTerraformValue(ctx) + + if err != nil { + return tftypes.NewValue(objectType, tftypes.UnknownValue), err + } + + vals["environment"] = val + val, err = v.JsonKey.ToTerraformValue(ctx) if err != nil { @@ -1143,26 +1191,37 @@ func (v BodyValue) ToObjectValue(ctx context.Context) (basetypes.ObjectValue, di ) } - objVal, diags := types.ObjectValue( - map[string]attr.Type{ - "access_key": basetypes.StringType{}, - "account_name": basetypes.StringType{}, - "auth_url": basetypes.StringType{}, - "ca_cert": basetypes.StringType{}, - "client_id": basetypes.StringType{}, - "client_secret": basetypes.StringType{}, - "domain_id": basetypes.StringType{}, - "json_key": basetypes.StringType{}, - "password": basetypes.StringType{}, - "raw": basetypes.ObjectType{ - AttrTypes: RawValue{}.AttributeTypes(ctx), - }, - "secret_key": basetypes.StringType{}, - "ssh_key": basetypes.StringType{}, - "subscription_id": basetypes.StringType{}, - "tenant_id": basetypes.StringType{}, - "username": basetypes.StringType{}, + attributeTypes := map[string]attr.Type{ + "access_key": basetypes.StringType{}, + "account_name": basetypes.StringType{}, + "auth_url": basetypes.StringType{}, + "ca_cert": basetypes.StringType{}, + "client_id": basetypes.StringType{}, + "client_secret": basetypes.StringType{}, + "domain_id": basetypes.StringType{}, + "environment": basetypes.StringType{}, + "json_key": basetypes.StringType{}, + "password": basetypes.StringType{}, + "raw": basetypes.ObjectType{ + AttrTypes: RawValue{}.AttributeTypes(ctx), }, + "secret_key": basetypes.StringType{}, + "ssh_key": basetypes.StringType{}, + "subscription_id": basetypes.StringType{}, + "tenant_id": basetypes.StringType{}, + "username": basetypes.StringType{}, + } + + if v.IsNull() { + return types.ObjectNull(attributeTypes), diags + } + + if v.IsUnknown() { + return types.ObjectUnknown(attributeTypes), diags + } + + objVal, diags := types.ObjectValue( + attributeTypes, map[string]attr.Value{ "access_key": v.AccessKey, "account_name": v.AccountName, @@ -1171,6 +1230,7 @@ func (v BodyValue) ToObjectValue(ctx context.Context) (basetypes.ObjectValue, di "client_id": v.ClientId, "client_secret": v.ClientSecret, "domain_id": v.DomainId, + "environment": v.Environment, "json_key": v.JsonKey, "password": v.Password, "raw": raw, @@ -1227,6 +1287,10 @@ func (v BodyValue) Equal(o attr.Value) bool { return false } + if !v.Environment.Equal(other.Environment) { + return false + } + if !v.JsonKey.Equal(other.JsonKey) { return false } @@ -1279,6 +1343,7 @@ func (v BodyValue) AttributeTypes(ctx context.Context) map[string]attr.Type { "client_id": basetypes.StringType{}, "client_secret": basetypes.StringType{}, "domain_id": basetypes.StringType{}, + "environment": basetypes.StringType{}, "json_key": basetypes.StringType{}, "password": basetypes.StringType{}, "raw": basetypes.ObjectType{ @@ -1505,8 +1570,18 @@ func (v RawValue) String() string { func (v RawValue) ToObjectValue(ctx context.Context) (basetypes.ObjectValue, diag.Diagnostics) { var diags diag.Diagnostics + attributeTypes := map[string]attr.Type{} + + if v.IsNull() { + return types.ObjectNull(attributeTypes), diags + } + + if v.IsUnknown() { + return types.ObjectUnknown(attributeTypes), diags + } + objVal, diags := types.ObjectValue( - map[string]attr.Type{}, + attributeTypes, map[string]attr.Value{}) return objVal, diags diff --git a/resource_external_backend/external_backend_resource_gen.go b/resource_external_backend/external_backend_resource_gen.go index 5078a50..3c9e3db 100644 --- a/resource_external_backend/external_backend_resource_gen.go +++ b/resource_external_backend/external_backend_resource_gen.go @@ -24,10 +24,15 @@ func ExternalBackendResourceSchema(ctx context.Context) schema.Schema { "aws_storage": schema.SingleNestedAttribute{ Attributes: map[string]schema.Attribute{ "bucket": schema.StringAttribute{ + Required: true, + Description: "The GCP bucket containing objects\n", + MarkdownDescription: "The GCP bucket containing objects\n", + }, + "container": schema.StringAttribute{ Optional: true, Computed: true, - Description: "The AWS bucket containing objects\n", - MarkdownDescription: "The AWS bucket containing objects\n", + Description: "The Swift container containing objects\n", + MarkdownDescription: "The Swift container containing objects\n", }, "endpoint": schema.StringAttribute{ Optional: true, @@ -35,17 +40,26 @@ func ExternalBackendResourceSchema(ctx context.Context) schema.Schema { Description: "A custom endpoint for the S3 API (default: s3.amazonaws.com)\n", MarkdownDescription: "A custom endpoint for the S3 API (default: s3.amazonaws.com)\n", }, + "engine": schema.StringAttribute{ + Optional: true, + Computed: true, + }, "key": schema.StringAttribute{ Optional: true, Computed: true, Description: "The S3 Key uniquely identifies an object in a bucket\n", MarkdownDescription: "The S3 Key uniquely identifies an object in a bucket\n", }, - "region": schema.StringAttribute{ + "object": schema.StringAttribute{ Optional: true, Computed: true, - Description: "The AWS region where the resource exists\n", - MarkdownDescription: "The AWS region where the resource exists\n", + Description: "The swift object uniquely identifying an object in a container,\nwill be required if the EB is not default\n", + MarkdownDescription: "The swift object uniquely identifying an object in a container,\nwill be required if the EB is not default\n", + }, + "region": schema.StringAttribute{ + Required: true, + Description: "The Swift region where the resource exists\n", + MarkdownDescription: "The Swift region where the resource exists\n", }, "s3_force_path_style": schema.BoolAttribute{ Optional: true, @@ -70,11 +84,72 @@ func ExternalBackendResourceSchema(ctx context.Context) schema.Schema { Description: "Representation of AWS storage for external backend.\nMust be matched with a credential of the \"aws\" type.\n", MarkdownDescription: "Representation of AWS storage for external backend.\nMust be matched with a credential of the \"aws\" type.\n", }, + "configuration": schema.SingleNestedAttribute{ + Attributes: map[string]schema.Attribute{ + "bucket": schema.StringAttribute{ + Optional: true, + Computed: true, + Description: "The GCP bucket containing objects\n", + MarkdownDescription: "The GCP bucket containing objects\n", + }, + "container": schema.StringAttribute{ + Optional: true, + Computed: true, + Description: "The Swift container containing objects\n", + MarkdownDescription: "The Swift container containing objects\n", + }, + "endpoint": schema.StringAttribute{ + Optional: true, + Computed: true, + Description: "A custom endpoint for the S3 API (default: s3.amazonaws.com)\n", + MarkdownDescription: "A custom endpoint for the S3 API (default: s3.amazonaws.com)\n", + }, + "engine": schema.StringAttribute{ + Required: true, + }, + "key": schema.StringAttribute{ + Optional: true, + Computed: true, + Description: "The S3 Key uniquely identifies an object in a bucket\n", + MarkdownDescription: "The S3 Key uniquely identifies an object in a bucket\n", + }, + "object": schema.StringAttribute{ + Optional: true, + Computed: true, + Description: "The swift object uniquely identifying an object in a container,\nwill be required if the EB is not default\n", + MarkdownDescription: "The swift object uniquely identifying an object in a container,\nwill be required if the EB is not default\n", + }, + "region": schema.StringAttribute{ + Optional: true, + Computed: true, + Description: "The Swift region where the resource exists\n", + MarkdownDescription: "The Swift region where the resource exists\n", + }, + "s3_force_path_style": schema.BoolAttribute{ + Optional: true, + Computed: true, + Description: "Always use path-style S3 URLs (https:/// instead of https://.)\n", + MarkdownDescription: "Always use path-style S3 URLs (https:/// instead of https://.)\n", + }, + "skip_verify_ssl": schema.BoolAttribute{ + Optional: true, + Computed: true, + Description: "Set this to `true` to not verify SSL certificates\n", + MarkdownDescription: "Set this to `true` to not verify SSL certificates\n", + }, + }, + CustomType: ConfigurationType{ + ObjectType: types.ObjectType{ + AttrTypes: ConfigurationValue{}.AttributeTypes(ctx), + }, + }, + Required: true, + }, "credential_canonical": schema.StringAttribute{ Optional: true, Computed: true, - Description: "The canonical of an entity", - MarkdownDescription: "The canonical of an entity", + Description: "The type of the credential must be one of: [\"aws\", \"azure_storage\", \"elasticsearch\", \"gcp\", \"swift\", \"vmware\"]\n", + MarkdownDescription: "The type of the credential must be one of: [\"aws\", \"azure_storage\", \"elasticsearch\", \"gcp\", \"swift\", \"vmware\"]\n", Validators: []validator.String{ stringvalidator.LengthBetween(3, 100), stringvalidator.RegexMatches(regexp.MustCompile("^[a-z0-9]+[a-z0-9\\-_]+[a-z0-9]+$"), ""), @@ -83,11 +158,12 @@ func ExternalBackendResourceSchema(ctx context.Context) schema.Schema { "default": schema.BoolAttribute{ Optional: true, Computed: true, - Description: "Whether the given entity is default one", - MarkdownDescription: "Whether the given entity is default one", + Description: "Will mark this EB as default for the specific purpose", + MarkdownDescription: "Will mark this EB as default for the specific purpose", }, "engine": schema.StringAttribute{ - Required: true, + Optional: true, + Computed: true, Validators: []validator.String{ stringvalidator.OneOf( "aws_storage", @@ -97,10 +173,8 @@ func ExternalBackendResourceSchema(ctx context.Context) schema.Schema { }, }, "environment_canonical": schema.StringAttribute{ - Optional: true, - Computed: true, - Description: "The canonical of an entity", - MarkdownDescription: "The canonical of an entity", + Optional: true, + Computed: true, Validators: []validator.String{ stringvalidator.LengthBetween(1, 100), stringvalidator.RegexMatches(regexp.MustCompile("^[\\da-zA-Z]+(?:(?:[\\da-zA-Z\\-._]+)?[\\da-zA-Z])?$"), ""), @@ -115,16 +189,55 @@ func ExternalBackendResourceSchema(ctx context.Context) schema.Schema { "gcp_storage": schema.SingleNestedAttribute{ Attributes: map[string]schema.Attribute{ "bucket": schema.StringAttribute{ - Optional: true, - Computed: true, + Required: true, Description: "The GCP bucket containing objects\n", MarkdownDescription: "The GCP bucket containing objects\n", }, + "container": schema.StringAttribute{ + Optional: true, + Computed: true, + Description: "The Swift container containing objects\n", + MarkdownDescription: "The Swift container containing objects\n", + }, + "endpoint": schema.StringAttribute{ + Optional: true, + Computed: true, + Description: "A custom endpoint for the S3 API (default: s3.amazonaws.com)\n", + MarkdownDescription: "A custom endpoint for the S3 API (default: s3.amazonaws.com)\n", + }, + "engine": schema.StringAttribute{ + Optional: true, + Computed: true, + }, + "key": schema.StringAttribute{ + Optional: true, + Computed: true, + Description: "The S3 Key uniquely identifies an object in a bucket\n", + MarkdownDescription: "The S3 Key uniquely identifies an object in a bucket\n", + }, "object": schema.StringAttribute{ Optional: true, Computed: true, - Description: "The GCP object uniquely identifying an object in a bucket,\nwill be required if the EB is not default\n", - MarkdownDescription: "The GCP object uniquely identifying an object in a bucket,\nwill be required if the EB is not default\n", + Description: "The swift object uniquely identifying an object in a container,\nwill be required if the EB is not default\n", + MarkdownDescription: "The swift object uniquely identifying an object in a container,\nwill be required if the EB is not default\n", + }, + "region": schema.StringAttribute{ + Optional: true, + Computed: true, + Description: "The Swift region where the resource exists\n", + MarkdownDescription: "The Swift region where the resource exists\n", + }, + "s3_force_path_style": schema.BoolAttribute{ + Optional: true, + Computed: true, + Description: "Always use path-style S3 URLs (https:/// instead of https://.)\n", + MarkdownDescription: "Always use path-style S3 URLs (https:/// instead of https://.)\n", + }, + "skip_verify_ssl": schema.BoolAttribute{ + Optional: true, + Computed: true, + Description: "Set this to `true` to not verify SSL certificates\n", + MarkdownDescription: "Set this to `true` to not verify SSL certificates\n", }, }, CustomType: GcpStorageType{ @@ -148,10 +261,8 @@ func ExternalBackendResourceSchema(ctx context.Context) schema.Schema { }, }, "project_canonical": schema.StringAttribute{ - Optional: true, - Computed: true, - Description: "The canonical of an entity", - MarkdownDescription: "The canonical of an entity", + Optional: true, + Computed: true, Validators: []validator.String{ stringvalidator.LengthBetween(1, 100), stringvalidator.RegexMatches(regexp.MustCompile("(^[a-z0-9]+(([a-z0-9\\-_]+)?[a-z0-9]+)?$)"), ""), @@ -161,18 +272,42 @@ func ExternalBackendResourceSchema(ctx context.Context) schema.Schema { Required: true, Validators: []validator.String{ stringvalidator.OneOf( + "events", + "logs", "remote_tfstate", + "cost_explorer", ), }, }, "swift_storage": schema.SingleNestedAttribute{ Attributes: map[string]schema.Attribute{ - "container": schema.StringAttribute{ + "bucket": schema.StringAttribute{ Optional: true, Computed: true, + Description: "The GCP bucket containing objects\n", + MarkdownDescription: "The GCP bucket containing objects\n", + }, + "container": schema.StringAttribute{ + Required: true, Description: "The Swift container containing objects\n", MarkdownDescription: "The Swift container containing objects\n", }, + "endpoint": schema.StringAttribute{ + Optional: true, + Computed: true, + Description: "A custom endpoint for the S3 API (default: s3.amazonaws.com)\n", + MarkdownDescription: "A custom endpoint for the S3 API (default: s3.amazonaws.com)\n", + }, + "engine": schema.StringAttribute{ + Optional: true, + Computed: true, + }, + "key": schema.StringAttribute{ + Optional: true, + Computed: true, + Description: "The S3 Key uniquely identifies an object in a bucket\n", + MarkdownDescription: "The S3 Key uniquely identifies an object in a bucket\n", + }, "object": schema.StringAttribute{ Optional: true, Computed: true, @@ -180,11 +315,16 @@ func ExternalBackendResourceSchema(ctx context.Context) schema.Schema { MarkdownDescription: "The swift object uniquely identifying an object in a container,\nwill be required if the EB is not default\n", }, "region": schema.StringAttribute{ - Optional: true, - Computed: true, + Required: true, Description: "The Swift region where the resource exists\n", MarkdownDescription: "The Swift region where the resource exists\n", }, + "s3_force_path_style": schema.BoolAttribute{ + Optional: true, + Computed: true, + Description: "Always use path-style S3 URLs (https:/// instead of https://.)\n", + MarkdownDescription: "Always use path-style S3 URLs (https:/// instead of https://.)\n", + }, "skip_verify_ssl": schema.BoolAttribute{ Optional: true, Computed: true, @@ -207,17 +347,18 @@ func ExternalBackendResourceSchema(ctx context.Context) schema.Schema { } type ExternalBackendModel struct { - AwsStorage AwsStorageValue `tfsdk:"aws_storage"` - CredentialCanonical types.String `tfsdk:"credential_canonical"` - Default types.Bool `tfsdk:"default"` - Engine types.String `tfsdk:"engine"` - EnvironmentCanonical types.String `tfsdk:"environment_canonical"` - ExternalBackendId types.Int64 `tfsdk:"external_backend_id"` - GcpStorage GcpStorageValue `tfsdk:"gcp_storage"` - OrganizationCanonical types.String `tfsdk:"organization_canonical"` - ProjectCanonical types.String `tfsdk:"project_canonical"` - Purpose types.String `tfsdk:"purpose"` - SwiftStorage SwiftStorageValue `tfsdk:"swift_storage"` + AwsStorage AwsStorageValue `tfsdk:"aws_storage"` + Configuration ConfigurationValue `tfsdk:"configuration"` + CredentialCanonical types.String `tfsdk:"credential_canonical"` + Default types.Bool `tfsdk:"default"` + Engine types.String `tfsdk:"engine"` + EnvironmentCanonical types.String `tfsdk:"environment_canonical"` + ExternalBackendId types.Int64 `tfsdk:"external_backend_id"` + GcpStorage GcpStorageValue `tfsdk:"gcp_storage"` + OrganizationCanonical types.String `tfsdk:"organization_canonical"` + ProjectCanonical types.String `tfsdk:"project_canonical"` + Purpose types.String `tfsdk:"purpose"` + SwiftStorage SwiftStorageValue `tfsdk:"swift_storage"` } var _ basetypes.ObjectTypable = AwsStorageType{} @@ -263,6 +404,24 @@ func (t AwsStorageType) ValueFromObject(ctx context.Context, in basetypes.Object fmt.Sprintf(`bucket expected to be basetypes.StringValue, was: %T`, bucketAttribute)) } + containerAttribute, ok := attributes["container"] + + if !ok { + diags.AddError( + "Attribute Missing", + `container is missing from object`) + + return nil, diags + } + + containerVal, ok := containerAttribute.(basetypes.StringValue) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`container expected to be basetypes.StringValue, was: %T`, containerAttribute)) + } + endpointAttribute, ok := attributes["endpoint"] if !ok { @@ -281,6 +440,24 @@ func (t AwsStorageType) ValueFromObject(ctx context.Context, in basetypes.Object fmt.Sprintf(`endpoint expected to be basetypes.StringValue, was: %T`, endpointAttribute)) } + engineAttribute, ok := attributes["engine"] + + if !ok { + diags.AddError( + "Attribute Missing", + `engine is missing from object`) + + return nil, diags + } + + engineVal, ok := engineAttribute.(basetypes.StringValue) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`engine expected to be basetypes.StringValue, was: %T`, engineAttribute)) + } + keyAttribute, ok := attributes["key"] if !ok { @@ -299,6 +476,24 @@ func (t AwsStorageType) ValueFromObject(ctx context.Context, in basetypes.Object fmt.Sprintf(`key expected to be basetypes.StringValue, was: %T`, keyAttribute)) } + objectAttribute, ok := attributes["object"] + + if !ok { + diags.AddError( + "Attribute Missing", + `object is missing from object`) + + return nil, diags + } + + objectVal, ok := objectAttribute.(basetypes.StringValue) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`object expected to be basetypes.StringValue, was: %T`, objectAttribute)) + } + regionAttribute, ok := attributes["region"] if !ok { @@ -359,8 +554,11 @@ func (t AwsStorageType) ValueFromObject(ctx context.Context, in basetypes.Object return AwsStorageValue{ Bucket: bucketVal, + Container: containerVal, Endpoint: endpointVal, + Engine: engineVal, Key: keyVal, + Object: objectVal, Region: regionVal, S3ForcePathStyle: s3ForcePathStyleVal, SkipVerifySsl: skipVerifySslVal, @@ -449,6 +647,24 @@ func NewAwsStorageValue(attributeTypes map[string]attr.Type, attributes map[stri fmt.Sprintf(`bucket expected to be basetypes.StringValue, was: %T`, bucketAttribute)) } + containerAttribute, ok := attributes["container"] + + if !ok { + diags.AddError( + "Attribute Missing", + `container is missing from object`) + + return NewAwsStorageValueUnknown(), diags + } + + containerVal, ok := containerAttribute.(basetypes.StringValue) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`container expected to be basetypes.StringValue, was: %T`, containerAttribute)) + } + endpointAttribute, ok := attributes["endpoint"] if !ok { @@ -467,6 +683,24 @@ func NewAwsStorageValue(attributeTypes map[string]attr.Type, attributes map[stri fmt.Sprintf(`endpoint expected to be basetypes.StringValue, was: %T`, endpointAttribute)) } + engineAttribute, ok := attributes["engine"] + + if !ok { + diags.AddError( + "Attribute Missing", + `engine is missing from object`) + + return NewAwsStorageValueUnknown(), diags + } + + engineVal, ok := engineAttribute.(basetypes.StringValue) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`engine expected to be basetypes.StringValue, was: %T`, engineAttribute)) + } + keyAttribute, ok := attributes["key"] if !ok { @@ -485,6 +719,24 @@ func NewAwsStorageValue(attributeTypes map[string]attr.Type, attributes map[stri fmt.Sprintf(`key expected to be basetypes.StringValue, was: %T`, keyAttribute)) } + objectAttribute, ok := attributes["object"] + + if !ok { + diags.AddError( + "Attribute Missing", + `object is missing from object`) + + return NewAwsStorageValueUnknown(), diags + } + + objectVal, ok := objectAttribute.(basetypes.StringValue) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`object expected to be basetypes.StringValue, was: %T`, objectAttribute)) + } + regionAttribute, ok := attributes["region"] if !ok { @@ -545,8 +797,11 @@ func NewAwsStorageValue(attributeTypes map[string]attr.Type, attributes map[stri return AwsStorageValue{ Bucket: bucketVal, + Container: containerVal, Endpoint: endpointVal, + Engine: engineVal, Key: keyVal, + Object: objectVal, Region: regionVal, S3ForcePathStyle: s3ForcePathStyleVal, SkipVerifySsl: skipVerifySslVal, @@ -623,8 +878,11 @@ var _ basetypes.ObjectValuable = AwsStorageValue{} type AwsStorageValue struct { Bucket basetypes.StringValue `tfsdk:"bucket"` + Container basetypes.StringValue `tfsdk:"container"` Endpoint basetypes.StringValue `tfsdk:"endpoint"` + Engine basetypes.StringValue `tfsdk:"engine"` Key basetypes.StringValue `tfsdk:"key"` + Object basetypes.StringValue `tfsdk:"object"` Region basetypes.StringValue `tfsdk:"region"` S3ForcePathStyle basetypes.BoolValue `tfsdk:"s3_force_path_style"` SkipVerifySsl basetypes.BoolValue `tfsdk:"skip_verify_ssl"` @@ -632,14 +890,17 @@ type AwsStorageValue struct { } func (v AwsStorageValue) ToTerraformValue(ctx context.Context) (tftypes.Value, error) { - attrTypes := make(map[string]tftypes.Type, 6) + attrTypes := make(map[string]tftypes.Type, 9) var val tftypes.Value var err error attrTypes["bucket"] = basetypes.StringType{}.TerraformType(ctx) + attrTypes["container"] = basetypes.StringType{}.TerraformType(ctx) attrTypes["endpoint"] = basetypes.StringType{}.TerraformType(ctx) + attrTypes["engine"] = basetypes.StringType{}.TerraformType(ctx) attrTypes["key"] = basetypes.StringType{}.TerraformType(ctx) + attrTypes["object"] = basetypes.StringType{}.TerraformType(ctx) attrTypes["region"] = basetypes.StringType{}.TerraformType(ctx) attrTypes["s3_force_path_style"] = basetypes.BoolType{}.TerraformType(ctx) attrTypes["skip_verify_ssl"] = basetypes.BoolType{}.TerraformType(ctx) @@ -648,7 +909,7 @@ func (v AwsStorageValue) ToTerraformValue(ctx context.Context) (tftypes.Value, e switch v.state { case attr.ValueStateKnown: - vals := make(map[string]tftypes.Value, 6) + vals := make(map[string]tftypes.Value, 9) val, err = v.Bucket.ToTerraformValue(ctx) @@ -658,29 +919,53 @@ func (v AwsStorageValue) ToTerraformValue(ctx context.Context) (tftypes.Value, e vals["bucket"] = val - val, err = v.Endpoint.ToTerraformValue(ctx) + val, err = v.Container.ToTerraformValue(ctx) if err != nil { return tftypes.NewValue(objectType, tftypes.UnknownValue), err } - vals["endpoint"] = val + vals["container"] = val - val, err = v.Key.ToTerraformValue(ctx) + val, err = v.Endpoint.ToTerraformValue(ctx) if err != nil { return tftypes.NewValue(objectType, tftypes.UnknownValue), err } - vals["key"] = val + vals["endpoint"] = val - val, err = v.Region.ToTerraformValue(ctx) + val, err = v.Engine.ToTerraformValue(ctx) if err != nil { return tftypes.NewValue(objectType, tftypes.UnknownValue), err } - vals["region"] = val + vals["engine"] = val + + val, err = v.Key.ToTerraformValue(ctx) + + if err != nil { + return tftypes.NewValue(objectType, tftypes.UnknownValue), err + } + + vals["key"] = val + + val, err = v.Object.ToTerraformValue(ctx) + + if err != nil { + return tftypes.NewValue(objectType, tftypes.UnknownValue), err + } + + vals["object"] = val + + val, err = v.Region.ToTerraformValue(ctx) + + if err != nil { + return tftypes.NewValue(objectType, tftypes.UnknownValue), err + } + + vals["region"] = val val, err = v.S3ForcePathStyle.ToTerraformValue(ctx) @@ -727,19 +1012,35 @@ func (v AwsStorageValue) String() string { func (v AwsStorageValue) ToObjectValue(ctx context.Context) (basetypes.ObjectValue, diag.Diagnostics) { var diags diag.Diagnostics + attributeTypes := map[string]attr.Type{ + "bucket": basetypes.StringType{}, + "container": basetypes.StringType{}, + "endpoint": basetypes.StringType{}, + "engine": basetypes.StringType{}, + "key": basetypes.StringType{}, + "object": basetypes.StringType{}, + "region": basetypes.StringType{}, + "s3_force_path_style": basetypes.BoolType{}, + "skip_verify_ssl": basetypes.BoolType{}, + } + + if v.IsNull() { + return types.ObjectNull(attributeTypes), diags + } + + if v.IsUnknown() { + return types.ObjectUnknown(attributeTypes), diags + } + objVal, diags := types.ObjectValue( - map[string]attr.Type{ - "bucket": basetypes.StringType{}, - "endpoint": basetypes.StringType{}, - "key": basetypes.StringType{}, - "region": basetypes.StringType{}, - "s3_force_path_style": basetypes.BoolType{}, - "skip_verify_ssl": basetypes.BoolType{}, - }, + attributeTypes, map[string]attr.Value{ "bucket": v.Bucket, + "container": v.Container, "endpoint": v.Endpoint, + "engine": v.Engine, "key": v.Key, + "object": v.Object, "region": v.Region, "s3_force_path_style": v.S3ForcePathStyle, "skip_verify_ssl": v.SkipVerifySsl, @@ -767,14 +1068,26 @@ func (v AwsStorageValue) Equal(o attr.Value) bool { return false } + if !v.Container.Equal(other.Container) { + return false + } + if !v.Endpoint.Equal(other.Endpoint) { return false } + if !v.Engine.Equal(other.Engine) { + return false + } + if !v.Key.Equal(other.Key) { return false } + if !v.Object.Equal(other.Object) { + return false + } + if !v.Region.Equal(other.Region) { return false } @@ -801,22 +1114,25 @@ func (v AwsStorageValue) Type(ctx context.Context) attr.Type { func (v AwsStorageValue) AttributeTypes(ctx context.Context) map[string]attr.Type { return map[string]attr.Type{ "bucket": basetypes.StringType{}, + "container": basetypes.StringType{}, "endpoint": basetypes.StringType{}, + "engine": basetypes.StringType{}, "key": basetypes.StringType{}, + "object": basetypes.StringType{}, "region": basetypes.StringType{}, "s3_force_path_style": basetypes.BoolType{}, "skip_verify_ssl": basetypes.BoolType{}, } } -var _ basetypes.ObjectTypable = GcpStorageType{} +var _ basetypes.ObjectTypable = ConfigurationType{} -type GcpStorageType struct { +type ConfigurationType struct { basetypes.ObjectType } -func (t GcpStorageType) Equal(o attr.Type) bool { - other, ok := o.(GcpStorageType) +func (t ConfigurationType) Equal(o attr.Type) bool { + other, ok := o.(ConfigurationType) if !ok { return false @@ -825,11 +1141,11 @@ func (t GcpStorageType) Equal(o attr.Type) bool { return t.ObjectType.Equal(other.ObjectType) } -func (t GcpStorageType) String() string { - return "GcpStorageType" +func (t ConfigurationType) String() string { + return "ConfigurationType" } -func (t GcpStorageType) ValueFromObject(ctx context.Context, in basetypes.ObjectValue) (basetypes.ObjectValuable, diag.Diagnostics) { +func (t ConfigurationType) ValueFromObject(ctx context.Context, in basetypes.ObjectValue) (basetypes.ObjectValuable, diag.Diagnostics) { var diags diag.Diagnostics attributes := in.Attributes() @@ -852,6 +1168,78 @@ func (t GcpStorageType) ValueFromObject(ctx context.Context, in basetypes.Object fmt.Sprintf(`bucket expected to be basetypes.StringValue, was: %T`, bucketAttribute)) } + containerAttribute, ok := attributes["container"] + + if !ok { + diags.AddError( + "Attribute Missing", + `container is missing from object`) + + return nil, diags + } + + containerVal, ok := containerAttribute.(basetypes.StringValue) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`container expected to be basetypes.StringValue, was: %T`, containerAttribute)) + } + + endpointAttribute, ok := attributes["endpoint"] + + if !ok { + diags.AddError( + "Attribute Missing", + `endpoint is missing from object`) + + return nil, diags + } + + endpointVal, ok := endpointAttribute.(basetypes.StringValue) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`endpoint expected to be basetypes.StringValue, was: %T`, endpointAttribute)) + } + + engineAttribute, ok := attributes["engine"] + + if !ok { + diags.AddError( + "Attribute Missing", + `engine is missing from object`) + + return nil, diags + } + + engineVal, ok := engineAttribute.(basetypes.StringValue) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`engine expected to be basetypes.StringValue, was: %T`, engineAttribute)) + } + + keyAttribute, ok := attributes["key"] + + if !ok { + diags.AddError( + "Attribute Missing", + `key is missing from object`) + + return nil, diags + } + + keyVal, ok := keyAttribute.(basetypes.StringValue) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`key expected to be basetypes.StringValue, was: %T`, keyAttribute)) + } + objectAttribute, ok := attributes["object"] if !ok { @@ -870,30 +1258,91 @@ func (t GcpStorageType) ValueFromObject(ctx context.Context, in basetypes.Object fmt.Sprintf(`object expected to be basetypes.StringValue, was: %T`, objectAttribute)) } + regionAttribute, ok := attributes["region"] + + if !ok { + diags.AddError( + "Attribute Missing", + `region is missing from object`) + + return nil, diags + } + + regionVal, ok := regionAttribute.(basetypes.StringValue) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`region expected to be basetypes.StringValue, was: %T`, regionAttribute)) + } + + s3ForcePathStyleAttribute, ok := attributes["s3_force_path_style"] + + if !ok { + diags.AddError( + "Attribute Missing", + `s3_force_path_style is missing from object`) + + return nil, diags + } + + s3ForcePathStyleVal, ok := s3ForcePathStyleAttribute.(basetypes.BoolValue) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`s3_force_path_style expected to be basetypes.BoolValue, was: %T`, s3ForcePathStyleAttribute)) + } + + skipVerifySslAttribute, ok := attributes["skip_verify_ssl"] + + if !ok { + diags.AddError( + "Attribute Missing", + `skip_verify_ssl is missing from object`) + + return nil, diags + } + + skipVerifySslVal, ok := skipVerifySslAttribute.(basetypes.BoolValue) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`skip_verify_ssl expected to be basetypes.BoolValue, was: %T`, skipVerifySslAttribute)) + } + if diags.HasError() { return nil, diags } - return GcpStorageValue{ - Bucket: bucketVal, - Object: objectVal, - state: attr.ValueStateKnown, + return ConfigurationValue{ + Bucket: bucketVal, + Container: containerVal, + Endpoint: endpointVal, + Engine: engineVal, + Key: keyVal, + Object: objectVal, + Region: regionVal, + S3ForcePathStyle: s3ForcePathStyleVal, + SkipVerifySsl: skipVerifySslVal, + state: attr.ValueStateKnown, }, diags } -func NewGcpStorageValueNull() GcpStorageValue { - return GcpStorageValue{ +func NewConfigurationValueNull() ConfigurationValue { + return ConfigurationValue{ state: attr.ValueStateNull, } } -func NewGcpStorageValueUnknown() GcpStorageValue { - return GcpStorageValue{ +func NewConfigurationValueUnknown() ConfigurationValue { + return ConfigurationValue{ state: attr.ValueStateUnknown, } } -func NewGcpStorageValue(attributeTypes map[string]attr.Type, attributes map[string]attr.Value) (GcpStorageValue, diag.Diagnostics) { +func NewConfigurationValue(attributeTypes map[string]attr.Type, attributes map[string]attr.Value) (ConfigurationValue, diag.Diagnostics) { var diags diag.Diagnostics // Reference: https://github.com/hashicorp/terraform-plugin-framework/issues/521 @@ -904,11 +1353,11 @@ func NewGcpStorageValue(attributeTypes map[string]attr.Type, attributes map[stri if !ok { diags.AddError( - "Missing GcpStorageValue Attribute Value", - "While creating a GcpStorageValue value, a missing attribute value was detected. "+ - "A GcpStorageValue must contain values for all attributes, even if null or unknown. "+ + "Missing ConfigurationValue Attribute Value", + "While creating a ConfigurationValue value, a missing attribute value was detected. "+ + "A ConfigurationValue must contain values for all attributes, even if null or unknown. "+ "This is always an issue with the provider and should be reported to the provider developers.\n\n"+ - fmt.Sprintf("GcpStorageValue Attribute Name (%s) Expected Type: %s", name, attributeType.String()), + fmt.Sprintf("ConfigurationValue Attribute Name (%s) Expected Type: %s", name, attributeType.String()), ) continue @@ -916,12 +1365,12 @@ func NewGcpStorageValue(attributeTypes map[string]attr.Type, attributes map[stri if !attributeType.Equal(attribute.Type(ctx)) { diags.AddError( - "Invalid GcpStorageValue Attribute Type", - "While creating a GcpStorageValue value, an invalid attribute value was detected. "+ - "A GcpStorageValue must use a matching attribute type for the value. "+ + "Invalid ConfigurationValue Attribute Type", + "While creating a ConfigurationValue value, an invalid attribute value was detected. "+ + "A ConfigurationValue must use a matching attribute type for the value. "+ "This is always an issue with the provider and should be reported to the provider developers.\n\n"+ - fmt.Sprintf("GcpStorageValue Attribute Name (%s) Expected Type: %s\n", name, attributeType.String())+ - fmt.Sprintf("GcpStorageValue Attribute Name (%s) Given Type: %s", name, attribute.Type(ctx)), + fmt.Sprintf("ConfigurationValue Attribute Name (%s) Expected Type: %s\n", name, attributeType.String())+ + fmt.Sprintf("ConfigurationValue Attribute Name (%s) Given Type: %s", name, attribute.Type(ctx)), ) } } @@ -931,17 +1380,17 @@ func NewGcpStorageValue(attributeTypes map[string]attr.Type, attributes map[stri if !ok { diags.AddError( - "Extra GcpStorageValue Attribute Value", - "While creating a GcpStorageValue value, an extra attribute value was detected. "+ - "A GcpStorageValue must not contain values beyond the expected attribute types. "+ + "Extra ConfigurationValue Attribute Value", + "While creating a ConfigurationValue value, an extra attribute value was detected. "+ + "A ConfigurationValue must not contain values beyond the expected attribute types. "+ "This is always an issue with the provider and should be reported to the provider developers.\n\n"+ - fmt.Sprintf("Extra GcpStorageValue Attribute Name: %s", name), + fmt.Sprintf("Extra ConfigurationValue Attribute Name: %s", name), ) } } if diags.HasError() { - return NewGcpStorageValueUnknown(), diags + return NewConfigurationValueUnknown(), diags } bucketAttribute, ok := attributes["bucket"] @@ -951,7 +1400,7 @@ func NewGcpStorageValue(attributeTypes map[string]attr.Type, attributes map[stri "Attribute Missing", `bucket is missing from object`) - return NewGcpStorageValueUnknown(), diags + return NewConfigurationValueUnknown(), diags } bucketVal, ok := bucketAttribute.(basetypes.StringValue) @@ -962,59 +1411,956 @@ func NewGcpStorageValue(attributeTypes map[string]attr.Type, attributes map[stri fmt.Sprintf(`bucket expected to be basetypes.StringValue, was: %T`, bucketAttribute)) } - objectAttribute, ok := attributes["object"] + containerAttribute, ok := attributes["container"] if !ok { diags.AddError( "Attribute Missing", - `object is missing from object`) + `container is missing from object`) - return NewGcpStorageValueUnknown(), diags + return NewConfigurationValueUnknown(), diags } - objectVal, ok := objectAttribute.(basetypes.StringValue) + containerVal, ok := containerAttribute.(basetypes.StringValue) if !ok { diags.AddError( "Attribute Wrong Type", - fmt.Sprintf(`object expected to be basetypes.StringValue, was: %T`, objectAttribute)) + fmt.Sprintf(`container expected to be basetypes.StringValue, was: %T`, containerAttribute)) } - if diags.HasError() { - return NewGcpStorageValueUnknown(), diags + endpointAttribute, ok := attributes["endpoint"] + + if !ok { + diags.AddError( + "Attribute Missing", + `endpoint is missing from object`) + + return NewConfigurationValueUnknown(), diags } - return GcpStorageValue{ - Bucket: bucketVal, - Object: objectVal, - state: attr.ValueStateKnown, - }, diags -} + endpointVal, ok := endpointAttribute.(basetypes.StringValue) -func NewGcpStorageValueMust(attributeTypes map[string]attr.Type, attributes map[string]attr.Value) GcpStorageValue { - object, diags := NewGcpStorageValue(attributeTypes, attributes) + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`endpoint expected to be basetypes.StringValue, was: %T`, endpointAttribute)) + } - if diags.HasError() { - // This could potentially be added to the diag package. - diagsStrings := make([]string, 0, len(diags)) + engineAttribute, ok := attributes["engine"] - for _, diagnostic := range diags { - diagsStrings = append(diagsStrings, fmt.Sprintf( - "%s | %s | %s", - diagnostic.Severity(), - diagnostic.Summary(), - diagnostic.Detail())) - } + if !ok { + diags.AddError( + "Attribute Missing", + `engine is missing from object`) - panic("NewGcpStorageValueMust received error(s): " + strings.Join(diagsStrings, "\n")) + return NewConfigurationValueUnknown(), diags } - return object -} + engineVal, ok := engineAttribute.(basetypes.StringValue) -func (t GcpStorageType) ValueFromTerraform(ctx context.Context, in tftypes.Value) (attr.Value, error) { - if in.Type() == nil { - return NewGcpStorageValueNull(), nil + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`engine expected to be basetypes.StringValue, was: %T`, engineAttribute)) + } + + keyAttribute, ok := attributes["key"] + + if !ok { + diags.AddError( + "Attribute Missing", + `key is missing from object`) + + return NewConfigurationValueUnknown(), diags + } + + keyVal, ok := keyAttribute.(basetypes.StringValue) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`key expected to be basetypes.StringValue, was: %T`, keyAttribute)) + } + + objectAttribute, ok := attributes["object"] + + if !ok { + diags.AddError( + "Attribute Missing", + `object is missing from object`) + + return NewConfigurationValueUnknown(), diags + } + + objectVal, ok := objectAttribute.(basetypes.StringValue) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`object expected to be basetypes.StringValue, was: %T`, objectAttribute)) + } + + regionAttribute, ok := attributes["region"] + + if !ok { + diags.AddError( + "Attribute Missing", + `region is missing from object`) + + return NewConfigurationValueUnknown(), diags + } + + regionVal, ok := regionAttribute.(basetypes.StringValue) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`region expected to be basetypes.StringValue, was: %T`, regionAttribute)) + } + + s3ForcePathStyleAttribute, ok := attributes["s3_force_path_style"] + + if !ok { + diags.AddError( + "Attribute Missing", + `s3_force_path_style is missing from object`) + + return NewConfigurationValueUnknown(), diags + } + + s3ForcePathStyleVal, ok := s3ForcePathStyleAttribute.(basetypes.BoolValue) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`s3_force_path_style expected to be basetypes.BoolValue, was: %T`, s3ForcePathStyleAttribute)) + } + + skipVerifySslAttribute, ok := attributes["skip_verify_ssl"] + + if !ok { + diags.AddError( + "Attribute Missing", + `skip_verify_ssl is missing from object`) + + return NewConfigurationValueUnknown(), diags + } + + skipVerifySslVal, ok := skipVerifySslAttribute.(basetypes.BoolValue) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`skip_verify_ssl expected to be basetypes.BoolValue, was: %T`, skipVerifySslAttribute)) + } + + if diags.HasError() { + return NewConfigurationValueUnknown(), diags + } + + return ConfigurationValue{ + Bucket: bucketVal, + Container: containerVal, + Endpoint: endpointVal, + Engine: engineVal, + Key: keyVal, + Object: objectVal, + Region: regionVal, + S3ForcePathStyle: s3ForcePathStyleVal, + SkipVerifySsl: skipVerifySslVal, + state: attr.ValueStateKnown, + }, diags +} + +func NewConfigurationValueMust(attributeTypes map[string]attr.Type, attributes map[string]attr.Value) ConfigurationValue { + object, diags := NewConfigurationValue(attributeTypes, attributes) + + if diags.HasError() { + // This could potentially be added to the diag package. + diagsStrings := make([]string, 0, len(diags)) + + for _, diagnostic := range diags { + diagsStrings = append(diagsStrings, fmt.Sprintf( + "%s | %s | %s", + diagnostic.Severity(), + diagnostic.Summary(), + diagnostic.Detail())) + } + + panic("NewConfigurationValueMust received error(s): " + strings.Join(diagsStrings, "\n")) + } + + return object +} + +func (t ConfigurationType) ValueFromTerraform(ctx context.Context, in tftypes.Value) (attr.Value, error) { + if in.Type() == nil { + return NewConfigurationValueNull(), nil + } + + if !in.Type().Equal(t.TerraformType(ctx)) { + return nil, fmt.Errorf("expected %s, got %s", t.TerraformType(ctx), in.Type()) + } + + if !in.IsKnown() { + return NewConfigurationValueUnknown(), nil + } + + if in.IsNull() { + return NewConfigurationValueNull(), nil + } + + attributes := map[string]attr.Value{} + + val := map[string]tftypes.Value{} + + err := in.As(&val) + + if err != nil { + return nil, err + } + + for k, v := range val { + a, err := t.AttrTypes[k].ValueFromTerraform(ctx, v) + + if err != nil { + return nil, err + } + + attributes[k] = a + } + + return NewConfigurationValueMust(ConfigurationValue{}.AttributeTypes(ctx), attributes), nil +} + +func (t ConfigurationType) ValueType(ctx context.Context) attr.Value { + return ConfigurationValue{} +} + +var _ basetypes.ObjectValuable = ConfigurationValue{} + +type ConfigurationValue struct { + Bucket basetypes.StringValue `tfsdk:"bucket"` + Container basetypes.StringValue `tfsdk:"container"` + Endpoint basetypes.StringValue `tfsdk:"endpoint"` + Engine basetypes.StringValue `tfsdk:"engine"` + Key basetypes.StringValue `tfsdk:"key"` + Object basetypes.StringValue `tfsdk:"object"` + Region basetypes.StringValue `tfsdk:"region"` + S3ForcePathStyle basetypes.BoolValue `tfsdk:"s3_force_path_style"` + SkipVerifySsl basetypes.BoolValue `tfsdk:"skip_verify_ssl"` + state attr.ValueState +} + +func (v ConfigurationValue) ToTerraformValue(ctx context.Context) (tftypes.Value, error) { + attrTypes := make(map[string]tftypes.Type, 9) + + var val tftypes.Value + var err error + + attrTypes["bucket"] = basetypes.StringType{}.TerraformType(ctx) + attrTypes["container"] = basetypes.StringType{}.TerraformType(ctx) + attrTypes["endpoint"] = basetypes.StringType{}.TerraformType(ctx) + attrTypes["engine"] = basetypes.StringType{}.TerraformType(ctx) + attrTypes["key"] = basetypes.StringType{}.TerraformType(ctx) + attrTypes["object"] = basetypes.StringType{}.TerraformType(ctx) + attrTypes["region"] = basetypes.StringType{}.TerraformType(ctx) + attrTypes["s3_force_path_style"] = basetypes.BoolType{}.TerraformType(ctx) + attrTypes["skip_verify_ssl"] = basetypes.BoolType{}.TerraformType(ctx) + + objectType := tftypes.Object{AttributeTypes: attrTypes} + + switch v.state { + case attr.ValueStateKnown: + vals := make(map[string]tftypes.Value, 9) + + val, err = v.Bucket.ToTerraformValue(ctx) + + if err != nil { + return tftypes.NewValue(objectType, tftypes.UnknownValue), err + } + + vals["bucket"] = val + + val, err = v.Container.ToTerraformValue(ctx) + + if err != nil { + return tftypes.NewValue(objectType, tftypes.UnknownValue), err + } + + vals["container"] = val + + val, err = v.Endpoint.ToTerraformValue(ctx) + + if err != nil { + return tftypes.NewValue(objectType, tftypes.UnknownValue), err + } + + vals["endpoint"] = val + + val, err = v.Engine.ToTerraformValue(ctx) + + if err != nil { + return tftypes.NewValue(objectType, tftypes.UnknownValue), err + } + + vals["engine"] = val + + val, err = v.Key.ToTerraformValue(ctx) + + if err != nil { + return tftypes.NewValue(objectType, tftypes.UnknownValue), err + } + + vals["key"] = val + + val, err = v.Object.ToTerraformValue(ctx) + + if err != nil { + return tftypes.NewValue(objectType, tftypes.UnknownValue), err + } + + vals["object"] = val + + val, err = v.Region.ToTerraformValue(ctx) + + if err != nil { + return tftypes.NewValue(objectType, tftypes.UnknownValue), err + } + + vals["region"] = val + + val, err = v.S3ForcePathStyle.ToTerraformValue(ctx) + + if err != nil { + return tftypes.NewValue(objectType, tftypes.UnknownValue), err + } + + vals["s3_force_path_style"] = val + + val, err = v.SkipVerifySsl.ToTerraformValue(ctx) + + if err != nil { + return tftypes.NewValue(objectType, tftypes.UnknownValue), err + } + + vals["skip_verify_ssl"] = val + + if err := tftypes.ValidateValue(objectType, vals); err != nil { + return tftypes.NewValue(objectType, tftypes.UnknownValue), err + } + + return tftypes.NewValue(objectType, vals), nil + case attr.ValueStateNull: + return tftypes.NewValue(objectType, nil), nil + case attr.ValueStateUnknown: + return tftypes.NewValue(objectType, tftypes.UnknownValue), nil + default: + panic(fmt.Sprintf("unhandled Object state in ToTerraformValue: %s", v.state)) + } +} + +func (v ConfigurationValue) IsNull() bool { + return v.state == attr.ValueStateNull +} + +func (v ConfigurationValue) IsUnknown() bool { + return v.state == attr.ValueStateUnknown +} + +func (v ConfigurationValue) String() string { + return "ConfigurationValue" +} + +func (v ConfigurationValue) ToObjectValue(ctx context.Context) (basetypes.ObjectValue, diag.Diagnostics) { + var diags diag.Diagnostics + + attributeTypes := map[string]attr.Type{ + "bucket": basetypes.StringType{}, + "container": basetypes.StringType{}, + "endpoint": basetypes.StringType{}, + "engine": basetypes.StringType{}, + "key": basetypes.StringType{}, + "object": basetypes.StringType{}, + "region": basetypes.StringType{}, + "s3_force_path_style": basetypes.BoolType{}, + "skip_verify_ssl": basetypes.BoolType{}, + } + + if v.IsNull() { + return types.ObjectNull(attributeTypes), diags + } + + if v.IsUnknown() { + return types.ObjectUnknown(attributeTypes), diags + } + + objVal, diags := types.ObjectValue( + attributeTypes, + map[string]attr.Value{ + "bucket": v.Bucket, + "container": v.Container, + "endpoint": v.Endpoint, + "engine": v.Engine, + "key": v.Key, + "object": v.Object, + "region": v.Region, + "s3_force_path_style": v.S3ForcePathStyle, + "skip_verify_ssl": v.SkipVerifySsl, + }) + + return objVal, diags +} + +func (v ConfigurationValue) Equal(o attr.Value) bool { + other, ok := o.(ConfigurationValue) + + if !ok { + return false + } + + if v.state != other.state { + return false + } + + if v.state != attr.ValueStateKnown { + return true + } + + if !v.Bucket.Equal(other.Bucket) { + return false + } + + if !v.Container.Equal(other.Container) { + return false + } + + if !v.Endpoint.Equal(other.Endpoint) { + return false + } + + if !v.Engine.Equal(other.Engine) { + return false + } + + if !v.Key.Equal(other.Key) { + return false + } + + if !v.Object.Equal(other.Object) { + return false + } + + if !v.Region.Equal(other.Region) { + return false + } + + if !v.S3ForcePathStyle.Equal(other.S3ForcePathStyle) { + return false + } + + if !v.SkipVerifySsl.Equal(other.SkipVerifySsl) { + return false + } + + return true +} + +func (v ConfigurationValue) Type(ctx context.Context) attr.Type { + return ConfigurationType{ + basetypes.ObjectType{ + AttrTypes: v.AttributeTypes(ctx), + }, + } +} + +func (v ConfigurationValue) AttributeTypes(ctx context.Context) map[string]attr.Type { + return map[string]attr.Type{ + "bucket": basetypes.StringType{}, + "container": basetypes.StringType{}, + "endpoint": basetypes.StringType{}, + "engine": basetypes.StringType{}, + "key": basetypes.StringType{}, + "object": basetypes.StringType{}, + "region": basetypes.StringType{}, + "s3_force_path_style": basetypes.BoolType{}, + "skip_verify_ssl": basetypes.BoolType{}, + } +} + +var _ basetypes.ObjectTypable = GcpStorageType{} + +type GcpStorageType struct { + basetypes.ObjectType +} + +func (t GcpStorageType) Equal(o attr.Type) bool { + other, ok := o.(GcpStorageType) + + if !ok { + return false + } + + return t.ObjectType.Equal(other.ObjectType) +} + +func (t GcpStorageType) String() string { + return "GcpStorageType" +} + +func (t GcpStorageType) ValueFromObject(ctx context.Context, in basetypes.ObjectValue) (basetypes.ObjectValuable, diag.Diagnostics) { + var diags diag.Diagnostics + + attributes := in.Attributes() + + bucketAttribute, ok := attributes["bucket"] + + if !ok { + diags.AddError( + "Attribute Missing", + `bucket is missing from object`) + + return nil, diags + } + + bucketVal, ok := bucketAttribute.(basetypes.StringValue) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`bucket expected to be basetypes.StringValue, was: %T`, bucketAttribute)) + } + + containerAttribute, ok := attributes["container"] + + if !ok { + diags.AddError( + "Attribute Missing", + `container is missing from object`) + + return nil, diags + } + + containerVal, ok := containerAttribute.(basetypes.StringValue) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`container expected to be basetypes.StringValue, was: %T`, containerAttribute)) + } + + endpointAttribute, ok := attributes["endpoint"] + + if !ok { + diags.AddError( + "Attribute Missing", + `endpoint is missing from object`) + + return nil, diags + } + + endpointVal, ok := endpointAttribute.(basetypes.StringValue) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`endpoint expected to be basetypes.StringValue, was: %T`, endpointAttribute)) + } + + engineAttribute, ok := attributes["engine"] + + if !ok { + diags.AddError( + "Attribute Missing", + `engine is missing from object`) + + return nil, diags + } + + engineVal, ok := engineAttribute.(basetypes.StringValue) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`engine expected to be basetypes.StringValue, was: %T`, engineAttribute)) + } + + keyAttribute, ok := attributes["key"] + + if !ok { + diags.AddError( + "Attribute Missing", + `key is missing from object`) + + return nil, diags + } + + keyVal, ok := keyAttribute.(basetypes.StringValue) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`key expected to be basetypes.StringValue, was: %T`, keyAttribute)) + } + + objectAttribute, ok := attributes["object"] + + if !ok { + diags.AddError( + "Attribute Missing", + `object is missing from object`) + + return nil, diags + } + + objectVal, ok := objectAttribute.(basetypes.StringValue) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`object expected to be basetypes.StringValue, was: %T`, objectAttribute)) + } + + regionAttribute, ok := attributes["region"] + + if !ok { + diags.AddError( + "Attribute Missing", + `region is missing from object`) + + return nil, diags + } + + regionVal, ok := regionAttribute.(basetypes.StringValue) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`region expected to be basetypes.StringValue, was: %T`, regionAttribute)) + } + + s3ForcePathStyleAttribute, ok := attributes["s3_force_path_style"] + + if !ok { + diags.AddError( + "Attribute Missing", + `s3_force_path_style is missing from object`) + + return nil, diags + } + + s3ForcePathStyleVal, ok := s3ForcePathStyleAttribute.(basetypes.BoolValue) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`s3_force_path_style expected to be basetypes.BoolValue, was: %T`, s3ForcePathStyleAttribute)) + } + + skipVerifySslAttribute, ok := attributes["skip_verify_ssl"] + + if !ok { + diags.AddError( + "Attribute Missing", + `skip_verify_ssl is missing from object`) + + return nil, diags + } + + skipVerifySslVal, ok := skipVerifySslAttribute.(basetypes.BoolValue) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`skip_verify_ssl expected to be basetypes.BoolValue, was: %T`, skipVerifySslAttribute)) + } + + if diags.HasError() { + return nil, diags + } + + return GcpStorageValue{ + Bucket: bucketVal, + Container: containerVal, + Endpoint: endpointVal, + Engine: engineVal, + Key: keyVal, + Object: objectVal, + Region: regionVal, + S3ForcePathStyle: s3ForcePathStyleVal, + SkipVerifySsl: skipVerifySslVal, + state: attr.ValueStateKnown, + }, diags +} + +func NewGcpStorageValueNull() GcpStorageValue { + return GcpStorageValue{ + state: attr.ValueStateNull, + } +} + +func NewGcpStorageValueUnknown() GcpStorageValue { + return GcpStorageValue{ + state: attr.ValueStateUnknown, + } +} + +func NewGcpStorageValue(attributeTypes map[string]attr.Type, attributes map[string]attr.Value) (GcpStorageValue, diag.Diagnostics) { + var diags diag.Diagnostics + + // Reference: https://github.com/hashicorp/terraform-plugin-framework/issues/521 + ctx := context.Background() + + for name, attributeType := range attributeTypes { + attribute, ok := attributes[name] + + if !ok { + diags.AddError( + "Missing GcpStorageValue Attribute Value", + "While creating a GcpStorageValue value, a missing attribute value was detected. "+ + "A GcpStorageValue must contain values for all attributes, even if null or unknown. "+ + "This is always an issue with the provider and should be reported to the provider developers.\n\n"+ + fmt.Sprintf("GcpStorageValue Attribute Name (%s) Expected Type: %s", name, attributeType.String()), + ) + + continue + } + + if !attributeType.Equal(attribute.Type(ctx)) { + diags.AddError( + "Invalid GcpStorageValue Attribute Type", + "While creating a GcpStorageValue value, an invalid attribute value was detected. "+ + "A GcpStorageValue must use a matching attribute type for the value. "+ + "This is always an issue with the provider and should be reported to the provider developers.\n\n"+ + fmt.Sprintf("GcpStorageValue Attribute Name (%s) Expected Type: %s\n", name, attributeType.String())+ + fmt.Sprintf("GcpStorageValue Attribute Name (%s) Given Type: %s", name, attribute.Type(ctx)), + ) + } + } + + for name := range attributes { + _, ok := attributeTypes[name] + + if !ok { + diags.AddError( + "Extra GcpStorageValue Attribute Value", + "While creating a GcpStorageValue value, an extra attribute value was detected. "+ + "A GcpStorageValue must not contain values beyond the expected attribute types. "+ + "This is always an issue with the provider and should be reported to the provider developers.\n\n"+ + fmt.Sprintf("Extra GcpStorageValue Attribute Name: %s", name), + ) + } + } + + if diags.HasError() { + return NewGcpStorageValueUnknown(), diags + } + + bucketAttribute, ok := attributes["bucket"] + + if !ok { + diags.AddError( + "Attribute Missing", + `bucket is missing from object`) + + return NewGcpStorageValueUnknown(), diags + } + + bucketVal, ok := bucketAttribute.(basetypes.StringValue) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`bucket expected to be basetypes.StringValue, was: %T`, bucketAttribute)) + } + + containerAttribute, ok := attributes["container"] + + if !ok { + diags.AddError( + "Attribute Missing", + `container is missing from object`) + + return NewGcpStorageValueUnknown(), diags + } + + containerVal, ok := containerAttribute.(basetypes.StringValue) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`container expected to be basetypes.StringValue, was: %T`, containerAttribute)) + } + + endpointAttribute, ok := attributes["endpoint"] + + if !ok { + diags.AddError( + "Attribute Missing", + `endpoint is missing from object`) + + return NewGcpStorageValueUnknown(), diags + } + + endpointVal, ok := endpointAttribute.(basetypes.StringValue) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`endpoint expected to be basetypes.StringValue, was: %T`, endpointAttribute)) + } + + engineAttribute, ok := attributes["engine"] + + if !ok { + diags.AddError( + "Attribute Missing", + `engine is missing from object`) + + return NewGcpStorageValueUnknown(), diags + } + + engineVal, ok := engineAttribute.(basetypes.StringValue) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`engine expected to be basetypes.StringValue, was: %T`, engineAttribute)) + } + + keyAttribute, ok := attributes["key"] + + if !ok { + diags.AddError( + "Attribute Missing", + `key is missing from object`) + + return NewGcpStorageValueUnknown(), diags + } + + keyVal, ok := keyAttribute.(basetypes.StringValue) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`key expected to be basetypes.StringValue, was: %T`, keyAttribute)) + } + + objectAttribute, ok := attributes["object"] + + if !ok { + diags.AddError( + "Attribute Missing", + `object is missing from object`) + + return NewGcpStorageValueUnknown(), diags + } + + objectVal, ok := objectAttribute.(basetypes.StringValue) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`object expected to be basetypes.StringValue, was: %T`, objectAttribute)) + } + + regionAttribute, ok := attributes["region"] + + if !ok { + diags.AddError( + "Attribute Missing", + `region is missing from object`) + + return NewGcpStorageValueUnknown(), diags + } + + regionVal, ok := regionAttribute.(basetypes.StringValue) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`region expected to be basetypes.StringValue, was: %T`, regionAttribute)) + } + + s3ForcePathStyleAttribute, ok := attributes["s3_force_path_style"] + + if !ok { + diags.AddError( + "Attribute Missing", + `s3_force_path_style is missing from object`) + + return NewGcpStorageValueUnknown(), diags + } + + s3ForcePathStyleVal, ok := s3ForcePathStyleAttribute.(basetypes.BoolValue) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`s3_force_path_style expected to be basetypes.BoolValue, was: %T`, s3ForcePathStyleAttribute)) + } + + skipVerifySslAttribute, ok := attributes["skip_verify_ssl"] + + if !ok { + diags.AddError( + "Attribute Missing", + `skip_verify_ssl is missing from object`) + + return NewGcpStorageValueUnknown(), diags + } + + skipVerifySslVal, ok := skipVerifySslAttribute.(basetypes.BoolValue) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`skip_verify_ssl expected to be basetypes.BoolValue, was: %T`, skipVerifySslAttribute)) + } + + if diags.HasError() { + return NewGcpStorageValueUnknown(), diags + } + + return GcpStorageValue{ + Bucket: bucketVal, + Container: containerVal, + Endpoint: endpointVal, + Engine: engineVal, + Key: keyVal, + Object: objectVal, + Region: regionVal, + S3ForcePathStyle: s3ForcePathStyleVal, + SkipVerifySsl: skipVerifySslVal, + state: attr.ValueStateKnown, + }, diags +} + +func NewGcpStorageValueMust(attributeTypes map[string]attr.Type, attributes map[string]attr.Value) GcpStorageValue { + object, diags := NewGcpStorageValue(attributeTypes, attributes) + + if diags.HasError() { + // This could potentially be added to the diag package. + diagsStrings := make([]string, 0, len(diags)) + + for _, diagnostic := range diags { + diagsStrings = append(diagsStrings, fmt.Sprintf( + "%s | %s | %s", + diagnostic.Severity(), + diagnostic.Summary(), + diagnostic.Detail())) + } + + panic("NewGcpStorageValueMust received error(s): " + strings.Join(diagsStrings, "\n")) + } + + return object +} + +func (t GcpStorageType) ValueFromTerraform(ctx context.Context, in tftypes.Value) (attr.Value, error) { + if in.Type() == nil { + return NewGcpStorageValueNull(), nil } if !in.Type().Equal(t.TerraformType(ctx)) { @@ -1059,25 +2405,39 @@ func (t GcpStorageType) ValueType(ctx context.Context) attr.Value { var _ basetypes.ObjectValuable = GcpStorageValue{} type GcpStorageValue struct { - Bucket basetypes.StringValue `tfsdk:"bucket"` - Object basetypes.StringValue `tfsdk:"object"` - state attr.ValueState + Bucket basetypes.StringValue `tfsdk:"bucket"` + Container basetypes.StringValue `tfsdk:"container"` + Endpoint basetypes.StringValue `tfsdk:"endpoint"` + Engine basetypes.StringValue `tfsdk:"engine"` + Key basetypes.StringValue `tfsdk:"key"` + Object basetypes.StringValue `tfsdk:"object"` + Region basetypes.StringValue `tfsdk:"region"` + S3ForcePathStyle basetypes.BoolValue `tfsdk:"s3_force_path_style"` + SkipVerifySsl basetypes.BoolValue `tfsdk:"skip_verify_ssl"` + state attr.ValueState } func (v GcpStorageValue) ToTerraformValue(ctx context.Context) (tftypes.Value, error) { - attrTypes := make(map[string]tftypes.Type, 2) + attrTypes := make(map[string]tftypes.Type, 9) var val tftypes.Value var err error attrTypes["bucket"] = basetypes.StringType{}.TerraformType(ctx) + attrTypes["container"] = basetypes.StringType{}.TerraformType(ctx) + attrTypes["endpoint"] = basetypes.StringType{}.TerraformType(ctx) + attrTypes["engine"] = basetypes.StringType{}.TerraformType(ctx) + attrTypes["key"] = basetypes.StringType{}.TerraformType(ctx) attrTypes["object"] = basetypes.StringType{}.TerraformType(ctx) + attrTypes["region"] = basetypes.StringType{}.TerraformType(ctx) + attrTypes["s3_force_path_style"] = basetypes.BoolType{}.TerraformType(ctx) + attrTypes["skip_verify_ssl"] = basetypes.BoolType{}.TerraformType(ctx) objectType := tftypes.Object{AttributeTypes: attrTypes} switch v.state { case attr.ValueStateKnown: - vals := make(map[string]tftypes.Value, 2) + vals := make(map[string]tftypes.Value, 9) val, err = v.Bucket.ToTerraformValue(ctx) @@ -1087,6 +2447,38 @@ func (v GcpStorageValue) ToTerraformValue(ctx context.Context) (tftypes.Value, e vals["bucket"] = val + val, err = v.Container.ToTerraformValue(ctx) + + if err != nil { + return tftypes.NewValue(objectType, tftypes.UnknownValue), err + } + + vals["container"] = val + + val, err = v.Endpoint.ToTerraformValue(ctx) + + if err != nil { + return tftypes.NewValue(objectType, tftypes.UnknownValue), err + } + + vals["endpoint"] = val + + val, err = v.Engine.ToTerraformValue(ctx) + + if err != nil { + return tftypes.NewValue(objectType, tftypes.UnknownValue), err + } + + vals["engine"] = val + + val, err = v.Key.ToTerraformValue(ctx) + + if err != nil { + return tftypes.NewValue(objectType, tftypes.UnknownValue), err + } + + vals["key"] = val + val, err = v.Object.ToTerraformValue(ctx) if err != nil { @@ -1095,6 +2487,30 @@ func (v GcpStorageValue) ToTerraformValue(ctx context.Context) (tftypes.Value, e vals["object"] = val + val, err = v.Region.ToTerraformValue(ctx) + + if err != nil { + return tftypes.NewValue(objectType, tftypes.UnknownValue), err + } + + vals["region"] = val + + val, err = v.S3ForcePathStyle.ToTerraformValue(ctx) + + if err != nil { + return tftypes.NewValue(objectType, tftypes.UnknownValue), err + } + + vals["s3_force_path_style"] = val + + val, err = v.SkipVerifySsl.ToTerraformValue(ctx) + + if err != nil { + return tftypes.NewValue(objectType, tftypes.UnknownValue), err + } + + vals["skip_verify_ssl"] = val + if err := tftypes.ValidateValue(objectType, vals); err != nil { return tftypes.NewValue(objectType, tftypes.UnknownValue), err } @@ -1124,14 +2540,38 @@ func (v GcpStorageValue) String() string { func (v GcpStorageValue) ToObjectValue(ctx context.Context) (basetypes.ObjectValue, diag.Diagnostics) { var diags diag.Diagnostics + attributeTypes := map[string]attr.Type{ + "bucket": basetypes.StringType{}, + "container": basetypes.StringType{}, + "endpoint": basetypes.StringType{}, + "engine": basetypes.StringType{}, + "key": basetypes.StringType{}, + "object": basetypes.StringType{}, + "region": basetypes.StringType{}, + "s3_force_path_style": basetypes.BoolType{}, + "skip_verify_ssl": basetypes.BoolType{}, + } + + if v.IsNull() { + return types.ObjectNull(attributeTypes), diags + } + + if v.IsUnknown() { + return types.ObjectUnknown(attributeTypes), diags + } + objVal, diags := types.ObjectValue( - map[string]attr.Type{ - "bucket": basetypes.StringType{}, - "object": basetypes.StringType{}, - }, + attributeTypes, map[string]attr.Value{ - "bucket": v.Bucket, - "object": v.Object, + "bucket": v.Bucket, + "container": v.Container, + "endpoint": v.Endpoint, + "engine": v.Engine, + "key": v.Key, + "object": v.Object, + "region": v.Region, + "s3_force_path_style": v.S3ForcePathStyle, + "skip_verify_ssl": v.SkipVerifySsl, }) return objVal, diags @@ -1156,10 +2596,38 @@ func (v GcpStorageValue) Equal(o attr.Value) bool { return false } + if !v.Container.Equal(other.Container) { + return false + } + + if !v.Endpoint.Equal(other.Endpoint) { + return false + } + + if !v.Engine.Equal(other.Engine) { + return false + } + + if !v.Key.Equal(other.Key) { + return false + } + if !v.Object.Equal(other.Object) { return false } + if !v.Region.Equal(other.Region) { + return false + } + + if !v.S3ForcePathStyle.Equal(other.S3ForcePathStyle) { + return false + } + + if !v.SkipVerifySsl.Equal(other.SkipVerifySsl) { + return false + } + return true } @@ -1173,52 +2641,131 @@ func (v GcpStorageValue) Type(ctx context.Context) attr.Type { func (v GcpStorageValue) AttributeTypes(ctx context.Context) map[string]attr.Type { return map[string]attr.Type{ - "bucket": basetypes.StringType{}, - "object": basetypes.StringType{}, + "bucket": basetypes.StringType{}, + "container": basetypes.StringType{}, + "endpoint": basetypes.StringType{}, + "engine": basetypes.StringType{}, + "key": basetypes.StringType{}, + "object": basetypes.StringType{}, + "region": basetypes.StringType{}, + "s3_force_path_style": basetypes.BoolType{}, + "skip_verify_ssl": basetypes.BoolType{}, + } +} + +var _ basetypes.ObjectTypable = SwiftStorageType{} + +type SwiftStorageType struct { + basetypes.ObjectType +} + +func (t SwiftStorageType) Equal(o attr.Type) bool { + other, ok := o.(SwiftStorageType) + + if !ok { + return false } + + return t.ObjectType.Equal(other.ObjectType) +} + +func (t SwiftStorageType) String() string { + return "SwiftStorageType" } -var _ basetypes.ObjectTypable = SwiftStorageType{} +func (t SwiftStorageType) ValueFromObject(ctx context.Context, in basetypes.ObjectValue) (basetypes.ObjectValuable, diag.Diagnostics) { + var diags diag.Diagnostics + + attributes := in.Attributes() + + bucketAttribute, ok := attributes["bucket"] + + if !ok { + diags.AddError( + "Attribute Missing", + `bucket is missing from object`) + + return nil, diags + } + + bucketVal, ok := bucketAttribute.(basetypes.StringValue) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`bucket expected to be basetypes.StringValue, was: %T`, bucketAttribute)) + } + + containerAttribute, ok := attributes["container"] + + if !ok { + diags.AddError( + "Attribute Missing", + `container is missing from object`) + + return nil, diags + } + + containerVal, ok := containerAttribute.(basetypes.StringValue) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`container expected to be basetypes.StringValue, was: %T`, containerAttribute)) + } + + endpointAttribute, ok := attributes["endpoint"] -type SwiftStorageType struct { - basetypes.ObjectType -} + if !ok { + diags.AddError( + "Attribute Missing", + `endpoint is missing from object`) -func (t SwiftStorageType) Equal(o attr.Type) bool { - other, ok := o.(SwiftStorageType) + return nil, diags + } + + endpointVal, ok := endpointAttribute.(basetypes.StringValue) if !ok { - return false + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`endpoint expected to be basetypes.StringValue, was: %T`, endpointAttribute)) } - return t.ObjectType.Equal(other.ObjectType) -} + engineAttribute, ok := attributes["engine"] -func (t SwiftStorageType) String() string { - return "SwiftStorageType" -} + if !ok { + diags.AddError( + "Attribute Missing", + `engine is missing from object`) -func (t SwiftStorageType) ValueFromObject(ctx context.Context, in basetypes.ObjectValue) (basetypes.ObjectValuable, diag.Diagnostics) { - var diags diag.Diagnostics + return nil, diags + } - attributes := in.Attributes() + engineVal, ok := engineAttribute.(basetypes.StringValue) - containerAttribute, ok := attributes["container"] + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`engine expected to be basetypes.StringValue, was: %T`, engineAttribute)) + } + + keyAttribute, ok := attributes["key"] if !ok { diags.AddError( "Attribute Missing", - `container is missing from object`) + `key is missing from object`) return nil, diags } - containerVal, ok := containerAttribute.(basetypes.StringValue) + keyVal, ok := keyAttribute.(basetypes.StringValue) if !ok { diags.AddError( "Attribute Wrong Type", - fmt.Sprintf(`container expected to be basetypes.StringValue, was: %T`, containerAttribute)) + fmt.Sprintf(`key expected to be basetypes.StringValue, was: %T`, keyAttribute)) } objectAttribute, ok := attributes["object"] @@ -1257,6 +2804,24 @@ func (t SwiftStorageType) ValueFromObject(ctx context.Context, in basetypes.Obje fmt.Sprintf(`region expected to be basetypes.StringValue, was: %T`, regionAttribute)) } + s3ForcePathStyleAttribute, ok := attributes["s3_force_path_style"] + + if !ok { + diags.AddError( + "Attribute Missing", + `s3_force_path_style is missing from object`) + + return nil, diags + } + + s3ForcePathStyleVal, ok := s3ForcePathStyleAttribute.(basetypes.BoolValue) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`s3_force_path_style expected to be basetypes.BoolValue, was: %T`, s3ForcePathStyleAttribute)) + } + skipVerifySslAttribute, ok := attributes["skip_verify_ssl"] if !ok { @@ -1280,11 +2845,16 @@ func (t SwiftStorageType) ValueFromObject(ctx context.Context, in basetypes.Obje } return SwiftStorageValue{ - Container: containerVal, - Object: objectVal, - Region: regionVal, - SkipVerifySsl: skipVerifySslVal, - state: attr.ValueStateKnown, + Bucket: bucketVal, + Container: containerVal, + Endpoint: endpointVal, + Engine: engineVal, + Key: keyVal, + Object: objectVal, + Region: regionVal, + S3ForcePathStyle: s3ForcePathStyleVal, + SkipVerifySsl: skipVerifySslVal, + state: attr.ValueStateKnown, }, diags } @@ -1351,6 +2921,24 @@ func NewSwiftStorageValue(attributeTypes map[string]attr.Type, attributes map[st return NewSwiftStorageValueUnknown(), diags } + bucketAttribute, ok := attributes["bucket"] + + if !ok { + diags.AddError( + "Attribute Missing", + `bucket is missing from object`) + + return NewSwiftStorageValueUnknown(), diags + } + + bucketVal, ok := bucketAttribute.(basetypes.StringValue) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`bucket expected to be basetypes.StringValue, was: %T`, bucketAttribute)) + } + containerAttribute, ok := attributes["container"] if !ok { @@ -1369,6 +2957,60 @@ func NewSwiftStorageValue(attributeTypes map[string]attr.Type, attributes map[st fmt.Sprintf(`container expected to be basetypes.StringValue, was: %T`, containerAttribute)) } + endpointAttribute, ok := attributes["endpoint"] + + if !ok { + diags.AddError( + "Attribute Missing", + `endpoint is missing from object`) + + return NewSwiftStorageValueUnknown(), diags + } + + endpointVal, ok := endpointAttribute.(basetypes.StringValue) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`endpoint expected to be basetypes.StringValue, was: %T`, endpointAttribute)) + } + + engineAttribute, ok := attributes["engine"] + + if !ok { + diags.AddError( + "Attribute Missing", + `engine is missing from object`) + + return NewSwiftStorageValueUnknown(), diags + } + + engineVal, ok := engineAttribute.(basetypes.StringValue) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`engine expected to be basetypes.StringValue, was: %T`, engineAttribute)) + } + + keyAttribute, ok := attributes["key"] + + if !ok { + diags.AddError( + "Attribute Missing", + `key is missing from object`) + + return NewSwiftStorageValueUnknown(), diags + } + + keyVal, ok := keyAttribute.(basetypes.StringValue) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`key expected to be basetypes.StringValue, was: %T`, keyAttribute)) + } + objectAttribute, ok := attributes["object"] if !ok { @@ -1405,6 +3047,24 @@ func NewSwiftStorageValue(attributeTypes map[string]attr.Type, attributes map[st fmt.Sprintf(`region expected to be basetypes.StringValue, was: %T`, regionAttribute)) } + s3ForcePathStyleAttribute, ok := attributes["s3_force_path_style"] + + if !ok { + diags.AddError( + "Attribute Missing", + `s3_force_path_style is missing from object`) + + return NewSwiftStorageValueUnknown(), diags + } + + s3ForcePathStyleVal, ok := s3ForcePathStyleAttribute.(basetypes.BoolValue) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`s3_force_path_style expected to be basetypes.BoolValue, was: %T`, s3ForcePathStyleAttribute)) + } + skipVerifySslAttribute, ok := attributes["skip_verify_ssl"] if !ok { @@ -1428,11 +3088,16 @@ func NewSwiftStorageValue(attributeTypes map[string]attr.Type, attributes map[st } return SwiftStorageValue{ - Container: containerVal, - Object: objectVal, - Region: regionVal, - SkipVerifySsl: skipVerifySslVal, - state: attr.ValueStateKnown, + Bucket: bucketVal, + Container: containerVal, + Endpoint: endpointVal, + Engine: engineVal, + Key: keyVal, + Object: objectVal, + Region: regionVal, + S3ForcePathStyle: s3ForcePathStyleVal, + SkipVerifySsl: skipVerifySslVal, + state: attr.ValueStateKnown, }, diags } @@ -1504,29 +3169,47 @@ func (t SwiftStorageType) ValueType(ctx context.Context) attr.Value { var _ basetypes.ObjectValuable = SwiftStorageValue{} type SwiftStorageValue struct { - Container basetypes.StringValue `tfsdk:"container"` - Object basetypes.StringValue `tfsdk:"object"` - Region basetypes.StringValue `tfsdk:"region"` - SkipVerifySsl basetypes.BoolValue `tfsdk:"skip_verify_ssl"` - state attr.ValueState + Bucket basetypes.StringValue `tfsdk:"bucket"` + Container basetypes.StringValue `tfsdk:"container"` + Endpoint basetypes.StringValue `tfsdk:"endpoint"` + Engine basetypes.StringValue `tfsdk:"engine"` + Key basetypes.StringValue `tfsdk:"key"` + Object basetypes.StringValue `tfsdk:"object"` + Region basetypes.StringValue `tfsdk:"region"` + S3ForcePathStyle basetypes.BoolValue `tfsdk:"s3_force_path_style"` + SkipVerifySsl basetypes.BoolValue `tfsdk:"skip_verify_ssl"` + state attr.ValueState } func (v SwiftStorageValue) ToTerraformValue(ctx context.Context) (tftypes.Value, error) { - attrTypes := make(map[string]tftypes.Type, 4) + attrTypes := make(map[string]tftypes.Type, 9) var val tftypes.Value var err error + attrTypes["bucket"] = basetypes.StringType{}.TerraformType(ctx) attrTypes["container"] = basetypes.StringType{}.TerraformType(ctx) + attrTypes["endpoint"] = basetypes.StringType{}.TerraformType(ctx) + attrTypes["engine"] = basetypes.StringType{}.TerraformType(ctx) + attrTypes["key"] = basetypes.StringType{}.TerraformType(ctx) attrTypes["object"] = basetypes.StringType{}.TerraformType(ctx) attrTypes["region"] = basetypes.StringType{}.TerraformType(ctx) + attrTypes["s3_force_path_style"] = basetypes.BoolType{}.TerraformType(ctx) attrTypes["skip_verify_ssl"] = basetypes.BoolType{}.TerraformType(ctx) objectType := tftypes.Object{AttributeTypes: attrTypes} switch v.state { case attr.ValueStateKnown: - vals := make(map[string]tftypes.Value, 4) + vals := make(map[string]tftypes.Value, 9) + + val, err = v.Bucket.ToTerraformValue(ctx) + + if err != nil { + return tftypes.NewValue(objectType, tftypes.UnknownValue), err + } + + vals["bucket"] = val val, err = v.Container.ToTerraformValue(ctx) @@ -1536,6 +3219,30 @@ func (v SwiftStorageValue) ToTerraformValue(ctx context.Context) (tftypes.Value, vals["container"] = val + val, err = v.Endpoint.ToTerraformValue(ctx) + + if err != nil { + return tftypes.NewValue(objectType, tftypes.UnknownValue), err + } + + vals["endpoint"] = val + + val, err = v.Engine.ToTerraformValue(ctx) + + if err != nil { + return tftypes.NewValue(objectType, tftypes.UnknownValue), err + } + + vals["engine"] = val + + val, err = v.Key.ToTerraformValue(ctx) + + if err != nil { + return tftypes.NewValue(objectType, tftypes.UnknownValue), err + } + + vals["key"] = val + val, err = v.Object.ToTerraformValue(ctx) if err != nil { @@ -1552,6 +3259,14 @@ func (v SwiftStorageValue) ToTerraformValue(ctx context.Context) (tftypes.Value, vals["region"] = val + val, err = v.S3ForcePathStyle.ToTerraformValue(ctx) + + if err != nil { + return tftypes.NewValue(objectType, tftypes.UnknownValue), err + } + + vals["s3_force_path_style"] = val + val, err = v.SkipVerifySsl.ToTerraformValue(ctx) if err != nil { @@ -1589,18 +3304,38 @@ func (v SwiftStorageValue) String() string { func (v SwiftStorageValue) ToObjectValue(ctx context.Context) (basetypes.ObjectValue, diag.Diagnostics) { var diags diag.Diagnostics + attributeTypes := map[string]attr.Type{ + "bucket": basetypes.StringType{}, + "container": basetypes.StringType{}, + "endpoint": basetypes.StringType{}, + "engine": basetypes.StringType{}, + "key": basetypes.StringType{}, + "object": basetypes.StringType{}, + "region": basetypes.StringType{}, + "s3_force_path_style": basetypes.BoolType{}, + "skip_verify_ssl": basetypes.BoolType{}, + } + + if v.IsNull() { + return types.ObjectNull(attributeTypes), diags + } + + if v.IsUnknown() { + return types.ObjectUnknown(attributeTypes), diags + } + objVal, diags := types.ObjectValue( - map[string]attr.Type{ - "container": basetypes.StringType{}, - "object": basetypes.StringType{}, - "region": basetypes.StringType{}, - "skip_verify_ssl": basetypes.BoolType{}, - }, + attributeTypes, map[string]attr.Value{ - "container": v.Container, - "object": v.Object, - "region": v.Region, - "skip_verify_ssl": v.SkipVerifySsl, + "bucket": v.Bucket, + "container": v.Container, + "endpoint": v.Endpoint, + "engine": v.Engine, + "key": v.Key, + "object": v.Object, + "region": v.Region, + "s3_force_path_style": v.S3ForcePathStyle, + "skip_verify_ssl": v.SkipVerifySsl, }) return objVal, diags @@ -1621,10 +3356,26 @@ func (v SwiftStorageValue) Equal(o attr.Value) bool { return true } + if !v.Bucket.Equal(other.Bucket) { + return false + } + if !v.Container.Equal(other.Container) { return false } + if !v.Endpoint.Equal(other.Endpoint) { + return false + } + + if !v.Engine.Equal(other.Engine) { + return false + } + + if !v.Key.Equal(other.Key) { + return false + } + if !v.Object.Equal(other.Object) { return false } @@ -1633,6 +3384,10 @@ func (v SwiftStorageValue) Equal(o attr.Value) bool { return false } + if !v.S3ForcePathStyle.Equal(other.S3ForcePathStyle) { + return false + } + if !v.SkipVerifySsl.Equal(other.SkipVerifySsl) { return false } @@ -1650,9 +3405,14 @@ func (v SwiftStorageValue) Type(ctx context.Context) attr.Type { func (v SwiftStorageValue) AttributeTypes(ctx context.Context) map[string]attr.Type { return map[string]attr.Type{ - "container": basetypes.StringType{}, - "object": basetypes.StringType{}, - "region": basetypes.StringType{}, - "skip_verify_ssl": basetypes.BoolType{}, + "bucket": basetypes.StringType{}, + "container": basetypes.StringType{}, + "endpoint": basetypes.StringType{}, + "engine": basetypes.StringType{}, + "key": basetypes.StringType{}, + "object": basetypes.StringType{}, + "region": basetypes.StringType{}, + "s3_force_path_style": basetypes.BoolType{}, + "skip_verify_ssl": basetypes.BoolType{}, } } diff --git a/resource_organization/organization_resource_gen.go b/resource_organization/organization_resource_gen.go index ff4179a..ac2212a 100644 --- a/resource_organization/organization_resource_gen.go +++ b/resource_organization/organization_resource_gen.go @@ -22,10 +22,8 @@ func OrganizationResourceSchema(ctx context.Context) schema.Schema { return schema.Schema{ Attributes: map[string]schema.Attribute{ "canonical": schema.StringAttribute{ - Optional: true, - Computed: true, - Description: "The canonical of an entity", - MarkdownDescription: "The canonical of an entity", + Optional: true, + Computed: true, Validators: []validator.String{ stringvalidator.LengthBetween(3, 100), stringvalidator.RegexMatches(regexp.MustCompile("^[a-z0-9]+[a-z0-9\\-_]+[a-z0-9]+$"), ""), @@ -33,12 +31,145 @@ func OrganizationResourceSchema(ctx context.Context) schema.Schema { }, "data": schema.SingleNestedAttribute{ Attributes: map[string]schema.Attribute{ + "admins": schema.ListNestedAttribute{ + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "created_at": schema.Int64Attribute{ + Computed: true, + Description: "When the user became a member.", + MarkdownDescription: "When the user became a member.", + }, + "email": schema.StringAttribute{ + Computed: true, + Description: "user email", + MarkdownDescription: "user email", + }, + "family_name": schema.StringAttribute{ + Computed: true, + }, + "given_name": schema.StringAttribute{ + Computed: true, + }, + "id": schema.Int64Attribute{ + Computed: true, + }, + "invitation_email": schema.StringAttribute{ + Computed: true, + Description: "The email address to which the invitation was sent. It's used to resend the invitation.", + MarkdownDescription: "The email address to which the invitation was sent. It's used to resend the invitation.", + }, + "invitation_resent_at": schema.Int64Attribute{ + Computed: true, + }, + "invitation_state": schema.StringAttribute{ + Computed: true, + }, + "invited_at": schema.Int64Attribute{ + Computed: true, + Description: "When the user had been invited to join as a member. When not present, the user is already a member, so she/he has verified her/his invitation.", + MarkdownDescription: "When the user had been invited to join as a member. When not present, the user is already a member, so she/he has verified her/his invitation.", + }, + "last_login_at": schema.Int64Attribute{ + Computed: true, + Description: "When the user logged in last time.", + MarkdownDescription: "When the user logged in last time.", + }, + "locale": schema.StringAttribute{ + Computed: true, + Description: "User's preferred language", + MarkdownDescription: "User's preferred language", + }, + "mfa_enabled": schema.BoolAttribute{ + Computed: true, + }, + "picture_url": schema.StringAttribute{ + Computed: true, + }, + "role": schema.SingleNestedAttribute{ + Attributes: map[string]schema.Attribute{ + "canonical": schema.StringAttribute{ + Computed: true, + }, + "created_at": schema.Int64Attribute{ + Computed: true, + }, + "default": schema.BoolAttribute{ + Computed: true, + }, + "description": schema.StringAttribute{ + Computed: true, + }, + "id": schema.Int64Attribute{ + Computed: true, + }, + "name": schema.StringAttribute{ + Computed: true, + }, + "rules": schema.ListNestedAttribute{ + NestedObject: schema.NestedAttributeObject{ + Attributes: map[string]schema.Attribute{ + "action": schema.StringAttribute{ + Computed: true, + Description: "It can be the normal Policy.Code or contain globs like `*` or `**`", + MarkdownDescription: "It can be the normal Policy.Code or contain globs like `*` or `**`", + }, + "effect": schema.StringAttribute{ + Computed: true, + }, + "id": schema.Int64Attribute{ + Computed: true, + Description: "This is the id of the row from the database, but for blocking organizations we generate rules that are not in the database. When this happens the id is allowed to be 0.", + MarkdownDescription: "This is the id of the row from the database, but for blocking organizations we generate rules that are not in the database. When this happens the id is allowed to be 0.", + }, + "resources": schema.ListAttribute{ + ElementType: types.StringType, + Computed: true, + Description: "It is the list of resources in which this Rule applies to, the format of it is the one on the Policy.Code but with the `canonical` of the entities like `organization:org-can:team:team-can` for an action of `organization:team:read`", + MarkdownDescription: "It is the list of resources in which this Rule applies to, the format of it is the one on the Policy.Code but with the `canonical` of the entities like `organization:org-can:team:team-can` for an action of `organization:team:read`", + }, + }, + CustomType: RulesType{ + ObjectType: types.ObjectType{ + AttrTypes: RulesValue{}.AttributeTypes(ctx), + }, + }, + }, + Computed: true, + }, + "updated_at": schema.Int64Attribute{ + Computed: true, + }, + }, + CustomType: RoleType{ + ObjectType: types.ObjectType{ + AttrTypes: RoleValue{}.AttributeTypes(ctx), + }, + }, + Computed: true, + Description: "Role represents the authorization level that an user has to access to a specific entity of the system. A role contains a list of rules to define the access control. Note not all the entities supports roles access control; see the API endpoints to know which entities support them.", + MarkdownDescription: "Role represents the authorization level that an user has to access to a specific entity of the system. A role contains a list of rules to define the access control. Note not all the entities supports roles access control; see the API endpoints to know which entities support them.", + }, + "updated_at": schema.Int64Attribute{ + Computed: true, + Description: "When the user had the role modified.", + MarkdownDescription: "When the user had the role modified.", + }, + "username": schema.StringAttribute{ + Computed: true, + }, + }, + CustomType: AdminsType{ + ObjectType: types.ObjectType{ + AttrTypes: AdminsValue{}.AttributeTypes(ctx), + }, + }, + }, + Computed: true, + }, "appearance": schema.SingleNestedAttribute{ Attributes: map[string]schema.Attribute{ "canonical": schema.StringAttribute{ - Computed: true, - Description: "The canonical of an entity", - MarkdownDescription: "The canonical of an entity", + Computed: true, }, "color": schema.SingleNestedAttribute{ Attributes: map[string]schema.Attribute{ @@ -66,9 +197,7 @@ func OrganizationResourceSchema(ctx context.Context) schema.Schema { Computed: true, }, "created_at": schema.Int64Attribute{ - Computed: true, - Description: "The time of creation of the entity", - MarkdownDescription: "The time of creation of the entity", + Computed: true, }, "display_name": schema.StringAttribute{ Computed: true, @@ -86,17 +215,13 @@ func OrganizationResourceSchema(ctx context.Context) schema.Schema { Computed: true, }, "name": schema.StringAttribute{ - Computed: true, - Description: "The name of an entity", - MarkdownDescription: "The name of an entity", + Computed: true, }, "tab_title": schema.StringAttribute{ Computed: true, }, "updated_at": schema.Int64Attribute{ - Computed: true, - Description: "The time of the last update of the entity", - MarkdownDescription: "The time of the last update of the entity", + Computed: true, }, }, CustomType: AppearanceType{ @@ -119,9 +244,7 @@ func OrganizationResourceSchema(ctx context.Context) schema.Schema { Computed: true, }, "canonical": schema.StringAttribute{ - Computed: true, - Description: "The canonical of an entity", - MarkdownDescription: "The canonical of an entity", + Computed: true, }, "ci_port": schema.StringAttribute{ Computed: true, @@ -133,17 +256,13 @@ func OrganizationResourceSchema(ctx context.Context) schema.Schema { Computed: true, }, "created_at": schema.Int64Attribute{ - Computed: true, - Description: "The time of creation of the entity", - MarkdownDescription: "The time of creation of the entity", + Computed: true, }, "has_children": schema.BoolAttribute{ Computed: true, }, "id": schema.Int64Attribute{ - Computed: true, - Description: "ID represents the id of the entity", - MarkdownDescription: "ID represents the id of the entity", + Computed: true, }, "mfa_enabled": schema.BoolAttribute{ Computed: true, @@ -168,9 +287,7 @@ func OrganizationResourceSchema(ctx context.Context) schema.Schema { "plan": schema.SingleNestedAttribute{ Attributes: map[string]schema.Attribute{ "canonical": schema.StringAttribute{ - Computed: true, - Description: "The canonical of an entity", - MarkdownDescription: "The canonical of an entity", + Computed: true, }, "name": schema.StringAttribute{ Computed: true, @@ -196,9 +313,7 @@ func OrganizationResourceSchema(ctx context.Context) schema.Schema { MarkdownDescription: "It reflects the relation between an Organization and a Plan which\ncould be the Free Trial or others, for more info check https://www.cycloid.io/pricing\n", }, "updated_at": schema.Int64Attribute{ - Computed: true, - Description: "The time of the last update of the entity", - MarkdownDescription: "The time of the last update of the entity", + Computed: true, }, }, CustomType: DataType{ @@ -262,6 +377,24 @@ func (t DataType) ValueFromObject(ctx context.Context, in basetypes.ObjectValue) attributes := in.Attributes() + adminsAttribute, ok := attributes["admins"] + + if !ok { + diags.AddError( + "Attribute Missing", + `admins is missing from object`) + + return nil, diags + } + + adminsVal, ok := adminsAttribute.(basetypes.ListValue) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`admins expected to be basetypes.ListValue, was: %T`, adminsAttribute)) + } + appearanceAttribute, ok := attributes["appearance"] if !ok { @@ -555,6 +688,7 @@ func (t DataType) ValueFromObject(ctx context.Context, in basetypes.ObjectValue) } return DataValue{ + Admins: adminsVal, Appearance: appearanceVal, Blocked: blockedVal, CanChildrenCreateAppearance: canChildrenCreateAppearanceVal, @@ -638,6 +772,24 @@ func NewDataValue(attributeTypes map[string]attr.Type, attributes map[string]att return NewDataValueUnknown(), diags } + adminsAttribute, ok := attributes["admins"] + + if !ok { + diags.AddError( + "Attribute Missing", + `admins is missing from object`) + + return NewDataValueUnknown(), diags + } + + adminsVal, ok := adminsAttribute.(basetypes.ListValue) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`admins expected to be basetypes.ListValue, was: %T`, adminsAttribute)) + } + appearanceAttribute, ok := attributes["appearance"] if !ok { @@ -931,6 +1083,7 @@ func NewDataValue(attributeTypes map[string]attr.Type, attributes map[string]att } return DataValue{ + Admins: adminsVal, Appearance: appearanceVal, Blocked: blockedVal, CanChildrenCreateAppearance: canChildrenCreateAppearanceVal, @@ -1019,6 +1172,7 @@ func (t DataType) ValueType(ctx context.Context) attr.Value { var _ basetypes.ObjectValuable = DataValue{} type DataValue struct { + Admins basetypes.ListValue `tfsdk:"admins"` Appearance basetypes.ObjectValue `tfsdk:"appearance"` Blocked basetypes.ListValue `tfsdk:"blocked"` CanChildrenCreateAppearance basetypes.BoolValue `tfsdk:"can_children_create_appearance"` @@ -1039,11 +1193,14 @@ type DataValue struct { } func (v DataValue) ToTerraformValue(ctx context.Context) (tftypes.Value, error) { - attrTypes := make(map[string]tftypes.Type, 16) + attrTypes := make(map[string]tftypes.Type, 17) var val tftypes.Value var err error + attrTypes["admins"] = basetypes.ListType{ + ElemType: AdminsValue{}.Type(ctx), + }.TerraformType(ctx) attrTypes["appearance"] = basetypes.ObjectType{ AttrTypes: AppearanceValue{}.AttributeTypes(ctx), }.TerraformType(ctx) @@ -1071,7 +1228,15 @@ func (v DataValue) ToTerraformValue(ctx context.Context) (tftypes.Value, error) switch v.state { case attr.ValueStateKnown: - vals := make(map[string]tftypes.Value, 16) + vals := make(map[string]tftypes.Value, 17) + + val, err = v.Admins.ToTerraformValue(ctx) + + if err != nil { + return tftypes.NewValue(objectType, tftypes.UnknownValue), err + } + + vals["admins"] = val val, err = v.Appearance.ToTerraformValue(ctx) @@ -1167,39 +1332,2670 @@ func (v DataValue) ToTerraformValue(ctx context.Context) (tftypes.Value, error) return tftypes.NewValue(objectType, tftypes.UnknownValue), err } - vals["mfa_enabled"] = val + vals["mfa_enabled"] = val + + val, err = v.Name.ToTerraformValue(ctx) + + if err != nil { + return tftypes.NewValue(objectType, tftypes.UnknownValue), err + } + + vals["name"] = val + + val, err = v.Quotas.ToTerraformValue(ctx) + + if err != nil { + return tftypes.NewValue(objectType, tftypes.UnknownValue), err + } + + vals["quotas"] = val + + val, err = v.Subscription.ToTerraformValue(ctx) + + if err != nil { + return tftypes.NewValue(objectType, tftypes.UnknownValue), err + } + + vals["subscription"] = val + + val, err = v.UpdatedAt.ToTerraformValue(ctx) + + if err != nil { + return tftypes.NewValue(objectType, tftypes.UnknownValue), err + } + + vals["updated_at"] = val + + if err := tftypes.ValidateValue(objectType, vals); err != nil { + return tftypes.NewValue(objectType, tftypes.UnknownValue), err + } + + return tftypes.NewValue(objectType, vals), nil + case attr.ValueStateNull: + return tftypes.NewValue(objectType, nil), nil + case attr.ValueStateUnknown: + return tftypes.NewValue(objectType, tftypes.UnknownValue), nil + default: + panic(fmt.Sprintf("unhandled Object state in ToTerraformValue: %s", v.state)) + } +} + +func (v DataValue) IsNull() bool { + return v.state == attr.ValueStateNull +} + +func (v DataValue) IsUnknown() bool { + return v.state == attr.ValueStateUnknown +} + +func (v DataValue) String() string { + return "DataValue" +} + +func (v DataValue) ToObjectValue(ctx context.Context) (basetypes.ObjectValue, diag.Diagnostics) { + var diags diag.Diagnostics + + admins := types.ListValueMust( + AdminsType{ + basetypes.ObjectType{ + AttrTypes: AdminsValue{}.AttributeTypes(ctx), + }, + }, + v.Admins.Elements(), + ) + + if v.Admins.IsNull() { + admins = types.ListNull( + AdminsType{ + basetypes.ObjectType{ + AttrTypes: AdminsValue{}.AttributeTypes(ctx), + }, + }, + ) + } + + if v.Admins.IsUnknown() { + admins = types.ListUnknown( + AdminsType{ + basetypes.ObjectType{ + AttrTypes: AdminsValue{}.AttributeTypes(ctx), + }, + }, + ) + } + + var appearance basetypes.ObjectValue + + if v.Appearance.IsNull() { + appearance = types.ObjectNull( + AppearanceValue{}.AttributeTypes(ctx), + ) + } + + if v.Appearance.IsUnknown() { + appearance = types.ObjectUnknown( + AppearanceValue{}.AttributeTypes(ctx), + ) + } + + if !v.Appearance.IsNull() && !v.Appearance.IsUnknown() { + appearance = types.ObjectValueMust( + AppearanceValue{}.AttributeTypes(ctx), + v.Appearance.Attributes(), + ) + } + + var subscription basetypes.ObjectValue + + if v.Subscription.IsNull() { + subscription = types.ObjectNull( + SubscriptionValue{}.AttributeTypes(ctx), + ) + } + + if v.Subscription.IsUnknown() { + subscription = types.ObjectUnknown( + SubscriptionValue{}.AttributeTypes(ctx), + ) + } + + if !v.Subscription.IsNull() && !v.Subscription.IsUnknown() { + subscription = types.ObjectValueMust( + SubscriptionValue{}.AttributeTypes(ctx), + v.Subscription.Attributes(), + ) + } + + var blockedVal basetypes.ListValue + switch { + case v.Blocked.IsUnknown(): + blockedVal = types.ListUnknown(types.StringType) + case v.Blocked.IsNull(): + blockedVal = types.ListNull(types.StringType) + default: + var d diag.Diagnostics + blockedVal, d = types.ListValue(types.StringType, v.Blocked.Elements()) + diags.Append(d...) + } + + if diags.HasError() { + return types.ObjectUnknown(map[string]attr.Type{ + "admins": basetypes.ListType{ + ElemType: AdminsValue{}.Type(ctx), + }, + "appearance": basetypes.ObjectType{ + AttrTypes: AppearanceValue{}.AttributeTypes(ctx), + }, + "blocked": basetypes.ListType{ + ElemType: types.StringType, + }, + "can_children_create_appearance": basetypes.BoolType{}, + "can_create_appearance": basetypes.BoolType{}, + "canonical": basetypes.StringType{}, + "ci_port": basetypes.StringType{}, + "ci_team_name": basetypes.StringType{}, + "ci_url": basetypes.StringType{}, + "created_at": basetypes.Int64Type{}, + "has_children": basetypes.BoolType{}, + "id": basetypes.Int64Type{}, + "mfa_enabled": basetypes.BoolType{}, + "name": basetypes.StringType{}, + "quotas": basetypes.BoolType{}, + "subscription": basetypes.ObjectType{ + AttrTypes: SubscriptionValue{}.AttributeTypes(ctx), + }, + "updated_at": basetypes.Int64Type{}, + }), diags + } + + attributeTypes := map[string]attr.Type{ + "admins": basetypes.ListType{ + ElemType: AdminsValue{}.Type(ctx), + }, + "appearance": basetypes.ObjectType{ + AttrTypes: AppearanceValue{}.AttributeTypes(ctx), + }, + "blocked": basetypes.ListType{ + ElemType: types.StringType, + }, + "can_children_create_appearance": basetypes.BoolType{}, + "can_create_appearance": basetypes.BoolType{}, + "canonical": basetypes.StringType{}, + "ci_port": basetypes.StringType{}, + "ci_team_name": basetypes.StringType{}, + "ci_url": basetypes.StringType{}, + "created_at": basetypes.Int64Type{}, + "has_children": basetypes.BoolType{}, + "id": basetypes.Int64Type{}, + "mfa_enabled": basetypes.BoolType{}, + "name": basetypes.StringType{}, + "quotas": basetypes.BoolType{}, + "subscription": basetypes.ObjectType{ + AttrTypes: SubscriptionValue{}.AttributeTypes(ctx), + }, + "updated_at": basetypes.Int64Type{}, + } + + if v.IsNull() { + return types.ObjectNull(attributeTypes), diags + } + + if v.IsUnknown() { + return types.ObjectUnknown(attributeTypes), diags + } + + objVal, diags := types.ObjectValue( + attributeTypes, + map[string]attr.Value{ + "admins": admins, + "appearance": appearance, + "blocked": blockedVal, + "can_children_create_appearance": v.CanChildrenCreateAppearance, + "can_create_appearance": v.CanCreateAppearance, + "canonical": v.Canonical, + "ci_port": v.CiPort, + "ci_team_name": v.CiTeamName, + "ci_url": v.CiUrl, + "created_at": v.CreatedAt, + "has_children": v.HasChildren, + "id": v.Id, + "mfa_enabled": v.MfaEnabled, + "name": v.Name, + "quotas": v.Quotas, + "subscription": subscription, + "updated_at": v.UpdatedAt, + }) + + return objVal, diags +} + +func (v DataValue) Equal(o attr.Value) bool { + other, ok := o.(DataValue) + + if !ok { + return false + } + + if v.state != other.state { + return false + } + + if v.state != attr.ValueStateKnown { + return true + } + + if !v.Admins.Equal(other.Admins) { + return false + } + + if !v.Appearance.Equal(other.Appearance) { + return false + } + + if !v.Blocked.Equal(other.Blocked) { + return false + } + + if !v.CanChildrenCreateAppearance.Equal(other.CanChildrenCreateAppearance) { + return false + } + + if !v.CanCreateAppearance.Equal(other.CanCreateAppearance) { + return false + } + + if !v.Canonical.Equal(other.Canonical) { + return false + } + + if !v.CiPort.Equal(other.CiPort) { + return false + } + + if !v.CiTeamName.Equal(other.CiTeamName) { + return false + } + + if !v.CiUrl.Equal(other.CiUrl) { + return false + } + + if !v.CreatedAt.Equal(other.CreatedAt) { + return false + } + + if !v.HasChildren.Equal(other.HasChildren) { + return false + } + + if !v.Id.Equal(other.Id) { + return false + } + + if !v.MfaEnabled.Equal(other.MfaEnabled) { + return false + } + + if !v.Name.Equal(other.Name) { + return false + } + + if !v.Quotas.Equal(other.Quotas) { + return false + } + + if !v.Subscription.Equal(other.Subscription) { + return false + } + + if !v.UpdatedAt.Equal(other.UpdatedAt) { + return false + } + + return true +} + +func (v DataValue) Type(ctx context.Context) attr.Type { + return DataType{ + basetypes.ObjectType{ + AttrTypes: v.AttributeTypes(ctx), + }, + } +} + +func (v DataValue) AttributeTypes(ctx context.Context) map[string]attr.Type { + return map[string]attr.Type{ + "admins": basetypes.ListType{ + ElemType: AdminsValue{}.Type(ctx), + }, + "appearance": basetypes.ObjectType{ + AttrTypes: AppearanceValue{}.AttributeTypes(ctx), + }, + "blocked": basetypes.ListType{ + ElemType: types.StringType, + }, + "can_children_create_appearance": basetypes.BoolType{}, + "can_create_appearance": basetypes.BoolType{}, + "canonical": basetypes.StringType{}, + "ci_port": basetypes.StringType{}, + "ci_team_name": basetypes.StringType{}, + "ci_url": basetypes.StringType{}, + "created_at": basetypes.Int64Type{}, + "has_children": basetypes.BoolType{}, + "id": basetypes.Int64Type{}, + "mfa_enabled": basetypes.BoolType{}, + "name": basetypes.StringType{}, + "quotas": basetypes.BoolType{}, + "subscription": basetypes.ObjectType{ + AttrTypes: SubscriptionValue{}.AttributeTypes(ctx), + }, + "updated_at": basetypes.Int64Type{}, + } +} + +var _ basetypes.ObjectTypable = AdminsType{} + +type AdminsType struct { + basetypes.ObjectType +} + +func (t AdminsType) Equal(o attr.Type) bool { + other, ok := o.(AdminsType) + + if !ok { + return false + } + + return t.ObjectType.Equal(other.ObjectType) +} + +func (t AdminsType) String() string { + return "AdminsType" +} + +func (t AdminsType) ValueFromObject(ctx context.Context, in basetypes.ObjectValue) (basetypes.ObjectValuable, diag.Diagnostics) { + var diags diag.Diagnostics + + attributes := in.Attributes() + + createdAtAttribute, ok := attributes["created_at"] + + if !ok { + diags.AddError( + "Attribute Missing", + `created_at is missing from object`) + + return nil, diags + } + + createdAtVal, ok := createdAtAttribute.(basetypes.Int64Value) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`created_at expected to be basetypes.Int64Value, was: %T`, createdAtAttribute)) + } + + emailAttribute, ok := attributes["email"] + + if !ok { + diags.AddError( + "Attribute Missing", + `email is missing from object`) + + return nil, diags + } + + emailVal, ok := emailAttribute.(basetypes.StringValue) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`email expected to be basetypes.StringValue, was: %T`, emailAttribute)) + } + + familyNameAttribute, ok := attributes["family_name"] + + if !ok { + diags.AddError( + "Attribute Missing", + `family_name is missing from object`) + + return nil, diags + } + + familyNameVal, ok := familyNameAttribute.(basetypes.StringValue) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`family_name expected to be basetypes.StringValue, was: %T`, familyNameAttribute)) + } + + givenNameAttribute, ok := attributes["given_name"] + + if !ok { + diags.AddError( + "Attribute Missing", + `given_name is missing from object`) + + return nil, diags + } + + givenNameVal, ok := givenNameAttribute.(basetypes.StringValue) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`given_name expected to be basetypes.StringValue, was: %T`, givenNameAttribute)) + } + + idAttribute, ok := attributes["id"] + + if !ok { + diags.AddError( + "Attribute Missing", + `id is missing from object`) + + return nil, diags + } + + idVal, ok := idAttribute.(basetypes.Int64Value) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`id expected to be basetypes.Int64Value, was: %T`, idAttribute)) + } + + invitationEmailAttribute, ok := attributes["invitation_email"] + + if !ok { + diags.AddError( + "Attribute Missing", + `invitation_email is missing from object`) + + return nil, diags + } + + invitationEmailVal, ok := invitationEmailAttribute.(basetypes.StringValue) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`invitation_email expected to be basetypes.StringValue, was: %T`, invitationEmailAttribute)) + } + + invitationResentAtAttribute, ok := attributes["invitation_resent_at"] + + if !ok { + diags.AddError( + "Attribute Missing", + `invitation_resent_at is missing from object`) + + return nil, diags + } + + invitationResentAtVal, ok := invitationResentAtAttribute.(basetypes.Int64Value) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`invitation_resent_at expected to be basetypes.Int64Value, was: %T`, invitationResentAtAttribute)) + } + + invitationStateAttribute, ok := attributes["invitation_state"] + + if !ok { + diags.AddError( + "Attribute Missing", + `invitation_state is missing from object`) + + return nil, diags + } + + invitationStateVal, ok := invitationStateAttribute.(basetypes.StringValue) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`invitation_state expected to be basetypes.StringValue, was: %T`, invitationStateAttribute)) + } + + invitedAtAttribute, ok := attributes["invited_at"] + + if !ok { + diags.AddError( + "Attribute Missing", + `invited_at is missing from object`) + + return nil, diags + } + + invitedAtVal, ok := invitedAtAttribute.(basetypes.Int64Value) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`invited_at expected to be basetypes.Int64Value, was: %T`, invitedAtAttribute)) + } + + lastLoginAtAttribute, ok := attributes["last_login_at"] + + if !ok { + diags.AddError( + "Attribute Missing", + `last_login_at is missing from object`) + + return nil, diags + } + + lastLoginAtVal, ok := lastLoginAtAttribute.(basetypes.Int64Value) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`last_login_at expected to be basetypes.Int64Value, was: %T`, lastLoginAtAttribute)) + } + + localeAttribute, ok := attributes["locale"] + + if !ok { + diags.AddError( + "Attribute Missing", + `locale is missing from object`) + + return nil, diags + } + + localeVal, ok := localeAttribute.(basetypes.StringValue) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`locale expected to be basetypes.StringValue, was: %T`, localeAttribute)) + } + + mfaEnabledAttribute, ok := attributes["mfa_enabled"] + + if !ok { + diags.AddError( + "Attribute Missing", + `mfa_enabled is missing from object`) + + return nil, diags + } + + mfaEnabledVal, ok := mfaEnabledAttribute.(basetypes.BoolValue) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`mfa_enabled expected to be basetypes.BoolValue, was: %T`, mfaEnabledAttribute)) + } + + pictureUrlAttribute, ok := attributes["picture_url"] + + if !ok { + diags.AddError( + "Attribute Missing", + `picture_url is missing from object`) + + return nil, diags + } + + pictureUrlVal, ok := pictureUrlAttribute.(basetypes.StringValue) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`picture_url expected to be basetypes.StringValue, was: %T`, pictureUrlAttribute)) + } + + roleAttribute, ok := attributes["role"] + + if !ok { + diags.AddError( + "Attribute Missing", + `role is missing from object`) + + return nil, diags + } + + roleVal, ok := roleAttribute.(basetypes.ObjectValue) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`role expected to be basetypes.ObjectValue, was: %T`, roleAttribute)) + } + + updatedAtAttribute, ok := attributes["updated_at"] + + if !ok { + diags.AddError( + "Attribute Missing", + `updated_at is missing from object`) + + return nil, diags + } + + updatedAtVal, ok := updatedAtAttribute.(basetypes.Int64Value) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`updated_at expected to be basetypes.Int64Value, was: %T`, updatedAtAttribute)) + } + + usernameAttribute, ok := attributes["username"] + + if !ok { + diags.AddError( + "Attribute Missing", + `username is missing from object`) + + return nil, diags + } + + usernameVal, ok := usernameAttribute.(basetypes.StringValue) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`username expected to be basetypes.StringValue, was: %T`, usernameAttribute)) + } + + if diags.HasError() { + return nil, diags + } + + return AdminsValue{ + CreatedAt: createdAtVal, + Email: emailVal, + FamilyName: familyNameVal, + GivenName: givenNameVal, + Id: idVal, + InvitationEmail: invitationEmailVal, + InvitationResentAt: invitationResentAtVal, + InvitationState: invitationStateVal, + InvitedAt: invitedAtVal, + LastLoginAt: lastLoginAtVal, + Locale: localeVal, + MfaEnabled: mfaEnabledVal, + PictureUrl: pictureUrlVal, + Role: roleVal, + UpdatedAt: updatedAtVal, + Username: usernameVal, + state: attr.ValueStateKnown, + }, diags +} + +func NewAdminsValueNull() AdminsValue { + return AdminsValue{ + state: attr.ValueStateNull, + } +} + +func NewAdminsValueUnknown() AdminsValue { + return AdminsValue{ + state: attr.ValueStateUnknown, + } +} + +func NewAdminsValue(attributeTypes map[string]attr.Type, attributes map[string]attr.Value) (AdminsValue, diag.Diagnostics) { + var diags diag.Diagnostics + + // Reference: https://github.com/hashicorp/terraform-plugin-framework/issues/521 + ctx := context.Background() + + for name, attributeType := range attributeTypes { + attribute, ok := attributes[name] + + if !ok { + diags.AddError( + "Missing AdminsValue Attribute Value", + "While creating a AdminsValue value, a missing attribute value was detected. "+ + "A AdminsValue must contain values for all attributes, even if null or unknown. "+ + "This is always an issue with the provider and should be reported to the provider developers.\n\n"+ + fmt.Sprintf("AdminsValue Attribute Name (%s) Expected Type: %s", name, attributeType.String()), + ) + + continue + } + + if !attributeType.Equal(attribute.Type(ctx)) { + diags.AddError( + "Invalid AdminsValue Attribute Type", + "While creating a AdminsValue value, an invalid attribute value was detected. "+ + "A AdminsValue must use a matching attribute type for the value. "+ + "This is always an issue with the provider and should be reported to the provider developers.\n\n"+ + fmt.Sprintf("AdminsValue Attribute Name (%s) Expected Type: %s\n", name, attributeType.String())+ + fmt.Sprintf("AdminsValue Attribute Name (%s) Given Type: %s", name, attribute.Type(ctx)), + ) + } + } + + for name := range attributes { + _, ok := attributeTypes[name] + + if !ok { + diags.AddError( + "Extra AdminsValue Attribute Value", + "While creating a AdminsValue value, an extra attribute value was detected. "+ + "A AdminsValue must not contain values beyond the expected attribute types. "+ + "This is always an issue with the provider and should be reported to the provider developers.\n\n"+ + fmt.Sprintf("Extra AdminsValue Attribute Name: %s", name), + ) + } + } + + if diags.HasError() { + return NewAdminsValueUnknown(), diags + } + + createdAtAttribute, ok := attributes["created_at"] + + if !ok { + diags.AddError( + "Attribute Missing", + `created_at is missing from object`) + + return NewAdminsValueUnknown(), diags + } + + createdAtVal, ok := createdAtAttribute.(basetypes.Int64Value) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`created_at expected to be basetypes.Int64Value, was: %T`, createdAtAttribute)) + } + + emailAttribute, ok := attributes["email"] + + if !ok { + diags.AddError( + "Attribute Missing", + `email is missing from object`) + + return NewAdminsValueUnknown(), diags + } + + emailVal, ok := emailAttribute.(basetypes.StringValue) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`email expected to be basetypes.StringValue, was: %T`, emailAttribute)) + } + + familyNameAttribute, ok := attributes["family_name"] + + if !ok { + diags.AddError( + "Attribute Missing", + `family_name is missing from object`) + + return NewAdminsValueUnknown(), diags + } + + familyNameVal, ok := familyNameAttribute.(basetypes.StringValue) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`family_name expected to be basetypes.StringValue, was: %T`, familyNameAttribute)) + } + + givenNameAttribute, ok := attributes["given_name"] + + if !ok { + diags.AddError( + "Attribute Missing", + `given_name is missing from object`) + + return NewAdminsValueUnknown(), diags + } + + givenNameVal, ok := givenNameAttribute.(basetypes.StringValue) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`given_name expected to be basetypes.StringValue, was: %T`, givenNameAttribute)) + } + + idAttribute, ok := attributes["id"] + + if !ok { + diags.AddError( + "Attribute Missing", + `id is missing from object`) + + return NewAdminsValueUnknown(), diags + } + + idVal, ok := idAttribute.(basetypes.Int64Value) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`id expected to be basetypes.Int64Value, was: %T`, idAttribute)) + } + + invitationEmailAttribute, ok := attributes["invitation_email"] + + if !ok { + diags.AddError( + "Attribute Missing", + `invitation_email is missing from object`) + + return NewAdminsValueUnknown(), diags + } + + invitationEmailVal, ok := invitationEmailAttribute.(basetypes.StringValue) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`invitation_email expected to be basetypes.StringValue, was: %T`, invitationEmailAttribute)) + } + + invitationResentAtAttribute, ok := attributes["invitation_resent_at"] + + if !ok { + diags.AddError( + "Attribute Missing", + `invitation_resent_at is missing from object`) + + return NewAdminsValueUnknown(), diags + } + + invitationResentAtVal, ok := invitationResentAtAttribute.(basetypes.Int64Value) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`invitation_resent_at expected to be basetypes.Int64Value, was: %T`, invitationResentAtAttribute)) + } + + invitationStateAttribute, ok := attributes["invitation_state"] + + if !ok { + diags.AddError( + "Attribute Missing", + `invitation_state is missing from object`) + + return NewAdminsValueUnknown(), diags + } + + invitationStateVal, ok := invitationStateAttribute.(basetypes.StringValue) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`invitation_state expected to be basetypes.StringValue, was: %T`, invitationStateAttribute)) + } + + invitedAtAttribute, ok := attributes["invited_at"] + + if !ok { + diags.AddError( + "Attribute Missing", + `invited_at is missing from object`) + + return NewAdminsValueUnknown(), diags + } + + invitedAtVal, ok := invitedAtAttribute.(basetypes.Int64Value) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`invited_at expected to be basetypes.Int64Value, was: %T`, invitedAtAttribute)) + } + + lastLoginAtAttribute, ok := attributes["last_login_at"] + + if !ok { + diags.AddError( + "Attribute Missing", + `last_login_at is missing from object`) + + return NewAdminsValueUnknown(), diags + } + + lastLoginAtVal, ok := lastLoginAtAttribute.(basetypes.Int64Value) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`last_login_at expected to be basetypes.Int64Value, was: %T`, lastLoginAtAttribute)) + } + + localeAttribute, ok := attributes["locale"] + + if !ok { + diags.AddError( + "Attribute Missing", + `locale is missing from object`) + + return NewAdminsValueUnknown(), diags + } + + localeVal, ok := localeAttribute.(basetypes.StringValue) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`locale expected to be basetypes.StringValue, was: %T`, localeAttribute)) + } + + mfaEnabledAttribute, ok := attributes["mfa_enabled"] + + if !ok { + diags.AddError( + "Attribute Missing", + `mfa_enabled is missing from object`) + + return NewAdminsValueUnknown(), diags + } + + mfaEnabledVal, ok := mfaEnabledAttribute.(basetypes.BoolValue) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`mfa_enabled expected to be basetypes.BoolValue, was: %T`, mfaEnabledAttribute)) + } + + pictureUrlAttribute, ok := attributes["picture_url"] + + if !ok { + diags.AddError( + "Attribute Missing", + `picture_url is missing from object`) + + return NewAdminsValueUnknown(), diags + } + + pictureUrlVal, ok := pictureUrlAttribute.(basetypes.StringValue) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`picture_url expected to be basetypes.StringValue, was: %T`, pictureUrlAttribute)) + } + + roleAttribute, ok := attributes["role"] + + if !ok { + diags.AddError( + "Attribute Missing", + `role is missing from object`) + + return NewAdminsValueUnknown(), diags + } + + roleVal, ok := roleAttribute.(basetypes.ObjectValue) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`role expected to be basetypes.ObjectValue, was: %T`, roleAttribute)) + } + + updatedAtAttribute, ok := attributes["updated_at"] + + if !ok { + diags.AddError( + "Attribute Missing", + `updated_at is missing from object`) + + return NewAdminsValueUnknown(), diags + } + + updatedAtVal, ok := updatedAtAttribute.(basetypes.Int64Value) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`updated_at expected to be basetypes.Int64Value, was: %T`, updatedAtAttribute)) + } + + usernameAttribute, ok := attributes["username"] + + if !ok { + diags.AddError( + "Attribute Missing", + `username is missing from object`) + + return NewAdminsValueUnknown(), diags + } + + usernameVal, ok := usernameAttribute.(basetypes.StringValue) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`username expected to be basetypes.StringValue, was: %T`, usernameAttribute)) + } + + if diags.HasError() { + return NewAdminsValueUnknown(), diags + } + + return AdminsValue{ + CreatedAt: createdAtVal, + Email: emailVal, + FamilyName: familyNameVal, + GivenName: givenNameVal, + Id: idVal, + InvitationEmail: invitationEmailVal, + InvitationResentAt: invitationResentAtVal, + InvitationState: invitationStateVal, + InvitedAt: invitedAtVal, + LastLoginAt: lastLoginAtVal, + Locale: localeVal, + MfaEnabled: mfaEnabledVal, + PictureUrl: pictureUrlVal, + Role: roleVal, + UpdatedAt: updatedAtVal, + Username: usernameVal, + state: attr.ValueStateKnown, + }, diags +} + +func NewAdminsValueMust(attributeTypes map[string]attr.Type, attributes map[string]attr.Value) AdminsValue { + object, diags := NewAdminsValue(attributeTypes, attributes) + + if diags.HasError() { + // This could potentially be added to the diag package. + diagsStrings := make([]string, 0, len(diags)) + + for _, diagnostic := range diags { + diagsStrings = append(diagsStrings, fmt.Sprintf( + "%s | %s | %s", + diagnostic.Severity(), + diagnostic.Summary(), + diagnostic.Detail())) + } + + panic("NewAdminsValueMust received error(s): " + strings.Join(diagsStrings, "\n")) + } + + return object +} + +func (t AdminsType) ValueFromTerraform(ctx context.Context, in tftypes.Value) (attr.Value, error) { + if in.Type() == nil { + return NewAdminsValueNull(), nil + } + + if !in.Type().Equal(t.TerraformType(ctx)) { + return nil, fmt.Errorf("expected %s, got %s", t.TerraformType(ctx), in.Type()) + } + + if !in.IsKnown() { + return NewAdminsValueUnknown(), nil + } + + if in.IsNull() { + return NewAdminsValueNull(), nil + } + + attributes := map[string]attr.Value{} + + val := map[string]tftypes.Value{} + + err := in.As(&val) + + if err != nil { + return nil, err + } + + for k, v := range val { + a, err := t.AttrTypes[k].ValueFromTerraform(ctx, v) + + if err != nil { + return nil, err + } + + attributes[k] = a + } + + return NewAdminsValueMust(AdminsValue{}.AttributeTypes(ctx), attributes), nil +} + +func (t AdminsType) ValueType(ctx context.Context) attr.Value { + return AdminsValue{} +} + +var _ basetypes.ObjectValuable = AdminsValue{} + +type AdminsValue struct { + CreatedAt basetypes.Int64Value `tfsdk:"created_at"` + Email basetypes.StringValue `tfsdk:"email"` + FamilyName basetypes.StringValue `tfsdk:"family_name"` + GivenName basetypes.StringValue `tfsdk:"given_name"` + Id basetypes.Int64Value `tfsdk:"id"` + InvitationEmail basetypes.StringValue `tfsdk:"invitation_email"` + InvitationResentAt basetypes.Int64Value `tfsdk:"invitation_resent_at"` + InvitationState basetypes.StringValue `tfsdk:"invitation_state"` + InvitedAt basetypes.Int64Value `tfsdk:"invited_at"` + LastLoginAt basetypes.Int64Value `tfsdk:"last_login_at"` + Locale basetypes.StringValue `tfsdk:"locale"` + MfaEnabled basetypes.BoolValue `tfsdk:"mfa_enabled"` + PictureUrl basetypes.StringValue `tfsdk:"picture_url"` + Role basetypes.ObjectValue `tfsdk:"role"` + UpdatedAt basetypes.Int64Value `tfsdk:"updated_at"` + Username basetypes.StringValue `tfsdk:"username"` + state attr.ValueState +} + +func (v AdminsValue) ToTerraformValue(ctx context.Context) (tftypes.Value, error) { + attrTypes := make(map[string]tftypes.Type, 16) + + var val tftypes.Value + var err error + + attrTypes["created_at"] = basetypes.Int64Type{}.TerraformType(ctx) + attrTypes["email"] = basetypes.StringType{}.TerraformType(ctx) + attrTypes["family_name"] = basetypes.StringType{}.TerraformType(ctx) + attrTypes["given_name"] = basetypes.StringType{}.TerraformType(ctx) + attrTypes["id"] = basetypes.Int64Type{}.TerraformType(ctx) + attrTypes["invitation_email"] = basetypes.StringType{}.TerraformType(ctx) + attrTypes["invitation_resent_at"] = basetypes.Int64Type{}.TerraformType(ctx) + attrTypes["invitation_state"] = basetypes.StringType{}.TerraformType(ctx) + attrTypes["invited_at"] = basetypes.Int64Type{}.TerraformType(ctx) + attrTypes["last_login_at"] = basetypes.Int64Type{}.TerraformType(ctx) + attrTypes["locale"] = basetypes.StringType{}.TerraformType(ctx) + attrTypes["mfa_enabled"] = basetypes.BoolType{}.TerraformType(ctx) + attrTypes["picture_url"] = basetypes.StringType{}.TerraformType(ctx) + attrTypes["role"] = basetypes.ObjectType{ + AttrTypes: RoleValue{}.AttributeTypes(ctx), + }.TerraformType(ctx) + attrTypes["updated_at"] = basetypes.Int64Type{}.TerraformType(ctx) + attrTypes["username"] = basetypes.StringType{}.TerraformType(ctx) + + objectType := tftypes.Object{AttributeTypes: attrTypes} + + switch v.state { + case attr.ValueStateKnown: + vals := make(map[string]tftypes.Value, 16) + + val, err = v.CreatedAt.ToTerraformValue(ctx) + + if err != nil { + return tftypes.NewValue(objectType, tftypes.UnknownValue), err + } + + vals["created_at"] = val + + val, err = v.Email.ToTerraformValue(ctx) + + if err != nil { + return tftypes.NewValue(objectType, tftypes.UnknownValue), err + } + + vals["email"] = val + + val, err = v.FamilyName.ToTerraformValue(ctx) + + if err != nil { + return tftypes.NewValue(objectType, tftypes.UnknownValue), err + } + + vals["family_name"] = val + + val, err = v.GivenName.ToTerraformValue(ctx) + + if err != nil { + return tftypes.NewValue(objectType, tftypes.UnknownValue), err + } + + vals["given_name"] = val + + val, err = v.Id.ToTerraformValue(ctx) + + if err != nil { + return tftypes.NewValue(objectType, tftypes.UnknownValue), err + } + + vals["id"] = val + + val, err = v.InvitationEmail.ToTerraformValue(ctx) + + if err != nil { + return tftypes.NewValue(objectType, tftypes.UnknownValue), err + } + + vals["invitation_email"] = val + + val, err = v.InvitationResentAt.ToTerraformValue(ctx) + + if err != nil { + return tftypes.NewValue(objectType, tftypes.UnknownValue), err + } + + vals["invitation_resent_at"] = val + + val, err = v.InvitationState.ToTerraformValue(ctx) + + if err != nil { + return tftypes.NewValue(objectType, tftypes.UnknownValue), err + } + + vals["invitation_state"] = val + + val, err = v.InvitedAt.ToTerraformValue(ctx) + + if err != nil { + return tftypes.NewValue(objectType, tftypes.UnknownValue), err + } + + vals["invited_at"] = val + + val, err = v.LastLoginAt.ToTerraformValue(ctx) + + if err != nil { + return tftypes.NewValue(objectType, tftypes.UnknownValue), err + } + + vals["last_login_at"] = val + + val, err = v.Locale.ToTerraformValue(ctx) + + if err != nil { + return tftypes.NewValue(objectType, tftypes.UnknownValue), err + } + + vals["locale"] = val + + val, err = v.MfaEnabled.ToTerraformValue(ctx) + + if err != nil { + return tftypes.NewValue(objectType, tftypes.UnknownValue), err + } + + vals["mfa_enabled"] = val + + val, err = v.PictureUrl.ToTerraformValue(ctx) + + if err != nil { + return tftypes.NewValue(objectType, tftypes.UnknownValue), err + } + + vals["picture_url"] = val + + val, err = v.Role.ToTerraformValue(ctx) + + if err != nil { + return tftypes.NewValue(objectType, tftypes.UnknownValue), err + } + + vals["role"] = val + + val, err = v.UpdatedAt.ToTerraformValue(ctx) + + if err != nil { + return tftypes.NewValue(objectType, tftypes.UnknownValue), err + } + + vals["updated_at"] = val + + val, err = v.Username.ToTerraformValue(ctx) + + if err != nil { + return tftypes.NewValue(objectType, tftypes.UnknownValue), err + } + + vals["username"] = val + + if err := tftypes.ValidateValue(objectType, vals); err != nil { + return tftypes.NewValue(objectType, tftypes.UnknownValue), err + } + + return tftypes.NewValue(objectType, vals), nil + case attr.ValueStateNull: + return tftypes.NewValue(objectType, nil), nil + case attr.ValueStateUnknown: + return tftypes.NewValue(objectType, tftypes.UnknownValue), nil + default: + panic(fmt.Sprintf("unhandled Object state in ToTerraformValue: %s", v.state)) + } +} + +func (v AdminsValue) IsNull() bool { + return v.state == attr.ValueStateNull +} + +func (v AdminsValue) IsUnknown() bool { + return v.state == attr.ValueStateUnknown +} + +func (v AdminsValue) String() string { + return "AdminsValue" +} + +func (v AdminsValue) ToObjectValue(ctx context.Context) (basetypes.ObjectValue, diag.Diagnostics) { + var diags diag.Diagnostics + + var role basetypes.ObjectValue + + if v.Role.IsNull() { + role = types.ObjectNull( + RoleValue{}.AttributeTypes(ctx), + ) + } + + if v.Role.IsUnknown() { + role = types.ObjectUnknown( + RoleValue{}.AttributeTypes(ctx), + ) + } + + if !v.Role.IsNull() && !v.Role.IsUnknown() { + role = types.ObjectValueMust( + RoleValue{}.AttributeTypes(ctx), + v.Role.Attributes(), + ) + } + + attributeTypes := map[string]attr.Type{ + "created_at": basetypes.Int64Type{}, + "email": basetypes.StringType{}, + "family_name": basetypes.StringType{}, + "given_name": basetypes.StringType{}, + "id": basetypes.Int64Type{}, + "invitation_email": basetypes.StringType{}, + "invitation_resent_at": basetypes.Int64Type{}, + "invitation_state": basetypes.StringType{}, + "invited_at": basetypes.Int64Type{}, + "last_login_at": basetypes.Int64Type{}, + "locale": basetypes.StringType{}, + "mfa_enabled": basetypes.BoolType{}, + "picture_url": basetypes.StringType{}, + "role": basetypes.ObjectType{ + AttrTypes: RoleValue{}.AttributeTypes(ctx), + }, + "updated_at": basetypes.Int64Type{}, + "username": basetypes.StringType{}, + } + + if v.IsNull() { + return types.ObjectNull(attributeTypes), diags + } + + if v.IsUnknown() { + return types.ObjectUnknown(attributeTypes), diags + } + + objVal, diags := types.ObjectValue( + attributeTypes, + map[string]attr.Value{ + "created_at": v.CreatedAt, + "email": v.Email, + "family_name": v.FamilyName, + "given_name": v.GivenName, + "id": v.Id, + "invitation_email": v.InvitationEmail, + "invitation_resent_at": v.InvitationResentAt, + "invitation_state": v.InvitationState, + "invited_at": v.InvitedAt, + "last_login_at": v.LastLoginAt, + "locale": v.Locale, + "mfa_enabled": v.MfaEnabled, + "picture_url": v.PictureUrl, + "role": role, + "updated_at": v.UpdatedAt, + "username": v.Username, + }) + + return objVal, diags +} + +func (v AdminsValue) Equal(o attr.Value) bool { + other, ok := o.(AdminsValue) + + if !ok { + return false + } + + if v.state != other.state { + return false + } + + if v.state != attr.ValueStateKnown { + return true + } + + if !v.CreatedAt.Equal(other.CreatedAt) { + return false + } + + if !v.Email.Equal(other.Email) { + return false + } + + if !v.FamilyName.Equal(other.FamilyName) { + return false + } + + if !v.GivenName.Equal(other.GivenName) { + return false + } + + if !v.Id.Equal(other.Id) { + return false + } + + if !v.InvitationEmail.Equal(other.InvitationEmail) { + return false + } + + if !v.InvitationResentAt.Equal(other.InvitationResentAt) { + return false + } + + if !v.InvitationState.Equal(other.InvitationState) { + return false + } + + if !v.InvitedAt.Equal(other.InvitedAt) { + return false + } + + if !v.LastLoginAt.Equal(other.LastLoginAt) { + return false + } + + if !v.Locale.Equal(other.Locale) { + return false + } + + if !v.MfaEnabled.Equal(other.MfaEnabled) { + return false + } + + if !v.PictureUrl.Equal(other.PictureUrl) { + return false + } + + if !v.Role.Equal(other.Role) { + return false + } + + if !v.UpdatedAt.Equal(other.UpdatedAt) { + return false + } + + if !v.Username.Equal(other.Username) { + return false + } + + return true +} + +func (v AdminsValue) Type(ctx context.Context) attr.Type { + return AdminsType{ + basetypes.ObjectType{ + AttrTypes: v.AttributeTypes(ctx), + }, + } +} + +func (v AdminsValue) AttributeTypes(ctx context.Context) map[string]attr.Type { + return map[string]attr.Type{ + "created_at": basetypes.Int64Type{}, + "email": basetypes.StringType{}, + "family_name": basetypes.StringType{}, + "given_name": basetypes.StringType{}, + "id": basetypes.Int64Type{}, + "invitation_email": basetypes.StringType{}, + "invitation_resent_at": basetypes.Int64Type{}, + "invitation_state": basetypes.StringType{}, + "invited_at": basetypes.Int64Type{}, + "last_login_at": basetypes.Int64Type{}, + "locale": basetypes.StringType{}, + "mfa_enabled": basetypes.BoolType{}, + "picture_url": basetypes.StringType{}, + "role": basetypes.ObjectType{ + AttrTypes: RoleValue{}.AttributeTypes(ctx), + }, + "updated_at": basetypes.Int64Type{}, + "username": basetypes.StringType{}, + } +} + +var _ basetypes.ObjectTypable = RoleType{} + +type RoleType struct { + basetypes.ObjectType +} + +func (t RoleType) Equal(o attr.Type) bool { + other, ok := o.(RoleType) + + if !ok { + return false + } + + return t.ObjectType.Equal(other.ObjectType) +} + +func (t RoleType) String() string { + return "RoleType" +} + +func (t RoleType) ValueFromObject(ctx context.Context, in basetypes.ObjectValue) (basetypes.ObjectValuable, diag.Diagnostics) { + var diags diag.Diagnostics + + attributes := in.Attributes() + + canonicalAttribute, ok := attributes["canonical"] + + if !ok { + diags.AddError( + "Attribute Missing", + `canonical is missing from object`) + + return nil, diags + } + + canonicalVal, ok := canonicalAttribute.(basetypes.StringValue) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`canonical expected to be basetypes.StringValue, was: %T`, canonicalAttribute)) + } + + createdAtAttribute, ok := attributes["created_at"] + + if !ok { + diags.AddError( + "Attribute Missing", + `created_at is missing from object`) + + return nil, diags + } + + createdAtVal, ok := createdAtAttribute.(basetypes.Int64Value) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`created_at expected to be basetypes.Int64Value, was: %T`, createdAtAttribute)) + } + + defaultAttribute, ok := attributes["default"] + + if !ok { + diags.AddError( + "Attribute Missing", + `default is missing from object`) + + return nil, diags + } + + defaultVal, ok := defaultAttribute.(basetypes.BoolValue) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`default expected to be basetypes.BoolValue, was: %T`, defaultAttribute)) + } + + descriptionAttribute, ok := attributes["description"] + + if !ok { + diags.AddError( + "Attribute Missing", + `description is missing from object`) + + return nil, diags + } + + descriptionVal, ok := descriptionAttribute.(basetypes.StringValue) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`description expected to be basetypes.StringValue, was: %T`, descriptionAttribute)) + } + + idAttribute, ok := attributes["id"] + + if !ok { + diags.AddError( + "Attribute Missing", + `id is missing from object`) + + return nil, diags + } + + idVal, ok := idAttribute.(basetypes.Int64Value) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`id expected to be basetypes.Int64Value, was: %T`, idAttribute)) + } + + nameAttribute, ok := attributes["name"] + + if !ok { + diags.AddError( + "Attribute Missing", + `name is missing from object`) + + return nil, diags + } + + nameVal, ok := nameAttribute.(basetypes.StringValue) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`name expected to be basetypes.StringValue, was: %T`, nameAttribute)) + } + + rulesAttribute, ok := attributes["rules"] + + if !ok { + diags.AddError( + "Attribute Missing", + `rules is missing from object`) + + return nil, diags + } + + rulesVal, ok := rulesAttribute.(basetypes.ListValue) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`rules expected to be basetypes.ListValue, was: %T`, rulesAttribute)) + } + + updatedAtAttribute, ok := attributes["updated_at"] + + if !ok { + diags.AddError( + "Attribute Missing", + `updated_at is missing from object`) + + return nil, diags + } + + updatedAtVal, ok := updatedAtAttribute.(basetypes.Int64Value) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`updated_at expected to be basetypes.Int64Value, was: %T`, updatedAtAttribute)) + } + + if diags.HasError() { + return nil, diags + } + + return RoleValue{ + Canonical: canonicalVal, + CreatedAt: createdAtVal, + Default: defaultVal, + Description: descriptionVal, + Id: idVal, + Name: nameVal, + Rules: rulesVal, + UpdatedAt: updatedAtVal, + state: attr.ValueStateKnown, + }, diags +} + +func NewRoleValueNull() RoleValue { + return RoleValue{ + state: attr.ValueStateNull, + } +} + +func NewRoleValueUnknown() RoleValue { + return RoleValue{ + state: attr.ValueStateUnknown, + } +} + +func NewRoleValue(attributeTypes map[string]attr.Type, attributes map[string]attr.Value) (RoleValue, diag.Diagnostics) { + var diags diag.Diagnostics + + // Reference: https://github.com/hashicorp/terraform-plugin-framework/issues/521 + ctx := context.Background() + + for name, attributeType := range attributeTypes { + attribute, ok := attributes[name] + + if !ok { + diags.AddError( + "Missing RoleValue Attribute Value", + "While creating a RoleValue value, a missing attribute value was detected. "+ + "A RoleValue must contain values for all attributes, even if null or unknown. "+ + "This is always an issue with the provider and should be reported to the provider developers.\n\n"+ + fmt.Sprintf("RoleValue Attribute Name (%s) Expected Type: %s", name, attributeType.String()), + ) + + continue + } + + if !attributeType.Equal(attribute.Type(ctx)) { + diags.AddError( + "Invalid RoleValue Attribute Type", + "While creating a RoleValue value, an invalid attribute value was detected. "+ + "A RoleValue must use a matching attribute type for the value. "+ + "This is always an issue with the provider and should be reported to the provider developers.\n\n"+ + fmt.Sprintf("RoleValue Attribute Name (%s) Expected Type: %s\n", name, attributeType.String())+ + fmt.Sprintf("RoleValue Attribute Name (%s) Given Type: %s", name, attribute.Type(ctx)), + ) + } + } + + for name := range attributes { + _, ok := attributeTypes[name] + + if !ok { + diags.AddError( + "Extra RoleValue Attribute Value", + "While creating a RoleValue value, an extra attribute value was detected. "+ + "A RoleValue must not contain values beyond the expected attribute types. "+ + "This is always an issue with the provider and should be reported to the provider developers.\n\n"+ + fmt.Sprintf("Extra RoleValue Attribute Name: %s", name), + ) + } + } + + if diags.HasError() { + return NewRoleValueUnknown(), diags + } + + canonicalAttribute, ok := attributes["canonical"] + + if !ok { + diags.AddError( + "Attribute Missing", + `canonical is missing from object`) + + return NewRoleValueUnknown(), diags + } + + canonicalVal, ok := canonicalAttribute.(basetypes.StringValue) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`canonical expected to be basetypes.StringValue, was: %T`, canonicalAttribute)) + } + + createdAtAttribute, ok := attributes["created_at"] + + if !ok { + diags.AddError( + "Attribute Missing", + `created_at is missing from object`) + + return NewRoleValueUnknown(), diags + } + + createdAtVal, ok := createdAtAttribute.(basetypes.Int64Value) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`created_at expected to be basetypes.Int64Value, was: %T`, createdAtAttribute)) + } + + defaultAttribute, ok := attributes["default"] + + if !ok { + diags.AddError( + "Attribute Missing", + `default is missing from object`) + + return NewRoleValueUnknown(), diags + } + + defaultVal, ok := defaultAttribute.(basetypes.BoolValue) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`default expected to be basetypes.BoolValue, was: %T`, defaultAttribute)) + } + + descriptionAttribute, ok := attributes["description"] + + if !ok { + diags.AddError( + "Attribute Missing", + `description is missing from object`) + + return NewRoleValueUnknown(), diags + } + + descriptionVal, ok := descriptionAttribute.(basetypes.StringValue) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`description expected to be basetypes.StringValue, was: %T`, descriptionAttribute)) + } + + idAttribute, ok := attributes["id"] + + if !ok { + diags.AddError( + "Attribute Missing", + `id is missing from object`) + + return NewRoleValueUnknown(), diags + } + + idVal, ok := idAttribute.(basetypes.Int64Value) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`id expected to be basetypes.Int64Value, was: %T`, idAttribute)) + } + + nameAttribute, ok := attributes["name"] + + if !ok { + diags.AddError( + "Attribute Missing", + `name is missing from object`) + + return NewRoleValueUnknown(), diags + } + + nameVal, ok := nameAttribute.(basetypes.StringValue) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`name expected to be basetypes.StringValue, was: %T`, nameAttribute)) + } + + rulesAttribute, ok := attributes["rules"] + + if !ok { + diags.AddError( + "Attribute Missing", + `rules is missing from object`) + + return NewRoleValueUnknown(), diags + } + + rulesVal, ok := rulesAttribute.(basetypes.ListValue) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`rules expected to be basetypes.ListValue, was: %T`, rulesAttribute)) + } + + updatedAtAttribute, ok := attributes["updated_at"] + + if !ok { + diags.AddError( + "Attribute Missing", + `updated_at is missing from object`) + + return NewRoleValueUnknown(), diags + } + + updatedAtVal, ok := updatedAtAttribute.(basetypes.Int64Value) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`updated_at expected to be basetypes.Int64Value, was: %T`, updatedAtAttribute)) + } + + if diags.HasError() { + return NewRoleValueUnknown(), diags + } + + return RoleValue{ + Canonical: canonicalVal, + CreatedAt: createdAtVal, + Default: defaultVal, + Description: descriptionVal, + Id: idVal, + Name: nameVal, + Rules: rulesVal, + UpdatedAt: updatedAtVal, + state: attr.ValueStateKnown, + }, diags +} + +func NewRoleValueMust(attributeTypes map[string]attr.Type, attributes map[string]attr.Value) RoleValue { + object, diags := NewRoleValue(attributeTypes, attributes) + + if diags.HasError() { + // This could potentially be added to the diag package. + diagsStrings := make([]string, 0, len(diags)) + + for _, diagnostic := range diags { + diagsStrings = append(diagsStrings, fmt.Sprintf( + "%s | %s | %s", + diagnostic.Severity(), + diagnostic.Summary(), + diagnostic.Detail())) + } + + panic("NewRoleValueMust received error(s): " + strings.Join(diagsStrings, "\n")) + } + + return object +} + +func (t RoleType) ValueFromTerraform(ctx context.Context, in tftypes.Value) (attr.Value, error) { + if in.Type() == nil { + return NewRoleValueNull(), nil + } + + if !in.Type().Equal(t.TerraformType(ctx)) { + return nil, fmt.Errorf("expected %s, got %s", t.TerraformType(ctx), in.Type()) + } + + if !in.IsKnown() { + return NewRoleValueUnknown(), nil + } + + if in.IsNull() { + return NewRoleValueNull(), nil + } + + attributes := map[string]attr.Value{} + + val := map[string]tftypes.Value{} + + err := in.As(&val) + + if err != nil { + return nil, err + } + + for k, v := range val { + a, err := t.AttrTypes[k].ValueFromTerraform(ctx, v) + + if err != nil { + return nil, err + } + + attributes[k] = a + } + + return NewRoleValueMust(RoleValue{}.AttributeTypes(ctx), attributes), nil +} + +func (t RoleType) ValueType(ctx context.Context) attr.Value { + return RoleValue{} +} + +var _ basetypes.ObjectValuable = RoleValue{} + +type RoleValue struct { + Canonical basetypes.StringValue `tfsdk:"canonical"` + CreatedAt basetypes.Int64Value `tfsdk:"created_at"` + Default basetypes.BoolValue `tfsdk:"default"` + Description basetypes.StringValue `tfsdk:"description"` + Id basetypes.Int64Value `tfsdk:"id"` + Name basetypes.StringValue `tfsdk:"name"` + Rules basetypes.ListValue `tfsdk:"rules"` + UpdatedAt basetypes.Int64Value `tfsdk:"updated_at"` + state attr.ValueState +} + +func (v RoleValue) ToTerraformValue(ctx context.Context) (tftypes.Value, error) { + attrTypes := make(map[string]tftypes.Type, 8) + + var val tftypes.Value + var err error + + attrTypes["canonical"] = basetypes.StringType{}.TerraformType(ctx) + attrTypes["created_at"] = basetypes.Int64Type{}.TerraformType(ctx) + attrTypes["default"] = basetypes.BoolType{}.TerraformType(ctx) + attrTypes["description"] = basetypes.StringType{}.TerraformType(ctx) + attrTypes["id"] = basetypes.Int64Type{}.TerraformType(ctx) + attrTypes["name"] = basetypes.StringType{}.TerraformType(ctx) + attrTypes["rules"] = basetypes.ListType{ + ElemType: RulesValue{}.Type(ctx), + }.TerraformType(ctx) + attrTypes["updated_at"] = basetypes.Int64Type{}.TerraformType(ctx) + + objectType := tftypes.Object{AttributeTypes: attrTypes} + + switch v.state { + case attr.ValueStateKnown: + vals := make(map[string]tftypes.Value, 8) + + val, err = v.Canonical.ToTerraformValue(ctx) + + if err != nil { + return tftypes.NewValue(objectType, tftypes.UnknownValue), err + } + + vals["canonical"] = val + + val, err = v.CreatedAt.ToTerraformValue(ctx) + + if err != nil { + return tftypes.NewValue(objectType, tftypes.UnknownValue), err + } + + vals["created_at"] = val + + val, err = v.Default.ToTerraformValue(ctx) + + if err != nil { + return tftypes.NewValue(objectType, tftypes.UnknownValue), err + } + + vals["default"] = val + + val, err = v.Description.ToTerraformValue(ctx) + + if err != nil { + return tftypes.NewValue(objectType, tftypes.UnknownValue), err + } + + vals["description"] = val + + val, err = v.Id.ToTerraformValue(ctx) + + if err != nil { + return tftypes.NewValue(objectType, tftypes.UnknownValue), err + } + + vals["id"] = val + + val, err = v.Name.ToTerraformValue(ctx) + + if err != nil { + return tftypes.NewValue(objectType, tftypes.UnknownValue), err + } + + vals["name"] = val + + val, err = v.Rules.ToTerraformValue(ctx) + + if err != nil { + return tftypes.NewValue(objectType, tftypes.UnknownValue), err + } + + vals["rules"] = val + + val, err = v.UpdatedAt.ToTerraformValue(ctx) + + if err != nil { + return tftypes.NewValue(objectType, tftypes.UnknownValue), err + } + + vals["updated_at"] = val + + if err := tftypes.ValidateValue(objectType, vals); err != nil { + return tftypes.NewValue(objectType, tftypes.UnknownValue), err + } + + return tftypes.NewValue(objectType, vals), nil + case attr.ValueStateNull: + return tftypes.NewValue(objectType, nil), nil + case attr.ValueStateUnknown: + return tftypes.NewValue(objectType, tftypes.UnknownValue), nil + default: + panic(fmt.Sprintf("unhandled Object state in ToTerraformValue: %s", v.state)) + } +} + +func (v RoleValue) IsNull() bool { + return v.state == attr.ValueStateNull +} + +func (v RoleValue) IsUnknown() bool { + return v.state == attr.ValueStateUnknown +} + +func (v RoleValue) String() string { + return "RoleValue" +} + +func (v RoleValue) ToObjectValue(ctx context.Context) (basetypes.ObjectValue, diag.Diagnostics) { + var diags diag.Diagnostics + + rules := types.ListValueMust( + RulesType{ + basetypes.ObjectType{ + AttrTypes: RulesValue{}.AttributeTypes(ctx), + }, + }, + v.Rules.Elements(), + ) + + if v.Rules.IsNull() { + rules = types.ListNull( + RulesType{ + basetypes.ObjectType{ + AttrTypes: RulesValue{}.AttributeTypes(ctx), + }, + }, + ) + } + + if v.Rules.IsUnknown() { + rules = types.ListUnknown( + RulesType{ + basetypes.ObjectType{ + AttrTypes: RulesValue{}.AttributeTypes(ctx), + }, + }, + ) + } + + attributeTypes := map[string]attr.Type{ + "canonical": basetypes.StringType{}, + "created_at": basetypes.Int64Type{}, + "default": basetypes.BoolType{}, + "description": basetypes.StringType{}, + "id": basetypes.Int64Type{}, + "name": basetypes.StringType{}, + "rules": basetypes.ListType{ + ElemType: RulesValue{}.Type(ctx), + }, + "updated_at": basetypes.Int64Type{}, + } + + if v.IsNull() { + return types.ObjectNull(attributeTypes), diags + } + + if v.IsUnknown() { + return types.ObjectUnknown(attributeTypes), diags + } + + objVal, diags := types.ObjectValue( + attributeTypes, + map[string]attr.Value{ + "canonical": v.Canonical, + "created_at": v.CreatedAt, + "default": v.Default, + "description": v.Description, + "id": v.Id, + "name": v.Name, + "rules": rules, + "updated_at": v.UpdatedAt, + }) + + return objVal, diags +} + +func (v RoleValue) Equal(o attr.Value) bool { + other, ok := o.(RoleValue) + + if !ok { + return false + } + + if v.state != other.state { + return false + } + + if v.state != attr.ValueStateKnown { + return true + } + + if !v.Canonical.Equal(other.Canonical) { + return false + } + + if !v.CreatedAt.Equal(other.CreatedAt) { + return false + } + + if !v.Default.Equal(other.Default) { + return false + } + + if !v.Description.Equal(other.Description) { + return false + } + + if !v.Id.Equal(other.Id) { + return false + } + + if !v.Name.Equal(other.Name) { + return false + } + + if !v.Rules.Equal(other.Rules) { + return false + } + + if !v.UpdatedAt.Equal(other.UpdatedAt) { + return false + } + + return true +} + +func (v RoleValue) Type(ctx context.Context) attr.Type { + return RoleType{ + basetypes.ObjectType{ + AttrTypes: v.AttributeTypes(ctx), + }, + } +} + +func (v RoleValue) AttributeTypes(ctx context.Context) map[string]attr.Type { + return map[string]attr.Type{ + "canonical": basetypes.StringType{}, + "created_at": basetypes.Int64Type{}, + "default": basetypes.BoolType{}, + "description": basetypes.StringType{}, + "id": basetypes.Int64Type{}, + "name": basetypes.StringType{}, + "rules": basetypes.ListType{ + ElemType: RulesValue{}.Type(ctx), + }, + "updated_at": basetypes.Int64Type{}, + } +} + +var _ basetypes.ObjectTypable = RulesType{} + +type RulesType struct { + basetypes.ObjectType +} + +func (t RulesType) Equal(o attr.Type) bool { + other, ok := o.(RulesType) + + if !ok { + return false + } + + return t.ObjectType.Equal(other.ObjectType) +} + +func (t RulesType) String() string { + return "RulesType" +} + +func (t RulesType) ValueFromObject(ctx context.Context, in basetypes.ObjectValue) (basetypes.ObjectValuable, diag.Diagnostics) { + var diags diag.Diagnostics + + attributes := in.Attributes() + + actionAttribute, ok := attributes["action"] + + if !ok { + diags.AddError( + "Attribute Missing", + `action is missing from object`) + + return nil, diags + } + + actionVal, ok := actionAttribute.(basetypes.StringValue) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`action expected to be basetypes.StringValue, was: %T`, actionAttribute)) + } + + effectAttribute, ok := attributes["effect"] + + if !ok { + diags.AddError( + "Attribute Missing", + `effect is missing from object`) + + return nil, diags + } + + effectVal, ok := effectAttribute.(basetypes.StringValue) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`effect expected to be basetypes.StringValue, was: %T`, effectAttribute)) + } + + idAttribute, ok := attributes["id"] + + if !ok { + diags.AddError( + "Attribute Missing", + `id is missing from object`) + + return nil, diags + } + + idVal, ok := idAttribute.(basetypes.Int64Value) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`id expected to be basetypes.Int64Value, was: %T`, idAttribute)) + } + + resourcesAttribute, ok := attributes["resources"] + + if !ok { + diags.AddError( + "Attribute Missing", + `resources is missing from object`) + + return nil, diags + } + + resourcesVal, ok := resourcesAttribute.(basetypes.ListValue) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`resources expected to be basetypes.ListValue, was: %T`, resourcesAttribute)) + } + + if diags.HasError() { + return nil, diags + } + + return RulesValue{ + Action: actionVal, + Effect: effectVal, + Id: idVal, + Resources: resourcesVal, + state: attr.ValueStateKnown, + }, diags +} + +func NewRulesValueNull() RulesValue { + return RulesValue{ + state: attr.ValueStateNull, + } +} + +func NewRulesValueUnknown() RulesValue { + return RulesValue{ + state: attr.ValueStateUnknown, + } +} + +func NewRulesValue(attributeTypes map[string]attr.Type, attributes map[string]attr.Value) (RulesValue, diag.Diagnostics) { + var diags diag.Diagnostics + + // Reference: https://github.com/hashicorp/terraform-plugin-framework/issues/521 + ctx := context.Background() + + for name, attributeType := range attributeTypes { + attribute, ok := attributes[name] + + if !ok { + diags.AddError( + "Missing RulesValue Attribute Value", + "While creating a RulesValue value, a missing attribute value was detected. "+ + "A RulesValue must contain values for all attributes, even if null or unknown. "+ + "This is always an issue with the provider and should be reported to the provider developers.\n\n"+ + fmt.Sprintf("RulesValue Attribute Name (%s) Expected Type: %s", name, attributeType.String()), + ) + + continue + } + + if !attributeType.Equal(attribute.Type(ctx)) { + diags.AddError( + "Invalid RulesValue Attribute Type", + "While creating a RulesValue value, an invalid attribute value was detected. "+ + "A RulesValue must use a matching attribute type for the value. "+ + "This is always an issue with the provider and should be reported to the provider developers.\n\n"+ + fmt.Sprintf("RulesValue Attribute Name (%s) Expected Type: %s\n", name, attributeType.String())+ + fmt.Sprintf("RulesValue Attribute Name (%s) Given Type: %s", name, attribute.Type(ctx)), + ) + } + } + + for name := range attributes { + _, ok := attributeTypes[name] + + if !ok { + diags.AddError( + "Extra RulesValue Attribute Value", + "While creating a RulesValue value, an extra attribute value was detected. "+ + "A RulesValue must not contain values beyond the expected attribute types. "+ + "This is always an issue with the provider and should be reported to the provider developers.\n\n"+ + fmt.Sprintf("Extra RulesValue Attribute Name: %s", name), + ) + } + } + + if diags.HasError() { + return NewRulesValueUnknown(), diags + } + + actionAttribute, ok := attributes["action"] + + if !ok { + diags.AddError( + "Attribute Missing", + `action is missing from object`) + + return NewRulesValueUnknown(), diags + } + + actionVal, ok := actionAttribute.(basetypes.StringValue) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`action expected to be basetypes.StringValue, was: %T`, actionAttribute)) + } + + effectAttribute, ok := attributes["effect"] + + if !ok { + diags.AddError( + "Attribute Missing", + `effect is missing from object`) + + return NewRulesValueUnknown(), diags + } + + effectVal, ok := effectAttribute.(basetypes.StringValue) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`effect expected to be basetypes.StringValue, was: %T`, effectAttribute)) + } + + idAttribute, ok := attributes["id"] + + if !ok { + diags.AddError( + "Attribute Missing", + `id is missing from object`) + + return NewRulesValueUnknown(), diags + } + + idVal, ok := idAttribute.(basetypes.Int64Value) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`id expected to be basetypes.Int64Value, was: %T`, idAttribute)) + } + + resourcesAttribute, ok := attributes["resources"] + + if !ok { + diags.AddError( + "Attribute Missing", + `resources is missing from object`) + + return NewRulesValueUnknown(), diags + } + + resourcesVal, ok := resourcesAttribute.(basetypes.ListValue) + + if !ok { + diags.AddError( + "Attribute Wrong Type", + fmt.Sprintf(`resources expected to be basetypes.ListValue, was: %T`, resourcesAttribute)) + } + + if diags.HasError() { + return NewRulesValueUnknown(), diags + } + + return RulesValue{ + Action: actionVal, + Effect: effectVal, + Id: idVal, + Resources: resourcesVal, + state: attr.ValueStateKnown, + }, diags +} + +func NewRulesValueMust(attributeTypes map[string]attr.Type, attributes map[string]attr.Value) RulesValue { + object, diags := NewRulesValue(attributeTypes, attributes) + + if diags.HasError() { + // This could potentially be added to the diag package. + diagsStrings := make([]string, 0, len(diags)) + + for _, diagnostic := range diags { + diagsStrings = append(diagsStrings, fmt.Sprintf( + "%s | %s | %s", + diagnostic.Severity(), + diagnostic.Summary(), + diagnostic.Detail())) + } + + panic("NewRulesValueMust received error(s): " + strings.Join(diagsStrings, "\n")) + } + + return object +} + +func (t RulesType) ValueFromTerraform(ctx context.Context, in tftypes.Value) (attr.Value, error) { + if in.Type() == nil { + return NewRulesValueNull(), nil + } + + if !in.Type().Equal(t.TerraformType(ctx)) { + return nil, fmt.Errorf("expected %s, got %s", t.TerraformType(ctx), in.Type()) + } + + if !in.IsKnown() { + return NewRulesValueUnknown(), nil + } + + if in.IsNull() { + return NewRulesValueNull(), nil + } + + attributes := map[string]attr.Value{} + + val := map[string]tftypes.Value{} + + err := in.As(&val) + + if err != nil { + return nil, err + } + + for k, v := range val { + a, err := t.AttrTypes[k].ValueFromTerraform(ctx, v) + + if err != nil { + return nil, err + } + + attributes[k] = a + } + + return NewRulesValueMust(RulesValue{}.AttributeTypes(ctx), attributes), nil +} + +func (t RulesType) ValueType(ctx context.Context) attr.Value { + return RulesValue{} +} + +var _ basetypes.ObjectValuable = RulesValue{} + +type RulesValue struct { + Action basetypes.StringValue `tfsdk:"action"` + Effect basetypes.StringValue `tfsdk:"effect"` + Id basetypes.Int64Value `tfsdk:"id"` + Resources basetypes.ListValue `tfsdk:"resources"` + state attr.ValueState +} + +func (v RulesValue) ToTerraformValue(ctx context.Context) (tftypes.Value, error) { + attrTypes := make(map[string]tftypes.Type, 4) + + var val tftypes.Value + var err error + + attrTypes["action"] = basetypes.StringType{}.TerraformType(ctx) + attrTypes["effect"] = basetypes.StringType{}.TerraformType(ctx) + attrTypes["id"] = basetypes.Int64Type{}.TerraformType(ctx) + attrTypes["resources"] = basetypes.ListType{ + ElemType: types.StringType, + }.TerraformType(ctx) + + objectType := tftypes.Object{AttributeTypes: attrTypes} + + switch v.state { + case attr.ValueStateKnown: + vals := make(map[string]tftypes.Value, 4) - val, err = v.Name.ToTerraformValue(ctx) + val, err = v.Action.ToTerraformValue(ctx) if err != nil { return tftypes.NewValue(objectType, tftypes.UnknownValue), err } - vals["name"] = val + vals["action"] = val - val, err = v.Quotas.ToTerraformValue(ctx) + val, err = v.Effect.ToTerraformValue(ctx) if err != nil { return tftypes.NewValue(objectType, tftypes.UnknownValue), err } - vals["quotas"] = val + vals["effect"] = val - val, err = v.Subscription.ToTerraformValue(ctx) + val, err = v.Id.ToTerraformValue(ctx) if err != nil { return tftypes.NewValue(objectType, tftypes.UnknownValue), err } - vals["subscription"] = val + vals["id"] = val - val, err = v.UpdatedAt.ToTerraformValue(ctx) + val, err = v.Resources.ToTerraformValue(ctx) if err != nil { return tftypes.NewValue(objectType, tftypes.UnknownValue), err } - vals["updated_at"] = val + vals["resources"] = val if err := tftypes.ValidateValue(objectType, vals); err != nil { return tftypes.NewValue(objectType, tftypes.UnknownValue), err @@ -1215,143 +4011,75 @@ func (v DataValue) ToTerraformValue(ctx context.Context) (tftypes.Value, error) } } -func (v DataValue) IsNull() bool { +func (v RulesValue) IsNull() bool { return v.state == attr.ValueStateNull } -func (v DataValue) IsUnknown() bool { +func (v RulesValue) IsUnknown() bool { return v.state == attr.ValueStateUnknown } -func (v DataValue) String() string { - return "DataValue" +func (v RulesValue) String() string { + return "RulesValue" } -func (v DataValue) ToObjectValue(ctx context.Context) (basetypes.ObjectValue, diag.Diagnostics) { +func (v RulesValue) ToObjectValue(ctx context.Context) (basetypes.ObjectValue, diag.Diagnostics) { var diags diag.Diagnostics - var appearance basetypes.ObjectValue - - if v.Appearance.IsNull() { - appearance = types.ObjectNull( - AppearanceValue{}.AttributeTypes(ctx), - ) - } - - if v.Appearance.IsUnknown() { - appearance = types.ObjectUnknown( - AppearanceValue{}.AttributeTypes(ctx), - ) - } - - if !v.Appearance.IsNull() && !v.Appearance.IsUnknown() { - appearance = types.ObjectValueMust( - AppearanceValue{}.AttributeTypes(ctx), - v.Appearance.Attributes(), - ) + var resourcesVal basetypes.ListValue + switch { + case v.Resources.IsUnknown(): + resourcesVal = types.ListUnknown(types.StringType) + case v.Resources.IsNull(): + resourcesVal = types.ListNull(types.StringType) + default: + var d diag.Diagnostics + resourcesVal, d = types.ListValue(types.StringType, v.Resources.Elements()) + diags.Append(d...) } - var subscription basetypes.ObjectValue - - if v.Subscription.IsNull() { - subscription = types.ObjectNull( - SubscriptionValue{}.AttributeTypes(ctx), - ) + if diags.HasError() { + return types.ObjectUnknown(map[string]attr.Type{ + "action": basetypes.StringType{}, + "effect": basetypes.StringType{}, + "id": basetypes.Int64Type{}, + "resources": basetypes.ListType{ + ElemType: types.StringType, + }, + }), diags } - if v.Subscription.IsUnknown() { - subscription = types.ObjectUnknown( - SubscriptionValue{}.AttributeTypes(ctx), - ) + attributeTypes := map[string]attr.Type{ + "action": basetypes.StringType{}, + "effect": basetypes.StringType{}, + "id": basetypes.Int64Type{}, + "resources": basetypes.ListType{ + ElemType: types.StringType, + }, } - if !v.Subscription.IsNull() && !v.Subscription.IsUnknown() { - subscription = types.ObjectValueMust( - SubscriptionValue{}.AttributeTypes(ctx), - v.Subscription.Attributes(), - ) + if v.IsNull() { + return types.ObjectNull(attributeTypes), diags } - blockedVal, d := types.ListValue(types.StringType, v.Blocked.Elements()) - - diags.Append(d...) - - if d.HasError() { - return types.ObjectUnknown(map[string]attr.Type{ - "appearance": basetypes.ObjectType{ - AttrTypes: AppearanceValue{}.AttributeTypes(ctx), - }, - "blocked": basetypes.ListType{ - ElemType: types.StringType, - }, - "can_children_create_appearance": basetypes.BoolType{}, - "can_create_appearance": basetypes.BoolType{}, - "canonical": basetypes.StringType{}, - "ci_port": basetypes.StringType{}, - "ci_team_name": basetypes.StringType{}, - "ci_url": basetypes.StringType{}, - "created_at": basetypes.Int64Type{}, - "has_children": basetypes.BoolType{}, - "id": basetypes.Int64Type{}, - "mfa_enabled": basetypes.BoolType{}, - "name": basetypes.StringType{}, - "quotas": basetypes.BoolType{}, - "subscription": basetypes.ObjectType{ - AttrTypes: SubscriptionValue{}.AttributeTypes(ctx), - }, - "updated_at": basetypes.Int64Type{}, - }), diags + if v.IsUnknown() { + return types.ObjectUnknown(attributeTypes), diags } objVal, diags := types.ObjectValue( - map[string]attr.Type{ - "appearance": basetypes.ObjectType{ - AttrTypes: AppearanceValue{}.AttributeTypes(ctx), - }, - "blocked": basetypes.ListType{ - ElemType: types.StringType, - }, - "can_children_create_appearance": basetypes.BoolType{}, - "can_create_appearance": basetypes.BoolType{}, - "canonical": basetypes.StringType{}, - "ci_port": basetypes.StringType{}, - "ci_team_name": basetypes.StringType{}, - "ci_url": basetypes.StringType{}, - "created_at": basetypes.Int64Type{}, - "has_children": basetypes.BoolType{}, - "id": basetypes.Int64Type{}, - "mfa_enabled": basetypes.BoolType{}, - "name": basetypes.StringType{}, - "quotas": basetypes.BoolType{}, - "subscription": basetypes.ObjectType{ - AttrTypes: SubscriptionValue{}.AttributeTypes(ctx), - }, - "updated_at": basetypes.Int64Type{}, - }, + attributeTypes, map[string]attr.Value{ - "appearance": appearance, - "blocked": blockedVal, - "can_children_create_appearance": v.CanChildrenCreateAppearance, - "can_create_appearance": v.CanCreateAppearance, - "canonical": v.Canonical, - "ci_port": v.CiPort, - "ci_team_name": v.CiTeamName, - "ci_url": v.CiUrl, - "created_at": v.CreatedAt, - "has_children": v.HasChildren, - "id": v.Id, - "mfa_enabled": v.MfaEnabled, - "name": v.Name, - "quotas": v.Quotas, - "subscription": subscription, - "updated_at": v.UpdatedAt, + "action": v.Action, + "effect": v.Effect, + "id": v.Id, + "resources": resourcesVal, }) return objVal, diags } -func (v DataValue) Equal(o attr.Value) bool { - other, ok := o.(DataValue) +func (v RulesValue) Equal(o attr.Value) bool { + other, ok := o.(RulesValue) if !ok { return false @@ -1365,43 +4093,11 @@ func (v DataValue) Equal(o attr.Value) bool { return true } - if !v.Appearance.Equal(other.Appearance) { - return false - } - - if !v.Blocked.Equal(other.Blocked) { - return false - } - - if !v.CanChildrenCreateAppearance.Equal(other.CanChildrenCreateAppearance) { - return false - } - - if !v.CanCreateAppearance.Equal(other.CanCreateAppearance) { - return false - } - - if !v.Canonical.Equal(other.Canonical) { - return false - } - - if !v.CiPort.Equal(other.CiPort) { - return false - } - - if !v.CiTeamName.Equal(other.CiTeamName) { - return false - } - - if !v.CiUrl.Equal(other.CiUrl) { - return false - } - - if !v.CreatedAt.Equal(other.CreatedAt) { + if !v.Action.Equal(other.Action) { return false } - if !v.HasChildren.Equal(other.HasChildren) { + if !v.Effect.Equal(other.Effect) { return false } @@ -1409,61 +4105,29 @@ func (v DataValue) Equal(o attr.Value) bool { return false } - if !v.MfaEnabled.Equal(other.MfaEnabled) { - return false - } - - if !v.Name.Equal(other.Name) { - return false - } - - if !v.Quotas.Equal(other.Quotas) { - return false - } - - if !v.Subscription.Equal(other.Subscription) { - return false - } - - if !v.UpdatedAt.Equal(other.UpdatedAt) { + if !v.Resources.Equal(other.Resources) { return false } return true } -func (v DataValue) Type(ctx context.Context) attr.Type { - return DataType{ +func (v RulesValue) Type(ctx context.Context) attr.Type { + return RulesType{ basetypes.ObjectType{ AttrTypes: v.AttributeTypes(ctx), }, } } -func (v DataValue) AttributeTypes(ctx context.Context) map[string]attr.Type { +func (v RulesValue) AttributeTypes(ctx context.Context) map[string]attr.Type { return map[string]attr.Type{ - "appearance": basetypes.ObjectType{ - AttrTypes: AppearanceValue{}.AttributeTypes(ctx), - }, - "blocked": basetypes.ListType{ + "action": basetypes.StringType{}, + "effect": basetypes.StringType{}, + "id": basetypes.Int64Type{}, + "resources": basetypes.ListType{ ElemType: types.StringType, }, - "can_children_create_appearance": basetypes.BoolType{}, - "can_create_appearance": basetypes.BoolType{}, - "canonical": basetypes.StringType{}, - "ci_port": basetypes.StringType{}, - "ci_team_name": basetypes.StringType{}, - "ci_url": basetypes.StringType{}, - "created_at": basetypes.Int64Type{}, - "has_children": basetypes.BoolType{}, - "id": basetypes.Int64Type{}, - "mfa_enabled": basetypes.BoolType{}, - "name": basetypes.StringType{}, - "quotas": basetypes.BoolType{}, - "subscription": basetypes.ObjectType{ - AttrTypes: SubscriptionValue{}.AttributeTypes(ctx), - }, - "updated_at": basetypes.Int64Type{}, } } @@ -2237,22 +4901,32 @@ func (v AppearanceValue) ToObjectValue(ctx context.Context) (basetypes.ObjectVal ) } - objVal, diags := types.ObjectValue( - map[string]attr.Type{ - "canonical": basetypes.StringType{}, - "color": basetypes.ObjectType{ - AttrTypes: ColorValue{}.AttributeTypes(ctx), - }, - "created_at": basetypes.Int64Type{}, - "display_name": basetypes.StringType{}, - "favicon": basetypes.StringType{}, - "footer": basetypes.StringType{}, - "is_active": basetypes.BoolType{}, - "logo": basetypes.StringType{}, - "name": basetypes.StringType{}, - "tab_title": basetypes.StringType{}, - "updated_at": basetypes.Int64Type{}, + attributeTypes := map[string]attr.Type{ + "canonical": basetypes.StringType{}, + "color": basetypes.ObjectType{ + AttrTypes: ColorValue{}.AttributeTypes(ctx), }, + "created_at": basetypes.Int64Type{}, + "display_name": basetypes.StringType{}, + "favicon": basetypes.StringType{}, + "footer": basetypes.StringType{}, + "is_active": basetypes.BoolType{}, + "logo": basetypes.StringType{}, + "name": basetypes.StringType{}, + "tab_title": basetypes.StringType{}, + "updated_at": basetypes.Int64Type{}, + } + + if v.IsNull() { + return types.ObjectNull(attributeTypes), diags + } + + if v.IsUnknown() { + return types.ObjectUnknown(attributeTypes), diags + } + + objVal, diags := types.ObjectValue( + attributeTypes, map[string]attr.Value{ "canonical": v.Canonical, "color": color, @@ -2721,12 +5395,22 @@ func (v ColorValue) String() string { func (v ColorValue) ToObjectValue(ctx context.Context) (basetypes.ObjectValue, diag.Diagnostics) { var diags diag.Diagnostics + attributeTypes := map[string]attr.Type{ + "b": basetypes.Int64Type{}, + "g": basetypes.Int64Type{}, + "r": basetypes.Int64Type{}, + } + + if v.IsNull() { + return types.ObjectNull(attributeTypes), diags + } + + if v.IsUnknown() { + return types.ObjectUnknown(attributeTypes), diags + } + objVal, diags := types.ObjectValue( - map[string]attr.Type{ - "b": basetypes.Int64Type{}, - "g": basetypes.Int64Type{}, - "r": basetypes.Int64Type{}, - }, + attributeTypes, map[string]attr.Value{ "b": v.B, "g": v.G, @@ -3216,15 +5900,25 @@ func (v SubscriptionValue) ToObjectValue(ctx context.Context) (basetypes.ObjectV ) } - objVal, diags := types.ObjectValue( - map[string]attr.Type{ - "current_members": basetypes.Int64Type{}, - "expires_at": basetypes.Int64Type{}, - "members_count": basetypes.Int64Type{}, - "plan": basetypes.ObjectType{ - AttrTypes: PlanValue{}.AttributeTypes(ctx), - }, + attributeTypes := map[string]attr.Type{ + "current_members": basetypes.Int64Type{}, + "expires_at": basetypes.Int64Type{}, + "members_count": basetypes.Int64Type{}, + "plan": basetypes.ObjectType{ + AttrTypes: PlanValue{}.AttributeTypes(ctx), }, + } + + if v.IsNull() { + return types.ObjectNull(attributeTypes), diags + } + + if v.IsUnknown() { + return types.ObjectUnknown(attributeTypes), diags + } + + objVal, diags := types.ObjectValue( + attributeTypes, map[string]attr.Value{ "current_members": v.CurrentMembers, "expires_at": v.ExpiresAt, @@ -3603,11 +6297,21 @@ func (v PlanValue) String() string { func (v PlanValue) ToObjectValue(ctx context.Context) (basetypes.ObjectValue, diag.Diagnostics) { var diags diag.Diagnostics + attributeTypes := map[string]attr.Type{ + "canonical": basetypes.StringType{}, + "name": basetypes.StringType{}, + } + + if v.IsNull() { + return types.ObjectNull(attributeTypes), diags + } + + if v.IsUnknown() { + return types.ObjectUnknown(attributeTypes), diags + } + objVal, diags := types.ObjectValue( - map[string]attr.Type{ - "canonical": basetypes.StringType{}, - "name": basetypes.StringType{}, - }, + attributeTypes, map[string]attr.Value{ "canonical": v.Canonical, "name": v.Name, diff --git a/resource_organization_member/organization_member_resource_gen.go b/resource_organization_member/organization_member_resource_gen.go index 1c6affb..12f065e 100644 --- a/resource_organization_member/organization_member_resource_gen.go +++ b/resource_organization_member/organization_member_resource_gen.go @@ -38,8 +38,8 @@ func OrganizationMemberResourceSchema(ctx context.Context) schema.Schema { }, "role_canonical": schema.StringAttribute{ Required: true, - Description: "The canonical of an entity", - MarkdownDescription: "The canonical of an entity", + Description: "The role of the member.", + MarkdownDescription: "The role of the member.", Validators: []validator.String{ stringvalidator.LengthBetween(3, 100), stringvalidator.RegexMatches(regexp.MustCompile("^[a-z0-9]+[a-z0-9\\-_]+[a-z0-9]+$"), ""), diff --git a/source-openapi.yaml b/source-openapi.yaml new file mode 100644 index 0000000..341e434 --- /dev/null +++ b/source-openapi.yaml @@ -0,0 +1,55382 @@ +openapi: 3.0.1 +info: + contact: + email: contact@cycloid.io + name: The Great Owl + url: https://www.cycloid.io + description: This is the Cycloid's API Reference. It provides descriptions, syntax, and usage examples for each of the actions and data types available within our console. + license: + name: Cycloid @copyrights + url: https://cycloid.io + termsOfService: https://console.cycloid.io/terms + title: Welcome! + version: '0' +servers: +- url: https://http-api.cycloid.io/ +security: +- api_key: [] +- api_key_query: [] +tags: +- description: Operation related to Cycloid's application. + name: Cycloid +- description: Operations for organizations. + name: Organizations +- description: Operations for teams which belong to an organization. + name: Organization teams +- description: Operations for projects which belong to an organization. + name: Organization projects +- description: Operations for members of an organization. + name: Organization members +- description: Operations for the authenticated user. + name: User +- description: Operations regarding pipelines in an organization. + name: Organization pipelines +- description: Operations on jobs belonging to a pipeline. + name: Organization pipelines jobs +- description: Operations on build of a job from a pipeline. + name: Organization pipelines jobs build +- description: Operations on the infrastructure of an organization + name: Organization Infrastructure +- description: Operations to perform on an environment associated to a project of an organization. + name: Organization Environments +- description: Operations on the logs of a project + name: Organization Logs +- description: Operations on the children of an organization + name: Organization Children +- description: Operations on the infrastructure policies of an organization + name: Organization Infrastructure Policies +- description: Operations on the subscriptions + name: Organization Subscriptions +- description: Operations related to estimating cost of infrastructure. + name: Cost Estimation +- description: Operations on KPIs of an organization + name: Organization kpis +paths: + /appearance/{organization_canonical}: + get: + description: Get the active appearance available in the organization + operationId: getActiveAppearance + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + '200': + content: + application/json: + example: + data: + canonical: default + name: Default + display_name: Cycloid + tab_title: Cycloid + color: + r: 28 + g: 151 + b: 151 + logo: https://console.cycloid.io/static/images/app-logo-square.svg + favicon: https://console.cycloid.io/static/favicons/favicon.ico + footer: '' + is_active: true + created_at: 1503225026 + updated_at: 1503335026 + schema: + $ref: '#/components/schemas/getActiveAppearance_200_response' + description: Default Appearance available in the organization. + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + security: [] + tags: + - Appearance + /appearance: + get: + description: Get the default appearance available in the platform + operationId: getDefaultAppearance + responses: + '200': + content: + application/json: + example: + data: + canonical: default + name: Default + display_name: Cycloid + tab_title: Cycloid + color: + r: 28 + g: 151 + b: 151 + logo: /static/logos/logo.svg + favicon: /static/favicons/favicon.ico + footer: '' + is_active: true + created_at: 1503225026 + updated_at: 1503335026 + schema: + $ref: '#/components/schemas/getActiveAppearance_200_response' + description: Default Appearance available in the platform. + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + security: [] + tags: + - Appearance + /organizations/{organization_canonical}/code_generation/terraform/jsontohcl: + post: + description: Transforms a JSON to a HCL + operationId: terraformJSONToHCL + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/TerraformJSONConfig' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/TerraformJSONConfig' + description: The Terraform JSON config + required: true + responses: + '200': + content: + application/json: + example: + data: + config: " \"data\" \"aws_ami\" \"debian_jessie_latest\" { \"most_recent\" = true } \"locals\" = { \"codecommit_repository_name\" = \"something\" } \"output\" \"sensitive\" { \"sensitive\" = true\n\"value\" = \"VALUE\" } \"provider\" \"aws\" { \"access_key\" = \"${var.access_key}\" } \"resource\" \"aws_elb\" \"front\" { \"name\" = \"${var.project}-front-${var.env}\" \"tags\" = { \"name\" = \"some name\" } } \"variable\" \"front_disk_size\" { \"default\" = 60 } " + schema: + $ref: '#/components/schemas/terraformJSONToHCL_200_response' + description: The HCL translation of the config + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Code Generation + x-codegen-request-body-name: body + /organizations/{organization_canonical}/code_generation/infra_import/providers/{provider_canonical}/presets: + get: + description: List Infra Import Presets + operationId: getInfraImportPresets + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a Provider + in: path + name: provider_canonical + required: true + schema: + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + '200': + content: + application/json: + example: + data: + - name: Preset1 + resources: + - aws_route53_zone + - aws_security_group + schema: + $ref: '#/components/schemas/getInfraImportPresets_200_response' + description: The Infra Import Presets + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Code Generation + ? /organizations/{organization_canonical}/code_generation/infra_import/providers/{provider_canonical}/resources/{resource_canonical} + : post: + description: List Provider's Resource + operationId: getInfraImportResource + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a Provider + in: path + name: provider_canonical + required: true + schema: + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a Resource + in: path + name: resource_canonical + required: true + schema: + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/InfraImportResourceBody' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/InfraImportResourceBody' + description: Information for filtering and access the Cloud Provider's Resources. + required: true + responses: + '200': + content: + application/json: + example: + data: + - id: i-1234567890abcdef0 + - id: i-1234567890abcdef1 + schema: + $ref: '#/components/schemas/getInfraImportResource_200_response' + description: The Infra Import's Resources + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Code Generation + x-codegen-request-body-name: body + /organizations/{organization_canonical}/code_generation/infra_import/providers/{provider_canonical}/resources: + post: + description: List infrastructure import provider's resources + operationId: getInfraImportResources + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a Provider + in: path + name: provider_canonical + required: true + schema: + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/InfraImportResourcesBody' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/InfraImportResourcesBody' + description: Access information of the Cloud Provider's Resources. + required: true + responses: + '200': + content: + application/json: + example: + data: + - canonical: aws_instance + image: http://via.placeholder.com/150x150 + is_node: true + is_edge: false + category: SomeCategory + keywords: [] + description: detailed resource description + short_description: resource description + - canonical: aws_elb + image: http://via.placeholder.com/150x150 + is_node: true + is_edge: false + category: SomeCategory + keywords: [] + description: detailed resource description + short_description: resource description + schema: + $ref: '#/components/schemas/getInfraImportResources_200_response' + description: The InfraImport's Resources Types + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Code Generation + x-codegen-request-body-name: body + /organizations/{organization_canonical}/code_generation/terraform/providers: + get: + description: Return all the Providers + operationId: getTerraformProviders + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: The page number to request. The first page is 1. + in: query + name: page_index + schema: + default: 1 + format: uint32 + type: integer + - description: The number of items at most which the response can have. + in: query + name: page_size + schema: + default: 1000 + format: uint32 + type: integer + responses: + '200': + content: + application/json: + example: + data: + - name: Amazon Web Service + canonical: aws + abbreviation: AWS + cloud: true + image: http://via.placeholder.com/150x150 + - name: Terraform Template + canonical: template + abbreviation: Template + cloud: false + image: http://via.placeholder.com/150x150 + pagination: + index: 1 + size: 10 + total: 2 + schema: + $ref: '#/components/schemas/getTerraformProviders_200_response' + description: List of the Providers + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Code Generation + /organizations/{organization_canonical}/code_generation/terraform/providers/{provider_canonical}/data_sources: + get: + description: Return all the DataSources for the Provider + operationId: getTerraformProviderDataSources + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a Provider + in: path + name: provider_canonical + required: true + schema: + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: The page number to request. The first page is 1. + in: query + name: page_index + schema: + default: 1 + format: uint32 + type: integer + - description: The number of items at most which the response can have. + in: query + name: page_size + schema: + default: 1000 + format: uint32 + type: integer + responses: + '200': + content: + application/json: + example: + data: + - canonical: aws_instance + image: http://via.placeholder.com/150x150 + is_node: true + is_edge: false + category: SomeCategory + keywords: [] + description: detailed resource description + short_description: resource description + - canonical: aws_elb + image: http://via.placeholder.com/150x150 + is_node: true + is_edge: false + category: SomeCategory + keywords: [] + description: detailed resource description + short_description: resource description + pagination: + index: 1 + size: 10 + total: 2 + schema: + $ref: '#/components/schemas/getInfraImportResources_200_response' + description: List of the DataSources + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Code Generation + ? /organizations/{organization_canonical}/code_generation/terraform/providers/{provider_canonical}/data_sources/{resource_canonical} + : get: + description: Get the information of the DataSource + operationId: getTerraformProviderDataSource + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a Provider + in: path + name: provider_canonical + required: true + schema: + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a Resource + in: path + name: resource_canonical + required: true + schema: + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + '200': + content: + application/json: + example: + data: + canonical: aws_lb + is_node: true + is_edge: false + image: http://via.placeholder.com/150x150 + schema: + dns_name: + required: false + optional: false + type: TypeString + default: '' + internal: + required: false + optional: true + type: TypeBool + default: 'null' + category: SomeCategory + keywords: [] + description: detailed resource description + short_description: resource description + schema: + $ref: '#/components/schemas/getTerraformProviderDataSource_200_response' + description: The information of the DataSource + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Code Generation + /organizations/{organization_canonical}/code_generation/terraform/providers/{provider_canonical}: + get: + description: Get the information of the Provider + operationId: getTerraformProvider + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a Provider + in: path + name: provider_canonical + required: true + schema: + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + '200': + content: + application/json: + example: + data: + name: Amazon Web Service + canonical: aws + abbreviation: AWS + image: http://via.placeholder.com/150x150 + cloud: true + schema: + access_key: + required: false + optional: true + type: TypeString + default: '' + secret_key: + required: false + optional: true + type: TypeString + default: '' + schema: + $ref: '#/components/schemas/getTerraformProvider_200_response' + description: The information of the Provider + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Code Generation + /organizations/{organization_canonical}/code_generation/terraform/providers/{provider_canonical}/resources: + get: + description: Return all the Resources for the Provider + operationId: getTerraformProviderResources + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a Provider + in: path + name: provider_canonical + required: true + schema: + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: The page number to request. The first page is 1. + in: query + name: page_index + schema: + default: 1 + format: uint32 + type: integer + - description: The number of items at most which the response can have. + in: query + name: page_size + schema: + default: 1000 + format: uint32 + type: integer + responses: + '200': + content: + application/json: + example: + data: + - canonical: aws_instance + image: http://via.placeholder.com/150x150 + is_node: true + is_edge: false + category: SomeCategory + keywords: [] + description: detailed resource description + short_description: resource description + - canonical: aws_elb + image: http://via.placeholder.com/150x150 + is_node: true + is_edge: false + category: SomeCategory + keywords: [] + description: detailed resource description + short_description: resource description + pagination: + index: 1 + size: 10 + total: 2 + schema: + $ref: '#/components/schemas/getInfraImportResources_200_response' + description: List of the Resources + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Code Generation + /organizations/{organization_canonical}/code_generation/terraform/providers/{provider_canonical}/resources/{resource_canonical}: + get: + description: Get the information of the Resource + operationId: getTerraformProviderResource + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a Provider + in: path + name: provider_canonical + required: true + schema: + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a Resource + in: path + name: resource_canonical + required: true + schema: + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + '200': + content: + application/json: + example: + data: + canonical: aws_lb + is_node: true + is_edge: false + image: http://via.placeholder.com/150x150 + attributes: + important: + - count + status: status + normalized_status: + on: running + schema: + dns_name: + required: false + optional: false + type: TypeString + default: '' + internal: + required: false + optional: true + type: TypeBool + default: 'null' + category: SomeCategory + keywords: [] + description: detailed resource description + short_description: resource description + schema: + $ref: '#/components/schemas/getTerraformProviderDataSource_200_response' + description: The information of the Resource + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Code Generation + /organizations/{organization_canonical}/code_generation/terraform/validate: + post: + description: Validates a TF configuration + operationId: terraformValidate + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/TerraformJSONConfig' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/TerraformJSONConfig' + description: The Terraform JSON config + required: true + responses: + '200': + content: + application/json: + example: + data: + errors: + - 'resource ''aws_elb.front'' config: unknown variable referenced: ''name''; define it with a ''variable'' block' + schema: + $ref: '#/components/schemas/terraformValidate_200_response' + description: The result of validating the provided configuration + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Code Generation + x-codegen-request-body-name: body + /config: + get: + description: Get the Cycloid configuration. + operationId: getConfig + responses: + '200': + content: + application/json: + example: + data: + authentication: + local: + enabled: true + oauth: + - provider: azuread + tenant_id: 67b96869-421d-4897-9f95-dc66aacbe915 + client_id: 67b96869-421d-4897-9f95-dc66aacbe915 + type: AzureADAuthConfig + - provider: google + client_id: 741192805913-s10ibou8065iofnb9rcir9269skiqts9.apps.googleusercontent.com + type: GoogleOAuthConfig + - provider: github + host_address: https://api.github.com + client_id: 6a94210b44f4a612952e + type: GitHubOAuthConfig + saml2: + - provider: https://samltest.id/saml/idp + sso_url: https://samltest.id/idp/profile/SAML2/Redirect/SSO?SAMLRequest=fJLPbtswDIdfReDdkeV0aU3UAbwGwwJ... + schema: + $ref: '#/components/schemas/getConfig_200_response' + description: Cycloid configuration, including available authentication methods. + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + security: [] + tags: + - Cycloid + /countries: + get: + description: Get the Cycloid supported countries. + operationId: getCountries + responses: + '200': + content: + application/json: + example: + data: + - code: AD + name: Andorra + - code: FR + name: France + - code: GB + name: United Kingdom + schema: + $ref: '#/components/schemas/getCountries_200_response' + description: Cycloid supported countries + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + security: [] + tags: + - Cycloid + /status: + get: + description: Get the status of the Cycloid's services. + operationId: getStatus + responses: + '200': + content: + application/json: + example: + data: + status: Error + message: some services returned an unknown state (s1), while some other returned errors (s2, s3) + checks: + - canonical: s0 + category: internal + status: Success + message: no issue reported while connecting to s0 + - canonical: s1 + category: internal + status: Unknown + message: unknown state for s1 service + - canonical: s2 + category: internal + status: Error + message: issue detected while connecting to s2 + - canonical: s3 + category: internal + status: Success + message: issue detected while connecting to s3 + schema: + $ref: '#/components/schemas/getStatus_200_response' + description: General application status and services statuses. + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + security: [] + tags: + - Cycloid + /status/{service_status_canonical}: + get: + description: Get the status of the Cycloid's service. It uses 200 and 500 to also identify the status + operationId: getServiceStatus + parameters: + - description: The canonical of the service you want to get the status from + in: path + name: service_status_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + '200': + content: + application/json: + example: + data: + canonical: s0 + category: internal + status: Success + message: no issue reported while connecting to s0 + schema: + $ref: '#/components/schemas/getServiceStatus_200_response' + description: General application status and services statuses. + '500': + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + security: [] + tags: + - Cycloid + /version: + get: + description: Get the version of the Cycloid's API. + operationId: getAppVersion + responses: + '200': + content: + application/json: + example: + data: + version: 1.0.0 + branch: master + revision: 9d3d4d97 + schema: + $ref: '#/components/schemas/getAppVersion_200_response' + description: Application version. + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + security: [] + tags: + - Cycloid + /organizations/{organization_canonical}/api_keys: + get: + description: Get list of API keys of the organization. + operationId: getAPIKeys + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: The page number to request. The first page is 1. + in: query + name: page_index + schema: + default: 1 + format: uint32 + type: integer + - description: The number of items at most which the response can have. + in: query + name: page_size + schema: + default: 1000 + format: uint32 + type: integer + - description: Search by entity's owner + in: query + name: member_id + schema: + format: uint32 + type: integer + responses: + '200': + content: + application/json: + example: + data: + - canonical: ak-1 + name: AK 1 + description: this is ak-1 + role: + id: 5 + name: Organization API key + description: Role for API key + policies: [] + token: jwt... + id: 5 + owner: + username: user-2 + id: 10 + given_name: Mariana + family_name: Jimenezo + email: mariana.jimenezo@fakeemail.com + picture_url: https://avatars2.githubusercontent.com/u/14579210 + created_at: 1503225026 + role: + id: 42 + name: standard role + description: this is the standard role + canonical: role-can + rules: + - id: 1 + effect: allow + action: organization:delete + resources: + - organization:org-can + - organization:org-can2 + - id: 20 + effect: allow + action: organization:team:create + resources: [] + - id: 21 + effect: allow + action: organization:team:read + resources: + - organization:org-can:team:team-can + - canonical: ak-2 + name: AK 2 + description: this is ak-2 + role: + id: 5 + name: Organization API key + description: Role for API key + policies: [] + token: jwt... + id: 5 + owner: + username: user-3 + id: 2 + given_name: Jorge + family_name: Hombre + email: jorge.hombre@test.com + picture_url: https://avatars2.githubusercontent.com/u/14579203 + created_at: 1503225001 + role: + id: 42 + name: standard role + description: this is the standard role + canonical: role-can + rules: + - id: 1 + effect: allow + action: organization:delete + resources: + - organization:org-can + - organization:org-can2 + - id: 20 + effect: allow + action: organization:team:create + resources: [] + - id: 21 + effect: allow + action: organization:team:read + resources: + - organization:org-can:team:team-can + schema: + $ref: '#/components/schemas/getAPIKeys_200_response' + description: List of the API keys which the organization has. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization API keys + post: + description: Create a new API key in the organization. + operationId: createAPIKey + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/NewAPIKey' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/NewAPIKey' + description: The information of the API key to create. + required: true + responses: + '200': + content: + application/json: + example: + data: + canonical: ak-1 + name: AK 1 + description: this is ak-1 + role: + id: 5 + name: Organization API key + description: Role for API key + policies: [] + token: jwt... + id: 5 + owner: + username: user-2 + id: 10 + given_name: Mariana + family_name: Jimenezo + email: mariana.jimenezo@fakeemail.com + picture_url: https://avatars2.githubusercontent.com/u/14579210 + created_at: 1503225026 + role: + id: 42 + name: standard role + description: this is the standard role + canonical: role-can + rules: + - id: 1 + effect: allow + action: organization:delete + resources: + - organization:org-can + - organization:org-can2 + - id: 20 + effect: allow + action: organization:team:create + resources: [] + - id: 21 + effect: allow + action: organization:team:read + resources: + - organization:org-can:team:team-can + schema: + $ref: '#/components/schemas/createAPIKey_200_response' + description: API key created. The body contains the information of the new API key of the organization. + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '411': + content: {} + description: The request has a body but it doesn't have a Content-Length header. + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization API keys + x-codegen-request-body-name: body + /organizations/{organization_canonical}/api_keys/{api_key_canonical}: + delete: + description: Delete an API key of the organization. + operationId: deleteAPIKey + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of an API key. + in: path + name: api_key_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + '204': + content: {} + description: API key has been deleted. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization API keys + get: + description: Get an API key of the organization. + operationId: getAPIKey + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of an API key. + in: path + name: api_key_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + '200': + content: + application/json: + example: + data: + canonical: ak-1 + name: AK 1 + description: this is ak-1 + rules: + - id: 1 + effect: allow + action: organization:delete + resources: + - organization:org-can + - organization:org-can2 + - id: 20 + effect: allow + action: organization:team:create + resources: [] + - id: 21 + effect: allow + action: organization:team:read + resources: + - organization:org-can:team:team-can + token: jwt... + id: 5 + owner: + username: user-2 + id: 10 + given_name: Mariana + family_name: Jimenezo + email: mariana.jimenezo@fakeemail.com + picture_url: https://avatars2.githubusercontent.com/u/14579210 + created_at: 1503225026 + role: + id: 42 + name: standard role + description: this is the standard role + canonical: role-can + rules: + - id: 1 + effect: allow + action: organization:delete + resources: + - organization:org-can + - organization:org-can2 + - id: 20 + effect: allow + action: organization:team:create + resources: [] + - id: 21 + effect: allow + action: organization:team:read + resources: + - organization:org-can:team:team-can + schema: + $ref: '#/components/schemas/createAPIKey_200_response' + description: The information of the API key of the organization which has the specified canonical. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization API keys + put: + description: Update the information of an API key of the organization. If the API key has some information on the fields which aren't required and they are not sent or set to their default values, which depend of their types, the information will be removed. + operationId: updateAPIkey + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of an API key. + in: path + name: api_key_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/UpdateAPIKey' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UpdateAPIKey' + description: The information of the API key to update. + required: true + responses: + '200': + content: + application/json: + example: + data: + canonical: ak-1 + name: AK 1 + description: this is ak-1 + rules: + - id: 1 + effect: allow + action: organization:delete + resources: + - organization:org-can + - organization:org-can2 + - id: 20 + effect: allow + action: organization:team:create + resources: [] + - id: 21 + effect: allow + action: organization:team:read + resources: + - organization:org-can:team:team-can + token: jwt... + id: 5 + owner: + username: user-2 + id: 10 + given_name: Mariana + family_name: Jimenezo + email: mariana.jimenezo@fakeemail.com + picture_url: https://avatars2.githubusercontent.com/u/14579210 + created_at: 1503225026 + role: + id: 42 + name: standard role + description: this is the standard role + canonical: role-can + rules: + - id: 1 + effect: allow + action: organization:delete + resources: + - organization:org-can + - organization:org-can2 + - id: 20 + effect: allow + action: organization:team:create + resources: [] + - id: 21 + effect: allow + action: organization:team:read + resources: + - organization:org-can:team:team-can + schema: + $ref: '#/components/schemas/createAPIKey_200_response' + description: API ey updated. The body contains information of the updated API key. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '411': + content: {} + description: The request has a body but it doesn't have a Content-Length header. + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization API keys + x-codegen-request-body-name: body + /organizations/{organization_canonical}/appearances: + get: + description: List of appearances available in the organization. + operationId: listAppearances + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: The page number to request. The first page is 1. + in: query + name: page_index + schema: + default: 1 + format: uint32 + type: integer + - description: The number of items at most which the response can have. + in: query + name: page_size + schema: + default: 1000 + format: uint32 + type: integer + responses: + '200': + content: + application/json: + example: + data: + - canonical: default + name: Default + display_name: Cycloid + tab_title: Cycloid + color: + r: 28 + g: 151 + b: 151 + logo: https://console.cycloid.io/static/images/app-logo-square.svg + favicon: https://console.cycloid.io/static/favicons/favicon.ico + footer: '' + is_active: false + created_at: 1503225026 + updated_at: 1503335026 + - canonical: custom + name: Custom + display_name: Brand Name + tab_title: Brand Name + color: + r: 28 + g: 151 + b: 151 + logo: https://console.cycloid.io/static/images/app-logo-square.svg + favicon: https://console.cycloid.io/static/favicons/favicon.ico + footer: '' + is_active: true + created_at: 1503225026 + updated_at: 1503335026 + pagination: + index: 1 + size: 10 + total: 2 + schema: + $ref: '#/components/schemas/listAppearances_200_response' + description: List of appearances which are available in the organization. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Appearances + post: + description: Create a new appearance for the organization. + operationId: createAppearance + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/NewAppearance' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/NewAppearance' + description: The information of the organization's appearance to create. + required: true + responses: + '200': + content: + application/json: + example: + data: + display_name: Brand Name + tab_title: Brand Name + color: + r: 0 + g: 0 + b: 0 + logo: https://console.cycloid.io/static/images/app-logo-square.svg + favicon: https://console.cycloid.io/static/favicons/favicon.ico + footer: '' + is_active: false + schema: + $ref: '#/components/schemas/getActiveAppearance_200_response' + description: New appearance created in the organization. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Appearances + x-codegen-request-body-name: body + /organizations/{organization_canonical}/appearances/{appearance_canonical}: + delete: + description: Delete an existing appearance in the organization. + operationId: deleteAppearance + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of an appearance. + in: path + name: appearance_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + '204': + content: {} + description: Organization appearance has been deleted. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Appearances + get: + description: Get the appearance available in the organization with a canonical + operationId: getAppearance + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of an appearance. + in: path + name: appearance_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + '200': + content: + application/json: + example: + data: + canonical: custom + name: Default + display_name: Cycloid + tab_title: Cycloid + color: + r: 28 + g: 151 + b: 151 + logo: https://console.cycloid.io/static/images/app-logo-square.svg + favicon: https://console.cycloid.io/static/favicons/favicon.ico + footer: '' + is_active: false + created_at: 1503225026 + updated_at: 1503335026 + schema: + $ref: '#/components/schemas/getActiveAppearance_200_response' + description: Appearance available in the organization with such canonical. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Appearances + put: + description: Update an existing appearance in the organization. + operationId: updateAppearance + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of an appearance. + in: path + name: appearance_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/Appearance' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/Appearance' + description: The information of the organization's appearance to update. + required: true + responses: + '200': + content: + application/json: + example: + data: + canonical: custom + name: Custom + display_name: Brand Name + tab_title: Brand Name + color: + r: 0 + g: 0 + b: 0 + logo: https://console.cycloid.io/static/images/app-logo-square.svg + favicon: https://console.cycloid.io/static/favicons/favicon.ico + footer: '' + is_active: true + created_at: 1503225026 + updated_at: 1503335026 + schema: + $ref: '#/components/schemas/getActiveAppearance_200_response' + description: Updated appearance belonging to the organization. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Appearances + x-codegen-request-body-name: body + /organizations/{organization_canonical}/children: + get: + description: Get the children organizations that the authenticated user has access. + operationId: getChildren + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: The page number to request. The first page is 1. + in: query + name: page_index + schema: + default: 1 + format: uint32 + type: integer + - description: The number of items at most which the response can have. + in: query + name: page_size + schema: + default: 1000 + format: uint32 + type: integer + - description: Search by the organization's name + in: query + name: organization_name + schema: + type: string + - description: Search by organization's creation date + in: query + name: organization_created_at + schema: + format: date-time + type: string + - description: | + Allows to order the list of items. Example usage: field_name:asc + in: query + name: order_by + schema: + type: string + responses: + '200': + content: + application/json: + example: + data: + - canonical: org1 + id: 1 + name: Organization 1 + blocked: [] + ci_team_name: asfdOPNljk + has_children: true + created_at: 1503225026 + updated_at: 1503335026 + - canonical: org2 + id: 1 + name: Organization 2 + blocked: [] + ci_team_name: asfdOPNljk + has_children: false + created_at: 1501131026 + updated_at: 1503333026 + - canonical: org3 + id: 1 + name: Organization 3 + blocked: [] + ci_team_name: asfdOPNljk + has_children: false + created_at: 1500135021 + updated_at: 1503332021 + pagination: + index: 1 + size: 10 + total: 3 + schema: + $ref: '#/components/schemas/getChildren_200_response' + description: List of the children organizations which the authenticated user has access. + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Children + post: + description: Create a new organization child, making the authenticated user the owner of it. + operationId: createChild + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/NewOrganization' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/NewOrganization' + description: The information of the organization to create. + required: true + responses: + '200': + content: + application/json: + example: + data: + id: 1 + canonical: org1 + name: Organization 1 + blocked: [] + ci_team_name: asfdOPNljk + created_at: 1503225026 + updated_at: 1503335026 + schema: + $ref: '#/components/schemas/createChild_200_response' + description: Organization created. The body contains the information of the new created organization. + tags: + - Organization Children + x-codegen-request-body-name: body + /organizations/{organization_canonical}/cloud_cost_management: + get: + description: "Return the dashboard of the Cloud Cost Management. It contains one histogram per \ncloud provider, five top projects, the list of projects resources \naggregated by cloud provider and the cost of the new resource in the \nperiod.\n" + operationId: getCloudCostManagementDashboard + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - allowEmptyValue: false + description: Sets the cost granularity, it can be month, week, day. + in: query + name: granularity + required: true + schema: + enum: + - month + - week + - day + type: string + - description: Sets the start date for retrieving AWS costs. The start date is inclusive. + in: query + name: begin + required: true + schema: + format: date + type: string + - description: Sets the end dates for retrieving AWS costs. The end date is exclusive. + in: query + name: end + required: true + schema: + format: date + type: string + - description: The currency required for the results. + in: query + name: currency + required: true + schema: + enum: + - USD + - EUR + - CNY + - GBP + type: string + - allowEmptyValue: false + description: The names of the projects that you can use to filter your results + explode: true + in: query + name: projects + schema: + items: + type: string + type: array + style: form + - allowEmptyValue: false + description: The ids of the linked accounts that you can use to filter your results + explode: true + in: query + name: linked_accounts + schema: + items: + type: string + type: array + style: form + - allowEmptyValue: false + description: The ids of the master accounts that you can use to filter your results + explode: true + in: query + name: master_accounts + schema: + items: + type: string + type: array + style: form + - allowEmptyValue: false + description: The type of records that you can use to filter your results. For example usage or credit. + explode: true + in: query + name: record_types + schema: + items: + type: string + type: array + style: form + responses: + '200': + content: + application/json: + example: + data: + providers: + cost: 400 + buckets: + - cost: 300 + value: aws + buckets: + - cost: 170 + value: 2021-03 + - cost: 130 + value: 2021-04 + - cost: 100 + value: google + buckets: + - cost: 40 + value: 2021-03 + - cost: 60 + value: 2021-04 + projects: + cost: 300 + buckets: + - cost: 100 + value: 2021-03 + buckets: + - cost: 50 + value: proj1 + - cost: 50 + value: proj2 + - cost: 200 + value: 2021-04 + buckets: + - cost: 150 + value: proj1 + - cost: 50 + value: proj2 + resources: + - project: proj1 + providers: + - provider: aws + resources: 12 + new_resources: 10 + - provider: google + resources: 23 + new_resources: 7 + - project: proj2 + providers: + - provider: aws + resources: 7 + new_resources: 4 + filter_values: + providers: + - aws + - gcp + projects: + - proj1 + - proj2 + currencies: + - USD + - EUR + tags: + key1: + - value1 + - value2 + key2: + - value1 + - value2 + - value3 + key3: + - value1 + schema: + $ref: '#/components/schemas/getCloudCostManagementDashboard_200_response' + description: Cloud Cost Management dashboard. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Cloud Cost Management Dashboard + /organizations/{organization_canonical}/cloud_cost_management/filter_values: + get: + description: Return a map with all the possible filter vaules + operationId: getCloudCostManagementFilterVaules + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: Sets the start date for retrieving AWS costs. The start date is inclusive. + in: query + name: begin + required: true + schema: + format: date + type: string + - description: Sets the end dates for retrieving AWS costs. The end date is exclusive. + in: query + name: end + required: true + schema: + format: date + type: string + - allowEmptyValue: false + description: The names of the projects that you can use to filter your results + explode: true + in: query + name: projects + schema: + items: + type: string + type: array + style: form + - allowEmptyValue: false + description: The names of the environments that you can use to filter your results + explode: true + in: query + name: environments + schema: + items: + type: string + type: array + style: form + - allowEmptyValue: false + description: The names of the services that you can use to filter and group your results. + explode: true + in: query + name: services + schema: + items: + type: string + type: array + style: form + - allowEmptyValue: false + description: The key and value of a tag concatenated by a ;. + explode: true + in: query + name: tags + schema: + items: + maxLength: 127 + minLength: 4 + pattern: ^[^;]+;[^;]+$ + type: string + type: array + style: form + - allowEmptyValue: false + description: The names of the categories that you can use to filter and group your results. + explode: true + in: query + name: categories + schema: + items: + enum: + - other + - compute + - storage + - database + - dev_tools + - networking + - analytics + - containers + - machine_learning + - multimedia + - security + type: string + type: array + style: form + - allowEmptyValue: false + description: The ids of the master accounts that you can use to filter your results + explode: true + in: query + name: master_accounts + schema: + items: + type: string + type: array + style: form + - allowEmptyValue: false + description: The ids of the linked accounts that you can use to filter your results + explode: true + in: query + name: linked_accounts + schema: + items: + type: string + type: array + style: form + - allowEmptyValue: false + description: The names of the regions that you can use to filter your results + explode: true + in: query + name: regions + schema: + items: + type: string + type: array + style: form + - description: Filter results by only tagged or not tagged resources + in: query + name: resource_tagging + schema: + enum: + - tagged_resources + - untagged_resources + type: string + - allowEmptyValue: false + description: Represents a group when you specify a group by criteria, or in the response to a query with a specific grouping. + explode: true + in: query + name: group_by + schema: + items: + enum: + - environment + - service + - instance_type + - category + - location + - linked_account + - project + - record_type + type: string + type: array + uniqueItems: true + style: form + - description: Specifies if the filter values are for the dashboard + in: query + name: dashboard + schema: + default: false + type: boolean + responses: + '200': + content: + application/json: + example: + data: + projects: + - proj1 + - proj2 + linked_account: + - acc1 + - acc2 + regions: + - us-east-1 + - eu-west-1 + components: + - storage + - compute + - containers + tags: + key1: + - value1 + - value2 + key2: + - value1 + - value2 + - value3 + key3: + - value1 + schema: + $ref: '#/components/schemas/getCloudCostManagementFilterVaules_200_response' + description: | + Cloud Cost Management histogram for a period of time and a single provider. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Cloud Cost Management filter vaules + /organizations/{organization_canonical}/cloud_cost_management/projects: + get: + description: "Return the projects dashboard of the Cloud Cost Management. \nIt contains one date histogram with the aggregation by project,\nand a histogram with the aggregation by project and provider.\n" + operationId: getCloudCostManagementProjectsDashboard + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - allowEmptyValue: false + description: Sets the cost granularity, it can be month, week, day. + in: query + name: granularity + required: true + schema: + enum: + - month + - week + - day + type: string + - description: Sets the start date for retrieving AWS costs. The start date is inclusive. + in: query + name: begin + required: true + schema: + format: date + type: string + - description: Sets the end dates for retrieving AWS costs. The end date is exclusive. + in: query + name: end + required: true + schema: + format: date + type: string + - description: The currency required for the results. + in: query + name: currency + required: true + schema: + enum: + - USD + - EUR + - CNY + - GBP + type: string + - allowEmptyValue: false + description: The names of the projects that you can use to filter your results + explode: true + in: query + name: projects + schema: + items: + type: string + type: array + style: form + - allowEmptyValue: false + description: The ids of the linked accounts that you can use to filter your results + explode: true + in: query + name: linked_accounts + schema: + items: + type: string + type: array + style: form + - allowEmptyValue: false + description: The ids of the master accounts that you can use to filter your results + explode: true + in: query + name: master_accounts + schema: + items: + type: string + type: array + style: form + responses: + '200': + content: + application/json: + example: + data: + projects: + cost: 300 + buckets: + - cost: 100 + value: 2021-03 + buckets: + - cost: 50 + value: proj1 + - cost: 50 + value: proj2 + - cost: 200 + value: 2021-04 + buckets: + - cost: 150 + value: proj1 + - cost: 50 + value: proj2 + project_providers: + - project: proj1 + providers: + - provider: + - cost: 50 + - cost: 10 + - project: proj2 + providers: + - provider: + - cost: 50 + - cost: 10 + schema: + $ref: '#/components/schemas/getCloudCostManagementProjectsDashboard_200_response' + description: Cloud Cost Management dashboard. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Cloud Cost Management Projects Dashboard + /organizations/{organization_canonical}/cloud_cost_management/{provider_canonical}: + get: + description: Return a histogram of the costs generated in a given period aggregated by time granularity and other terms, for a single provider. + operationId: getCloudCostManagementProvider + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a Provider + in: path + name: provider_canonical + required: true + schema: + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - allowEmptyValue: false + description: Sets the cost granularity, it can be month, week, day. + in: query + name: granularity + required: true + schema: + enum: + - month + - week + - day + type: string + - description: Sets the start date for retrieving AWS costs. The start date is inclusive. + in: query + name: begin + required: true + schema: + format: date + type: string + - description: Sets the end dates for retrieving AWS costs. The end date is exclusive. + in: query + name: end + required: true + schema: + format: date + type: string + - description: The currency required for the results. + in: query + name: currency + required: true + schema: + enum: + - USD + - EUR + - CNY + - GBP + type: string + - allowEmptyValue: false + description: The names of the projects that you can use to filter your results + explode: true + in: query + name: projects + schema: + items: + type: string + type: array + style: form + - allowEmptyValue: false + description: The names of the environments that you can use to filter your results + explode: true + in: query + name: environments + schema: + items: + type: string + type: array + style: form + - allowEmptyValue: false + description: The names of the services that you can use to filter and group your results. + explode: true + in: query + name: services + schema: + items: + type: string + type: array + style: form + - allowEmptyValue: false + description: The key and value of a tag concatenated by a ;. + explode: true + in: query + name: tags + schema: + items: + maxLength: 127 + minLength: 4 + pattern: ^[^;]+;[^;]+$ + type: string + type: array + style: form + - allowEmptyValue: false + description: The names of the categories that you can use to filter and group your results. + explode: true + in: query + name: categories + schema: + items: + enum: + - other + - compute + - storage + - database + - dev_tools + - networking + - analytics + - containers + - machine_learning + - multimedia + - security + type: string + type: array + style: form + - allowEmptyValue: false + description: The ids of the master accounts that you can use to filter your results + explode: true + in: query + name: master_accounts + schema: + items: + type: string + type: array + style: form + - allowEmptyValue: false + description: The ids of the linked accounts that you can use to filter your results + explode: true + in: query + name: linked_accounts + schema: + items: + type: string + type: array + style: form + - allowEmptyValue: false + description: The names of the regions that you can use to filter your results + explode: true + in: query + name: regions + schema: + items: + type: string + type: array + style: form + - description: Filter results by only tagged or not tagged resources + in: query + name: resource_tagging + schema: + enum: + - tagged_resources + - untagged_resources + type: string + - allowEmptyValue: false + description: Represents a group when you specify a group by criteria, or in the response to a query with a specific grouping. + explode: true + in: query + name: group_by + schema: + items: + enum: + - environment + - service + - instance_type + - category + - location + - linked_account + - project + - record_type + type: string + type: array + uniqueItems: true + style: form + - allowEmptyValue: false + description: The type of records that you can use to filter your results. For example usage or credit. + explode: true + in: query + name: record_types + schema: + items: + type: string + type: array + style: form + responses: + '200': + content: + application/json: + example: + data: + cost: 200 + buckets: + - cost: 100 + value: 2021-03 + buckets: + - cost: 50 + value: us-est-1 + buckets: + - cost: 25 + value: storage + - cost: 25 + value: compute + - cost: 50 + value: us-est-2 + buckets: + - cost: 20 + value: storge + - cost: 30 + value: compute + - cost: 100 + value: 2021-04 + buckets: + - cost: 70 + value: us-est-1 + buckets: + - cost: 50 + value: storage + - cost: 20 + value: compute + - cost: 30 + value: us-est-2 + buckets: + - cost: 15 + value: storage + - cost: 15 + value: compute + filter_values: + projects: + - proj1 + - proj2 + linked_account: + - acc1 + - acc2 + regions: + - us-east-1 + - eu-west-1 + components: + - storage + - compute + - containers + tags: + key1: + - value1 + - value2 + key2: + - value1 + - value2 + - value3 + key3: + - value1 + schema: + $ref: '#/components/schemas/getCloudCostManagementProvider_200_response' + description: | + Cloud Cost Management histogram for a period of time and a single provider. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Cloud Cost Management Provider Histograms + /organizations/{organization_canonical}/cloud_cost_management/providers/{provider_canonical}: + get: + description: Return a histogram of the costs generated in a given period aggregated by time granularity and other terms, for a single provider. + operationId: getCloudCostManagementProviderDetails + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a Provider + in: path + name: provider_canonical + required: true + schema: + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - allowEmptyValue: false + description: Sets the cost granularity, it can be month, week, day. + in: query + name: granularity + required: true + schema: + enum: + - month + - week + - day + type: string + - description: Sets the start date for retrieving AWS costs. The start date is inclusive. + in: query + name: begin + required: true + schema: + format: date + type: string + - description: Sets the end dates for retrieving AWS costs. The end date is exclusive. + in: query + name: end + required: true + schema: + format: date + type: string + - description: The currency required for the results. + in: query + name: currency + required: true + schema: + enum: + - USD + - EUR + - CNY + - GBP + type: string + - allowEmptyValue: false + description: The names of the projects that you can use to filter your results + explode: true + in: query + name: projects + schema: + items: + type: string + type: array + style: form + - allowEmptyValue: false + description: The names of the environments that you can use to filter your results + explode: true + in: query + name: environments + schema: + items: + type: string + type: array + style: form + - allowEmptyValue: false + description: The names of the services that you can use to filter and group your results. + explode: true + in: query + name: services + schema: + items: + type: string + type: array + style: form + - allowEmptyValue: false + description: The key and value of a tag concatenated by a ;. + explode: true + in: query + name: tags + schema: + items: + maxLength: 127 + minLength: 4 + pattern: ^[^;]+;[^;]+$ + type: string + type: array + style: form + - allowEmptyValue: false + description: The names of the categories that you can use to filter and group your results. + explode: true + in: query + name: categories + schema: + items: + enum: + - other + - compute + - storage + - database + - dev_tools + - networking + - analytics + - containers + - machine_learning + - multimedia + - security + type: string + type: array + style: form + - allowEmptyValue: false + description: The ids of the master accounts that you can use to filter your results + explode: true + in: query + name: master_accounts + schema: + items: + type: string + type: array + style: form + - allowEmptyValue: false + description: The ids of the linked accounts that you can use to filter your results + explode: true + in: query + name: linked_accounts + schema: + items: + type: string + type: array + style: form + - allowEmptyValue: false + description: The names of the regions that you can use to filter your results + explode: true + in: query + name: regions + schema: + items: + type: string + type: array + style: form + - description: Filter results by only tagged or not tagged resources + in: query + name: resource_tagging + schema: + enum: + - tagged_resources + - untagged_resources + type: string + - allowEmptyValue: false + description: Represents a group when you specify a group by criteria, or in the response to a query with a specific grouping. + explode: true + in: query + name: group_by + schema: + items: + enum: + - environment + - service + - instance_type + - category + - location + - linked_account + - project + - record_type + type: string + type: array + uniqueItems: true + style: form + - allowEmptyValue: false + description: The type of records that you can use to filter your results. For example usage or credit. + explode: true + in: query + name: record_types + schema: + items: + type: string + type: array + style: form + responses: + '200': + content: + application/json: + example: + data: + cost: 200 + buckets: + - cost: 100 + value: 2021-03 + buckets: + - cost: 50 + value: us-est-1 + buckets: + - cost: 25 + value: storage + - cost: 25 + value: compute + - cost: 50 + value: us-est-2 + buckets: + - cost: 20 + value: storge + - cost: 30 + value: compute + - cost: 100 + value: 2021-04 + buckets: + - cost: 70 + value: us-est-1 + buckets: + - cost: 50 + value: storage + - cost: 20 + value: compute + - cost: 30 + value: us-est-2 + buckets: + - cost: 15 + value: storage + - cost: 15 + value: compute + filter_values: + projects: + - proj1 + - proj2 + linked_account: + - acc1 + - acc2 + regions: + - us-east-1 + - eu-west-1 + components: + - storage + - compute + - containers + tags: + key1: + - value1 + - value2 + key2: + - value1 + - value2 + - value3 + key3: + - value1 + schema: + $ref: '#/components/schemas/getCloudCostManagementProviderDetails_200_response' + description: | + Cloud Cost Management histogram for a period of time and a single provider. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Cloud Cost Management Provider Details + /organizations/{organization_canonical}/cloud_cost_management/providers: + get: + description: Return a histogram of the costs generated in a given period aggregated by time granularity and other terms, for a single provider. + operationId: getCloudCostManagementProviders + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - allowEmptyValue: false + description: Sets the cost granularity, it can be month, week, day. + in: query + name: granularity + required: true + schema: + enum: + - month + - week + - day + type: string + - description: Sets the start date for retrieving AWS costs. The start date is inclusive. + in: query + name: begin + required: true + schema: + format: date + type: string + - description: Sets the end dates for retrieving AWS costs. The end date is exclusive. + in: query + name: end + required: true + schema: + format: date + type: string + - description: The currency required for the results. + in: query + name: currency + required: true + schema: + enum: + - USD + - EUR + - CNY + - GBP + type: string + - allowEmptyValue: false + description: The names of the projects that you can use to filter your results + explode: true + in: query + name: projects + schema: + items: + type: string + type: array + style: form + - allowEmptyValue: false + description: The ids of the linked accounts that you can use to filter your results + explode: true + in: query + name: linked_accounts + schema: + items: + type: string + type: array + style: form + - allowEmptyValue: false + description: The ids of the master accounts that you can use to filter your results + explode: true + in: query + name: master_accounts + schema: + items: + type: string + type: array + style: form + responses: + '200': + content: + application/json: + example: + data: + - cost: 200 + buckets: + - cost: 100 + value: 2021-03 + buckets: + - cost: 50 + value: us-est-1 + buckets: + - cost: 25 + value: storage + - cost: 25 + value: compute + - cost: 50 + value: us-est-2 + buckets: + - cost: 20 + value: storge + - cost: 30 + value: compute + - cost: 100 + value: 2021-04 + buckets: + - cost: 70 + value: us-est-1 + buckets: + - cost: 50 + value: storage + - cost: 20 + value: compute + - cost: 30 + value: us-est-2 + buckets: + - cost: 15 + value: storage + - cost: 15 + value: compute + - cost: 200 + buckets: + - cost: 100 + value: 2021-03 + buckets: + - cost: 50 + value: us-est-1 + buckets: + - cost: 25 + value: storage + - cost: 25 + value: compute + - cost: 50 + value: us-est-2 + buckets: + - cost: 20 + value: storge + - cost: 30 + value: compute + - cost: 100 + value: 2021-04 + buckets: + - cost: 70 + value: us-est-1 + buckets: + - cost: 50 + value: storage + - cost: 20 + value: compute + - cost: 30 + value: us-est-2 + buckets: + - cost: 15 + value: storage + - cost: 15 + value: compute + schema: + $ref: '#/components/schemas/getCloudCostManagementProviders_200_response' + description: | + Cloud Cost Management histogram for a period of time and a single provider. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Cloud Cost Management Provider Histograms + /organizations/{organization_canonical}/cloud_cost_management/tags: + get: + description: Return a list of tags used in Cloud Cost Management records. + operationId: getCloudCostManagementTags + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/getCloudCostManagementTags_200_response' + description: List of Cloud Cost Management records' tags. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Cloud Cost Management + /organizations/{organization_canonical}/cloud_cost_management/accounts: + get: + description: Return a list of Cloud Cost Management accounts which matches the scope specified by the filter. + operationId: getCloudCostManagementAccounts + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: The page number to request. The first page is 1. + in: query + name: page_index + schema: + default: 1 + format: uint32 + type: integer + - description: The number of items at most which the response can have. + in: query + name: page_size + schema: + default: 1000 + format: uint32 + type: integer + - description: Search by Cloud Cost Management account's creation date + in: query + name: cloud_cost_management_account_created_at_query + schema: + format: uint64 + type: integer + - description: | + Allows to order the list of items. Example usage: field_name:asc + in: query + name: order_by + schema: + type: string + responses: + '200': + content: + application/json: + example: + data: + id: 1 + created_at: 1503225026 + updated_at: 1503335026 + last_ingestion_ended_at: 1503335026 + account_id: account_id + canonical: my-cloud-cost-management-account + name: My AWS Cloud Cost Managment account + external_backend: + credential_canonical: credential + purpose: cost_explorer + configuration: + engine: AWSStorage + region: eu-west1 + bucket: b + key: k + cloud_provider: + canonical: aws + schema: + $ref: '#/components/schemas/getCloudCostManagementAccounts_200_response' + description: List of Cloud Cost Management accounts. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Cloud Cost Management Accounts + post: + description: Create a new Cloud Cost Management account. + operationId: createCloudCostManagementAccount + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/NewCloudCostManagementAccount' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/NewCloudCostManagementAccount' + required: true + responses: + '200': + content: + application/json: + example: + data: + id: 1 + created_at: 1503225026 + updated_at: 1503335026 + last_ingestion_ended_at: 1503335026 + account_id: account_id + canonical: my-cloud-cost-management-account + name: My AWS Cloud Cost Managment account + external_backend: + credential_canonical: credential + purpose: cost_explorer + configuration: + engine: AWSStorage + region: eu-west1 + bucket: b + key: k + cloud_provider: + canonical: aws + schema: + $ref: '#/components/schemas/createCloudCostManagementAccount_200_response' + description: The new Cloud Cost Management account created. + '411': + content: {} + description: The request has a body but it doesn't have a Content-Length header. + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Cloud Cost Management Accounts + x-codegen-request-body-name: body + /organizations/{organization_canonical}/cloud_cost_management/accounts/has_parent: + get: + description: Return whether account under provided credentials is a child account + operationId: getCloudCostManagementAccountsHasParent + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A Credential canonical + in: query + name: credential_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/getCloudCostManagementAccountsHasParent_200_response' + description: CE Account of the parent + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Cloud Cost Management Accounts + /organizations/{organization_canonical}/cloud_cost_management/child-accounts: + post: + description: Create a new Cloud Cost Management account. + operationId: createCloudCostManagementAccountChild + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/NewCloudCostManagementAccountChild' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/NewCloudCostManagementAccountChild' + required: true + responses: + '200': + content: + application/json: + example: + data: + id: 1 + created_at: 1503225026 + updated_at: 1503335026 + last_ingestion_ended_at: 1503335026 + account_id: account_id + canonical: my-cloud-cost-management-account + credential_canonical: this-credential-is-cool + parent_account_id: 123456-78900 + schema: + $ref: '#/components/schemas/createCloudCostManagementAccount_200_response' + description: The new Cloud Cost Management account created. + '411': + content: {} + description: The request has a body but it doesn't have a Content-Length header. + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Cloud Cost Management Accounts + x-codegen-request-body-name: body + /organizations/{organization_canonical}/cloud_cost_management/accounts/{cloud_cost_management_account_canonical}/linked_accounts: + get: + description: Return a list of cloud provider accounts linked to a specific Cloud Cost Management account. + operationId: getCloudCostManagementLinkedAccounts + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: The canonical of an CloudCostManagementAccount. + in: path + name: cloud_cost_management_account_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + '200': + content: + application/json: + example: + data: + - id: 102 + name: A linked account + account_id: xxxxxx-xxxxxx-xxxxxxx + cloud_provider: aws + - id: 109 + name: Another linked account + account_id: yyyyyy-yyyyyy-yyyyyyy + cloud_provider: aws + schema: + $ref: '#/components/schemas/getCloudCostManagementLinkedAccounts_200_response' + description: List of linked accounts of a Cloud Cost Management account. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Cloud Cost Management Accounts + ? /organizations/{organization_canonical}/cloud_cost_management/accounts/{cloud_cost_management_account_canonical}/linked_accounts/{cloud_provider_account_id} + : put: + description: Update a Cloud Cost Management linked account + operationId: updateCloudCostManagementLinkedAccount + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: The canonical of an CloudCostManagementAccount. + in: path + name: cloud_cost_management_account_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: The id of an account in the Cloud Provider. + in: path + name: cloud_provider_account_id + required: true + schema: + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/UpdateCloudCostManagementLinkedAccount' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UpdateCloudCostManagementLinkedAccount' + description: The updated attributes of the Cloud Cost Management linked account + required: true + responses: + '200': + content: + application/json: + example: + data: + id: 99 + name: Updated linked account name + account_id: '123456789' + cloud_provider: aws + schema: + $ref: '#/components/schemas/CloudCostManagementLinkedAccount' + description: Updated Cloud Cost Management linked account + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Cloud Cost Management Accounts + x-codegen-request-body-name: body + /organizations/{organization_canonical}/cloud_cost_management/accounts/{cloud_cost_management_account_canonical}: + delete: + description: Delete the CloudCostManagementAccount. + operationId: deleteCloudCostManagementAccount + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: The canonical of an CloudCostManagementAccount. + in: path + name: cloud_cost_management_account_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + '204': + content: {} + description: CloudCostManagementAccount has been deleted. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Cloud Cost Management Accounts + get: + description: Get the information of the CloudCostManagementAccount. + operationId: getCloudCostManagementAccount + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: The canonical of an CloudCostManagementAccount. + in: path + name: cloud_cost_management_account_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + '200': + content: + application/json: + example: + data: + id: 1 + created_at: 1503225026 + updated_at: 1503335026 + last_ingestion_ended_at: 1503335026 + account_id: account_id + canonical: my-cloud-cost-management-account + external_backend: + credential_canonical: credential + purpose: cost_explorer + configuration: + engine: AWSStorage + region: eu-west1 + bucket: b + key: k + cloud_provider: + canonical: aws + schema: + $ref: '#/components/schemas/createCloudCostManagementAccount_200_response' + description: The information of the CloudCostManagementAccount which has the specified canonical. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Cloud Cost Management Accounts + put: + description: Update an existing CloudCostManagementAccount + operationId: updateCloudCostManagementAccount + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: The canonical of an CloudCostManagementAccount. + in: path + name: cloud_cost_management_account_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/UpdateCloudCostManagementAccount' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UpdateCloudCostManagementAccount' + description: The information of the organization to update. + required: true + responses: + '200': + content: + application/json: + example: + data: + id: 1 + created_at: 1503225026 + updated_at: 1503335026 + last_ingestion_ended_at: 1503335026 + account_id: account_id + canonical: my-cloud-cost-management-account + external_backend: + credential_canonical: credential + purpose: cost_explorer + configuration: + engine: AWSStorage + region: eu-west1 + bucket: b + key: k + cloud_provider: + canonical: aws + schema: + $ref: '#/components/schemas/createCloudCostManagementAccount_200_response' + description: CloudCostManagementAccount updated. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Cloud Cost Management Accounts + x-codegen-request-body-name: body + /organizations/{organization_canonical}/cloud_cost_management/tag_mapping: + get: + description: Return the Cloud Cost Management tag mapping for the organization + operationId: getCloudCostManagementTagMapping + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + '200': + content: + application/json: + example: + data: + id: 1 + created_at: 1503225026 + updated_at: 1503335026 + project_tags: + - proj + - project + project_regex: ^Project$ + environment_tags: + - env + - environment + environment_regex: ^Environment$ + schema: + $ref: '#/components/schemas/getCloudCostManagementTagMapping_200_response' + description: The CloudCostManagementTagMapping for the organization + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Cloud Cost Management Tag Mappings + put: + description: Create or Update a Cloud Cost Management Tag Mapping. + operationId: putCloudCostManagementTagMapping + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/UpdateCloudCostManagementTagMapping' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UpdateCloudCostManagementTagMapping' + required: true + responses: + '200': + content: + application/json: + example: + data: + id: 1 + created_at: 1503225026 + updated_at: 1503335026 + project_tags: + - proj + - project + project_regex: ^Project$ + environment_tags: + - env + - environment + environment_regex: ^Environment$ + schema: + $ref: '#/components/schemas/getCloudCostManagementTagMapping_200_response' + description: The new or updated Cloud Cost Management Tag Mapping + '411': + content: {} + description: The request has a body but it doesn't have a Content-Length header. + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Cloud Cost Management Tag Mappings + x-codegen-request-body-name: body + /organizations/{organization_canonical}/cloud_providers: + get: + description: Get the list of Cloud Providers + operationId: getCloudProviders + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: The page number to request. The first page is 1. + in: query + name: page_index + schema: + default: 1 + format: uint32 + type: integer + - description: The number of items at most which the response can have. + in: query + name: page_size + schema: + default: 1000 + format: uint32 + type: integer + responses: + '200': + content: + application/json: + example: + data: + - id: 1 + canonical: aws + abbreviation: AWS + name: Amazon Web Services + regions: + - af-south-1 + - eu-west-2 + - us-east-1 + - us-east-2 + - id: 2 + canonical: google + abbreviation: GCP + name: Google Cloud Platform + - id: 3 + canonical: azurerm + abbreviation: Azure + name: Azure + regions: + - asia + - asiapacific + - australia + - australiacentral + - id: 4 + canonical: flexibleengine + abbreviation: FlexibleEngine + name: Flexible Engine + - id: 5 + canonical: openstack + abbreviation: OpenStack + name: OpenStack + - id: 6 + canonical: scaleway + abbreviation: Scaleway + name: Scaleway + - id: 7 + canonical: vmware + abbreviation: VMware + name: VMware + - id: 8 + canonical: ovh + abbreviation: OVH + name: OVH Cloud + - id: 9 + canonical: alibaba + abbreviation: Alibaba + name: Alibaba Cloud + - id: 10 + canonical: oracle + abbreviation: OCI + name: Oracle Cloud Infrastructure + pagination: + index: 1 + size: 10 + total: 2 + schema: + $ref: '#/components/schemas/getCloudProviders_200_response' + description: List of Cloud Providers + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Cloud providers + /organizations/{organization_canonical}/config_repositories: + get: + description: Return all the config repositories + operationId: listConfigRepositories + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: The page number to request. The first page is 1. + in: query + name: page_index + schema: + default: 1 + format: uint32 + type: integer + - description: The number of items at most which the response can have. + in: query + name: page_size + schema: + default: 1000 + format: uint32 + type: integer + - description: Value describing whether to return default + in: query + name: default + schema: + default: false + type: boolean + responses: + '200': + content: + application/json: + example: + data: + - id: 1 + canonical: my-personal-repo + name: My personal repo + url: git@github.com:myuser/repository.git + branch: configs + default: true + created_at: 1503225026 + updated_at: 1503335026 + - id: 2 + canonical: my-personal-repo2 + name: My personal repo 2 + url: git@github.com:myuser/repository.git + branch: configs + default: false + created_at: 1503225026 + updated_at: 1503335026 + pagination: + index: 1 + size: 10 + total: 2 + schema: + $ref: '#/components/schemas/listConfigRepositories_200_response' + description: List of the config repositories. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Config Repositories + post: + description: Creates a config repository + operationId: createConfigRepository + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/NewConfigRepository' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/NewConfigRepository' + description: The information of the config repository to create. + required: true + responses: + '200': + content: + application/json: + example: + data: + id: 1 + name: My personal repo + url: git@github.com:myuser/repository.git + canonical: my-personal-repo + branch: configs + default: true + credential_id: 1 + created_at: 1503225026 + updated_at: 1503335026 + schema: + $ref: '#/components/schemas/createConfigRepository_200_response' + description: Success creation + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '411': + content: {} + description: The request has a body but it doesn't have a Content-Length header. + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Config Repositories + x-codegen-request-body-name: body + /organizations/{organization_canonical}/config_repositories/{config_repository_canonical}/config: + post: + description: Create Service Catalog config files in the Config Repository. + operationId: createConfigRepositoryConfig + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: Organization Config Repositories canonical + in: path + name: config_repository_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/SCConfig' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/SCConfig' + description: | + The body contains Service Catalog's config files and paths where they'll be created in the Config Repository. + required: true + responses: + '204': + content: {} + description: SC config files have been created successfully + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '411': + content: {} + description: The request has a body but it doesn't have a Content-Length header. + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Config Repositories + x-codegen-request-body-name: body + /organizations/{organization_canonical}/config_repositories/{config_repository_canonical}: + delete: + description: delete a Config Repositories + operationId: deleteConfigRepository + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: Organization Config Repositories canonical + in: path + name: config_repository_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + '204': + content: {} + description: Organization Config repository has been deleted + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Config Repositories + get: + description: Return the Config Repository + operationId: getConfigRepository + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: Organization Config Repositories canonical + in: path + name: config_repository_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: The page number to request. The first page is 1. + in: query + name: page_index + schema: + default: 1 + format: uint32 + type: integer + - description: The number of items at most which the response can have. + in: query + name: page_size + schema: + default: 1000 + format: uint32 + type: integer + responses: + '200': + content: + application/json: + example: + data: + id: 1 + canonical: my-personal-repo + name: My personal repo + url: git@github.com:myuser/repository.git + branch: configs + default: true + created_at: 1503225026 + updated_at: 1503335026 + schema: + $ref: '#/components/schemas/createConfigRepository_200_response' + description: Organization Config Repository. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Config Repositories + put: + description: Update a config repository + operationId: updateConfigRepository + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: Organization Config Repositories canonical + in: path + name: config_repository_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/UpdateConfigRepository' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UpdateConfigRepository' + description: The information of the config repository to create. + required: true + responses: + '200': + content: + application/json: + example: + data: + id: 1 + canonical: my-personal-repo + name: My personal repo + url: git@github.com:myuser/repository.git + branch: configs + default: true + credential_id: 1 + created_at: 1503225026 + updated_at: 1503335026 + schema: + $ref: '#/components/schemas/createConfigRepository_200_response' + description: Success creation + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '411': + content: {} + description: The request has a body but it doesn't have a Content-Length header. + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Config Repositories + x-codegen-request-body-name: body + /organizations/{organization_canonical}/cost_estimation/tfplan: + post: + description: Estimate costs of a Terraform plan in JSON format. + operationId: costEstimateTfPlan + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/TerraformPlanInput' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/TerraformPlanInput' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/costEstimateTfPlan_200_response' + description: The result of estimating the costs of a Terraform plan. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Cost Estimation + x-codegen-request-body-name: body + /organizations/{organization_canonical}/credentials: + get: + description: Return all the Credentials, depending on the caller permissions it'll return the Raw data or not. If the caller has List and not Get it'll not return the Raw, if it has List and Read it'll return the Raw. + operationId: listCredentials + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: The page number to request. The first page is 1. + in: query + name: page_index + schema: + default: 1 + format: uint32 + type: integer + - description: The number of items at most which the response can have. + in: query + name: page_size + schema: + default: 1000 + format: uint32 + type: integer + - description: | + Deprecated. Please use credential_types. + A Credential type + in: query + name: credential_type + schema: + enum: + - ssh + - aws + - custom + - azure + - azure_storage + - gcp + - basic_auth + - elasticsearch + - swift + type: string + - allowEmptyValue: true + description: Multiple Credential types + explode: true + in: query + name: credential_types + schema: + items: + enum: + - ssh + - aws + - custom + - azure + - azure_storage + - gcp + - basic_auth + - elasticsearch + - swift + type: string + type: array + uniqueItems: true + style: form + responses: + '200': + content: + application/json: + example: + data: + - id: 1 + canonical: name-key1 + name: name-key + type: ssh + path: my/path + raw: + ssh_key: key + created_at: 1503225026 + updated_at: 1503335026 + owner: + username: user-2 + id: 10 + given_name: Mariana + family_name: Jimenezo + email: mariana.jimenezo@fakeemail.com + picture_url: https://avatars2.githubusercontent.com/u/14579210 + created_at: 1503225026 + role: + id: 42 + name: standard role + description: this is the standard role + canonical: role-can + rules: + - id: 1 + effect: allow + action: organization:delete + resources: + - organization:org-can + - organization:org-can2 + - id: 20 + effect: allow + action: organization:team:create + resources: [] + - id: 21 + effect: allow + action: organization:team:read + resources: + - organization:org-can:team:team-can + - id: 2 + canonical: name-key2 + name: name-key + type: ssh + path: my/path + raw: + ssh_key: key + created_at: 1503225026 + updated_at: 1503335026 + owner: + username: user-2 + id: 10 + given_name: Mariana + family_name: Jimenezo + email: mariana.jimenezo@fakeemail.com + picture_url: https://avatars2.githubusercontent.com/u/14579210 + created_at: 1503225026 + role: + id: 42 + name: standard role + description: this is the standard role + canonical: role-can + rules: + - id: 1 + effect: allow + action: organization:delete + resources: + - organization:org-can + - organization:org-can2 + - id: 20 + effect: allow + action: organization:team:create + resources: [] + - id: 21 + effect: allow + action: organization:team:read + resources: + - organization:org-can:team:team-can + pagination: + index: 1 + size: 10 + total: 2 + schema: + $ref: '#/components/schemas/listCredentials_200_response' + description: List of the Credentials + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Credentials + post: + description: |- + Create a new Credential, based on the type you will have to pass different parameters within the body: + * ssh: ssh_key + * aws: access_key, secret_key + * gcp: json_key + * azure: client_id, client_secret, subscription_id, tenant_id + * azure_storage: account_name, access_key + * basic_auth: username, password + * elasticsearch: username, password, ca_cert + * swift: auth_url, username, password, domain_id, tenant_id + * vmware: username, password + operationId: createCredential + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/NewCredential' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/NewCredential' + description: The information of the organization to create. + required: true + responses: + '200': + content: + application/json: + example: + data: + id: 2 + canonical: name-key + name: name-key + type: ssh + path: my/path + raw: + ssh_key: key + schema: + $ref: '#/components/schemas/createCredential_200_response' + description: Credential created. The body contains the information of the new created Credential. + '411': + content: {} + description: The request has a body but it doesn't have a Content-Length header. + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Credentials + x-codegen-request-body-name: body + /organizations/{organization_canonical}/credentials/{credential_canonical}: + delete: + description: Delete the Credential. + operationId: deleteCredential + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A Credential canonical + in: path + name: credential_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + '204': + content: {} + description: Credential has been deleted. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '409': + content: {} + description: Credential deletion has internal conflict + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Credentials + get: + description: Get the information of the Credential. + operationId: getCredential + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A Credential canonical + in: path + name: credential_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + '200': + content: + application/json: + example: + data: + id: 2 + canonical: name-key + name: name-key + type: ssh + path: my/path + raw: + ssh_key: key + owner: + username: user-2 + id: 10 + given_name: Mariana + family_name: Jimenezo + email: mariana.jimenezo@fakeemail.com + picture_url: https://avatars2.githubusercontent.com/u/14579210 + created_at: 1503225026 + role: + id: 42 + name: standard role + description: this is the standard role + canonical: role-can + rules: + - id: 1 + effect: allow + action: organization:delete + resources: + - organization:org-can + - organization:org-can2 + - id: 20 + effect: allow + action: organization:team:create + resources: [] + - id: 21 + effect: allow + action: organization:team:read + resources: + - organization:org-can:team:team-can + schema: + $ref: '#/components/schemas/createCredential_200_response' + description: The information of the Credential which has the specified ID. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Credentials + put: + description: |- + Update an existing Credential, based on the type you will have to pass different parameters within the body: + * ssh: ssh_key + * aws: access_key, secret_key + * gcp: json_key + * azure: client_id, client_secret, subscription_id, tenant_id + * azure_storage: account_name, access_key + * basic_auth: username, password + * elasticsearch: username, password, ca_cert + * swift: auth_url, username, password, domain_id, tenant_id + * vmware: username, password + operationId: updateCredential + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A Credential canonical + in: path + name: credential_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/UpdateCredential' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UpdateCredential' + description: The information of the organization to update. + required: true + responses: + '200': + content: + application/json: + example: + data: + id: 2 + canonical: name-key + name: name-key + type: ssh + path: my/path + raw: + ssh_key: key + schema: + $ref: '#/components/schemas/createCredential_200_response' + description: Credential updated. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '411': + content: {} + description: The request has a body but it doesn't have a Content-Length header. + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Credentials + x-codegen-request-body-name: body + /organizations/{organization_canonical}/credentials/{credential_canonical}/options: + get: + description: Get options of the Credential. + operationId: getCredentialOptions + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A Credential canonical + in: path + name: credential_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - in: query + name: service + required: true + schema: + enum: + - gcp_bigquery + type: string + responses: + '200': + content: + application/json: + example: + data: + projects: + - id: cycloid-xxx + datasets: + - id: all_billing_data + tables: + - id: cloud_pricing_export + - id: gcp_billing_export_resource_v1_GOOGLE_CLOUD_ACCOUNT_ID + - id: gcp_billing_export_v1_GOOGLE_CLOUD_ACCOUNT_ID + - id: cycloid-demo + datasets: [] + schema: + $ref: '#/components/schemas/getCredentialOptions_200_response' + description: Service-specific options for the Credential with the specified ID. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Credentials + /organizations/{organization_canonical}/environments: + get: + description: Get all the environments of the Organization + operationId: getEnvironments + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: The page number to request. The first page is 1. + in: query + name: page_index + schema: + default: 1 + format: uint32 + type: integer + - description: The number of items at most which the response can have. + in: query + name: page_size + schema: + default: 1000 + format: uint32 + type: integer + responses: + '200': + content: + application/json: + example: + data: + - id: 2 + canonical: staging + created_at: 1503225026 + updated_at: 1503335026 + - id: 3 + canonical: dev + created_at: 1503225026 + updated_at: 1503335026 + pagination: + index: 1 + size: 10 + total: 2 + schema: + $ref: '#/components/schemas/getEnvironments_200_response' + description: Returns all the Environments + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Environments + /organizations/{organization_canonical}/events: + get: + description: |- + Retrieve the list of events which has been registered on the organization. The events to request can be filtered using Unix timestamps in milliseconds (begin and end timestamps range), the event type and severity; when more than one are applied then they are applied with a logical AND. + - The Unix timestamps must always be specified, the rest of the filters + are not mandatory. + operationId: getEvents + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: The unix timestamp in milliseconds, which indicate the start of the time range. + in: query + name: begin + schema: + format: uint64 + type: integer + - description: The unix timestamp in milliseconds, which indicate the end of the time range. + in: query + name: end + schema: + format: uint64 + type: integer + - allowEmptyValue: false + description: Specify the types of the events to be requested. The returned events must have one of the specified types. + explode: true + in: query + name: type + schema: + items: + enum: + - Cycloid + - AWS + - Monitoring + - Custom + type: string + type: array + style: form + - allowEmptyValue: false + description: Specify the severities of the events to be requested. The returned events must have one of the specified severities. + explode: true + in: query + name: severity + schema: + items: + enum: + - info + - warn + - err + - crit + type: string + type: array + style: form + responses: + '200': + content: + application/json: + example: + data: + - timestamp: '0123456789' + id: 42 + type: Cycloid + title: A build has been created + message: Cyclobot created the build cleanup-deployment#42 of pipeline awesome-project-pr_1337 + icon: fa-info-circle + severity: info + tags: + - key: action + value: create + - key: entity + value: build + - key: name + value: awesome-project-pr_1337/cleanup-deployment + - key: user + value: cyclobot + - timestamp: '0123456795' + id: 2 + title: Success deployment of awesome-project version 1.1.93-rc.5 on staging environment + type: Custom + message: A new deployment of awesome-project version 1.1.93-rc.5 has been done on staging environment + severity: info + icon: fa-info-circle + tags: + - key: env + value: staging + - key: project + value: awesome-project + - timestamp: '0123456810' + id: 3 + type: Monitoring + title: Nodes are overloaded + message: Kubernetes nodes of the deployment awesome-project are under heavy load + severity: warn + tags: + - key: Name + value: my-mum-kubernetes-prod + - key: UUID + value: 3ec0a46e-435e-4c5e-989b-02179efb49b5 + - key: alertname + value: K8SNodeDiskPressure + - key: condition + value: DiskPressure + - key: customer + value: awesome-customer + - key: env + value: prod + - key: instance + value: 172.30.12.2338080 + - key: job + value: kube-state-metrics + - key: node + value: ip-127-0-0-1.eu-west-1.compute.internal + - key: project + value: kubernetes + - key: receiver + value: on_call + - key: service + value: k8s + - key: severity + value: warning + - key: status + value: false + - timestamp: '0123456823' + id: 5 + type: AWS + title: AWS created + message: A new AWS instance has been created + icon: fa-aws + severity: info + tags: + - key: env + value: testing + - key: project + value: awesome-project + - timestamp: '0123456834' + id: 7 + type: AWS + title: AWS is ready + message: A new AWS instance is ready to accept requests + icon: fa-aws + severity: info + tags: + - key: env + value: testing + - key: project + value: secret-project + schema: + $ref: '#/components/schemas/getEvents_200_response' + description: The list of events which fulfills the query parameters filter + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organizations + post: + description: Send a event on the organization to be registered. + operationId: sendEvent + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/NewEvent' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/NewEvent' + description: The information associated with the event to register. + required: true + responses: + '200': + content: + application/json: + example: + data: + - timestamp: '0123456789' + type: Cycloid + title: New member added + message: A new member has been added to the project Website + icon: fa-info-circle + severity: info + tags: + - key: project_canonical + value: website + - key: environment_canonical + value: development + - key: user + value: batman + schema: + $ref: '#/components/schemas/sendEvent_200_response' + description: Event has been registered + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organizations + x-codegen-request-body-name: body + /organizations/{organization_canonical}/events/tags: + get: + description: Retrieve the list of tags and set of values for all the events of the organization. + operationId: getEventsTags + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + '200': + content: + application/json: + example: + data: + user: + - cycloidbot + - geralt-of-rivia + env: + - prod + - staging + - testing + action: + - create + - delete + - update + project: + - awesome-project + - pet-project + - secret-project + entity: + - build + - pipeline + name: + - awesome-project-pr_1337 + - awesome-project-pr_42 + customer: + - awesome-customer + - cycloid + schema: + $ref: '#/components/schemas/getEventsTags_200_response' + description: The list of tags and set of values for all the events of the organization. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organizations + /organizations/{organization_canonical}/external_backends: + get: + description: Get the list of organization external backends + operationId: getExternalBackends + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A list of projects' canonical to filter from + in: query + name: project_canonical + schema: + pattern: ^[\da-z]+(?:(?:[\da-z\-._]+)?[\da-z])?$ + type: string + - description: A list of environments' canonical to filter from + in: query + name: environment_canonical + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: Filter for default Terraform External Backend + in: query + name: external_backend_default + schema: + type: boolean + responses: + '200': + content: + application/json: + example: + data: + - id: 1 + project_canonical: project1 + credential_id: 1 + purpose: logs + configuration: + engine: AWSCloudWatchLogs + region: eu-west1 + created_at: 1503225026 + updated_at: 1503335026 + - id: 2 + project_canonical: project2 + credential_id: 2 + purpose: logs + configuration: + engine: AWSCloudWatchLogs + region: eu-west1 + created_at: 1503225026 + updated_at: 1503335026 + - id: 3 + project_canonical: project1 + environment_canonical: envA + credential: 3 + purpose: remote_tfstate + configuration: + engine: AWSStorage + region: eu-west1 + bucket: mybucket + key: /my/key + created_at: 1503225026 + updated_at: 1503335026 + - id: 4 + project_canonical: project2 + environment_canonical: envA + credential: 4 + purpose: logs + configuration: + engine: AWSStorage + container: mycontainer + blob: /my/blob + created_at: 1503225026 + updated_at: 1503335026 + - id: 5 + project_canonical: project2 + environment_canonical: envB + credential_id: 5 + purpose: remote_tfstate + configuration: + engine: GCPStorage + bucket: mybucket + object: /my/object + created_at: 1503225026 + updated_at: 1503335026 + schema: + $ref: '#/components/schemas/getExternalBackends_200_response' + description: The list of the external backends + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization External Backends + post: + description: Save information about the external backend + operationId: createExternalBackend + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A list of projects' canonical to filter from + in: query + name: project_canonical + schema: + pattern: ^[\da-z]+(?:(?:[\da-z\-._]+)?[\da-z])?$ + type: string + - description: A list of environments' canonical to filter from + in: query + name: environment_canonical + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: Filter for default Terraform External Backend + in: query + name: external_backend_default + schema: + type: boolean + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/NewExternalBackend' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/NewExternalBackend' + description: The information of the external backend + required: true + responses: + '200': + content: + application/json: + example: + data: + id: 1 + project_canonical: project1 + credential_id: 1 + purpose: logs + configuration: + engine: AWSCloudWatchLogs + region: eu-west1 + created_at: 1503225026 + updated_at: 1503335026 + schema: + $ref: '#/components/schemas/createExternalBackend_200_response' + description: external backend has been registered + tags: + - Organization External Backends + x-codegen-request-body-name: body + /organizations/{organization_canonical}/external_backends/{external_backend_id}: + delete: + description: delete an External Backend + operationId: deleteExternalBackend + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: External Backend ID + in: path + name: external_backend_id + required: true + schema: + format: uint32 + type: integer + responses: + '204': + content: {} + description: Organization Service Catalog Sources has been deleted + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization External Backends + get: + description: Get the external backend + operationId: getExternalBackend + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: External Backend ID + in: path + name: external_backend_id + required: true + schema: + format: uint32 + type: integer + responses: + '200': + content: + application/json: + example: + data: + id: 1 + project_canonical: project1 + credential_id: 1 + purpose: logs + configuration: + engine: AWSCloudWatchLogs + created_at: 1503225026 + updated_at: 1503335026 + schema: + $ref: '#/components/schemas/createExternalBackend_200_response' + description: The external backend + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization External Backends + put: + description: Update an External Backend + operationId: updateExternalBackend + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: External Backend ID + in: path + name: external_backend_id + required: true + schema: + format: uint32 + type: integer + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/UpdateExternalBackend' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UpdateExternalBackend' + description: The information of the external backend new data + required: true + responses: + '200': + content: + application/json: + example: + data: + id: 1 + project_canonical: project1 + credential_id: 1 + purpose: logs + configuration: + engine: AWSCloudWatchLogs + region: eu-west1 + created_at: 1503225026 + updated_at: 1503335026 + schema: + $ref: '#/components/schemas/createExternalBackend_200_response' + description: Success update + '411': + content: {} + description: The request has a body but it doesn't have a Content-Length header. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization External Backends + x-codegen-request-body-name: body + /organizations/{organization_canonical}/projects/{project_canonical}/forms/config: + post: + description: Generate a set of configs based on the forms inputs + operationId: createFormsConfig + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/FormInputs' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/FormInputs' + description: The information of the filled forms for a new project. + required: true + responses: + '200': + content: + application/json: + example: + data: + prod: + pipeline: + pipeline: + path: pipeline/magento.yml + content: | + groups: + + - name: magento-((env)) + jobs: + - magento-((env))-build + - full-deploy-front-magento-((env)) + - app-deploy-front-magento-((env)) + - terraform-plan-magento-((env)) + - terraform-apply-magento-((env)) + - magento-((env))-unittests + - magento-((env))-functional-tests + + resource_types: + + - name: terraform + type: docker-image + source: + repository: ljfranklin/terraform-resource + + resources: + + - name: terraform-magento-((env)) + type: terraform + source: + storage: + bucket: ((terraform_storage_bucket_name)) + bucket_path: ((terraform_storage_bucket_path)) + region_name: ((aws_default_region)) + access_key_id: "((terraform_storage_access_key))" + secret_access_key: "((terraform_storage_secret_key))" + vars: + access_key: ((aws_access_key)) + secret_key: ((aws_secret_key)) + env: + AWS_ACCESS_KEY_ID: ((aws_access_key)) + AWS_DEFAULT_REGION: ((aws_default_region)) + AWS_SECRET_ACCESS_KEY: ((aws_secret_key)) + variables: + path: pipeline/variables.sample.yml + destination: pipeline/prod-variables.yml + content: | + env: prod + magento_deploy_bucket_name: magento-deploy + magento_deploy_bucket_object_path: /catalog-magento/prod/magento.tar.gz + magento_deploy_bucket_region: eu-west-1 + magento_deploy_bucket_access_key: ... + magento_deploy_bucket_secret_access_key: ... + terraform_storage_access_key: ... + terraform_storage_secret_key: ... + terraform_storage_bucket_name: magento-terraform-remote-state + terraform_storage_bucket_path: magento/prod + aws_access_key: ... + aws_secret_key: ... + aws_default_region: eu-west-1 + + ansible_vault_password: ... + bastion_url: admin@bastion.server.com + bastion_private_key_pair: |- + -----BEGIN RSA PRIVATE KEY----- + -----END RSA PRIVATE KEY----- + + catalog_magento_git_private_key: |- + -----BEGIN RSA PRIVATE KEY----- + -----END RSA PRIVATE KEY----- + + magento_git_repository: git@github.com:myuser/code-magento.git + magento_git_branch: master + magento_git_private_key: |- + -----BEGIN RSA PRIVATE KEY----- + -----END RSA PRIVATE KEY----- + + + magento_config_git_repository: git@github.com:myuser/config-magento.git + magento_config_git_branch: master + magento_config_git_private_key: |- + -----BEGIN RSA PRIVATE KEY----- + -----END RSA PRIVATE KEY----- + ansible: + magento: + path: ansible/environments/front.yml.sample + destination: ansible/environments/prod-front.yml + content: | + # In this file you could override any variables present in default_front.yaml file + + # Usually you might want to override those variables : + # magento_backend_frontname: admin + # magento_admin_firstname: admin + # magento_admin_lastname: admin + # magento_admin_email: root@localhost.local + # magento_admin_user: admin + + # magento_admin_password: 4Bigs3cr3t + + # In case you want to use vault to encrypt this password use the following command to generate the ansible vault var : + # echo -n "4Bigs3cr3t" | ansible-vault encrypt_string --stdin-name=magento_admin_password + #>> magento_admin_password: !vault | + #>> $ANSIBLE_VAULT;1.1;AES256 + #>> 37363232383334316164366337366430316535636130376134323366313565356365363662653539 + #>> 3161303331303565643831383839626263653362636466660a316530613935393464366536383839 + #>> 30303836326138306339623431356234333239343435623333343333623938633761636132303662 + #>> 3135343861383531660a393934316237363961663865393939313966373838653339326565353263 + #>> 6238 + terraform: + magento: + path: terraform/magento.tf.sample + destination: terraform/magento/prod/magento.tf + content: | + variable "rds_password" { + default = "ChangeMePls" + } + + module "magento" { + source = "module-magento" + + env = "prod" + vpc_id = "" + private_subnets_ids = ["private-subnets"] + magento_ssl_cert = "" + bastion_sg_allow = "" + public_subnets_ids = [""] + + rds_password = "${var.rds_password}" + + # project = "magento" + + # FIXME optimized false : should be changes with the instance type ? + + # rds_database = "magento" + # rds_disk_size = 10 + # rds_multiaz = false + # rds_storage_type = "gp2" + # rds_subnet = "" + # rds_type = "db.t2.small" + # rds_username = "magento" + # rds_engine = ""mysql" + # rds_engine_version = "5.7.16" + # rds_backup_retention = 7 + # rds_parameters = "" + + # cache_subnet = "cache-subnet-id" + # elasticache_type = "cache.t2.micro" + # elasticache_nodes = "1 + # elasticache_parameter_group_name = "default.redis3.2" + # elasticache_engine = "redis" + # elasticache_port = "6379" + # front_count = "1" + # front_disk_size = "60" + # front_disk_type = "gp2" + # front_type = "t2.small" + + } + dev: + pipeline: + pipeline: + path: pipeline/magento.yml + content: | + groups: + + - name: magento-((env)) + jobs: + - magento-((env))-build + - full-deploy-front-magento-((env)) + - app-deploy-front-magento-((env)) + - terraform-plan-magento-((env)) + - terraform-apply-magento-((env)) + - magento-((env))-unittests + - magento-((env))-functional-tests + + resource_types: + + - name: terraform + type: docker-image + source: + repository: ljfranklin/terraform-resource + + resources: + + - name: terraform-magento-((env)) + type: terraform + source: + storage: + bucket: ((terraform_storage_bucket_name)) + bucket_path: ((terraform_storage_bucket_path)) + region_name: ((aws_default_region)) + access_key_id: "((terraform_storage_access_key))" + secret_access_key: "((terraform_storage_secret_key))" + vars: + access_key: ((aws_access_key)) + secret_key: ((aws_secret_key)) + env: + AWS_ACCESS_KEY_ID: ((aws_access_key)) + AWS_DEFAULT_REGION: ((aws_default_region)) + AWS_SECRET_ACCESS_KEY: ((aws_secret_key)) + variables: + path: pipeline/variables.sample.yml + destination: pipeline/prod-variables.yml + content: | + env: dev + magento_deploy_bucket_name: magento-deploy + magento_deploy_bucket_object_path: /catalog-magento/dev/magento.tar.gz + magento_deploy_bucket_region: eu-west-1 + magento_deploy_bucket_access_key: ... + magento_deploy_bucket_secret_access_key: ... + terraform_storage_access_key: ... + terraform_storage_secret_key: ... + terraform_storage_bucket_name: magento-terraform-remote-state + terraform_storage_bucket_path: magento/dev + aws_access_key: ... + aws_secret_key: ... + aws_default_region: eu-west-1 + + ansible_vault_password: ... + bastion_url: admin@bastion.server.com + bastion_private_key_pair: |- + -----BEGIN RSA PRIVATE KEY----- + -----END RSA PRIVATE KEY----- + + catalog_magento_git_private_key: |- + -----BEGIN RSA PRIVATE KEY----- + -----END RSA PRIVATE KEY----- + + magento_git_repository: git@github.com:myuser/code-magento.git + magento_git_branch: master + magento_git_private_key: |- + -----BEGIN RSA PRIVATE KEY----- + -----END RSA PRIVATE KEY----- + + + magento_config_git_repository: git@github.com:myuser/config-magento.git + magento_config_git_branch: master + magento_config_git_private_key: |- + -----BEGIN RSA PRIVATE KEY----- + -----END RSA PRIVATE KEY----- + ansible: + magento: + path: ansible/environments/front.yml.sample + destination: ansible/environments/dev-front.yml + content: | + # In this file you could override any variables present in default_front.yaml file + + # Usually you might want to override those variables : + # magento_backend_frontname: admin + # magento_admin_firstname: admin + # magento_admin_lastname: admin + # magento_admin_email: root@localhost.local + # magento_admin_user: admin + + # magento_admin_password: 4Bigs3cr3t + + # In case you want to use vault to encrypt this password use the following command to generate the ansible vault var : + # echo -n "4Bigs3cr3t" | ansible-vault encrypt_string --stdin-name=magento_admin_password + #>> magento_admin_password: !vault | + #>> $ANSIBLE_VAULT;1.1;AES256 + #>> 37363232383334316164366337366430316535636130376134323366313565356365363662653539 + #>> 3161303331303565643831383839626263653362636466660a316530613935393464366536383839 + #>> 30303836326138306339623431356234333239343435623333343333623938633761636132303662 + #>> 3135343861383531660a393934316237363961663865393939313966373838653339326565353263 + #>> 6238 + terraform: + magento: + path: terraform/magento.tf.sample + destination: terraform/magento/dev/magento.tf + content: | + variable "rds_password" { + default = "ChangeMePls" + } + + module "magento" { + source = "module-magento" + + env = "prod" + vpc_id = "" + private_subnets_ids = ["private-subnets"] + magento_ssl_cert = "" + bastion_sg_allow = "" + public_subnets_ids = [""] + + rds_password = "${var.rds_password}" + + # project = "magento" + + # FIXME optimized false : should be changes with the instance type ? + + # rds_database = "magento" + # rds_disk_size = 10 + # rds_multiaz = false + # rds_storage_type = "gp2" + # rds_subnet = "" + # rds_type = "db.t2.small" + # rds_username = "magento" + # rds_engine = ""mysql" + # rds_engine_version = "5.7.16" + # rds_backup_retention = 7 + # rds_parameters = "" + + # cache_subnet = "cache-subnet-id" + # elasticache_type = "cache.t2.micro" + # elasticache_nodes = "1 + # elasticache_parameter_group_name = "default.redis3.2" + # elasticache_engine = "redis" + # elasticache_port = "6379" + # front_count = "1" + # front_disk_size = "60" + # front_disk_type = "gp2" + # front_type = "t2.small" + + } + schema: + $ref: '#/components/schemas/createFormsConfig_200_response' + description: Set of config to create the project / push onto repositories + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Forms + x-codegen-request-body-name: body + /organizations/{organization_canonical}/forms/validate: + post: + description: Validate a forms file definition + operationId: validateFormsFile + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/FormsValidation' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/FormsValidation' + description: The content of the forms file to be validated. + required: true + responses: + '200': + content: + application/json: + example: + data: + forms: + version: 2 + use_cases: + - name: prod + sections: + - name: ansible + groups: + - name: database + technologies: + - ansible + vars: + - widget: radios + default: + foo: bar + unit: ($, GHz, GB) + type: map + values: + - foo: bar + - bar: foo + description: '' + key: key-one + name: map variable + - widget: checkbox + default: true + type: boolean + description: '' + key: key-oneb + name: checkbox variable + - widget: dropdown + required: false + default: + - bar + - foo + values: + - - foo + - bar + - - bar + - foo + unit: ($, GHz, GB) + type: array + description: something k2 + key: key-two + name: array variable + - widget: number + required: true + unit: something + type: integer + description: something k3 + key: key-three + name: required variable without default + - widget: number + required: false + type: float + description: something k3b + key: key-threeb + name: some float + - widget: dropdown + required: false + default: 20 + unit: ($, GHz, GB) + type: integer + description: something k5 + values: + - 20 + key: key-five + name: dropdown one value + - widget: radios + required: false + unit: ($, GHz, GB) + type: integer + description: something k6 + values: + - 20 + key: key-six + name: radios one value + - widget: slider_list + required: false + unit: ($, GHz, GB) + type: integer + description: something k7 + values: + - 20 + key: key-seven + name: slider list one value + - name: terraform + groups: + - name: database + technologies: + - terraform + vars: + - widget: slider_range + required: false + default: 2 + unit: ($, GHz, GB) + type: integer + description: something k1 + values: + - 1 + - 10 + key: key-eight + name: integer variable + - widget: dropdown + required: true + default: 20 + unit: ($, GHz, GB) + type: integer + description: something k2 + values: + - 10 + - 20 + - 30 + key: key-nine + name: required with default + - widget: slider_list + required: false + values: + - 1 + - 5 + unit: ($, GHz, GB) + type: integer + description: something k3 + key: key-ten + name: not required no default + - name: pipeline + groups: + - name: database + technologies: + - pipeline + vars: + - widget: auto_complete + default: t2.micro + unit: ($, GHz, GB) + type: string + description: something + values: + - t2.micro + - t2.medium + - t2.large + key: key-eleven + name: string with values and default + - widget: dropdown + required: false + unit: ($, GHz, GB) + type: integer + description: something k5 + key: key-twelve + values: + - 100 + - 200 + name: not required no default, but values + - widget: dropdown + required: false + unit: ($, GHz, GB) + type: integer + description: something k6 + key: key-thirteen + name: not required no default, but values + values: + - 10 + - 40 + - 80 + - name: dev + sections: + - name: ansible + groups: + - name: database + technologies: + - ansible + vars: + - widget: dropdown + default: + foo: bar + unit: ($, GHz, GB) + type: map + values: + - foo: bar + - bar: foo + description: something k1 + key: key-one + name: map variable + - name: extra-one + sections: + - name: ansible + groups: + - name: database + technologies: + - ansible + vars: + - widget: switch + type: boolean + description: '' + key: key-two + name: switch variable + - widget: dropdown + default: + foo: bar + unit: ($, GHz, GB) + type: map + values: + - foo: bar + - bar: foo + description: something k1 + key: key-one + name: map variable + errors: + - 'The Forms File has an invalid format: use case "use-caseX" invalid definition for variable "key-one" (key) in section "ansible" of "database": The Forms Widget has an invalid format' + - 'The Forms File has an invalid format: use case "use-caseX" invalid definition for variable "key-two" (key) in section "ansible" of "database": The Forms Widget has an invalid format' + - 'The Forms File has an invalid format: use case "use-caseX" invalid definition for variable "key-four" (key) in section "ansible" of "database": The Forms Widget has an invalid format' + - 'The Forms File has an invalid format: use case "use-caseX" invalid definition for variable "key-five" (key) in section "ansible" of "database": The Forms Widget has an invalid format' + - 'The Forms File has an invalid format: use case "default" invalid definition for variable "key-two" (key) in section "ansible" of "database": The Forms Widget has an invalid format' + - 'The Forms File has an invalid format: use case "default" - key "key-one" has been found twice' + - 'The Forms File has an invalid format: use case "default" - key "key-two" has been found twice' + - 'The Forms File has an invalid format: Forms Technology "INVALID-TECH" is unknown' + - 'The Forms File has an invalid format: use case "default" invalid definition for variable "key-two" (key) in section "ansible" of "groupX": The Forms File Branch Source has an invalid format' + schema: + $ref: '#/components/schemas/validateFormsFile_200_response' + description: The result of validating the provided configuration + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Forms + x-codegen-request-body-name: body + /organizations/{organization_canonical}/forms/values_ref: + post: + description: Returns the values from the ref + operationId: valuesRefForms + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/FormsValuesRef' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/FormsValuesRef' + description: The URL to fetch the values from + required: true + responses: + '200': + content: + application/json: + example: + data: + foo: bar + bar: foo + schema: + $ref: '#/components/schemas/createFormsConfig_200_response' + description: The result pulling the values from the url + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Forms + x-codegen-request-body-name: body + /organizations/{organization_canonical}/projects/{project_canonical}/forms/estimate: + post: + description: Estimates the Cost from the Froms Inputs + operationId: costEstimateForms + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/FormInputs' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/FormInputs' + description: The information of the filled forms for a new project. + required: true + responses: + '200': + content: + application/json: + example: + data: + prod: + usecase: + - name: some name + info: some potential info here + prior_cost: '10.544' + prior_hourly_cost: '0.01444' + planned_cost: '30.252' + planned_hourly_cost: '0.04144' + resource_estimates: + - provider: aws + type: aws_instance + address: aws_instance.example + prior_cost: '10.544' + prior_hourly_cost: '0.01444' + planned_cost: '30.252' + planned_hourly_cost: '0.04144' + components: + - label: Compute + prior: + cost: '5.00' + hourly_cost: '0.00685' + quantity: 1 + planned: + cost: '5.00' + hourly_cost: '0.00685' + quantity: 1 + - label: Storage + prior: + cost: '5.544' + hourly_cost: '0.00759' + quantity: 30 + planned: + cost: '25.252' + hourly_cost: '0.03459' + quantity: 150 + - name: some 2 + info: some potential info here + prior_cost: '10.544' + prior_hourly_cost: '0.01444' + planned_cost: '30.252' + planned_hourly_cost: '0.04144' + resource_estimates: + - provider: aws + type: aws_instance + address: aws_instance.example + prior_cost: '10.544' + prior_hourly_cost: '0.01444' + planned_cost: '30.252' + planned_hourly_cost: '0.04144' + components: + - label: Compute + prior: + cost: '5.00' + hourly_cost: '0.00685' + quantity: 1 + planned: + cost: '5.00' + hourly_cost: '0.00685' + quantity: 1 + - label: Storage + prior: + cost: '5.544' + hourly_cost: '0.00759' + quantity: 30 + planned: + cost: '25.252' + hourly_cost: '0.03459' + quantity: 150 + schema: + $ref: '#/components/schemas/createFormsConfig_200_response' + description: The result of estimating the costs of a stack. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Cost Estimation + x-codegen-request-body-name: body + /organizations/{organization_canonical}/projects/{project_canonical}/forms/quotas: + post: + description: Estimates the Quotas from the Form Inputs + operationId: quotasEstimateForms + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/FormInputs' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/FormInputs' + description: The information of the filled forms for a new project. + required: true + responses: + '200': + content: + application/json: + example: + data: + prod: + usecase: + cpu: 10 + memory: 20 + storage: 30 + usecase2: + cpu: 20 + memory: 20 + storage: 10 + dev: + usecase-dev: + cpu: 10 + memory: 20 + storage: 30 + schema: + $ref: '#/components/schemas/createFormsConfig_200_response' + description: The result of estimating the costs of a stack. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Quotas + x-codegen-request-body-name: body + /organizations/{organization_canonical}/infra_imports: + post: + description: Create a new Infra Import + operationId: createInfraImport + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/NewInfraImport' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/NewInfraImport' + description: The information of the Infra Import to create + required: true + responses: + '202': + content: {} + description: The Infra Import has been created and processing in the background + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Infra Imports + x-codegen-request-body-name: body + /organizations/{organization_canonical}/projects/{project_canonical}/import: + delete: + description: Delete the Project Import of the organization. + operationId: deleteProjectImport + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + responses: + '204': + content: {} + description: The Project Import has been deleted. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Infra Imports + get: + description: Get the Project Import of the organization. + operationId: getProjectImport + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + responses: + '200': + content: + application/json: + example: + data: + status: Importing + project_canonical: my-project-1 + service_catalog_ref: cycloidio:stack-magento + logs: The Provider1 Resource has been imported + schema: + $ref: '#/components/schemas/getProjectImport_200_response' + description: The information of the Project import process. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Infra Imports + /organizations/{organization_canonical}/projects/{project_canonical}/import/retry: + put: + description: Retry to import a Project. + operationId: retryProjectImport + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + responses: + '202': + content: {} + description: The request to retry the Project import has been accepted and processing in the background + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Infra Imports + /organizations/{organization_canonical}/service_catalogs/{service_catalog_ref}/import: + delete: + description: Delete the Stack import of the organization. + operationId: deleteServiceCatalogImport + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A Service Catalog name + in: path + name: service_catalog_ref + required: true + schema: + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+:[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + '204': + content: {} + description: The Stack import has been deleted. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Infra Imports + get: + description: Get the import of a new Stack of the organization. + operationId: getServiceCatalogImport + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A Service Catalog name + in: path + name: service_catalog_ref + required: true + schema: + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+:[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + '200': + content: + application/json: + example: + data: + status: Importing + project_canonical: my-project-1 + service_catalog_ref: cycloidio:stack-magento + logs: + - Imported Resource 1 + - Imported Resource 2 + schema: + $ref: '#/components/schemas/getProjectImport_200_response' + description: The information of the Stack import process. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Infra Imports + /organizations/{organization_canonical}/service_catalogs/{service_catalog_ref}/import/retry: + put: + description: Retry to import a Stack. + operationId: retryServiceCatalogImport + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A Service Catalog name + in: path + name: service_catalog_ref + required: true + schema: + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+:[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + '202': + content: {} + description: The request to retry the Stack import has been accepted and processing in the background + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Infra Imports + /organizations/{organization_canonical}/infra_policies: + get: + description: Return a list of infrastructure policies which matches the scope specified by the filter. + operationId: getInfraPolicies + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: The page number to request. The first page is 1. + in: query + name: page_index + schema: + default: 1 + format: uint32 + type: integer + - description: The number of items at most which the response can have. + in: query + name: page_size + schema: + default: 1000 + format: uint32 + type: integer + - description: Search by InfraPolicy's name + in: query + name: infra_policy_name + schema: + type: string + - description: Search by InfraPolicy's creation date + in: query + name: infra_policy_created_at + schema: + format: uint64 + type: integer + - description: Search by InfraPolicy's severity + in: query + name: infra_policy_severity + schema: + enum: + - critical + - warning + - advisory + type: string + - description: Search by InfraPolicy's enabled + in: query + name: infra_policy_enabled + schema: + type: boolean + - description: Search by infra policy canonical + in: query + name: infra_policy_canonical + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: | + Allows to order the list of items. Example usage: field_name:asc + in: query + name: order_by + schema: + type: string + responses: + '200': + content: + application/json: + example: + data: + - id: 1 + created_at: 1503225026 + updated_at: 1503335026 + name: My Infra Policy + description: Apply changes across my infrastructure in a safe way! + canonical: my-infra-policy + raw: allow = true {count(violation) == 0} + owner: + username: user-1 + id: 1 + given_name: Mariano + family_name: Jimenez + email: mariano.jimenez@fakeemail.com + picture_url: https://avatars2.githubusercontent.com/u/14579210 + created_at: 1503225026 + role: + id: 42 + name: standard role + description: this is the standard role + policies: + - id: 1 + code: team:create + description: this is the policy + enabled: true + schema: + $ref: '#/components/schemas/getInfraPolicies_200_response' + description: List of infrastructure policies. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Infrastructure Policies + post: + description: Create a new policy. + operationId: createInfraPolicy + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/NewInfraPolicy' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/NewInfraPolicy' + required: true + responses: + '200': + content: + application/json: + example: + data: + id: 1 + created_at: 1503225026 + updated_at: 1503335026 + name: My Infra Policy + description: Apply changes across my infrastructure in a safe way! + canonical: my-infra-policy + raw: allow = true {count(violation) == 0} + owner: + username: user-1 + id: 1 + given_name: Mariano + family_name: Jimenez + email: mariano.jimenez@fakeemail.com + picture_url: https://avatars2.githubusercontent.com/u/14579210 + created_at: 1503225026 + role: + id: 42 + name: standard role + description: this is the standard role + policies: + - id: 1 + code: team:create + description: this is the policy + enabled: true + schema: + $ref: '#/components/schemas/createInfraPolicy_200_response' + description: The new InfraPolicy created. + '411': + content: {} + description: The request has a body but it doesn't have a Content-Length header. + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Infrastructure Policies + x-codegen-request-body-name: body + /organizations/{organization_canonical}/infra_policies/{infra_policy_canonical}: + delete: + description: Delete the InfraPolicy. + operationId: deleteInfraPolicy + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: The canonical of an InfraPolicy. + in: path + name: infra_policy_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + '204': + content: {} + description: InfraPolicy has been deleted. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Infrastructure Policies + get: + description: Get the information of the InfraPolicy. + operationId: getInfraPolicy + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: The canonical of an InfraPolicy. + in: path + name: infra_policy_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + '200': + content: + application/json: + example: + data: + id: 1 + created_at: 1503225026 + updated_at: 1503335026 + name: My Infra Policy + description: Apply changes across my infrastructure in a safe way! + canonical: my-infra-policy + raw: allow = true {count(violation) == 0} + owner: + username: user-1 + id: 1 + given_name: Mariano + family_name: Jimenez + email: mariano.jimenez@fakeemail.com + picture_url: https://avatars2.githubusercontent.com/u/14579210 + created_at: 1503225026 + role: + id: 42 + name: standard role + description: this is the standard role + policies: + - id: 1 + code: team:create + description: this is the policy + enabled: true + schema: + $ref: '#/components/schemas/createInfraPolicy_200_response' + description: The information of the InfraPolicy which has the specified canonical. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Infrastructure Policies + put: + description: Update an existing InfraPolicy + operationId: updateInfraPolicy + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: The canonical of an InfraPolicy. + in: path + name: infra_policy_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/UpdateInfraPolicy' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UpdateInfraPolicy' + description: The information of the organization to update. + required: true + responses: + '200': + content: + application/json: + example: + data: + id: 1 + created_at: 1503225026 + updated_at: 1503335026 + name: My Infra Policy + description: Apply changes across my infrastructure in a safe way! + canonical: my-infra-policy + body: allow = true {count(violation) == 0} + owner: + username: user-1 + id: 1 + given_name: Mariano + family_name: Jimenez + email: mariano.jimenez@fakeemail.com + picture_url: https://avatars2.githubusercontent.com/u/14579210 + created_at: 1503225026 + role: + id: 42 + name: standard role + description: this is the standard role + policies: + - id: 1 + code: team:create + description: this is the policy + enabled: true + severity: critical + schema: + $ref: '#/components/schemas/createInfraPolicy_200_response' + description: InfraPolicy updated. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Infrastructure Policies + x-codegen-request-body-name: body + ? /organizations/{organization_canonical}/projects/{project_canonical}/environments/{environment_canonical}/validate_infra_policies + : post: + description: Check the InfraPolicies assigned to the Project and the Environment to identify if some are not respected. + operationId: validateProjectInfraPolicies + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: The environment canonical to use as part of a path + in: path + name: environment_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/TerraformPlanInput' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/TerraformPlanInput' + description: The project's attributes to check before to apply an infrastructure change. + required: true + responses: + '200': + content: + application/json: + example: + data: + criticals: + - id: 8 + created_at: 1606735667 + updated_at: 1606735667 + canonical: infrapolicy-1 + name: InfraPolicy 1 + description: This is an example + body: |- + package example + + deny[reason] { + reason := "This is a failing error example" + } + owner: + username: user-1 + id: 1 + given_name: Mariano + family_name: Jimenez + email: mariano.jimenez@fakeemail.com + picture_url: https://avatars2.githubusercontent.com/u/14579210 + created_at: 1503225026 + role: + id: 42 + name: standard role + description: this is the standard role + policies: + - id: 1 + code: team:read + description: this is the policy + severity: critical + enabled: true + reasons: + - This is a failing error example + warnings: [] + advisories: [] + schema: + $ref: '#/components/schemas/validateProjectInfraPolicies_200_response' + description: The list of the policies not respected. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Infrastructure Policies + x-codegen-request-body-name: body + /organizations/{organization_canonical}/infrastructures/aws/buckets: + get: + deprecated: true + description: Get the list of S3 buckets of the running AWS infrastructure and associated with the AWS account (credential). The parameters allow to select the scope of the request to one project of the organization. + operationId: getRunningInfraAWSBuckets + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A Credential canonical + in: query + name: credential_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A list of projects' canonical to filter from + in: query + name: project_canonical + schema: + pattern: ^[\da-z]+(?:(?:[\da-z\-._]+)?[\da-z])?$ + type: string + - allowEmptyValue: false + description: An amazon tag, represented as `key|value` and where `key` or `value` could be omitted but not both, in order to select resources which has a `key` or a `value` whatever is its counterpart. `key` nor `value` can contains the `|` character. The parameter can be specified several times in order to request resources which match with at least one of the `tag|value` pairs + explode: true + in: query + name: tag + schema: + items: + maxLength: 383 + minLength: 2 + pattern: ^(?:(?:[\w\-+=.:/@ ]+\|)|(?:\|[\w\-+=.:/@ ]+)|(?:[\w\-+=.:/@ ]+\|[\w\-+=.:/@ ]+))$ + type: string + type: array + uniqueItems: true + style: form + responses: + '200': + content: + application/json: + example: + data: + - CreationDate: 2017-03-29T05:15:27Z + Name: config-bucket-123456789101 + Tags: [] + - CreationDate: 2017-03-29T01:12:21Z + Name: data-some-log-dbm + Tags: + - Key: client + Value: Cycloid + - CreationDate: 2017-03-29T10:28:14Z + Name: dev-sdk.web.fr + Tags: [] + - CreationDate: 2017-06-19T14:57:15Z + Name: marianorajoy.es + Tags: + - Key: owner + Value: Mariano Rajoy + - CreationDate: 2017-03-29T18:01:25Z + Name: dtrump.com + Tags: [] + schema: + $ref: '#/components/schemas/getRunningInfraAWSBuckets_200_response' + description: The list of AWS S3 buckets which matches the scope specified by the filter. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Infrastructure + /organizations/{organization_canonical}/infrastructures/aws: + get: + deprecated: true + description: Get the number of resources classified by types, of the running AWS infrastructure of the organization and associated AWS account (credential). The parameters allow to select the scope of the request to one project of the organization and/or a set of type of resource. + operationId: getRunningInfraAWS + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A Credential canonical + in: query + name: credential_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A list of projects' canonical to filter from + in: query + name: project_canonical + schema: + pattern: ^[\da-z]+(?:(?:[\da-z\-._]+)?[\da-z])?$ + type: string + - allowEmptyValue: false + description: Supported AWS type of resource to query. The parameter can be specified several times in order to request for different kind of resources. + explode: true + in: query + name: resource + schema: + items: + enum: + - instances + - vpcs + - images + - security_groups + - subnets + - volumes + - snapshots + - cache_clusters + - load_balancers_v1 + - load_balancers_v2 + - db_instances + - buckets + type: string + type: array + uniqueItems: true + style: form + - allowEmptyValue: false + description: An amazon tag, represented as `key|value` and where `key` or `value` could be omitted but not both, in order to select resources which has a `key` or a `value` whatever is its counterpart. `key` nor `value` can contains the `|` character. The parameter can be specified several times in order to request resources which match with at least one of the `tag|value` pairs + explode: true + in: query + name: tag + schema: + items: + maxLength: 383 + minLength: 2 + pattern: ^(?:(?:[\w\-+=.:/@ ]+\|)|(?:\|[\w\-+=.:/@ ]+)|(?:[\w\-+=.:/@ ]+\|[\w\-+=.:/@ ]+))$ + type: string + type: array + uniqueItems: true + style: form + responses: + '200': + content: + application/json: + example: + data: + instances: + total_amount: 94875 + vpcs: + total_amount: 98 + images: + total_amount: 6 + security_groups: + total_amount: 9 + subnets: + total_amount: 31 + volumes: + total_amount: 45 + snapshots: + total_amount: 786 + load_balancers_v2: + total_amount: 4 + db_instances: + total_amount: 34 + buckets: + total_amount: 10 + schema: + $ref: '#/components/schemas/getRunningInfraAWS_200_response' + description: The number of resources classified per type which matches the scope specified by the filter. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Infrastructure + /organizations/{organization_canonical}/infrastructures/aws/db_instances: + get: + deprecated: true + description: Get the list of RDS DB instances of the running AWS infrastructure and associated with the AWS account (credential). The parameters allow to select the scope of the request to one project of the organization. + operationId: getRunningInfraAWSDBInstances + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A Credential canonical + in: query + name: credential_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A list of projects' canonical to filter from + in: query + name: project_canonical + schema: + pattern: ^[\da-z]+(?:(?:[\da-z\-._]+)?[\da-z])?$ + type: string + - description: The number of items at most which the response can have. + in: query + name: page_size + schema: + default: 1000 + format: uint32 + type: integer + - description: The token to retrieve the next page of results + in: query + name: next + schema: + minLength: 1 + type: string + - allowEmptyValue: false + description: An amazon tag, represented as `key|value` and where `key` or `value` could be omitted but not both, in order to select resources which has a `key` or a `value` whatever is its counterpart. `key` nor `value` can contains the `|` character. The parameter can be specified several times in order to request resources which match with at least one of the `tag|value` pairs + explode: true + in: query + name: tag + schema: + items: + maxLength: 383 + minLength: 2 + pattern: ^(?:(?:[\w\-+=.:/@ ]+\|)|(?:\|[\w\-+=.:/@ ]+)|(?:[\w\-+=.:/@ ]+\|[\w\-+=.:/@ ]+))$ + type: string + type: array + uniqueItems: true + style: form + responses: + '200': + content: + application/json: + example: + data: + - AllocatedStorage: 50 + AutoMinorVersionUpgrade: true + AvailabilityZone: eu-west-1b + BackupRetentionPeriod: 7 + CACertificateIdentifier: rds-ca-2015 + CopyTagsToSnapshot: false + DBInstanceArn: arn:aws:rds:eu-west-1:123456789101:db:amazon-rds-api-gateway-dev + DBInstanceClass: db.t2.small + DBInstanceIdentifier: amazon-rds-api-gateway-dev + DBInstanceStatus: available + DBName: api_gateway_dev + DBParameterGroups: + - DBParameterGroupName: rds-optimized-postgresql-amazon-dev + ParameterApplyStatus: in-sync + DBSubnetGroup: + DBSubnetGroupDescription: subnet-rds-amazon-dev + DBSubnetGroupName: subnet-rds-amazon-dev + SubnetGroupStatus: Complete + Subnets: + - SubnetAvailabilityZone: + Name: eu-west-1b + SubnetIdentifier: subnet-1ee9cf68 + SubnetStatus: Active + - SubnetAvailabilityZone: + Name: eu-west-1c + SubnetIdentifier: subnet-5ccca204 + SubnetStatus: Active + - SubnetAvailabilityZone: + Name: eu-west-1a + SubnetIdentifier: subnet-53614d37 + SubnetStatus: Active + VpcId: vpc-257d2d41 + DbInstancePort: 0 + DbiResourceId: db-LLW4DT3OHVULRQ4GLZWSJ3MOVQ + Endpoint: + Address: amazon-rds-api-gateway-dev.cwhghoaxsi70.eu-west-1.rds.amazonaws.com + HostedZoneId: Z29XKXDKYMONMX + Port: 5432 + Engine: postgres + EngineVersion: 9.4.7 + IAMDatabaseAuthenticationEnabled: false + InstanceCreateTime: 2017-12-05T18:21:34.311Z + LatestRestorableTime: 2018-02-06T11:40:39Z + LicenseModel: postgresql-license + MasterUsername: amazon + MonitoringInterval: 0 + MultiAZ: false + OptionGroupMemberships: + - OptionGroupName: default:postgres-9-4 + Status: in-sync + PendingModifiedValues: {} + PerformanceInsightsEnabled: false + PreferredBackupWindow: 02:00-04:00 + PreferredMaintenanceWindow: tue:06:00-tue:07:00 + PubliclyAccessible: false + StorageEncrypted: false + StorageType: gp2 + VpcSecurityGroups: + - Status: active + VpcSecurityGroupId: sg-64d29802 + Tags: [] + pagination: + next: '' + schema: + $ref: '#/components/schemas/getRunningInfraAWSDBInstances_200_response' + description: The list of AWS RDS DB Instances which matches the scope specified by the filter. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Infrastructure + /organizations/{organization_canonical}/infrastructures/aws/elasticache_clusters: + get: + deprecated: true + description: Get the list of Elasticache clusters of the running AWS infrastructure and associated with the AWS account (credential). The parameters allow to select the scope of the request to one project of the organization. + operationId: getRunningInfraAWSElasticacheClusters + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A Credential canonical + in: query + name: credential_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A list of projects' canonical to filter from + in: query + name: project_canonical + schema: + pattern: ^[\da-z]+(?:(?:[\da-z\-._]+)?[\da-z])?$ + type: string + - description: The number of items at most which the response can have. + in: query + name: page_size + schema: + default: 1000 + format: uint32 + type: integer + - description: The token to retrieve the next page of results + in: query + name: next + schema: + minLength: 1 + type: string + - allowEmptyValue: false + description: An amazon tag, represented as `key|value` and where `key` or `value` could be omitted but not both, in order to select resources which has a `key` or a `value` whatever is its counterpart. `key` nor `value` can contains the `|` character. The parameter can be specified several times in order to request resources which match with at least one of the `tag|value` pairs + explode: true + in: query + name: tag + schema: + items: + maxLength: 383 + minLength: 2 + pattern: ^(?:(?:[\w\-+=.:/@ ]+\|)|(?:\|[\w\-+=.:/@ ]+)|(?:[\w\-+=.:/@ ]+\|[\w\-+=.:/@ ]+))$ + type: string + type: array + uniqueItems: true + style: form + responses: + '200': + content: + application/json: + example: + data: + - AtRestEncryptionEnabled: false + AuthTokenEnabled: false + AutoMinorVersionUpgrade: true + CacheClusterCreateTime: 2015-11-23T11:24:24.677Z + CacheClusterId: cache0 + CacheClusterStatus: available + CacheNodeType: cache.t2.micro + CacheParameterGroup: + CacheParameterGroupName: default.redis2.8 + ParameterApplyStatus: in-sync + CacheSubnetGroupName: amazon-cache0-eu-we1 + ClientDownloadLandingPage: 'https://console.aws.amazon.com/elasticache/home#client-download:' + Engine: redis + EngineVersion: 2.8.23 + NumCacheNodes: 1 + PendingModifiedValues: {} + PreferredAvailabilityZone: eu-west-1a + PreferredMaintenanceWindow: tue:06:00-tue:07:00 + SecurityGroups: + - SecurityGroupId: sg-fff37b9b + Status: active + TransitEncryptionEnabled: false + Tags: + - Key: project + Value: website + - Key: client + Value: cycloid + - Key: env + Value: prod + - Key: role + Value: cache + pagination: + next: '' + schema: + $ref: '#/components/schemas/getRunningInfraAWSElasticacheClusters_200_response' + description: The list of AWS elasticache clusters which matches the scope specified by the filter. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Infrastructure + /organizations/{organization_canonical}/infrastructures/aws/images: + get: + deprecated: true + description: Get the list of images of the running AWS infrastructure and associated with the AWS account (credential). The parameters allow to select the scope of the request to one project of the organization. + operationId: getRunningInfraAWSImages + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A Credential canonical + in: query + name: credential_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A list of projects' canonical to filter from + in: query + name: project_canonical + schema: + pattern: ^[\da-z]+(?:(?:[\da-z\-._]+)?[\da-z])?$ + type: string + - allowEmptyValue: false + description: An amazon tag, represented as `key|value` and where `key` or `value` could be omitted but not both, in order to select resources which has a `key` or a `value` whatever is its counterpart. `key` nor `value` can contains the `|` character. The parameter can be specified several times in order to request resources which match with at least one of the `tag|value` pairs + explode: true + in: query + name: tag + schema: + items: + maxLength: 383 + minLength: 2 + pattern: ^(?:(?:[\w\-+=.:/@ ]+\|)|(?:\|[\w\-+=.:/@ ]+)|(?:[\w\-+=.:/@ ]+\|[\w\-+=.:/@ ]+))$ + type: string + type: array + uniqueItems: true + style: form + responses: + '200': + content: + application/json: + example: + data: + - Architecture: x86_64 + BlockDeviceMappings: + - DeviceName: /dev/xvda + Ebs: + DeleteOnTermination: true + Encrypted: false + SnapshotId: snap-e978d105 + VolumeSize: 8 + VolumeType: standard + CreationDate: 2016-05-24T21:14:11.000Z + Description: hashicorp vault + Hypervisor: xen + ImageId: ami-01d94872 + ImageLocation: 123456789101/vault + ImageType: machine + Name: vault + OwnerId: '123456789101' + Public: false + RootDeviceName: /dev/xvda + RootDeviceType: ebs + State: available + Tags: [] + VirtualizationType: hvm + - Architecture: x86_64 + BlockDeviceMappings: + - DeviceName: /dev/xvda + Ebs: + DeleteOnTermination: true + Encrypted: false + SnapshotId: snap-0d4d246f98692cab9 + VolumeSize: 8 + VolumeType: gp2 + CreationDate: 2017-09-15T17:45:50.000Z + Hypervisor: xen + ImageId: ami-34995b4d + ImageLocation: 123456789101/pipeline_demo 1505497225 + ImageType: machine + Name: pipeline_demo 1505497225 + OwnerId: '123456789101' + Public: false + RootDeviceName: /dev/xvda + RootDeviceType: ebs + SriovNetSupport: simple + State: available + Tags: + - Key: client + Value: cycloid + - Key: env + Value: demo + - Key: Name + Value: demo-pipeline-1505497225 + - Key: role + Value: front + - Key: project + Value: demo-website + VirtualizationType: hvm + schema: + $ref: '#/components/schemas/getRunningInfraAWSImages_200_response' + description: The list of AWS images which matches the scope specified by the filter. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Infrastructure + /organizations/{organization_canonical}/infrastructures/aws/instances: + get: + deprecated: true + description: Get the list of instances of the running AWS infrastructure and associated with the AWS account (credential). The parameters allow to select the scope of the request to one project of the organization. + operationId: getRunningInfraAWSInstances + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A Credential canonical + in: query + name: credential_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A list of projects' canonical to filter from + in: query + name: project_canonical + schema: + pattern: ^[\da-z]+(?:(?:[\da-z\-._]+)?[\da-z])?$ + type: string + - description: The number of items at most which the response can have. + in: query + name: page_size + schema: + default: 1000 + format: uint32 + type: integer + - description: The token to retrieve the next page of results + in: query + name: next + schema: + minLength: 1 + type: string + - allowEmptyValue: false + description: An amazon tag, represented as `key|value` and where `key` or `value` could be omitted but not both, in order to select resources which has a `key` or a `value` whatever is its counterpart. `key` nor `value` can contains the `|` character. The parameter can be specified several times in order to request resources which match with at least one of the `tag|value` pairs + explode: true + in: query + name: tag + schema: + items: + maxLength: 383 + minLength: 2 + pattern: ^(?:(?:[\w\-+=.:/@ ]+\|)|(?:\|[\w\-+=.:/@ ]+)|(?:[\w\-+=.:/@ ]+\|[\w\-+=.:/@ ]+))$ + type: string + type: array + uniqueItems: true + style: form + responses: + '200': + content: + application/json: + example: + data: + - AmiLaunchIndex: 0 + Architecture: x86_64 + BlockDeviceMappings: + - DeviceName: /dev/xvda + Ebs: + AttachTime: 2016-09-02T08:07:12Z + DeleteOnTermination: true + Status: attached + VolumeId: vol-c888994f + ClientToken: '' + EbsOptimized: false + Hypervisor: xen + IamInstanceProfile: + Arn: arn:aws:iam::123456789101:instance-profile/profile-front-website-prod + Id: AIPAJFKQFTYM7KEEE2SWU + ImageId: ami-e079f893 + InstanceId: i-2000dcad + InstanceType: t2.micro + KeyName: cycloid + LaunchTime: 2016-09-19T07:11:18Z + Monitoring: + State: disabled + NetworkInterfaces: + - Association: + IpOwnerId: amazon + PublicDnsName: ec2-54-192-0-1.eu-west-1.compute.amazonaws.com + PublicIp: 54.192.0.1 + Attachment: + AttachTime: 2016-09-02T08:07:11Z + AttachmentId: eni-attach-10d509cf + DeleteOnTermination: true + DeviceIndex: 0 + Status: attached + Description: '' + Groups: + - GroupId: sg-64565003 + GroupName: website-front-prod + - GroupId: sg-3543334e + GroupName: allow_metrics + - GroupId: sg-c1db70a6 + GroupName: allow_bastion + MacAddress: 06:9a:1a:77:6c:db + NetworkInterfaceId: eni-b1f859fd + OwnerId: '123456789101' + PrivateDnsName: ip-10-42-0-2.eu-west-1.compute.internal + PrivateIpAddress: 10.42.0.2 + PrivateIpAddresses: + - Association: + IpOwnerId: amazon + PublicDnsName: ec2-54-192-0-1.eu-west-1.compute.amazonaws.com + PublicIp: 54.192.0.1 + Primary: true + PrivateDnsName: ip-10-42-0-2.eu-west-1.compute.internal + PrivateIpAddress: 10.42.0.2 + SourceDestCheck: true + Status: in-use + SubnetId: subnet-6b5a8f1d + VpcId: vpc-21fb3e45 + Placement: + AvailabilityZone: eu-west-1b + GroupName: '' + Tenancy: default + PrivateDnsName: ip-10-42-0-2.eu-west-1.compute.internal + PrivateIpAddress: 10.42.0.2 + PublicDnsName: ec2-54-192-0-1.eu-west-1.compute.amazonaws.com + PublicIpAddress: 54.192.0.1 + RootDeviceName: /dev/xvda + RootDeviceType: ebs + SecurityGroups: + - GroupId: sg-64565003 + GroupName: website-front-prod + - GroupId: sg-3543334e + GroupName: allow_metrics + - GroupId: sg-c1db70a6 + GroupName: allow_bastion + SourceDestCheck: true + State: + Code: 16 + Name: running + StateReason: + Code: Client.UserInitiatedShutdown + Message: 'Client.UserInitiatedShutdown: User initiated shutdown' + StateTransitionReason: '' + SubnetId: subnet-6b5a8f1d + Tags: + - Key: project + Value: website + - Key: client + Value: cycloid + - Key: Name + Value: CYCLOID-WEBSITE-FRONT1-EU-WE1-PROD + - Key: env + Value: prod + - Key: role + Value: front + VirtualizationType: hvm + VpcId: vpc-21fb3e45 + pagination: + next: '' + schema: + $ref: '#/components/schemas/getRunningInfraAWSInstances_200_response' + description: The list of AWS instances which matches the scope specified by the filter. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Infrastructure + /organizations/{organization_canonical}/infrastructures/aws/load_balancers_v1: + get: + deprecated: true + description: Get the list of load balancers (ELB) of the running AWS infrastructure and associated with the AWS account (credential). The parameters allow to select the scope of the request to one project of the organization. + operationId: getRunningInfraAWSLoadBalancersV1 + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A Credential canonical + in: query + name: credential_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A list of projects' canonical to filter from + in: query + name: project_canonical + schema: + pattern: ^[\da-z]+(?:(?:[\da-z\-._]+)?[\da-z])?$ + type: string + - description: The number of items at most which the response can have. + in: query + name: page_size + schema: + default: 1000 + format: uint32 + type: integer + - description: The token to retrieve the next page of results + in: query + name: next + schema: + minLength: 1 + type: string + - allowEmptyValue: false + description: An amazon tag, represented as `key|value` and where `key` or `value` could be omitted but not both, in order to select resources which has a `key` or a `value` whatever is its counterpart. `key` nor `value` can contains the `|` character. The parameter can be specified several times in order to request resources which match with at least one of the `tag|value` pairs + explode: true + in: query + name: tag + schema: + items: + maxLength: 383 + minLength: 2 + pattern: ^(?:(?:[\w\-+=.:/@ ]+\|)|(?:\|[\w\-+=.:/@ ]+)|(?:[\w\-+=.:/@ ]+\|[\w\-+=.:/@ ]+))$ + type: string + type: array + uniqueItems: true + style: form + responses: + '200': + content: + application/json: + example: + data: + - AvailabilityZones: + - eu-west-1b + - eu-west-1c + - eu-west-1a + CanonicalHostedZoneName: WEBSITE-FRONT-PROD-1234567890.eu-west-1.elb.amazonaws.com + CanonicalHostedZoneNameID: Z32O12XQLNTSW2 + CreatedTime: 2016-09-02T08:07:35.52Z + DNSName: WEBSITE-FRONT-PROD-1234567890.eu-west-1.elb.amazonaws.com + HealthCheck: + HealthyThreshold: 2 + Interval: 30 + Target: HTTP:80/ + Timeout: 20 + UnhealthyThreshold: 2 + Instances: + - InstanceId: i-2000dcdd + - InstanceId: i-911b05af + ListenerDescriptions: + - Listener: + InstancePort: 80 + InstanceProtocol: HTTP + LoadBalancerPort: 80 + Protocol: HTTP + - Listener: + InstancePort: 80 + InstanceProtocol: HTTP + LoadBalancerPort: 443 + Protocol: HTTPS + SSLCertificateId: arn:aws:iam::123456789101:server-certificate/cloudfront/example + PolicyNames: + - website-front-prod + - ELBSecurityPolicy-2016-08 + LoadBalancerName: WEBSITE-FRONT-PROD + Policies: + LBCookieStickinessPolicies: + - CookieExpirationPeriod: 3600 + PolicyName: website-front-prod + OtherPolicies: + - ELBSecurityPolicy-2016-08 + Scheme: internet-facing + SecurityGroups: + - sg-9c494ffb + SourceSecurityGroup: + GroupName: website-elb-front-prod + OwnerAlias: '123456789101' + Subnets: + - subnet-550fac31 + - subnet-6b5a8f1d + - subnet-b95dbde1 + VPCId: vpc-21fb3e45 + Tags: + - Key: client + Value: cycloid + - AvailabilityZones: + - eu-west-1b + - eu-west-1c + - eu-west-1a + CanonicalHostedZoneName: WEBSITE-FRONT-PREPROD-1234567890.eu-west-1.elb.amazonaws.com + CanonicalHostedZoneNameID: Z32O12XQLNTSW2 + CreatedTime: 2016-09-02T08:07:35.91Z + DNSName: WEBSITE-FRONT-PREPROD-1234567890.eu-west-1.elb.amazonaws.com + HealthCheck: + HealthyThreshold: 2 + Interval: 30 + Target: HTTP:80/ + Timeout: 20 + UnhealthyThreshold: 2 + Instances: + - InstanceId: i-ab00dc26 + - InstanceId: i-9ec9a815 + ListenerDescriptions: + - Listener: + InstancePort: 80 + InstanceProtocol: HTTP + LoadBalancerPort: 80 + Protocol: HTTP + - Listener: + InstancePort: 80 + InstanceProtocol: HTTP + LoadBalancerPort: 443 + Protocol: HTTPS + SSLCertificateId: arn:aws:iam::123456789101:server-certificate/cloudfront/example + PolicyNames: + - website-front-preprod + - ELBSecurityPolicy-2016-08 + LoadBalancerName: WEBSITE-FRONT-PREPROD + Policies: + LBCookieStickinessPolicies: + - CookieExpirationPeriod: 3600 + PolicyName: AWSConsole-LBCookieStickinessPolicy-WEBSITE-FRONT-PREPROD-1473338142315 + - CookieExpirationPeriod: 3600 + PolicyName: AWSConsole-LBCookieStickinessPolicy-WEBSITE-FRONT-PREPROD-1473337367977 + - CookieExpirationPeriod: 3600 + PolicyName: website-front-preprod + - CookieExpirationPeriod: 3600 + PolicyName: AWSConsole-LBCookieStickinessPolicy-WEBSITE-FRONT-PREPROD-1473337375883 + OtherPolicies: + - ELBSecurityPolicy-2016-08 + Scheme: internet-facing + SecurityGroups: + - sg-9b494ffc + SourceSecurityGroup: + GroupName: website-elb-front-preprod + OwnerAlias: '123456789101' + Subnets: + - subnet-550fac31 + - subnet-6b5a8f1d + - subnet-b95dbde1 + VPCId: vpc-21fb3e45 + Tags: [] + pagination: + next: '' + schema: + $ref: '#/components/schemas/getRunningInfraAWSLoadBalancersV1_200_response' + description: The list of AWS load balancers (ELB) which matches the scope specified by the filter. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Infrastructure + /organizations/{organization_canonical}/infrastructures/aws/load_balancers_v2: + get: + deprecated: true + description: Get the list of load balancers (ELB v2 or a.k.a ALB) of the running AWS infrastructure and associated with the AWS account (credential). The parameters allow to select the scope of the request to one project of the organization. + operationId: getRunningInfraAWSLoadBalancersV2 + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A Credential canonical + in: query + name: credential_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A list of projects' canonical to filter from + in: query + name: project_canonical + schema: + pattern: ^[\da-z]+(?:(?:[\da-z\-._]+)?[\da-z])?$ + type: string + - description: The number of items at most which the response can have. + in: query + name: page_size + schema: + default: 1000 + format: uint32 + type: integer + - description: The token to retrieve the next page of results + in: query + name: next + schema: + minLength: 1 + type: string + - allowEmptyValue: false + description: An amazon tag, represented as `key|value` and where `key` or `value` could be omitted but not both, in order to select resources which has a `key` or a `value` whatever is its counterpart. `key` nor `value` can contains the `|` character. The parameter can be specified several times in order to request resources which match with at least one of the `tag|value` pairs + explode: true + in: query + name: tag + schema: + items: + maxLength: 383 + minLength: 2 + pattern: ^(?:(?:[\w\-+=.:/@ ]+\|)|(?:\|[\w\-+=.:/@ ]+)|(?:[\w\-+=.:/@ ]+\|[\w\-+=.:/@ ]+))$ + type: string + type: array + uniqueItems: true + style: form + responses: + '200': + content: + application/json: + example: + data: + - AvailabilityZones: + - SubnetId: subnet-225f3155 + ZoneName: eu-west-1b + - SubnetId: subnet-74f1712d + ZoneName: eu-west-1c + - SubnetId: subnet-cd793fa8 + ZoneName: eu-west-1a + CanonicalHostedZoneId: Z32O12XQLNTSW2 + CreatedTime: 2016-12-14T15:32:58.83Z + DNSName: alb-amazon-front-prex-1234567890.eu-west-1.elb.amazonaws.com + IpAddressType: ipv4 + LoadBalancerArn: arn:aws:elasticloadbalancing:eu-west-1:123456789101:loadbalancer/app/alb-amazon-front-prex/f81f78ed3ec382cf + LoadBalancerName: alb-amazon-front-prex + Scheme: internet-facing + SecurityGroups: + - sg-4c10e028 + State: + Code: active + Type: application + VpcId: vpc-315ed454 + Tags: [] + - AvailabilityZones: + - SubnetId: subnet-3ba8a072 + ZoneName: eu-west-1b + - SubnetId: subnet-45d1d622 + ZoneName: eu-west-1a + - SubnetId: subnet-6b034030 + ZoneName: eu-west-1c + CanonicalHostedZoneId: Z32O12XQLNTSW2 + CreatedTime: 2017-12-19T09:12:39.84Z + DNSName: amazon-apicache-staging-1234567890.eu-west-1.elb.amazonaws.com + IpAddressType: ipv4 + LoadBalancerArn: arn:aws:elasticloadbalancing:eu-west-1:123456789101:loadbalancer/app/amazon-apicache-staging/f6404ce290fc3434 + LoadBalancerName: amazon-apicache-staging + Scheme: internet-facing + SecurityGroups: + - sg-02510079 + State: + Code: active + Type: application + VpcId: vpc-d7d3cdb0 + Tags: + - Key: client + Value: cycloid + - AvailabilityZones: + - SubnetId: subnet-1fe9cf69 + ZoneName: eu-west-1b + - SubnetId: subnet-5e614d3a + ZoneName: eu-west-1a + - SubnetId: subnet-5ecca206 + ZoneName: eu-west-1c + CanonicalHostedZoneId: Z32O12XQLNTSW2 + CreatedTime: 2017-12-19T17:08:25.2Z + DNSName: amazon-apicache-dev-1234567890.eu-west-1.elb.amazonaws.com + IpAddressType: ipv4 + LoadBalancerArn: arn:aws:elasticloadbalancing:eu-west-1:123456789101:loadbalancer/app/amazon-apicache-dev/9f76887ef888cf4a + LoadBalancerName: amazon-apicache-dev + Scheme: internet-facing + SecurityGroups: + - sg-3980d042 + State: + Code: active + Type: application + VpcId: vpc-257d2d41 + Tags: [] + pagination: + next: '' + schema: + $ref: '#/components/schemas/getRunningInfraAWSLoadBalancersV2_200_response' + description: The list of AWS load balancers (ELB v2 or a.k.a ALB) which matches the scope specified by the filter. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Infrastructure + /organizations/{organization_canonical}/infrastructures/aws/security_groups: + get: + deprecated: true + description: Get the list of security groups of the running AWS infrastructure and associated with the AWS account (credential). The parameters allow to select the scope of the request to one project of the organization. + operationId: getRunningInfraAWSSecurityGroups + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A Credential canonical + in: query + name: credential_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A list of projects' canonical to filter from + in: query + name: project_canonical + schema: + pattern: ^[\da-z]+(?:(?:[\da-z\-._]+)?[\da-z])?$ + type: string + - description: The number of items at most which the response can have. + in: query + name: page_size + schema: + default: 1000 + format: uint32 + type: integer + - description: The token to retrieve the next page of results + in: query + name: next + schema: + minLength: 1 + type: string + - allowEmptyValue: false + description: An amazon tag, represented as `key|value` and where `key` or `value` could be omitted but not both, in order to select resources which has a `key` or a `value` whatever is its counterpart. `key` nor `value` can contains the `|` character. The parameter can be specified several times in order to request resources which match with at least one of the `tag|value` pairs + explode: true + in: query + name: tag + schema: + items: + maxLength: 383 + minLength: 2 + pattern: ^(?:(?:[\w\-+=.:/@ ]+\|)|(?:\|[\w\-+=.:/@ ]+)|(?:[\w\-+=.:/@ ]+\|[\w\-+=.:/@ ]+))$ + type: string + type: array + uniqueItems: true + style: form + responses: + '200': + content: + application/json: + example: + data: + - Description: Allow metrics server to collect metrics + GroupId: sg-35c7b54e + GroupName: test_allow_metrics + IpPermissions: + - FromPort: 9100 + IpProtocol: tcp + ToPort: 9100 + UserIdGroupPairs: + - GroupId: sg-cada71ad + PeeringStatus: active + UserId: '123456789101' + VpcId: vpc-21fb3e45 + VpcPeeringConnectionId: pcx-ab75ccc2 + IpPermissionsEgress: + - IpProtocol: '-1' + IpRanges: + - CidrIp: 0.0.0.0/0 + OwnerId: '123456789101' + Tags: + - Key: project + Value: infra + - Key: Name + Value: allow-metrics + - Key: client + Value: cycloid + VpcId: vpc-0296ad66 + pagination: + next: '' + schema: + $ref: '#/components/schemas/getRunningInfraAWSSecurityGroups_200_response' + description: The list of AWS security groups which matches the scope specified by the filter. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Infrastructure + /organizations/{organization_canonical}/infrastructures/aws/snapshots: + get: + deprecated: true + description: Get the list of snapshots of the running AWS infrastructure and associated with the AWS account (credential). The parameters allow to select the scope of the request to one project of the organization. + operationId: getRunningInfraAWSSnapshots + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A Credential canonical + in: query + name: credential_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A list of projects' canonical to filter from + in: query + name: project_canonical + schema: + pattern: ^[\da-z]+(?:(?:[\da-z\-._]+)?[\da-z])?$ + type: string + - description: The number of items at most which the response can have. + in: query + name: page_size + schema: + default: 1000 + format: uint32 + type: integer + - description: The token to retrieve the next page of results + in: query + name: next + schema: + minLength: 1 + type: string + - allowEmptyValue: false + description: An amazon tag, represented as `key|value` and where `key` or `value` could be omitted but not both, in order to select resources which has a `key` or a `value` whatever is its counterpart. `key` nor `value` can contains the `|` character. The parameter can be specified several times in order to request resources which match with at least one of the `tag|value` pairs + explode: true + in: query + name: tag + schema: + items: + maxLength: 383 + minLength: 2 + pattern: ^(?:(?:[\w\-+=.:/@ ]+\|)|(?:\|[\w\-+=.:/@ ]+)|(?:[\w\-+=.:/@ ]+\|[\w\-+=.:/@ ]+))$ + type: string + type: array + uniqueItems: true + style: form + responses: + '200': + content: + application/json: + example: + data: + - Description: Created by CreateImage(i-7c6ea6bc) for ami-67affc14 from vol-fadc527c + Encrypted: false + OwnerId: '123456789101' + Progress: 100% + SnapshotId: snap-f4c73492 + StartTime: 2016-11-17T16:17:18Z + State: completed + Tags: [] + VolumeId: vol-fadc527c + VolumeSize: 8 + - Description: Created by CreateImage(i-78a845ee) for ami-9d5a09ee from vol-73d82bc3 + Encrypted: false + OwnerId: '123456789101' + Progress: 100% + SnapshotId: snap-94f92ff2 + StartTime: 2016-11-16T16:46:39Z + State: completed + Tags: [] + VolumeId: vol-73d82bc3 + VolumeSize: 8 + pagination: + next: '' + schema: + $ref: '#/components/schemas/getRunningInfraAWSSnapshots_200_response' + description: The list of AWS snapshots which matches the scope specified by the filter. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Infrastructure + /organizations/{organization_canonical}/infrastructures/aws/subnets: + get: + deprecated: true + description: Get the list of subnets of the running AWS infrastructure and associated with the AWS account (credential). The parameters allow to select the scope of the request to one project of the organization. + operationId: getRunningInfraAWSSubnets + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A Credential canonical + in: query + name: credential_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A list of projects' canonical to filter from + in: query + name: project_canonical + schema: + pattern: ^[\da-z]+(?:(?:[\da-z\-._]+)?[\da-z])?$ + type: string + - allowEmptyValue: false + description: An amazon tag, represented as `key|value` and where `key` or `value` could be omitted but not both, in order to select resources which has a `key` or a `value` whatever is its counterpart. `key` nor `value` can contains the `|` character. The parameter can be specified several times in order to request resources which match with at least one of the `tag|value` pairs + explode: true + in: query + name: tag + schema: + items: + maxLength: 383 + minLength: 2 + pattern: ^(?:(?:[\w\-+=.:/@ ]+\|)|(?:\|[\w\-+=.:/@ ]+)|(?:[\w\-+=.:/@ ]+\|[\w\-+=.:/@ ]+))$ + type: string + type: array + uniqueItems: true + style: form + responses: + '200': + content: + application/json: + example: + data: + - AssignIpv6AddressOnCreation: false + AvailabilityZone: eu-west-1b + AvailableIpAddressCount: 251 + CidrBlock: 10.50.3.0/24 + DefaultForAz: false + MapPublicIpOnLaunch: false + State: available + SubnetId: subnet-373f3241 + Tags: + - Key: client + Value: cycloid + - Key: Name + Value: private-subnet-eu-west-1b + VpcId: vpc-0296ad66 + - AssignIpv6AddressOnCreation: false + AvailabilityZone: eu-west-1a + AvailableIpAddressCount: 251 + CidrBlock: 10.50.1.0/24 + DefaultForAz: false + MapPublicIpOnLaunch: false + State: available + SubnetId: subnet-6e131c0a + Tags: + - Key: client + Value: cycloid + - Key: Name + Value: private-subnet-eu-west-1a + VpcId: vpc-0296ad66 + - AssignIpv6AddressOnCreation: false + AvailabilityZone: eu-west-1a + AvailableIpAddressCount: 251 + CidrBlock: 10.51.1.0/24 + DefaultForAz: false + MapPublicIpOnLaunch: false + State: available + SubnetId: subnet-76131c12 + Tags: + - Key: client + Value: cycloid + - Key: Name + Value: private-subnet-eu-west-1a + VpcId: vpc-0c96ad68 + - AssignIpv6AddressOnCreation: false + AvailabilityZone: eu-west-1c + AvailableIpAddressCount: 251 + CidrBlock: 10.42.0.0/24 + DefaultForAz: false + MapPublicIpOnLaunch: true + State: available + SubnetId: subnet-b95dbde1 + Tags: + - Key: client + Value: cycloid + - Key: Name + Value: public-subnet-eu-west-1c + VpcId: vpc-21fb3e45 + schema: + $ref: '#/components/schemas/getRunningInfraAWSSubnets_200_response' + description: The list of AWS subnets instances which matches the scope specified by the filter. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Infrastructure + /organizations/{organization_canonical}/infrastructures/aws/volumes: + get: + deprecated: true + description: Get the list of volumes of the running AWS infrastructure and associated with the AWS account (credential). The parameters allow to select the scope of the request to one project of the organization. + operationId: getRunningInfraAWSVolumes + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A Credential canonical + in: query + name: credential_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A list of projects' canonical to filter from + in: query + name: project_canonical + schema: + pattern: ^[\da-z]+(?:(?:[\da-z\-._]+)?[\da-z])?$ + type: string + - description: The number of items at most which the response can have. + in: query + name: page_size + schema: + default: 1000 + format: uint32 + type: integer + - description: The token to retrieve the next page of results + in: query + name: next + schema: + minLength: 1 + type: string + - allowEmptyValue: false + description: An amazon tag, represented as `key|value` and where `key` or `value` could be omitted but not both, in order to select resources which has a `key` or a `value` whatever is its counterpart. `key` nor `value` can contains the `|` character. The parameter can be specified several times in order to request resources which match with at least one of the `tag|value` pairs + explode: true + in: query + name: tag + schema: + items: + maxLength: 383 + minLength: 2 + pattern: ^(?:(?:[\w\-+=.:/@ ]+\|)|(?:\|[\w\-+=.:/@ ]+)|(?:[\w\-+=.:/@ ]+\|[\w\-+=.:/@ ]+))$ + type: string + type: array + uniqueItems: true + style: form + responses: + '200': + content: + application/json: + example: + data: + - Attachments: + - AttachTime: 2017-04-26T09:31:12Z + DeleteOnTermination: false + Device: /dev/xvdf + InstanceId: i-02e0848c23c9cf89d + State: attached + VolumeId: vol-0e976363ad5f4f523 + AvailabilityZone: eu-west-1c + CreateTime: 2017-04-26T09:30:51.516Z + Encrypted: false + Size: 10 + SnapshotId: '' + State: in-use + Tags: + - Key: Name + Value: cycloid-kubernetes-etcd2-eu-we1-prod + VolumeId: vol-0e976363ad5f4f523 + VolumeType: standard + - Attachments: + - AttachTime: 2016-09-02T08:07:12Z + DeleteOnTermination: true + Device: /dev/xvda + InstanceId: i-2000dcad + State: attached + VolumeId: vol-c888994f + AvailabilityZone: eu-west-1b + CreateTime: 2016-09-02T08:07:12.162Z + Encrypted: false + Size: 10 + SnapshotId: snap-de88bcce + State: in-use + Tags: [] + VolumeId: vol-c888994f + VolumeType: standard + - Attachments: + - AttachTime: 2016-09-02T08:07:12Z + DeleteOnTermination: true + Device: /dev/xvda + InstanceId: i-ab00dc26 + State: attached + VolumeId: vol-01889986 + AvailabilityZone: eu-west-1b + CreateTime: 2016-09-02T08:07:12.887Z + Encrypted: false + Size: 10 + SnapshotId: snap-de88bcce + State: in-use + Tags: [] + VolumeId: vol-01889986 + VolumeType: standard + pagination: + next: '' + schema: + $ref: '#/components/schemas/getRunningInfraAWSVolumes_200_response' + description: The list of AWS volumes which matches the scope specified by the filter. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Infrastructure + /organizations/{organization_canonical}/infrastructures/aws/vpcs: + get: + deprecated: true + description: Get the list of VPCs of the running AWS infrastructure and associated with the AWS account (credential). The parameters allow to select the scope of the request to one project of the organization. + operationId: getRunningInfraAWSVPCs + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A Credential canonical + in: query + name: credential_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A list of projects' canonical to filter from + in: query + name: project_canonical + schema: + pattern: ^[\da-z]+(?:(?:[\da-z\-._]+)?[\da-z])?$ + type: string + - allowEmptyValue: false + description: An amazon tag, represented as `key|value` and where `key` or `value` could be omitted but not both, in order to select resources which has a `key` or a `value` whatever is its counterpart. `key` nor `value` can contains the `|` character. The parameter can be specified several times in order to request resources which match with at least one of the `tag|value` pairs + explode: true + in: query + name: tag + schema: + items: + maxLength: 383 + minLength: 2 + pattern: ^(?:(?:[\w\-+=.:/@ ]+\|)|(?:\|[\w\-+=.:/@ ]+)|(?:[\w\-+=.:/@ ]+\|[\w\-+=.:/@ ]+))$ + type: string + type: array + uniqueItems: true + style: form + responses: + '200': + content: + application/json: + example: + data: + - CidrBlock: 172.31.0.0/16 + CidrBlockAssociationSet: + - AssociationId: vpc-cidr-assoc-5bd62d32 + CidrBlock: 172.31.0.0/16 + CidrBlockState: + State: associated + DhcpOptionsId: dopt-2e748c47 + InstanceTenancy: default + IsDefault: true + State: available + Tags: [] + VpcId: vpc-462bd42f + schema: + $ref: '#/components/schemas/getRunningInfraAWSVPCs_200_response' + description: The list of AWS VPCs which matches the scope specified by the filter. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Infrastructure + /inventory: + get: + description: Get the state + operationId: getState + parameters: + - description: Token with the information about state and credentials. + in: query + name: jwt + required: true + schema: + type: string + responses: + '200': + content: + application/json: + example: + data: + terraform version: 0.12.28 + version: 1 + serial: 1 + lineage: 2f9ab173-9fc7-965b-c17d-2e43868f14cf + resources: + - id: 1 + provider: aws + type: aws_instance + name: front + module: module.kapsule + instances: + attributes: + id: sg-0e74bbe876eba7e6f + ingress: + cidr_blocks: [] + description: '' + from_port: 80 + ipv6_cidr_blocks: [] + prefix_list_ids: [] + protocol: tcp + security_groups: + - sg-0cfe32960213dea69 + self: false + to_port: 80 + custom_attributes: + custom_att: sg-0e74bbe876eba7e6f + outputs: + alb_front_dns_name: + value: cycloidio-website-front-prod-119239496.eu-west-1.elb.amazonaws.com + type: string + schema: + $ref: '#/components/schemas/getState_200_response' + description: Get the state of an organization + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + security: [] + tags: + - Organization Inventory + post: + description: Create or update an Inventory State + operationId: createOrUpdateState + parameters: + - description: Token with the information about state and credentials. + in: query + name: jwt + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + type: object + description: The information of the Inventory new data + required: true + responses: + '204': + content: {} + description: Success update + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '411': + content: {} + description: The request has a body but it doesn't have a Content-Length header. + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '423': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The operation couldn't be executed or completed because the state is locked. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + security: [] + tags: + - Organization Inventory + x-codegen-request-body-name: body + /organizations/{organization_canonical}/inventory: + get: + description: List the inventory resources + operationId: listInventoryResources + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + '200': + content: + application/json: + example: + data: + - id: 1 + provider: aws + type: aws_instance + name: front + module: module.kapsule + attributes: + id: sg-0e74bbe876eba7e6f + ingress: + cidr_blocks: [] + description: '' + from_port: 80 + ipv6_cidr_blocks: [] + prefix_list_ids: [] + protocol: tcp + security_groups: + - sg-0cfe32960213dea69 + self: false + to_port: 80 + custom_attributes: + custom_att: sg-0e74bbe876eba7e6f + filters: + types: + - aws_instance + schema: + $ref: '#/components/schemas/listInventoryResources_200_response' + description: List the Inventory Resources + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Inventory + /organizations/{organization_canonical}/inventory/resources: + post: + description: Create an Inventory Resource + operationId: createInventoryResource + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/NewInventoryResource' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/NewInventoryResource' + description: The information of the Inventory new resource data + required: true + responses: + '204': + content: {} + description: Resource Created + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Inventory + x-codegen-request-body-name: body + /organizations/{organization_canonical}/inventory/resource_types: + get: + description: List Resource Types + operationId: listResourceTypes + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: Provider of Inventory Resource + in: query + name: resources_provider + required: true + schema: + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/getCloudCostManagementTags_200_response' + description: Get Resource Types + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Inventory + /organizations/{organization_canonical}/inventory/resource_labels: + get: + description: List Resource Labels + operationId: listResourceLabels + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/listResourceLabels_200_response' + description: Get Resource Labels + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Inventory + /inventory/lock: + delete: + description: unlocks an State of Inventory + operationId: unlockState + parameters: + - description: Token with the information about state and credentials. + in: query + name: jwt + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/StateLock' + description: The information of the Inventory new data + required: true + responses: + '204': + content: {} + description: Unlocking the Status of an Organization Status Inventory Item + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + security: [] + tags: + - Organization Inventory + x-codegen-request-body-name: body + post: + description: Locks an Inventory State + operationId: lockState + parameters: + - description: Token with the information about state and credentials. + in: query + name: jwt + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/StateLock' + description: The information of the Inventory new data + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/lockState_200_response' + description: Lock ID of the Organization Inventory State + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '411': + content: {} + description: The request has a body but it doesn't have a Content-Length header. + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + security: [] + tags: + - Organization Inventory + x-codegen-request-body-name: body + /organizations/{organization_canonical}/inventory/resources/{inventory_resource_id}: + delete: + description: Delete an Inventory Resource + operationId: deleteInventoryResource + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: Inventory Resource ID + in: path + name: inventory_resource_id + required: true + schema: + format: uint32 + type: integer + responses: + '204': + content: {} + description: Inventory Resource deleted + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Inventory + get: + description: Get the inventory resource by the ID + operationId: getInventoryResource + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: Inventory Resource ID + in: path + name: inventory_resource_id + required: true + schema: + format: uint32 + type: integer + responses: + '200': + content: + application/json: + example: + id: 1 + provider: aws + type: aws_instance + name: front + module: module.kapsule + attributes: + id: sg-0e74bbe876eba7e6f + ingress: + cidr_blocks: [] + description: '' + from_port: 80 + ipv6_cidr_blocks: [] + prefix_list_ids: [] + protocol: tcp + security_groups: + - sg-0cfe32960213dea69 + self: false + to_port: 80 + custom_attributes: + custom_att: sg-0e74bbe876eba7e6f + schema: + $ref: '#/components/schemas/getInventoryResource_200_response' + description: Resource with the given ID + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Inventory + put: + description: Create an Inventory Resource + operationId: updateInventoryResource + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: Inventory Resource ID + in: path + name: inventory_resource_id + required: true + schema: + format: uint32 + type: integer + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/NewInventoryResource' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/NewInventoryResource' + description: The information of the Inventory new data + required: true + responses: + '200': + content: + application/json: + example: + data: + id: 1 + provider: aws + type: aws_instance + name: front + module: module.kapsule + attributes: + id: sg-0e74bbe876eba7e6f + ingress: + cidr_blocks: [] + description: '' + from_port: 80 + ipv6_cidr_blocks: [] + prefix_list_ids: [] + protocol: tcp + security_groups: + - sg-0cfe32960213dea69 + self: false + to_port: 80 + custom_attributes: + custom_att: sg-0e74bbe876eba7e6f + schema: + $ref: '#/components/schemas/getInventoryResource_200_response' + description: The updated Inventory Resource + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Inventory + x-codegen-request-body-name: body + /inventory-plan: + get: + description: Get the terraform plan of the inventory. It uses '-' as the Concourse resource that uses it automatically adds '-plan' on it's implementation to push the plan. So to simplify the configuration we use '-' also. + operationId: getInventoryPlan + parameters: + - description: Token with the information about state and credentials. + in: query + name: jwt + required: true + schema: + type: string + responses: + '200': + content: + application/json: + schema: + type: object + description: Get the plan of an inventory + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + security: [] + tags: + - Organization Inventory Plan + post: + description: Create or replace an Inventory plan + operationId: setInventoryPlan + parameters: + - description: Token with the information about state and credentials. + in: query + name: jwt + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + type: object + description: The plan of the Inventory + required: false + responses: + '204': + content: {} + description: Success update + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '411': + content: {} + description: The request has a body but it doesn't have a Content-Length header. + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + security: [] + tags: + - Organization Inventory Plan + x-codegen-request-body-name: body + /organizations/{organization_canonical}/kpis: + get: + description: Get the list of configured organization KPIs + operationId: getKpis + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A list of projects' canonical to filter from + in: query + name: project_canonical + schema: + pattern: ^[\da-z]+(?:(?:[\da-z\-._]+)?[\da-z])?$ + type: string + - description: A list of environments' canonical to filter from + in: query + name: environment_canonical + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: The unix timestamp in seconds, which indicate the start of the time range. + in: query + name: begin + schema: + format: uint64 + type: integer + - description: The unix timestamp in seconds, which indicate the end of the time range. + in: query + name: end + schema: + format: uint64 + type: integer + - description: | + Flag to retrieve KPIs' data upon retrieving KPIs themselves + in: query + name: fetch_data + schema: + type: boolean + - description: The page number to request. The first page is 1. + in: query + name: page_index + schema: + default: 1 + format: uint32 + type: integer + - description: The number of items at most which the response can have. + in: query + name: page_size + schema: + default: 1000 + format: uint32 + type: integer + - description: | + Flag to retrieve favorite data from the members favorite list. + in: query + name: favorite + schema: + type: boolean + responses: + '200': + content: + application/json: + example: + data: + - id: 1 + name: My KPI 1 + canonical: my-kpi-1 + type: buildavgtime + widget: doughnut + description: This KPI shows the code coverage of your code on an environment + project_canonical: project1 + environment_canonical: env1 + pipeline_name: pipeline1 + job_name: job1 + data_set: + - - date + - time + - - 1607904000 + - 39 + - - 1607817600 + - 140 + created_at: 1503224026 + updated_at: 1503224526 + error: Something went wrong while importing + favorite: true + - id: 2 + name: My KPI 2 + canonical: my-kpi-2 + type: timetorelease + widget: line + conf: + envs: + - staging + - preprod + - prod + description: This KPI shows how long time passes between deployment on your different environment + project_canonical: project2 + data_set: + - - date + - env + - version + - duration + - final + - released + - - 1592100100 + - dev + - v1 + - 50 + - false + - true + - - 1592100280 + - dev + - v2 + - 95 + - false + - true + - - 1592100500 + - dev + - v3 + - 160 + - false + - true + - - 1592101700 + - dev + - v4 + - 0 + - false + - false + - - 1592100150 + - staging + - v1 + - 850 + - false + - true + - - 1592100375 + - staging + - v2 + - 625 + - false + - true + - - 1592100660 + - staging + - v3 + - 340 + - false + - true + - - 1592101000 + - prod + - v3 + - 0 + - true + - false + created_at: 1503227026 + updated_at: 1503227526 + error: '' + favorite: true + - id: 10 + name: My KPI 10 + canonical: my-kpi-10 + type: codecoverage + widget: doughnut + description: This KPI shows the code coverage of your code on an environment + project_canonical: project2 + environment_canonical: env2 + pipeline_name: '' + job_name: '' + data_set: + - - date + - coverage + - - 1592100100 + - 13.4 + - - 1592100150 + - 28.0 + - - 1592100280 + - 85.2 + - - 1592100375 + - 83.9 + created_at: 1503225026 + updated_at: 1503225526 + error: '' + favorite: false + schema: + $ref: '#/components/schemas/getKpis_200_response' + description: The list of the KPIs + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization kpis + post: + description: Save information about the KPI + operationId: createKpi + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A list of projects' canonical to filter from + in: query + name: project_canonical + schema: + pattern: ^[\da-z]+(?:(?:[\da-z\-._]+)?[\da-z])?$ + type: string + - description: A list of environments' canonical to filter from + in: query + name: environment_canonical + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: The unix timestamp in seconds, which indicate the start of the time range. + in: query + name: begin + schema: + format: uint64 + type: integer + - description: The unix timestamp in seconds, which indicate the end of the time range. + in: query + name: end + schema: + format: uint64 + type: integer + - description: | + Flag to retrieve KPIs' data upon retrieving KPIs themselves + in: query + name: fetch_data + schema: + type: boolean + - description: The page number to request. The first page is 1. + in: query + name: page_index + schema: + default: 1 + format: uint32 + type: integer + - description: The number of items at most which the response can have. + in: query + name: page_size + schema: + default: 1000 + format: uint32 + type: integer + - description: | + Flag to retrieve favorite data from the members favorite list. + in: query + name: favorite + schema: + type: boolean + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/NewKPI' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/NewKPI' + description: The information of the KPI + required: true + responses: + '200': + content: + application/json: + example: + data: + id: 1 + name: My KPI 1 + canonical: my-kpi-1 + type: buildavgtime + widget: doughnut + description: This KPI shows the code coverage of your code on an environment + project_canonical: project1 + environment_canonical: env1 + pipeline_name: pipeline1 + job_name: job1 + created_at: 1503224026 + updated_at: 1503224526 + error: Something went wrong while importing + schema: + $ref: '#/components/schemas/createKpi_200_response' + description: KPI has been configured + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization kpis + x-codegen-request-body-name: body + /organizations/{organization_canonical}/kpis/{kpi_canonical}/favorites: + delete: + description: Remove a kpi from the user favorites list. + operationId: deleteKPIFavorite + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a kpi. + in: path + name: kpi_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + '204': + content: {} + description: The kpi has been removed from user favorites list. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization kpis + post: + description: Add a kpi in the user favorites list. + operationId: createKPIFavorite + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a kpi. + in: path + name: kpi_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + '204': + content: {} + description: The kpi has been added to user favorites list. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization kpis + /organizations/{organization_canonical}/kpis/{kpi_canonical}: + delete: + description: delete a KPI + operationId: deleteKpi + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a kpi. + in: path + name: kpi_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: The unix timestamp in seconds, which indicate the start of the time range. + in: query + name: begin + schema: + format: uint64 + type: integer + - description: The unix timestamp in seconds, which indicate the end of the time range. + in: query + name: end + schema: + format: uint64 + type: integer + - description: | + Flag to retrieve KPIs' data upon retrieving KPIs themselves + in: query + name: fetch_data + schema: + type: boolean + responses: + '204': + content: {} + description: Organization's KPI has been deleted + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization kpis + get: + description: Get the KPI + operationId: getKpi + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a kpi. + in: path + name: kpi_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: The unix timestamp in seconds, which indicate the start of the time range. + in: query + name: begin + schema: + format: uint64 + type: integer + - description: The unix timestamp in seconds, which indicate the end of the time range. + in: query + name: end + schema: + format: uint64 + type: integer + - description: | + Flag to retrieve KPIs' data upon retrieving KPIs themselves + in: query + name: fetch_data + schema: + type: boolean + responses: + '200': + content: + application/json: + example: + data: + id: 1 + name: My KPI 1 + canonical: my-kpi-1 + type: buildavgtime + widget: doughnut + description: This KPI shows the code coverage of your code on an environment + project_canonical: project1 + environment_canonical: env1 + pipeline_name: pipeline1 + job_name: job1 + data_set: + - - date + - time + - - 1607904000 + - 39 + - - 1607817600 + - 140 + created_at: 1503224026 + updated_at: 1503224526 + error: '' + schema: + $ref: '#/components/schemas/createKpi_200_response' + description: The KPI + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization kpis + put: + description: Update a KPI + operationId: updateKpi + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a kpi. + in: path + name: kpi_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: The unix timestamp in seconds, which indicate the start of the time range. + in: query + name: begin + schema: + format: uint64 + type: integer + - description: The unix timestamp in seconds, which indicate the end of the time range. + in: query + name: end + schema: + format: uint64 + type: integer + - description: | + Flag to retrieve KPIs' data upon retrieving KPIs themselves + in: query + name: fetch_data + schema: + type: boolean + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/NewKPI' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/NewKPI' + description: The information of the KPI new data + required: true + responses: + '200': + content: + application/json: + example: + data: + id: 11 + name: My KPI 11 + canonical: my-kpi-11 + type: buildavgtime + widget: doughnut + description: This KPI shows the code coverage of your code on an environment + project_canonical: project1 + environment_canonical: env1 + pipeline_name: pipeline1 + job_name: job1 + created_at: 1503224026 + updated_at: 1503224526 + error: '' + schema: + $ref: '#/components/schemas/createKpi_200_response' + description: Success update + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '411': + content: {} + description: The request has a body but it doesn't have a Content-Length header. + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization kpis + x-codegen-request-body-name: body + /organizations/{organization_canonical}/licence: + get: + description: Get currently active licence. + operationId: getLicence + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + '200': + content: + application/json: + example: + data: + key: eyJhbGciOiJSUzUxMiIsInR5cCI6IkpXVCJ9.eyJjb21wYW55X25hbWUiOiJjeWNsb2lkIiwiZW1haWxfYWRkcmVzcyI6ImN5Y2xvaWRAb2ZmaWNlLmlvIiwibWVtYmVyc19jb3VudCI6NSwiZXhwaXJlc19hdCI6IjIwMjItMTItMTNUMDA6MDA6MDBaIiwidmVyc2lvbiI6IjEiLCJhdWQiOiJjeWNsb2lkIiwianRpIjoiNGE1ZTQzMDYtNmUwMy00MjFmLTllM2ItY2VlZmJhZjMyNDk0IiwiaWF0IjoxNjExMzE2NjUwLCJpc3MiOiJodHRwczovL2N5Y2xvaWQuaW8iLCJuYmYiOjE2MTEzMTY2NTAsInN1YiI6Imh0dHBzOi8vY3ljbG9pZC5pbyJ9.Z_DvpqprGU0uW26vkpzdTYvyC4imiw0AY1FJMmpeEyVkfYlRI2Q1MWcFZPxMaTafi1TAjwwJOxdY1fxnghMfKng4-4dEtPhcsJQy3nC_ODyACtxDpZMRRaIb8pzBN7AqFvBWWPVKAdqfYXI7IZMX5jjIfaFHtzzs5OnXwQ9USl4 + created_at: 1503225026 + updated_at: 1503225026 + company_name: Cycloid + email_address: email@cycloid.io + expires_at: 1503226026 + members_count: 5 + version: '1' + schema: + $ref: '#/components/schemas/getLicence_200_response' + description: Currently active licence entity. + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + security: [] + tags: + - Organization licence + post: + description: Activate Cycloid's licence. If another licence already exists, it will be overwritten + operationId: activateLicence + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/NewLicence' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/NewLicence' + description: The licence key + required: true + responses: + '204': + content: {} + description: The product has been activated + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '411': + content: {} + description: The request has a body but it doesn't have a Content-Length header. + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + security: [] + tags: + - Organization licence + x-codegen-request-body-name: body + /organizations/{organization_canonical}/projects/{project_canonical}/environments/{environment_canonical}/logs/sources: + get: + description: Get the list of sources configured for the specified project's environment of the organization. + operationId: getProjEnvLogSources + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: The environment canonical to use as part of a path + in: path + name: environment_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + responses: + '200': + content: + application/json: + example: + data: + - id: access.log + - id: exception.log + schema: + $ref: '#/components/schemas/getProjEnvLogSources_200_response' + description: The list of sources related to the project's environment. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Logs + ? /organizations/{organization_canonical}/projects/{project_canonical}/environments/{environment_canonical}/logs/sources/{log_source_id} + : get: + description: |- + Get log's entries information of the specified log stream stream which is associated to the project's environment of the specified organization. The log's entries to request can be filtered using the unix timestamp ranges and/or the query as follow - When unix timestamps are defined, they are converted to the specific + query language used by the configured underlying log system (e.g AWS + Cloud Watch, ElasticSearch, etc.) and appended to the query value + respecting the syntax but not checking the content of the query, which + means that if the whole query must be enclosed by curly brackets hence + the query value is enclosed on them, the time range filter will be + added inside not just appended at the end, because otherwise it would + cause wrong syntax; on the other hand, not checking the content means + that if the query contains a timerange filter, the whole query will + contain both and the result will be the one returned by on the + underlying log system, being an error or not. + - When no time range are defined, then the query is used as it has been + send, there is not modification on the query to send to the underlying + log system, hence the result will be the one returned by it. + - If none of the filters (timestamp range and query) are sent, then + a 422 status code will be responded. + - Some constraints are established by the underlying log system, so + depending which one has been configured some parameters may be + required or not. + operationId: getProjEnvLogEntries + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: The environment canonical to use as part of a path + in: path + name: environment_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: A unique identifier, which group log's entries under under a context, established by the source. + in: path + name: log_source_id + required: true + schema: + minLength: 1 + type: string + - description: The unix timestamp in milliseconds, which indicate the start of the time range. + in: query + name: begin + schema: + format: uint64 + type: integer + - description: The unix timestamp in milliseconds, which indicate the end of the time range. + in: query + name: end + schema: + format: uint64 + type: integer + - description: A free text which the content depends of the context of the API endpoint. Can be a free text value or a complete query expressed of supported query language. + in: query + name: query + schema: + minLength: 1 + type: string + responses: + '200': + content: + application/json: + example: + data: + - timestamp: '0123456789' + host: theowlhost + message: 178.154.171.21 - - [21/Sep/2017:02:51:22 +0200] "GET /1663-large_default/tienda-de-campana-basica-para-2-personas.jpg HTTP/1.0" 302 773 "-" "Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots)" + - timestamp: '0123456795' + host: mymon + message: 141.8.132.28 - - [21/Sep/2017:02:51:27 +0200] "GET /1663-large_default/tienda-de-campana-basica-para-2-personas.jpg/ HTTP/1.0" 302 731 "-" "Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots)" + - timestamp: '0123456800' + host: theowlhost + message: 46.229.168.65 - - [21/Sep/2017:02:51:28 +0200] "GET /mosquitera-enrollable-lateral.html HTTP/1.0" 200 25313 "-" "Mozilla/5.0 (compatible; SemrushBot/1.2~bl; +http://www.semrush.com/bot.html)" + - timestamp: '0123456805' + host: mymon + message: 141.10.132.56 - - [21/Sep/2017:02:51:56 +0200] "GET /1663-large_default/tienda-de-campana-basica-para-2-personas.jpg/ HTTP/1.0" 302 731 "-" "Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots)" + - timestamp: '0123456810' + host: burrowing + message: 46.229.168.65 - - [21/Sep/2017:02:52:03 +0200] "GET /mosquitera-enrollable-lateral.html HTTP/1.0" 200 25313 "-" "Mozilla/5.0 (compatible; SemrushBot/1.2~bl; +http://www.semrush.com/bot.html)" + - timestamp: '0123456823' + host: theowlhost + message: 141.10.132.56 - - [21/Sep/2017:02:52:23 +0200] "GET /1663-large_default/tienda-de-campana-basica-para-2-personas.jpg/ HTTP/1.0" 302 731 "-" "Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots)" + - timestamp: '0123456834' + host: elf + message: 123.229.145.65 - - [21/Sep/2017:02:52:49 +0200] "GET /mosquitera-enrollable-lateral.html HTTP/1.0" 200 25313 "-" "Mozilla/5.0 (compatible; SemrushBot/1.2~bl; +http://www.semrush.com/bot.html)" + - timestamp: '0123456834' + host: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaelf + message: 123.229.145.65 - - [21/Sep/2017:02:52:49 +0200] "GET /mosquitera-enrollable-lateral.html HTTP/1.0" 200 25313 "-" "Mozilla/5.0 (compatible; SemrushBot/1.2~bl; +http://www.semrush.com/bot.html)" + schema: + $ref: '#/components/schemas/getProjEnvLogEntries_200_response' + description: The list of log's entries which are comprehended by the begin and end timestamps and are selected by the optional query. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Logs + /organizations/{organization_canonical}/members: + get: + description: Get the members of an organization. + operationId: getOrgMembers + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: The page number to request. The first page is 1. + in: query + name: page_index + schema: + default: 1 + format: uint32 + type: integer + - description: The number of items at most which the response can have. + in: query + name: page_size + schema: + default: 1000 + format: uint32 + type: integer + - description: Search by Invitation's state + in: query + name: invitation_state + schema: + enum: + - accepted + - pending + - declined + type: string + - description: Search by the user's given name + in: query + name: user_given_name + schema: + type: string + - description: Search by the user's family name + in: query + name: user_family_name + schema: + type: string + - description: Search by the role's name + in: query + name: role_name + schema: + type: string + - description: Search by the user canonical + in: query + name: user_canonical + schema: + type: string + - description: Search by user creation date + in: query + name: user_created_at + schema: + format: uint64 + type: integer + - description: Search by member joining date + in: query + name: member_created_at + schema: + format: uint64 + type: integer + - description: | + Allows to order the list of items. Example usage: field_name:asc + in: query + name: order_by + schema: + type: string + responses: + '200': + content: + application/json: + example: + data: + - username: user-1 + id: 1 + given_name: Mariano + family_name: Jimenez + invitation_email: jordi.capdevila@fakeemail.com + email: mariano.jimenez@fakeemail.com + picture_url: https://avatars2.githubusercontent.com/u/14579210 + created_at: 1503225026 + invitation_state: accepted + last_login_at: 1503225576 + role: + id: 17 + name: existing + description: Organization existing role + canonical: role-can + rules: + - id: 1 + effect: allow + action: organization:delete + resources: + - organization:org-can + - organization:org-can2 + - id: 20 + effect: allow + action: organization:team:create + resources: [] + - id: 21 + effect: allow + action: organization:team:read + resources: + - organization:org-can:team:team-can + - username: user2 + id: 1 + given_name: Jordi + family_name: Capdevila + invitation_email: jordi.capdevila@fakeemail.com + email: jordi.capdevila@fakeemail.com + picture_url: https://avatars2.githubusercontent.com/u/14579210 + created_at: 1503281026 + last_login_at: 1503225576 + invitation_state: accepted + role: + id: 17 + name: existing + description: Organization existing role + canonical: role-can + rules: + - id: 1 + effect: allow + action: organization:delete + resources: + - organization:org-can + - organization:org-can2 + - id: 20 + effect: allow + action: organization:team:create + resources: [] + - id: 21 + effect: allow + action: organization:team:read + resources: + - organization:org-can:team:team-can + - username: user-3 + id: 1 + given_name: Ivan + family_name: Drago + invitation_email: jordi.capdevila@fakeemail.com + email: ivan.drago@fakeemail.com + picture_url: https://avatars2.githubusercontent.com/u/14579210 + created_at: 1502225026 + last_login_at: 1503225576 + invitation_state: accepted + role: + id: 17 + name: existing + description: Organization existing role + canonical: role-can + rules: + - id: 1 + effect: allow + action: organization:delete + resources: + - organization:org-can + - organization:org-can2 + - id: 20 + effect: allow + action: organization:team:create + resources: [] + - id: 21 + effect: allow + action: organization:team:read + resources: + - organization:org-can:team:team-can + pagination: + index: 1 + size: 10 + total: 3 + schema: + $ref: '#/components/schemas/getOrgMembers_200_response' + description: List of the members of the organization. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization members + post: + description: Invite a user to be a member of the organization. + operationId: inviteUserToOrgMember + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/NewMemberInvitation' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/NewMemberInvitation' + description: The user's member invitation. + required: true + responses: + '200': + content: + application/json: + example: + data: + id: 1 + username: user2 + given_name: Jordi + family_name: Capdevila + invitation_email: jordi.capdevila@fakeemail.com + email: jordi.capdevila@fakeemail.com + picture_url: https://avatars2.githubusercontent.com/u/14579210 + created_at: 1503281026 + invitation_state: accepted + role: + id: 2 + name: project manager + description: A project manager + policies: + - id: 21 + code: team:read + entities: [] + description: Grant the access to read the teams of an organization + - id: 22 + code: team:edit + entities: [] + description: Grant the access to edit teams + - id: 60 + code: project:read + entities: [] + description: Grant the access to projects + - id: 61 + code: project:create + entities: [] + description: Grant the access to create a project in the organization + - id: 62 + code: project:edit + entities: [] + description: Grant the access to edit projects + schema: + $ref: '#/components/schemas/inviteUserToOrgMember_200_response' + description: The information of the member of the organization. + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '411': + content: {} + description: The request has a body but it doesn't have a Content-Length header. + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization members + x-codegen-request-body-name: body + /organizations/{organization_canonical}/members/{member_id}: + delete: + description: Remove a member of the organization. + operationId: removeOrgMember + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A member id + in: path + name: member_id + required: true + schema: + format: uint32 + type: integer + responses: + '204': + content: {} + description: Member has been removed. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization members + get: + description: Get the information of a member of the organization. + operationId: getOrgMember + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A member id + in: path + name: member_id + required: true + schema: + format: uint32 + type: integer + responses: + '200': + content: + application/json: + example: + data: + id: 1 + username: user2 + given_name: Jordi + family_name: Capdevila + invitation_email: jordi.capdevila@fakeemail.com + email: jordi.capdevila@fakeemail.com + picture_url: https://avatars2.githubusercontent.com/u/14579210 + created_at: 1503281026 + invitation_state: accepted + role: + id: 2 + name: project manager + description: A project manager + policies: + - id: 21 + code: team:read + entities: [] + description: Grant the access to read the teams of an organization + - id: 22 + code: team:edit + entities: [] + description: Grant the access to edit teams + - id: 60 + code: project:read + entities: [] + description: Grant the access to projects + - id: 61 + code: project:create + entities: [] + description: Grant the access to create a project in the organization + - id: 62 + code: project:edit + entities: [] + description: Grant the access to edit projects + schema: + $ref: '#/components/schemas/inviteUserToOrgMember_200_response' + description: The information of the member of the organization. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization members + put: + description: Update member of the organization. + operationId: updateOrgMember + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A member id + in: path + name: member_id + required: true + schema: + format: uint32 + type: integer + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/MemberAssignation' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/MemberAssignation' + description: The member information to be updated. + required: true + responses: + '200': + content: + application/json: + example: + data: + id: 1 + username: user2 + given_name: Jordi + family_name: Capdevila + invitation_email: jordi.capdevila@fakeemail.com + email: jordi.capdevila@fakeemail.com + picture_url: https://avatars2.githubusercontent.com/u/14579210 + created_at: 1503281026 + invitation_state: accepted + role: + id: 2 + name: project manager + description: A project manager + policies: + - id: 21 + code: team:read + entities: [] + description: Grant the access to read the teams of an organization + - id: 22 + code: team:edit + entities: [] + description: Grant the access to edit teams + - id: 60 + code: project:read + entities: [] + description: Grant the access to projects + - id: 61 + code: project:create + entities: [] + description: Grant the access to create a project in the organization + - id: 62 + code: project:edit + entities: [] + description: Grant the access to edit projects + schema: + $ref: '#/components/schemas/inviteUserToOrgMember_200_response' + description: The information of the member of the organization. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization members + x-codegen-request-body-name: body + /organizations/{organization_canonical}/members/{member_id}/resend: + put: + description: Resend the email containing the verification token to accept the member Invitation. + operationId: resendMemberInvitation + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A member id + in: path + name: member_id + required: true + schema: + format: uint32 + type: integer + responses: + '204': + content: {} + description: The member Invitation has been resent. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + security: [] + tags: + - Organization members + /members/verify/{verification_token}: + get: + description: Get the email address used for the pending member invitation + operationId: getPendingMemberInvitation + parameters: + - description: A token for verifying emails, invitations, etc. + in: path + name: verification_token + required: true + schema: + minLength: 5 + type: string + responses: + '200': + content: + application/json: + example: + data: + email: user@user.com + schema: + $ref: '#/components/schemas/getPendingMemberInvitation_200_response' + description: The email address used for the pending member invitation + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + security: [] + tags: + - Organization members + /organizations/{organization_canonical}/pipelines: + get: + description: Get all the pipelines that the authenticated user has access to. + operationId: getPipelines + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A pipeline name + in: query + name: concourse_pipeline_name + schema: + maxLength: 100 + minLength: 1 + pattern: ^[a-z0-9]+[a-z0-9\-_.]+[a-z0-9]+$ + type: string + - description: A list of projects' canonical to filter from + in: query + name: project_canonical + schema: + pattern: ^[\da-z]+(?:(?:[\da-z\-._]+)?[\da-z])?$ + type: string + - description: A list of environments' canonical to filter from + in: query + name: environment_canonical + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - allowEmptyValue: true + description: List of statuses that you want to filter a pipeline/job with. Pipeline can be either paused or unpaused, but jobs can be started, pending, succeeded, failed, errored, aborted. So if any of a pipeline's job has one of the given status, the associated pipeline will be included in the response. + explode: true + in: query + name: statuses + schema: + items: + enum: + - aborted + - errored + - failed + - paused + - pending + - started + - succeeded + type: string + type: array + uniqueItems: true + style: form + - description: The page number to request. The first page is 1. + in: query + name: page_index + schema: + default: 1 + format: uint32 + type: integer + - description: The number of items at most which the response can have. + in: query + name: page_size + schema: + default: 1000 + format: uint32 + type: integer + responses: + '200': + content: + application/json: + example: + data: + - id: 154 + name: approval-resource + paused: true + archived: false + public: false + groups: [] + team_name: cycloid-products + environment: dev + use_case: approval-of-resources + created_at: 1500135021 + updated_at: 1500135021 + project: + id: 5 + canonical: proj-1 + name: project1 + created_at: 1500135021 + updated_at: 1500135021 + service_catalog_ref: cycloidio:stack-magento + - id: 196 + name: frontend + paused: false + public: false + archived: false + environment: dev + use_case: frontend + groups: + - name: pull-requests + jobs: + - pr-code-validate + resources: [] + - name: preprod + jobs: + - preprod-code-validate + - preprod-build-deploy + resources: [] + team_name: cycloid-products + created_at: 1500135021 + updated_at: 1500135021 + project: + id: 5 + canonical: proj-1 + name: project1 + created_at: 1500135021 + updated_at: 1500135021 + service_catalog_ref: cycloidio:stack-magento + - id: 252 + name: http-api + use_case: ci-cd-pipelines + environment: dev + paused: false + public: false + archived: false + groups: + - name: all + jobs: + - code-validation-develop + - code-validation-pull-requests + resources: [] + - name: develop + jobs: + - code-validation-develop + resources: [] + - name: pull-requests + jobs: + - code-validation-pull-requests + resources: [] + team_name: cycloid-products + created_at: 1500135021 + updated_at: 1500135021 + project: + id: 5 + canonical: proj-1 + name: project1 + created_at: 1500135021 + updated_at: 1500135021 + service_catalog_ref: cycloidio:stack-magento + pagination: + index: 1 + size: 10 + total: 5 + schema: + $ref: '#/components/schemas/getPipelines_200_response' + description: List of all the pipelines which authenticated user has access to. + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization pipelines + /organizations/{organization_canonical}/pipelines/{inpath_pipeline_name}/diff: + put: + description: The diff between the provided pipeline configuration and the pipeline from the given name. + operationId: diffPipeline + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A pipeline name + in: path + name: inpath_pipeline_name + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[a-z0-9]+[a-z0-9\-_.]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/UpdatePipeline' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UpdatePipeline' + description: The pipeline configuration + required: true + responses: + '200': + content: + application/json: + example: + data: + jobs: + - name: foo + label: job + status: added + diff: + - delta_type: + + line: '- terraform-plan-api' + groups: + - name: bar + label: group + status: removed + diff: + - delta_type: '-' + line: '- test-develop' + resources: + - name: bli + label: resource + status: changed + diff: + - delta_type: '-' + line: ' - key: foo' + - delta_type: + + line: ' - key: bar' + resource_types: + - name: glop + label: resource type + status: removed + diff: + - delta_type: '-' + line: 'name: terraform' + schema: + $ref: '#/components/schemas/diffPipeline_200_response' + description: The diff between the provided pipeline configuration and the existing pipeline has been done. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '411': + content: {} + description: The request has a body but it doesn't have a Content-Length header. + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization pipelines + x-codegen-request-body-name: body + /organizations/{organization_canonical}/pipelines/{inpath_pipeline_name}/synced: + get: + description: Will check if the pipeline from the database and the one specified in the stack are synced or not + operationId: syncedPipeline + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A pipeline name + in: path + name: inpath_pipeline_name + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[a-z0-9]+[a-z0-9\-_.]+[a-z0-9]+$ + type: string + responses: + '200': + content: + application/json: + example: + data: + synced: out_of_sync + error: '' + diffs: + jobs: + - name: foo + label: job + status: added + diff: + - delta_type: + + line: '- terraform-plan-api' + groups: + - name: bar + label: group + status: removed + diff: + - delta_type: '-' + line: '- test-develop' + resources: + - name: bli + label: resource + status: changed + diff: + - delta_type: '-' + line: ' - key: foo' + - delta_type: + + line: ' - key: bar' + resource_types: + - name: glop + label: resource type + status: removed + diff: + - delta_type: '-' + line: 'name: terraform' + schema: + $ref: '#/components/schemas/syncedPipeline_200_response' + description: The diff between the stack's pipeline and the existing pipeline if any exists. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '411': + content: {} + description: The request has a body but it doesn't have a Content-Length header. + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization pipelines + /organizations/{organization_canonical}/projects/{project_canonical}/pipelines: + get: + description: Get the pipelines that the authenticated user has access to. + operationId: getProjectPipelines + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: The page number to request. The first page is 1. + in: query + name: page_index + schema: + default: 1 + format: uint32 + type: integer + - description: The number of items at most which the response can have. + in: query + name: page_size + schema: + default: 1000 + format: uint32 + type: integer + responses: + '200': + content: + application/json: + example: + data: + - id: 154 + name: approval-resource + paused: true + public: false + groups: [] + team_name: cycloid-products + environment: dev + use_case: approval-resource + created_at: 1500135021 + updated_at: 1500135021 + status: succeeded + started: true + project: + id: 5 + canonical: proj-1 + name: project1 + created_at: 1500135021 + updated_at: 1500135021 + service_catalog_ref: cycloidio:stack-magento + - id: 196 + name: frontend + paused: false + public: false + environment: dev + use_case: frontend-use-case + created_at: 1500135021 + updated_at: 1500135021 + status: failed + started: true + groups: + - name: pull-requests + jobs: + - pr-code-validate + resources: [] + - name: preprod + jobs: + - preprod-code-validate + - preprod-build-deploy + resources: [] + team_name: cycloid-products + project: + id: 5 + canonical: proj-1 + name: project1 + created_at: 1500135021 + updated_at: 1500135021 + service_catalog_ref: cycloidio:stack-magento + - id: 238 + name: ci-website + paused: true + environment: dev + public: false + use_case: website-use-case + created_at: 1500135021 + updated_at: 1500135021 + status: pending + started: true + groups: + - name: all + jobs: + - code-validation-preprod + - build-container-preprod + - tag-container-image-preprod + - clean-container-preprod + resources: [] + - name: preprod + jobs: + - code-validation-preprod + - build-container-preprod + - tag-container-image-preprod + - clean-container-preprod + resources: [] + team_name: cycloid-products + project: + id: 5 + canonical: proj-1 + name: project1 + created_at: 1500135021 + updated_at: 1500135021 + service_catalog_ref: cycloidio:stack-magento + pagination: + index: 1 + size: 10 + total: 5 + schema: + $ref: '#/components/schemas/getPipelines_200_response' + description: List of the pipelines which authenticated user has access to. + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization pipelines + post: + description: Create a new pipeline + operationId: createPipeline + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/NewPipeline' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/NewPipeline' + description: The configuration of the pipeline to create. + required: true + responses: + '200': + content: + application/json: + example: + data: + id: 238 + name: ci-website + paused: true + public: false + environment: dev + use_case: website-ci-use-case + created_at: 1500135021 + updated_at: 1500135021 + status: pending + started: false + groups: + - name: all + jobs: + - code-validation-preprod + - build-container-preprod + - tag-container-image-preprod + - clean-container-preprod + resources: [] + - name: preprod + jobs: + - code-validation-preprod + - build-container-preprod + - tag-container-image-preprod + - clean-container-preprod + resources: [] + team_name: cycloid-products + project: + id: 5 + canonical: proj-1 + name: project1 + created_at: 1500135021 + updated_at: 1500135021 + service_catalog_ref: cycloidio:stack-magento + schema: + $ref: '#/components/schemas/createPipeline_200_response' + description: The information of the pipeline which has been created. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '411': + content: {} + description: The request has a body but it doesn't have a Content-Length header. + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization pipelines + x-codegen-request-body-name: body + /organizations/{organization_canonical}/projects/{project_canonical}/pipelines/{inpath_pipeline_name}: + delete: + description: Delete the pipeline. + operationId: deletePipeline + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: A pipeline name + in: path + name: inpath_pipeline_name + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[a-z0-9]+[a-z0-9\-_.]+[a-z0-9]+$ + type: string + responses: + '204': + content: {} + description: Pipeline has been deleted. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization pipelines + get: + description: Get the configuration of the pipeline. + operationId: getPipeline + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: A pipeline name + in: path + name: inpath_pipeline_name + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[a-z0-9]+[a-z0-9\-_.]+[a-z0-9]+$ + type: string + responses: + '200': + content: + application/json: + example: + data: + id: 238 + name: ci-website + paused: true + public: false + environment: dev + use_case: website-ci-use-case + created_at: 1500135021 + updated_at: 1500135021 + groups: + - name: all + jobs: + - code-validation-preprod + - build-container-preprod + - tag-container-image-preprod + - clean-container-preprod + resources: [] + - name: preprod + jobs: + - code-validation-preprod + - build-container-preprod + - tag-container-image-preprod + - clean-container-preprod + resources: [] + team_name: cycloid-products + project: + id: 5 + canonical: proj-1 + name: project1 + created_at: 1500135021 + updated_at: 1500135021 + service_catalog_ref: cycloidio:stack-magento + schema: + $ref: '#/components/schemas/createPipeline_200_response' + description: The information of the pipeline which has the specified name. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization pipelines + put: + description: Update the configuration of the given pipeline name. + operationId: updatePipeline + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: A pipeline name + in: path + name: inpath_pipeline_name + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[a-z0-9]+[a-z0-9\-_.]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/UpdatePipeline' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UpdatePipeline' + description: The pipeline configuration + required: true + responses: + '200': + content: + application/json: + example: + data: + id: 238 + name: ci-website + paused: true + public: false + environment: dev + use_case: website-ci-use-case + groups: + - name: all + jobs: + - code-validation-preprod + - build-container-preprod + - tag-container-image-preprod + - clean-container-preprod + resources: [] + - name: preprod + jobs: + - code-validation-preprod + - build-container-preprod + - tag-container-image-preprod + - clean-container-preprod + resources: [] + team_name: cycloid-products + created_at: 1500135021 + updated_at: 1500135021 + project: + id: 5 + canonical: proj-1 + name: project1 + created_at: 1500135021 + updated_at: 1500135021 + service_catalog_ref: cycloidio:stack-magento + schema: + $ref: '#/components/schemas/createPipeline_200_response' + description: The information of the pipeline which has been updated. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '411': + content: {} + description: The request has a body but it doesn't have a Content-Length header. + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization pipelines + x-codegen-request-body-name: body + /organizations/{organization_canonical}/policies: + get: + description: Get the list of Policies + operationId: getPolicies + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: The page number to request. The first page is 1. + in: query + name: page_index + schema: + default: 1 + format: uint32 + type: integer + - description: The number of items at most which the response can have. + in: query + name: page_size + schema: + default: 1000 + format: uint32 + type: integer + responses: + '200': + content: + application/json: + example: + data: + - id: 1 + code: organization:delete + description: Grant the access to delete the organization + - id: 2 + code: organization:edit + description: Grant the access to edit the organization + - id: 20 + code: team:create + description: Grant the access to create teams + - id: 21 + code: team:read + description: Grant the access to read the teams of an organization + - id: 22 + code: team:edit + description: Grant the access to edit teams + - id: 23 + code: team:delete + description: Grant the access to delete teams + - id: 40 + code: member:invite + description: Grant the access to invite members to join to the organization + - id: 41 + code: member:remove + description: Grant the access to remove members + - id: 42 + code: member:read + description: Grant the access to read the members + - id: 60 + code: project:read + entities: + - '10' + - '32' + description: Grant the access to projects + - id: 61 + code: project:create + entities: [] + description: Grant the access to create a project in the organization + - id: 62 + code: project:edit + entities: [] + description: Grant the access to edit projects + pagination: + index: 1 + size: 10 + total: 2 + schema: + $ref: '#/components/schemas/getPolicies_200_response' + description: List of Policies + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Policies + ? /organizations/{organization_canonical}/projects/{project_canonical}/pipelines/{inpath_pipeline_name}/jobs/{job_name}/builds/{build_id}/abort + : put: + description: Abort a specific build. + operationId: abortBuild + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: A pipeline name + in: path + name: inpath_pipeline_name + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[a-z0-9]+[a-z0-9\-_.]+[a-z0-9]+$ + type: string + - description: A job name + in: path + name: job_name + required: true + schema: + maxLength: 150 + minLength: 1 + type: string + - description: A build id + in: path + name: build_id + required: true + schema: + maxLength: 20 + minLength: 1 + pattern: ^[0-9]+$ + type: string + responses: + '204': + content: {} + description: The build has been aborted. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization pipelines jobs build + /organizations/{organization_canonical}/projects/{project_canonical}/pipelines/{inpath_pipeline_name}/jobs/{job_name}/builds: + get: + description: Get the pipeline job's builds that the authenticated user has access to. + operationId: getBuilds + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: A pipeline name + in: path + name: inpath_pipeline_name + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[a-z0-9]+[a-z0-9\-_.]+[a-z0-9]+$ + type: string + - description: A job name + in: path + name: job_name + required: true + schema: + maxLength: 150 + minLength: 1 + type: string + - description: The time after which we should look for entities to return. + in: query + name: concourse_page_since + schema: + default: 0 + format: uint64 + type: integer + - description: The time before which we should look for entities to return. + in: query + name: concourse_page_until + schema: + default: 0 + format: uint64 + type: integer + - description: The number of items at most which the response can have. + in: query + name: concourse_page_limit + schema: + default: 10 + format: uint64 + type: integer + responses: + '200': + content: + application/json: + example: + data: + - id: 11406 + team_name: cycloid-products + name: '82' + status: failed + job_name: build-container-preprod + api_url: /api/v1/builds/11406 + pipeline_name: ci-website + pipeline_id: 3 + start_time: 1504185240 + end_time: 1504185344 + reap_time: 0 + - id: 11404 + team_name: cycloid-products + name: '81' + status: failed + job_name: build-container-preprod + api_url: /api/v1/builds/11404 + pipeline_name: ci-website + pipeline_id: 3 + start_time: 1504184979 + end_time: 1504185078 + reap_time: 0 + - id: 11402 + team_name: cycloid-products + name: '80' + status: failed + job_name: build-container-preprod + api_url: /api/v1/builds/11402 + pipeline_name: ci-website + pipeline_id: 3 + start_time: 1504184038 + end_time: 1504184140 + reap_time: 0 + pagination_concourse: + next: + since: 11402 + until: 0 + limit: 3 + previous: + since: 11508 + until: 0 + limit: 3 + schema: + $ref: '#/components/schemas/getBuilds_200_response' + description: List the pipeline job's builds which authenticated user has access to. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization pipelines jobs build + post: + description: Create a new build for the job + operationId: createBuild + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: A pipeline name + in: path + name: inpath_pipeline_name + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[a-z0-9]+[a-z0-9\-_.]+[a-z0-9]+$ + type: string + - description: A job name + in: path + name: job_name + required: true + schema: + maxLength: 150 + minLength: 1 + type: string + responses: + '200': + content: + application/json: + example: + data: + id: 11406 + team_name: cycloid-products + name: '82' + status: failed + job_name: build-container-preprod + api_url: /api/v1/builds/11406 + pipeline_name: ci-website + pipeline_id: 3 + start_time: 1504185240 + end_time: 1504185344 + reap_time: 0 + schema: + $ref: '#/components/schemas/createBuild_200_response' + description: Create a new build for the pipeline's job and returns its details + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization pipelines jobs build + /organizations/{organization_canonical}/projects/{project_canonical}/pipelines/{inpath_pipeline_name}/builds/{build_id}/events: + get: + description: Get the events of a build. + operationId: getBuildEvents + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: A pipeline name + in: path + name: inpath_pipeline_name + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[a-z0-9]+[a-z0-9\-_.]+[a-z0-9]+$ + type: string + - description: A build id + in: path + name: build_id + required: true + schema: + maxLength: 20 + minLength: 1 + pattern: ^[0-9]+$ + type: string + responses: + '200': + content: {} + description: Stream is starting + headers: + Content-Type: + schema: + enum: + - text/event-stream + type: string + x-produces: + - text/event-stream + '403': + content: + text/event-stream: + schema: + $ref: '#/components/schemas/ErrorPayload' + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + text/event-stream: + schema: + $ref: '#/components/schemas/ErrorPayload' + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + text/event-stream: + schema: + $ref: '#/components/schemas/ErrorPayload' + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + security: + - api_key_query: [] + tags: + - Organization pipelines build + ? /organizations/{organization_canonical}/projects/{project_canonical}/pipelines/{inpath_pipeline_name}/jobs/{job_name}/builds/{build_id}/plan + : get: + description: Get the plan of the build. + operationId: getBuildPlan + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: A pipeline name + in: path + name: inpath_pipeline_name + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[a-z0-9]+[a-z0-9\-_.]+[a-z0-9]+$ + type: string + - description: A job name + in: path + name: job_name + required: true + schema: + maxLength: 150 + minLength: 1 + type: string + - description: A build id + in: path + name: build_id + required: true + schema: + maxLength: 20 + minLength: 1 + pattern: ^[0-9]+$ + type: string + responses: + '200': + content: + application/json: + example: + data: + schema: exec.v2 + plan: + id: 59b6ed1d + do: + - id: 59b6ed1b + get: + type: git + name: concourse + resource: concourse + version: + ref: 37a827fb8056bfb88848823f49ae8efe9515e2ea + - id: 59b6ed1c + task: + name: build + privileged: false + schema: + $ref: '#/components/schemas/getBuildPlan_200_response' + description: The information of the build's plan which has the specified id. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization pipelines jobs build + ? /organizations/{organization_canonical}/projects/{project_canonical}/pipelines/{inpath_pipeline_name}/jobs/{job_name}/builds/{build_id}/preparation + : get: + description: Get the preparation of the Build. + operationId: getBuildPreparation + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: A pipeline name + in: path + name: inpath_pipeline_name + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[a-z0-9]+[a-z0-9\-_.]+[a-z0-9]+$ + type: string + - description: A job name + in: path + name: job_name + required: true + schema: + maxLength: 150 + minLength: 1 + type: string + - description: A build id + in: path + name: build_id + required: true + schema: + maxLength: 20 + minLength: 1 + pattern: ^[0-9]+$ + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/getBuildPreparation_200_response' + description: Return the Preparation + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization pipelines jobs build + ? /organizations/{organization_canonical}/projects/{project_canonical}/pipelines/{inpath_pipeline_name}/jobs/{job_name}/builds/{build_id} + : get: + description: Get the information of the build. + operationId: getBuild + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: A pipeline name + in: path + name: inpath_pipeline_name + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[a-z0-9]+[a-z0-9\-_.]+[a-z0-9]+$ + type: string + - description: A job name + in: path + name: job_name + required: true + schema: + maxLength: 150 + minLength: 1 + type: string + - description: A build id + in: path + name: build_id + required: true + schema: + maxLength: 20 + minLength: 1 + pattern: ^[0-9]+$ + type: string + responses: + '200': + content: + application/json: + example: + data: + id: 11406 + team_name: cycloid-products + name: '82' + status: failed + job_name: build-container-preprod + api_url: /api/v1/builds/11406 + pipeline_name: ci-website + pipeline_id: 3 + start_time: 1504185240 + end_time: 1504185344 + reap_time: 0 + schema: + $ref: '#/components/schemas/createBuild_200_response' + description: The information of the build which has the specified id. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization pipelines jobs build + post: + description: Reruns a specific build. + operationId: rerunBuild + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: A pipeline name + in: path + name: inpath_pipeline_name + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[a-z0-9]+[a-z0-9\-_.]+[a-z0-9]+$ + type: string + - description: A job name + in: path + name: job_name + required: true + schema: + maxLength: 150 + minLength: 1 + type: string + - description: A build id + in: path + name: build_id + required: true + schema: + maxLength: 20 + minLength: 1 + pattern: ^[0-9]+$ + type: string + responses: + '200': + content: + application/json: + example: + data: + id: 11406 + team_name: cycloid-products + name: '82.1' + status: waiting + job_name: build-container-preprod + api_url: /api/v1/builds/11406 + pipeline_name: ci-website + pipeline_id: 3 + start_time: 1504185240 + end_time: 1504185344 + reap_time: 0 + schema: + $ref: '#/components/schemas/createBuild_200_response' + description: Returns the new build created from the specified build ID. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization pipelines jobs build + ? /organizations/{organization_canonical}/projects/{project_canonical}/pipelines/{inpath_pipeline_name}/jobs/{job_name}/builds/{build_id}/resources + : get: + description: Get the resources of the build. + operationId: getBuildResources + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: A pipeline name + in: path + name: inpath_pipeline_name + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[a-z0-9]+[a-z0-9\-_.]+[a-z0-9]+$ + type: string + - description: A job name + in: path + name: job_name + required: true + schema: + maxLength: 150 + minLength: 1 + type: string + - description: A build id + in: path + name: build_id + required: true + schema: + maxLength: 20 + minLength: 1 + pattern: ^[0-9]+$ + type: string + - description: The page number to request. The first page is 1. + in: query + name: page_index + schema: + default: 1 + format: uint32 + type: integer + - description: The number of items at most which the response can have. + in: query + name: page_size + schema: + default: 1000 + format: uint32 + type: integer + responses: + '200': + content: + application/json: + example: + data: + inputs: + - name: git-website-preprod + resource: git-website-preprod + type: git + version: + ref: 59ecb8ec73d7c4ea4c3827440ed1429268cf4c94 + metadata: + - name: commit + value: 59ecb8ec73d7c4ea4c3827440ed1429268cf4c94 + - name: author + value: Adrien Jerphagnon + - name: author_date + value: 2017-07-19 15:23:46 +0200 + - name: committer + value: Adrien Jerphagnon + - name: committer_date + value: 2017-07-19 15:23:46 +0200 + - name: branch + value: master + - name: message + value: Up assets version + pipeline_id: 238 + first_occurrence: true + - name: vault-preprod + resource: vault-preprod + type: vault + version: + date: '1500470493' + metadata: [] + pipeline_id: 238 + first_occurrence: true + - name: vault-preprod + resource: vault-preprod + type: vault + version: + date: '1500470521' + metadata: [] + pipeline_id: 238 + first_occurrence: true + outputs: + - id: 0 + name: website preprod + type: '' + metadata: [] + resource: ecr-website-preprod + version: + digest: sha256:58c226280d56dcfe5f7f1de2cce6f22eac36fa95ce8e1b9c604523c4a50d7401 + enabled: false + - id: 0 + name: slack alert preprod + type: '' + metadata: [] + resource: slack-alert-preprod + version: + timestamp: '1500470978' + enabled: false + schema: + $ref: '#/components/schemas/getBuildResources_200_response' + description: The resources of the build's which has the specified id. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization pipelines jobs build + /organizations/{organization_canonical}/projects/{project_canonical}/pipelines/{inpath_pipeline_name}/config: + get: + description: Get the YAML configuration of the pipeline. + operationId: getPipelineConfig + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: A pipeline name + in: path + name: inpath_pipeline_name + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[a-z0-9]+[a-z0-9\-_.]+[a-z0-9]+$ + type: string + responses: + '200': + content: + application/json: + example: + data: '{"resources":[{"name":"5m","type":"time","source":{"interval":"5m"}}],"jobs":[{"name":"job-hello-world","public":true,"plan":[{"get":"5m","trigger":true},{"task":"hello-world","privileged":true,"config":{"platform":"linux","image_resource":{"type":"docker-image","source":{"repository":"busybox"}},"run":{"path":"echo","args":["hello world"]}}}]}]}' + schema: + $ref: '#/components/schemas/getPipelineConfig_200_response' + description: This endpoint returns the config of the pipeline. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization pipelines + /organizations/{organization_canonical}/projects/{project_canonical}/pipelines/{inpath_pipeline_name}/jobs: + get: + description: Get the jobs of the pipeline that the authenticated user has access to. + operationId: getJobs + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: A pipeline name + in: path + name: inpath_pipeline_name + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[a-z0-9]+[a-z0-9\-_.]+[a-z0-9]+$ + type: string + - description: The page number to request. The first page is 1. + in: query + name: page_index + schema: + default: 1 + format: uint32 + type: integer + - description: The number of items at most which the response can have. + in: query + name: page_size + schema: + default: 1000 + format: uint32 + type: integer + responses: + '200': + content: + application/json: + example: + data: + - id: 1273 + name: code-validation-preprod + paused: false + pipeline_id: 1 + pipeline_name: fake-pipeline-0 + first_logged_build_id: 0 + disable_manual_trigger: false + next_build: + id: 11214 + team_name: ieijcu + name: some-build + status: running + pipeline_id: 1 + pipeline_name: fake-pipeline-0 + finished_build: + id: 11405 + team_name: cycloid-products + name: '33' + status: succeeded + job_name: code-validation-preprod + start_time: 1504185102 + end_time: 1504185134 + reap_time: 0 + pipeline_id: 1 + pipeline_name: fake-pipeline-0 + inputs: + - name: git-website-preprod + resource: git-website-preprod + passed: [] + trigger: true + tags: [] + outputs: [] + groups: + - all + - preprod + - id: 1274 + name: build-container-preprod + paused: false + first_logged_build_id: 0 + disable_manual_trigger: false + pipeline_id: 1 + pipeline_name: fake-pipeline-0 + next_build: + id: 11214 + team_name: ieijcu + name: some-build + status: running + pipeline_id: 1 + pipeline_name: fake-pipeline-0 + finished_build: + id: 11406 + team_name: cycloid-products + name: '82' + status: failed + job_name: build-container-preprod + start_time: 1504185240 + end_time: 1504185344 + reap_time: 0 + pipeline_id: 1 + pipeline_name: fake-pipeline-0 + inputs: + - name: git-website-preprod + resource: git-website-preprod + passed: + - code-validation-preprod + trigger: true + tags: [] + - name: vault-preprod + resource: vault-preprod + passed: [] + trigger: false + tags: [] + outputs: + - name: slack-alert-preprod + resource: slack-alert-preprod + - name: slack-alert-preprod + resource: slack-alert-preprod + - name: ecr-website-preprod + resource: ecr-website-preprod + groups: + - all + - preprod + - id: 1275 + name: tag-container-image-preprod + paused: false + first_logged_build_id: 0 + disable_manual_trigger: false + pipeline_id: 1 + pipeline_name: fake-pipeline-0 + next_build: + id: 11214 + team_name: ieijcu + name: some-build + status: running + pipeline_id: 1 + pipeline_name: fake-pipeline-0 + finished_build: + id: 10793 + team_name: cycloid-products + name: '16' + status: succeeded + job_name: tag-container-image-preprod + start_time: 1500471046 + end_time: 1500471211 + reap_time: 0 + pipeline_id: 1 + pipeline_name: fake-pipeline-0 + inputs: + - name: git-website-preprod + resource: git-website-preprod + passed: + - build-container-preprod + trigger: false + tags: [] + - name: ecr-website-preprod + resource: ecr-website-preprod + passed: + - build-container-preprod + trigger: true + tags: [] + outputs: + - name: ecr-website-preprod + resource: ecr-website-preprod + groups: + - all + - preprod + - id: 1276 + name: clean-container-preprod + paused: false + first_logged_build_id: 0 + disable_manual_trigger: false + pipeline_id: 1 + pipeline_name: fake-pipeline-0 + next_build: + id: 11214 + team_name: ieijcu + name: some-build + status: running + pipeline_id: 1 + pipeline_name: fake-pipeline-0 + finished_build: + id: 10794 + team_name: cycloid-products + name: '13' + status: succeeded + job_name: clean-container-preprod + start_time: 1500471262 + end_time: 1500471305 + reap_time: 0 + pipeline_id: 1 + pipeline_name: fake-pipeline-0 + inputs: + - name: ecr-website-preprod + resource: ecr-website-preprod + passed: + - tag-container-image-preprod + trigger: true + tags: [] + outputs: [] + groups: + - all + - preprod + pagination: + index: 1 + size: 10 + total: 4 + schema: + $ref: '#/components/schemas/getJobs_200_response' + description: List of the pipeline's jobs which authenticated user has access to. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization pipelines jobs + /organizations/{organization_canonical}/projects/{project_canonical}/pipelines/{inpath_pipeline_name}/jobs/{job_name}/pause: + put: + description: Pause a job + operationId: pauseJob + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: A pipeline name + in: path + name: inpath_pipeline_name + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[a-z0-9]+[a-z0-9\-_.]+[a-z0-9]+$ + type: string + - description: A job name + in: path + name: job_name + required: true + schema: + maxLength: 150 + minLength: 1 + type: string + responses: + '204': + content: {} + description: Job has been paused. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization pipelines jobs + /organizations/{organization_canonical}/projects/{project_canonical}/pipelines/{inpath_pipeline_name}/jobs/{job_name}: + get: + description: Get the information of the job. + operationId: getJob + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: A pipeline name + in: path + name: inpath_pipeline_name + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[a-z0-9]+[a-z0-9\-_.]+[a-z0-9]+$ + type: string + - description: A job name + in: path + name: job_name + required: true + schema: + maxLength: 150 + minLength: 1 + type: string + responses: + '200': + content: + application/json: + example: + data: + id: 1274 + name: build-container-preprod + paused: false + first_logged_build_id: 0 + disable_manual_trigger: false + next_build: + id: 11214 + team_name: ieijcu + name: some-build + status: running + api_url: /api/v1/builds/11408 + finished_build: + id: 11406 + team_name: cycloid-products + name: '82' + status: failed + job_name: build-container-preprod + api_url: /api/v1/builds/11406 + pipeline_name: ci-website + start_time: 1504185240 + end_time: 1504185344 + reap_time: 0 + inputs: + - name: git-website-preprod + resource: git-website-preprod + passed: + - code-validation-preprod + trigger: true + tags: [] + - name: vault-preprod + resource: vault-preprod + passed: [] + trigger: false + tags: [] + outputs: + - name: slack-alert-preprod + resource: slack-alert-preprod + - name: slack-alert-preprod + resource: slack-alert-preprod + - name: ecr-website-preprod + resource: ecr-website-preprod + groups: + - all + - preprod + schema: + $ref: '#/components/schemas/getJob_200_response' + description: The configuration of the job which has the specified name. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization pipelines jobs + ? /organizations/{organization_canonical}/projects/{project_canonical}/pipelines/{inpath_pipeline_name}/jobs/{job_name}/tasks/{step_name}/cache + : delete: + description: Clear task cache + operationId: clearTaskCache + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: A pipeline name + in: path + name: inpath_pipeline_name + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[a-z0-9]+[a-z0-9\-_.]+[a-z0-9]+$ + type: string + - description: A job name + in: path + name: job_name + required: true + schema: + maxLength: 150 + minLength: 1 + type: string + - description: A step name from a job task + in: path + name: step_name + required: true + schema: + maxLength: 150 + minLength: 1 + type: string + - description: The cache path to use as part of a clearTaskCache request + in: query + name: cache_path + schema: + type: string + responses: + '200': + content: + application/json: + example: + data: + caches_removed: 42 + schema: + $ref: '#/components/schemas/clearTaskCache_200_response' + description: Cache has been cleared. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization pipelines jobs + /organizations/{organization_canonical}/projects/{project_canonical}/pipelines/{inpath_pipeline_name}/jobs/{job_name}/unpause: + put: + description: Unpause a job + operationId: unpauseJob + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: A pipeline name + in: path + name: inpath_pipeline_name + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[a-z0-9]+[a-z0-9\-_.]+[a-z0-9]+$ + type: string + - description: A job name + in: path + name: job_name + required: true + schema: + maxLength: 150 + minLength: 1 + type: string + responses: + '204': + content: {} + description: Job has been unpause. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization pipelines jobs + /organizations/{organization_canonical}/projects/{project_canonical}/pipelines/{inpath_pipeline_name}/pause: + put: + description: Pause a pipeline + operationId: pausePipeline + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: A pipeline name + in: path + name: inpath_pipeline_name + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[a-z0-9]+[a-z0-9\-_.]+[a-z0-9]+$ + type: string + responses: + '204': + content: {} + description: Pipeline has been paused. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization pipelines + /organizations/{organization_canonical}/projects/{project_canonical}/pipelines/{inpath_pipeline_name}/rename: + put: + description: Rename a pipeline + operationId: renamePipeline + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: A pipeline name + in: path + name: inpath_pipeline_name + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[a-z0-9]+[a-z0-9\-_.]+[a-z0-9]+$ + type: string + - description: A pipeline name + in: query + name: pipeline_name + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[a-z0-9]+[a-z0-9\-_.]+[a-z0-9]+$ + type: string + responses: + '204': + content: {} + description: Pipeline has been renamed. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization pipelines + ? /organizations/{organization_canonical}/projects/{project_canonical}/pipelines/{inpath_pipeline_name}/resources/{resource_name}/check + : post: + description: Trigger a check for a specified resource. + operationId: checkResource + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: A pipeline name + in: path + name: inpath_pipeline_name + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[a-z0-9]+[a-z0-9\-_.]+[a-z0-9]+$ + type: string + - description: A resource name + in: path + name: resource_name + required: true + schema: + maxLength: 150 + minLength: 1 + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/CIVersion' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/CIVersion' + description: Check for new version from the specified version. + required: false + responses: + '200': + content: + application/json: + example: + data: + api_url: /api/v1/builds/62 + id: 62 + name: check + pipeline_id: 1 + pipeline_name: pipeline1 + resource_name: 5m + start_time: 1630426278 + status: started + team_name: 1359872e-88fe-47a7-8c55-923108823a55 + schema: + $ref: '#/components/schemas/createBuild_200_response' + description: The resource checked result. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization pipelines resources + x-codegen-request-body-name: body + /organizations/{organization_canonical}/projects/{project_canonical}/pipelines/{inpath_pipeline_name}/resources: + get: + description: Get the resources of the pipeline. + operationId: getPipelineResources + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: A pipeline name + in: path + name: inpath_pipeline_name + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[a-z0-9]+[a-z0-9\-_.]+[a-z0-9]+$ + type: string + - description: The page number to request. The first page is 1. + in: query + name: page_index + schema: + default: 1 + format: uint32 + type: integer + - description: The number of items at most which the response can have. + in: query + name: page_size + schema: + default: 1000 + format: uint32 + type: integer + responses: + '200': + content: + application/json: + example: + data: + - name: ecr-website-preprod + type: docker-image + groups: [] + paused: false + failing_to_check: false + check_error: '' + - name: git-website-preprod + type: git + groups: [] + paused: false + failing_to_check: false + check_error: '' + - name: vault-preprod + type: vault + groups: [] + paused: false + failing_to_check: false + check_error: '' + - name: slack-alert-preprod + type: slack-notification + groups: [] + paused: false + failing_to_check: false + check_error: '' + pagination: + index: 1 + size: 10 + total: 4 + schema: + $ref: '#/components/schemas/getPipelineResources_200_response' + description: The resources of the pipeline's which has the specified name. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization pipelines resources + ? /organizations/{organization_canonical}/projects/{project_canonical}/pipelines/{inpath_pipeline_name}/resources/{resource_name}/pin_comment + : put: + description: Set pin comment on a specified resource + operationId: resourceSetPinComment + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: A pipeline name + in: path + name: inpath_pipeline_name + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[a-z0-9]+[a-z0-9\-_.]+[a-z0-9]+$ + type: string + - description: A resource name + in: path + name: resource_name + required: true + schema: + maxLength: 150 + minLength: 1 + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/PinComment' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PinComment' + description: Specify the comment to put on a pinned resource. + required: true + responses: + '204': + content: {} + description: Resource pin has been commented + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization pipelines resources + x-codegen-request-body-name: body + /organizations/{organization_canonical}/projects/{project_canonical}/pipelines/{inpath_pipeline_name}/resources/{resource_name}: + get: + description: Get a specific resource of the pipeline. + operationId: getResource + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: A pipeline name + in: path + name: inpath_pipeline_name + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[a-z0-9]+[a-z0-9\-_.]+[a-z0-9]+$ + type: string + - description: A resource name + in: path + name: resource_name + required: true + schema: + maxLength: 150 + minLength: 1 + type: string + responses: + '200': + content: + application/json: + example: + data: + name: ecr-website-preprod + type: docker-image + groups: [] + paused: false + failing_to_check: false + check_error: '' + schema: + $ref: '#/components/schemas/getResource_200_response' + description: The resource of the pipeline's which has the specified name. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization pipelines resources + ? /organizations/{organization_canonical}/projects/{project_canonical}/pipelines/{inpath_pipeline_name}/resources/{resource_name}/unpin + : put: + description: Unpin a specified resource + operationId: unpinResource + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: A pipeline name + in: path + name: inpath_pipeline_name + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[a-z0-9]+[a-z0-9\-_.]+[a-z0-9]+$ + type: string + - description: A resource name + in: path + name: resource_name + required: true + schema: + maxLength: 150 + minLength: 1 + type: string + responses: + '204': + content: {} + description: Resource has been unpinned + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization pipelines resources + ? /organizations/{organization_canonical}/projects/{project_canonical}/pipelines/{inpath_pipeline_name}/resources/{resource_name}/versions + : get: + description: Get versions of a pipeline's resource + operationId: getResourceVersions + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: A pipeline name + in: path + name: inpath_pipeline_name + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[a-z0-9]+[a-z0-9\-_.]+[a-z0-9]+$ + type: string + - description: A resource name + in: path + name: resource_name + required: true + schema: + maxLength: 150 + minLength: 1 + type: string + - description: A version of a resource + explode: false + in: query + name: filter_version + schema: + items: + type: string + type: array + style: form + - description: The time after which we should look for entities to return. + in: query + name: concourse_page_since + schema: + default: 0 + format: uint64 + type: integer + - description: The time before which we should look for entities to return. + in: query + name: concourse_page_until + schema: + default: 0 + format: uint64 + type: integer + - description: The number of items at most which the response can have. + in: query + name: concourse_page_limit + schema: + default: 10 + format: uint64 + type: integer + responses: + '200': + content: + application/json: + example: + data: + - id: 45 + type: time + resource: time-resource + enabled: true + version: + time: 2018-06-07T16:12:02.037357287Z + - id: 46 + type: time + resource: time-resource + enabled: true + version: + time: 2018-06-07T16:13:02.037357287Z + pagination_concourse: + next: + since: 11402 + until: 0 + limit: 3 + previous: + since: 11896 + until: 0 + limit: 3 + schema: + $ref: '#/components/schemas/getResourceVersions_200_response' + description: Get versions of a specified resource. + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization pipelines resources + ? /organizations/{organization_canonical}/projects/{project_canonical}/pipelines/{inpath_pipeline_name}/resources/{resource_name}/versions/{resource_version_id}/disable + : put: + description: Disable a specified version of a resource + operationId: disableResourceVersion + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: A pipeline name + in: path + name: inpath_pipeline_name + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[a-z0-9]+[a-z0-9\-_.]+[a-z0-9]+$ + type: string + - description: A resource name + in: path + name: resource_name + required: true + schema: + maxLength: 150 + minLength: 1 + type: string + - description: A resource's version id + in: path + name: resource_version_id + required: true + schema: + format: uint64 + type: integer + responses: + '204': + content: {} + description: Resource version have been disabled + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization pipelines resources + ? /organizations/{organization_canonical}/projects/{project_canonical}/pipelines/{inpath_pipeline_name}/resources/{resource_name}/versions/{resource_version_id}/enable + : put: + description: Enable a specified version of a resource + operationId: enableResourceVersion + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: A pipeline name + in: path + name: inpath_pipeline_name + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[a-z0-9]+[a-z0-9\-_.]+[a-z0-9]+$ + type: string + - description: A resource name + in: path + name: resource_name + required: true + schema: + maxLength: 150 + minLength: 1 + type: string + - description: A resource's version id + in: path + name: resource_version_id + required: true + schema: + format: uint64 + type: integer + responses: + '204': + content: {} + description: Resource version have been enabled + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization pipelines resources + ? /organizations/{organization_canonical}/projects/{project_canonical}/pipelines/{inpath_pipeline_name}/resources/{resource_name}/versions/{resource_version_id}/input_to + : get: + description: Get builds that used a specified resource version as input. + operationId: getBuildsWithVersionAsInput + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: A pipeline name + in: path + name: inpath_pipeline_name + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[a-z0-9]+[a-z0-9\-_.]+[a-z0-9]+$ + type: string + - description: A resource name + in: path + name: resource_name + required: true + schema: + maxLength: 150 + minLength: 1 + type: string + - description: A resource's version id + in: path + name: resource_version_id + required: true + schema: + format: uint64 + type: integer + responses: + '200': + content: + application/json: + example: + data: + - id: 11406 + team_name: cycloid-products + name: '82' + status: failed + job_name: build-container-preprod + api_url: /api/v1/builds/11406 + pipeline_name: ci-website + pipeline_id: 3 + start_time: 1504185240 + end_time: 1504185344 + reap_time: 0 + - id: 11404 + team_name: cycloid-products + name: '81' + status: failed + job_name: build-container-preprod + api_url: /api/v1/builds/11404 + pipeline_name: ci-website + pipeline_id: 3 + start_time: 1504184979 + end_time: 1504185078 + reap_time: 0 + schema: + $ref: '#/components/schemas/getBuildsWithVersionAsInput_200_response' + description: The resource of the pipeline's which has the specified name. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization pipelines resources + ? /organizations/{organization_canonical}/projects/{project_canonical}/pipelines/{inpath_pipeline_name}/resources/{resource_name}/versions/{resource_version_id}/output_of + : get: + description: Get builds that used a specified resource version as output. + operationId: getBuildsWithVersionAsOutput + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: A pipeline name + in: path + name: inpath_pipeline_name + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[a-z0-9]+[a-z0-9\-_.]+[a-z0-9]+$ + type: string + - description: A resource name + in: path + name: resource_name + required: true + schema: + maxLength: 150 + minLength: 1 + type: string + - description: A resource's version id + in: path + name: resource_version_id + required: true + schema: + format: uint64 + type: integer + responses: + '200': + content: + application/json: + example: + data: + - id: 11406 + team_name: cycloid-products + name: '82' + status: failed + job_name: build-container-preprod + api_url: /api/v1/builds/11406 + pipeline_name: ci-website + pipeline_id: 3 + start_time: 1504185240 + end_time: 1504185344 + reap_time: 0 + - id: 11404 + team_name: cycloid-products + name: '81' + status: failed + job_name: build-container-preprod + api_url: /api/v1/builds/11404 + pipeline_name: ci-website + pipeline_id: 3 + start_time: 1504184979 + end_time: 1504185078 + reap_time: 0 + schema: + $ref: '#/components/schemas/getBuildsWithVersionAsInput_200_response' + description: The resource of the pipeline's which has the specified name. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization pipelines resources + ? /organizations/{organization_canonical}/projects/{project_canonical}/pipelines/{inpath_pipeline_name}/resources/{resource_name}/versions/{resource_version_id}/pin + : put: + description: Pin a specified version of a resource + operationId: pinResourceVersion + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: A pipeline name + in: path + name: inpath_pipeline_name + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[a-z0-9]+[a-z0-9\-_.]+[a-z0-9]+$ + type: string + - description: A resource name + in: path + name: resource_name + required: true + schema: + maxLength: 150 + minLength: 1 + type: string + - description: A resource's version id + in: path + name: resource_version_id + required: true + schema: + format: uint64 + type: integer + responses: + '204': + content: {} + description: Resource version has been pinned + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization pipelines resources + /organizations/{organization_canonical}/projects/{project_canonical}/pipelines/{inpath_pipeline_name}/unpause: + put: + description: Unpause a pipeline + operationId: unpausePipeline + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: A pipeline name + in: path + name: inpath_pipeline_name + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[a-z0-9]+[a-z0-9\-_.]+[a-z0-9]+$ + type: string + responses: + '204': + content: {} + description: Pipeline has been unpaused. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization pipelines + /organizations/{organization_canonical}/projects/{project_canonical}/pipelines/{inpath_pipeline_name}/variables: + get: + description: Get the YAML variables of the pipeline. + operationId: getPipelineVariables + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: A pipeline name + in: path + name: inpath_pipeline_name + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[a-z0-9]+[a-z0-9\-_.]+[a-z0-9]+$ + type: string + responses: + '200': + content: + application/json: + example: + data: + yaml_vars: 'var1: some_var' + has_saved_yaml_vars: true + schema: + $ref: '#/components/schemas/getPipelineVariables_200_response' + description: This endpoint returns the variables of the pipeline. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '409': + content: {} + description: Project has no config repository configured + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization pipelines + /organizations/{organization_canonical}/projects: + get: + description: Get list of projects of the organization. + operationId: getProjects + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: The page number to request. The first page is 1. + in: query + name: page_index + schema: + default: 1 + format: uint32 + type: integer + - description: The number of items at most which the response can have. + in: query + name: page_size + schema: + default: 1000 + format: uint32 + type: integer + - description: Search by project's name + in: query + name: project_name + schema: + type: string + - description: Search by project's creation date + in: query + name: project_created_at + schema: + format: uint64 + type: integer + - description: Search by project's description + in: query + name: project_description + schema: + type: string + - description: Search by project's config repository's canonical + in: query + name: project_config_repository_canonical + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: Organization Service Catalog Sources canonical + in: query + name: service_catalog_source_canonical + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: Search by entity's owner + in: query + name: member_id + schema: + format: uint32 + type: integer + - description: | + Allows to order the list of items. Example usage: field_name:asc + in: query + name: order_by + schema: + type: string + - description: | + Flag to retrieve favorite data from the members favorite list. + in: query + name: favorite + schema: + type: boolean + - description: A list of environments' canonical to filter from + in: query + name: environment_canonical + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + responses: + '200': + content: + application/json: + example: + data: + - canonical: proj-1 + description: my-description1 + id: 1 + cloud_provider: + id: 4 + canonical: aws + abbreviation: AWS + name: Amazon Web Services + created_at: 1503225026 + updated_at: 1503335026 + owner: + username: user-1 + id: 1 + given_name: Mariano + family_name: Jimenez + email: mariano.jimenez@fakeemail.com + picture_url: https://avatars2.githubusercontent.com/u/14579210 + created_at: 1503225026 + role: + id: 17 + name: existing + description: Organization existing role + canonical: role-can + rules: + - id: 1 + effect: allow + action: organization:delete + resources: + - organization:org-can + - organization:org-can2 + - id: 20 + effect: allow + action: organization:team:create + resources: [] + - id: 21 + effect: allow + action: organization:team:read + resources: + - organization:org-can:team:team-can + environments: + - dev + - staging + - production + service_catalog_name: Magento Stack + service_catalog_ref: cycloidio:stack-magento + created_at: 1503225026 + updated_at: 1503335026 + name: Project 1 + favorite: true + - canonical: proj2 + description: my-description2 + id: 1 + cloud_provider: + id: 2 + canonical: google + abbreviation: GCP + name: Google Cloud Platform + created_at: 1503225026 + updated_at: 1503335026 + environments: + - dev + - staging + service_catalog_name: Magento Stack 2 + service_catalog_ref: cycloidio:stack-magento2 + created_at: 1501131026 + updated_at: 1503333026 + name: Project 2 + favorite: true + - canonical: proj3 + description: my-description3 + id: 1 + environments: [] + service_catalog_name: Some other stack + service_catalog_ref: cycloidio:stack-something + created_at: 1500135021 + updated_at: 1503332021 + name: Project 3 + favorite: true + - canonical: proj-4 + description: my-description4 + id: 1 + owner: + username: user-2 + id: 10 + given_name: Mariana + family_name: Jimenezo + email: mariana.jimenezo@fakeemail.com + picture_url: https://avatars2.githubusercontent.com/u/14579210 + created_at: 1503225026 + role: + id: 17 + name: existing + description: Organization existing role + canonical: role-can + rules: + - id: 1 + effect: allow + action: organization:delete + resources: + - organization:org-can + - organization:org-can2 + - id: 20 + effect: allow + action: organization:team:create + resources: [] + - id: 21 + effect: allow + action: organization:team:read + resources: + - organization:org-can:team:team-can + environments: + - dev + - staging + - production + service_catalog_name: Magento Stack 3 + service_catalog_ref: cycloidio:stack-magento3 + created_at: 1500035021 + updated_at: 1502332021 + name: Project 4 + favorite: false + pagination: + index: 1 + size: 10 + total: 4 + schema: + $ref: '#/components/schemas/getProjects_200_response' + description: List of the projects which the organization has. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization projects + post: + description: Create a new project with pipelines in the organization. + operationId: createProject + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/NewProject' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/NewProject' + description: | + The information of the project to create. + required: true + responses: + '200': + content: + application/json: + example: + data: + id: 1 + canonical: proj3 + description: the-description + created_at: 1500135021 + updated_at: 1503332021 + name: Project 3 + service_catalog: + id: 1 + name: foo + canonical: stack-foo + author: Cycloid CI + description: CI sample + keywords: + - ci + ref: cycloid:stack-foo + directory: /config + service_catalog_source_id: 1 + trusted: true + owner: + username: user-1 + id: 1 + given_name: Mariano + family_name: Jimenez + email: mariano.jimenez@fakeemail.com + picture_url: https://avatars2.githubusercontent.com/u/14579210 + created_at: 1503225026 + role: + id: 17 + name: existing + description: Organization existing role + canonical: role-can + rules: + - id: 1 + effect: allow + action: organization:delete + resources: + - organization:org-can + - organization:org-can2 + - id: 20 + effect: allow + action: organization:team:create + resources: [] + - id: 21 + effect: allow + action: organization:team:read + resources: + - organization:org-can:team:team-can + schema: + $ref: '#/components/schemas/createProject_200_response' + description: Project created. The body contains the information of the new project of the organization. + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '411': + content: {} + description: The request has a body but it doesn't have a Content-Length header. + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization projects + x-codegen-request-body-name: body + /organizations/{organization_canonical}/projects/{project_canonical}/environments: + post: + description: Create a new environment with provider, icon and color in a project + operationId: createEnvironment + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/NewEnvironment' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/NewEnvironment' + description: The canonical of the environment to create and its configuration. + required: true + responses: + '200': + content: + application/json: + example: + data: + id: 1 + canonical: env + created_at: 1500135021 + updated_at: 1503332021 + use_case: prod + color: lime + icon: world + cloud_provider_canonical: aws + schema: + $ref: '#/components/schemas/createEnvironment_200_response' + description: Environment created. The body contains the information of the new environment. + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '411': + content: {} + description: The request has a body but it doesn't have a Content-Length header. + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization projects + x-codegen-request-body-name: body + /organizations/{organization_canonical}/projects/{project_canonical}/environments/{environment_canonical}: + delete: + description: Delete a project environment. + operationId: deleteEnvironment + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: The environment canonical to use as part of a path + in: path + name: environment_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + responses: + '204': + content: {} + description: Project environment has been deleted. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization projects + get: + description: Get a project environment of the organization. + operationId: getEnvironment + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: The environment canonical to use as part of a path + in: path + name: environment_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + responses: + '200': + content: + application/json: + example: + data: + use_case: prod + color: lime + icon: world + cloud_provider_canonical: aws + schema: + $ref: '#/components/schemas/createEnvironment_200_response' + description: The body contains the environment. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization projects + put: + description: Update a project environment of the organization. + operationId: updateEnvironment + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: The environment canonical to use as part of a path + in: path + name: environment_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/UpdateEnvironment' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UpdateEnvironment' + description: The canonical of the environment to update and its configuration. + required: true + responses: + '200': + content: + application/json: + example: + data: + use_case: prod + color: lime + icon: world + cloud_provider_canonical: aws + schema: + $ref: '#/components/schemas/createEnvironment_200_response' + description: Environment updated. The body contains the information of the updated environment. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization projects + x-codegen-request-body-name: body + /organizations/{organization_canonical}/projects/{project_canonical}/environment/{environment_canonical}/config: + get: + description: Fetch the current project's environment's configuration. + operationId: getProjectConfig + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: The environment canonical to use as part of a path + in: path + name: environment_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + responses: + '200': + content: + application/json: + example: + data: + use_case: prod + resource_pool_canonical: prcan + forms: + prod: + ansible: + database: + - widget: radios + default: + foo: bar + unit: ($, GHz, GB) + type: map + values: + - foo: bar + - bar: foo + description: '' + key: key-one + name: map variable + current: + foo: bar + - widget: dropdown + required: false + default: + - bar + - foo + values: + - - foo + - bar + - - bar + - foo + unit: ($, GHz, GB) + type: array + description: something k2 + key: key-two + name: array variable + current: + - bar + - foo + - widget: number + required: true + unit: something + type: integer + description: something k3 + key: key-three + name: required variable without default + terraform: + database: + - widget: slider_range + required: false + default: 2 + unit: ($, GHz, GB) + type: integer + description: something k1 + values: + - 1 + - 10 + key: key-one + name: integer variable + current: 10 + - widget: dropdown + required: true + default: 20 + unit: ($, GHz, GB) + type: integer + description: something k2 + values: + - 10 + - 20 + - 30 + key: key-two + name: required with default + - widget: slider_list + required: false + values: + - 1 + - 5 + unit: ($, GHz, GB) + type: integer + description: something k3 + key: key-three + name: not required no default + current: 1 + pipeline: + database: + - widget: cy_cred + default: t2.micro + unit: ($, GHz, GB) + type: string + description: something + values: + - t2.micro + - t2.medium + - t2.large + key: key-four + name: string with values and default + - widget: dropdown + required: false + unit: ($, GHz, GB) + type: integer + description: something k5 + key: key-five + values: + - 100 + - 200 + name: not required no default, but values + current: 152 + - widget: dropdown + required: false + unit: ($, GHz, GB) + type: integer + description: something k6 + key: key-six + name: not required no default, but values + current: 10 + values: + - 10 + - 40 + - 80 + schema: + $ref: '#/components/schemas/getProjectConfig_200_response' + description: Set of config to create the project / push onto repositories + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization projects + /organizations/{organization_canonical}/projects/{project_canonical}/favorites: + delete: + description: Remove a project from the user favorites list. + operationId: deleteProjectFavorite + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + responses: + '204': + content: {} + description: The project has been removed from user favorites list. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization projects + post: + description: Add a new project in the user favorites list. + operationId: createProjectFavorite + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + responses: + '204': + content: {} + description: The project has been added to user favorites list. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization projects + /organizations/{organization_canonical}/projects/{project_canonical}/environments/{environment_canonical}/infrastructure: + get: + description: Get the infrastructure of the Project on the environment + operationId: getProjInfrastructure + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + - description: The environment canonical to use as part of a path + in: path + name: environment_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + responses: + '200': + content: + application/json: + example: + data: + graph: + nodes: + - id: UUID-node-1 + canonical: aws_lb.front + position: + - 0 + - 0 + resource: + canonical: aws_lb + keywords: + - some + - key + category: some category + image: http://via.placeholder.com/150x150 + description: description of the resource + short_description: resource + is_node: true + is_edge: false + - id: UUID-node-2 + canonical: aws_instance.front + position: + - 0 + - 0 + resource: + canonical: aws_instance + keywords: + - some + - key + category: some category + image: http://via.placeholder.com/150x150 + description: description of the resource + short_description: resource + is_node: true + is_edge: false + edges: + - id: UUID-edge-1 + source: UUID-node-1 + target: UUID-node-2 + canonicals: + - aws_security_group.front + config: + resource: + aws_lb: + front: + access_logs.#: '1' + access_logs.0.bucket: '' + access_logs.0.enabled: 'false' + access_logs.0.prefix: '' + arn: arn:aws:elasticloadbalancing:eu-west-1:99999994:loadbalancer/app/amazon-front-prod/fa8c187e287baaf1 + arn_suffix: app/amazon-front-prod/fa8c187e287baaf1 + dns_name: amazon-front-prod-1234567890.eu-west-1.elb.amazonaws.com + enable_deletion_protection: 'false' + enable_http2: 'true' + id: arn:aws:elasticloadbalancing:eu-west-1:99999994:loadbalancer/app/amazon-front-prod/fa8c187e287baaf1 + idle_timeout: '600' + internal: 'false' + ip_address_type: ipv4 + load_balancer_type: application + name: amazon-front-prod + security_groups.#: '1' + security_groups.3982542233: sg-815549fb + subnet_mapping.#: '3' + subnet_mapping.1243641484.allocation_id: '' + subnet_mapping.1243641484.subnet_id: subnet-e8f5368e + subnet_mapping.1617803526.allocation_id: '' + subnet_mapping.1617803526.subnet_id: subnet-4caca117 + subnet_mapping.707871693.allocation_id: '' + subnet_mapping.707871693.subnet_id: subnet-08c11040 + subnets.#: '3' + subnets.1359096304: subnet-08c11040 + subnets.3529352084: subnet-4caca117 + subnets.4038704495: subnet-e8f5368e + tags.%: '6' + tags.Name: amazon-front-eu-we1-prod + tags.client: amazon + tags.cycloid.io: 'true' + tags.env: prod + tags.project: amazon + tags.role: front + vpc_id: vpc-5972c43f + zone_id: Z32O12XQLNTSW2 + aws_instance: + front: + ami: ami-0211a849817dcceca + arn: arn:aws:ec2:eu-west-1:99999992:instance/i-08ffccfdf54168280 + associate_public_ip_address: false + availability_zone: eu-west-1a + cpu_core_count: 1 + cpu_threads_per_core: 2 + credit_specification: + - cpu_credits: unlimited + disable_api_termination: false + ebs_block_device: [] + ebs_optimized: false + ephemeral_block_device: [] + get_password_data: false + iam_instance_profile: cycloid_profile-front-sample-magento-prod + id: i-08ffccfdf54168280 + instance_state: running + instance_type: t3.small + ipv6_address_count: 0 + ipv6_addresses: [] + key_name: cycloid + monitoring: false + network_interface: [] + password_data: '' + placement_group: '' + primary_network_interface_id: eni-01eac7f767b723514 + private_dns: ip-10-4-0-3.eu-west-1.compute.internal + private_ip: 10.4.0.3 + public_dns: '' + public_ip: '' + root_block_device: + - delete_on_termination: true + encrypted: false + iops: 180 + kms_key_id: '' + volume_id: vol-0a0da4a72f6548eb0 + volume_size: 60 + volume_type: gp2 + security_groups: [] + source_dest_check: true + subnet_id: subnet-7e131c1a + tags: + Name: sample-magento-front0-eu-we1-prod + bar: bla + client: cycloid + cycloid.io: 'true' + env: prod + foo: test + monitoring_discovery: 'false' + project: sample-magento + role: front + tenancy: default + volume_tags: + Name: sample-magento-front0-eu-we1-prod + bar: bla + client: cycloid + cycloid.io: 'true' + env: prod + foo: test + monitoring_discovery: 'false' + project: sample-magento + role: front + vpc_security_group_ids: + - sg-0d6e0e07fbc6ec626 + - sg-ddeee6bb + aws_security_group: + front: + cidr_blocks: + - 0.0.0.0/0 + description: '' + from_port: 443 + id: sgrule-3405156902 + ipv6_cidr_blocks: [] + prefix_list_ids: [] + protocol: tcp + security_group_id: sg-0f4d72e0081ca0c09 + self: false + to_port: 443 + type: ingress + schema: + $ref: '#/components/schemas/getProjInfrastructure_200_response' + description: Get the Infrastructure View of the Project's environment + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Infrastructure + /organizations/{organization_canonical}/projects/{project_canonical}: + delete: + description: Delete a project of the organization. + operationId: deleteProject + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + responses: + '204': + content: {} + description: Project has been deleted. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization projects + get: + description: Get a project of the organization. + operationId: getProject + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + responses: + '200': + content: + application/json: + example: + data: + id: 1 + canonical: proj2 + environments: + - id: 2 + canonical: staging + created_at: 1503225026 + updated_at: 1503335026 + use_case: uc + - id: 3 + canonical: dev + created_at: 1503225026 + updated_at: 1503335026 + use_case: uc2 + created_at: 1501131026 + updated_at: 1503333026 + name: Project 2 + service_catalog: + id: 1 + name: foo + canonical: stack-foo + author: Cycloid CI + description: CI sample + keywords: + - ci + ref: cycloid:stack-foo + directory: /config + service_catalog_source_id: 1 + trusted: true + owner: + username: user-1 + id: 1 + given_name: Mariano + family_name: Jimenez + email: mariano.jimenez@fakeemail.com + picture_url: https://avatars2.githubusercontent.com/u/14579210 + created_at: 1503225026 + role: + id: 17 + name: existing + description: Organization existing role + canonical: role-can + rules: + - id: 1 + effect: allow + action: organization:delete + resources: + - organization:org-can + - organization:org-can2 + - id: 20 + effect: allow + action: organization:team:create + resources: [] + - id: 21 + effect: allow + action: organization:team:read + resources: + - organization:org-can:team:team-can + schema: + $ref: '#/components/schemas/createProject_200_response' + description: The information of the project of the organization which has the specified ID. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization projects + put: + description: Update the information of a project of the organization. If the project has some information on the fields which aren't required and they are not sent or set to their default values, which depend of their types, the information will be removed. + operationId: updateProject + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/UpdateProject' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UpdateProject' + description: The information of the project to update. + required: true + responses: + '200': + content: + application/json: + example: + data: + id: 1 + canonical: proj-1 + service_catalog: + id: 1 + name: foo + canonical: stack-foo + author: Cycloid CI + description: CI sample + keywords: + - ci + ref: cycloid:stack-foo + directory: /config + service_catalog_source_id: 1 + trusted: true + owner: + username: user-1 + id: 10 + given_name: Mariano + family_name: Jimenez + email: mariano.jimenez@fakeemail.com + picture_url: https://avatars2.githubusercontent.com/u/14579210 + created_at: 1503225026 + role: + id: 17 + name: existing + description: Organization existing role + canonical: role-can + rules: + - id: 1 + effect: allow + action: organization:delete + resources: + - organization:org-can + - organization:org-can2 + - id: 20 + effect: allow + action: organization:team:create + resources: [] + - id: 21 + effect: allow + action: organization:team:read + resources: + - organization:org-can:team:team-can + created_at: 1503225026 + updated_at: 1503335026 + name: Project 1 + service_catalog_ref: cycloidio:stack-magento + config_repository_canonical: stack-magento-cr + schema: + $ref: '#/components/schemas/createProject_200_response' + description: Project updated. The body contains information of the updated project. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '411': + content: {} + description: The request has a body but it doesn't have a Content-Length header. + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization projects + x-codegen-request-body-name: body + /organizations/{organization_canonical}/quotas: + get: + description: List of quotas available in the organization. + operationId: listQuotas + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: The page number to request. The first page is 1. + in: query + name: page_index + schema: + default: 1 + format: uint32 + type: integer + - description: The number of items at most which the response can have. + in: query + name: page_size + schema: + default: 1000 + format: uint32 + type: integer + responses: + '200': + content: + application/json: + example: + data: + - id: 17 + memory: 10 + cpu: 11 + storage: 12 + used_memory: 10 + used_cpu: 11 + used_storage: 12 + - id: 2 + memory: 10 + cpu: 11 + storage: 12 + used_memory: 10 + used_cpu: 11 + used_storage: 12 + pagination: + index: 1 + size: 10 + total: 2 + schema: + $ref: '#/components/schemas/listQuotas_200_response' + description: List of quotas which are available in the organization. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Quotas + post: + description: Create a new quota available in the organization. + operationId: createQuota + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/NewQuota' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/NewQuota' + description: The information of the organization's quota to create. + required: true + responses: + '200': + content: + application/json: + example: + data: + id: 17 + memory: 10 + cpu: 11 + storage: 12 + used_memory: 10 + used_cpu: 11 + used_storage: 12 + schema: + $ref: '#/components/schemas/createQuota_200_response' + description: New quota created in the organization. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Quotas + x-codegen-request-body-name: body + /organizations/{organization_canonical}/quotas/{quota_id}: + delete: + description: Delete an existing quota in the organization. + operationId: deleteQuota + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: Quota ID + in: path + name: quota_id + required: true + schema: + format: uint32 + type: integer + responses: + '204': + content: {} + description: Organization quota has been deleted. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Quotas + get: + description: Get the quota available in the organization with an canonical + operationId: getQuota + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: Quota ID + in: path + name: quota_id + required: true + schema: + format: uint32 + type: integer + responses: + '200': + content: + application/json: + example: + data: + id: 17 + memory: 10 + cpu: 11 + storage: 12 + used_memory: 10 + used_cpu: 11 + used_storage: 12 + schema: + $ref: '#/components/schemas/createQuota_200_response' + description: Quota available in the organization with such canonical. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Quotas + put: + description: Update an existing quota in the organization. + operationId: updateQuota + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: Quota ID + in: path + name: quota_id + required: true + schema: + format: uint32 + type: integer + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/UpdateQuota' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UpdateQuota' + description: The information of the organization's quota to update. + required: true + responses: + '200': + content: + application/json: + example: + data: + memory: 10 + cpu: 11 + storage: 12 + used_memory: 10 + used_cpu: 11 + used_storage: 12 + schema: + $ref: '#/components/schemas/createQuota_200_response' + description: Updated quota belonging to the organization. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Quotas + x-codegen-request-body-name: body + /organizations/{organization_canonical}/quotas/{quota_id}/consumptions: + get: + description: Get the quota consumptions by project and environment + operationId: listQuotaConsumptions + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: Quota ID + in: path + name: quota_id + required: true + schema: + format: uint32 + type: integer + responses: + '200': + content: + application/json: + example: + data: + id: 17 + memory: 10 + cpu: 11 + storage: 12 + project: + id: 1 + canonical: proj2 + name: prj + created_at: 1501131026 + updated_at: 1503333026 + owner: + username: user-1 + id: 1 + given_name: Mariano + family_name: Jimenez + email: mariano.jimenez@fakeemail.com + picture_url: https://avatars2.githubusercontent.com/u/14579210 + created_at: 1503225026 + environment: + id: 3 + canonical: dev + cloud_provider: + canonical: aws + abbreviation: AWS + name: Amazon Web Services + created_at: 1503225026 + updated_at: 1503335026 + schema: + $ref: '#/components/schemas/listQuotaConsumptions_200_response' + description: Quota available in the organization with such canonical. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Quotas + /organizations/{organization_canonical}/resource_pools: + get: + description: List of resource pools available in the organization. + operationId: listResourcePools + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: The page number to request. The first page is 1. + in: query + name: page_index + schema: + default: 1 + format: uint32 + type: integer + - description: The number of items at most which the response can have. + in: query + name: page_size + schema: + default: 1000 + format: uint32 + type: integer + responses: + '200': + content: + application/json: + example: + data: + - id: 17 + name: Prod Pool + canonical: prod_pool + label: production + memory: 10 + cpu: 11 + storage: 12 + used_memory: 10 + used_cpu: 11 + used_storage: 12 + allocated_memory: 10 + allocated_cpu: 11 + allocated_storage: 12 + - id: 2 + name: Stating Pool + canonical: staging_pool + label: staging + memory: 10 + cpu: 11 + storage: 12 + used_memory: 10 + used_cpu: 11 + used_storage: 12 + allocated_memory: 10 + allocated_cpu: 11 + allocated_storage: 12 + pagination: + index: 1 + size: 10 + total: 2 + schema: + $ref: '#/components/schemas/listResourcePools_200_response' + description: List of resource pools which are available in the organization. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Resource Pools + post: + description: Create a new resource pool available in the organization. + operationId: createResourcePool + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/NewResourcePool' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/NewResourcePool' + description: The information of the organization's resource_pool to create. + required: true + responses: + '200': + content: + application/json: + example: + data: + name: existing + canonical: resource_pool_can + label: staging + schema: + $ref: '#/components/schemas/createResourcePool_200_response' + description: New resource pool created in the organization. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Resource Pools + x-codegen-request-body-name: body + /organizations/{organization_canonical}/resource_pools/{resource_pool_canonical}: + delete: + description: Delete an existing resource_pool in the organization. + operationId: deleteResourcePool + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: Organization Resource Pool canonical + in: path + name: resource_pool_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + '204': + content: {} + description: Organization resource_pool has been deleted. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Resource Pools + get: + description: Get the resource pool available in the organization with an canonical + operationId: getResourcePool + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: Organization Resource Pool canonical + in: path + name: resource_pool_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + '200': + content: + application/json: + example: + data: + id: 17 + name: Prod Pool + canonical: prod_pool + label: production + memory: 10 + cpu: 11 + storage: 12 + used_memory: 10 + used_cpu: 11 + used_storage: 12 + allocated_memory: 10 + allocated_cpu: 11 + allocated_storage: 12 + schema: + $ref: '#/components/schemas/createResourcePool_200_response' + description: ResourcePool available in the organization with such canonical. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization ResourcePools + put: + description: Update an existing resource_pool in the organization. + operationId: updateResourcePool + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: Organization Resource Pool canonical + in: path + name: resource_pool_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/NewResourcePool' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/NewResourcePool' + description: The information of the organization's resource_pool to update. + required: true + responses: + '200': + content: + application/json: + example: + data: + id: 17 + name: Prod Pool + canonical: prod_pool + label: production + memory: 10 + cpu: 11 + storage: 12 + used_memory: 10 + used_cpu: 11 + used_storage: 12 + allocated_memory: 10 + allocated_cpu: 11 + allocated_storage: 12 + schema: + $ref: '#/components/schemas/createResourcePool_200_response' + description: Updated resource pool belonging to the organization. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Resource Pools + x-codegen-request-body-name: body + /organizations/{organization_canonical}/roles: + get: + description: Get the list of roles available in the organization. + operationId: getRoles + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: The page number to request. The first page is 1. + in: query + name: page_index + schema: + default: 1 + format: uint32 + type: integer + - description: The number of items at most which the response can have. + in: query + name: page_size + schema: + default: 1000 + format: uint32 + type: integer + responses: + '200': + content: + application/json: + example: + data: + - id: 17 + name: existing + description: Organization existing role + canonical: role-can + rules: + - id: 1 + effect: allow + action: organization:delete + resources: + - organization:org-can + - organization:org-can2 + - id: 20 + effect: allow + action: organization:team:create + resources: [] + - id: 21 + effect: allow + action: organization:team:read + resources: + - organization:org-can:team:team-can + - id: 2 + name: project manager + canonical: role-can2 + description: A project manager + rules: + - id: 20 + effect: allow + action: organization:team:create + resources: [] + - id: 21 + effect: allow + action: organization:team:read + resources: + - organization:org-can:team:team-can + pagination: + index: 1 + size: 10 + total: 2 + schema: + $ref: '#/components/schemas/getRoles_200_response' + description: List of roles which are available in the organization. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Roles + post: + description: Create a new role available in the organization. + operationId: createRole + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/NewRole' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/NewRole' + description: The information of the organization's role to create. + required: true + responses: + '200': + content: + application/json: + example: + data: + id: 17 + name: existing + description: Organization existing role + canonical: role-can + rules: + - id: 1 + effect: allow + action: organization:delete + resources: + - organization:org-can + - organization:org-can2 + - id: 20 + effect: allow + action: organization:team:create + resources: [] + - id: 21 + effect: allow + action: organization:team:read + resources: + - organization:org-can:team:team-can + schema: + $ref: '#/components/schemas/createRole_200_response' + description: New role created in the organization. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Roles + x-codegen-request-body-name: body + /organizations/{organization_canonical}/roles/{role_canonical}: + delete: + description: Delete an existing role in the organization. + operationId: deleteRole + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: Organization Role canonical + in: path + name: role_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + '204': + content: {} + description: Organization role has been deleted. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Roles + get: + description: Get the role available in the organization with an canonical + operationId: getRole + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: Organization Role canonical + in: path + name: role_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + '200': + content: + application/json: + example: + data: + id: 17 + name: existing + description: Organization existing role + canonical: role-can + rules: + - id: 1 + effect: allow + action: organization:delete + resources: + - organization:org-can + - organization:org-can2 + - id: 20 + effect: allow + action: organization:team:create + resources: [] + - id: 21 + effect: allow + action: organization:team:read + resources: + - organization:org-can:team:team-can + schema: + $ref: '#/components/schemas/getRole_200_response' + description: Role available in the organization with such canonical. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Roles + put: + description: Update an existing role in the organization. + operationId: updateRole + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: Organization Role canonical + in: path + name: role_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/NewRole' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/NewRole' + description: The information of the organization's role to update. + required: true + responses: + '200': + content: + application/json: + example: + data: + id: 17 + name: existing + description: Organization existing role + canonical: role-can + rules: + - id: 1 + effect: allow + action: organization:delete + resources: + - organization:org-can + - organization:org-can2 + - id: 20 + effect: allow + action: organization:team:create + resources: [] + - id: 21 + effect: allow + action: organization:team:read + resources: + - organization:org-can:team:team-can + schema: + $ref: '#/components/schemas/getRole_200_response' + description: Updated role belonging to the organization. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Roles + x-codegen-request-body-name: body + /organizations/{organization_canonical}/service_catalog_sources: + get: + description: Return all the private service catalogs + operationId: getServiceCatalogSources + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: The page number to request. The first page is 1. + in: query + name: page_index + schema: + default: 1 + format: uint32 + type: integer + - description: The number of items at most which the response can have. + in: query + name: page_size + schema: + default: 1000 + format: uint32 + type: integer + responses: + '200': + content: + application/json: + example: + data: + - id: 1 + canonical: my-personal-repo + name: My personal repo + url: git@github.com:myuser/repository.git + credential_id: 1 + created_at: 1503225026 + updated_at: 1503335026 + branch: my-favourite-branch + stack_count: 1 + owner: + username: user-1 + id: 1 + given_name: Mariano + family_name: Jimenez + email: mariano.jimenez@fakeemail.com + picture_url: https://avatars2.githubusercontent.com/u/14579210 + created_at: 1503225026 + role: + id: 3 + name: developer + description: A developer of the team + policies: + - id: 21 + code: team:read + entities: [] + description: Grant the access to read the teams of an organization + - id: 42 + code: member:read + entities: [] + description: Grant the access to read the members + service_catalogs: + - id: 1 + name: foo + canonical: stack-foo + directory: /config + author: Cycloid CI + description: CI sample + keywords: + - ci + ref: cycloid:stack-foo + service_catalog_source_id: 1 + trusted: true + - id: 2 + canonical: my-personal-repo-2 + name: My personal repo 2 + url: https://github.com/cycloid-community-catalog/stack-dummy.git + created_at: 1503225026 + updated_at: 1503335026 + branch: my-second-favourite-branch + stack_count: 4 + owner: + username: user-1 + id: 1 + given_name: Mariano + family_name: Jimenez + email: mariano.jimenez@fakeemail.com + picture_url: https://avatars2.githubusercontent.com/u/14579210 + created_at: 1503225026 + role: + id: 3 + name: developer + description: A developer of the team + policies: + - id: 21 + code: team:read + entities: [] + description: Grant the access to read the teams of an organization + - id: 42 + code: member:read + entities: [] + description: Grant the access to read the members + - id: 60 + code: project:read + entities: [] + description: Grant the access to projects + service_catalogs: + - id: 2 + name: bar + canonical: stack-bar + author: Cycloid CI + description: CI sample + keywords: + - ci + ref: cycloid:stack-bar + directory: /cfg + service_catalog_source_id: 2 + trusted: true + pagination: + index: 1 + size: 10 + total: 2 + schema: + $ref: '#/components/schemas/getServiceCatalogSources_200_response' + description: List of the private service catalogs. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Service Catalog Sources + post: + description: Creates a Service catalog source + operationId: createServiceCatalogSource + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/NewServiceCatalogSource' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/NewServiceCatalogSource' + description: The information of the organization to create. + required: true + responses: + '200': + content: + application/json: + example: + data: + id: 1 + canonical: my-personal-repo + name: My personal repo + url: git@github.com:myuser/repository.git + credential_id: 1 + created_at: 1503225026 + updated_at: 1503335026 + branch: my-scs-branch + stack_count: 1 + owner: + username: user-1 + id: 1 + given_name: Mariano + family_name: Jimenez + email: mariano.jimenez@fakeemail.com + picture_url: https://avatars2.githubusercontent.com/u/14579210 + created_at: 1503225026 + role: + id: 3 + name: developer + description: A developer of the team + policies: + - id: 21 + code: team:read + entities: [] + description: Grant the access to read the teams of an organization + - id: 42 + code: member:read + entities: [] + description: Grant the access to read the members + - id: 60 + code: project:read + entities: [] + description: Grant the access to projects + service_catalogs: + - id: 1 + name: foo + canonical: stack-foo + author: Cycloid CI + description: CI sample + keywords: + - ci + ref: cycloid:stack-foo + directory: /config + service_catalog_source_id: 1 + trusted: true + schema: + $ref: '#/components/schemas/createServiceCatalogSource_200_response' + description: Success creation + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '411': + content: {} + description: The request has a body but it doesn't have a Content-Length header. + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Service Catalog Sources + x-codegen-request-body-name: body + /organizations/{organization_canonical}/service_catalog_sources/{service_catalog_source_canonical}/refresh: + post: + description: Refresh a Service catalog source + operationId: refreshServiceCatalogSource + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: Organization Service Catalog Sources canonical + in: path + name: service_catalog_source_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + '200': + content: + application/json: + example: + data: + id: 1 + canonical: my-personal-repo + name: My personal repo + url: git@github.com:cycloidio/youdeploy-http-api.git + credential_id: 1 + created_at: 1503225026 + updated_at: 1503335026 + branch: my-favourite-branch + changes: + created: + - id: 1 + name: foo + canonical: stack-foo + author: Cycloid CI + description: CI sample + keywords: + - ci + ref: cycloid:stack-foo + directory: /config + service_catalog_source_id: 1 + trusted: true + updated: + - id: 2 + name: foo2 + canonical: stack-foo2 + author: Cycloid CI + description: CI sample + keywords: + - ci + ref: cycloid:stack-foo2 + directory: /config/prod + service_catalog_source_id: 1 + trusted: true + deleted: + - id: 3 + name: fo3 + canonical: stack-foo3 + author: Cycloid CI + description: CI sample + keywords: + - ci + ref: cycloid:stack-foo3 + directory: / + service_catalog_source_id: 1 + trusted: true + schema: + $ref: '#/components/schemas/refreshServiceCatalogSource_200_response' + description: Success refresh + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '411': + content: {} + description: The request has a body but it doesn't have a Content-Length header. + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Service Catalog Sources + /organizations/{organization_canonical}/service_catalog_sources/{service_catalog_source_canonical}: + delete: + description: delete a Service catalog source + operationId: deleteServiceCatalogSource + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: Organization Service Catalog Sources canonical + in: path + name: service_catalog_source_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + '204': + content: {} + description: Organization Service Catalog Sources has been deleted + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Service Catalog Sources + get: + description: Return the Service Catalog Source + operationId: getServiceCatalogSource + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: Organization Service Catalog Sources canonical + in: path + name: service_catalog_source_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: The page number to request. The first page is 1. + in: query + name: page_index + schema: + default: 1 + format: uint32 + type: integer + - description: The number of items at most which the response can have. + in: query + name: page_size + schema: + default: 1000 + format: uint32 + type: integer + responses: + '200': + content: + application/json: + example: + data: + id: 1 + canonical: my-personal-repo + name: My personal repo + url: git@github.com:myuser/repository.git + created_at: 1503225026 + updated_at: 1503335026 + credential_id: 1 + branch: my-scs-branch + stack_count: 1 + service_catalogs: + - id: 1 + name: foo + canonical: stack-foo + author: Cycloid CI + description: CI sample + keywords: + - ci + ref: cycloid:stack-foo + directory: /config + service_catalog_source_id: 1 + trusted: true + owner: + username: user-1 + id: 1 + given_name: Mariano + family_name: Jimenez + email: mariano.jimenez@fakeemail.com + picture_url: https://avatars2.githubusercontent.com/u/14579210 + created_at: 1503225026 + role: + id: 3 + name: developer + description: A developer of the team + policies: + - id: 21 + code: team:read + entities: [] + description: Grant the access to read the teams of an organization + - id: 42 + code: member:read + entities: [] + description: Grant the access to read the members + schema: + $ref: '#/components/schemas/createServiceCatalogSource_200_response' + description: Organization Service Catalog Sources. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Service Catalog Sources + put: + description: Update a Service catalog source + operationId: updateServiceCatalogSource + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: Organization Service Catalog Sources canonical + in: path + name: service_catalog_source_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/UpdateServiceCatalogSource' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UpdateServiceCatalogSource' + description: The information of the organization to create. + required: true + responses: + '200': + content: + application/json: + example: + data: + id: 1 + canonical: my-personal-repo + name: My personal repo + url: git@github.com:myuser/repository.git + credential_id: 1 + created_at: 1503225026 + updated_at: 1503335026 + branch: my-favourite-branch + stack_count: 1 + owner: + username: user-1 + id: 1 + given_name: Mariano + family_name: Jimenez + email: mariano.jimenez@fakeemail.com + picture_url: https://avatars2.githubusercontent.com/u/14579210 + created_at: 1503225026 + role: + id: 3 + name: developer + description: A developer of the team + policies: + - id: 21 + code: team:read + entities: [] + description: Grant the access to read the teams of an organization + - id: 42 + code: member:read + entities: [] + description: Grant the access to read the members + service_catalogs: + created: + - id: 1 + name: foo + canonical: stack-foo + author: Cycloid CI + description: CI sample + keywords: + - ci + ref: cycloid:stack-foo + directory: /config + service_catalog_source_id: 1 + trusted: true + updated: + - id: 2 + name: foo2 + canonical: stack-foo2 + author: Cycloid CI + description: CI sample + keywords: + - ci + ref: cycloid:stack-foo2 + directory: /config/prod + service_catalog_source_id: 1 + trusted: true + deleted: + - id: 3 + name: fo3 + canonical: stack-foo3 + author: Cycloid CI + description: CI sample + keywords: + - ci + ref: cycloid:stack-foo3 + directory: / + service_catalog_source_id: 1 + trusted: true + schema: + $ref: '#/components/schemas/createServiceCatalogSource_200_response' + description: Success update + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '411': + content: {} + description: The request has a body but it doesn't have a Content-Length header. + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Service Catalog Sources + x-codegen-request-body-name: body + /organizations/{organization_canonical}/service_catalog_sources/{service_catalog_source_canonical}/validate: + post: + description: Validate a Service catalog source + operationId: validateServiceCatalogSource + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: Organization Service Catalog Sources canonical + in: path + name: service_catalog_source_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + '204': + content: {} + description: The SCS has been validated + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '411': + content: {} + description: The request has a body but it doesn't have a Content-Length header. + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Service Catalog Sources + /organizations/{organization_canonical}/subscriptions: + post: + description: Creates a subscription for the Organization + operationId: createSubscription + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/NewSubscription' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/NewSubscription' + description: The information of the subscription to create + required: true + responses: + '204': + content: {} + description: Created Subscription + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '411': + content: {} + description: The request has a body but it doesn't have a Content-Length header. + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization Subscriptions + x-codegen-request-body-name: body + /organizations/{organization_canonical}/teams: + get: + description: Get list of teams of the organization. + operationId: getTeams + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: The page number to request. The first page is 1. + in: query + name: page_index + schema: + default: 1 + format: uint32 + type: integer + - description: The number of items at most which the response can have. + in: query + name: page_size + schema: + default: 1000 + format: uint32 + type: integer + - description: Search by team's name + in: query + name: team_name + schema: + type: string + - description: Search by team's creation date + in: query + name: team_created_at + schema: + format: uint64 + type: integer + - description: Search by team's description + in: query + name: team_description + schema: + type: string + - description: Search by entity's owner + in: query + name: member_id + schema: + format: uint32 + type: integer + - description: | + Allows to order the list of items. Example usage: field_name:asc + in: query + name: order_by + schema: + type: string + responses: + '200': + content: + application/json: + example: + data: + - canonical: team1 + id: 1 + created_at: 1503225026 + updated_at: 1503335026 + name: Team 1 + owner: + id: 99 + username: superuser + given_name: Owen + family_name: Smith + email: superuser@company.com + created_at: 1503225026 + role: + id: 17 + name: existing + description: Organization existing role + canonical: role-can + rules: + - id: 1 + effect: allow + action: organization:delete + resources: + - organization:org-can + - organization:org-can2 + - id: 20 + effect: allow + action: organization:team:create + resources: [] + - id: 21 + effect: allow + action: organization:team:read + resources: + - organization:org-can:team:team-can + roles: + - id: 17 + name: existing + description: Organization existing role + canonical: role-can + rules: + - id: 1 + effect: allow + action: organization:delete + resources: + - organization:org-can + - organization:org-can2 + - id: 20 + effect: allow + action: organization:team:create + resources: [] + - id: 21 + effect: allow + action: organization:team:read + resources: + - organization:org-can:team:team-can + member_count: 12 + members_preview: + - id: 42 + username: coder + given_name: Cody + family_name: Coder + email: coder@company.com + created_at: 678123 + - id: 43 + username: tester + given_name: Tony + family_name: Tester + email: tester@company.com + created_at: 678123 + pagination: + index: 1 + size: 10 + total: 1 + schema: + $ref: '#/components/schemas/getTeams_200_response' + description: List of the teams which the organization has. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization teams + post: + description: Create a new team in the organization. + operationId: createTeam + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/NewTeam' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/NewTeam' + description: The information of the team to create. + required: true + responses: + '200': + content: + application/json: + example: + data: + id: 1 + canonical: team1 + created_at: 1503225026 + updated_at: 1503335026 + name: Team 1 + owner: + id: 99 + username: superuser + given_name: Owen + family_name: Smith + email: superuser@company.com + created_at: 1503225026 + role: + id: 17 + name: existing + description: Organization existing role + canonical: role-can + rules: + - id: 1 + effect: allow + action: organization:delete + resources: + - organization:org-can + - organization:org-can2 + - id: 20 + effect: allow + action: organization:team:create + resources: [] + - id: 21 + effect: allow + action: organization:team:read + resources: + - organization:org-can:team:team-can + roles: + - id: 17 + name: existing + description: Organization existing role + canonical: role-can + rules: + - id: 1 + effect: allow + action: organization:delete + resources: + - organization:org-can + - organization:org-can2 + - id: 20 + effect: allow + action: organization:team:create + resources: [] + - id: 21 + effect: allow + action: organization:team:read + resources: + - organization:org-can:team:team-can + - id: 10 + name: existing + description: Organization existing role + canonical: role-can + rules: + - id: 1 + effect: allow + action: organization:delete + resources: + - organization:org-can + - organization:org-can2 + - id: 21 + effect: allow + action: organization:team:read + resources: + - organization:org-can:team:team-can + member_count: 12 + members_preview: + - id: 42 + username: coder + given_name: Cody + family_name: Coder + email: coder@company.com + created_at: 678123 + - id: 43 + username: tester + given_name: Tony + family_name: Tester + email: tester@company.com + created_at: 678123 + schema: + $ref: '#/components/schemas/createTeam_200_response' + description: Team created. The body contains the information of the new team of the organization. + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '411': + content: {} + description: The request has a body but it doesn't have a Content-Length header. + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization teams + x-codegen-request-body-name: body + /organizations/{organization_canonical}/teams/{team_canonical}/members: + get: + description: Get the members of a team of the organization. + operationId: getTeamMembers + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a team. + in: path + name: team_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: The page number to request. The first page is 1. + in: query + name: page_index + schema: + default: 1 + format: uint32 + type: integer + - description: The number of items at most which the response can have. + in: query + name: page_size + schema: + default: 1000 + format: uint32 + type: integer + responses: + '200': + content: + application/json: + example: + data: + - username: user-1 + id: 1 + given_name: Mariano + family_name: Jimenez + email: mariano.jimenez@fakeemail.com + picture_url: https://avatars2.githubusercontent.com/u/14579210 + created_at: 1503225026 + last_login_at: 1503225576 + - username: user2 + id: 1 + given_name: Jordi + family_name: Capdevila + email: jordi.capdevila@fakeemail.com + picture_url: https://avatars2.githubusercontent.com/u/14579210 + created_at: 1503281026 + invited_at: 1503281026 + pagination: + index: 1 + size: 10 + total: 2 + schema: + $ref: '#/components/schemas/getTeamMembers_200_response' + description: List of the members who are assigned to the team. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization team members + post: + description: Assign a user of the organization to be a member of a team. + operationId: assignMemberToTeam + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a team. + in: path + name: team_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/NewTeamMemberAssignation' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/NewTeamMemberAssignation' + description: The assignation information for being a member or being updated. + required: true + responses: + '200': + content: + application/json: + example: + data: + id: 1 + username: user-1 + given_name: Mariano + family_name: Jimenez + email: mariano.jimenez@fakeemail.com + picture_url: https://avatars2.githubusercontent.com/u/14579210 + created_at: 1503225026 + last_login_at: 1503281333 + role: + id: 17 + name: existing + description: Organization existing role + canonical: role-can + rules: + - id: 1 + effect: allow + action: organization:delete + resources: + - organization:org-can + - organization:org-can2 + - id: 20 + effect: allow + action: organization:team:create + resources: [] + - id: 21 + effect: allow + action: organization:team:read + resources: + - organization:org-can:team:team-can + schema: + $ref: '#/components/schemas/assignMemberToTeam_200_response' + description: The information of the member of the team. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization team members + x-codegen-request-body-name: body + /organizations/{organization_canonical}/teams/{team_canonical}/members/{member_id}: + delete: + description: Unassign a member of the team. After this operation, the user will not be a member of the team. + operationId: unassignMemberFromTeam + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a team. + in: path + name: team_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A member id + in: path + name: member_id + required: true + schema: + format: uint32 + type: integer + responses: + '204': + content: {} + description: The user has been unassigned of the team. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization team members + get: + description: Get the information of a member of the team. + operationId: getTeamMember + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a team. + in: path + name: team_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A member id + in: path + name: member_id + required: true + schema: + format: uint32 + type: integer + responses: + '200': + content: + application/json: + example: + data: + id: 1 + username: user-1 + given_name: Mariano + family_name: Jimenez + email: mariano.jimenez@fakeemail.com + picture_url: https://avatars2.githubusercontent.com/u/14579210 + created_at: 1503225026 + last_login_at: 1503281333 + role: + id: 17 + name: existing + description: Organization existing role + canonical: role-can + rules: + - id: 1 + effect: allow + action: organization:delete + resources: + - organization:org-can + - organization:org-can2 + - id: 20 + effect: allow + action: organization:team:create + resources: [] + - id: 21 + effect: allow + action: organization:team:read + resources: + - organization:org-can:team:team-can + schema: + $ref: '#/components/schemas/assignMemberToTeam_200_response' + description: The information of the member of the team. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization team members + /organizations/{organization_canonical}/teams/{team_canonical}: + delete: + description: Delete a team of the organization. + operationId: deleteTeam + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a team. + in: path + name: team_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + '204': + content: {} + description: Team has been deleted. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization teams + get: + description: Get the information of a team of the organization. + operationId: getTeam + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a team. + in: path + name: team_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + '200': + content: + application/json: + example: + data: + id: 1 + canonical: team-2 + created_at: 1503225026 + updated_at: 1503335026 + name: Team 2 + owner: + id: 99 + username: superuser + given_name: Owen + family_name: Smith + email: superuser@company.com + created_at: 1503225026 + role: + id: 17 + name: existing + description: Organization existing role + canonical: role-can + rules: + - id: 1 + effect: allow + action: organization:delete + resources: + - organization:org-can + - organization:org-can2 + - id: 20 + effect: allow + action: organization:team:create + resources: [] + - id: 21 + effect: allow + action: organization:team:read + resources: + - organization:org-can:team:team-can + roles: + - id: 17 + name: existing + description: Organization existing role + canonical: role-can + rules: + - id: 1 + effect: allow + action: organization:delete + resources: + - organization:org-can + - organization:org-can2 + - id: 20 + effect: allow + action: organization:team:create + resources: [] + - id: 21 + effect: allow + action: organization:team:read + resources: + - organization:org-can:team:team-can + member_count: 12 + members_preview: + - id: 42 + username: cooluser + given_name: given + family_name: family + email: cooluser@company.com + created_at: 678123 + schema: + $ref: '#/components/schemas/createTeam_200_response' + description: The information of the team of the organization which has the specified ID. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization teams + put: + description: Update the information of a team of the organization. + operationId: updateTeam + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a team. + in: path + name: team_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/UpdateTeam' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UpdateTeam' + description: The information of the team to update. + required: true + responses: + '200': + content: + application/json: + example: + data: + id: 1 + canonical: team-3 + created_at: 1503220026 + updated_at: 1503335126 + name: Team 3 + owner: + id: 99 + username: superuser + given_name: Owen + family_name: Smith + email: superuser@company.com + created_at: 1503225026 + role: + id: 17 + name: existing + description: Organization existing role + canonical: role-can + rules: + - id: 1 + effect: allow + action: organization:delete + resources: + - organization:org-can + - organization:org-can2 + - id: 20 + effect: allow + action: organization:team:create + resources: [] + - id: 21 + effect: allow + action: organization:team:read + resources: + - organization:org-can:team:team-can + roles: + - id: 17 + name: existing + description: Organization existing role + canonical: role-can + rules: + - id: 1 + effect: allow + action: organization:delete + resources: + - organization:org-can + - organization:org-can2 + - id: 20 + effect: allow + action: organization:team:create + resources: [] + - id: 21 + effect: allow + action: organization:team:read + resources: + - organization:org-can:team:team-can + - id: 10 + name: existing + description: Organization existing role + canonical: role-can + rules: + - id: 1 + effect: allow + action: organization:delete + resources: + - organization:org-can + - organization:org-can2 + - id: 21 + effect: allow + action: organization:team:read + resources: + - organization:org-can:team:team-can + member_count: 12 + members_preview: + - id: 42 + username: coder + given_name: Cody + family_name: Coder + email: coder@company.com + created_at: 678123 + - id: 43 + username: tester + given_name: Tony + family_name: Tester + email: tester@company.com + created_at: 678123 + schema: + $ref: '#/components/schemas/createTeam_200_response' + description: Team updated. The body contains information of the updated team. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '411': + content: {} + description: The request has a body but it doesn't have a Content-Length header. + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization teams + x-codegen-request-body-name: body + /organizations/{organization_canonical}/workers: + get: + description: Get the workers that the authenticated user has access to. + operationId: getWorkers + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: The page number to request. The first page is 1. + in: query + name: page_index + schema: + default: 1 + format: uint32 + type: integer + - description: The number of items at most which the response can have. + in: query + name: page_size + schema: + default: 1000 + format: uint32 + type: integer + responses: + '200': + content: + application/json: + example: + data: + - name: worker1 + state: running + version: '2.1' + platform: linux + ephemeral: false + active_containers: 256 + active_volumes: 0 + team: org1 + start_time: 1552997739 + - name: worker2 + state: running + version: '2.1' + platform: linux + tags: + - fastcpu + ephemeral: true + active_containers: 256 + active_volumes: 10 + start_time: 1552997639 + team: org2 + - name: worker3 + state: running + version: '2.1' + platform: linux + tags: + - ssd + ephemeral: true + active_containers: 300 + active_volumes: 20 + start_time: 1552997839 + team: org3 + pagination: + index: 1 + size: 5 + total: 3 + schema: + $ref: '#/components/schemas/getWorkers_200_response' + description: List of the workers which authenticated user has access to. + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organization workers + /organizations/{organization_canonical}/ancestors: + get: + description: Get all the ancestors between the Organization and the User with the shortest path. + operationId: getAncestors + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + '200': + content: + application/json: + example: + data: + - canonical: org1 + id: 1 + name: Organization 1 + ci_team_name: asfdOPNljk + created_at: 1503225026 + updated_at: 1503335026 + blocked: [] + quotas: false + can_create_appearance: true + can_children_create_appearance: true + - canonical: org2 + id: 2 + name: Organization 2 + ci_team_name: asfdOPNljk + created_at: 1501131026 + updated_at: 1503333026 + blocked: + - require_payment + quotas: false + can_create_appearance: true + can_children_create_appearance: true + - canonical: org3 + id: 3 + name: Organization 3 + ci_team_name: asfdOPNljk + created_at: 1500135021 + updated_at: 1503332021 + blocked: + - require_payment + quotas: false + can_create_appearance: true + can_children_create_appearance: true + pagination: + total: 42 + index: 33 + size: 10 + schema: + $ref: '#/components/schemas/getChildren_200_response' + description: Get all the ancestors between the Organization and the User with the shortest path. 0 index is the parent and n is the searched child + '401': + content: + application/json: + example: + errors: + - code: Unauthenticated + message: invalid credentials + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The user cannot be authenticated with the credentials which she/he has used. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organizations + /organizations/{organization_canonical}/branches: + get: + description: | + Return all the branches of repository. If the repository is empty then an + empty list will be returned. + operationId: getRepoBranches + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A Credential canonical + in: query + name: credential_canonical + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: Git URL to repository + in: query + name: git_url + required: true + schema: + pattern: ^((/|~)[^/]*)+.(\.git)|(([\w\]+@[\w\.]+))(:(//)?)([\w\.@\:/\-~]+)(/)? + type: string + responses: + '200': + content: + application/json: + example: + data: + - stacks + - stacks2 + schema: + $ref: '#/components/schemas/getCloudCostManagementTags_200_response' + description: List of the repository branches + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organizations + /organizations/{organization_canonical}/can_do: + post: + description: Checks if the JWT can do the action + operationId: canDo + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/CanDoInput' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/CanDoInput' + description: The information of the authorization + required: true + responses: + '200': + content: + application/json: + example: + data: + ok: true + entity_canonicals: + - pepito + - grillo + schema: + $ref: '#/components/schemas/canDo_200_response' + description: The information of the possibility to do the action + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organizations + x-codegen-request-body-name: body + /organizations: + get: + description: Get the organizations that the authenticated user has access. + operationId: getOrgs + parameters: + - description: The page number to request. The first page is 1. + in: query + name: page_index + schema: + default: 1 + format: uint32 + type: integer + - description: The number of items at most which the response can have. + in: query + name: page_size + schema: + default: 1000 + format: uint32 + type: integer + - description: Search by the organization's name + in: query + name: organization_name + schema: + type: string + - description: Search by organization's creation date + in: query + name: organization_created_at + schema: + format: uint64 + type: integer + - description: | + Allows to order the list of items. Example usage: field_name:asc + in: query + name: order_by + schema: + type: string + responses: + '200': + content: + application/json: + example: + data: + - canonical: org1 + id: 1 + name: Organization 1 + ci_team_name: asfdOPNljk + ci_port: 443 + ci_url: https://scheduler.cycloid.io + created_at: 1503225026 + updated_at: 1503335026 + has_children: true + blocked: [] + quotas: false + can_create_appearance: true + can_children_create_appearance: true + subscription: + expires_at: 1501131026 + members_count: 10 + plan: + id: 5 + name: Free Trial + canonical: free_trial + - canonical: org2 + id: 1 + name: Organization 2 + ci_team_name: asfdOPNljk + ci_port: 443 + ci_url: https://scheduler.cycloid.io + created_at: 1501131026 + updated_at: 1503333026 + has_children: false + blocked: [] + quotas: false + can_create_appearance: true + can_children_create_appearance: true + subscription: + expires_at: 1501131026 + members_count: 10 + plan: + id: 5 + name: Free Trial + canonical: free_trial + - canonical: org3 + id: 1 + name: Organization 3 + ci_team_name: asfdOPNljk + ci_port: 443 + ci_url: https://scheduler.cycloid.io + created_at: 1500135021 + updated_at: 1503332021 + has_children: false + blocked: [] + quotas: false + can_create_appearance: true + can_children_create_appearance: true + subscription: + expires_at: 1501131026 + members_count: 10 + plan: + id: 5 + name: Free Trial + canonical: free_trial + pagination: + index: 1 + size: 10 + total: 3 + schema: + $ref: '#/components/schemas/getChildren_200_response' + description: List of the organizations which authenticated user has access. + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organizations + post: + description: Create a new organization, making the authenticated user the owner of it. + operationId: createOrg + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/NewOrganization' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/NewOrganization' + description: The information of the organization to create. + required: true + responses: + '200': + content: + application/json: + example: + data: + id: 1 + canonical: org1 + name: Organization 1 + ci_team_name: asfdOPNljk + ci_port: 443 + ci_url: https://scheduler.cycloid.io + created_at: 1503225026 + updated_at: 1503335026 + has_children: false + blocked: [] + quotas: false + can_create_appearance: true + can_children_create_appearance: false + schema: + $ref: '#/components/schemas/createChild_200_response' + description: Organization created. The body contains the information of the new created organization. + '411': + content: {} + description: The request has a body but it doesn't have a Content-Length header. + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organizations + x-codegen-request-body-name: body + /organizations/{organization_canonical}: + delete: + description: Delete the organization. + operationId: deleteOrg + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + '204': + content: {} + description: Organization has been deleted. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organizations + get: + description: Get the information of the organization. + operationId: getOrg + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + '200': + content: + application/json: + example: + data: + id: 1 + canonical: org3 + ci_team_name: asfdOPNljk + name: Organization 3 + blocked: [] + has_children: false + quotas: false + can_create_appearance: true + can_children_create_appearance: false + created_at: 1500135021 + updated_at: 1503332021 + subscription: + expires_at: 1501131026 + members_count: 10 + plan: + id: 5 + name: Free Trial + canonical: free_trial + schema: + $ref: '#/components/schemas/createChild_200_response' + description: The information of the organization which has the specified ID. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organizations + put: + description: Update the information of the organization. + operationId: updateOrg + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/UpdateOrganization' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UpdateOrganization' + description: The information of the organization to update. + required: true + responses: + '200': + content: + application/json: + example: + data: + id: 1 + canonical: org2 + ci_team_name: asfdOPNljk + name: Organization 2 + blocked: [] + quotas: false + can_create_appearance: true + can_children_create_appearance: true + created_at: 1501131026 + updated_at: 1503333026 + subscription: + expires_at: 1501131026 + members_count: 10 + plan: + id: 5 + name: Free Trial + canonical: free_trial + schema: + $ref: '#/components/schemas/createChild_200_response' + description: Organization updated. The body contains information of the updated organization. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '411': + content: {} + description: The request has a body but it doesn't have a Content-Length header. + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organizations + x-codegen-request-body-name: body + /organizations/{organization_canonical}/summary: + get: + description: Get the summary of the organization + operationId: getSummary + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + '200': + content: + application/json: + example: + data: + projects: 5 + pipelines: 5 + credentials: 5 + service_catalog_sources: 5 + config_repositories: 5 + teams: 5 + users: 5 + roles: 5 + service_catalogs: 5 + schema: + $ref: '#/components/schemas/getSummary_200_response' + description: The summary object + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Organizations + /saml2/acs: + post: + description: Assertion Consumer Service callback endpoint for the SAML2 Identity Provider. + operationId: samlAssertionConsumerService + requestBody: + content: + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/samlAssertionConsumerService_request' + responses: + '303': + content: {} + description: The response will always be a redirect to the front-end with the authentication code. With this code, the application can proceed with a normal OAuth flow, by sending it to the /user/saml2/oauth endpoint. + headers: + Location: + description: Location URL will contain either a "code" or "error" query parameter, depending on authentication result. + schema: + format: uri + type: string + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + security: [] + tags: + - SAML2 + /saml2: + get: + description: Returns the Cycloid instance's SAML2 metadata that can be plugged into an Identity Provider. + operationId: getSamlMetadata + responses: + '200': + content: + application/xml: + schema: + type: object + description: SAML2 XML metadata describing the Cycloid Service Provider. + '404': + content: + application/xml: + schema: + $ref: '#/components/schemas/ErrorPayload' + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/xml: + schema: + $ref: '#/components/schemas/ErrorPayload' + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + security: [] + tags: + - SAML2 + /organizations/{organization_canonical}/service_catalogs: + get: + description: Return all the service catalogs + operationId: listServiceCatalogs + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: The page number to request. The first page is 1. + in: query + name: page_index + schema: + default: 1 + format: uint32 + type: integer + - description: The number of items at most which the response can have. + in: query + name: page_size + schema: + default: 1000 + format: uint32 + type: integer + - description: | + Filters the Service Catalogs to only show the ones owned by the User Organization + in: query + name: service_catalog_own + schema: + type: boolean + - description: | + Filters the Service Catalogs to only show the ones that are templates + in: query + name: service_catalog_template + schema: + default: false + type: boolean + responses: + '200': + content: + application/json: + example: + data: + - name: stack-magento + id: 1 + author: Cycloid + canonical: stack-magento + image: http://via.placeholder.com/150x150 + description: Super magento stack + trusted: true + keywords: + - stack + - php + ref: orgCanonical:stackCanonical + directory: /config + visibility: local + service_catalog_source_canonical: scscan + technologies: + - technology: nginx + version: '1.15' + - technology: debian + version: '9.1' + - technology: magento + version: '2.2' + - technology: Php + version: '7.2' + - technology: Redis + version: '2.4' + - technology: Elasticsearch + version: '6.2' + created_at: 1503225026 + updated_at: 1503335026 + - name: infra-classic-web + id: 2 + author: Cycloid + canonical: stack-magento + image: http://via.placeholder.com/150x150 + description: Super magento stack + trusted: false + keywords: + - stack + - php + ref: cycloidio:stack-magento + visibility: local + service_catalog_source_canonical: scscan + technologies: + - technology: nginx + version: '1.15' + - technology: debian + version: '9.1' + - technology: magento + version: '2.2' + - technology: Php + version: '7.2' + - technology: Redis + version: '2.4' + - technology: Elasticsearch + version: '6.2' + created_at: 1503225026 + updated_at: 1503335026 + pagination: + index: 1 + size: 10 + total: 2 + schema: + $ref: '#/components/schemas/listServiceCatalogs_200_response' + description: List of the service catalogs. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Service catalogs + post: + description: Create a new Service Catalog + operationId: createServiceCatalog + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/NewServiceCatalog' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/NewServiceCatalog' + description: The information of the ServiceCatalog. + required: true + responses: + '200': + content: + application/json: + example: + data: + id: 1 + name: stack-magento + author: Cycloid + canonical: stack-magento + image: http://via.placeholder.com/150x150 + description: Super magento stack + type: stack + trusted: true + keywords: + - stack + - php + ref: orgCanonical:stackCanonical + directory: /config + visibility: local + technologies: + - technology: nginx + version: '1.15' + - technology: debian + version: '9.1' + - technology: magento + version: '2.2' + - technology: Php + version: '7.2' + - technology: Redis + version: '2.4' + - technology: Elasticsearch + version: '6.2' + created_at: 1503225026 + updated_at: 1503335026 + service_catalog_source_canonical: scscan + schema: + $ref: '#/components/schemas/createServiceCatalog_200_response' + description: The information of the service catalog. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Service catalogs + x-codegen-request-body-name: body + /organizations/{organization_canonical}/service_catalogs/{service_catalog_ref}/config: + get: + description: Get the config of the service catalog + operationId: getServiceCatalogConfig + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A Service Catalog name + in: path + name: service_catalog_ref + required: true + schema: + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+:[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A use case of a stack to be selectd from the stack config + in: query + name: use_case + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A list of projects' canonical to filter from + in: query + name: project_canonical + schema: + pattern: ^[\da-z]+(?:(?:[\da-z\-._]+)?[\da-z])?$ + type: string + - description: A list of environments' canonical to filter from + in: query + name: environment_canonical + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + responses: + '200': + content: + application/json: + example: + data: + first-usecase: + pipeline: + pipeline: + path: pipeline/magento.yml + content: | + groups: + + - name: magento-((env)) + jobs: + - magento-((env))-build + - full-deploy-front-magento-((env)) + - app-deploy-front-magento-((env)) + - terraform-plan-magento-((env)) + - terraform-apply-magento-((env)) + - magento-((env))-unittests + - magento-((env))-functional-tests + + resource_types: + + - name: terraform + type: docker-image + source: + repository: ljfranklin/terraform-resource + + resources: + + - name: terraform-magento-((env)) + type: terraform + source: + storage: + bucket: ((terraform_storage_bucket_name)) + bucket_path: ((terraform_storage_bucket_path)) + region_name: ((aws_default_region)) + access_key_id: "((terraform_storage_access_key))" + secret_access_key: "((terraform_storage_secret_key))" + vars: + access_key: ((aws_access_key)) + secret_key: ((aws_secret_key)) + env: + AWS_ACCESS_KEY_ID: ((aws_access_key)) + AWS_DEFAULT_REGION: ((aws_default_region)) + AWS_SECRET_ACCESS_KEY: ((aws_secret_key)) + variables: + path: pipeline/variables.sample.yml + destination: pipeline/($ environment $)-variables.yml + content: | + env: ($ environment $) + magento_deploy_bucket_name: magento-deploy + magento_deploy_bucket_object_path: /catalog-magento/($ environment $)/magento.tar.gz + magento_deploy_bucket_region: eu-west-1 + magento_deploy_bucket_access_key: ... + magento_deploy_bucket_secret_access_key: ... + terraform_storage_access_key: ... + terraform_storage_secret_key: ... + terraform_storage_bucket_name: magento-terraform-remote-state + terraform_storage_bucket_path: magento/($ environment $) + aws_access_key: ... + aws_secret_key: ... + aws_default_region: eu-west-1 + + ansible_vault_password: ... + bastion_url: admin@bastion.server.com + bastion_private_key_pair: |- + -----BEGIN RSA PRIVATE KEY----- + -----END RSA PRIVATE KEY----- + + catalog_magento_git_private_key: |- + -----BEGIN RSA PRIVATE KEY----- + -----END RSA PRIVATE KEY----- + + magento_git_repository: git@github.com:myuser/code-magento.git + magento_git_branch: master + magento_git_private_key: |- + -----BEGIN RSA PRIVATE KEY----- + -----END RSA PRIVATE KEY----- + + + magento_config_git_repository: git@github.com:myuser/config-magento.git + magento_config_git_branch: master + magento_config_git_private_key: |- + -----BEGIN RSA PRIVATE KEY----- + -----END RSA PRIVATE KEY----- + ansible: + magento: + path: ansible/environments/front.yml.sample + destination: ansible/environments/($ environment $)-front.yml + content: | + # In this file you could override any variables present in default_front.yaml file + + # Usually you might want to override those variables : + # magento_backend_frontname: admin + # magento_admin_firstname: admin + # magento_admin_lastname: admin + # magento_admin_email: root@localhost.local + # magento_admin_user: admin + + # magento_admin_password: 4Bigs3cr3t + + # In case you want to use vault to encrypt this password use the following command to generate the ansible vault var : + # echo -n "4Bigs3cr3t" | ansible-vault encrypt_string --stdin-name=magento_admin_password + #>> magento_admin_password: !vault | + #>> $ANSIBLE_VAULT;1.1;AES256 + #>> 37363232383334316164366337366430316535636130376134323366313565356365363662653539 + #>> 3161303331303565643831383839626263653362636466660a316530613935393464366536383839 + #>> 30303836326138306339623431356234333239343435623333343333623938633761636132303662 + #>> 3135343861383531660a393934316237363961663865393939313966373838653339326565353263 + #>> 6238 + terraform: + magento: + path: terraform/magento.tf.sample + destination: terraform/magento/($ environment $)/magento.tf + content: | + variable "rds_password" { + default = "ChangeMePls" + } + + module "magento" { + source = "module-magento" + + env = "($ environment $)" + vpc_id = "" + private_subnets_ids = ["private-subnets"] + magento_ssl_cert = "" + bastion_sg_allow = "" + public_subnets_ids = [""] + + rds_password = "${var.rds_password}" + + # project = "magento" + + # FIXME optimized false : should be changes with the instance type ? + + # rds_database = "magento" + # rds_disk_size = 10 + # rds_multiaz = false + # rds_storage_type = "gp2" + # rds_subnet = "" + # rds_type = "db.t2.small" + # rds_username = "magento" + # rds_engine = ""mysql" + # rds_engine_version = "5.7.16" + # rds_backup_retention = 7 + # rds_parameters = "" + + # cache_subnet = "cache-subnet-id" + # elasticache_type = "cache.t2.micro" + # elasticache_nodes = "1 + # elasticache_parameter_group_name = "default.redis3.2" + # elasticache_engine = "redis" + # elasticache_port = "6379" + # front_count = "1" + # front_disk_size = "60" + # front_disk_type = "gp2" + # front_type = "t2.small" + + } + forms: + pipeline: + group1: + - widget: text_area + default: nobucket + type: string + description: Bucket used to store magento code + key: magento_deploy_bucket_name + name: The bucket used + - widget: text_area + type: string + description: Doesn't matter + key: no-exist + name: Some imaginary var + terraform: + group2: + - widget: simple_text + type: array + description: List of public network IDs + key: public_subnets_ids + name: Pub nets + - widget: text_area + type: string + description: The VPC ID to run the project + key: vpc_id + name: VPC ID + second-usecase: + pipeline: + pipeline: + path: pipeline/magento.yml + content: | + groups: + + - name: magento-((env)) + jobs: + - magento-((env))-build + - full-deploy-front-magento-((env)) + - app-deploy-front-magento-((env)) + - terraform-plan-magento-((env)) + - terraform-apply-magento-((env)) + - magento-((env))-unittests + - magento-((env))-functional-tests + + resource_types: + + - name: terraform + type: docker-image + source: + repository: ljfranklin/terraform-resource + + resources: + + - name: terraform-magento-((env)) + type: terraform + source: + storage: + bucket: ((terraform_storage_bucket_name)) + bucket_path: ((terraform_storage_bucket_path)) + region_name: ((aws_default_region)) + access_key_id: "((terraform_storage_access_key))" + secret_access_key: "((terraform_storage_secret_key))" + vars: + access_key: ((aws_access_key)) + secret_key: ((aws_secret_key)) + env: + AWS_ACCESS_KEY_ID: ((aws_access_key)) + AWS_DEFAULT_REGION: ((aws_default_region)) + AWS_SECRET_ACCESS_KEY: ((aws_secret_key)) + variables: + path: pipeline/variables.sample.yml + destination: pipeline/($ environment $)-variables.yml + content: | + env: ($ environment $) + magento_deploy_bucket_name: magento-deploy + magento_deploy_bucket_object_path: /catalog-magento/($ environment $)/magento.tar.gz + magento_deploy_bucket_region: eu-west-1 + magento_deploy_bucket_access_key: ... + magento_deploy_bucket_secret_access_key: ... + terraform_storage_access_key: ... + terraform_storage_secret_key: ... + terraform_storage_bucket_name: magento-terraform-remote-state + terraform_storage_bucket_path: magento/($ environment $) + aws_access_key: ... + aws_secret_key: ... + aws_default_region: eu-west-1 + + ansible_vault_password: ... + bastion_url: admin@bastion.server.com + bastion_private_key_pair: |- + -----BEGIN RSA PRIVATE KEY----- + -----END RSA PRIVATE KEY----- + + catalog_magento_git_private_key: |- + -----BEGIN RSA PRIVATE KEY----- + -----END RSA PRIVATE KEY----- + + magento_git_repository: git@github.com:myuser/code-magento.git + magento_git_branch: master + magento_git_private_key: |- + -----BEGIN RSA PRIVATE KEY----- + -----END RSA PRIVATE KEY----- + + + magento_config_git_repository: git@github.com:myuser/config-magento.git + magento_config_git_branch: master + magento_config_git_private_key: |- + -----BEGIN RSA PRIVATE KEY----- + -----END RSA PRIVATE KEY----- + ansible: + magento: + path: ansible/environments/front.yml.sample + destination: ansible/environments/($ environment $)-front.yml + content: | + # In this file you could override any variables present in default_front.yaml file + + # Usually you might want to override those variables : + # magento_backend_frontname: admin + # magento_admin_firstname: admin + # magento_admin_lastname: admin + # magento_admin_email: root@localhost.local + # magento_admin_user: admin + + # magento_admin_password: 4Bigs3cr3t + + # In case you want to use vault to encrypt this password use the following command to generate the ansible vault var : + # echo -n "4Bigs3cr3t" | ansible-vault encrypt_string --stdin-name=magento_admin_password + #>> magento_admin_password: !vault | + #>> $ANSIBLE_VAULT;1.1;AES256 + #>> 37363232383334316164366337366430316535636130376134323366313565356365363662653539 + #>> 3161303331303565643831383839626263653362636466660a316530613935393464366536383839 + #>> 30303836326138306339623431356234333239343435623333343333623938633761636132303662 + #>> 3135343861383531660a393934316237363961663865393939313966373838653339326565353263 + #>> 6238 + terraform: + magento: + path: terraform/magento.tf.sample + destination: terraform/magento/($ environment $)/magento.tf + content: | + variable "rds_password" { + default = "ChangeMePls" + } + + module "magento" { + source = "module-magento" + + env = "($ environment $)" + vpc_id = "" + private_subnets_ids = ["private-subnets"] + magento_ssl_cert = "" + bastion_sg_allow = "" + public_subnets_ids = [""] + + rds_password = "${var.rds_password}" + + # project = "magento" + + # FIXME optimized false : should be changes with the instance type ? + + # rds_database = "magento" + # rds_disk_size = 10 + # rds_multiaz = false + # rds_storage_type = "gp2" + # rds_subnet = "" + # rds_type = "db.t2.small" + # rds_username = "magento" + # rds_engine = ""mysql" + # rds_engine_version = "5.7.16" + # rds_backup_retention = 7 + # rds_parameters = "" + + # cache_subnet = "cache-subnet-id" + # elasticache_type = "cache.t2.micro" + # elasticache_nodes = "1 + # elasticache_parameter_group_name = "default.redis3.2" + # elasticache_engine = "redis" + # elasticache_port = "6379" + # front_count = "1" + # front_disk_size = "60" + # front_disk_type = "gp2" + # front_type = "t2.small" + + } + forms: + pipeline: + group1: + - widget: text_area + default: nobucket + type: string + description: Bucket used to store magento code + key: magento_deploy_bucket_name + name: The bucket used + - widget: text_area + type: string + description: Doesn't matter + key: no-exist + name: Some imaginary var + terraform: + group2: + - widget: simple_text + type: array + description: List of public network IDs + key: public_subnets_ids + name: Pub nets + - widget: text_area + type: string + description: The VPC ID to run the project + key: vpc_id + name: VPC ID + schema: + $ref: '#/components/schemas/createFormsConfig_200_response' + description: The config of the service catalog. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Service catalogs + /organizations/{organization_canonical}/service_catalogs/{service_catalog_ref}: + delete: + description: Delete the service catalog. + operationId: deleteServiceCatalog + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A Service Catalog name + in: path + name: service_catalog_ref + required: true + schema: + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+:[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + '204': + content: {} + description: Service Catalog has been deleted. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '409': + content: {} + description: Service Catalog deletion has internal conflict + tags: + - Service catalogs + get: + description: Get the information of the service catalog + operationId: getServiceCatalog + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A Service Catalog name + in: path + name: service_catalog_ref + required: true + schema: + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+:[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + '200': + content: + application/json: + example: + data: + id: 1 + name: stack-magento + author: Cycloid + canonical: stack-magento + image: http://via.placeholder.com/150x150 + description: Super magento stack + trusted: true + keywords: + - stack + - php + visibility: local + ref: cycloidio:stack-magento + directory: / + technologies: + - technology: nginx + version: '1.15' + - technology: debian + version: '9.1' + - technology: magento + version: '2.2' + - technology: Php + version: '7.2' + - technology: Redis + version: '2.4' + - technology: Elasticsearch + version: '6.2' + service_catalog_source_canonical: scscan + created_at: 1503225026 + updated_at: 1503335026 + schema: + $ref: '#/components/schemas/createServiceCatalog_200_response' + description: The information of the service catalog. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Service catalogs + put: + description: Update the information of the service catalog + operationId: updateServiceCatalog + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A Service Catalog name + in: path + name: service_catalog_ref + required: true + schema: + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+:[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/UpdateServiceCatalog' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UpdateServiceCatalog' + description: The information of the ServiceCatalog Terraform. + required: true + responses: + '200': + content: + application/json: + example: + data: + id: 1 + name: stack-magento + author: Cycloid + canonical: stack-magento + image: http://via.placeholder.com/150x150 + description: Super magento stack + type: stack + trusted: true + keywords: + - stack + - php + ref: cycloidio:stack-magento + directory: / + visibility: local + technologies: + - technology: nginx + version: '1.15' + - technology: debian + version: '9.1' + - technology: magento + version: '2.2' + - technology: Php + version: '7.2' + - technology: Redis + version: '2.4' + - technology: Elasticsearch + version: '6.2' + created_at: 1503225026 + updated_at: 1503335026 + service_catalog_source_canonical: scscan + schema: + $ref: '#/components/schemas/createServiceCatalog_200_response' + description: Updated the Service Catalog + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Service catalogs + x-codegen-request-body-name: body + /organizations/{organization_canonical}/service_catalogs/{service_catalog_ref}/template: + post: + description: | + Create a new Service Catalog using the ref and use case passed as template + operationId: createServiceCatalogFromTemplate + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A Service Catalog name + in: path + name: service_catalog_ref + required: true + schema: + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+:[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/NewServiceCatalogFromTemplate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/NewServiceCatalogFromTemplate' + description: The information of the ServiceCatalog. + required: true + responses: + '200': + content: + application/json: + example: + data: + name: bootstrap-stack + author: Cycloid + canonical: bootstrap-stack + service_catalog_source_canonical: scscan + use_case: aws-ec2 + schema: + $ref: '#/components/schemas/createServiceCatalog_200_response' + description: The information of the service catalog. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Service catalogs + x-codegen-request-body-name: body + /organizations/{organization_canonical}/service_catalogs/{service_catalog_ref}/{use_case_canonical}/terraform: + get: + description: Get the information of the service catalog Terraform config + operationId: getServiceCatalogTerraform + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A Service Catalog name + in: path + name: service_catalog_ref + required: true + schema: + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+:[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A use case canonical + in: path + name: use_case_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + '200': + content: + application/json: + example: + data: + config: + data: + aws_ami: + debian_jessie_latest: + most_recent: true + resource: + aws_elb: + front: + name: ${var.project}-front-${var.env} + tags: + name: some name + variable: + front_disk_size: + default: 60 + provider: + aws: + access_key: ${var.access_key} + locals: + codecommit_repository_name: something + output: + sensitive: + sensitive: true + value: VALUE + schema: + $ref: '#/components/schemas/getServiceCatalogTerraform_200_response' + description: The information of Terraform + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Service catalogs + put: + description: Update/Create the information of the service catalog Terraform config + operationId: updateServiceCatalogTerraform + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A Service Catalog name + in: path + name: service_catalog_ref + required: true + schema: + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+:[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A use case canonical + in: path + name: use_case_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/TerraformJSONConfig' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/TerraformJSONConfig' + description: The information of the ServiceCatalog Terraform. + required: true + responses: + '204': + content: {} + description: Configuration has been updated + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Service catalogs + x-codegen-request-body-name: body + /organizations/{organization_canonical}/service_catalogs/{service_catalog_ref}/terraform/diagram: + get: + description: Get the information of the service catalog Terraform diagram + operationId: getServiceCatalogTerraformDiagram + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A Service Catalog name + in: path + name: service_catalog_ref + required: true + schema: + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+:[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + '200': + content: + application/json: + example: + data: + random: + data: true + created_at: 1503225026 + updated_at: 1503335026 + schema: + $ref: '#/components/schemas/getServiceCatalogTerraformDiagram_200_response' + description: The information of Terraform Diagram + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Service catalogs + put: + description: Update/Create the information of the service catalog Terraform diagram + operationId: updateServiceCatalogTerraformDiagram + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A Service Catalog name + in: path + name: service_catalog_ref + required: true + schema: + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+:[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/TerraformJSONDiagram' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/TerraformJSONDiagram' + description: The information of the ServiceCatalog Terraform Diagram + required: true + responses: + '204': + content: {} + description: Configuration has been updated + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Service catalogs + x-codegen-request-body-name: body + /organizations/{organization_canonical}/service_catalogs/{service_catalog_ref}/terraform/diagram/image: + get: + description: Get the SC TF Image + operationId: getServiceCatalogTerraformImage + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A Service Catalog name + in: path + name: service_catalog_ref + required: true + schema: + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+:[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/getServiceCatalogTerraformImage_200_response' + description: The SC TF Image + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Service catalogs + put: + description: Update/Create the Image for the SC TF Image + operationId: updateServiceCatalogTerraformImage + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A Service Catalog name + in: path + name: service_catalog_ref + required: true + schema: + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+:[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/TerraformImage' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/TerraformImage' + description: The information of the ServiceCatalog Terraform Diagram + required: true + responses: + '204': + content: {} + description: Configuration has been updated + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Service catalogs + x-codegen-request-body-name: body + /organizations/{organization_canonical}/service_catalogs/{service_catalog_ref}/dependencies/validate: + get: + description: Validates the dependencies of a Service Catalog + operationId: validateServiceCatalogDependencies + parameters: + - description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A Service Catalog name + in: path + name: service_catalog_ref + required: true + schema: + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+:[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + '200': + content: + application/json: + example: + data: + errors: + - dependency 'abc' is required to deploy the stack + warnings: + - dependency 'dep' is recommended to deploy the stack + schema: + $ref: '#/components/schemas/validateServiceCatalogDependencies_200_response' + description: The result of the service catalog's dependencies validation + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - Service catalogs + /user/email/verification: + post: + description: Re-send the verification user's email to the indicated address. + operationId: emailVerificationResend + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/UserEmail' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UserEmail' + description: The email address to re-send the verification email. This endpoint doesn't return any error status code if the email doesn't exist nor it's already verified for avoiding that an attacker could find registered users email address. + required: true + responses: + '204': + content: {} + description: The email verification has been re-sent. + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + security: [] + tags: + - User + x-codegen-request-body-name: body + /user/email/verification/{verification_token}: + put: + description: Verify that the email address is own by the user. + operationId: emailVerification + parameters: + - description: A token for verifying emails, invitations, etc. + in: path + name: verification_token + required: true + schema: + minLength: 5 + type: string + responses: + '204': + content: {} + description: Email address has been verified. + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + security: [] + tags: + - User + /user/email/authentication/{authentication_token}: + put: + description: Verify that the email address is own by the user. + operationId: emailAuthenticationVerification + parameters: + - description: A token for authenticating login vie email + in: path + name: authentication_token + required: true + schema: + minLength: 5 + type: string + responses: + '200': + content: + application/json: + example: + data: + owns: + - organization:seraf:team:teamcan + permissions: + organization:team:create: + id: 21 + effect: allow + action: organization:team:read + resources: + - organization:org-can:team:team-can + token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImY0YjdiZjZlLTE1NmYtNDYxMy05NmFiLWIwMzg5NzdiMWRkMSJ9.eyJpc3MiOiJodHRwczovL2N5Y2xvaWQuaW8iLCJzdWIiOiJodHRwczovL2N5Y2xvaWQuaW8iLCJhdWQiOiJjdXN0b21lciIsIm5iZiI6MTUwMzQ3NDg2NywiaWF0IjoxNTAzNDc0ODY3LCJqdGkiOiJjNDU5ODgwMS04YWQzLTRhMDctODIwZC02MzRmN2RkMWQ2MDgiLCJjeWNsb2lkIjp7InVzZXIiOnsiaWQiOjEsInVzZXJuYW1lIjoidXNlci0xIiwiZ2l2ZW5fbmFtZSI6Ik1hcmlhbm8iLCJmYW1pbHlfbmFtZSI6IkppbWVuZXoiLCJwaWN0dXJlX3VybCI6Imh0dHBzOi8vYXZhdGFyczIuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ1NzkyMTAiLCJsb2NhbGUiOiJlbiJ9fX0.v6BuWwO6vN6PNW9d-Eqdoy7GHfUXKQ7byRbqwKRwHlA + schema: + $ref: '#/components/schemas/emailAuthenticationVerification_200_response' + description: The token which represents the session of the user. + '401': + content: + application/json: + example: + errors: + - code: Unauthenticated + message: invalid credentials + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The user cannot be authenticated with the credentials which she/he has used. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + security: [] + tags: + - User + /user/guide: + put: + description: Update user's guide progress. + operationId: updateUserGuide + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/UserGuide' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UserGuide' + description: The guide's progress JSON schema + required: false + responses: + '204': + content: {} + description: The guide progress has been updated. + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + security: [] + tags: + - User + x-codegen-request-body-name: body + /user/login: + post: + description: Authenticate a user and return a new JWT token. + operationId: login + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/UserLogin' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UserLogin' + description: The user content + required: true + responses: + '200': + content: + application/json: + example: + data: + owns: + - organization:seraf:team:teamcan + permissions: + organization:team:create: + id: 21 + effect: allow + action: organization:team:read + resources: + - organization:org-can:team:team-can + token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImY0YjdiZjZlLTE1NmYtNDYxMy05NmFiLWIwMzg5NzdiMWRkMSJ9.eyJpc3MiOiJodHRwczovL2N5Y2xvaWQuaW8iLCJzdWIiOiJodHRwczovL2N5Y2xvaWQuaW8iLCJhdWQiOiJjdXN0b21lciIsIm5iZiI6MTUwMzQ3NDg2NywiaWF0IjoxNTAzNDc0ODY3LCJqdGkiOiJjNDU5ODgwMS04YWQzLTRhMDctODIwZC02MzRmN2RkMWQ2MDgiLCJjeWNsb2lkIjp7InVzZXIiOnsiaWQiOjEsInVzZXJuYW1lIjoidXNlci0xIiwiZ2l2ZW5fbmFtZSI6Ik1hcmlhbm8iLCJmYW1pbHlfbmFtZSI6IkppbWVuZXoiLCJwaWN0dXJlX3VybCI6Imh0dHBzOi8vYXZhdGFyczIuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ1NzkyMTAiLCJsb2NhbGUiOiJlbiJ9fX0.v6BuWwO6vN6PNW9d-Eqdoy7GHfUXKQ7byRbqwKRwHlA + schema: + $ref: '#/components/schemas/emailAuthenticationVerification_200_response' + description: The token which represents the session of the user. + '401': + content: + application/json: + example: + errors: + - code: Unauthenticated + message: invalid credentials + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The user cannot be authenticated with the credentials which she/he has used. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + security: [] + tags: + - User + x-codegen-request-body-name: body + /user/{social_type}/oauth: + get: + description: Used to know if a user from the platform exists on that 'social_type'. If it exists we'll return the JWT 'token', if it does not we'll return the data of that user on the 'user' so it can be confirmed and created + operationId: getOAuthUser + parameters: + - description: The OAuth Social type + in: path + name: social_type + required: true + schema: + enum: + - azuread + - saml2 + - google + - github + type: string + - description: The OAuth code returned form the Social Provider + in: query + name: oauth_code + required: true + schema: + type: string + responses: + '200': + content: + application/json: + example: + data: + user: + email: some@email.com + given_name: some name + username: some-name + picture_url: https://via.placeholder.com/150?text=cycloid.io + social_id: some-random-id + schema: + $ref: '#/components/schemas/getOAuthUser_200_response' + description: Used to know if a user from the platform exists on that 'social_type'. + '401': + content: + application/json: + example: + errors: + - code: Unauthenticated + message: invalid credentials + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The user cannot be authenticated with the credentials which she/he has used. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + security: [] + tags: + - User + post: + description: Create a user from the OAuth 'social_type' + operationId: createOAuthUser + parameters: + - description: The OAuth Social type + in: path + name: social_type + required: true + schema: + enum: + - azuread + - saml2 + - google + - github + type: string + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/NewOAuthUser' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/NewOAuthUser' + description: The user content + required: true + responses: + '200': + content: + application/json: + example: + data: + token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImY0YjdiZjZlLTE1NmYtNDYxMy05NmFiLWIwMzg5NzdiMWRkMSJ9.eyJpc3MiOiJodHRwczovL2N5Y2xvaWQuaW8iLCJzdWIiOiJodHRwczovL2N5Y2xvaWQuaW8iLCJhdWQiOiJjdXN0b21lciIsIm5iZiI6MTUwMzQ3NDg2NywiaWF0IjoxNTAzNDc0ODY3LCJqdGkiOiJjNDU5ODgwMS04YWQzLTRhMDctODIwZC02MzRmN2RkMWQ2MDgiLCJjeWNsb2lkIjp7InVzZXIiOnsiaWQiOjEsInVzZXJuYW1lIjoidXNlci0xIiwiZ2l2ZW5fbmFtZSI6Ik1hcmlhbm8iLCJmYW1pbHlfbmFtZSI6IkppbWVuZXoiLCJwaWN0dXJlX3VybCI6Imh0dHBzOi8vYXZhdGFyczIuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ1NzkyMTAiLCJsb2NhbGUiOiJlbiJ9LCJvcmdhbml6YXRpb24iOnsiaWQiOjIsImNhbm9uaWNhbCI6Im9yZzIiLCJuYW1lIjoiT3JnIDIifSwicGVybWlzc2lvbnMiOnsib3JnYW5pemF0aW9uOmRlbGV0ZSI6WyIxIl0sIm9yZ2FuaXphdGlvbjp1cGRhdGUiOltdLCJvcmdhbml6YXRpb246dGVhbTpjcmVhdGUiOltdLCJvcmdhbml6YXRpb246dGVhbTpyZWFkIjpbXSwib3JnYW5pemF0aW9uOnRlYW06ZGVsZXRlIjpbIjIiXSwib3JnYW5pemF0aW9uOm1lbWJlcjpjcmVhdGUiOltdLCJvcmdhbml6YXRpb246bWVtYmVyOnJlYWQiOltdLCJvcmdhbml6YXRpb246bWVtYmVyOmRlbGV0ZSI6W10sIm9yZ2FuaXphdGlvbjpwcm9qZWN0OnJlYWQiOltdfX19.CHA3146UEHwVW6nYkDgYeSukGeZIH55mi4O0LsemenA + schema: + $ref: '#/components/schemas/emailAuthenticationVerification_200_response' + description: Create a user from the OAuth 'social_type' + '401': + content: + application/json: + example: + errors: + - code: Unauthenticated + message: invalid credentials + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The user cannot be authenticated with the credentials which she/he has used. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + security: [] + tags: + - User + x-codegen-request-body-name: body + /user/refresh_token: + get: + description: Refresh the user JWT and returns a new one if the previous is valid. The 'organization_canonical_query' has to be of an organization in which the user belongs to, and the 'child_canonical_query' of a child of the 'organization_canonical_query' in any level (could be of a grand child). + operationId: refreshToken + parameters: + - description: A canonical of a organization used for filtering. + in: query + name: organization_canonical + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + - description: A canonical of a child organization used for filtering. + in: query + name: child_canonical + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + responses: + '200': + content: + application/json: + example: + data: + owns: + - organization:seraf:team:teamcan + permissions: + organization:team:create: + id: 21 + effect: allow + action: organization:team:read + resources: + - organization:org-can:team:team-can + token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImY0YjdiZjZlLTE1NmYtNDYxMy05NmFiLWIwMzg5NzdiMWRkMSJ9.eyJpc3MiOiJodHRwczovL2N5Y2xvaWQuaW8iLCJzdWIiOiJodHRwczovL2N5Y2xvaWQuaW8iLCJhdWQiOiJjdXN0b21lciIsIm5iZiI6MTUwMzQ3NDg2NywiaWF0IjoxNTAzNDc0ODY3LCJqdGkiOiJjNDU5ODgwMS04YWQzLTRhMDctODIwZC02MzRmN2RkMWQ2MDgiLCJjeWNsb2lkIjp7InVzZXIiOnsiaWQiOjEsInVzZXJuYW1lIjoidXNlci0xIiwiZ2l2ZW5fbmFtZSI6Ik1hcmlhbm8iLCJmYW1pbHlfbmFtZSI6IkppbWVuZXoiLCJwaWN0dXJlX3VybCI6Imh0dHBzOi8vYXZhdGFyczIuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ1NzkyMTAiLCJsb2NhbGUiOiJlbiJ9LCJvcmdhbml6YXRpb24iOnsiaWQiOjIsImNhbm9uaWNhbCI6Im9yZzIiLCJuYW1lIjoiT3JnIDIifSwicGVybWlzc2lvbnMiOnsib3JnYW5pemF0aW9uOmRlbGV0ZSI6WyIxIl0sIm9yZ2FuaXphdGlvbjp1cGRhdGUiOltdLCJvcmdhbml6YXRpb246dGVhbTpjcmVhdGUiOltdLCJvcmdhbml6YXRpb246dGVhbTpyZWFkIjpbXSwib3JnYW5pemF0aW9uOnRlYW06ZGVsZXRlIjpbIjIiXSwib3JnYW5pemF0aW9uOm1lbWJlcjpjcmVhdGUiOltdLCJvcmdhbml6YXRpb246bWVtYmVyOnJlYWQiOltdLCJvcmdhbml6YXRpb246bWVtYmVyOmRlbGV0ZSI6W10sIm9yZ2FuaXphdGlvbjpwcm9qZWN0OnJlYWQiOltdfX19.CHA3146UEHwVW6nYkDgYeSukGeZIH55mi4O0LsemenA + schema: + $ref: '#/components/schemas/emailAuthenticationVerification_200_response' + description: The token which represents the session of the user. + '401': + content: + application/json: + example: + errors: + - code: Unauthenticated + message: invalid credentials + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The user cannot be authenticated with the credentials which she/he has used. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - User + /user/reset_password: + post: + description: Request to reset the password. Due to security reasons, this endpoint doesn't return Not Found (404) when the email doesn't exist or belongs to a user primary email. + operationId: passwordResetReq + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/UserPasswordResetReq' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UserPasswordResetReq' + description: The reset password payload + required: true + responses: + '204': + content: {} + description: The password has been changed. + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + security: [] + tags: + - User + x-codegen-request-body-name: body + put: + description: Reset the user password when it has been forgotten. Due to security reasons, the endpoint doesn't return a Unprocessable Entity (422) when the token is invalid. 404 Status code is returned if the user has been deleted of the system between the user password request and this request. + operationId: passwordResetUpdate + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/UserPasswordResetUpdate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UserPasswordResetUpdate' + description: The reset password payload + required: true + responses: + '204': + content: {} + description: The password has been changed. + '404': + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + security: [] + tags: + - User + x-codegen-request-body-name: body + /user: + delete: + description: The authenticated user delete itself from the system. + operationId: deleteUserAccount + responses: + '204': + content: {} + description: User account has been deleted. + '403': + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - User + get: + description: Get the information of the account of the authenticated user. + operationId: getUserAccount + responses: + '200': + content: + application/json: + example: + data: + created_at: 1503225026 + updated_at: 1503335026 + last_login: 1503413020 + emails: + - email: mariano@jimenez.com + verified: true + purpose: primary + username: user-1 + given_name: Mariano + family_name: Jimenez + picture_url: https://avatars2.githubusercontent.com/u/14579210 + locale: en + country: + code: GB + name: United Kingdom + guide: + tutorial: + welcome: false + letsgo: false + credentials: false + createProject: false + selectStack: false + configEnv: false + customEnvConfig: false + reviewDeploy: false + deployed: false + tasksDetails: false + finish: false + presentation: false + schema: + $ref: '#/components/schemas/getUserAccount_200_response' + description: The user account information. + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - User + post: + description: Create a new User (sign-up). + operationId: signUp + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/NewUserAccount' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/NewUserAccount' + description: The user content + required: true + responses: + '204': + content: {} + description: Account created. The account MUST be verified through the link sent to the email address. + '411': + content: {} + description: The request has a body but it doesn't have a Content-Length header. + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + security: [] + tags: + - User + x-codegen-request-body-name: body + put: + description: Update the information of the account of the authenticated user. + operationId: updateUserAccount + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/UpdateUserAccount' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UpdateUserAccount' + description: The user content + required: true + responses: + '200': + content: + application/json: + example: + data: + created_at: 1503225026 + updated_at: 1503335026 + last_login: 1503413020 + emails: + - email: mariano@jimenez.com + verified: true + purpose: primary + username: user-1 + given_name: Mariano + family_name: Jimenez + picture_url: https://avatars2.githubusercontent.com/u/14579210 + locale: en + country_code: UK + schema: + $ref: '#/components/schemas/getUserAccount_200_response' + description: The updated user profile information. + '409': + content: {} + description: Trying setting an unverified email as the primary + '411': + content: {} + description: The request has a body but it doesn't have a Content-Length header. + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + '503': + content: + application/json: + example: + errors: + - code: RetryOperation + message: Operation must be retried. + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The operation couldn't be executed or completed and it should retried. + headers: + Retry-After: + description: The number of seconds to wait until retry the request + schema: + format: uint16 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + tags: + - User + x-codegen-request-body-name: body + /user/aws_marketplace/entitlement: + post: + description: | + This endpoint handles redirections from AWS Marketplace to our system. + If user doesn't exist, he'll be redirected to registration page. + If user exist, he'll be redirected to login page. + operationId: handleAWSMarketplaceUserEntitlement + responses: + '301': + content: {} + description: The user is redirected based on his account state. + headers: + Location: + schema: + type: string + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + security: [] + tags: + - User + /user/aws_marketplace: + post: + description: Create a new AWS Marketplace User. + operationId: signUpAWSMarketplace + requestBody: + content: + application/vnd.cycloid.io.v1+json: + schema: + $ref: '#/components/schemas/NewAWSMarketplaceUserAccount' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/NewAWSMarketplaceUserAccount' + description: The user content + required: true + responses: + '204': + content: {} + description: Account created. The account MUST be verified through the link sent to the email address. + '411': + content: {} + description: The request has a body but it doesn't have a Content-Length header. + '422': + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + default: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + security: [] + tags: + - User + x-codegen-request-body-name: body +components: + parameters: + page_index: + description: The page number to request. The first page is 1. + in: query + name: page_index + schema: + default: 1 + format: uint32 + type: integer + page_size: + description: The number of items at most which the response can have. + in: query + name: page_size + schema: + default: 1000 + format: uint32 + type: integer + default: + description: Value describing whether to return default + in: query + name: default + schema: + default: false + type: boolean + organization_canonical_query: + description: A canonical of a organization used for filtering. + in: query + name: organization_canonical + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + child_canonical_query: + description: A canonical of a child organization used for filtering. + in: query + name: child_canonical + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + project_name_query: + description: Search by project's name + in: query + name: project_name + schema: + type: string + project_created_at_query: + description: Search by project's creation date + in: query + name: project_created_at + schema: + format: uint64 + type: integer + project_description_query: + description: Search by project's description + in: query + name: project_description + schema: + type: string + project_config_repository_canonical_query: + description: Search by project's config repository's canonical + in: query + name: project_config_repository_canonical + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + team_name_query: + description: Search by team's name + in: query + name: team_name + schema: + type: string + team_created_at_query: + description: Search by team's creation date + in: query + name: team_created_at + schema: + format: uint64 + type: integer + team_description_query: + description: Search by team's description + in: query + name: team_description + schema: + type: string + service_catalog_own_query: + description: | + Filters the Service Catalogs to only show the ones owned by the User Organization + in: query + name: service_catalog_own + schema: + type: boolean + service_catalog_template_query: + description: | + Filters the Service Catalogs to only show the ones that are templates + in: query + name: service_catalog_template + schema: + default: false + type: boolean + owner_query: + description: Search by entity's owner + in: query + name: member_id + schema: + format: uint32 + type: integer + order_by_query: + description: | + Allows to order the list of items. Example usage: field_name:asc + in: query + name: order_by + schema: + type: string + concourse_page_since: + description: The time after which we should look for entities to return. + in: query + name: concourse_page_since + schema: + default: 0 + format: uint64 + type: integer + concourse_page_until: + description: The time before which we should look for entities to return. + in: query + name: concourse_page_until + schema: + default: 0 + format: uint64 + type: integer + concourse_page_limit: + description: The number of items at most which the response can have. + in: query + name: concourse_page_limit + schema: + default: 10 + format: uint64 + type: integer + cost_tag_key: + description: The key of a tag + in: query + name: key + schema: + maxLength: 127 + minLength: 3 + pattern: ^[\w\-+=.:/@ ]+$ + type: string + cost_tag_key_value_filter: + allowEmptyValue: false + description: The key and value of a tag concatenated by a ;. + explode: true + in: query + name: tags + schema: + items: + maxLength: 127 + minLength: 4 + pattern: ^[^;]+;[^;]+$ + type: string + type: array + style: form + cost_granularity_filter: + allowEmptyValue: false + description: Sets the cost granularity, it can be month, week, day. + in: query + name: granularity + required: true + schema: + enum: + - month + - week + - day + type: string + cost_metrics_filter: + allowEmptyValue: false + description: |- + Which metrics are returned in the query. For more information about blended and unblended rates, see https://aws.amazon.com/premiumsupport/knowledge-center/blended-rates-intro/. + Valid values are BlendedCost, UnblendedCost, and UsageQuantity. + If you return the UsageQuantity metric, the service aggregates all usage numbers without taking into account the units. For example, if you aggregate usageQuantity across all of EC2, the results aren't meaningful because EC2 compute hours and data transfer are measured in different units (for example, hours vs. GB). To get more meaningful UsageQuantity metrics, filter by UsageType or UsageTypeGroups. + explode: true + in: query + name: metrics + required: true + schema: + items: + enum: + - BlendedCost + - UnblendedCost + - UsageQuantity + type: string + type: array + uniqueItems: true + style: form + cost_begin_filter: + description: Sets the start date for retrieving AWS costs. The start date is inclusive. + in: query + name: begin + required: true + schema: + format: date + type: string + cost_end_filter: + description: Sets the end dates for retrieving AWS costs. The end date is exclusive. + in: query + name: end + required: true + schema: + format: date + type: string + cost_currency_filter: + description: The currency required for the results. + in: query + name: currency + required: true + schema: + enum: + - USD + - EUR + - CNY + - GBP + type: string + cost_projects_filter: + allowEmptyValue: false + description: The names of the projects that you can use to filter your results + explode: true + in: query + name: projects + schema: + items: + type: string + type: array + style: form + cost_environments_filter: + allowEmptyValue: false + description: The names of the environments that you can use to filter your results + explode: true + in: query + name: environments + schema: + items: + type: string + type: array + style: form + cost_services_filter: + allowEmptyValue: false + description: The names of the services that you can use to filter and group your results. + explode: true + in: query + name: services + schema: + items: + type: string + type: array + style: form + cost_categories_filter: + allowEmptyValue: false + description: The names of the categories that you can use to filter and group your results. + explode: true + in: query + name: categories + schema: + items: + enum: + - other + - compute + - storage + - database + - dev_tools + - networking + - analytics + - containers + - machine_learning + - multimedia + - security + type: string + type: array + style: form + cost_dashboard_filter_values: + description: Specifies if the filter values are for the dashboard + in: query + name: dashboard + schema: + default: false + type: boolean + cloud_provider_account_id: + description: The id of an account in the Cloud Provider. + in: path + name: cloud_provider_account_id + required: true + schema: + type: string + cost_linked_accounts_filter: + allowEmptyValue: false + description: The ids of the linked accounts that you can use to filter your results + explode: true + in: query + name: linked_accounts + schema: + items: + type: string + type: array + style: form + cost_master_accounts_filter: + allowEmptyValue: false + description: The ids of the master accounts that you can use to filter your results + explode: true + in: query + name: master_accounts + schema: + items: + type: string + type: array + style: form + cost_providers_filter: + allowEmptyValue: false + description: The names of the providers that you can use to filter your results + explode: true + in: query + name: providers + schema: + items: + type: string + type: array + style: form + cost_regions_filter: + allowEmptyValue: false + description: The names of the regions that you can use to filter your results + explode: true + in: query + name: regions + schema: + items: + type: string + type: array + style: form + cost_resources_filter: + allowEmptyValue: false + description: The names of the resources that you can use to filter your results + explode: true + in: query + name: resources + schema: + items: + type: string + type: array + style: form + cost_resource_tagging_filter: + description: Filter results by only tagged or not tagged resources + in: query + name: resource_tagging + schema: + enum: + - tagged_resources + - untagged_resources + type: string + cost_group_by_filter: + allowEmptyValue: false + description: Represents a group when you specify a group by criteria, or in the response to a query with a specific grouping. + explode: true + in: query + name: group_by + schema: + items: + enum: + - environment + - service + - instance_type + - category + - location + - linked_account + - project + - record_type + type: string + type: array + uniqueItems: true + style: form + cost_record_type_filter: + allowEmptyValue: false + description: The type of records that you can use to filter your results. For example usage or credit. + explode: true + in: query + name: record_types + schema: + items: + type: string + type: array + style: form + organization_canonical: + description: A canonical of an organization. + in: path + name: organization_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + environment_canonical: + description: The environment canonical to use as part of a path + in: path + name: environment_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + kpi_canonical: + description: A canonical of a kpi. + in: path + name: kpi_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + cache_path_query: + description: The cache path to use as part of a clearTaskCache request + in: query + name: cache_path + schema: + type: string + team_canonical: + description: A canonical of a team. + in: path + name: team_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + project_canonical: + description: A canonical of a project. + in: path + name: project_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + api_key_canonical: + description: A canonical of an API key. + in: path + name: api_key_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + pipeline_name: + description: A pipeline name + in: path + name: inpath_pipeline_name + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[a-z0-9]+[a-z0-9\-_.]+[a-z0-9]+$ + type: string + pipeline_name_query: + description: A pipeline name + in: query + name: pipeline_name + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[a-z0-9]+[a-z0-9\-_.]+[a-z0-9]+$ + type: string + concourse_pipeline_name_query: + description: A pipeline name + in: query + name: concourse_pipeline_name + schema: + maxLength: 100 + minLength: 1 + pattern: ^[a-z0-9]+[a-z0-9\-_.]+[a-z0-9]+$ + type: string + project_canonical_query: + description: A list of projects' canonical to filter from + in: query + name: project_canonical + schema: + pattern: ^[\da-z]+(?:(?:[\da-z\-._]+)?[\da-z])?$ + type: string + environment_canonical_query: + description: A list of environments' canonical to filter from + in: query + name: environment_canonical + schema: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + statuses_query: + allowEmptyValue: true + description: List of statuses that you want to filter a pipeline/job with. Pipeline can be either paused or unpaused, but jobs can be started, pending, succeeded, failed, errored, aborted. So if any of a pipeline's job has one of the given status, the associated pipeline will be included in the response. + explode: true + in: query + name: statuses + schema: + items: + enum: + - aborted + - errored + - failed + - paused + - pending + - started + - succeeded + type: string + type: array + uniqueItems: true + style: form + build_id: + description: A build id + in: path + name: build_id + required: true + schema: + maxLength: 20 + minLength: 1 + pattern: ^[0-9]+$ + type: string + job_name: + description: A job name + in: path + name: job_name + required: true + schema: + maxLength: 150 + minLength: 1 + type: string + step_name: + description: A step name from a job task + in: path + name: step_name + required: true + schema: + maxLength: 150 + minLength: 1 + type: string + resource_name: + description: A resource name + in: path + name: resource_name + required: true + schema: + maxLength: 150 + minLength: 1 + type: string + filter_version: + description: A version of a resource + explode: false + in: query + name: filter_version + schema: + items: + type: string + type: array + style: form + resource_version_id: + description: A resource's version id + in: path + name: resource_version_id + required: true + schema: + format: uint64 + type: integer + service_catalog_ref: + description: A Service Catalog name + in: path + name: service_catalog_ref + required: true + schema: + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+:[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + use_case_canonical: + description: A use case canonical + in: path + name: use_case_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + credential_canonical: + description: A Credential canonical + in: path + name: credential_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + credential_canonical_query: + description: A Credential canonical + in: query + name: credential_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + credential_canonical_not_required_query: + description: A Credential canonical + in: query + name: credential_canonical + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + credential_type_query: + description: | + Deprecated. Please use credential_types. + A Credential type + in: query + name: credential_type + schema: + enum: + - ssh + - aws + - custom + - azure + - azure_storage + - gcp + - basic_auth + - elasticsearch + - swift + type: string + credential_types_query: + allowEmptyValue: true + description: Multiple Credential types + explode: true + in: query + name: credential_types + schema: + items: + enum: + - ssh + - aws + - custom + - azure + - azure_storage + - gcp + - basic_auth + - elasticsearch + - swift + type: string + type: array + uniqueItems: true + style: form + credential_options_service_query: + in: query + name: service + required: true + schema: + enum: + - gcp_bigquery + type: string + git_url_query: + description: Git URL to repository + in: query + name: git_url + required: true + schema: + pattern: ^((/|~)[^/]*)+.(\.git)|(([\w\]+@[\w\.]+))(:(//)?)([\w\.@\:/\-~]+)(/)? + type: string + external_backend_id: + description: External Backend ID + in: path + name: external_backend_id + required: true + schema: + format: uint32 + type: integer + external_backend_default_query: + description: Filter for default Terraform External Backend + in: query + name: external_backend_default + schema: + type: boolean + service_catalog_source_canonical: + description: Organization Service Catalog Sources canonical + in: path + name: service_catalog_source_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + service_catalog_service_catalog_source_query: + description: The canonical of a Service Catalog Source the Service Catalog belongs to + in: query + name: service_catalog_service_catalog_source + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + service_catalog_source_canonical_query: + description: Organization Service Catalog Sources canonical + in: query + name: service_catalog_source_canonical + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + config_repository_canonical: + description: Organization Config Repositories canonical + in: path + name: config_repository_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + aws_next_token: + description: The token to retrieve the next page of results + in: query + name: next + schema: + minLength: 1 + type: string + aws_infrastructure_resource_query: + allowEmptyValue: false + description: Supported AWS type of resource to query. The parameter can be specified several times in order to request for different kind of resources. + explode: true + in: query + name: resource + schema: + items: + enum: + - instances + - vpcs + - images + - security_groups + - subnets + - volumes + - snapshots + - cache_clusters + - load_balancers_v1 + - load_balancers_v2 + - db_instances + - buckets + type: string + type: array + uniqueItems: true + style: form + aws_tags: + allowEmptyValue: false + description: An amazon tag, represented as `key|value` and where `key` or `value` could be omitted but not both, in order to select resources which has a `key` or a `value` whatever is its counterpart. `key` nor `value` can contains the `|` character. The parameter can be specified several times in order to request resources which match with at least one of the `tag|value` pairs + explode: true + in: query + name: tag + schema: + items: + maxLength: 383 + minLength: 2 + pattern: ^(?:(?:[\w\-+=.:/@ ]+\|)|(?:\|[\w\-+=.:/@ ]+)|(?:[\w\-+=.:/@ ]+\|[\w\-+=.:/@ ]+))$ + type: string + type: array + uniqueItems: true + style: form + timestamp_range_begin_query: + description: The unix timestamp in seconds, which indicate the start of the time range. + in: query + name: begin + schema: + format: uint64 + type: integer + timestamp_range_end_query: + description: The unix timestamp in seconds, which indicate the end of the time range. + in: query + name: end + schema: + format: uint64 + type: integer + timestamp_range_begin_query_ms: + description: The unix timestamp in milliseconds, which indicate the start of the time range. + in: query + name: begin + schema: + format: uint64 + type: integer + timestamp_range_end_query_ms: + description: The unix timestamp in milliseconds, which indicate the end of the time range. + in: query + name: end + schema: + format: uint64 + type: integer + raw_query: + description: A free text which the content depends of the context of the API endpoint. Can be a free text value or a complete query expressed of supported query language. + in: query + name: query + schema: + minLength: 1 + type: string + log_source_id: + description: A unique identifier, which group log's entries under under a context, established by the source. + in: path + name: log_source_id + required: true + schema: + minLength: 1 + type: string + event_type: + allowEmptyValue: false + description: Specify the types of the events to be requested. The returned events must have one of the specified types. + explode: true + in: query + name: type + schema: + items: + enum: + - Cycloid + - AWS + - Monitoring + - Custom + type: string + type: array + style: form + event_severity: + allowEmptyValue: false + description: Specify the severities of the events to be requested. The returned events must have one of the specified severities. + explode: true + in: query + name: severity + schema: + items: + enum: + - info + - warn + - err + - crit + type: string + type: array + style: form + provider_canonical: + description: A canonical of a Provider + in: path + name: provider_canonical + required: true + schema: + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + resource_canonical: + description: A canonical of a Resource + in: path + name: resource_canonical + required: true + schema: + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + role_canonical: + description: Organization Role canonical + in: path + name: role_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + verification_token: + description: A token for verifying emails, invitations, etc. + in: path + name: verification_token + required: true + schema: + minLength: 5 + type: string + authentication_token: + description: A token for authenticating login vie email + in: path + name: authentication_token + required: true + schema: + minLength: 5 + type: string + social_type: + description: The OAuth Social type + in: path + name: social_type + required: true + schema: + enum: + - azuread + - saml2 + - google + - github + type: string + oauth_code: + description: The OAuth code returned form the Social Provider + in: query + name: oauth_code + required: true + schema: + type: string + infra_policy_canonical: + description: The canonical of an InfraPolicy. + in: path + name: infra_policy_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + infra_policy_canonical_query: + description: Search by infra policy canonical + in: query + name: infra_policy_canonical + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + infra_policy_name_query: + description: Search by InfraPolicy's name + in: query + name: infra_policy_name + schema: + type: string + infra_policy_created_at_query: + description: Search by InfraPolicy's creation date + in: query + name: infra_policy_created_at + schema: + format: uint64 + type: integer + infra_policy_severity_query: + description: Search by InfraPolicy's severity + in: query + name: infra_policy_severity + schema: + enum: + - critical + - warning + - advisory + type: string + infra_policy_enabled_query: + description: Search by InfraPolicy's enabled + in: query + name: infra_policy_enabled + schema: + type: boolean + invitation_created_at_query: + description: Search by Invitation's creation date + in: query + name: invitation_created_at + schema: + format: uint64 + type: integer + invitation_state_query: + description: Search by Invitation's state + in: query + name: invitation_state + schema: + enum: + - accepted + - pending + - declined + type: string + kpi_retrieve_data: + description: | + Flag to retrieve KPIs' data upon retrieving KPIs themselves + in: query + name: fetch_data + schema: + type: boolean + favorite: + description: | + Flag to retrieve favorite data from the members favorite list. + in: query + name: favorite + schema: + type: boolean + cloud_cost_management_account_canonical: + description: The canonical of an CloudCostManagementAccount. + in: path + name: cloud_cost_management_account_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + cloud_cost_management_account_created_at_query: + description: Search by Cloud Cost Management account's creation date + in: query + name: cloud_cost_management_account_created_at_query + schema: + format: uint64 + type: integer + jwt: + description: Token with the information about state and credentials. + in: query + name: jwt + required: true + schema: + type: string + inventory_resource_id: + description: Inventory Resource ID + in: path + name: inventory_resource_id + required: true + schema: + format: uint32 + type: integer + inventory_resource_provider_query: + description: Provider of Inventory Resource + in: query + name: resources_provider + required: true + schema: + type: string + resource_pool_canonical: + description: Organization Resource Pool canonical + in: path + name: resource_pool_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + quota_id: + description: Quota ID + in: path + name: quota_id + required: true + schema: + format: uint32 + type: integer + appearance_canonical: + description: A canonical of an appearance. + in: path + name: appearance_canonical + required: true + schema: + maxLength: 100 + minLength: 1 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + service_status_canonical: + description: The canonical of the service you want to get the status from + in: path + name: service_status_canonical + required: true + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + use_case_query: + description: A use case of a stack to be selectd from the stack config + in: query + name: use_case + schema: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + member_id: + description: A member id + in: path + name: member_id + required: true + schema: + format: uint32 + type: integer + responses: + not_found_entity_in_path: + content: + application/json: + example: + errors: + - message: Entity not found + code: NotFoundEntity + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when any of the entities present in the path is not found. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + not_enough_permissions: + content: + application/json: + example: + errors: + - message: Not enough permissions to perform the operation + code: Unauthorized + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + unexpected_error: + content: + application/json: + example: + errors: + - message: Server Internal error + code: Unexpected + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The response sent when an unexpected error happened, as known as an internal server error. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + unprocessable_entity: + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: All the custom errors that are generated from the Cycloid API + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + unauthenticated: + content: + application/json: + example: + errors: + - code: Unauthenticated + message: invalid credentials + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The user cannot be authenticated with the credentials which she/he has used. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + required_content_length_header: + content: {} + description: The request has a body but it doesn't have a Content-Length header. + retry_operation: + content: + application/json: + example: + errors: + - code: RetryOperation + message: Operation must be retried. + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The operation couldn't be executed or completed and it should retried. + headers: + Retry-After: + description: The number of seconds to wait until retry the request + schema: + format: uint16 + type: integer + locked_state: + content: + application/json: + example: + errors: + - message: some error + code: SomeCode + schema: + $ref: '#/components/schemas/ErrorPayload' + description: The operation couldn't be executed or completed because the state is locked. + headers: + Content-Length: + description: The length of the response body in octets (8-bit bytes). + schema: + format: uint64 + type: integer + schemas: + AppVersion: + example: + version: version + branch: branch + revision: revision + properties: + version: + description: The version of the application. + minLength: 5 + type: string + branch: + description: The Git branch used to build the application. + minLength: 1 + type: string + revision: + description: The Git revision used to build the application. + maxLength: 40 + minLength: 8 + type: string + required: + - branch + - revision + - version + title: AppVersion + type: object + GeneralStatus: + example: + checks: + - canonical: canonical + category: category + message: message + status: Unknown + - canonical: canonical + category: category + message: message + status: Unknown + message: message + status: Unknown + properties: + status: + description: The overall status for the application. + enum: + - Unknown + - Success + - Error + type: string + message: + description: Message providing information regarding the status. + minLength: 1 + type: string + checks: + description: List of all checks report type/name/status. + items: + $ref: '#/components/schemas/CheckReport' + type: array + required: + - checks + - message + - status + title: GeneralStatus + type: object + CheckReport: + example: + canonical: canonical + category: category + message: message + status: Unknown + properties: + canonical: + description: The name of the service checked. + minLength: 1 + type: string + category: + description: The category of the service checked. + minLength: 1 + type: string + status: + description: The status of the service checked. + enum: + - Unknown + - Success + - Error + type: string + message: + description: The message providing information regarding the state of the service. + minLength: 1 + type: string + required: + - canonical + - category + - message + - status + title: CheckReport + type: object + AppConfig: + description: Global app configuration that includes all the settings and capabilities of the Cycloid instance. It is intended to be used by clients to modify the UI accordingly. + example: + authentication: + saml2: + - provider: provider + sso_url: https://openapi-generator.tech + - provider: provider + sso_url: https://openapi-generator.tech + oauth: + - provider: provider + type: type + client_id: client_id + - provider: provider + type: type + client_id: client_id + local: + enabled: true + properties: + authentication: + $ref: '#/components/schemas/AuthConfig' + required: + - authentication + title: AppConfig + type: object + AuthConfig: + example: + saml2: + - provider: provider + sso_url: https://openapi-generator.tech + - provider: provider + sso_url: https://openapi-generator.tech + oauth: + - provider: provider + type: type + client_id: client_id + - provider: provider + type: type + client_id: client_id + local: + enabled: true + properties: + local: + $ref: '#/components/schemas/AuthConfigLocalAuth' + oauth: + description: List of OAuth providers. + items: + $ref: '#/components/schemas/AuthConfigOAuth' + type: array + saml2: + description: List of SAML2 providers. + items: + $ref: '#/components/schemas/AuthConfigSAML' + type: array + required: + - local + - oauth + - saml2 + title: AuthConfig + type: object + AuthConfigLocalAuth: + example: + enabled: true + properties: + enabled: + description: Whether local authentication is enabled + type: boolean + required: + - enabled + title: AppConfigLocalAuth + type: object + AuthConfigOAuth: + discriminator: + propertyName: type + example: + provider: provider + type: type + client_id: client_id + properties: + provider: + description: Name of the OAuth identity provider. + type: string + client_id: + description: ID of the OAuth client. + type: string + type: + description: Type is used as discriminator for different OAuth identity provider definitions. + type: string + required: + - client_id + - provider + - type + title: AppConfigAuthOAuth + type: object + AzureADAuthConfig: + allOf: + - $ref: '#/components/schemas/AuthConfigOAuth' + - properties: + tenant_id: + description: ID of the OAuth tenant. + type: string + required: + - tenant_id + type: object + description: AzureAD OAuth configuration + title: AppConfigAzureADOAuth + GoogleOAuthConfig: + allOf: + - $ref: '#/components/schemas/AuthConfigOAuth' + description: Google OAuth configuration + title: AppConfigGoogleOAuth + GitHubOAuthConfig: + allOf: + - $ref: '#/components/schemas/AuthConfigOAuth' + - properties: + host_address: + description: | + GitHub host address is used to determine where the request for the token should be sent. + In most cases this address will be https://api.github.com`, but it could be different + for onprem clients that use GitHub Enterprise. + type: string + required: + - host_address + type: object + description: GitHub OAuth configuration. + title: AppConfigGitHubOAuth + AuthConfigSAML: + example: + provider: provider + sso_url: https://openapi-generator.tech + properties: + provider: + description: Entity ID of the SAML2 identity provider. + type: string + sso_url: + description: SSO URL to which the user should be redirected in order to authenticate with the Identity Provider. + format: uri + type: string + required: + - provider + - sso_url + title: AppConfigSAML + type: object + Pagination: + example: + total: 0 + size: 0 + index: 1 + properties: + total: + description: The total number of items. + format: uint64 + minimum: 0 + type: integer + index: + description: The index of the page sent (the first page is 1). + format: uint64 + minimum: 1 + type: integer + size: + description: The size of the page (the number of entities per page) + format: uint64 + minimum: 0 + type: integer + required: + - index + - size + - total + title: Pagination + type: object + PaginationConcourse: + example: + next: + limit: 1 + until: 6 + since: 0 + previous: + limit: 1 + until: 6 + since: 0 + properties: + next: + $ref: '#/components/schemas/PageConcourse' + previous: + $ref: '#/components/schemas/PageConcourse' + required: + - next + - previous + title: PaginationConcourse + type: object + PageConcourse: + example: + limit: 1 + until: 6 + since: 0 + properties: + since: + description: Entities returned should have a higher timestamp than this one + format: uint64 + type: integer + until: + description: Entities returned should have a lower timestamp than this one + format: uint64 + type: integer + limit: + description: The maximum number of entities to return + format: uint64 + type: integer + required: + - limit + - since + - until + title: PageConcourse + type: object + PaginationAWS: + example: + next: next + properties: + next: + description: The token to retrieve the next page of results. Empty string when there isn't a next page. + type: string + required: + - next + title: AWS Pagination + type: object + Filters: + description: Filters is the possible values the filters can have on list requests + title: Filters + type: object + Organization: + description: The entity which holds all the direct information attached to an organization. + example: + quotas: true + has_children: true + can_create_appearance: true + created_at: 0 + canonical: canonical + subscription: + expires_at: 0 + current_members: 0 + members_count: 0 + plan: + name: name + canonical: canonical + ci_team_name: ci_team_name + ci_url: ci_url + can_children_create_appearance: true + appearance: + is_active: true + color: + r: 20 + b: 37 + g: 153 + updated_at: 0 + favicon: https://openapi-generator.tech + footer: footer + name: name + tab_title: tab_title + logo: https://openapi-generator.tech + created_at: 0 + canonical: canonical + display_name: display_name + blocked: + - blocked + - blocked + updated_at: 0 + name: name + mfa_enabled: true + id: 1 + admins: + - invitation_resent_at: 0 + invitation_state: pending + last_login_at: 0 + role: + default: true + updated_at: 0 + name: name + description: description + created_at: 0 + rules: + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + id: 1 + canonical: canonical + picture_url: https://openapi-generator.tech + invited_at: 0 + created_at: 0 + invited_by: null + given_name: given_name + locale: en + updated_at: 0 + invitation_email: invitation_email + mfa_enabled: true + id: 1 + family_name: family_name + email: email + username: username + - invitation_resent_at: 0 + invitation_state: pending + last_login_at: 0 + role: + default: true + updated_at: 0 + name: name + description: description + created_at: 0 + rules: + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + id: 1 + canonical: canonical + picture_url: https://openapi-generator.tech + invited_at: 0 + created_at: 0 + invited_by: null + given_name: given_name + locale: en + updated_at: 0 + invitation_email: invitation_email + mfa_enabled: true + id: 1 + family_name: family_name + email: email + username: username + ci_port: ci_port + properties: + id: + format: uint32 + minimum: 1 + type: integer + canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + ci_team_name: + type: string + ci_url: + type: string + ci_port: + type: string + name: + minLength: 3 + type: string + blocked: + items: + type: string + type: array + has_children: + type: boolean + quotas: + type: boolean + can_create_appearance: + type: boolean + can_children_create_appearance: + type: boolean + created_at: + format: uint64 + minimum: 0 + type: integer + updated_at: + format: uint64 + minimum: 0 + type: integer + admins: + items: + $ref: '#/components/schemas/MemberOrg' + type: array + subscription: + $ref: '#/components/schemas/Subscription' + appearance: + $ref: '#/components/schemas/Appearance' + mfa_enabled: + type: boolean + required: + - blocked + - can_children_create_appearance + - can_create_appearance + - canonical + - ci_port + - ci_team_name + - ci_url + - created_at + - has_children + - id + - mfa_enabled + - name + - quotas + - updated_at + title: Organization + type: object + NewOrganization: + description: The entity which represents a new organization to create in the application. + properties: + canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + name: + minLength: 3 + type: string + required: + - name + title: Create Organization + type: object + UpdateOrganization: + description: The entity which represents the information of an organization to be updated. + properties: + name: + minLength: 3 + type: string + quotas: + type: boolean + can_children_create_appearance: + type: boolean + mfa_enabled: + type: boolean + required: + - name + title: Update Organization + type: object + Team: + description: The entity which represents the information of a team. + example: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + updated_at: 0 + roles: + - default: true + updated_at: 0 + name: name + description: description + created_at: 0 + rules: + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + id: 1 + canonical: canonical + - default: true + updated_at: 0 + name: name + description: description + created_at: 0 + rules: + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + id: 1 + canonical: canonical + name: name + created_at: 0 + id: 1 + canonical: canonical + member_count: 5 + members_preview: + - last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + invited_by: + invitation_resent_at: 0 + invitation_state: pending + last_login_at: 0 + role: + default: true + updated_at: 0 + name: name + description: description + created_at: 0 + rules: + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + id: 1 + canonical: canonical + picture_url: https://openapi-generator.tech + invited_at: 0 + created_at: 0 + invited_by: null + given_name: given_name + locale: en + updated_at: 0 + invitation_email: invitation_email + mfa_enabled: true + id: 1 + family_name: family_name + email: email + username: username + given_name: given_name + family_name: family_name + email: email + username: username + - last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + invited_by: + invitation_resent_at: 0 + invitation_state: pending + last_login_at: 0 + role: + default: true + updated_at: 0 + name: name + description: description + created_at: 0 + rules: + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + id: 1 + canonical: canonical + picture_url: https://openapi-generator.tech + invited_at: 0 + created_at: 0 + invited_by: null + given_name: given_name + locale: en + updated_at: 0 + invitation_email: invitation_email + mfa_enabled: true + id: 1 + family_name: family_name + email: email + username: username + given_name: given_name + family_name: family_name + email: email + username: username + - last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + invited_by: + invitation_resent_at: 0 + invitation_state: pending + last_login_at: 0 + role: + default: true + updated_at: 0 + name: name + description: description + created_at: 0 + rules: + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + id: 1 + canonical: canonical + picture_url: https://openapi-generator.tech + invited_at: 0 + created_at: 0 + invited_by: null + given_name: given_name + locale: en + updated_at: 0 + invitation_email: invitation_email + mfa_enabled: true + id: 1 + family_name: family_name + email: email + username: username + given_name: given_name + family_name: family_name + email: email + username: username + - last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + invited_by: + invitation_resent_at: 0 + invitation_state: pending + last_login_at: 0 + role: + default: true + updated_at: 0 + name: name + description: description + created_at: 0 + rules: + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + id: 1 + canonical: canonical + picture_url: https://openapi-generator.tech + invited_at: 0 + created_at: 0 + invited_by: null + given_name: given_name + locale: en + updated_at: 0 + invitation_email: invitation_email + mfa_enabled: true + id: 1 + family_name: family_name + email: email + username: username + given_name: given_name + family_name: family_name + email: email + username: username + - last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + invited_by: + invitation_resent_at: 0 + invitation_state: pending + last_login_at: 0 + role: + default: true + updated_at: 0 + name: name + description: description + created_at: 0 + rules: + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + id: 1 + canonical: canonical + picture_url: https://openapi-generator.tech + invited_at: 0 + created_at: 0 + invited_by: null + given_name: given_name + locale: en + updated_at: 0 + invitation_email: invitation_email + mfa_enabled: true + id: 1 + family_name: family_name + email: email + username: username + given_name: given_name + family_name: family_name + email: email + username: username + properties: + id: + format: uint32 + minimum: 1 + type: integer + canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + name: + minLength: 3 + type: string + owner: + $ref: '#/components/schemas/User' + created_at: + format: uint64 + minimum: 0 + type: integer + updated_at: + format: uint64 + minimum: 0 + type: integer + roles: + items: + $ref: '#/components/schemas/Role' + minItems: 1 + type: array + member_count: + description: The total count of members of the team. + format: uint32 + type: integer + members_preview: + description: Preview of the list of team members, limited to 6 members. + items: + $ref: '#/components/schemas/MemberTeam' + maxItems: 6 + type: array + required: + - canonical + - created_at + - id + - member_count + - members_preview + - name + - roles + - updated_at + title: Team + type: object + SimpleTeam: + description: The entity which represents the information of a team a bit simplified. + example: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: canonical + properties: + id: + format: uint32 + minimum: 1 + type: integer + canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + name: + minLength: 3 + type: string + owner: + $ref: '#/components/schemas/User' + created_at: + format: uint64 + minimum: 0 + type: integer + updated_at: + format: uint64 + minimum: 0 + type: integer + required: + - canonical + - created_at + - id + - name + - updated_at + title: SimpleTeam + type: object + NewTeam: + description: The entity which represents the information of a new team. + properties: + canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + name: + minLength: 3 + type: string + owner: + description: | + User canonical that owns this team. If omitted then the person + creating this team will be assigned as owner. When a user is the + owner of a team it has all the permissions on it. + type: string + roles_canonical: + description: The roles to be assigned to a team. + items: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + type: array + required: + - name + - roles_canonical + title: Create Team + type: object + UpdateTeam: + description: The entity which represents the information of the team to be updated. + properties: + canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + name: + minLength: 3 + type: string + owner: + description: | + User canonical that owns this team. Only the owner or an + organization admin can update this field. When a user is the owner + of a team it has all the permission on it. + type: string + roles_canonical: + description: The roles to be re-assigned to a team. + items: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + type: array + required: + - canonical + - name + - roles_canonical + title: Update Team + type: object + Project: + description: The entity which represents the information of a project. + example: + service_catalog: + image: https://openapi-generator.tech + keywords: + - keywords + - keywords + visibility: visibility + author: author + cloud_providers: + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + description: description + created_at: 0 + import_status: succeeded + canonical: canonical + readme: readme + team: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: canonical + directory: directory + form_enabled: true + dependencies: + - ref: ref + required: true + - ref: ref + required: true + technologies: + - technology: technology + version: version + - technology: technology + version: version + blueprint: true + ref: ref + updated_at: 0 + trusted: true + name: name + organization_canonical: organization_canonical + id: 1 + service_catalog_source_canonical: service_catalog_source_canonical + quota_enabled: true + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + environments: + - use_case: use_case + updated_at: 0 + color: color + icon: icon + created_at: 0 + cloud_provider: + regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + id: 1 + canonical: canonical + - use_case: use_case + updated_at: 0 + color: color + icon: icon + created_at: 0 + cloud_provider: + regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + id: 1 + canonical: canonical + description: description + created_at: 0 + import_status: succeeded + canonical: canonical + team: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: canonical + updated_at: 0 + config_repository_canonical: config_repository_canonical + name: name + id: 1 + favorite: true + properties: + id: + format: uint32 + minimum: 1 + type: integer + canonical: + maxLength: 100 + minLength: 1 + pattern: (^[a-z0-9]+(([a-z0-9\-_]+)?[a-z0-9]+)?$) + type: string + name: + minLength: 1 + type: string + description: + type: string + environments: + items: + $ref: '#/components/schemas/Environment' + type: array + service_catalog: + $ref: '#/components/schemas/ServiceCatalog' + team: + $ref: '#/components/schemas/SimpleTeam' + owner: + $ref: '#/components/schemas/User' + created_at: + format: uint64 + minimum: 0 + type: integer + updated_at: + format: uint64 + minimum: 0 + type: integer + config_repository_canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + import_status: + description: The import process status. + enum: + - succeeded + - failed + - importing + type: string + favorite: + type: boolean + required: + - canonical + - created_at + - environments + - id + - name + - updated_at + title: Project + type: object + NewProject: + additionalProperties: false + description: The entity which represents the information of a new project. + properties: + canonical: + maxLength: 100 + minLength: 1 + pattern: (^[a-z0-9]+(([a-z0-9\-_]+)?[a-z0-9]+)?$) + type: string + name: + minLength: 1 + type: string + service_catalog_ref: + description: It's the ref of the Service Catalog, like 'cycloidio:stack-magento' + type: string + description: + description: | + A description regarding the project to help identify/remember details, + implementation, purpose, etc. + type: string + owner: + description: | + User canonical that owns this project. If omitted then the person + creating this project will be assigned as owner. When a user is the + owner of a project it has all the permissions on it. + type: string + config_repository_canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + team_canonical: + description: | + Is only required when the using Quotas, it'll link the Project + to the Team + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + required: + - config_repository_canonical + - name + - service_catalog_ref + title: Create Project + type: object + UpdateProject: + additionalProperties: false + description: The entity which represents the information of the project to be updated. + properties: + name: + minLength: 1 + type: string + description: + type: string + service_catalog_ref: + description: It's the ref of the Service Catalog, like 'cycloidio:stack-magento' + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+:[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + owner: + description: | + User canonical that owns this project. Only the owner or an + organization admin can update such a field. When a user is the owner + of a project it has all the permission on it. + type: string + cloud_provider: + description: | + The cloud provider canonical that this project is using - between the + supported ones. + enum: + - aws + - google + - azurerm + - flexibleengine + - openstack + type: string + config_repository_canonical: + description: | + The config_repository_canonical points to new Config Repository the project + will be using. If this value is filled and it's different from the + current one, the whole project will be migrated to new CR, meaning + configuration files will also be moved. + If the project didn't have config_repository_canonical set, this action will + only attach the project to the CR, it won't create/move any files. + In order to be sure everything works, make sure the + config_repository_canonical is pointing at the CR with the same git + repository that was used during project creation. + Although the config_repository_canonical is not marked as required, + it's actually required for projects that are already using CR. This + field not being required is only for compatibility with older projects, + which are not having CR yet. + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + updated_at: + description: "This will be used to assert that the Project is in it's last updated form\nbecause if not we could have inconsistencies with the environments. The \nformat is in seconds, basically UNIX format.\n" + format: uint64 + minimum: 0 + type: integer + required: + - name + - service_catalog_ref + - updated_at + title: Update Project + type: object + ProjectEnvironmentConfig: + description: | + Representation of project's environment configuration done via the forms. + The full forms file is returned, but the use case picked has the + Set variables matching the current configuration - if any. + example: + use_case: use_case + resource_pool_canonical: resource_pool_canonical + forms: + use_cases: + - name: name + sections: + - name: name + groups: + - technologies: + - technologies + - technologies + condition: condition + name: name + vars: + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + folded: true + - technologies: + - technologies + - technologies + condition: condition + name: name + vars: + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + folded: true + - name: name + groups: + - technologies: + - technologies + - technologies + condition: condition + name: name + vars: + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + folded: true + - technologies: + - technologies + - technologies + condition: condition + name: name + vars: + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + folded: true + - name: name + sections: + - name: name + groups: + - technologies: + - technologies + - technologies + condition: condition + name: name + vars: + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + folded: true + - technologies: + - technologies + - technologies + condition: condition + name: name + vars: + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + folded: true + - name: name + groups: + - technologies: + - technologies + - technologies + condition: condition + name: name + vars: + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + folded: true + - technologies: + - technologies + - technologies + condition: condition + name: name + vars: + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + folded: true + version: version + properties: + use_case: + description: The use case picked for that environment + type: string + resource_pool_canonical: + description: The resource pool canonical, only require when using Quotas + type: string + forms: + $ref: '#/components/schemas/FormsFileV3' + required: + - forms + - use_case + title: Project Environment Config + type: object + FormsValidation: + description: Validates a given Form's file + properties: + form_file: + description: A form's file to any given version + properties: {} + type: object + required: + - form_file + title: Forms validation + type: object + FormsValidationResult: + description: The result of the validation, if errors is empty means that is correct + example: + forms: + use_cases: + - name: name + sections: + - name: name + groups: + - technologies: + - technologies + - technologies + condition: condition + name: name + vars: + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + folded: true + - technologies: + - technologies + - technologies + condition: condition + name: name + vars: + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + folded: true + - name: name + groups: + - technologies: + - technologies + - technologies + condition: condition + name: name + vars: + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + folded: true + - technologies: + - technologies + - technologies + condition: condition + name: name + vars: + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + folded: true + - name: name + sections: + - name: name + groups: + - technologies: + - technologies + - technologies + condition: condition + name: name + vars: + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + folded: true + - technologies: + - technologies + - technologies + condition: condition + name: name + vars: + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + folded: true + - name: name + groups: + - technologies: + - technologies + - technologies + condition: condition + name: name + vars: + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + folded: true + - technologies: + - technologies + - technologies + condition: condition + name: name + vars: + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + folded: true + version: version + errors: + - errors + - errors + properties: + forms: + $ref: '#/components/schemas/FormsFileV3' + errors: + items: + type: string + type: array + required: + - errors + - forms + title: FormsValidationResult + type: object + FormsFileV3: + description: '' + example: + use_cases: + - name: name + sections: + - name: name + groups: + - technologies: + - technologies + - technologies + condition: condition + name: name + vars: + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + folded: true + - technologies: + - technologies + - technologies + condition: condition + name: name + vars: + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + folded: true + - name: name + groups: + - technologies: + - technologies + - technologies + condition: condition + name: name + vars: + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + folded: true + - technologies: + - technologies + - technologies + condition: condition + name: name + vars: + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + folded: true + - name: name + sections: + - name: name + groups: + - technologies: + - technologies + - technologies + condition: condition + name: name + vars: + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + folded: true + - technologies: + - technologies + - technologies + condition: condition + name: name + vars: + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + folded: true + - name: name + groups: + - technologies: + - technologies + - technologies + condition: condition + name: name + vars: + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + folded: true + - technologies: + - technologies + - technologies + condition: condition + name: name + vars: + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + folded: true + version: version + properties: + version: + type: string + use_cases: + items: + $ref: '#/components/schemas/FormUseCase' + type: array + required: + - use_cases + - version + title: Forms File V3 + type: object + FormUseCase: + description: '' + example: + name: name + sections: + - name: name + groups: + - technologies: + - technologies + - technologies + condition: condition + name: name + vars: + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + folded: true + - technologies: + - technologies + - technologies + condition: condition + name: name + vars: + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + folded: true + - name: name + groups: + - technologies: + - technologies + - technologies + condition: condition + name: name + vars: + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + folded: true + - technologies: + - technologies + - technologies + condition: condition + name: name + vars: + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + folded: true + properties: + name: + type: string + sections: + items: + $ref: '#/components/schemas/FormSection' + type: array + required: + - name + - sections + title: Forms File Use case + type: object + FormSection: + description: '' + example: + name: name + groups: + - technologies: + - technologies + - technologies + condition: condition + name: name + vars: + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + folded: true + - technologies: + - technologies + - technologies + condition: condition + name: name + vars: + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + folded: true + properties: + name: + type: string + groups: + items: + $ref: '#/components/schemas/FormGroup' + type: array + required: + - groups + - name + title: Forms File Section + type: object + FormGroup: + description: '' + example: + technologies: + - technologies + - technologies + condition: condition + name: name + vars: + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + folded: true + properties: + name: + type: string + technologies: + items: + type: string + type: array + condition: + description: Condition required to be respected to be able to configure that group. + type: string + folded: + description: Whether or not the group should be displayed to the user. Variables within this group must be usable as such (not required, or with a default if required) + type: boolean + vars: + items: + $ref: '#/components/schemas/FormEntity' + type: array + required: + - name + - technologies + - vars + title: Forms File Group + type: object + FormEntity: + description: This describes all the attributes possible to configure a form's variable + example: + widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + properties: + key: + description: 'The key is the name of variables for the ansible/pipeline/terraform technologies. If this is a first level variable then: keyX. If you have multiple terraform modules then use: module.Y.keyX to help identify the unique variable.' + type: string + name: + description: The name of the variable displayed to the user + type: string + widget: + description: The widget used to display the data in the most suitable way + enum: + - auto_complete + - dropdown + - radios + - slider_list + - slider_range + - number + - simple_text + - switch + - text_area + - cy_cred + - cy_scs + - cy_crs + - cy_branch + - cy_inventory_resource + - hidden + type: string + widget_config: + description: |- + Some specific configuration that could be applied to that widget. Currently only a few widgets can be configured: + * cy_cred + * 'cred_types' (list): reduce the types of credentials retrieved to that list. See supported types of credentials + * 'display_keys' (bool): to specify if the path + key have to be written or only the path + * radio + * 'orientation' (string): whether you want to display it in an 'horizontal' or 'vertical' way + * cy_inventory_resource + * 'provider' (string): The provider like '"provider[\"registry.terraform.io/hashicorp/aws\"]"' + * 'type' (string): The type of the resource like 'aws_vpc' + * 'name' (string): The name of the resource like 'front' + * 'module' (string): The module name like 'module.lemp' + * 'label' (string): The label of the resource, this only applies for resources created directly from the API/FE + * 'attributes' (string): The query string to filter the attributes like 'ingress[0].protocol[eq]=tcp' + * 'custom_attributes' (string): The query string to filter the custom_attributes like 'ingress[0].protocol[eq]=tcp' + * 'attribute' (string): The path to the attribute to actually use as value + properties: {} + type: object + type: + description: The type of data handled - used to manipulate/validate the input, and also validate default/values + enum: + - integer + - float + - string + - array + - boolean + - map + type: string + required: + description: Whether or not the field is required - that helps distinguish "optional" variables and allows to set default if necessary and present + type: boolean + folded: + description: Whether or not the entity should be displayed to the user. This entity must be usable as such (not required, or with a default if required) + type: boolean + default: + description: |- + Default can take 2 kinds of definition. + The first one is simply the variable to assign if nothing is given by the user and that the variable is required. + The second one is dynamic default, meaning default that can vary based on conditions. The format is as follows: + options: + - name: "Name of set (can be omitted)" + condition: "$env == 'dev'" + default: t2.micro + - condition: "$env == 'prod'" + default: t2.large + properties: {} + type: object + current: + description: The current value that was previously configured for this variable upon creation or update. In case of shared variables having different values, it will be empty, and 'mismatch_values' will be filled instead. + properties: {} + type: object + mismatch_values: + description: This is filled only when a shared variable does not have the same values anymore. e.g. a variable 'foo' was shared between 'ansible' and 'pipeline', was set to 'bar', but now the value found for 'ansible' is 'bus', while it's still 'bar' for the pipeline. In such situation, the Forms don't know anymore which is the correct data and will return both, while unsetting the 'Current' field. + items: + properties: {} + type: object + type: array + unit: + description: 'The unit to be displayed for the variable, helping to know what''s being manipulated: amount of servers, Go, users, etc.' + type: string + description: + description: The description helping users understand the interest/impact of such variable/change + type: string + values: + description: |- + Values can take 2 kinds of definition. + First one is a list of object, such as list of integer, maps, etc. Values allowed, e.g. [1, 10, 20, 50]. Note: In case of SliderRange only 2 values should be provided: [min, max], in case of providing them the other way around some validation test will fail. + Second one is dynamic values, meaning values that can vary based on conditions. The format is as follows: + options: + - name: "Name of set (can be omitted)" + condition: "$env == 'dev'" + values: [dev-ami1, dev-ami2, dev-ami3] + - condition: "$env == 'prod'" + values: [prod-ami1, prod-ami2, prod-ami3] + properties: {} + type: object + source: + description: 'The source is only used for the branch widget to reference the key of the SCS or CR that the branches have to be read from. Because a branch in itself cannot exist, the user has to indicate from which SCS or CR he wants to retrieve branches. The source has to reference the key of an entity of a widget: ''CyCRS'' or ''CySCS''' + type: string + validations: + description: "An array of validations and relative errors for this entitiy. For example:\n validations: \n - regexp: \"^proj_.*$\" \n error_message: \"the value must have 'proj_' as prefix\"\n - regexp: \"^.*_awesome$\" \n error_message: \"the value must have '_awesome' as suffix\"\nAt the moment only regexp validations are implemented but we can expect objects with a 'type', and 'error_message' field. The type field can hold the constraint, as in the case of regexp or hipotetically a moe complex object." + items: + properties: {} + type: object + type: array + depends_on: + description: List of keys that are required to use this entity + items: + type: string + type: array + values_ref: + description: It's a URL in which the values have to be fetched from + type: string + required: + - key + - name + - type + - widget + title: Forms file's Entity + type: object + FormInputs: + description: | + The array of variables set by the user via the forms with the associated environment + canonical and use case upon project creation. + properties: + service_catalog_ref: + description: | + It's the ref of the Service Catalog, like 'cycloidio:stack-magento' + type: string + inputs: + description: | + The variables set within a form with the corresponding environment + canonical and use case + items: + $ref: '#/components/schemas/FormInput' + type: array + required: + - inputs + - service_catalog_ref + title: Forms inputs + type: object + FormInput: + description: | + The variables set within a form with the corresponding + environment canonical and use case + properties: + use_case: + description: The use case to load + type: string + environment_canonical: + description: The environment canonical + type: string + resource_pool_canonical: + description: The resource pool canonical, only require when using Quotas + type: string + vars: + description: | + Forms variables filled, the format to respect is as follows + { + "sectionX": { + "group1": { + "key1": "value1", + "key2": "value2", + "key3": "value3" + }, + }, + "sectionY": { + "group2": { + "key1": "value1", + "key2": "value2", + "key3": "value3" + }, + }, + "sectionZ": { + "group3": { + "key1": "value2" + }, + } + } + Keys being the variable name that you want to see substituted/defined, + while the section and group are the one from the form's file. + properties: {} + type: object + required: + - environment_canonical + - use_case + - vars + title: Forms input + type: object + UserAccountEmail: + description: The email address of a user. + example: + purpose: purpose + verified: true + created_at: 0 + email: email + properties: + email: + format: email + type: string + verified: + type: boolean + purpose: + description: This values are set by the application to indicate the purpose of the email address. At least there is always one which is the primary. + type: string + created_at: + format: uint64 + minimum: 0 + type: integer + required: + - email + - purpose + - verified + title: User's email + type: object + UpdateUserAccountEmail: + description: The email address of a user to be updated. + properties: + email: + format: email + type: string + purpose: + description: This values are set by the application to indicate the purpose of the email address. At least there is always one which is the primary. + type: string + required: + - email + - purpose + title: User's email + type: object + UserAccount: + description: The user's account contains information related with the authenticated user. + example: + emails: + - purpose: purpose + verified: true + created_at: 0 + email: email + - purpose: purpose + verified: true + created_at: 0 + email: email + country: + code: code + name: name + updated_at: 0 + picture_url: https://openapi-generator.tech + last_login: 0 + created_at: 0 + mfa_enabled: true + given_name: given_name + locale: en + family_name: family_name + guide: '{}' + username: username + properties: + created_at: + format: uint64 + minimum: 0 + type: integer + updated_at: + format: uint64 + minimum: 0 + type: integer + last_login: + format: uint64 + minimum: 0 + type: integer + emails: + items: + $ref: '#/components/schemas/UserAccountEmail' + minItems: 1 + type: array + username: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + given_name: + minLength: 2 + type: string + family_name: + minLength: 2 + type: string + picture_url: + format: uri + type: string + locale: + description: User's preferred language + enum: + - en + - fr + - es + type: string + country: + $ref: '#/components/schemas/Country' + guide: + description: The user's guide progress JSON schema + title: User guide JSON schema + type: object + mfa_enabled: + type: boolean + required: + - created_at + - emails + - family_name + - given_name + - last_login + - locale + - mfa_enabled + - updated_at + - username + title: User's account + type: object + NewUserAccount: + description: Create a new user account. + properties: + invitation_token: + description: The field is used when a user signup from an invitation to an organization. Giving the token, the created user will be automatically added to the organization. + minLength: 5 + type: string + username: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + email: + format: email + type: string + password: + format: password + minLength: 8 + type: string + given_name: + minLength: 2 + type: string + family_name: + minLength: 2 + type: string + country_code: + description: Code of a country the user is from + pattern: ^[A-Z]{2}$ + type: string + locale: + description: User's preferred language + enum: + - en + - fr + - es + type: string + required: + - email + - family_name + - given_name + - password + - username + title: Sign up + type: object + NewAWSMarketplaceUserAccount: + description: Create a new AWS Marketplace user account. + properties: + aws_marketplace_token: + description: The AWS marketplace token + minLength: 1 + type: string + username: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + email: + format: email + type: string + password: + format: password + minLength: 8 + type: string + given_name: + minLength: 2 + type: string + family_name: + minLength: 2 + type: string + country_code: + description: Code of a country the user is from + pattern: ^[A-Z]{2}$ + type: string + locale: + description: User's preferred language + enum: + - en + - fr + - es + type: string + required: + - aws_marketplace_token + - email + - family_name + - given_name + - password + - username + title: Sign up from AWS Marketplace + type: object + UpdateUserAccount: + description: The user's account information of the authenticated user to be updated. Emails and password can be omitted if they don't have to be updated, because we can now if they have been sent or not although go-swagger doesn't currently support `PATCH` updates (see [comment](https://github.com/cycloidio/youdeploy-http-api/pull/71#issuecomment-321894076)), we do for this one with this 2 properties because they are good for the user, specially for the `password_update` one. In order to detect if they have been sent or not, we check if the length of array of emails is 0 (if it's sent, then the length MUST be greater than 0 as specified with minItems) and in case of the `password_update` field if it's `nil` or not. If the 'picture_url' is not send then it's removed from the user as it implies that it has deleted it, and also because we do not support partial updates + properties: + emails: + items: + $ref: '#/components/schemas/UpdateUserAccountEmail' + minItems: 1 + type: array + password_update: + $ref: '#/components/schemas/UpdateUserAccount_password_update' + username: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + given_name: + minLength: 2 + type: string + family_name: + minLength: 2 + type: string + picture_url: + format: uri + type: string + country_code: + description: Code of a country the user is from + pattern: ^[A-Z]{2}$ + type: string + locale: + description: User's preferred language + enum: + - en + - fr + - es + type: string + mfa_enabled: + type: boolean + required: + - family_name + - given_name + - locale + - mfa_enabled + - username + title: Update user's account + type: object + UserPasswordResetReq: + description: Request to send a token for allowing the user to reset its current password. + properties: + email: + description: the email address must be the primary email of the user. + format: email + type: string + required: + - email + title: User password reset request + type: object + UserPasswordResetUpdate: + description: Reset the current user password to the one provided. The user must have a valid token for the resetting password action. + properties: + password: + format: password + minLength: 8 + type: string + token: + minLength: 1 + type: string + required: + - password + - token + title: User password reset update + type: object + UserLogin: + description: Validate the user to access to the application. The user can login with the primary email address or with username. + properties: + email: + format: email + type: string + username: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + password: + format: password + minLength: 8 + type: string + organization_canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + required: + - password + title: Log in + type: object + UserOAuth: + description: The User OAuth information, if it's on the platform it'll return the 'token' to login, if not the 'user' to show to the user + example: + user: + country_code: country_code + social_id: social_id + picture_url: https://openapi-generator.tech + invitation_token: invitation_token + given_name: given_name + locale: en + family_name: family_name + email: email + username: username + token: token + properties: + user: + $ref: '#/components/schemas/NewOAuthUser' + token: + description: Is the JWT of the platform user + type: string + title: User's OAuth information + type: object + NewOAuthUser: + description: The User OAuth information + example: + country_code: country_code + social_id: social_id + picture_url: https://openapi-generator.tech + invitation_token: invitation_token + given_name: given_name + locale: en + family_name: family_name + email: email + username: username + properties: + given_name: + type: string + family_name: + type: string + email: + format: email + type: string + username: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + picture_url: + format: uri + type: string + social_id: + type: string + invitation_token: + description: The field is used when a user signup from an invitation to an organization. Giving the token, the created user will be automatically added to the organization. + minLength: 5 + type: string + country_code: + description: Code of a country the user is from + pattern: ^[A-Z]{2}$ + type: string + locale: + description: User's preferred language + enum: + - en + - fr + - es + type: string + required: + - email + - given_name + - social_id + - username + title: User's OAuth information + type: object + UserSession: + description: The JWT which allows the user to access to the application. + example: + permissions: + key: + effect: allow + action: action + resources: + - resources + - resources + id: 0 + owns: + - owns + - owns + token: token + properties: + token: + type: string + permissions: + additionalProperties: + $ref: '#/components/schemas/Rule' + type: object + owns: + items: + type: string + type: array + required: + - owns + - permissions + - token + title: User's session + type: object + User: + description: A summary of a user to be used in places where only the basic information are need or are enough. + example: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + properties: + id: + format: uint32 + minimum: 1 + type: integer + username: + maxLength: 30 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + given_name: + minLength: 2 + type: string + family_name: + minLength: 2 + type: string + email: + description: User's primary email. + format: email + type: string + picture_url: + format: uri + type: string + country_code: + description: Code of a country the user is from + pattern: ^[A-Z]{2}$ + type: string + locale: + description: The local that the user prefer. + pattern: ^[a-z]{2}(?:-[a-z][a-z])?$ + type: string + created_at: + description: When the user became a member. + format: uint64 + minimum: 0 + type: integer + updated_at: + description: When the user had the role modified. + format: uint64 + minimum: 0 + type: integer + last_login_at: + description: When the user logged in last time. + format: uint64 + minimum: 0 + type: integer + mfa_enabled: + type: boolean + required: + - created_at + - email + - family_name + - given_name + - id + - locale + - mfa_enabled + - username + title: Basic info of a user + type: object + MemberOrg: + description: Member is a user who is associated to an organization. + example: + invitation_resent_at: 0 + invitation_state: pending + last_login_at: 0 + role: + default: true + updated_at: 0 + name: name + description: description + created_at: 0 + rules: + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + id: 1 + canonical: canonical + picture_url: https://openapi-generator.tech + invited_at: 0 + created_at: 0 + invited_by: null + given_name: given_name + locale: en + updated_at: 0 + invitation_email: invitation_email + mfa_enabled: true + id: 1 + family_name: family_name + email: email + username: username + properties: + id: + format: uint32 + minimum: 1 + type: integer + username: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + given_name: + minLength: 2 + type: string + family_name: + minLength: 2 + type: string + email: + description: user email + format: email + type: string + picture_url: + format: uri + type: string + created_at: + description: When the user became a member. + format: uint64 + minimum: 0 + type: integer + updated_at: + description: When the user had the role modified. + format: uint64 + minimum: 0 + type: integer + last_login_at: + description: When the user logged in last time. + format: uint64 + minimum: 0 + type: integer + invited_at: + description: When the user had been invited to join as a member. When not present, the user is already a member, so she/he has verified her/his invitation. + format: uint64 + minimum: 0 + type: integer + role: + $ref: '#/components/schemas/Role' + locale: + description: User's preferred language + enum: + - en + - fr + - es + type: string + mfa_enabled: + type: boolean + invitation_email: + description: The email address to which the invitation was sent. It's used to resend the invitation. + format: email + type: string + invitation_resent_at: + format: uint64 + minimum: 0 + type: integer + invitation_state: + enum: + - pending + - accepted + - declined + type: string + required: + - created_at + - id + - role + title: Member of an organization + type: object + MemberTeam: + description: Member is a user who is associated to a team. + example: + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + invited_by: + invitation_resent_at: 0 + invitation_state: pending + last_login_at: 0 + role: + default: true + updated_at: 0 + name: name + description: description + created_at: 0 + rules: + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + id: 1 + canonical: canonical + picture_url: https://openapi-generator.tech + invited_at: 0 + created_at: 0 + invited_by: null + given_name: given_name + locale: en + updated_at: 0 + invitation_email: invitation_email + mfa_enabled: true + id: 1 + family_name: family_name + email: email + username: username + given_name: given_name + family_name: family_name + email: email + username: username + properties: + id: + format: uint32 + minimum: 1 + type: integer + username: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + given_name: + minLength: 2 + type: string + family_name: + minLength: 2 + type: string + email: + description: user email + format: email + type: string + picture_url: + format: uri + type: string + created_at: + description: When the user became a member. + format: uint64 + minimum: 0 + type: integer + updated_at: + description: When the user had the role modified. + format: uint64 + minimum: 0 + type: integer + last_login_at: + description: When the user logged in last time. + format: uint64 + minimum: 0 + type: integer + mfa_enabled: + type: boolean + required: + - created_at + - email + - family_name + - given_name + - id + - mfa_enabled + - username + title: Member of a team + type: object + MemberAssignation: + description: Member is a user who is associated to an entity of the system. The user is newly assigned or reassigned for updating is data. + properties: + role_canonical: + description: The role of the member. + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + required: + - role_canonical + title: Member assignation + type: object + NewTeamMemberAssignation: + description: Member is a user assigned to a Team + properties: + username: + description: Assign user by username + format: string + type: string + required: + - username + title: Assign user + type: object + NewMemberInvitation: + description: Send an invitation to a user to something. Something can be to create an account, to join to an organization, to join to a team, etc. API operation determines the operation to perform. + properties: + email: + description: Invite user by email + format: email + type: string + role_canonical: + description: The role of the member. + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + required: + - email + - role_canonical + title: Invite user + type: object + Pipeline: + description: | + The entity which represents a pipeline in the application. + example: + paused: true + jobs: + - outputs: + - resource: resource + name: name + - resource: resource + name: name + paused: true + next_build: + start_time: 6 + job_name: job_name + api_url: api_url + reap_time: 1 + name: name + pipeline_id: 1 + end_time: 7 + id: 1 + team_name: team_name + pipeline_name: pipeline_name + status: status + finished_build: + start_time: 6 + job_name: job_name + api_url: api_url + reap_time: 1 + name: name + pipeline_id: 1 + end_time: 7 + id: 1 + team_name: team_name + pipeline_name: pipeline_name + status: status + inputs: + - resource: resource + name: name + passed: + - passed + - passed + trigger: true + version: + pinned: + key: pinned + every: true + latest: true + - resource: resource + name: name + passed: + - passed + - passed + trigger: true + version: + pinned: + key: pinned + every: true + latest: true + has_new_inputs: true + groups: + - groups + - groups + disable_manual_trigger: true + team_name: team_name + pipeline_name: pipeline_name + first_logged_build_id: 1 + name: name + pipeline_id: 4 + id: 7 + transition_build: + start_time: 6 + job_name: job_name + api_url: api_url + reap_time: 1 + name: name + pipeline_id: 1 + end_time: 7 + id: 1 + team_name: team_name + pipeline_name: pipeline_name + status: status + - outputs: + - resource: resource + name: name + - resource: resource + name: name + paused: true + next_build: + start_time: 6 + job_name: job_name + api_url: api_url + reap_time: 1 + name: name + pipeline_id: 1 + end_time: 7 + id: 1 + team_name: team_name + pipeline_name: pipeline_name + status: status + finished_build: + start_time: 6 + job_name: job_name + api_url: api_url + reap_time: 1 + name: name + pipeline_id: 1 + end_time: 7 + id: 1 + team_name: team_name + pipeline_name: pipeline_name + status: status + inputs: + - resource: resource + name: name + passed: + - passed + - passed + trigger: true + version: + pinned: + key: pinned + every: true + latest: true + - resource: resource + name: name + passed: + - passed + - passed + trigger: true + version: + pinned: + key: pinned + every: true + latest: true + has_new_inputs: true + groups: + - groups + - groups + disable_manual_trigger: true + team_name: team_name + pipeline_name: pipeline_name + first_logged_build_id: 1 + name: name + pipeline_id: 4 + id: 7 + transition_build: + start_time: 6 + job_name: job_name + api_url: api_url + reap_time: 1 + name: name + pipeline_id: 1 + end_time: 7 + id: 1 + team_name: team_name + pipeline_name: pipeline_name + status: status + groups: + - jobs: + - jobs + - jobs + name: name + resources: + - resources + - resources + - jobs: + - jobs + - jobs + name: name + resources: + - resources + - resources + project: + service_catalog: + image: https://openapi-generator.tech + keywords: + - keywords + - keywords + visibility: visibility + author: author + cloud_providers: + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + description: description + created_at: 0 + import_status: succeeded + canonical: canonical + readme: readme + team: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: canonical + directory: directory + form_enabled: true + dependencies: + - ref: ref + required: true + - ref: ref + required: true + technologies: + - technology: technology + version: version + - technology: technology + version: version + blueprint: true + ref: ref + updated_at: 0 + trusted: true + name: name + organization_canonical: organization_canonical + id: 1 + service_catalog_source_canonical: service_catalog_source_canonical + quota_enabled: true + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + environments: + - use_case: use_case + updated_at: 0 + color: color + icon: icon + created_at: 0 + cloud_provider: + regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + id: 1 + canonical: canonical + - use_case: use_case + updated_at: 0 + color: color + icon: icon + created_at: 0 + cloud_provider: + regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + id: 1 + canonical: canonical + description: description + created_at: 0 + import_status: succeeded + canonical: canonical + team: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: canonical + updated_at: 0 + config_repository_canonical: config_repository_canonical + name: name + id: 1 + favorite: true + created_at: 0 + started: true + team_name: team_name + use_case: use_case + archived: true + environment: + use_case: use_case + updated_at: 0 + color: color + icon: icon + created_at: 0 + cloud_provider: + regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + id: 1 + canonical: canonical + public: true + updated_at: 0 + name: name + id: 0 + status: status + properties: + id: + format: uint64 + type: integer + name: + type: string + paused: + type: boolean + public: + type: boolean + archived: + type: boolean + groups: + items: + $ref: '#/components/schemas/GroupConfig' + type: array + team_name: + type: string + environment: + $ref: '#/components/schemas/Environment' + project: + $ref: '#/components/schemas/Project' + use_case: + maxLength: 100 + minLength: 1 + pattern: (^[a-z0-9]+(([a-z0-9\-_]+)?[a-z0-9]+)?$) + type: string + created_at: + format: uint64 + minimum: 0 + type: integer + jobs: + items: + $ref: '#/components/schemas/Job' + type: array + status: + type: string + started: + type: boolean + updated_at: + format: uint64 + minimum: 0 + type: integer + required: + - created_at + - environment + - id + - jobs + - name + - paused + - project + - public + - team_name + - updated_at + - use_case + title: Pipeline + type: object + NewPipeline: + description: The entity which represents a new pipeline to create in the application. + properties: + pipeline_name: + maxLength: 50 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-._]+[a-z0-9]+$ + type: string + passed_config: + type: string + yaml_vars: + type: string + check_credentials: + description: Validate credentials manager variables in the pipeline config. + type: boolean + environment: + $ref: '#/components/schemas/NewEnvironment' + use_case: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + required: + - environment + - pipeline_name + title: Create Pipeline + type: object + UpdatePipeline: + description: The entity which represents a new pipeline config to update in the application. + properties: + passed_config: + type: string + yaml_vars: + type: string + check_credentials: + type: boolean + required: + - passed_config + title: Update Pipeline + type: object + GroupConfig: + description: The entity which represents pipeline group config + example: + jobs: + - jobs + - jobs + name: name + resources: + - resources + - resources + properties: + name: + type: string + jobs: + items: + type: string + type: array + resources: + items: + type: string + type: array + required: + - name + title: GroupConfig + type: object + PipelineVariables: + description: The entity which contains pipeline's variables. + example: + yaml_vars: yaml_vars + has_saved_yaml_vars: true + properties: + yaml_vars: + type: string + has_saved_yaml_vars: + description: | + The has_saved_yaml_vars specifies whether the returned vars are from + the saved ones or the sample ones. If the has_saved_yaml_vars is true, + it means that the saved have been returned. + type: boolean + required: + - has_saved_yaml_vars + - yaml_vars + title: Pipeline variables + type: object + PipelineDiffRecord: + description: Represents a diff record of a pipeline diff + example: + line: line + delta_type: delta_type + properties: + line: + description: Represents a text line in a pipeline configuration + type: string + delta_type: + description: Represents the type of delta (added, removed, changed, equals) for the text line + type: string + required: + - delta_type + - line + title: PipelineDiffRecord + type: object + PipelineDiff: + description: Represents a diff element of a PipelineDiffs. + example: + name: name + diff: + - line: line + delta_type: delta_type + - line: line + delta_type: delta_type + status: added + properties: + name: + description: Represents the name of the element in a pipeline. For example the job name for jobs section + type: string + status: + description: Represents the status of the element (added, removed, changed) + enum: + - added + - removed + - changed + type: string + diff: + description: Represents the diff of all configuration line for an element + items: + $ref: '#/components/schemas/PipelineDiffRecord' + type: array + required: + - diff + - name + - status + title: PipelineDiff + type: object + PipelineDiffs: + description: Represents the diffs between two pipelines + example: + jobs: + - name: name + diff: + - line: line + delta_type: delta_type + - line: line + delta_type: delta_type + status: added + - name: name + diff: + - line: line + delta_type: delta_type + - line: line + delta_type: delta_type + status: added + groups: + - name: name + diff: + - line: line + delta_type: delta_type + - line: line + delta_type: delta_type + status: added + - name: name + diff: + - line: line + delta_type: delta_type + - line: line + delta_type: delta_type + status: added + resources: + - name: name + diff: + - line: line + delta_type: delta_type + - line: line + delta_type: delta_type + status: added + - name: name + diff: + - line: line + delta_type: delta_type + - line: line + delta_type: delta_type + status: added + resource_types: + - name: name + diff: + - line: line + delta_type: delta_type + - line: line + delta_type: delta_type + status: added + - name: name + diff: + - line: line + delta_type: delta_type + - line: line + delta_type: delta_type + status: added + properties: + jobs: + items: + $ref: '#/components/schemas/PipelineDiff' + type: array + groups: + items: + $ref: '#/components/schemas/PipelineDiff' + type: array + resources: + items: + $ref: '#/components/schemas/PipelineDiff' + type: array + resource_types: + items: + $ref: '#/components/schemas/PipelineDiff' + type: array + title: PipelineDiffs + type: object + PipelineStatus: + description: Pipeline status returned upon pipelines comparison between the one locally stored in the database and its counter part on git. + example: + synced: unknown + error: error + diffs: + jobs: + - name: name + diff: + - line: line + delta_type: delta_type + - line: line + delta_type: delta_type + status: added + - name: name + diff: + - line: line + delta_type: delta_type + - line: line + delta_type: delta_type + status: added + groups: + - name: name + diff: + - line: line + delta_type: delta_type + - line: line + delta_type: delta_type + status: added + - name: name + diff: + - line: line + delta_type: delta_type + - line: line + delta_type: delta_type + status: added + resources: + - name: name + diff: + - line: line + delta_type: delta_type + - line: line + delta_type: delta_type + status: added + - name: name + diff: + - line: line + delta_type: delta_type + - line: line + delta_type: delta_type + status: added + resource_types: + - name: name + diff: + - line: line + delta_type: delta_type + - line: line + delta_type: delta_type + status: added + - name: name + diff: + - line: line + delta_type: delta_type + - line: line + delta_type: delta_type + status: added + properties: + synced: + description: |- + The state can vary depending on how far the comparison process went. There are 4 possible states which are: + - unknown: one of the pipeline (database/git) couldn't be retrieved + - sycned: both database & git pipelines are identical + - out_of_sync: database & git pipelines have some differences + - errored: both pipelines got retrieved but the comparison triggered an error + enum: + - unknown + - synced + - out_of_sync + - errored + type: string + error: + type: string + diffs: + $ref: '#/components/schemas/PipelineDiffs' + required: + - synced + title: PipelineStatus + type: object + TaskConfig: + description: The configuration of a concourse task. + properties: + platform: + type: string + tags: + items: + type: string + type: array + image: + type: string + params: + additionalProperties: + type: string + type: object + run: + $ref: '#/components/schemas/TaskRunConfig' + inputs: + items: + $ref: '#/components/schemas/TaskInputConfig' + type: array + title: TaskConfig + type: object + TaskRunConfig: + description: The configuration of a concourse task-run. + properties: + path: + minLength: 3 + type: string + args: + items: + type: string + type: array + title: TaskRunConfig + type: object + TaskInputConfig: + description: The configuration of inputs for concourse tasks. + properties: + name: + type: string + path: + type: string + required: + - name + title: TaskInputConfig + type: object + Plan: + description: The plan is what represent a concourse build. + properties: + id: + type: string + attempts: + items: + format: uint32 + type: integer + type: array + aggregate: + type: string + do: + items: + $ref: '#/components/schemas/Plan' + type: array + get: + $ref: '#/components/schemas/GetPlan' + put: + $ref: '#/components/schemas/PutPlan' + task: + $ref: '#/components/schemas/TaskPlan' + ensure: + $ref: '#/components/schemas/EnsurePlan' + on_success: + $ref: '#/components/schemas/OnSuccessPlan' + on_failure: + $ref: '#/components/schemas/OnFailurePlan' + try: + $ref: '#/components/schemas/TryPlan' + timeout: + $ref: '#/components/schemas/TimeoutPlan' + retry: + items: + $ref: '#/components/schemas/Plan' + type: array + required: + - id + title: Plan + type: object + GetPlan: + description: The plan to get before running another one. + properties: + type: + type: string + name: + type: string + resource: + type: string + source: + additionalProperties: + properties: {} + type: object + type: object + params: + additionalProperties: + properties: {} + type: object + type: object + version: + additionalProperties: + type: string + type: object + version_from: + type: string + tags: + items: + type: string + type: array + versioned_resource_types: + items: + $ref: '#/components/schemas/VersionedResourceType' + type: array + required: + - resource + - source + - type + title: GetPlan + type: object + PutPlan: + description: The put plan following a plan. + properties: + type: + type: string + name: + type: string + resource: + type: string + source: + additionalProperties: + properties: {} + type: object + type: object + params: + additionalProperties: + properties: {} + type: object + type: object + tags: + items: + type: string + type: array + versioned_resource_types: + items: + $ref: '#/components/schemas/VersionedResourceType' + type: array + required: + - resource + - source + - type + title: PutPlan + type: object + TaskPlan: + description: The task plan. + properties: + name: + type: string + privileged: + type: boolean + tags: + items: + type: string + type: array + config_path: + type: string + config: + $ref: '#/components/schemas/TaskConfig' + params: + additionalProperties: + properties: {} + type: object + type: object + input_mapping: + additionalProperties: + type: string + type: object + output_mapping: + additionalProperties: + type: string + type: object + image_artifact_name: + type: string + versioned_resource_types: + items: + $ref: '#/components/schemas/VersionedResourceType' + type: array + required: + - privileged + title: TaskPlan + type: object + EnsurePlan: + description: The plan to ensure to be run. + properties: + step: + $ref: '#/components/schemas/Plan' + next: + $ref: '#/components/schemas/Plan' + required: + - next + - step + title: EnsurePlan + type: object + OnSuccessPlan: + description: The plan definition when the action has been successful. + properties: + step: + $ref: '#/components/schemas/Plan' + next: + $ref: '#/components/schemas/Plan' + required: + - next + - step + title: OnSuccessPlan + type: object + OnFailurePlan: + description: The plan definition when the action has failed. + properties: + step: + $ref: '#/components/schemas/Plan' + next: + $ref: '#/components/schemas/Plan' + required: + - next + - step + title: OnFailurePlan + type: object + TryPlan: + description: The plan to ensure to be run. + properties: + step: + $ref: '#/components/schemas/Plan' + next: + $ref: '#/components/schemas/Plan' + required: + - next + - step + title: EnsurePlan + type: object + TimeoutPlan: + description: The plan to ensure to be run. + properties: + step: + $ref: '#/components/schemas/Plan' + next: + $ref: '#/components/schemas/Plan' + required: + - next + - step + title: EnsurePlan + type: object + PublicPlan: + description: The public plan returned requesting a build plan. + example: + schema: schema + plan: '{}' + properties: + schema: + type: string + plan: + properties: {} + type: object + required: + - plan + - schema + title: PublicPlan + type: object + PlanConfig: + description: The plan configuration when creating new build. + properties: + conditions: + items: + type: string + type: array + raw_name: + type: string + do: + items: + $ref: '#/components/schemas/PlanConfig' + type: array + aggregate: + items: + $ref: '#/components/schemas/PlanConfig' + type: array + get: + type: string + passed: + items: + type: string + type: array + raw_trigger: + type: boolean + put: + type: string + resource: + type: string + task: + type: string + privileged: + type: boolean + taskConfigPath: + type: string + taskConfig: + $ref: '#/components/schemas/TaskConfig' + params: + additionalProperties: + properties: {} + type: object + type: object + title: PlanConfig + type: object + VersionedResourceType: + description: The versioned resources type. + properties: + id: + format: uint32 + type: integer + name: + type: string + type: + type: string + source: + additionalProperties: + properties: {} + type: object + type: object + privileged: + type: boolean + tags: + additionalProperties: + type: string + type: object + version: + additionalProperties: + type: string + type: object + required: + - id + - name + - privileged + - source + - tags + - type + - version + title: VersionedResourceType + type: object + Job: + description: The entity which represents a job output in the application. + example: + outputs: + - resource: resource + name: name + - resource: resource + name: name + paused: true + next_build: + start_time: 6 + job_name: job_name + api_url: api_url + reap_time: 1 + name: name + pipeline_id: 1 + end_time: 7 + id: 1 + team_name: team_name + pipeline_name: pipeline_name + status: status + finished_build: + start_time: 6 + job_name: job_name + api_url: api_url + reap_time: 1 + name: name + pipeline_id: 1 + end_time: 7 + id: 1 + team_name: team_name + pipeline_name: pipeline_name + status: status + inputs: + - resource: resource + name: name + passed: + - passed + - passed + trigger: true + version: + pinned: + key: pinned + every: true + latest: true + - resource: resource + name: name + passed: + - passed + - passed + trigger: true + version: + pinned: + key: pinned + every: true + latest: true + has_new_inputs: true + groups: + - groups + - groups + disable_manual_trigger: true + team_name: team_name + pipeline_name: pipeline_name + first_logged_build_id: 1 + name: name + pipeline_id: 4 + id: 7 + transition_build: + start_time: 6 + job_name: job_name + api_url: api_url + reap_time: 1 + name: name + pipeline_id: 1 + end_time: 7 + id: 1 + team_name: team_name + pipeline_name: pipeline_name + status: status + properties: + id: + format: uint64 + type: integer + name: + type: string + paused: + type: boolean + first_logged_build_id: + format: uint64 + type: integer + disable_manual_trigger: + type: boolean + has_new_inputs: + type: boolean + next_build: + $ref: '#/components/schemas/Build' + finished_build: + $ref: '#/components/schemas/Build' + transition_build: + $ref: '#/components/schemas/Build' + inputs: + items: + $ref: '#/components/schemas/JobInput' + type: array + outputs: + items: + $ref: '#/components/schemas/JobOutput' + type: array + groups: + items: + type: string + type: array + team_name: + type: string + pipeline_id: + format: uint64 + type: integer + pipeline_name: + type: string + required: + - id + - name + title: Job + type: object + JobInput: + description: The entity which represents a job input in the application. + example: + resource: resource + name: name + passed: + - passed + - passed + trigger: true + version: + pinned: + key: pinned + every: true + latest: true + properties: + name: + type: string + resource: + type: string + passed: + items: + type: string + type: array + trigger: + type: boolean + version: + $ref: '#/components/schemas/VersionConfig' + required: + - name + - resource + - trigger + title: JobInput + type: object + JobOutput: + description: The entity which represents a job output in the application. + example: + resource: resource + name: name + properties: + name: + type: string + resource: + type: string + required: + - name + - resource + title: JobOutput + type: object + ClearTaskCache: + description: The entity which represents number of cache cleared for a task. + example: + caches_removed: 0 + properties: + caches_removed: + type: integer + required: + - caches_removed + title: ClearTaskCache + type: object + VersionConfig: + description: The entity which represents a version configuration in the application. + example: + pinned: + key: pinned + every: true + latest: true + properties: + every: + type: boolean + latest: + type: boolean + pinned: + additionalProperties: + type: string + type: object + title: VersionConfig + type: object + Worker: + description: The entity which represents a worker in the application. + example: + active_containers: 0 + start_time: 1 + name: name + ephemeral: true + state: state + team: team + active_volumes: 6 + version: version + platform: platform + tags: + - tags + - tags + properties: + name: + type: string + state: + type: string + version: + type: string + platform: + type: string + team: + type: string + ephemeral: + type: boolean + active_containers: + format: uint64 + type: integer + active_volumes: + format: uint64 + type: integer + start_time: + format: uint64 + type: integer + tags: + items: + type: string + type: array + required: + - active_containers + - active_volumes + - ephemeral + - name + - platform + - start_time + - state + - version + title: Worker + type: object + Resource: + description: The entity which represents a resource in the application. + example: + build: + start_time: 5 + job_name: job_name + name: name + end_time: 5 + pipeline_id: 2 + id: 1 + plan: '{}' + team_name: team_name + pipeline_name: pipeline_name + status: status + last_checked: 0 + name: name + icon: icon + pinned_version: + key: pinned_version + pipeline_id: 6 + type: type + pinned_in_config: true + pipeline_name: pipeline_name + team_name: team_name + pin_comment: pin_comment + properties: + name: + type: string + type: + type: string + icon: + type: string + last_checked: + format: uint64 + type: integer + pin_comment: + type: string + pinned_in_config: + type: boolean + pinned_version: + additionalProperties: + type: string + type: object + pipeline_id: + format: uint64 + type: integer + pipeline_name: + type: string + team_name: + type: string + build: + $ref: '#/components/schemas/BuildSummary' + required: + - name + - type + title: Resource + type: object + BuildInputsOutputs: + description: Represent the resources input/output related to a build + example: + outputs: + - name: name + version: + key: version + - name: name + version: + key: version + inputs: + - first_occurrence: true + name: name + pipeline_id: 0 + version: + key: version + - first_occurrence: true + name: name + pipeline_id: 0 + version: + key: version + properties: + inputs: + items: + $ref: '#/components/schemas/PublicBuildInput' + type: array + outputs: + items: + $ref: '#/components/schemas/PublicBuildOutput' + type: array + required: + - inputs + - outputs + title: BuildInputsOutputs + type: object + PublicBuildOutput: + description: Represents the information of a build output + example: + name: name + version: + key: version + properties: + name: + type: string + version: + additionalProperties: + type: string + type: object + required: + - name + - version + title: PublicBuildOutput + type: object + PublicBuildInput: + description: Represent the information of a build input + example: + first_occurrence: true + name: name + pipeline_id: 0 + version: + key: version + properties: + name: + type: string + version: + additionalProperties: + type: string + type: object + pipeline_id: + format: uint64 + type: integer + first_occurrence: + type: boolean + required: + - first_occurrence + - name + - pipeline_id + - version + title: PublicBuildInput + type: object + MetadataField: + description: Represent the metadata of a build input + example: + name: name + value: value + properties: + name: + type: string + value: + type: string + required: + - name + - value + title: MetadataField + type: object + CIVersion: + additionalProperties: + type: string + description: Represent a version of a resource + title: CIVersion + type: object + PinComment: + description: Represents a pin comment of a resource + properties: + pin_comment: + type: string + required: + - pin_comment + title: PinComment + type: object + ResourceVersion: + description: Represent the outputs of a job + example: + metadata: + - name: name + value: value + - name: name + value: value + id: 0 + version: + key: version + enabled: true + properties: + id: + format: uint64 + type: integer + metadata: + items: + $ref: '#/components/schemas/MetadataField' + type: array + version: + additionalProperties: + type: string + type: object + enabled: + type: boolean + required: + - enabled + - id + - version + title: ResourceVersion + type: object + BuildSummary: + description: The information relative to a build summary. + example: + start_time: 5 + job_name: job_name + name: name + end_time: 5 + pipeline_id: 2 + id: 1 + plan: '{}' + team_name: team_name + pipeline_name: pipeline_name + status: status + properties: + id: + format: uint64 + type: integer + team_name: + type: string + name: + type: string + status: + type: string + job_name: + type: string + plan: + properties: {} + type: object + pipeline_name: + type: string + start_time: + format: uint64 + type: integer + end_time: + format: uint64 + type: integer + pipeline_id: + format: uint64 + type: integer + required: + - id + - name + - status + - team_name + title: BuildSummary + type: object + Build: + description: The information relative to a build. + example: + start_time: 6 + job_name: job_name + api_url: api_url + reap_time: 1 + name: name + pipeline_id: 1 + end_time: 7 + id: 1 + team_name: team_name + pipeline_name: pipeline_name + status: status + properties: + id: + format: uint64 + type: integer + team_name: + type: string + name: + type: string + status: + type: string + job_name: + type: string + api_url: + type: string + pipeline_name: + type: string + pipeline_id: + format: uint64 + type: integer + start_time: + format: uint64 + type: integer + end_time: + format: uint64 + type: integer + reap_time: + format: uint64 + type: integer + required: + - api_url + - id + - name + - status + - team_name + title: Build + type: object + Preparation: + example: + paused_job: paused_job + missing_input_reasons: '{}' + max_running_builds: max_running_builds + build_id: build_id + inputs: '{}' + paused_pipeline: paused_pipeline + inputs_satisfied: '{}' + properties: + build_id: + type: string + paused_pipeline: + type: string + paused_job: + type: string + max_running_builds: + type: string + inputs: + properties: {} + type: object + inputs_satisfied: + properties: {} + type: object + missing_input_reasons: + properties: {} + type: object + required: + - build_id + - inputs + - inputs_satisfied + - max_running_builds + - missing_input_reasons + - paused_job + - paused_pipeline + title: Preparation + type: object + Role: + description: Role represents the authorization level that an user has to access to a specific entity of the system. A role contains a list of rules to define the access control. Note not all the entities supports roles access control; see the API endpoints to know which entities support them. + example: + default: true + updated_at: 0 + name: name + description: description + created_at: 0 + rules: + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + id: 1 + canonical: canonical + properties: + id: + format: uint32 + minimum: 1 + type: integer + name: + maxLength: 100 + minLength: 3 + type: string + canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + description: + type: string + default: + type: boolean + rules: + items: + $ref: '#/components/schemas/Rule' + type: array + created_at: + format: uint64 + minimum: 0 + type: integer + updated_at: + format: uint64 + minimum: 0 + type: integer + required: + - canonical + - default + - description + - id + - name + - rules + title: Role access control + type: object + NewRole: + description: New role represents the authorization level that a user has access to. A role contains a list of rules to define the access control. Note not all the entities supports roles access control; see the API endpoints to know which entities support them. + example: + name: name + description: description + rules: + - effect: allow + action: action + resources: + - resources + - resources + - effect: allow + action: action + resources: + - resources + - resources + canonical: canonical + properties: + name: + maxLength: 100 + minLength: 3 + type: string + canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + description: + type: string + rules: + items: + $ref: '#/components/schemas/NewRule' + type: array + required: + - name + - rules + title: New role access control + type: object + Rule: + description: Rules define the specific access to the platform + example: + effect: allow + action: action + resources: + - resources + - resources + id: 0 + properties: + id: + description: This is the id of the row from the database, but for blocking organizations we generate rules that are not in the database. When this happens the id is allowed to be 0. + format: uint32 + minimum: 0 + type: integer + effect: + enum: + - allow + type: string + action: + description: It can be the normal Policy.Code or contain globs like `*` or `**` + type: string + resources: + description: It is the list of resources in which this Rule applies to, the format of it is the one on the Policy.Code but with the `canonical` of the entities like `organization:org-can:team:team-can` for an action of `organization:team:read` + items: + type: string + type: array + required: + - action + - effect + - id + title: Rule + type: object + NewRule: + description: NewRule represents an existing or new permission or constraint to access to an entity of the system. A Rule is aggregated into roles in order to be applied. + example: + effect: allow + action: action + resources: + - resources + - resources + properties: + action: + description: It can be the normal Policy.Code or contain globs like `*` or `**` + type: string + effect: + enum: + - allow + type: string + resources: + description: It is the list of resources in which this Rule applies to, the format of it is the one on the Policy.Code but with the `canonical` of the entities like `organization:org-can:team:team-can` for an action of `organization:team:read` + items: + type: string + type: array + required: + - action + - effect + title: NewRule + type: object + Policy: + description: Policy represents a permission or constraint to access to an entity of the system. A policy is aggregated into roles in order to be applied. + example: + code: code + updated_at: 0 + entities: + - entities + - entities + description: description + created_at: 0 + id: 1 + properties: + id: + format: uint32 + minimum: 1 + type: integer + code: + maxLength: 60 + minLength: 5 + pattern: (?:[a-z]+_)*[a-z]+(?::(?:[a-z]+_)*[a-z]+)*$ + type: string + entities: + items: + type: string + type: array + description: + type: string + created_at: + format: uint64 + minimum: 0 + type: integer + updated_at: + format: uint64 + minimum: 0 + type: integer + required: + - code + - description + - id + title: Policy + type: object + CloudProvider: + description: CloudProvider represents a cloud provider. Those cloud providers are used to identify the scope of projects and/or stacks. + example: + regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + properties: + id: + format: uint32 + minimum: 1 + type: integer + canonical: + enum: + - aws + - google + - azurerm + - flexibleengine + - openstack + - scaleway + - vmware + - ovh + - alibaba + - oracle + - vsphere + - kubernetes + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + abbreviation: + maxLength: 60 + minLength: 2 + type: string + name: + maxLength: 60 + minLength: 2 + type: string + regions: + items: + type: string + type: array + created_at: + format: uint64 + minimum: 0 + type: integer + updated_at: + format: uint64 + minimum: 0 + type: integer + required: + - canonical + - name + title: Cloud Provider + type: object + ErrorPayload: + description: | + The payload used by the server to response to the client with an Error, those errors could be any of the ones listed [here](https://github.com/cycloidio/youdeploy-http-api/blob/develop/errors/code.go#L10), only the CODE of the error is the one that is guaranteed to not change between the same major version, the MESSAGE could change. + example: + errors: + - code: code + details: + - details + - details + message: message + - code: code + details: + - details + - details + message: message + properties: + errors: + items: + $ref: '#/components/schemas/ErrorDetailsItem' + type: array + required: + - errors + title: Error Payload + type: object + ErrorDetailsItem: + description: Represents an item of the list of details of an error. + example: + code: code + details: + - details + - details + message: message + properties: + message: + type: string + code: + type: string + details: + items: + type: string + type: array + required: + - code + - message + title: Error details item + type: object + ServiceCatalog: + description: Represents the Service Catalog item + example: + image: https://openapi-generator.tech + keywords: + - keywords + - keywords + visibility: visibility + author: author + cloud_providers: + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + description: description + created_at: 0 + import_status: succeeded + canonical: canonical + readme: readme + team: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: canonical + directory: directory + form_enabled: true + dependencies: + - ref: ref + required: true + - ref: ref + required: true + technologies: + - technology: technology + version: version + - technology: technology + version: version + blueprint: true + ref: ref + updated_at: 0 + trusted: true + name: name + organization_canonical: organization_canonical + id: 1 + service_catalog_source_canonical: service_catalog_source_canonical + quota_enabled: true + properties: + id: + format: uint32 + minimum: 1 + type: integer + name: + type: string + canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + author: + type: string + description: + type: string + keywords: + items: + type: string + type: array + image: + format: uri + type: string + visibility: + type: string + service_catalog_source_canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + form_enabled: + description: Indicates if this stack can be configured with form's or not. Based on the presence or not of a valid .forms.yaml file since it's creation or last refresh. + type: boolean + quota_enabled: + description: Indicates if this stack can be configured with form's and has a Quota configuration. + type: boolean + ref: + type: string + trusted: + description: If 'true' the ServiceCatalog is from the main organization and can be trusted. + type: boolean + directory: + description: Directory where the ServiceCatalog configuration is found. + type: string + technologies: + items: + $ref: '#/components/schemas/ServiceCatalogTechnology' + type: array + dependencies: + items: + $ref: '#/components/schemas/ServiceCatalogDependency' + type: array + created_at: + format: uint64 + minimum: 0 + type: integer + updated_at: + format: uint64 + minimum: 0 + type: integer + import_status: + description: The import process status. + enum: + - succeeded + - failed + - importing + type: string + readme: + description: Readme of the stack + type: string + team: + $ref: '#/components/schemas/SimpleTeam' + cloud_providers: + description: Cloud providers supported by the stack + items: + $ref: '#/components/schemas/CloudProvider' + type: array + blueprint: + description: Determines if given stack is a blueprint + type: boolean + organization_canonical: + description: Organization that the stack belongs to + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + required: + - author + - canonical + - description + - directory + - form_enabled + - id + - keywords + - name + - organization_canonical + - quota_enabled + - ref + - trusted + - visibility + title: Service Catalog + type: object + ServiceCatalogConfig: + additionalProperties: + $ref: '#/components/schemas/SCConfigUseCaseConfig' + description: Represents a Service Catalog's Config item + title: Service Catalog Configuration + type: object + SCConfigUseCaseConfig: + description: Represents the Service Catalog Configuration for a given Use Case + properties: + name: + type: string + description: + type: string + cloud_provider: + type: string + pipeline: + $ref: '#/components/schemas/SCConfigPipelineConfig' + ansible: + additionalProperties: + $ref: '#/components/schemas/SCConfigPathDestConfig' + description: Represents the Service Catalog Configuration for a Technology of a given Use Case + title: Tech Configuration + type: object + terraform: + additionalProperties: + $ref: '#/components/schemas/SCConfigPathDestConfig' + description: Represents the Service Catalog Configuration for a Technology of a given Use Case + title: Tech Configuration + type: object + forms: + $ref: '#/components/schemas/FormUseCase' + required: + - cloud_provider + - description + - name + - pipeline + title: Use Case Configuration + type: object + SCConfigPipelineConfig: + description: Represents the Service Catalog Configuration for a Pipeline of a given Use Case + properties: + pipeline: + $ref: '#/components/schemas/SCConfigPathConfig' + variables: + $ref: '#/components/schemas/SCConfigPathDestConfig' + required: + - pipeline + - variables + title: Pipeline Configuration + type: object + SCConfigTechConfig: + additionalProperties: + $ref: '#/components/schemas/SCConfigPathDestConfig' + description: Represents the Service Catalog Configuration for a Technology of a given Use Case + title: Tech Configuration + type: object + SCConfigPathConfig: + description: Represents a Configuration which holds Path and Content + properties: + path: + type: string + content: + type: string + required: + - content + - path + title: Path Configuration + type: object + SCConfigPathDestConfig: + description: Represents a Configuration which holds Path, Destination and Content + properties: + path: + type: string + destination: + type: string + content: + type: string + required: + - content + - destination + - path + title: Path and Destination Configuration + type: object + SCConfigFormData: + additionalProperties: + additionalProperties: + items: + $ref: '#/components/schemas/FormEntity' + type: array + type: object + description: Represents the Data related to Forms that is stored in a SC Configuration for a given Use Case + title: Form Data + type: object + NewServiceCatalog: + description: Represents the Service Catalog item + properties: + name: + type: string + canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + author: + type: string + description: + type: string + keywords: + items: + type: string + type: array + image: + format: uri + type: string + visibility: + type: string + service_catalog_source_canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + technologies: + items: + $ref: '#/components/schemas/ServiceCatalogTechnology' + type: array + dependencies: + items: + $ref: '#/components/schemas/ServiceCatalogDependency' + type: array + team_canonical: + description: | + Team responsible for the maintenance of the underlying service catalogs + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + required: + - author + - description + - keywords + - name + - service_catalog_source_canonical + title: NewServiceCatalog + type: object + NewServiceCatalogFromTemplate: + description: Represents the Service Catalog item + properties: + name: + type: string + canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + author: + type: string + service_catalog_source_canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + use_case: + type: string + visibility: + type: string + team_canonical: + description: | + Team responsible for the maintenance of the underlying service catalogs + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + required: + - canonical + - name + - service_catalog_source_canonical + - use_case + title: NewServiceCatalogFromTemplate + type: object + UpdateServiceCatalog: + description: Represents the Service Catalog item + properties: + name: + type: string + canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + author: + type: string + description: + type: string + keywords: + items: + type: string + type: array + image: + format: uri + type: string + visibility: + type: string + service_catalog_source_canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + technologies: + items: + $ref: '#/components/schemas/ServiceCatalogTechnology' + type: array + dependencies: + items: + $ref: '#/components/schemas/ServiceCatalogDependency' + type: array + team_canonical: + description: | + Team responsible for the maintenance of the underlying service catalogs + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + required: + - author + - description + - keywords + - name + - service_catalog_source_canonical + title: UpdateServiceCatalog + type: object + ServiceCatalogTechnology: + description: ServiceCatalogTechnology is a Technology of the Service Catalog + example: + technology: technology + version: version + properties: + technology: + type: string + version: + type: string + title: ServiceCatalogTechnology + type: object + ServiceCatalogDependency: + description: Service Catalog Dependency identifies ServiceCatalog being dependency of other + example: + ref: ref + required: true + properties: + ref: + type: string + required: + type: boolean + title: ServiceCatalogDependency + type: object + ServiceCatalogDependenciesValidationResult: + description: The result of the Service Catalog dependencies validation. If errors and warnings are empty then it means that the dependencies are respected. + example: + warnings: + - warnings + - warnings + errors: + - errors + - errors + properties: + errors: + items: + type: string + type: array + warnings: + items: + type: string + type: array + required: + - errors + - warnings + title: ServiceCatalogValidationResult + type: object + SCConfig: + description: This entity is being used for automatic creation of SC config + properties: + configs: + description: Config files that will be created + items: + $ref: '#/components/schemas/ConfigFile' + type: array + required: + - configs + title: SC Config + type: object + ConfigFile: + description: This object contains SC config file name and its content + properties: + path: + type: string + content: + format: byte + pattern: ^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$ + type: string + required: + - content + - path + title: SC config file + type: object + ServiceCatalogSource: + example: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + changes: + deleted: + - image: https://openapi-generator.tech + keywords: + - keywords + - keywords + visibility: visibility + author: author + cloud_providers: + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + description: description + created_at: 0 + import_status: succeeded + canonical: canonical + readme: readme + team: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: canonical + directory: directory + form_enabled: true + dependencies: + - ref: ref + required: true + - ref: ref + required: true + technologies: + - technology: technology + version: version + - technology: technology + version: version + blueprint: true + ref: ref + updated_at: 0 + trusted: true + name: name + organization_canonical: organization_canonical + id: 1 + service_catalog_source_canonical: service_catalog_source_canonical + quota_enabled: true + - image: https://openapi-generator.tech + keywords: + - keywords + - keywords + visibility: visibility + author: author + cloud_providers: + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + description: description + created_at: 0 + import_status: succeeded + canonical: canonical + readme: readme + team: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: canonical + directory: directory + form_enabled: true + dependencies: + - ref: ref + required: true + - ref: ref + required: true + technologies: + - technology: technology + version: version + - technology: technology + version: version + blueprint: true + ref: ref + updated_at: 0 + trusted: true + name: name + organization_canonical: organization_canonical + id: 1 + service_catalog_source_canonical: service_catalog_source_canonical + quota_enabled: true + created: + - image: https://openapi-generator.tech + keywords: + - keywords + - keywords + visibility: visibility + author: author + cloud_providers: + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + description: description + created_at: 0 + import_status: succeeded + canonical: canonical + readme: readme + team: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: canonical + directory: directory + form_enabled: true + dependencies: + - ref: ref + required: true + - ref: ref + required: true + technologies: + - technology: technology + version: version + - technology: technology + version: version + blueprint: true + ref: ref + updated_at: 0 + trusted: true + name: name + organization_canonical: organization_canonical + id: 1 + service_catalog_source_canonical: service_catalog_source_canonical + quota_enabled: true + - image: https://openapi-generator.tech + keywords: + - keywords + - keywords + visibility: visibility + author: author + cloud_providers: + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + description: description + created_at: 0 + import_status: succeeded + canonical: canonical + readme: readme + team: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: canonical + directory: directory + form_enabled: true + dependencies: + - ref: ref + required: true + - ref: ref + required: true + technologies: + - technology: technology + version: version + - technology: technology + version: version + blueprint: true + ref: ref + updated_at: 0 + trusted: true + name: name + organization_canonical: organization_canonical + id: 1 + service_catalog_source_canonical: service_catalog_source_canonical + quota_enabled: true + updated: + - image: https://openapi-generator.tech + keywords: + - keywords + - keywords + visibility: visibility + author: author + cloud_providers: + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + description: description + created_at: 0 + import_status: succeeded + canonical: canonical + readme: readme + team: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: canonical + directory: directory + form_enabled: true + dependencies: + - ref: ref + required: true + - ref: ref + required: true + technologies: + - technology: technology + version: version + - technology: technology + version: version + blueprint: true + ref: ref + updated_at: 0 + trusted: true + name: name + organization_canonical: organization_canonical + id: 1 + service_catalog_source_canonical: service_catalog_source_canonical + quota_enabled: true + - image: https://openapi-generator.tech + keywords: + - keywords + - keywords + visibility: visibility + author: author + cloud_providers: + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + description: description + created_at: 0 + import_status: succeeded + canonical: canonical + readme: readme + team: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: canonical + directory: directory + form_enabled: true + dependencies: + - ref: ref + required: true + - ref: ref + required: true + technologies: + - technology: technology + version: version + - technology: technology + version: version + blueprint: true + ref: ref + updated_at: 0 + trusted: true + name: name + organization_canonical: organization_canonical + id: 1 + service_catalog_source_canonical: service_catalog_source_canonical + quota_enabled: true + created_at: 0 + canonical: canonical + branch: branch + url: url + updated_at: 0 + refreshed_at: 0 + credential_canonical: credential_canonical + name: name + id: 1 + stack_count: 0 + service_catalogs: + - image: https://openapi-generator.tech + keywords: + - keywords + - keywords + visibility: visibility + author: author + cloud_providers: + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + description: description + created_at: 0 + import_status: succeeded + canonical: canonical + readme: readme + team: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: canonical + directory: directory + form_enabled: true + dependencies: + - ref: ref + required: true + - ref: ref + required: true + technologies: + - technology: technology + version: version + - technology: technology + version: version + blueprint: true + ref: ref + updated_at: 0 + trusted: true + name: name + organization_canonical: organization_canonical + id: 1 + service_catalog_source_canonical: service_catalog_source_canonical + quota_enabled: true + - image: https://openapi-generator.tech + keywords: + - keywords + - keywords + visibility: visibility + author: author + cloud_providers: + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + description: description + created_at: 0 + import_status: succeeded + canonical: canonical + readme: readme + team: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: canonical + directory: directory + form_enabled: true + dependencies: + - ref: ref + required: true + - ref: ref + required: true + technologies: + - technology: technology + version: version + - technology: technology + version: version + blueprint: true + ref: ref + updated_at: 0 + trusted: true + name: name + organization_canonical: organization_canonical + id: 1 + service_catalog_source_canonical: service_catalog_source_canonical + quota_enabled: true + properties: + id: + format: uint32 + minimum: 1 + type: integer + name: + type: string + canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + url: + pattern: ^((/|~)[^/]*)+.(\.git)|(([\w\]+@[\w\.]+))(:(//)?)([\w\.@\:/\-~]+)(/)? + type: string + branch: + type: string + credential_canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + owner: + $ref: '#/components/schemas/User' + created_at: + format: uint64 + minimum: 0 + type: integer + updated_at: + format: uint64 + minimum: 0 + type: integer + refreshed_at: + description: The last time the Service Catalog Source was (successfully) refreshed. + format: uint64 + minimum: 0 + type: integer + stack_count: + format: uint32 + minimum: 0 + type: integer + changes: + $ref: '#/components/schemas/ServiceCatalogChanges' + service_catalogs: + description: Represents list of service catalogs in the service catalog source. Not used during update action on a service catalog source. + items: + $ref: '#/components/schemas/ServiceCatalog' + type: array + required: + - canonical + - id + - name + - owner + - stack_count + - url + title: ServiceCatalogSource + type: object + NewServiceCatalogSource: + properties: + name: + type: string + canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + url: + pattern: ^((/|~)[^/]*)+.(\.git)|(([\w\]+@[\w\.]+))(:(//)?)([\w\.@\:/\-~]+)(/)? + type: string + branch: + type: string + credential_canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + owner: + description: | + User canonical that owns this service catalog source. If omitted then the person + creating this service catalog source will be assigned as owner. When a user is the + owner of a service catalog source they has all the permissions on it. + type: string + visibility: + description: | + The visibility setting allows to specify which visibility will be applied to stacks in this catalog repository. + This option is only applied during initial catalog repository creation, not for subsequent updates. + type: string + team_canonical: + description: | + Team responsible for the maintenance of the underlying service catalogs + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + required: + - branch + - name + - url + title: NewServiceCatalogSource + type: object + UpdateServiceCatalogSource: + properties: + name: + type: string + url: + pattern: ^((/|~)[^/]*)+.(\.git)|(([\w\]+@[\w\.]+))(:(//)?)([\w\.@\:/\-~]+)(/)? + type: string + branch: + type: string + credential_canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + owner: + description: | + User canonical that owns this service catalog source. If omitted then the person + creating this service catalog source will be assigned as owner. When a user is the + owner of a service catalog source they has all the permissions on it. + type: string + required: + - name + - url + title: UpdateServiceCatalogSource + type: object + ServiceCatalogChanges: + description: Represents list of service catalogs changes during the refresh of a service catalog source. + example: + deleted: + - image: https://openapi-generator.tech + keywords: + - keywords + - keywords + visibility: visibility + author: author + cloud_providers: + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + description: description + created_at: 0 + import_status: succeeded + canonical: canonical + readme: readme + team: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: canonical + directory: directory + form_enabled: true + dependencies: + - ref: ref + required: true + - ref: ref + required: true + technologies: + - technology: technology + version: version + - technology: technology + version: version + blueprint: true + ref: ref + updated_at: 0 + trusted: true + name: name + organization_canonical: organization_canonical + id: 1 + service_catalog_source_canonical: service_catalog_source_canonical + quota_enabled: true + - image: https://openapi-generator.tech + keywords: + - keywords + - keywords + visibility: visibility + author: author + cloud_providers: + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + description: description + created_at: 0 + import_status: succeeded + canonical: canonical + readme: readme + team: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: canonical + directory: directory + form_enabled: true + dependencies: + - ref: ref + required: true + - ref: ref + required: true + technologies: + - technology: technology + version: version + - technology: technology + version: version + blueprint: true + ref: ref + updated_at: 0 + trusted: true + name: name + organization_canonical: organization_canonical + id: 1 + service_catalog_source_canonical: service_catalog_source_canonical + quota_enabled: true + created: + - image: https://openapi-generator.tech + keywords: + - keywords + - keywords + visibility: visibility + author: author + cloud_providers: + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + description: description + created_at: 0 + import_status: succeeded + canonical: canonical + readme: readme + team: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: canonical + directory: directory + form_enabled: true + dependencies: + - ref: ref + required: true + - ref: ref + required: true + technologies: + - technology: technology + version: version + - technology: technology + version: version + blueprint: true + ref: ref + updated_at: 0 + trusted: true + name: name + organization_canonical: organization_canonical + id: 1 + service_catalog_source_canonical: service_catalog_source_canonical + quota_enabled: true + - image: https://openapi-generator.tech + keywords: + - keywords + - keywords + visibility: visibility + author: author + cloud_providers: + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + description: description + created_at: 0 + import_status: succeeded + canonical: canonical + readme: readme + team: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: canonical + directory: directory + form_enabled: true + dependencies: + - ref: ref + required: true + - ref: ref + required: true + technologies: + - technology: technology + version: version + - technology: technology + version: version + blueprint: true + ref: ref + updated_at: 0 + trusted: true + name: name + organization_canonical: organization_canonical + id: 1 + service_catalog_source_canonical: service_catalog_source_canonical + quota_enabled: true + updated: + - image: https://openapi-generator.tech + keywords: + - keywords + - keywords + visibility: visibility + author: author + cloud_providers: + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + description: description + created_at: 0 + import_status: succeeded + canonical: canonical + readme: readme + team: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: canonical + directory: directory + form_enabled: true + dependencies: + - ref: ref + required: true + - ref: ref + required: true + technologies: + - technology: technology + version: version + - technology: technology + version: version + blueprint: true + ref: ref + updated_at: 0 + trusted: true + name: name + organization_canonical: organization_canonical + id: 1 + service_catalog_source_canonical: service_catalog_source_canonical + quota_enabled: true + - image: https://openapi-generator.tech + keywords: + - keywords + - keywords + visibility: visibility + author: author + cloud_providers: + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + description: description + created_at: 0 + import_status: succeeded + canonical: canonical + readme: readme + team: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: canonical + directory: directory + form_enabled: true + dependencies: + - ref: ref + required: true + - ref: ref + required: true + technologies: + - technology: technology + version: version + - technology: technology + version: version + blueprint: true + ref: ref + updated_at: 0 + trusted: true + name: name + organization_canonical: organization_canonical + id: 1 + service_catalog_source_canonical: service_catalog_source_canonical + quota_enabled: true + properties: + created: + items: + $ref: '#/components/schemas/ServiceCatalog' + type: array + updated: + items: + $ref: '#/components/schemas/ServiceCatalog' + type: array + deleted: + items: + $ref: '#/components/schemas/ServiceCatalog' + type: array + required: + - created + - deleted + - updated + title: ServiceCatalogChanges + type: object + Credential: + description: Represents the Credential + example: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + path: path + updated_at: 0 + keys: + - keys + - keys + name: name + raw: + tenant_id: tenant_id + json_key: json_key + raw: '{}' + client_id: client_id + subscription_id: subscription_id + domain_id: domain_id + secret_key: secret_key + environment: public + password: password + access_key: access_key + account_name: account_name + ssh_key: ssh_key + client_secret: client_secret + auth_url: auth_url + ca_cert: ca_cert + username: username + description: description + created_at: 0 + in_use: + config_repositories: + - name: name + canonical: canonical + - name: name + canonical: canonical + service_catalog_sources: + - name: name + canonical: canonical + - name: name + canonical: canonical + external_backends: + - environment: + canonical: canonical + purpose: purpose + engine: engine + project: + name: name + canonical: canonical + - environment: + canonical: canonical + purpose: purpose + engine: engine + project: + name: name + canonical: canonical + id: 1 + canonical: canonical + type: ssh + properties: + id: + format: uint32 + minimum: 1 + type: integer + name: + type: string + canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + type: + enum: + - ssh + - aws + - custom + - azure + - azure_storage + - gcp + - basic_auth + - elasticsearch + - swift + - vmware + type: string + path: + type: string + raw: + $ref: '#/components/schemas/CredentialRaw' + description: + type: string + keys: + description: List of all the keys available for the Credential + items: + type: string + type: array + owner: + $ref: '#/components/schemas/User' + created_at: + format: uint64 + minimum: 0 + type: integer + updated_at: + format: uint64 + minimum: 0 + type: integer + in_use: + $ref: '#/components/schemas/CredentialInUse' + required: + - canonical + - id + - keys + - name + - path + - raw + - type + title: Credential + type: object + NewCredential: + description: Represents the Credential + properties: + name: + type: string + canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + type: + enum: + - ssh + - aws + - custom + - azure + - azure_storage + - gcp + - basic_auth + - elasticsearch + - swift + - vmware + type: string + path: + pattern: '[a-zA-z0-9_\-./]' + type: string + raw: + $ref: '#/components/schemas/CredentialRaw' + description: + type: string + owner: + description: | + User canonical that owns this credential. If omitted then the person creating this + credential will be assigned as owner. When a user is the owner of a credential he has + all the permissions on it. + type: string + required: + - name + - path + - raw + - type + title: Credential + type: object + UpdateCredential: + description: Represents the Credential + properties: + name: + type: string + canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + type: + enum: + - ssh + - aws + - custom + - azure + - azure_storage + - gcp + - basic_auth + - elasticsearch + - vmware + type: string + path: + pattern: '[a-zA-z0-9_\-./]' + type: string + raw: + $ref: '#/components/schemas/CredentialRaw' + description: + type: string + owner: + description: | + User canonical that owns this credential. When a user is the owner of a credential he has + all the permissions on it. + type: string + required: + - canonical + - name + - path + - raw + - type + title: Credential + type: object + CredentialSimple: + description: Represents the Credential without the raw and owner + example: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + path: path + updated_at: 0 + keys: + - keys + - keys + name: name + description: description + created_at: 0 + in_use: + config_repositories: + - name: name + canonical: canonical + - name: name + canonical: canonical + service_catalog_sources: + - name: name + canonical: canonical + - name: name + canonical: canonical + external_backends: + - environment: + canonical: canonical + purpose: purpose + engine: engine + project: + name: name + canonical: canonical + - environment: + canonical: canonical + purpose: purpose + engine: engine + project: + name: name + canonical: canonical + id: 1 + canonical: canonical + type: ssh + properties: + id: + format: uint32 + minimum: 1 + type: integer + name: + type: string + canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + type: + enum: + - ssh + - aws + - custom + - azure + - azure_storage + - gcp + - basic_auth + - elasticsearch + - swift + - vmware + type: string + path: + type: string + description: + type: string + keys: + description: List of all the keys available for the Credential + items: + type: string + type: array + created_at: + format: uint64 + minimum: 0 + type: integer + updated_at: + format: uint64 + minimum: 0 + type: integer + in_use: + $ref: '#/components/schemas/CredentialInUse' + owner: + $ref: '#/components/schemas/User' + required: + - canonical + - id + - keys + - name + - path + - type + title: Credential Simple + type: object + CredentialRaw: + description: All the possible fields inside it + example: + tenant_id: tenant_id + json_key: json_key + raw: '{}' + client_id: client_id + subscription_id: subscription_id + domain_id: domain_id + secret_key: secret_key + environment: public + password: password + access_key: access_key + account_name: account_name + ssh_key: ssh_key + client_secret: client_secret + auth_url: auth_url + ca_cert: ca_cert + username: username + properties: + raw: + properties: {} + type: object + ssh_key: + type: string + access_key: + type: string + secret_key: + type: string + environment: + enum: + - public + - usgovernment + - china + - german + type: string + account_name: + type: string + json_key: + type: string + username: + type: string + password: + type: string + client_id: + type: string + client_secret: + type: string + subscription_id: + type: string + tenant_id: + type: string + ca_cert: + type: string + domain_id: + type: string + auth_url: + type: string + title: Credential Raw + type: object + CredentialInUse: + description: | + InUse represents the resources that are using provided credential. + example: + config_repositories: + - name: name + canonical: canonical + - name: name + canonical: canonical + service_catalog_sources: + - name: name + canonical: canonical + - name: name + canonical: canonical + external_backends: + - environment: + canonical: canonical + purpose: purpose + engine: engine + project: + name: name + canonical: canonical + - environment: + canonical: canonical + purpose: purpose + engine: engine + project: + name: name + canonical: canonical + properties: + service_catalog_sources: + items: + $ref: '#/components/schemas/InUseServiceCatalogSource' + type: array + config_repositories: + items: + $ref: '#/components/schemas/InUseConfigRepository' + type: array + external_backends: + items: + $ref: '#/components/schemas/InUseExternalBackend' + type: array + title: Credential in use + type: object + InUseServiceCatalogSource: + description: Represents a Service catalog source that's using credential + example: + name: name + canonical: canonical + properties: + name: + type: string + canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + required: + - canonical + - name + title: InUseServiceCatalogSource + type: object + InUseConfigRepository: + description: Represents a Config repository that's using credential + example: + name: name + canonical: canonical + properties: + name: + type: string + canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + required: + - canonical + - name + title: InUseConfigRepository + type: object + InUseProject: + description: Represents a project that's using credential + example: + name: name + canonical: canonical + properties: + name: + type: string + canonical: + maxLength: 100 + minLength: 1 + pattern: (^[a-z0-9]+(([a-z0-9\-_]+)?[a-z0-9]+)?$) + type: string + required: + - canonical + - name + title: InUseProject + type: object + InUseEnvironment: + description: Represents an environment that's using credential + example: + canonical: canonical + properties: + canonical: + maxLength: 100 + minLength: 1 + pattern: (^[a-z0-9]+(([a-z0-9\-_]+)?[a-z0-9]+)?$) + type: string + required: + - canonical + title: InUseEnvironment + type: object + InUseExternalBackend: + description: Represents a external backend that's using credential + example: + environment: + canonical: canonical + purpose: purpose + engine: engine + project: + name: name + canonical: canonical + properties: + purpose: + type: string + engine: + type: string + project: + $ref: '#/components/schemas/InUseProject' + environment: + $ref: '#/components/schemas/InUseEnvironment' + required: + - engine + - purpose + title: InUseExternalBackend + type: object + ConfigRepository: + example: + default: true + updated_at: 0 + credential_canonical: credential_canonical + name: name + created_at: 0 + id: 1 + canonical: canonical + branch: branch + url: url + properties: + id: + format: uint32 + minimum: 1 + type: integer + name: + type: string + canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + url: + pattern: ^((/|~)[^/]*)+.(\.git)|(([\w\]+@[\w\.]+))(:(//)?)([\w\.@\:/\-~]+)(/)? + type: string + branch: + type: string + credential_canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + default: + type: boolean + created_at: + format: uint64 + minimum: 0 + type: integer + updated_at: + format: uint64 + minimum: 0 + type: integer + required: + - canonical + - default + - id + - name + - url + title: ConfigRepository + type: object + NewConfigRepository: + properties: + name: + type: string + canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + url: + pattern: ^((/|~)[^/]*)+.(\.git)|(([\w\]+@[\w\.]+))(:(//)?)([\w\.@\:/\-~]+)(/)? + type: string + branch: + type: string + default: + type: boolean + credential_canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + required: + - branch + - credential_canonical + - default + - name + - url + title: NewConfigRepository + type: object + UpdateConfigRepository: + properties: + name: + type: string + url: + pattern: ^((/|~)[^/]*)+.(\.git)|(([\w\]+@[\w\.]+))(:(//)?)([\w\.@\:/\-~]+)(/)? + type: string + branch: + type: string + default: + type: boolean + credential_canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + required: + - branch + - credential_canonical + - default + - name + - url + title: UpdateConfigRepository + type: object + AWSInfrastructureResourcesAggregation: + example: + snapshots: + total_amount: 0 + db_instances: + total_amount: 0 + security_groups: + total_amount: 0 + images: + total_amount: 0 + instances: + total_amount: 0 + load_balancers_v1: + total_amount: 0 + load_balancers_v2: + total_amount: 0 + buckets: + total_amount: 0 + volumes: + total_amount: 0 + subnets: + total_amount: 0 + cache_clusters: + total_amount: 0 + vpcs: + total_amount: 0 + properties: + instances: + $ref: '#/components/schemas/InfrastructureResourcesAggregationItem' + vpcs: + $ref: '#/components/schemas/InfrastructureResourcesAggregationItem' + images: + $ref: '#/components/schemas/InfrastructureResourcesAggregationItem' + security_groups: + $ref: '#/components/schemas/InfrastructureResourcesAggregationItem' + subnets: + $ref: '#/components/schemas/InfrastructureResourcesAggregationItem' + volumes: + $ref: '#/components/schemas/InfrastructureResourcesAggregationItem' + snapshots: + $ref: '#/components/schemas/InfrastructureResourcesAggregationItem' + cache_clusters: + $ref: '#/components/schemas/InfrastructureResourcesAggregationItem' + load_balancers_v1: + $ref: '#/components/schemas/InfrastructureResourcesAggregationItem' + load_balancers_v2: + $ref: '#/components/schemas/InfrastructureResourcesAggregationItem' + db_instances: + $ref: '#/components/schemas/InfrastructureResourcesAggregationItem' + buckets: + $ref: '#/components/schemas/InfrastructureResourcesAggregationItem' + title: AWS Infrastructure Resources Aggregation + type: object + InfrastructureResourcesAggregationItem: + description: Contains aggregated data of a single type of an infrastructure resource. + example: + total_amount: 0 + properties: + total_amount: + description: The number of items of the specific type of resource. + format: uint32 + type: integer + required: + - total_amount + title: Infrastructure Resource Aggregation Item + type: object + AWSInfrastructureResourceInstance: + description: This object contains the items described in the instance data type described in https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_Instance.html Tags property is set, for guaranteeing that the respond will always have the property of the type array, not allowing null in case that the resource doesn't have any, hence an empty array is used in such case. This object will contain a property named 'Tags' which is of the type defined by the schema definition '#/definitions/AWSTags' + title: AWS Infrastructure Instance Resource + type: object + AWSInfrastructureResourceVPC: + description: This object contains the items described in the VPC data type described in https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_Vpc.html Tags property is set, for guaranteeing that the respond will always have the property of the type array, not allowing null in case that the resource doesn't have any, hence an empty array is used in such case. This object will contain a property named 'Tags' which is of the type defined by the schema definition '#/definitions/AWSTags' + title: AWS Infrastructure VPC Resource + type: object + AWSInfrastructureResourceSubnet: + description: This object contains the items described in the subnet data type described in https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_Subnet.html Tags property is set, for guaranteeing that the respond will always have the property of the type array, not allowing null in case that the resource doesn't have any, hence an empty array is used in such case. This object will contain a property named 'Tags' which is of the type defined by the schema definition '#/definitions/AWSTags' + title: AWS Infrastructure subnet Resource + type: object + AWSInfrastructureResourceSecurityGroup: + description: This object contains the items described in the security group data type described in https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_SecurityGroup.html Tags property is set, for guaranteeing that the respond will always have the property of the type array, not allowing null in case that the resource doesn't have any, hence an empty array is used in such case. This object will contain a property named 'Tags' which is of the type defined by the schema definition '#/definitions/AWSTags' + title: AWS Infrastructure security group Resource + type: object + AWSInfrastructureResourceImage: + description: This object contains the items described in the image data type described in https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_Image.html Tags property is set, for guaranteeing that the respond will always have the property of the type array, not allowing null in case that the resource doesn't have any, hence an empty array is used in such case. This object will contain a property named 'Tags' which is of the type defined by the schema definition '#/definitions/AWSTags' + title: AWS Infrastructure image Resource + type: object + AWSInfrastructureResourceVolume: + description: This object contains the items described in the volume data type described in https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_Volume.html Tags property is set, for guaranteeing that the respond will always have the property of the type array, not allowing null in case that the resource doesn't have any, hence an empty array is used in such case. This object will contain a property named 'Tags' which is of the type defined by the schema definition '#/definitions/AWSTags' + title: AWS Infrastructure volume Resource + type: object + AWSInfrastructureResourceSnapshot: + description: This object contains the items described in the snapshot data type described in https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_Snapshot.html Tags property is set, for guaranteeing that the respond will always have the property of the type array, not allowing null in case that the resource doesn't have any, hence an empty array is used in such case. This object will contain a property named 'Tags' which is of the type defined by the schema definition '#/definitions/AWSTags' + title: AWS Infrastructure snapshot Resource + type: object + AWSInfrastructureResourceElasticacheCluster: + description: This object contains the items described in the ElastiCache cluster data type described in https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_CacheCluster.html but it also contains its associated tags which are documented in the properties of this object definition. This object will contain a property named 'Tags' which is of the type defined by the schema definition '#/definitions/AWSTags' + title: AWS Infrastructure Elasticache cluster Resource + type: object + AWSInfrastructureResourceLoadBalancerV1: + description: This object contains the items described in the load balancer (ELB) data type described in https://docs.aws.amazon.com/elasticloadbalancing/2012-06-01/APIReference/API_LoadBalancerDescription.html but it also contains its associated tags which are documented in the properties of this object definition. This object will contain a property named 'Tags' which is of the type defined by the schema definition '#/definitions/AWSTags' + title: AWS Infrastructure load balancer (ELB) Resource + type: object + AWSInfrastructureResourceLoadBalancerV2: + description: This object contains the items described in the load balancer (ELB v2 or a.k.a ALB) data type described in https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_LoadBalancer.html but it also contains its associated tags which are documented in the properties of this object definition. This object will contain a property named 'Tags' which is of the type defined by the schema definition '#/definitions/AWSTags' + title: AWS Infrastructure load balancer (ELB v2 or a.k.a ALB) Resource + type: object + AWSInfrastructureResourceDBInstance: + description: This object contains the items described in the RDS DB instance data type described in https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DBInstance.html but it also contains its associated tags which are documented in the properties of this object definition. This object will contain a property named 'Tags' which is of the type defined by the schema definition '#/definitions/AWSTags' + title: AWS Infrastructure RDS DB instance Resource + type: object + AWSInfrastructureResourceBucket: + description: This object contains the items described in the S3 bucket data type described in but it also contains its associated tags which are documented in the properties of this object definition. This object will contain a property named 'Tags' which is of the type defined by the schema definition '#/definitions/AWSTags' + title: AWS Infrastructure S3 bucket Resource + type: object + CostGroupDefinitions: + description: 'This object contains the items describe in https://docs.aws.amazon.com/sdk-for-go/api/service/costexplorer/#GroupDefinition It also grouping the costs based on different elements: az, services, tags, etc' + properties: + group: + maxLength: 100 + minLength: 1 + pattern: ^[a-zA-Z]+$ + type: string + key: + maxLength: 100 + minLength: 1 + pattern: ^[a-zA-Z]+$ + type: string + required: + - group + - key + title: CostGroupDefinitions + type: object + CostResultByTime: + description: This object contains the items described in https://docs.aws.amazon.com/sdk-for-go/api/service/costexplorer/#ResultByTime It is basically containing information about the cost per group(s) and per granularity (daily/monthly) over the period of time selected. The total and unit fields have bee modified to fit our requirements, while the groups hold the information about each iteration over the time range. + properties: + estimated: + type: boolean + groups: + items: + $ref: '#/components/schemas/CostGroup' + type: array + period: + $ref: '#/components/schemas/CostTimePeriod' + total: + maxLength: 100 + minLength: 3 + pattern: ^[0-9]+.[0-9]+$ + type: string + unit: + maxLength: 3 + minLength: 2 + pattern: ^[a-zA-Z]+$ + type: string + required: + - estimated + - groups + - period + - total + - unit + title: CostResultByTime + type: object + CostTimePeriod: + description: This object contains the items described in https://docs.aws.amazon.com/sdk-for-go/api/service/costexplorer/#DateInterval It defines the beginning and the end of the time frame for which, the API should gather costs. + properties: + begin: + maxLength: 10 + minLength: 10 + pattern: ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ + type: string + end: + maxLength: 10 + minLength: 10 + pattern: ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ + type: string + required: + - begin + - end + title: CostTimePeriod + type: object + CostGroup: + description: This object contains the items described in https://docs.aws.amazon.com/sdk-for-go/api/service/costexplorer/#Group The groups hold the information about the price per key(s) for each iteration over the time range requested. + properties: + keys: + items: + type: string + type: array + amount: + maxLength: 100 + minLength: 3 + pattern: ^[0-9]+.[0-9]+$ + type: string + unit: + maxLength: 3 + minLength: 3 + pattern: ^[A-Z]+$ + type: string + required: + - amount + - keys + - unit + title: CostGroup + type: object + Environment: + description: Represent an environment with may be related to a Project and Pipeline + example: + use_case: use_case + updated_at: 0 + color: color + icon: icon + created_at: 0 + cloud_provider: + regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + id: 1 + canonical: canonical + properties: + id: + format: uint32 + minimum: 1 + type: integer + canonical: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:[\da-zA-Z\-._]+[\da-zA-Z]|[\da-zA-Z])$ + type: string + created_at: + format: uint64 + minimum: 0 + type: integer + updated_at: + format: uint64 + minimum: 0 + type: integer + cloud_provider: + $ref: '#/components/schemas/CloudProvider' + use_case: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + color: + maxLength: 64 + type: string + icon: + maxLength: 64 + type: string + required: + - canonical + - color + - created_at + - icon + - id + - updated_at + title: Environment + type: object + NewEnvironment: + description: Represent an entity necessary for environment creation + properties: + canonical: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:[\da-zA-Z\-._]+[\da-zA-Z]|[\da-zA-Z])$ + type: string + use_case: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + cloud_provider_canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + inputs: + description: | + The variables set within a form with the corresponding environment + canonical and use case + items: + $ref: '#/components/schemas/FormInput' + type: array + color: + maxLength: 64 + type: string + icon: + maxLength: 64 + type: string + required: + - canonical + title: NewEnvironment + type: object + UpdateEnvironment: + description: Represent an entity necessary for environment update + properties: + use_case: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + cloud_provider_canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + inputs: + description: | + The variables set within a form with the corresponding environment + canonical and use case + items: + $ref: '#/components/schemas/FormInput' + type: array + color: + maxLength: 64 + type: string + icon: + maxLength: 64 + type: string + title: Update Environment + type: object + LogSource: + description: The data associated to a log's source. Each log source is the context of a list of entries which are registered through the time. + example: + id: id + properties: + id: + minLength: 1 + type: string + required: + - id + title: A log source + type: object + LogSourceEntry: + description: A log's entry which pertains to a specific log's source. + example: + host: host + message: message + timestamp: timestamp + properties: + timestamp: + description: The timestamp extracted from the original log entry in order to be homogeneous to all the different supported underlying log systems. + format: uint64 + type: string + host: + description: The host registered with the log's entry. + minLength: 1 + type: string + message: + description: The original (i.e. raw) log's entry. + minLength: 1 + type: string + required: + - host + - message + - timestamp + title: Log entry + type: object + ExternalBackend: + description: An external backend contains the configuration needed in order to be plugged into the Cycloid system. A backend is a general purpose concept, but Cycloid specifies which ones are supported and the list of those which are supported for every concrete feature. + example: + default: true + updated_at: 0 + purpose: purpose + configuration: + engine: engine + jwt: jwt + credential_canonical: credential_canonical + created_at: 0 + project_canonical: project_canonical + id: 1 + environment_canonical: environment_canonical + properties: + id: + format: uint32 + minimum: 1 + type: integer + purpose: + type: string + default: + description: Will mark this EB as default for the specific purpose + type: boolean + jwt: + description: JWT is a credential identifying this EB for a public interaction right now it's only filled when the Purpose == RemoteTFState as we'll use it for the Inventory. + type: string + project_canonical: + maxLength: 100 + minLength: 1 + pattern: (^[a-z0-9]+(([a-z0-9\-_]+)?[a-z0-9]+)?$) + type: string + environment_canonical: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + credential_canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + configuration: + $ref: '#/components/schemas/ExternalBackendConfiguration' + created_at: + format: uint64 + minimum: 0 + type: integer + updated_at: + format: uint64 + minimum: 0 + type: integer + required: + - configuration + - default + - purpose + title: External backend + type: object + NewExternalBackend: + description: An external backend contains the configuration needed in order to be plugged into the Cycloid system. A backend is a general purpose concept, but Cycloid specifies which ones are supported and the list of those which are supported for every concrete feature. + properties: + purpose: + enum: + - events + - logs + - remote_tfstate + - cost_explorer + type: string + default: + description: Will mark this EB as default for the specific purpose + type: boolean + credential_canonical: + description: | + The type of the credential must be one of: ["aws", "azure_storage", "elasticsearch", "gcp", "swift", "vmware"] + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + project_canonical: + maxLength: 100 + minLength: 1 + pattern: (^[a-z0-9]+(([a-z0-9\-_]+)?[a-z0-9]+)?$) + type: string + environment_canonical: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + configuration: + $ref: '#/components/schemas/ExternalBackendConfiguration' + required: + - configuration + - purpose + title: New External backend + type: object + UpdateExternalBackend: + description: An external backend contains the configuration needed in order to be plugged into the Cycloid system. A backend is a general purpose concept, but Cycloid specifies which ones are supported and the list of those which are supported for every concrete feature. + properties: + id: + format: uint32 + minimum: 1 + type: integer + purpose: + enum: + - events + - logs + - remote_tfstate + - cost_explorer + type: string + default: + description: Will mark this EB as default for the specific purpose + type: boolean + credential_canonical: + description: | + The type of the credential must be one of: ["aws", "azure_storage", "elasticsearch", "gcp", "swift", "vmware"] + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + project_canonical: + maxLength: 100 + minLength: 1 + pattern: (^[a-z0-9]+(([a-z0-9\-_]+)?[a-z0-9]+)?$) + type: string + environment_canonical: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + configuration: + $ref: '#/components/schemas/ExternalBackendConfiguration' + required: + - configuration + - purpose + title: Update External backend + type: object + ExternalBackendConfiguration: + discriminator: + propertyName: engine + example: + engine: engine + properties: + engine: + type: string + required: + - engine + type: object + AWSCloudWatchLogs: + allOf: + - $ref: '#/components/schemas/ExternalBackendConfiguration' + - properties: + region: + description: | + The AWS region where the resource exists + type: string + required: + - region + type: object + description: | + Representation of AWS cloud watch logs for external backend. + Must be matched with a credential of the "aws" type. + AWSRemoteTFState: + allOf: + - $ref: '#/components/schemas/ExternalBackendConfiguration' + - properties: + region: + description: | + The AWS region where the resource exists + type: string + bucket: + description: | + The AWS bucket containing objects + type: string + key: + description: | + The S3 Key uniquely identifies an object in a bucket, will + be required if the EB is not the default one. + type: string + endpoint: + description: | + A custom endpoint for the S3 API (default: s3.amazonaws.com) + type: string + s3_force_path_style: + description: | + Always use path-style S3 URLs (https:/// instead of https://.) + type: boolean + skip_verify_ssl: + description: | + Set this to `true` to not verify SSL certificates + type: boolean + required: + - bucket + - region + type: object + description: | + Deprecated. Please use AWSStorage. + Representation of AWS remote tf state for external backend. + Must be matched with a credential of the "aws" type. + AWSStorage: + allOf: + - $ref: '#/components/schemas/ExternalBackendConfiguration' + - properties: + region: + description: | + The AWS region where the resource exists + type: string + bucket: + description: | + The AWS bucket containing objects + type: string + key: + description: | + The S3 Key uniquely identifies an object in a bucket + type: string + endpoint: + description: | + A custom endpoint for the S3 API (default: s3.amazonaws.com) + type: string + s3_force_path_style: + description: | + Always use path-style S3 URLs (https:/// instead of https://.) + type: boolean + skip_verify_ssl: + description: | + Set this to `true` to not verify SSL certificates + type: boolean + required: + - bucket + - region + type: object + description: | + Representation of AWS storage for external backend. + Must be matched with a credential of the "aws" type. + AzureRemoteTFState: + allOf: + - $ref: '#/components/schemas/ExternalBackendConfiguration' + - properties: + container: + description: | + The Azure container where the resource exists + type: string + blob: + description: | + The Azure blob contained in the container, will be + required if the EB is not default + type: string + endpoint: + description: | + A custom endpoint for the Azure API + (default: "https://{account_name}.blob.core.windows.net/", where + the "account_name" is the one from the credential) + type: string + required: + - container + type: object + description: | + Deprecated. Please use AzureStorage. + Representation of azure remote tf state for external backend. + Must be matched with a credential of the "azure_storage" type. + AzureStorage: + allOf: + - $ref: '#/components/schemas/ExternalBackendConfiguration' + - properties: + container: + description: | + The Azure container where the resource exists + type: string + blob: + description: | + The Azure blob contained in the container, will be + required if the EB is not default + type: string + endpoint: + description: | + A custom endpoint for the Azure API + (default: "https://{account_name}.blob.core.windows.net/", where + the "account_name" is the one from the credential) + type: string + required: + - container + type: object + description: | + Representation of azure remote tf state for external backend. + Must be matched with a credential of the "azure_storage" type. + GCPRemoteTFState: + allOf: + - $ref: '#/components/schemas/ExternalBackendConfiguration' + - properties: + bucket: + description: | + The GCP bucket containing objects + type: string + object: + description: | + The GCP object uniquely identifying an object in a bucket + type: string + required: + - bucket + type: object + description: | + Deprecated. Please use GCPStorage. + Representation of GCP remote tf state for external backend. + Must be matched with a credential of the "gcp" type. + GCPStorage: + allOf: + - $ref: '#/components/schemas/ExternalBackendConfiguration' + - properties: + bucket: + description: | + The GCP bucket containing objects + type: string + object: + description: | + The GCP object uniquely identifying an object in a bucket, + will be required if the EB is not default + type: string + required: + - bucket + type: object + description: | + Representation of GCP remote tf state for external backend. + Must be matched with a credential of the "gcp" type. + SwiftRemoteTFState: + allOf: + - $ref: '#/components/schemas/ExternalBackendConfiguration' + - properties: + container: + description: | + The Swift container containing objects + type: string + object: + description: | + The swift object uniquely identifying an object in a container + type: string + skip_verify_ssl: + description: | + Set this to `true` to not verify SSL certificates + type: boolean + region: + description: | + The Swift region where the resource exists + type: string + required: + - container + - region + type: object + description: | + Deprecated. Please use SwiftStorage. + Representation of Swift remote tf state for external backend. + Must be matched with a credential of the "swift" type. + SwiftStorage: + allOf: + - $ref: '#/components/schemas/ExternalBackendConfiguration' + - properties: + container: + description: | + The Swift container containing objects + type: string + object: + description: | + The swift object uniquely identifying an object in a container, + will be required if the EB is not default + type: string + skip_verify_ssl: + description: | + Set this to `true` to not verify SSL certificates + type: boolean + region: + description: | + The Swift region where the resource exists + type: string + required: + - container + - region + type: object + description: | + Representation of Swift remote tf state for external backend. + Must be matched with a credential of the "swift" type. + HTTPStorage: + allOf: + - $ref: '#/components/schemas/ExternalBackendConfiguration' + - properties: + url: + description: | + The URL endpoint to use + type: string + required: + - url + type: object + description: | + Representation of HTTP storage for external backend. + Must be matched with a credential of the "basic_auth" type. + GitLabHTTPStorage: + allOf: + - $ref: '#/components/schemas/ExternalBackendConfiguration' + - properties: + url: + description: | + The URL endpoint to use + type: string + required: + - url + type: object + description: | + Representation of GitLab HTTP storage for external backend. + Must be matched with a credential of the "basic_auth" type. + ElasticsearchLogs: + allOf: + - $ref: '#/components/schemas/ExternalBackendConfiguration' + - properties: + urls: + description: | + List of the URLs + items: + type: string + type: array + version: + description: | + Only 7 is supported + type: string + sources: + additionalProperties: + additionalProperties: + $ref: '#/components/schemas/ElasticsearchLogs_allOf_sources_value_value' + type: object + description: | + It's an object where the key is the 'environment' and the value + another object where the key is the 'source-name' and value a Source. + type: object + required: + - sources + - urls + - version + type: object + description: | + Representation of Elasticsearch logs for external backend. + Must be matched with a credential of the "elasticsearch" type. + GCPCostStorage: + allOf: + - $ref: '#/components/schemas/ExternalBackendConfiguration' + - properties: + project_id: + description: | + The project that contains the BigQuery dataset. + type: string + dataset: + description: | + The GCP BigQuery dataset containing tables + type: string + table: + description: | + The GCP BigQuery table containing data + type: string + type: object + description: | + Representation of BigQuery external backend. + Must be matched with a credential of the "gcp" type. + VMwareVsphere: + allOf: + - $ref: '#/components/schemas/ExternalBackendConfiguration' + - properties: + server: + description: | + FQDN or IP address of the vCenter server. + type: string + allow_unverified_ssl: + description: | + Whether verification of SSL certificate should be disabled. + type: boolean + type: object + description: | + Representation of VMwareVsphere external backend. + Must be matched with a credential of the "vmware" type. + AzureCostExport: + allOf: + - $ref: '#/components/schemas/ExternalBackendConfiguration' + - properties: + name: + description: Name of the export + type: string + scope: + description: Scope of the export + type: string + blob_service_url: + description: Endpoint of blob storage service containing the export files. + type: string + type: object + description: | + Representation of AzureCostExport external backend. + Must be matched with a credential of the "azure" type. + Event: + description: A event which has registered an activity in the Cycloid platform. + example: + severity: info + color: color + icon: icon + id: 0 + type: Cycloid + title: title + message: message + timestamp: 6 + tags: + - value: value + key: key + - value: value + key: key + properties: + id: + description: The unique ID of the event from the database. + format: uint32 + type: integer + timestamp: + description: The timestamp when the event was created in milliseconds. + format: uint64 + type: integer + type: + description: The type of the event + enum: + - Cycloid + - AWS + - Monitoring + - Custom + type: string + title: + description: The title of the event. + minLength: 1 + type: string + message: + description: The message associated to the event. + minLength: 1 + type: string + icon: + description: '[A Font Awesome class name](https://fontawesome.com/icons)' + minLength: 3 + type: string + severity: + description: The severity associated to the event. + enum: + - info + - warn + - err + - crit + type: string + tags: + description: The list of tags associated to the event. + items: + $ref: '#/components/schemas/Tag' + type: array + color: + description: 'The HTML color associated to the event. The valid colors are the ones listed in the CSS 2 specification: https://www.w3.org/TR/CSS2/syndata.html#value-def-color. Only the keyword are accepted, the hexadecimal values are not valid.' + maxLength: 20 + minLength: 3 + pattern: '[a-z]+' + type: string + required: + - id + - message + - severity + - tags + - timestamp + - title + - type + title: An event + type: object + NewEvent: + description: A new event to register in the Cycloid platform. + properties: + type: + description: The type of the event + enum: + - Cycloid + - AWS + - Monitoring + - Custom + type: string + title: + description: The title of the event. + minLength: 1 + type: string + message: + description: The message associated to the event. + minLength: 1 + type: string + icon: + description: '[A Font Awesome class name](https://fontawesome.com/icons)' + minLength: 3 + type: string + severity: + description: tThe severity associated to the event. + enum: + - info + - warn + - err + - crit + type: string + tags: + description: The list of tags associated to the event. + items: + $ref: '#/components/schemas/Tag' + type: array + color: + description: 'The HTML color associated to the event. The valid colors are the ones listed in the CSS 2 specification: https://www.w3.org/TR/CSS2/syndata.html#value-def-color. Only the keyword are accepted, the hexadecimal values are not valid.' + maxLength: 20 + minLength: 3 + pattern: '[a-z]+' + type: string + required: + - message + - severity + - tags + - title + - type + title: A new event + type: object + Tag: + description: Key and value pair defined with the widely adopted name, tag. + example: + value: value + key: key + properties: + key: + maxLength: 254 + minLength: 1 + type: string + value: + maxLength: 254 + pattern: ^(?:[\w\-+=.:/@ ]*)$ + type: string + required: + - key + - value + title: Key and value pair + type: object + TerraformProvider: + description: Provider of infrastructure + example: + cloud: true + schema: '{}' + name: name + canonical: canonical + abbreviation: abbreviation + properties: + name: + type: string + canonical: + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + abbreviation: + type: string + cloud: + type: boolean + schema: + properties: {} + type: object + required: + - abbreviation + - canonical + - cloud + - name + - schema + title: Provider + type: object + TerraformProviderSimple: + description: Provider of infrastructure without the config + example: + cloud: true + name: name + canonical: canonical + abbreviation: abbreviation + properties: + name: + type: string + canonical: + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + abbreviation: + type: string + cloud: + type: boolean + required: + - abbreviation + - canonical + - cloud + - name + title: TerraformProviderSimple + type: object + TerraformProviderResource: + description: A Resource of a Provider + example: + schema: '{}' + image: https://openapi-generator.tech + short_description: short_description + keywords: + - keywords + - keywords + is_edge: true + description: description + attributes: + important: + - important + - important + normalized_status: '{}' + status: status + canonical: canonical + category: category + is_node: true + properties: + canonical: + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + schema: + properties: {} + type: object + is_node: + type: boolean + is_edge: + type: boolean + image: + format: uri + type: string + category: + type: string + short_description: + type: string + description: + type: string + keywords: + items: + type: string + type: array + attributes: + $ref: '#/components/schemas/TerraformProviderResourceAttributes' + required: + - attributes + - canonical + - category + - description + - is_edge + - is_node + - keywords + - schema + - short_description + title: Resource + type: object + TerraformProviderResourceAttributes: + description: Holds specific logic of some attributes + example: + important: + - important + - important + normalized_status: '{}' + status: status + properties: + important: + items: + type: string + type: array + status: + type: string + normalized_status: + description: Is a KV where the K is the resource possible value and the Value is the normalized value of it. The current possible values are "unknown", "pending", "running", "stopping" + properties: {} + type: object + title: ResourceAttributes + type: object + TerraformProviderResourceSimple: + description: A Resource of a Provider without the config + example: + image: https://openapi-generator.tech + short_description: short_description + keywords: + - keywords + - keywords + is_edge: true + description: description + attributes: + important: + - important + - important + normalized_status: '{}' + status: status + canonical: canonical + category: category + is_node: true + properties: + canonical: + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + is_node: + type: boolean + is_edge: + type: boolean + image: + format: uri + type: string + short_description: + type: string + description: + type: string + category: + type: string + keywords: + items: + type: string + type: array + attributes: + $ref: '#/components/schemas/TerraformProviderResourceAttributes' + required: + - attributes + - canonical + - category + - description + - is_edge + - is_node + - keywords + - short_description + title: ResourceSimple + type: object + TerraformJSONConfig: + description: The JSON config for Terraform + example: + config: '{}' + properties: + config: + properties: {} + type: object + required: + - config + title: TerraformJSONConfig + type: object + TerraformHCLConfig: + description: The HCL config for Terraform + example: + config: config + properties: + config: + type: string + required: + - config + title: TerraformHCLConfig + type: object + TerraformValidationResult: + description: The result of the validation, if errors is empty means that is correct + example: + errors: + - errors + - errors + properties: + errors: + items: + type: string + type: array + required: + - errors + title: TerraformValidationResult + type: object + TerraformJSONDiagram: + description: The JSON Diagram structure + title: TerraformDiagram + type: object + TerraformImage: + description: The Image from the TF structure + example: + image: image + properties: + image: + format: byte + pattern: ^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$ + type: string + required: + - image + title: TerraformImage + type: object + UserEmail: + description: The user's email address + properties: + email: + format: email + type: string + required: + - email + title: User email address + type: object + UserGuide: + description: The user's guide progress JSON schema + title: User guide JSON schema + type: object + Infrastructure: + description: Holds all the Infrastructure of the project in an environment + example: + config: '{}' + graph: + nodes: + - resource: + image: https://openapi-generator.tech + short_description: short_description + keywords: + - keywords + - keywords + is_edge: true + description: description + attributes: + important: + - important + - important + normalized_status: '{}' + status: status + canonical: canonical + category: category + is_node: true + name: name + id: id + canonical: canonical + position: + - 0 + - 0 + - resource: + image: https://openapi-generator.tech + short_description: short_description + keywords: + - keywords + - keywords + is_edge: true + description: description + attributes: + important: + - important + - important + normalized_status: '{}' + status: status + canonical: canonical + category: category + is_node: true + name: name + id: id + canonical: canonical + position: + - 0 + - 0 + edges: + - id: id + source: source + canonicals: + - canonicals + - canonicals + target: target + - id: id + source: source + canonicals: + - canonicals + - canonicals + target: target + properties: + graph: + $ref: '#/components/schemas/InfrastructureGraph' + config: + description: Holds all the Infrastructure config of the TFState + title: InfrastructureConfig + type: object + required: + - config + - graph + title: Infrastructure + type: object + InfrastructureConfig: + description: Holds all the Infrastructure config of the TFState + title: InfrastructureConfig + type: object + InfrastructureGraph: + description: Holds all the Infrastructure of the project in an environment in Graph format + example: + nodes: + - resource: + image: https://openapi-generator.tech + short_description: short_description + keywords: + - keywords + - keywords + is_edge: true + description: description + attributes: + important: + - important + - important + normalized_status: '{}' + status: status + canonical: canonical + category: category + is_node: true + name: name + id: id + canonical: canonical + position: + - 0 + - 0 + - resource: + image: https://openapi-generator.tech + short_description: short_description + keywords: + - keywords + - keywords + is_edge: true + description: description + attributes: + important: + - important + - important + normalized_status: '{}' + status: status + canonical: canonical + category: category + is_node: true + name: name + id: id + canonical: canonical + position: + - 0 + - 0 + edges: + - id: id + source: source + canonicals: + - canonicals + - canonicals + target: target + - id: id + source: source + canonicals: + - canonicals + - canonicals + target: target + properties: + nodes: + items: + $ref: '#/components/schemas/InfrastructureGraphNode' + type: array + edges: + items: + $ref: '#/components/schemas/InfrastructureGraphEdge' + type: array + required: + - edges + - nodes + title: InfrastructureGraph + type: object + InfrastructureGraphNode: + description: Holds the information of a Node of the Graph + example: + resource: + image: https://openapi-generator.tech + short_description: short_description + keywords: + - keywords + - keywords + is_edge: true + description: description + attributes: + important: + - important + - important + normalized_status: '{}' + status: status + canonical: canonical + category: category + is_node: true + name: name + id: id + canonical: canonical + position: + - 0 + - 0 + properties: + id: + type: string + canonical: + type: string + position: + description: It holds [x,y] + items: + format: uint64 + type: integer + type: array + resource: + $ref: '#/components/schemas/TerraformProviderResourceSimple' + name: + type: string + required: + - canonical + - id + - position + - resource + title: Infrastructure + type: object + InfrastructureGraphEdge: + description: Holds the information of an Edge of the Graph + example: + id: id + source: source + canonicals: + - canonicals + - canonicals + target: target + properties: + id: + type: string + source: + type: string + target: + type: string + canonicals: + items: + type: string + type: array + required: + - canonicals + - id + - source + - target + title: Infrastructure + type: object + Summary: + example: + config_repositories: 5 + projects: 0 + pipelines: 6 + teams: 2 + credentials: 1 + service_catalog_sources: 5 + roles: 9 + service_catalogs: 3 + users: 7 + properties: + projects: + format: uint64 + type: integer + pipelines: + format: uint64 + type: integer + credentials: + format: uint64 + type: integer + service_catalog_sources: + format: uint64 + type: integer + config_repositories: + format: uint64 + type: integer + teams: + format: uint64 + type: integer + users: + format: uint64 + type: integer + roles: + format: uint64 + type: integer + service_catalogs: + format: uint64 + type: integer + required: + - config_repositories + - credentials + - pipelines + - projects + - roles + - service_catalog_sources + - service_catalogs + - teams + - users + title: Summary of the organization + type: object + APIKey: + description: The entity which represents the information of an API key. The "token" field is only filled once, upon creation. It can only be used on an organization scope, for example user endpoints will not support it. + example: + last_seven: last_seven + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + last_used: 7 + name: name + description: description + rules: + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + canonical: canonical + id: 1 + token: token + properties: + canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + name: + minLength: 3 + type: string + description: + type: string + rules: + items: + $ref: '#/components/schemas/Rule' + type: array + token: + description: The actual API key in the format of JWT token, returned only upon creation. + type: string + last_seven: + description: The last seven characters of API key. Allows user to differentiate between keys. + type: string + id: + format: uint32 + minimum: 1 + type: integer + owner: + $ref: '#/components/schemas/User' + last_used: + description: This field contains the date of the last usage of the API key + format: uint64 + type: integer + required: + - canonical + - id + - last_seven + - name + - rules + title: API key + type: object + NewAPIKey: + description: The entity which represents the information of a new API key. + properties: + canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + name: + minLength: 3 + type: string + description: + type: string + rules: + items: + $ref: '#/components/schemas/NewRule' + type: array + owner: + description: | + User canonical that owns this API key. If omitted then the person creating this + credential will be assigned as owner. When a user is the owner of an API key he has + all the permissions on it. + type: string + required: + - name + - rules + title: Create API key + type: object + UpdateAPIKey: + description: "The entity which represents the information of the API key to be updated. \nThe API key rules are immutable and cannot be changed.\n" + properties: + name: + minLength: 3 + type: string + description: + type: string + owner: + description: | + User canonical that owns this API key. Only the owner or an + organization admin can update such a field. When a user is the owner + of a API key it has all the permission on it. + type: string + required: + - name + title: Update API key + type: object + InfraPolicy: + description: The policy to control operations across infrastructure. + example: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + severity: critical + updated_at: 1 + name: name + created_at: 6 + description: description + id: 1 + canonical: canonical + body: body + enabled: true + properties: + id: + format: uint32 + minimum: 1 + type: integer + created_at: + format: uint64 + type: integer + updated_at: + format: uint64 + type: integer + name: + minLength: 3 + type: string + description: + type: string + canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + owner: + $ref: '#/components/schemas/User' + body: + description: The body field is the code in plain text that defines the rules for the policy. + type: string + severity: + description: | + It defines the enforcement level. It must be used from the caller of the InfraPolicy + validation endpoint to apply the specific logic in case of not respected InfraPolicies. + Uses critical to block the changes. + Uses warning to block the changes but allow to override manually. + Uses advisory to allow them but a notification must be send. + enum: + - critical + - warning + - advisory + type: string + enabled: + type: boolean + required: + - body + - canonical + - created_at + - description + - enabled + - id + - name + - severity + - updated_at + title: InfraPolicy + type: object + NewInfraPolicy: + description: Create a new policy to control operations across infrastructure. + properties: + name: + minLength: 3 + type: string + description: + type: string + canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + owner: + description: | + User canonical that owns this InfraPolicy. When a user is the + owner of an InfraPolicy it has all the permissions on it. + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + body: + description: The body field is the code in plain text that defines the rules for the policy. + type: string + severity: + enum: + - critical + - warning + - advisory + type: string + enabled: + type: boolean + required: + - body + - name + - owner + - severity + title: Create InfraPolicy + type: object + UpdateInfraPolicy: + description: Update a policy to control operations across infrastructure. + properties: + name: + minLength: 3 + type: string + description: + type: string + owner: + description: | + User canonical that owns this InfraPolicy. When a user is the + owner of an InfraPolicy it has all the permissions on it. + In the event where the Owner has been deleted then a new one can be assigned + or an empty canonical is allowed to not reset it. + maxLength: 100 + type: string + body: + description: The body field is the code in plain text that defines the rules for the policy. + type: string + severity: + enum: + - critical + - warning + - advisory + type: string + enabled: + type: boolean + required: + - body + - description + - enabled + - name + - owner + - severity + title: Update InfraPolicy + type: object + InfraPoliciesValidationResult: + description: The set of not respected rules for the checked policies. + example: + advisories: + - reasons: + - reasons + - reasons + infra_policy: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + severity: critical + updated_at: 1 + name: name + created_at: 6 + description: description + id: 1 + canonical: canonical + body: body + enabled: true + - reasons: + - reasons + - reasons + infra_policy: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + severity: critical + updated_at: 1 + name: name + created_at: 6 + description: description + id: 1 + canonical: canonical + body: body + enabled: true + criticals: + - reasons: + - reasons + - reasons + infra_policy: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + severity: critical + updated_at: 1 + name: name + created_at: 6 + description: description + id: 1 + canonical: canonical + body: body + enabled: true + - reasons: + - reasons + - reasons + infra_policy: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + severity: critical + updated_at: 1 + name: name + created_at: 6 + description: description + id: 1 + canonical: canonical + body: body + enabled: true + warnings: + - reasons: + - reasons + - reasons + infra_policy: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + severity: critical + updated_at: 1 + name: name + created_at: 6 + description: description + id: 1 + canonical: canonical + body: body + enabled: true + - reasons: + - reasons + - reasons + infra_policy: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + severity: critical + updated_at: 1 + name: name + created_at: 6 + description: description + id: 1 + canonical: canonical + body: body + enabled: true + properties: + criticals: + items: + $ref: '#/components/schemas/InfraPoliciesValidationResultItem' + type: array + warnings: + items: + $ref: '#/components/schemas/InfraPoliciesValidationResultItem' + type: array + advisories: + items: + $ref: '#/components/schemas/InfraPoliciesValidationResultItem' + type: array + title: Infra policies validation results. + type: object + InfraPoliciesValidationResultItem: + description: | + InfraPoliciesValidationResultItem represents a checked rule + with a failed result generated from the validation process. + example: + reasons: + - reasons + - reasons + infra_policy: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + severity: critical + updated_at: 1 + name: name + created_at: 6 + description: description + id: 1 + canonical: canonical + body: body + enabled: true + properties: + infra_policy: + $ref: '#/components/schemas/InfraPolicy' + reasons: + description: | + The messages about the reason of the validation failure + that's written in the InfraPolicy's Body of the failed rule. + items: + type: string + type: array + required: + - infra_policy + type: object + Subscription: + description: | + It reflects the relation between an Organization and a Plan which + could be the Free Trial or others, for more info check https://www.cycloid.io/pricing + example: + expires_at: 0 + current_members: 0 + members_count: 0 + plan: + name: name + canonical: canonical + properties: + expires_at: + format: uint64 + minimum: 0 + type: integer + plan: + $ref: '#/components/schemas/SubscriptionPlan' + members_count: + format: uint64 + minimum: 0 + type: integer + current_members: + format: uint64 + minimum: 0 + type: integer + required: + - expires_at + - plan + title: Subscription + type: object + NewSubscription: + description: It reflects the creation of a Subscription + properties: + plan_canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + required: + - plan_canonical + title: New Subscription + type: object + SubscriptionPlan: + description: It reflects the Plan used for the subscription + example: + name: name + canonical: canonical + properties: + name: + minLength: 3 + type: string + canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + required: + - canonical + - name + title: SubscriptionPlan + type: object + PendingMemberInvitation: + description: Contains the email used for the member invitation + example: + email: email + properties: + email: + format: email + type: string + required: + - email + title: PendingMemberInvitation + type: object + CanDoInput: + description: The input of the 'can_do' endpoint + properties: + action: + type: string + entity_canonicals: + description: List of the canonicals to the Resource excluding the Organization + items: + type: string + type: array + required: + - action + - entity_canonicals + title: CanDoInput + type: object + CanDoOutput: + description: The output of the 'can_do' endpoint + example: + entity_canonicals: + - entity_canonicals + - entity_canonicals + ok: true + properties: + ok: + type: boolean + entity_canonicals: + items: + type: string + type: array + required: + - ok + title: CanDoOutput + type: object + CostEstimationResult: + description: The result of cost estimation. + example: + prior_hourly_cost: prior_hourly_cost + resource_estimates: + - prior_hourly_cost: prior_hourly_cost + image: https://openapi-generator.tech + components: + - unit: unit + rate: rate + prior: + quantity: 0 + cost: cost + hourly_cost: hourly_cost + details: + - details + - details + usage: true + label: label + planned: + quantity: 0 + cost: cost + hourly_cost: hourly_cost + details: + - details + - details + - unit: unit + rate: rate + prior: + quantity: 0 + cost: cost + hourly_cost: hourly_cost + details: + - details + - details + usage: true + label: label + planned: + quantity: 0 + cost: cost + hourly_cost: hourly_cost + details: + - details + - details + address: address + provider: provider + planned_hourly_cost: planned_hourly_cost + prior_cost: prior_cost + type: type + planned_cost: planned_cost + - prior_hourly_cost: prior_hourly_cost + image: https://openapi-generator.tech + components: + - unit: unit + rate: rate + prior: + quantity: 0 + cost: cost + hourly_cost: hourly_cost + details: + - details + - details + usage: true + label: label + planned: + quantity: 0 + cost: cost + hourly_cost: hourly_cost + details: + - details + - details + - unit: unit + rate: rate + prior: + quantity: 0 + cost: cost + hourly_cost: hourly_cost + details: + - details + - details + usage: true + label: label + planned: + quantity: 0 + cost: cost + hourly_cost: hourly_cost + details: + - details + - details + address: address + provider: provider + planned_hourly_cost: planned_hourly_cost + prior_cost: prior_cost + type: type + planned_cost: planned_cost + planned_hourly_cost: planned_hourly_cost + name: name + prior_cost: prior_cost + planned_cost: planned_cost + skipped_resource_addresses: + - skipped_resource_addresses + - skipped_resource_addresses + info: info + properties: + name: + description: Name of the current estimation + type: string + info: + description: Extra details regarding estimation - usually related to no known resources, unknown providers, etc. + type: string + resource_estimates: + items: + $ref: '#/components/schemas/CostEstimationResourceEstimate' + type: array + skipped_resource_addresses: + description: | + A list of addresses of resources that were skipped from the estimation process. A resource might be skipped + due to being invalid or unsupported by Terracost. + items: + type: string + type: array + prior_cost: + description: Prior monthly cost of the plan in decimal form. + type: string + planned_cost: + description: Planned monthly cost of the plan in decimal form. + type: string + prior_hourly_cost: + description: Prior hourly cost of the plan in decimal form. + type: string + planned_hourly_cost: + description: Planned hourly cost of the plan in decimal form. + type: string + required: + - resource_estimates + title: CostEstimationResult + type: object + CostEstimationResourceEstimate: + description: Estimate for a single cloud resource. + example: + prior_hourly_cost: prior_hourly_cost + image: https://openapi-generator.tech + components: + - unit: unit + rate: rate + prior: + quantity: 0 + cost: cost + hourly_cost: hourly_cost + details: + - details + - details + usage: true + label: label + planned: + quantity: 0 + cost: cost + hourly_cost: hourly_cost + details: + - details + - details + - unit: unit + rate: rate + prior: + quantity: 0 + cost: cost + hourly_cost: hourly_cost + details: + - details + - details + usage: true + label: label + planned: + quantity: 0 + cost: cost + hourly_cost: hourly_cost + details: + - details + - details + address: address + provider: provider + planned_hourly_cost: planned_hourly_cost + prior_cost: prior_cost + type: type + planned_cost: planned_cost + properties: + provider: + description: The resource's cloud provider. + type: string + type: + description: Type of the resource. + type: string + address: + description: Unique identifier of the resource. + type: string + image: + description: Path to the image of the resource + format: uri + type: string + components: + description: List of resource cost components. + items: + $ref: '#/components/schemas/CostEstimationComponent' + type: array + prior_cost: + description: Prior monthly cost of the resource estimate in decimal form. + type: string + planned_cost: + description: Planned monthly cost of the resource estimate in decimal form. + type: string + prior_hourly_cost: + description: Prior hourly cost of the resource estimate in decimal form. + type: string + planned_hourly_cost: + description: Planned hourly cost of the resource estimate in decimal form. + type: string + required: + - address + - components + - provider + - type + title: CostEstimationResourceEstimate + type: object + CostEstimationComponent: + description: Cost component of a cloud resource estimate. + example: + unit: unit + rate: rate + prior: + quantity: 0 + cost: cost + hourly_cost: hourly_cost + details: + - details + - details + usage: true + label: label + planned: + quantity: 0 + cost: cost + hourly_cost: hourly_cost + details: + - details + - details + properties: + label: + description: Human-readable label of the component. + type: string + rate: + description: Monthly rate per unit. + type: string + unit: + description: Unit of estimation. + type: string + usage: + description: If the price is from usage or configuration + type: boolean + prior: + $ref: '#/components/schemas/CostEstimationComponentState' + planned: + $ref: '#/components/schemas/CostEstimationComponentState' + required: + - label + - rate + title: CostEstimationComponent + type: object + CostEstimationComponentState: + description: Either a Prior or Planned cost component state. + example: + quantity: 0 + cost: cost + hourly_cost: hourly_cost + details: + - details + - details + properties: + quantity: + description: Quantity of units. + format: uint32 + type: integer + details: + description: List of items on which the cost is dependent. + items: + type: string + type: array + cost: + description: Monthly cost of the component state in decimal form. + type: string + hourly_cost: + description: Hourly cost of the component state in decimal form. + type: string + required: + - cost + - details + - hourly_cost + - quantity + title: CostEstimationComponentState + type: object + CloudCostManagementProjectResources: + description: | + The new resources and associated cost for a project in a period of time. + example: + cost: 2.027123023002322 + project: project + providers: + - co2e: 1.2315135367772556 + cost: 4.145608029883936 + provider: provider + resources: 1 + new_resources: 1 + kwh: 7.386281948385884 + - co2e: 1.2315135367772556 + cost: 4.145608029883936 + provider: provider + resources: 1 + new_resources: 1 + kwh: 7.386281948385884 + properties: + cost: + description: Cost for the project in the period + type: number + project: + type: string + providers: + items: + $ref: '#/components/schemas/CloudCostManagementProjectProviderResources' + type: array + required: + - cost + - project + - providers + title: CloudCostManagementProjectResources + type: object + CloudCostManagementProjectProviderResources: + description: | + Trend for a project + example: + co2e: 1.2315135367772556 + cost: 4.145608029883936 + provider: provider + resources: 1 + new_resources: 1 + kwh: 7.386281948385884 + properties: + cost: + description: Cost of the project for the provider + type: number + kwh: + description: Energy consumption for the project and provider, in kwh + type: number + co2e: + description: CO2e emissions for the project and provider, in metric tons + type: number + provider: + type: string + resources: + type: integer + new_resources: + type: integer + required: + - co2e + - cost + - kwh + - new_resources + - provider + - resources + title: CloudCostManagementProjectProviderResources + type: object + CloudCostManagementDashboard: + description: "The dashboard of the Cloud Cost Management, it contains\n- a histogram of the cost in the period aggregated by provider and\n by time granularity\n- a histogram of the cost aggregated by the top projects and providers\n and filtered by the top projects\n- a list of resources and relative cost for each top projects\n- a map containing properties that can be specified filtering the \n returned results, with a set of valid values for each.\n" + example: + projects: + co2e: 2.3021358869347655 + cost: 5.962133916683182 + buckets: + - co2e: 3.616076749251911 + cost: 7.061401241503109 + buckets: + - null + - null + value: value + kwh: 9.301444243932576 + - co2e: 3.616076749251911 + cost: 7.061401241503109 + buckets: + - null + - null + value: value + kwh: 9.301444243932576 + kwh: 5.637376656633329 + total_cost: 0.8008281904610115 + total_co2e: 1.4658129805029452 + filter_values: + instance_types: + - instance_types + - instance_types + master_accounts: + - master_accounts + - master_accounts + projects: + - projects + - projects + regions: + - regions + - regions + environments: + - environments + - environments + resources: + - resources + - resources + services: + - services + - services + linked_accounts: + - linked_accounts + - linked_accounts + tags: + key: + - tags + - tags + linked_accounts_with_cp: '{}' + master_accounts_with_cp: '{}' + categories: + - categories + - categories + providers: + - providers + - providers + currencies: + - currencies + - currencies + total_kwh: 6.027456183070403 + providers: + co2e: 2.3021358869347655 + cost: 5.962133916683182 + buckets: + - co2e: 3.616076749251911 + cost: 7.061401241503109 + buckets: + - null + - null + value: value + kwh: 9.301444243932576 + - co2e: 3.616076749251911 + cost: 7.061401241503109 + buckets: + - null + - null + value: value + kwh: 9.301444243932576 + kwh: 5.637376656633329 + project_resources: + - cost: 2.027123023002322 + project: project + providers: + - co2e: 1.2315135367772556 + cost: 4.145608029883936 + provider: provider + resources: 1 + new_resources: 1 + kwh: 7.386281948385884 + - co2e: 1.2315135367772556 + cost: 4.145608029883936 + provider: provider + resources: 1 + new_resources: 1 + kwh: 7.386281948385884 + - cost: 2.027123023002322 + project: project + providers: + - co2e: 1.2315135367772556 + cost: 4.145608029883936 + provider: provider + resources: 1 + new_resources: 1 + kwh: 7.386281948385884 + - co2e: 1.2315135367772556 + cost: 4.145608029883936 + provider: provider + resources: 1 + new_resources: 1 + kwh: 7.386281948385884 + properties: + total_cost: + type: number + total_kwh: + type: number + total_co2e: + type: number + providers: + $ref: '#/components/schemas/CloudCostManagementHistogram' + projects: + $ref: '#/components/schemas/CloudCostManagementHistogram' + project_resources: + items: + $ref: '#/components/schemas/CloudCostManagementProjectResources' + type: array + filter_values: + $ref: '#/components/schemas/CloudCostManagementFilterValues' + required: + - filter_values + - project_resources + - projects + - providers + title: CloudCostManagementDashboard + type: object + CloudCostManagementProviderDetails: + description: | + Description of the costs of a specific provider + example: + filter_values: + instance_types: + - instance_types + - instance_types + master_accounts: + - master_accounts + - master_accounts + projects: + - projects + - projects + regions: + - regions + - regions + environments: + - environments + - environments + resources: + - resources + - resources + services: + - services + - services + linked_accounts: + - linked_accounts + - linked_accounts + tags: + key: + - tags + - tags + linked_accounts_with_cp: '{}' + master_accounts_with_cp: '{}' + categories: + - categories + - categories + providers: + - providers + - providers + currencies: + - currencies + - currencies + cost_histogram: + co2e: 2.3021358869347655 + cost: 5.962133916683182 + buckets: + - co2e: 3.616076749251911 + cost: 7.061401241503109 + buckets: + - null + - null + value: value + kwh: 9.301444243932576 + - co2e: 3.616076749251911 + cost: 7.061401241503109 + buckets: + - null + - null + value: value + kwh: 9.301444243932576 + kwh: 5.637376656633329 + properties: + cost_histogram: + $ref: '#/components/schemas/CloudCostManagementHistogram' + filter_values: + $ref: '#/components/schemas/CloudCostManagementFilterValues' + required: + - cost_histogram + title: CloudCostManagementProviderDetails + type: object + CloudCostManagementProjectsDashboard: + description: "The projects dashboard of the Cloud Cost Management, it contains\n- a histogram of the cost aggregated by date and project \n- a histogram of cost aggregated by projects and providers\n" + example: + projects: + co2e: 2.3021358869347655 + cost: 5.962133916683182 + buckets: + - co2e: 3.616076749251911 + cost: 7.061401241503109 + buckets: + - null + - null + value: value + kwh: 9.301444243932576 + - co2e: 3.616076749251911 + cost: 7.061401241503109 + buckets: + - null + - null + value: value + kwh: 9.301444243932576 + kwh: 5.637376656633329 + project_providers: + co2e: 2.3021358869347655 + cost: 5.962133916683182 + buckets: + - co2e: 3.616076749251911 + cost: 7.061401241503109 + buckets: + - null + - null + value: value + kwh: 9.301444243932576 + - co2e: 3.616076749251911 + cost: 7.061401241503109 + buckets: + - null + - null + value: value + kwh: 9.301444243932576 + kwh: 5.637376656633329 + properties: + project_providers: + $ref: '#/components/schemas/CloudCostManagementHistogram' + projects: + $ref: '#/components/schemas/CloudCostManagementHistogram' + required: + - project_providers + - projects + title: CloudCostManagementProjectsDashboard + type: object + CloudCostManagementProviders: + description: | + Date histogram of the cost of all the providers + example: + cost_histogram: + co2e: 2.3021358869347655 + cost: 5.962133916683182 + buckets: + - co2e: 3.616076749251911 + cost: 7.061401241503109 + buckets: + - null + - null + value: value + kwh: 9.301444243932576 + - co2e: 3.616076749251911 + cost: 7.061401241503109 + buckets: + - null + - null + value: value + kwh: 9.301444243932576 + kwh: 5.637376656633329 + properties: + cost_histogram: + $ref: '#/components/schemas/CloudCostManagementHistogram' + required: + - cost_histogram + title: CloudCostManagementProviders + type: object + CloudCostManagementHistogram: + description: The histogram of the costs for a period composed of buckets that aggregate the costs. + example: + co2e: 2.3021358869347655 + cost: 5.962133916683182 + buckets: + - co2e: 3.616076749251911 + cost: 7.061401241503109 + buckets: + - null + - null + value: value + kwh: 9.301444243932576 + - co2e: 3.616076749251911 + cost: 7.061401241503109 + buckets: + - null + - null + value: value + kwh: 9.301444243932576 + kwh: 5.637376656633329 + properties: + cost: + description: The total cost for the period. + type: number + kwh: + description: The total energy consumption for the period, in kwh. + type: number + co2e: + description: The total CO2e emissions for the period, in metric tons. + type: number + buckets: + items: + $ref: '#/components/schemas/CloudCostManagementBucket' + type: array + required: + - buckets + - co2e + - cost + - kwh + title: CloudCostManagementHistogram + type: object + CloudCostManagementBucket: + description: "A sum of the cost generated in a period aggregated by one or more terms,\nfor example if we aggregate costs by project here we have all the cost \ngenerated by a specific project in the period of time defined by the \nfilters of the histogram. In case the filter specifies more than one \naggregation term this type will recursively contain the other levels of \naggregation.\n" + example: + co2e: 3.616076749251911 + cost: 7.061401241503109 + buckets: + - null + - null + value: value + kwh: 9.301444243932576 + properties: + cost: + type: number + value: + description: "The value of the aggregation term, for example if we aggregate cost \nby region aggregate_value can be us-east-2, if we aggregate by project\nthis can be cool_project_number_42, by service can be S3 or EC2, etc..\n" + type: string + kwh: + description: The total energy consumption for the aggregated usage, in kwh + type: number + co2e: + description: The total CO2e emissions for the aggregated usage, in metric tons. + type: number + buckets: + items: + $ref: '#/components/schemas/CloudCostManagementBucket' + type: array + required: + - co2e + - cost + - kwh + - value + title: CloudCostManagementBucket + type: object + CloudCostManagementFilterValues: + description: | + A collection of the values for which the cost can be filtered, i.e. all + the providers, services, regions, etc... for one org. + example: + instance_types: + - instance_types + - instance_types + master_accounts: + - master_accounts + - master_accounts + projects: + - projects + - projects + regions: + - regions + - regions + environments: + - environments + - environments + resources: + - resources + - resources + services: + - services + - services + linked_accounts: + - linked_accounts + - linked_accounts + tags: + key: + - tags + - tags + linked_accounts_with_cp: '{}' + master_accounts_with_cp: '{}' + categories: + - categories + - categories + providers: + - providers + - providers + currencies: + - currencies + - currencies + properties: + providers: + items: + type: string + type: array + projects: + items: + type: string + type: array + environments: + items: + type: string + type: array + services: + items: + type: string + type: array + master_accounts: + items: + type: string + type: array + master_accounts_with_cp: + properties: {} + type: object + linked_accounts: + items: + type: string + type: array + linked_accounts_with_cp: + properties: {} + type: object + regions: + items: + type: string + type: array + resources: + items: + type: string + type: array + instance_types: + items: + type: string + type: array + categories: + items: + type: string + type: array + currencies: + items: + type: string + type: array + tags: + additionalProperties: + items: + type: string + type: array + type: object + title: CloudCostManagementFilterValues + type: object + TerraformPlanInput: + description: Input for endpoints that require a Terraform plan. + properties: + tfplan: + description: 'Terraform plan file in escaped JSON format. See more: https://www.terraform.io/internals/json-format' + type: string + required: + - tfplan + title: TerraformPlanInput + type: object + KPI: + description: A KPI + example: + widget: bars + description: description + created_at: 0 + project_canonical: project_canonical + data_set: + - '{}' + - '{}' + canonical: canonical + type: build_avg_time + environment_canonical: environment_canonical + error: error + pipeline_name: pipeline_name + job_name: job_name + updated_at: 0 + name: name + id: 1 + config: '{}' + favorite: true + properties: + id: + format: uint32 + minimum: 1 + type: integer + name: + minLength: 3 + type: string + canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + type: + enum: + - build_avg_time + - build_frequency + - build_history + - code_coverage + - time_to_release + type: string + widget: + enum: + - bars + - stackbars + - doughnut + - history + - line + - pie + - summary + type: string + config: + description: | + The config represent some extra parameters which are required for the configuration of certain KPIs. Please refer to the documentation for more details. + properties: {} + type: object + description: + type: string + project_canonical: + maxLength: 100 + minLength: 1 + pattern: (^[a-z0-9]+(([a-z0-9\-_]+)?[a-z0-9]+)?$) + type: string + environment_canonical: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:[\da-zA-Z\-._]+[\da-zA-Z]|[\da-zA-Z])$ + type: string + pipeline_name: + type: string + job_name: + type: string + error: + description: If an error occurred in the last import, that field will be filled with the message of the error + type: string + created_at: + format: uint64 + minimum: 0 + type: integer + updated_at: + format: uint64 + minimum: 0 + type: integer + data_set: + description: The data is represented in CSV format. Depending on the widget configured for the KPI, the format may vary. For more information please refer to our product documentation. + items: + properties: {} + type: object + type: array + favorite: + type: boolean + required: + - canonical + - config + - created_at + - description + - error + - id + - name + - type + - updated_at + - widget + title: KPI + type: object + NewKPI: + description: A KPI's configuration that needs to be saved + properties: + name: + minLength: 3 + type: string + canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + type: + enum: + - build_avg_time + - build_frequency + - build_history + - code_coverage + - time_to_release + type: string + widget: + enum: + - bars + - stackbars + - doughnut + - history + - line + - pie + - summary + type: string + config: + description: | + The config represent some extra parameters which are required for the configuration of certain KPIs. Please refer to the documentation for more details. + properties: {} + type: object + description: + type: string + project_canonical: + maxLength: 100 + minLength: 1 + pattern: (^[a-z0-9]+(([a-z0-9\-_]+)?[a-z0-9]+)?$) + type: string + environment_canonical: + maxLength: 100 + minLength: 1 + pattern: ^[\da-zA-Z]+(?:[\da-zA-Z\-._]+[\da-zA-Z]|[\da-zA-Z])$ + type: string + pipeline_name: + type: string + job_name: + type: string + required: + - name + - type + - widget + title: New KPI + type: object + Country: + description: Single country Representation + example: + code: code + name: name + properties: + code: + pattern: ^[A-Z]{2}$ + type: string + name: + type: string + required: + - code + - name + title: Country + type: object + NewLicence: + description: Object containing licence parameters + properties: + key: + description: Licence's key in the JWT format + type: string + required: + - key + title: Licence + type: object + Licence: + description: Object containing licence parameters + example: + on_prem: true + email_address: email_address + expires_at: 0 + updated_at: 0 + current_members: 0 + company_name: company_name + created_at: 0 + members_count: 0 + version: version + key: key + properties: + key: + description: Licence's key in the JWT format + type: string + created_at: + format: uint64 + minimum: 0 + type: integer + updated_at: + format: uint64 + minimum: 0 + type: integer + company_name: + type: string + email_address: + type: string + members_count: + format: uint64 + minimum: 0 + type: integer + expires_at: + format: uint64 + minimum: 0 + type: integer + version: + type: string + on_prem: + type: boolean + current_members: + format: uint64 + minimum: 0 + type: integer + required: + - company_name + - created_at + - current_members + - email_address + - expires_at + - key + - members_count + - on_prem + - updated_at + - version + title: Licence + type: object + NewInfraImport: + description: Entry that represents all the data needed to import a stack + properties: + module_variables: + additionalProperties: + items: + type: string + type: array + description: It's a KV where the key is the resource name and the value is the list (array) of attributes to include as part of the module + type: object + tags: + description: List of tags to filter with format NAME:VALUE + items: + type: string + type: array + include: + description: 'List of resources to import, these names are the ones on TF (ex: aws_instance). If not set then it means that all the resources will be imported' + items: + type: string + type: array + targets: + description: List of resources to import via ID, those IDs are the ones documented on Terraform that are needed to Import. The format is 'aws_instance.ID' + items: + type: string + type: array + credential_canonical: + description: Credential that will be used to import from the provider + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + stack: + $ref: '#/components/schemas/NewServiceCatalog' + project: + $ref: '#/components/schemas/NewInfraImportProject' + environment: + $ref: '#/components/schemas/NewEnvironment' + external_backend: + $ref: '#/components/schemas/NewInfraImportExternalBackend' + configuration: + $ref: '#/components/schemas/CloudProviderConfiguration' + required: + - configuration + - credential_canonical + - stack + title: New Infra Import + type: object + InfraImportResourceBody: + description: Entry that represents all the data needed for fetching resource + properties: + credential_canonical: + description: Credential that will be used to import from the provider + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + configuration: + $ref: '#/components/schemas/CloudProviderConfiguration' + tags: + items: + type: string + type: array + required: + - configuration + - credential_canonical + title: Provider Resources body + type: object + InfraImportResourcesBody: + description: Entry that represents all the data needed for fetching resources + properties: + credential_canonical: + description: Credential that will be used to import from the provider + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + configuration: + $ref: '#/components/schemas/CloudProviderConfiguration' + required: + - configuration + - credential_canonical + title: Provider's Resources body + type: object + CloudProviderConfiguration: + discriminator: + propertyName: type + properties: + type: + type: string + required: + - type + type: object + CloudProviderAWSConfiguration: + allOf: + - $ref: '#/components/schemas/CloudProviderConfiguration' + - properties: + region: + description: | + The AWS region where the resource exists + type: string + required: + - region + type: object + description: | + Representation of AWS configuration + CloudProviderGCPConfiguration: + allOf: + - $ref: '#/components/schemas/CloudProviderConfiguration' + - properties: + region: + description: | + The Google region where the resource exists + type: string + project: + description: | + The Google project where the resource exists + type: string + required: + - project + - region + type: object + description: | + Representation of Google configuration + CloudProviderAzureConfiguration: + allOf: + - $ref: '#/components/schemas/CloudProviderConfiguration' + - properties: + resource_group_names: + description: | + The Azure resource group name of the configuration + items: + type: string + minItems: 1 + type: array + environment: + description: | + The Azure environment of the configuration + type: string + required: + - environment + - resource_group_names + type: object + description: | + Representation of Azure configuration + CloudProviderVMWareVSphereConfiguration: + allOf: + - $ref: '#/components/schemas/CloudProviderConfiguration' + - properties: + server: + description: | + This is the vCenter Server FQDN or IP Address for vSphere API operations + type: string + allow_unverified_ssl: + description: | + Used to disable verification of server's SSL certificate. + type: boolean + required: + - allow_unverified_ssl + - server + type: object + description: | + Representation of VMware vSphere configuration + NewInfraImportProject: + description: The entity which represents the information of a new project. + properties: + canonical: + maxLength: 100 + minLength: 1 + pattern: (^[a-z0-9]+(([a-z0-9\-_]+)?[a-z0-9]+)?$) + type: string + name: + minLength: 1 + type: string + description: + description: | + A description regarding the project to help identify/remember details, + implementation, purpose, etc. + type: string + config_repository_canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + required: + - config_repository_canonical + - name + title: Create Project for the Infra Import + type: object + NewInfraImportExternalBackend: + description: An external backend contains the configuration needed in order to be plugged into the Cycloid system. A backend is a general purpose concept, but Cycloid specifies which ones are supported and the list of those which are supported for every concrete feature. + properties: + credential_canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + configuration: + $ref: '#/components/schemas/ExternalBackendConfiguration' + required: + - configuration + title: New External backend + type: object + InfraImport: + description: | + The entity which represents the information of for the import of a new Stack or Project. + example: + service_catalog_ref: service_catalog_ref + project_canonical: project_canonical + error: error + logs: logs + status: succeeded + properties: + status: + description: The import process status. + enum: + - succeeded + - failed + - importing + type: string + project_canonical: + maxLength: 100 + minLength: 1 + pattern: (^[a-z0-9]+(([a-z0-9\-_]+)?[a-z0-9]+)?$) + type: string + service_catalog_ref: + description: It's the ref of the Service Catalog, like 'cycloidio:stack-magento' + type: string + logs: + type: string + error: + type: string + required: + - error + - logs + - service_catalog_ref + - status + title: Infra Import + type: object + InfraImportPreset: + description: | + Infra Import's pre-configured group with Resources commonly used together in a specific context. + example: + name: name + resources: + - resources + - resources + properties: + name: + type: string + resources: + items: + type: string + type: array + required: + - name + - resources + title: InfraImportPreset + type: object + InfraImportResource: + description: | + The representation of the Infra Import's Resource of a Cloud Provider. + example: + id: id + properties: + id: + type: string + required: + - id + title: Infra Import Resource + type: object + CloudCostManagementAccount: + description: Object containing Cloud Cost Management account parameters + example: + status_message: status_message + phase: green + external_backend: + default: true + updated_at: 0 + purpose: purpose + configuration: + engine: engine + jwt: jwt + credential_canonical: credential_canonical + created_at: 0 + project_canonical: project_canonical + id: 1 + environment_canonical: environment_canonical + created_at: 0 + last_ingestion_started_at: 0 + cloud_provider: + regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + canonical: canonical + enabled: true + last_ingestion_ended_at: 0 + account_id: account_id + unfinalized_period: unfinalized_period + updated_at: 0 + credential: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + path: path + updated_at: 0 + keys: + - keys + - keys + name: name + description: description + created_at: 0 + in_use: + config_repositories: + - name: name + canonical: canonical + - name: name + canonical: canonical + service_catalog_sources: + - name: name + canonical: canonical + - name: name + canonical: canonical + external_backends: + - environment: + canonical: canonical + purpose: purpose + engine: engine + project: + name: name + canonical: canonical + - environment: + canonical: canonical + purpose: purpose + engine: engine + project: + name: name + canonical: canonical + id: 1 + canonical: canonical + type: ssh + parent_account_id: parent_account_id + name: name + id: 1 + status: idle + properties: + canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + name: + description: A user-defined name for the account + type: string + account_id: + description: The ID of an account on the CP + type: string + parent_account_id: + description: The ID of the parent account on the CP + type: string + created_at: + format: uint64 + minimum: 0 + type: integer + updated_at: + format: uint64 + minimum: 0 + type: integer + last_ingestion_started_at: + format: uint64 + minimum: 0 + type: integer + last_ingestion_ended_at: + format: uint64 + minimum: 0 + type: integer + id: + format: uint32 + minimum: 1 + type: integer + external_backend: + $ref: '#/components/schemas/ExternalBackend' + credential: + $ref: '#/components/schemas/CredentialSimple' + status: + enum: + - idle + - error + - import + type: string + status_message: + type: string + cloud_provider: + $ref: '#/components/schemas/CloudProvider' + enabled: + type: boolean + phase: + enum: + - green + - blue + type: string + unfinalized_period: + type: string + required: + - account_id + - canonical + - cloud_provider + - created_at + - enabled + - id + - name + - status + - updated_at + title: CloudCostManagementAccount + type: object + CloudCostManagementAccountParent: + description: | + Object containing Cloud Cost Management parent account parameters. The difference + between it and CloudCostManagementAccount is that parent has no EB/Credential + displayed, as it's not necessary + example: + status_message: status_message + account_id: account_id + updated_at: 0 + name: name + created_at: 0 + last_ingestion_started_at: 0 + cloud_provider: + regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + canonical: canonical + id: 1 + enabled: true + last_ingestion_ended_at: 0 + status: idle + properties: + canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + name: + description: A user-defined name for the account + type: string + account_id: + description: The ID of an account on the CP + type: string + created_at: + format: uint64 + minimum: 0 + type: integer + updated_at: + format: uint64 + minimum: 0 + type: integer + last_ingestion_started_at: + format: uint64 + minimum: 0 + type: integer + last_ingestion_ended_at: + format: uint64 + minimum: 0 + type: integer + id: + format: uint32 + minimum: 1 + type: integer + status: + enum: + - idle + - error + - import + type: string + status_message: + type: string + cloud_provider: + $ref: '#/components/schemas/CloudProvider' + enabled: + type: boolean + required: + - account_id + - canonical + - cloud_provider + - created_at + - enabled + - id + - name + - status + - updated_at + title: CloudCostManagementAccountParent + type: object + CloudCostManagementLinkedAccount: + description: | + An account that is linked to a Cloud Cost Management account in the cloud + provider. It is not managed by Cloud Cost Management, but appears in the cost records. + example: + account_id: account_id + name: name + cloud_provider: cloud_provider + id: 1 + properties: + id: + format: uint32 + minimum: 1 + type: integer + account_id: + description: ID of the account in the cloud provider + type: string + name: + description: A user-defined name for the account + type: string + cloud_provider: + description: | + The cloud provider canonical that this project is using - between the + supported ones. + type: string + required: + - account_id + - cloud_provider + - id + - name + title: CloudCostManagementLinkedAccount + type: object + UpdateCloudCostManagementLinkedAccount: + description: | + Attributes of a CCM linked accout that can be updated by a user. + properties: + name: + type: string + required: + - name + title: Update CloudCostManagementLinkedAccount + type: object + NewCloudCostManagementAccount: + description: | + Create a new Cloud Cost Management account to connect CP. + If a canonical is missing, the one from credential will be applied + properties: + canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + name: + description: A user-defined name for the account + type: string + external_backend: + $ref: '#/components/schemas/NewExternalBackend' + required: + - external_backend + title: Create CloudCostManagementAccount + type: object + NewCloudCostManagementAccountChild: + description: "Create a new Cloud Cost Management Child account. This count has no \nExternalBackend since it is not ingesting data.\nIf a canonical is missing, the one from credential will be applied\n" + properties: + canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + name: + description: A user-defined name for the account + type: string + parent_account_id: + description: The ID of the parent account on the CP + type: string + credential_canonical: + description: Canonical of the credentials used + type: string + required: + - credential_canonical + - parent_account_id + title: Create CloudCostManagementAccountChild + type: object + UpdateCloudCostManagementAccount: + description: Update a Cloud Cost Management account to connect CP. + properties: + enabled: + type: boolean + name: + description: A user-defined name for the account + type: string + external_backend: + $ref: '#/components/schemas/UpdateExternalBackend' + required: + - enabled + - external_backend + title: Update CloudCostManagementAccount + type: object + CloudCostManagementTagMapping: + description: "Object containing Cloud Cost Management tag mapping. The mapping is used to \nidentify resources belonging to projects and environments across cloud\nproviders. The mapping can be a set of tag keys or a regexp to capture\ntag keys.\n" + example: + updated_at: 0 + environment_regex: environment_regex + all_tags: + - all_tags + - all_tags + created_at: 0 + id: 1 + project_regex: project_regex + environment_tags: + - environment_tags + - environment_tags + project_tags: + - project_tags + - project_tags + properties: + id: + format: uint32 + minimum: 1 + type: integer + project_tags: + items: + type: string + type: array + project_regex: + type: string + environment_tags: + items: + type: string + type: array + environment_regex: + type: string + all_tags: + description: This is a list of all the tag keys in the DB for the Org + items: + type: string + type: array + created_at: + format: uint64 + minimum: 0 + type: integer + updated_at: + format: uint64 + minimum: 0 + type: integer + required: + - created_at + - id + - updated_at + title: CloudCostManagementTagMapping + type: object + UpdateCloudCostManagementTagMapping: + description: Create or Update a Cloud Cost Management tag mapping for projects and environments + properties: + project_tags: + items: + type: string + type: array + project_regex: + type: string + environment_tags: + items: + type: string + type: array + environment_regex: + type: string + title: Create or Update CloudCostManagementTagMapping + type: object + State: + description: The State of an Inventory of the Project's environment + properties: + terraform_version: + type: string + version: + format: uint32 + type: integer + serial: + format: uint32 + type: integer + lineage: + type: string + resources: + items: + $ref: '#/components/schemas/StateResource' + type: array + outputs: + properties: {} + type: object + title: State + type: object + StateResource: + description: The Resource of a State in the Inventory of the Project's environment + properties: + provider: + type: string + type: + type: string + name: + type: string + module: + type: string + mode: + type: string + instances: + items: + $ref: '#/components/schemas/StateResourceInstances' + type: array + image: + description: Image of the resource type + format: uri + type: string + category: + description: Category of the resource type + type: string + short_description: + description: Short description of the resource type documentation + type: string + description: + description: Full description of the resource type documentation + type: string + keywords: + description: Set of keywords to categorize the resource type + items: + type: string + type: array + project_canonical: + description: Project canonical in which this resource is used + type: string + title: State Resource + type: object + StateResourceInstances: + description: The Instances inside Resources of a State in the Inventory of the Project's environment + properties: + attributes: + properties: {} + type: object + custom_attributes: + properties: {} + type: object + title: State Resource Instances + type: object + StateLock: + description: The Lock management of a State in the Inventory of the Project's environment + example: + created: created + id: id + operation: operation + version: version + info: info + who: who + properties: + id: + type: string + operation: + type: string + info: + type: string + who: + type: string + version: + type: string + created: + type: string + title: State Lock + type: object + NewInventoryResource: + description: The Resource of the Inventory representing an element of your infrastructure + properties: + provider: + description: The provider of the created Resource + type: string + type: + description: The type of the resource + type: string + name: + description: The name of the resource + type: string + custom_attributes: + description: List of attributes (key value object) of the Resource, can be anything + example: + custom: attribute + another: one + properties: {} + type: object + label: + description: A way to distinguish and categorize resources + example: my-label + type: string + memory: + description: The amount of memory that it has in MB + format: uint64 + minimum: 0 + type: integer + cpu: + description: The amount of cpu cores that it has in units + format: uint64 + minimum: 0 + type: integer + storage: + description: The amount of storage that it has in MB + format: uint64 + minimum: 0 + type: integer + required: + - label + - name + - provider + - type + title: New Inventory Resource + type: object + InventoryResource: + description: The Resource of the Inventory representing an element of your infrastructure + example: + image: https://openapi-generator.tech + short_description: short_description + memory: 0 + keywords: + - keywords + - keywords + module: module + cpu: 0 + description: description + project_canonical: project_canonical + label: label + storage: 0 + type: type + environment_canonical: environment_canonical + custom_attributes: '{}' + mode: mode + provider: provider + name: name + attributes: '{}' + id: 1 + category: category + properties: + id: + format: uint32 + minimum: 1 + type: integer + provider: + description: The provider of the created Resource + type: string + type: + description: The type of the resource + type: string + name: + description: The name of the resource + type: string + mode: + description: The way this resource is handled + type: string + module: + description: The module it belongs to + type: string + custom_attributes: + description: List of attributes of the Resource, can be anything + properties: {} + type: object + label: + description: A way to distinguish and categorize resources + type: string + memory: + description: The amount of memory that it has in MB + format: uint64 + minimum: 0 + type: integer + cpu: + description: The amount of cpu that it has in units + format: uint64 + minimum: 0 + type: integer + storage: + description: The amount of storage that it has in MB + format: uint64 + minimum: 0 + type: integer + attributes: + properties: {} + type: object + image: + description: Image of the resource type + format: uri + type: string + category: + description: Category of the resource type + type: string + short_description: + description: Short description of the resource type documentation + type: string + description: + description: Full description of the resource type documentation + type: string + keywords: + description: Set of keywords to categorize the resource type + items: + type: string + type: array + project_canonical: + description: Project canonical in which this resource is used + pattern: (^[a-z0-9]+(([a-z0-9\-_]+)?[a-z0-9]+)?$) + type: string + environment_canonical: + description: Environment canonical in which this resource is used + pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$ + type: string + required: + - name + - provider + - type + title: Inventory Resource + type: object + InventoryResourceLabel: + description: Aggregated information of resources having a label + example: + memory: 0 + name: name + cpu: 0 + storage: 0 + properties: + name: + description: Value of the resources' label + type: string + memory: + description: The aggregated amount of memory of resources having the label in MB + format: uint64 + minimum: 0 + type: integer + cpu: + description: The aggregated amount of cpu of resources having the label + format: uint64 + minimum: 0 + type: integer + storage: + description: The aggregated amount of storage of resources having the label in MB + format: uint64 + minimum: 0 + type: integer + required: + - cpu + - memory + - name + - storage + title: Inventory Resource Label + type: object + NewResourcePool: + description: The Resource Pool defines the basic needs to create/update a resource pool + properties: + name: + type: string + label: + type: string + required: + - label + - name + title: New Resource Pool + type: object + ResourcePool: + description: A Resource Pool holds the information of all the Resources that have the same label. The Used is the amount used by Projects using Quotas and Allocated is the amount declared by Quotas + example: + memory: 0 + used_memory: 0 + cpu: 0 + canonical: canonical + label: label + storage: 0 + allocated_storage: 0 + name: name + used_storage: 0 + allocated_memory: 0 + id: 1 + used_cpu: 0 + allocated_cpu: 0 + properties: + id: + format: uint32 + minimum: 1 + type: integer + name: + type: string + canonical: + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + label: + description: The label to which match the resources + type: string + memory: + description: The amount of memory that it has in MB + format: uint64 + minimum: 0 + type: integer + cpu: + description: The amount of cpu that it has in units + format: uint64 + minimum: 0 + type: integer + storage: + description: The amount of storage that it has in MB + format: uint64 + minimum: 0 + type: integer + used_memory: + description: The amount of memory that is used in MB + format: uint64 + minimum: 0 + type: integer + used_cpu: + description: The amount of CPU that is used in units + format: uint64 + minimum: 0 + type: integer + used_storage: + description: The amount of Storage that is used in MB + format: uint64 + minimum: 0 + type: integer + allocated_memory: + description: The amount of memory that is allocated (quotas defined) in MB + format: uint64 + minimum: 0 + type: integer + allocated_cpu: + description: The amount of CPU that is allocated (quotas defined) in units + format: uint64 + minimum: 0 + type: integer + allocated_storage: + description: The amount of Storage that is allocated (quotas defined) in MB + format: uint64 + minimum: 0 + type: integer + required: + - allocated_cpu + - allocated_memory + - allocated_storage + - canonical + - cpu + - label + - memory + - name + - storage + - used_cpu + - used_memory + - used_storage + title: Resource Pool + type: object + NewQuota: + description: The Quota defines the basic needs to create a quota + properties: + memory: + description: The amount of memory that it has in MB + format: uint64 + minimum: 0 + type: integer + cpu: + description: The amount of cpu that it has in units + format: uint64 + minimum: 0 + type: integer + storage: + description: The amount of storage that it has in MB + format: uint64 + minimum: 0 + type: integer + resource_pool_canonical: + description: The Resource Pool it'll be used + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + team_canonical: + description: The Team it'll be limiting + maxLength: 100 + minLength: 3 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + required: + - cpu + - memory + - resource_pool_canonical + - storage + - team_canonical + title: New Quota + type: object + UpdateQuota: + description: The Quota defines the basic needs to update a create + properties: + memory: + description: The amount of memory that it has in MB + format: uint64 + minimum: 0 + type: integer + cpu: + description: The amount of cpu that it has in units + format: uint64 + minimum: 0 + type: integer + storage: + description: The amount of storage that it has in MB + format: uint64 + minimum: 0 + type: integer + required: + - cpu + - memory + - storage + title: Update Quota + type: object + Quota: + description: A Quota holds the information of the restrictions applied to a Team having as source a Resource Pool + example: + memory: 0 + used_memory: 0 + used_storage: 0 + cpu: 0 + id: 1 + storage: 0 + used_cpu: 0 + team: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: canonical + resource_pool: + memory: 0 + used_memory: 0 + cpu: 0 + canonical: canonical + label: label + storage: 0 + allocated_storage: 0 + name: name + used_storage: 0 + allocated_memory: 0 + id: 1 + used_cpu: 0 + allocated_cpu: 0 + properties: + id: + format: uint32 + minimum: 1 + type: integer + memory: + description: The amount of memory that it has in MB + format: uint64 + minimum: 0 + type: integer + cpu: + description: The amount of cpu that it has in units + format: uint64 + minimum: 0 + type: integer + storage: + description: The amount of storage that it has in MB + format: uint64 + minimum: 0 + type: integer + used_memory: + description: The amount of memory that is used in MB + format: uint64 + minimum: 0 + type: integer + used_cpu: + description: The amount of CPU that is used in units + format: uint64 + minimum: 0 + type: integer + used_storage: + description: The amount of Storage that is used in MB + format: uint64 + minimum: 0 + type: integer + team: + $ref: '#/components/schemas/SimpleTeam' + resource_pool: + $ref: '#/components/schemas/ResourcePool' + required: + - cpu + - id + - memory + - resource_pool + - storage + - team + - used_cpu + - used_memory + - used_storage + title: Quota + type: object + ProjectEnvironmentConsumption: + description: The Consumption of a Project in an Environment + example: + environment: + use_case: use_case + updated_at: 0 + color: color + icon: icon + created_at: 0 + cloud_provider: + regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + id: 1 + canonical: canonical + memory: 0 + cpu: 0 + project: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + updated_at: 0 + name: name + description: description + created_at: 0 + import_status: succeeded + id: 1 + canonical: canonical + favorite: true + id: 1 + storage: 0 + properties: + id: + format: uint32 + minimum: 1 + type: integer + memory: + description: The amount of memory that it has in MB + format: uint64 + minimum: 0 + type: integer + cpu: + description: The amount of cpu that it has in units + format: uint64 + minimum: 0 + type: integer + storage: + description: The amount of storage that it has in MB + format: uint64 + minimum: 0 + type: integer + project: + $ref: '#/components/schemas/ProjectSimple' + environment: + $ref: '#/components/schemas/Environment' + required: + - cpu + - environment + - id + - memory + - project + - storage + title: ProjectEnvironmentConsumption + type: object + ProjectSimple: + description: The entity which represents minimal information of a project. + example: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + updated_at: 0 + name: name + description: description + created_at: 0 + import_status: succeeded + id: 1 + canonical: canonical + favorite: true + properties: + id: + format: uint32 + minimum: 1 + type: integer + canonical: + maxLength: 100 + minLength: 1 + pattern: (^[a-z0-9]+(([a-z0-9\-_]+)?[a-z0-9]+)?$) + type: string + name: + minLength: 1 + type: string + description: + type: string + owner: + $ref: '#/components/schemas/User' + created_at: + format: uint64 + minimum: 0 + type: integer + updated_at: + format: uint64 + minimum: 0 + type: integer + import_status: + description: The import process status. + enum: + - succeeded + - failed + - importing + type: string + favorite: + type: boolean + required: + - canonical + - created_at + - id + - name + - updated_at + title: ProjectSimple + type: object + Appearance: + description: An Appearance holds the values of the branding configuration, which are rendered across an organization + example: + is_active: true + color: + r: 20 + b: 37 + g: 153 + updated_at: 0 + favicon: https://openapi-generator.tech + footer: footer + name: name + tab_title: tab_title + logo: https://openapi-generator.tech + created_at: 0 + canonical: canonical + display_name: display_name + properties: + canonical: + maxLength: 100 + minLength: 1 + pattern: ^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$ + type: string + name: + maxLength: 50 + minLength: 1 + type: string + display_name: + maxLength: 50 + minLength: 1 + type: string + tab_title: + maxLength: 50 + minLength: 1 + type: string + color: + $ref: '#/components/schemas/Appearance_color' + logo: + format: uri + type: string + favicon: + format: uri + type: string + footer: + maxLength: 1000 + minLength: 0 + type: string + is_active: + type: boolean + created_at: + format: uint64 + minimum: 0 + type: integer + updated_at: + format: uint64 + minimum: 0 + type: integer + required: + - canonical + - color + - display_name + - favicon + - footer + - logo + - name + - tab_title + title: Appearance + type: object + NewAppearance: + description: An Appearance holds the values of the branding configuration, which are rendered across an organization + properties: + name: + maxLength: 50 + minLength: 1 + type: string + display_name: + maxLength: 50 + minLength: 1 + type: string + tab_title: + maxLength: 50 + minLength: 1 + type: string + color: + $ref: '#/components/schemas/Appearance_color' + logo: + format: uri + type: string + favicon: + format: uri + type: string + footer: + maxLength: 1000 + minLength: 0 + type: string + required: + - color + - display_name + - favicon + - footer + - logo + - name + - tab_title + title: Appearance + type: object + FormsValuesRef: + description: It has the information to get the values of an entity of the Form + properties: + url: + description: The url to which fetch the results + type: string + required: + - url + title: Forms values ref + type: object + getActiveAppearance_200_response: + example: + data: + is_active: true + color: + r: 20 + b: 37 + g: 153 + updated_at: 0 + favicon: https://openapi-generator.tech + footer: footer + name: name + tab_title: tab_title + logo: https://openapi-generator.tech + created_at: 0 + canonical: canonical + display_name: display_name + properties: + data: + $ref: '#/components/schemas/Appearance' + required: + - data + type: object + terraformJSONToHCL_200_response: + example: + data: + config: config + properties: + data: + $ref: '#/components/schemas/TerraformHCLConfig' + required: + - data + type: object + getInfraImportPresets_200_response: + example: + pagination: + total: 0 + size: 0 + index: 1 + data: + - name: name + resources: + - resources + - resources + - name: name + resources: + - resources + - resources + properties: + data: + items: + $ref: '#/components/schemas/InfraImportPreset' + type: array + pagination: + $ref: '#/components/schemas/Pagination' + required: + - data + - pagination + type: object + getInfraImportResource_200_response: + example: + pagination: + total: 0 + size: 0 + index: 1 + data: + - id: id + - id: id + properties: + data: + items: + $ref: '#/components/schemas/InfraImportResource' + type: array + pagination: + $ref: '#/components/schemas/Pagination' + required: + - data + - pagination + type: object + getInfraImportResources_200_response: + example: + pagination: + total: 0 + size: 0 + index: 1 + data: + - image: https://openapi-generator.tech + short_description: short_description + keywords: + - keywords + - keywords + is_edge: true + description: description + attributes: + important: + - important + - important + normalized_status: '{}' + status: status + canonical: canonical + category: category + is_node: true + - image: https://openapi-generator.tech + short_description: short_description + keywords: + - keywords + - keywords + is_edge: true + description: description + attributes: + important: + - important + - important + normalized_status: '{}' + status: status + canonical: canonical + category: category + is_node: true + properties: + data: + items: + $ref: '#/components/schemas/TerraformProviderResourceSimple' + type: array + pagination: + $ref: '#/components/schemas/Pagination' + required: + - data + - pagination + type: object + getTerraformProviders_200_response: + example: + pagination: + total: 0 + size: 0 + index: 1 + data: + - cloud: true + name: name + canonical: canonical + abbreviation: abbreviation + - cloud: true + name: name + canonical: canonical + abbreviation: abbreviation + properties: + data: + items: + $ref: '#/components/schemas/TerraformProviderSimple' + type: array + pagination: + $ref: '#/components/schemas/Pagination' + required: + - data + - pagination + type: object + getTerraformProviderDataSource_200_response: + example: + data: + schema: '{}' + image: https://openapi-generator.tech + short_description: short_description + keywords: + - keywords + - keywords + is_edge: true + description: description + attributes: + important: + - important + - important + normalized_status: '{}' + status: status + canonical: canonical + category: category + is_node: true + properties: + data: + $ref: '#/components/schemas/TerraformProviderResource' + required: + - data + type: object + getTerraformProvider_200_response: + example: + data: + cloud: true + schema: '{}' + name: name + canonical: canonical + abbreviation: abbreviation + properties: + data: + $ref: '#/components/schemas/TerraformProvider' + required: + - data + type: object + terraformValidate_200_response: + example: + data: + errors: + - errors + - errors + properties: + data: + $ref: '#/components/schemas/TerraformValidationResult' + required: + - data + type: object + getConfig_200_response: + example: + data: + authentication: + saml2: + - provider: provider + sso_url: https://openapi-generator.tech + - provider: provider + sso_url: https://openapi-generator.tech + oauth: + - provider: provider + type: type + client_id: client_id + - provider: provider + type: type + client_id: client_id + local: + enabled: true + properties: + data: + $ref: '#/components/schemas/AppConfig' + required: + - data + type: object + getCountries_200_response: + example: + data: + - code: code + name: name + - code: code + name: name + properties: + data: + items: + $ref: '#/components/schemas/Country' + type: array + required: + - data + type: object + getStatus_200_response: + example: + data: + checks: + - canonical: canonical + category: category + message: message + status: Unknown + - canonical: canonical + category: category + message: message + status: Unknown + message: message + status: Unknown + properties: + data: + $ref: '#/components/schemas/GeneralStatus' + required: + - data + type: object + getServiceStatus_200_response: + example: + data: + canonical: canonical + category: category + message: message + status: Unknown + properties: + data: + $ref: '#/components/schemas/CheckReport' + required: + - data + type: object + getAppVersion_200_response: + example: + data: + version: version + branch: branch + revision: revision + properties: + data: + $ref: '#/components/schemas/AppVersion' + required: + - data + type: object + getAPIKeys_200_response: + example: + pagination: + total: 0 + size: 0 + index: 1 + data: + - last_seven: last_seven + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + last_used: 7 + name: name + description: description + rules: + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + canonical: canonical + id: 1 + token: token + - last_seven: last_seven + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + last_used: 7 + name: name + description: description + rules: + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + canonical: canonical + id: 1 + token: token + properties: + data: + items: + $ref: '#/components/schemas/APIKey' + type: array + pagination: + $ref: '#/components/schemas/Pagination' + required: + - data + - pagination + type: object + createAPIKey_200_response: + example: + data: + last_seven: last_seven + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + last_used: 7 + name: name + description: description + rules: + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + canonical: canonical + id: 1 + token: token + properties: + data: + $ref: '#/components/schemas/APIKey' + required: + - data + type: object + listAppearances_200_response: + example: + pagination: + total: 0 + size: 0 + index: 1 + data: + - is_active: true + color: + r: 20 + b: 37 + g: 153 + updated_at: 0 + favicon: https://openapi-generator.tech + footer: footer + name: name + tab_title: tab_title + logo: https://openapi-generator.tech + created_at: 0 + canonical: canonical + display_name: display_name + - is_active: true + color: + r: 20 + b: 37 + g: 153 + updated_at: 0 + favicon: https://openapi-generator.tech + footer: footer + name: name + tab_title: tab_title + logo: https://openapi-generator.tech + created_at: 0 + canonical: canonical + display_name: display_name + properties: + data: + items: + $ref: '#/components/schemas/Appearance' + type: array + pagination: + $ref: '#/components/schemas/Pagination' + required: + - data + - pagination + type: object + getChildren_200_response: + example: + pagination: + total: 0 + size: 0 + index: 1 + data: + - quotas: true + has_children: true + can_create_appearance: true + created_at: 0 + canonical: canonical + subscription: + expires_at: 0 + current_members: 0 + members_count: 0 + plan: + name: name + canonical: canonical + ci_team_name: ci_team_name + ci_url: ci_url + can_children_create_appearance: true + appearance: + is_active: true + color: + r: 20 + b: 37 + g: 153 + updated_at: 0 + favicon: https://openapi-generator.tech + footer: footer + name: name + tab_title: tab_title + logo: https://openapi-generator.tech + created_at: 0 + canonical: canonical + display_name: display_name + blocked: + - blocked + - blocked + updated_at: 0 + name: name + mfa_enabled: true + id: 1 + admins: + - invitation_resent_at: 0 + invitation_state: pending + last_login_at: 0 + role: + default: true + updated_at: 0 + name: name + description: description + created_at: 0 + rules: + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + id: 1 + canonical: canonical + picture_url: https://openapi-generator.tech + invited_at: 0 + created_at: 0 + invited_by: null + given_name: given_name + locale: en + updated_at: 0 + invitation_email: invitation_email + mfa_enabled: true + id: 1 + family_name: family_name + email: email + username: username + - invitation_resent_at: 0 + invitation_state: pending + last_login_at: 0 + role: + default: true + updated_at: 0 + name: name + description: description + created_at: 0 + rules: + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + id: 1 + canonical: canonical + picture_url: https://openapi-generator.tech + invited_at: 0 + created_at: 0 + invited_by: null + given_name: given_name + locale: en + updated_at: 0 + invitation_email: invitation_email + mfa_enabled: true + id: 1 + family_name: family_name + email: email + username: username + ci_port: ci_port + - quotas: true + has_children: true + can_create_appearance: true + created_at: 0 + canonical: canonical + subscription: + expires_at: 0 + current_members: 0 + members_count: 0 + plan: + name: name + canonical: canonical + ci_team_name: ci_team_name + ci_url: ci_url + can_children_create_appearance: true + appearance: + is_active: true + color: + r: 20 + b: 37 + g: 153 + updated_at: 0 + favicon: https://openapi-generator.tech + footer: footer + name: name + tab_title: tab_title + logo: https://openapi-generator.tech + created_at: 0 + canonical: canonical + display_name: display_name + blocked: + - blocked + - blocked + updated_at: 0 + name: name + mfa_enabled: true + id: 1 + admins: + - invitation_resent_at: 0 + invitation_state: pending + last_login_at: 0 + role: + default: true + updated_at: 0 + name: name + description: description + created_at: 0 + rules: + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + id: 1 + canonical: canonical + picture_url: https://openapi-generator.tech + invited_at: 0 + created_at: 0 + invited_by: null + given_name: given_name + locale: en + updated_at: 0 + invitation_email: invitation_email + mfa_enabled: true + id: 1 + family_name: family_name + email: email + username: username + - invitation_resent_at: 0 + invitation_state: pending + last_login_at: 0 + role: + default: true + updated_at: 0 + name: name + description: description + created_at: 0 + rules: + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + id: 1 + canonical: canonical + picture_url: https://openapi-generator.tech + invited_at: 0 + created_at: 0 + invited_by: null + given_name: given_name + locale: en + updated_at: 0 + invitation_email: invitation_email + mfa_enabled: true + id: 1 + family_name: family_name + email: email + username: username + ci_port: ci_port + properties: + data: + items: + $ref: '#/components/schemas/Organization' + type: array + pagination: + $ref: '#/components/schemas/Pagination' + required: + - data + - pagination + type: object + createChild_200_response: + example: + data: + quotas: true + has_children: true + can_create_appearance: true + created_at: 0 + canonical: canonical + subscription: + expires_at: 0 + current_members: 0 + members_count: 0 + plan: + name: name + canonical: canonical + ci_team_name: ci_team_name + ci_url: ci_url + can_children_create_appearance: true + appearance: + is_active: true + color: + r: 20 + b: 37 + g: 153 + updated_at: 0 + favicon: https://openapi-generator.tech + footer: footer + name: name + tab_title: tab_title + logo: https://openapi-generator.tech + created_at: 0 + canonical: canonical + display_name: display_name + blocked: + - blocked + - blocked + updated_at: 0 + name: name + mfa_enabled: true + id: 1 + admins: + - invitation_resent_at: 0 + invitation_state: pending + last_login_at: 0 + role: + default: true + updated_at: 0 + name: name + description: description + created_at: 0 + rules: + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + id: 1 + canonical: canonical + picture_url: https://openapi-generator.tech + invited_at: 0 + created_at: 0 + invited_by: null + given_name: given_name + locale: en + updated_at: 0 + invitation_email: invitation_email + mfa_enabled: true + id: 1 + family_name: family_name + email: email + username: username + - invitation_resent_at: 0 + invitation_state: pending + last_login_at: 0 + role: + default: true + updated_at: 0 + name: name + description: description + created_at: 0 + rules: + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + id: 1 + canonical: canonical + picture_url: https://openapi-generator.tech + invited_at: 0 + created_at: 0 + invited_by: null + given_name: given_name + locale: en + updated_at: 0 + invitation_email: invitation_email + mfa_enabled: true + id: 1 + family_name: family_name + email: email + username: username + ci_port: ci_port + properties: + data: + $ref: '#/components/schemas/Organization' + required: + - data + type: object + getCloudCostManagementDashboard_200_response: + example: + data: + projects: + co2e: 2.3021358869347655 + cost: 5.962133916683182 + buckets: + - co2e: 3.616076749251911 + cost: 7.061401241503109 + buckets: + - null + - null + value: value + kwh: 9.301444243932576 + - co2e: 3.616076749251911 + cost: 7.061401241503109 + buckets: + - null + - null + value: value + kwh: 9.301444243932576 + kwh: 5.637376656633329 + total_cost: 0.8008281904610115 + total_co2e: 1.4658129805029452 + filter_values: + instance_types: + - instance_types + - instance_types + master_accounts: + - master_accounts + - master_accounts + projects: + - projects + - projects + regions: + - regions + - regions + environments: + - environments + - environments + resources: + - resources + - resources + services: + - services + - services + linked_accounts: + - linked_accounts + - linked_accounts + tags: + key: + - tags + - tags + linked_accounts_with_cp: '{}' + master_accounts_with_cp: '{}' + categories: + - categories + - categories + providers: + - providers + - providers + currencies: + - currencies + - currencies + total_kwh: 6.027456183070403 + providers: + co2e: 2.3021358869347655 + cost: 5.962133916683182 + buckets: + - co2e: 3.616076749251911 + cost: 7.061401241503109 + buckets: + - null + - null + value: value + kwh: 9.301444243932576 + - co2e: 3.616076749251911 + cost: 7.061401241503109 + buckets: + - null + - null + value: value + kwh: 9.301444243932576 + kwh: 5.637376656633329 + project_resources: + - cost: 2.027123023002322 + project: project + providers: + - co2e: 1.2315135367772556 + cost: 4.145608029883936 + provider: provider + resources: 1 + new_resources: 1 + kwh: 7.386281948385884 + - co2e: 1.2315135367772556 + cost: 4.145608029883936 + provider: provider + resources: 1 + new_resources: 1 + kwh: 7.386281948385884 + - cost: 2.027123023002322 + project: project + providers: + - co2e: 1.2315135367772556 + cost: 4.145608029883936 + provider: provider + resources: 1 + new_resources: 1 + kwh: 7.386281948385884 + - co2e: 1.2315135367772556 + cost: 4.145608029883936 + provider: provider + resources: 1 + new_resources: 1 + kwh: 7.386281948385884 + properties: + data: + $ref: '#/components/schemas/CloudCostManagementDashboard' + required: + - data + type: object + getCloudCostManagementFilterVaules_200_response: + example: + data: + instance_types: + - instance_types + - instance_types + master_accounts: + - master_accounts + - master_accounts + projects: + - projects + - projects + regions: + - regions + - regions + environments: + - environments + - environments + resources: + - resources + - resources + services: + - services + - services + linked_accounts: + - linked_accounts + - linked_accounts + tags: + key: + - tags + - tags + linked_accounts_with_cp: '{}' + master_accounts_with_cp: '{}' + categories: + - categories + - categories + providers: + - providers + - providers + currencies: + - currencies + - currencies + properties: + data: + $ref: '#/components/schemas/CloudCostManagementFilterValues' + required: + - data + type: object + getCloudCostManagementProjectsDashboard_200_response: + example: + data: + projects: + co2e: 2.3021358869347655 + cost: 5.962133916683182 + buckets: + - co2e: 3.616076749251911 + cost: 7.061401241503109 + buckets: + - null + - null + value: value + kwh: 9.301444243932576 + - co2e: 3.616076749251911 + cost: 7.061401241503109 + buckets: + - null + - null + value: value + kwh: 9.301444243932576 + kwh: 5.637376656633329 + project_providers: + co2e: 2.3021358869347655 + cost: 5.962133916683182 + buckets: + - co2e: 3.616076749251911 + cost: 7.061401241503109 + buckets: + - null + - null + value: value + kwh: 9.301444243932576 + - co2e: 3.616076749251911 + cost: 7.061401241503109 + buckets: + - null + - null + value: value + kwh: 9.301444243932576 + kwh: 5.637376656633329 + properties: + data: + $ref: '#/components/schemas/CloudCostManagementProjectsDashboard' + required: + - data + type: object + getCloudCostManagementProvider_200_response: + example: + data: + filter_values: + instance_types: + - instance_types + - instance_types + master_accounts: + - master_accounts + - master_accounts + projects: + - projects + - projects + regions: + - regions + - regions + environments: + - environments + - environments + resources: + - resources + - resources + services: + - services + - services + linked_accounts: + - linked_accounts + - linked_accounts + tags: + key: + - tags + - tags + linked_accounts_with_cp: '{}' + master_accounts_with_cp: '{}' + categories: + - categories + - categories + providers: + - providers + - providers + currencies: + - currencies + - currencies + cost_histogram: + co2e: 2.3021358869347655 + cost: 5.962133916683182 + buckets: + - co2e: 3.616076749251911 + cost: 7.061401241503109 + buckets: + - null + - null + value: value + kwh: 9.301444243932576 + - co2e: 3.616076749251911 + cost: 7.061401241503109 + buckets: + - null + - null + value: value + kwh: 9.301444243932576 + kwh: 5.637376656633329 + properties: + data: + $ref: '#/components/schemas/CloudCostManagementProviderDetails' + required: + - data + type: object + getCloudCostManagementProviderDetails_200_response: + example: + data: + co2e: 2.3021358869347655 + cost: 5.962133916683182 + buckets: + - co2e: 3.616076749251911 + cost: 7.061401241503109 + buckets: + - null + - null + value: value + kwh: 9.301444243932576 + - co2e: 3.616076749251911 + cost: 7.061401241503109 + buckets: + - null + - null + value: value + kwh: 9.301444243932576 + kwh: 5.637376656633329 + properties: + data: + $ref: '#/components/schemas/CloudCostManagementHistogram' + required: + - data + type: object + getCloudCostManagementProviders_200_response: + example: + data: + cost_histogram: + co2e: 2.3021358869347655 + cost: 5.962133916683182 + buckets: + - co2e: 3.616076749251911 + cost: 7.061401241503109 + buckets: + - null + - null + value: value + kwh: 9.301444243932576 + - co2e: 3.616076749251911 + cost: 7.061401241503109 + buckets: + - null + - null + value: value + kwh: 9.301444243932576 + kwh: 5.637376656633329 + properties: + data: + $ref: '#/components/schemas/CloudCostManagementProviders' + required: + - data + type: object + getCloudCostManagementTags_200_response: + example: + data: + - data + - data + properties: + data: + items: + type: string + type: array + required: + - data + type: object + getCloudCostManagementAccounts_200_response: + example: + pagination: + total: 0 + size: 0 + index: 1 + data: + - status_message: status_message + phase: green + external_backend: + default: true + updated_at: 0 + purpose: purpose + configuration: + engine: engine + jwt: jwt + credential_canonical: credential_canonical + created_at: 0 + project_canonical: project_canonical + id: 1 + environment_canonical: environment_canonical + created_at: 0 + last_ingestion_started_at: 0 + cloud_provider: + regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + canonical: canonical + enabled: true + last_ingestion_ended_at: 0 + account_id: account_id + unfinalized_period: unfinalized_period + updated_at: 0 + credential: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + path: path + updated_at: 0 + keys: + - keys + - keys + name: name + description: description + created_at: 0 + in_use: + config_repositories: + - name: name + canonical: canonical + - name: name + canonical: canonical + service_catalog_sources: + - name: name + canonical: canonical + - name: name + canonical: canonical + external_backends: + - environment: + canonical: canonical + purpose: purpose + engine: engine + project: + name: name + canonical: canonical + - environment: + canonical: canonical + purpose: purpose + engine: engine + project: + name: name + canonical: canonical + id: 1 + canonical: canonical + type: ssh + parent_account_id: parent_account_id + name: name + id: 1 + status: idle + - status_message: status_message + phase: green + external_backend: + default: true + updated_at: 0 + purpose: purpose + configuration: + engine: engine + jwt: jwt + credential_canonical: credential_canonical + created_at: 0 + project_canonical: project_canonical + id: 1 + environment_canonical: environment_canonical + created_at: 0 + last_ingestion_started_at: 0 + cloud_provider: + regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + canonical: canonical + enabled: true + last_ingestion_ended_at: 0 + account_id: account_id + unfinalized_period: unfinalized_period + updated_at: 0 + credential: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + path: path + updated_at: 0 + keys: + - keys + - keys + name: name + description: description + created_at: 0 + in_use: + config_repositories: + - name: name + canonical: canonical + - name: name + canonical: canonical + service_catalog_sources: + - name: name + canonical: canonical + - name: name + canonical: canonical + external_backends: + - environment: + canonical: canonical + purpose: purpose + engine: engine + project: + name: name + canonical: canonical + - environment: + canonical: canonical + purpose: purpose + engine: engine + project: + name: name + canonical: canonical + id: 1 + canonical: canonical + type: ssh + parent_account_id: parent_account_id + name: name + id: 1 + status: idle + properties: + data: + items: + $ref: '#/components/schemas/CloudCostManagementAccount' + type: array + pagination: + $ref: '#/components/schemas/Pagination' + required: + - data + type: object + createCloudCostManagementAccount_200_response: + example: + data: + status_message: status_message + phase: green + external_backend: + default: true + updated_at: 0 + purpose: purpose + configuration: + engine: engine + jwt: jwt + credential_canonical: credential_canonical + created_at: 0 + project_canonical: project_canonical + id: 1 + environment_canonical: environment_canonical + created_at: 0 + last_ingestion_started_at: 0 + cloud_provider: + regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + canonical: canonical + enabled: true + last_ingestion_ended_at: 0 + account_id: account_id + unfinalized_period: unfinalized_period + updated_at: 0 + credential: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + path: path + updated_at: 0 + keys: + - keys + - keys + name: name + description: description + created_at: 0 + in_use: + config_repositories: + - name: name + canonical: canonical + - name: name + canonical: canonical + service_catalog_sources: + - name: name + canonical: canonical + - name: name + canonical: canonical + external_backends: + - environment: + canonical: canonical + purpose: purpose + engine: engine + project: + name: name + canonical: canonical + - environment: + canonical: canonical + purpose: purpose + engine: engine + project: + name: name + canonical: canonical + id: 1 + canonical: canonical + type: ssh + parent_account_id: parent_account_id + name: name + id: 1 + status: idle + properties: + data: + $ref: '#/components/schemas/CloudCostManagementAccount' + required: + - data + type: object + getCloudCostManagementAccountsHasParent_200_response: + example: + data: + status_message: status_message + account_id: account_id + updated_at: 0 + name: name + created_at: 0 + last_ingestion_started_at: 0 + cloud_provider: + regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + canonical: canonical + id: 1 + enabled: true + last_ingestion_ended_at: 0 + status: idle + properties: + data: + $ref: '#/components/schemas/CloudCostManagementAccountParent' + required: + - data + type: object + getCloudCostManagementLinkedAccounts_200_response: + example: + data: + - account_id: account_id + name: name + cloud_provider: cloud_provider + id: 1 + - account_id: account_id + name: name + cloud_provider: cloud_provider + id: 1 + properties: + data: + items: + $ref: '#/components/schemas/CloudCostManagementLinkedAccount' + type: array + required: + - data + type: object + getCloudCostManagementTagMapping_200_response: + example: + data: + updated_at: 0 + environment_regex: environment_regex + all_tags: + - all_tags + - all_tags + created_at: 0 + id: 1 + project_regex: project_regex + environment_tags: + - environment_tags + - environment_tags + project_tags: + - project_tags + - project_tags + properties: + data: + $ref: '#/components/schemas/CloudCostManagementTagMapping' + required: + - data + type: object + getCloudProviders_200_response: + example: + pagination: + total: 0 + size: 0 + index: 1 + data: + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + properties: + data: + items: + $ref: '#/components/schemas/CloudProvider' + type: array + pagination: + $ref: '#/components/schemas/Pagination' + required: + - data + - pagination + type: object + listConfigRepositories_200_response: + example: + data: + - default: true + updated_at: 0 + credential_canonical: credential_canonical + name: name + created_at: 0 + id: 1 + canonical: canonical + branch: branch + url: url + - default: true + updated_at: 0 + credential_canonical: credential_canonical + name: name + created_at: 0 + id: 1 + canonical: canonical + branch: branch + url: url + properties: + data: + items: + $ref: '#/components/schemas/ConfigRepository' + type: array + required: + - data + type: object + createConfigRepository_200_response: + example: + data: + default: true + updated_at: 0 + credential_canonical: credential_canonical + name: name + created_at: 0 + id: 1 + canonical: canonical + branch: branch + url: url + properties: + data: + $ref: '#/components/schemas/ConfigRepository' + required: + - data + type: object + costEstimateTfPlan_200_response: + example: + data: + prior_hourly_cost: prior_hourly_cost + resource_estimates: + - prior_hourly_cost: prior_hourly_cost + image: https://openapi-generator.tech + components: + - unit: unit + rate: rate + prior: + quantity: 0 + cost: cost + hourly_cost: hourly_cost + details: + - details + - details + usage: true + label: label + planned: + quantity: 0 + cost: cost + hourly_cost: hourly_cost + details: + - details + - details + - unit: unit + rate: rate + prior: + quantity: 0 + cost: cost + hourly_cost: hourly_cost + details: + - details + - details + usage: true + label: label + planned: + quantity: 0 + cost: cost + hourly_cost: hourly_cost + details: + - details + - details + address: address + provider: provider + planned_hourly_cost: planned_hourly_cost + prior_cost: prior_cost + type: type + planned_cost: planned_cost + - prior_hourly_cost: prior_hourly_cost + image: https://openapi-generator.tech + components: + - unit: unit + rate: rate + prior: + quantity: 0 + cost: cost + hourly_cost: hourly_cost + details: + - details + - details + usage: true + label: label + planned: + quantity: 0 + cost: cost + hourly_cost: hourly_cost + details: + - details + - details + - unit: unit + rate: rate + prior: + quantity: 0 + cost: cost + hourly_cost: hourly_cost + details: + - details + - details + usage: true + label: label + planned: + quantity: 0 + cost: cost + hourly_cost: hourly_cost + details: + - details + - details + address: address + provider: provider + planned_hourly_cost: planned_hourly_cost + prior_cost: prior_cost + type: type + planned_cost: planned_cost + planned_hourly_cost: planned_hourly_cost + name: name + prior_cost: prior_cost + planned_cost: planned_cost + skipped_resource_addresses: + - skipped_resource_addresses + - skipped_resource_addresses + info: info + properties: + data: + $ref: '#/components/schemas/CostEstimationResult' + required: + - data + type: object + listCredentials_200_response: + example: + pagination: + total: 0 + size: 0 + index: 1 + data: + - owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + path: path + updated_at: 0 + keys: + - keys + - keys + name: name + description: description + created_at: 0 + in_use: + config_repositories: + - name: name + canonical: canonical + - name: name + canonical: canonical + service_catalog_sources: + - name: name + canonical: canonical + - name: name + canonical: canonical + external_backends: + - environment: + canonical: canonical + purpose: purpose + engine: engine + project: + name: name + canonical: canonical + - environment: + canonical: canonical + purpose: purpose + engine: engine + project: + name: name + canonical: canonical + id: 1 + canonical: canonical + type: ssh + - owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + path: path + updated_at: 0 + keys: + - keys + - keys + name: name + description: description + created_at: 0 + in_use: + config_repositories: + - name: name + canonical: canonical + - name: name + canonical: canonical + service_catalog_sources: + - name: name + canonical: canonical + - name: name + canonical: canonical + external_backends: + - environment: + canonical: canonical + purpose: purpose + engine: engine + project: + name: name + canonical: canonical + - environment: + canonical: canonical + purpose: purpose + engine: engine + project: + name: name + canonical: canonical + id: 1 + canonical: canonical + type: ssh + properties: + data: + items: + $ref: '#/components/schemas/CredentialSimple' + type: array + pagination: + $ref: '#/components/schemas/Pagination' + required: + - data + - pagination + type: object + createCredential_200_response: + example: + data: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + path: path + updated_at: 0 + keys: + - keys + - keys + name: name + raw: + tenant_id: tenant_id + json_key: json_key + raw: '{}' + client_id: client_id + subscription_id: subscription_id + domain_id: domain_id + secret_key: secret_key + environment: public + password: password + access_key: access_key + account_name: account_name + ssh_key: ssh_key + client_secret: client_secret + auth_url: auth_url + ca_cert: ca_cert + username: username + description: description + created_at: 0 + in_use: + config_repositories: + - name: name + canonical: canonical + - name: name + canonical: canonical + service_catalog_sources: + - name: name + canonical: canonical + - name: name + canonical: canonical + external_backends: + - environment: + canonical: canonical + purpose: purpose + engine: engine + project: + name: name + canonical: canonical + - environment: + canonical: canonical + purpose: purpose + engine: engine + project: + name: name + canonical: canonical + id: 1 + canonical: canonical + type: ssh + properties: + data: + $ref: '#/components/schemas/Credential' + required: + - data + type: object + getCredentialOptions_200_response: + example: + data: '{}' + properties: + data: + description: The credential options. The shape of the items could be anything, since each service can have very different options. + type: object + required: + - data + type: object + getEnvironments_200_response: + example: + pagination: + total: 0 + size: 0 + index: 1 + data: + - use_case: use_case + updated_at: 0 + color: color + icon: icon + created_at: 0 + cloud_provider: + regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + id: 1 + canonical: canonical + - use_case: use_case + updated_at: 0 + color: color + icon: icon + created_at: 0 + cloud_provider: + regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + id: 1 + canonical: canonical + properties: + data: + items: + $ref: '#/components/schemas/Environment' + type: array + pagination: + $ref: '#/components/schemas/Pagination' + required: + - data + - pagination + type: object + getEvents_200_response: + description: The list of log lines + example: + data: + - severity: info + color: color + icon: icon + id: 0 + type: Cycloid + title: title + message: message + timestamp: 6 + tags: + - value: value + key: key + - value: value + key: key + - severity: info + color: color + icon: icon + id: 0 + type: Cycloid + title: title + message: message + timestamp: 6 + tags: + - value: value + key: key + - value: value + key: key + properties: + data: + items: + $ref: '#/components/schemas/Event' + type: array + required: + - data + type: object + sendEvent_200_response: + description: The newly created event + example: + data: + severity: info + color: color + icon: icon + id: 0 + type: Cycloid + title: title + message: message + timestamp: 6 + tags: + - value: value + key: key + - value: value + key: key + properties: + data: + $ref: '#/components/schemas/Event' + required: + - data + type: object + getEventsTags_200_response: + description: The list of tags with associated set of values + example: + data: '{}' + properties: + data: + properties: {} + type: object + required: + - data + type: object + getExternalBackends_200_response: + example: + pagination: + total: 0 + size: 0 + index: 1 + data: + - default: true + updated_at: 0 + purpose: purpose + configuration: + engine: engine + jwt: jwt + credential_canonical: credential_canonical + created_at: 0 + project_canonical: project_canonical + id: 1 + environment_canonical: environment_canonical + - default: true + updated_at: 0 + purpose: purpose + configuration: + engine: engine + jwt: jwt + credential_canonical: credential_canonical + created_at: 0 + project_canonical: project_canonical + id: 1 + environment_canonical: environment_canonical + properties: + data: + items: + $ref: '#/components/schemas/ExternalBackend' + type: array + pagination: + $ref: '#/components/schemas/Pagination' + required: + - data + type: object + createExternalBackend_200_response: + example: + data: + default: true + updated_at: 0 + purpose: purpose + configuration: + engine: engine + jwt: jwt + credential_canonical: credential_canonical + created_at: 0 + project_canonical: project_canonical + id: 1 + environment_canonical: environment_canonical + properties: + data: + $ref: '#/components/schemas/ExternalBackend' + required: + - data + type: object + createFormsConfig_200_response: + example: + data: '{}' + properties: + data: + properties: {} + type: object + required: + - data + type: object + validateFormsFile_200_response: + example: + data: + forms: + use_cases: + - name: name + sections: + - name: name + groups: + - technologies: + - technologies + - technologies + condition: condition + name: name + vars: + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + folded: true + - technologies: + - technologies + - technologies + condition: condition + name: name + vars: + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + folded: true + - name: name + groups: + - technologies: + - technologies + - technologies + condition: condition + name: name + vars: + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + folded: true + - technologies: + - technologies + - technologies + condition: condition + name: name + vars: + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + folded: true + - name: name + sections: + - name: name + groups: + - technologies: + - technologies + - technologies + condition: condition + name: name + vars: + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + folded: true + - technologies: + - technologies + - technologies + condition: condition + name: name + vars: + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + folded: true + - name: name + groups: + - technologies: + - technologies + - technologies + condition: condition + name: name + vars: + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + folded: true + - technologies: + - technologies + - technologies + condition: condition + name: name + vars: + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + folded: true + version: version + errors: + - errors + - errors + properties: + data: + $ref: '#/components/schemas/FormsValidationResult' + required: + - data + type: object + getProjectImport_200_response: + example: + data: + service_catalog_ref: service_catalog_ref + project_canonical: project_canonical + error: error + logs: logs + status: succeeded + properties: + data: + $ref: '#/components/schemas/InfraImport' + required: + - data + type: object + getInfraPolicies_200_response: + example: + pagination: + total: 0 + size: 0 + index: 1 + data: + - owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + severity: critical + updated_at: 1 + name: name + created_at: 6 + description: description + id: 1 + canonical: canonical + body: body + enabled: true + - owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + severity: critical + updated_at: 1 + name: name + created_at: 6 + description: description + id: 1 + canonical: canonical + body: body + enabled: true + properties: + data: + items: + $ref: '#/components/schemas/InfraPolicy' + type: array + pagination: + $ref: '#/components/schemas/Pagination' + required: + - data + type: object + createInfraPolicy_200_response: + example: + data: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + severity: critical + updated_at: 1 + name: name + created_at: 6 + description: description + id: 1 + canonical: canonical + body: body + enabled: true + properties: + data: + $ref: '#/components/schemas/InfraPolicy' + required: + - data + type: object + validateProjectInfraPolicies_200_response: + example: + data: + advisories: + - reasons: + - reasons + - reasons + infra_policy: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + severity: critical + updated_at: 1 + name: name + created_at: 6 + description: description + id: 1 + canonical: canonical + body: body + enabled: true + - reasons: + - reasons + - reasons + infra_policy: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + severity: critical + updated_at: 1 + name: name + created_at: 6 + description: description + id: 1 + canonical: canonical + body: body + enabled: true + criticals: + - reasons: + - reasons + - reasons + infra_policy: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + severity: critical + updated_at: 1 + name: name + created_at: 6 + description: description + id: 1 + canonical: canonical + body: body + enabled: true + - reasons: + - reasons + - reasons + infra_policy: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + severity: critical + updated_at: 1 + name: name + created_at: 6 + description: description + id: 1 + canonical: canonical + body: body + enabled: true + warnings: + - reasons: + - reasons + - reasons + infra_policy: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + severity: critical + updated_at: 1 + name: name + created_at: 6 + description: description + id: 1 + canonical: canonical + body: body + enabled: true + - reasons: + - reasons + - reasons + infra_policy: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + severity: critical + updated_at: 1 + name: name + created_at: 6 + description: description + id: 1 + canonical: canonical + body: body + enabled: true + properties: + data: + $ref: '#/components/schemas/InfraPoliciesValidationResult' + type: object + getRunningInfraAWSBuckets_200_response: + description: Although this response contains a collection of items, it doesn't have pagination because the AWS SDK, to request the S3 Buckets resources, doesn't provide any pagination mechanism. + example: + data: + - null + - null + properties: + data: + items: + $ref: '#/components/schemas/AWSInfrastructureResourceBucket' + type: array + required: + - data + type: object + getRunningInfraAWS_200_response: + example: + data: + snapshots: + total_amount: 0 + db_instances: + total_amount: 0 + security_groups: + total_amount: 0 + images: + total_amount: 0 + instances: + total_amount: 0 + load_balancers_v1: + total_amount: 0 + load_balancers_v2: + total_amount: 0 + buckets: + total_amount: 0 + volumes: + total_amount: 0 + subnets: + total_amount: 0 + cache_clusters: + total_amount: 0 + vpcs: + total_amount: 0 + properties: + data: + $ref: '#/components/schemas/AWSInfrastructureResourcesAggregation' + required: + - data + type: object + getRunningInfraAWSDBInstances_200_response: + example: + pagination: + next: next + data: + - null + - null + properties: + data: + items: + $ref: '#/components/schemas/AWSInfrastructureResourceDBInstance' + type: array + pagination: + $ref: '#/components/schemas/PaginationAWS' + required: + - data + type: object + getRunningInfraAWSElasticacheClusters_200_response: + example: + pagination: + next: next + data: + - null + - null + properties: + data: + items: + $ref: '#/components/schemas/AWSInfrastructureResourceElasticacheCluster' + type: array + pagination: + $ref: '#/components/schemas/PaginationAWS' + required: + - data + type: object + getRunningInfraAWSImages_200_response: + description: Although this response contains a collection of items, it doesn't have pagination because the AWS SDK, to request the images resources, doesn't provide any pagination mechanism. + example: + data: + - null + - null + properties: + data: + items: + $ref: '#/components/schemas/AWSInfrastructureResourceImage' + type: array + required: + - data + type: object + getRunningInfraAWSInstances_200_response: + example: + pagination: + next: next + data: + - null + - null + properties: + data: + items: + $ref: '#/components/schemas/AWSInfrastructureResourceInstance' + type: array + pagination: + $ref: '#/components/schemas/PaginationAWS' + required: + - data + type: object + getRunningInfraAWSLoadBalancersV1_200_response: + example: + pagination: + next: next + data: + - null + - null + properties: + data: + items: + $ref: '#/components/schemas/AWSInfrastructureResourceLoadBalancerV1' + type: array + pagination: + $ref: '#/components/schemas/PaginationAWS' + required: + - data + type: object + getRunningInfraAWSLoadBalancersV2_200_response: + example: + pagination: + next: next + data: + - null + - null + properties: + data: + items: + $ref: '#/components/schemas/AWSInfrastructureResourceLoadBalancerV2' + type: array + pagination: + $ref: '#/components/schemas/PaginationAWS' + required: + - data + type: object + getRunningInfraAWSSecurityGroups_200_response: + example: + pagination: + next: next + data: + - null + - null + properties: + data: + items: + $ref: '#/components/schemas/AWSInfrastructureResourceSecurityGroup' + type: array + pagination: + $ref: '#/components/schemas/PaginationAWS' + required: + - data + type: object + getRunningInfraAWSSnapshots_200_response: + example: + pagination: + next: next + data: + - null + - null + properties: + data: + items: + $ref: '#/components/schemas/AWSInfrastructureResourceSnapshot' + type: array + pagination: + $ref: '#/components/schemas/PaginationAWS' + required: + - data + type: object + getRunningInfraAWSSubnets_200_response: + description: Although this response contains a collection of items, it doesn't have pagination because the AWS SDK, to request the subnets resources, doesn't provide any pagination mechanism. + example: + data: + - null + - null + properties: + data: + items: + $ref: '#/components/schemas/AWSInfrastructureResourceSubnet' + type: array + required: + - data + type: object + getRunningInfraAWSVolumes_200_response: + example: + pagination: + next: next + data: + - null + - null + properties: + data: + items: + $ref: '#/components/schemas/AWSInfrastructureResourceVolume' + type: array + pagination: + $ref: '#/components/schemas/PaginationAWS' + required: + - data + type: object + getRunningInfraAWSVPCs_200_response: + description: Although this response contains a collection of items, it doesn't have pagination because the AWS SDK, to request the VPCs resources, doesn't provide any pagination mechanism. + example: + data: + - null + - null + properties: + data: + items: + $ref: '#/components/schemas/AWSInfrastructureResourceVPC' + type: array + required: + - data + type: object + getState_200_response: + description: The state of an organization + example: + data: '{}' + properties: + data: + properties: {} + type: object + required: + - data + type: object + listInventoryResources_200_response: + example: + pagination: + total: 0 + size: 0 + index: 1 + data: + - image: https://openapi-generator.tech + short_description: short_description + memory: 0 + keywords: + - keywords + - keywords + module: module + cpu: 0 + description: description + project_canonical: project_canonical + label: label + storage: 0 + type: type + environment_canonical: environment_canonical + custom_attributes: '{}' + mode: mode + provider: provider + name: name + attributes: '{}' + id: 1 + category: category + - image: https://openapi-generator.tech + short_description: short_description + memory: 0 + keywords: + - keywords + - keywords + module: module + cpu: 0 + description: description + project_canonical: project_canonical + label: label + storage: 0 + type: type + environment_canonical: environment_canonical + custom_attributes: '{}' + mode: mode + provider: provider + name: name + attributes: '{}' + id: 1 + category: category + filters: '{}' + properties: + data: + items: + $ref: '#/components/schemas/InventoryResource' + type: array + pagination: + $ref: '#/components/schemas/Pagination' + filters: + description: Filters is the possible values the filters can have on list requests + title: Filters + type: object + required: + - data + - pagination + type: object + listResourceLabels_200_response: + example: + data: + - memory: 0 + name: name + cpu: 0 + storage: 0 + - memory: 0 + name: name + cpu: 0 + storage: 0 + properties: + data: + items: + $ref: '#/components/schemas/InventoryResourceLabel' + type: array + required: + - data + type: object + lockState_200_response: + description: The Inventory from the Project's environment + example: + data: + created: created + id: id + operation: operation + version: version + info: info + who: who + properties: + data: + $ref: '#/components/schemas/StateLock' + required: + - data + type: object + getInventoryResource_200_response: + example: + data: + image: https://openapi-generator.tech + short_description: short_description + memory: 0 + keywords: + - keywords + - keywords + module: module + cpu: 0 + description: description + project_canonical: project_canonical + label: label + storage: 0 + type: type + environment_canonical: environment_canonical + custom_attributes: '{}' + mode: mode + provider: provider + name: name + attributes: '{}' + id: 1 + category: category + properties: + data: + $ref: '#/components/schemas/InventoryResource' + required: + - data + type: object + getKpis_200_response: + example: + pagination: + total: 0 + size: 0 + index: 1 + data: + - widget: bars + description: description + created_at: 0 + project_canonical: project_canonical + data_set: + - '{}' + - '{}' + canonical: canonical + type: build_avg_time + environment_canonical: environment_canonical + error: error + pipeline_name: pipeline_name + job_name: job_name + updated_at: 0 + name: name + id: 1 + config: '{}' + favorite: true + - widget: bars + description: description + created_at: 0 + project_canonical: project_canonical + data_set: + - '{}' + - '{}' + canonical: canonical + type: build_avg_time + environment_canonical: environment_canonical + error: error + pipeline_name: pipeline_name + job_name: job_name + updated_at: 0 + name: name + id: 1 + config: '{}' + favorite: true + properties: + data: + items: + $ref: '#/components/schemas/KPI' + type: array + pagination: + $ref: '#/components/schemas/Pagination' + required: + - data + type: object + createKpi_200_response: + example: + data: + widget: bars + description: description + created_at: 0 + project_canonical: project_canonical + data_set: + - '{}' + - '{}' + canonical: canonical + type: build_avg_time + environment_canonical: environment_canonical + error: error + pipeline_name: pipeline_name + job_name: job_name + updated_at: 0 + name: name + id: 1 + config: '{}' + favorite: true + properties: + data: + $ref: '#/components/schemas/KPI' + required: + - data + type: object + getLicence_200_response: + example: + data: + on_prem: true + email_address: email_address + expires_at: 0 + updated_at: 0 + current_members: 0 + company_name: company_name + created_at: 0 + members_count: 0 + version: version + key: key + properties: + data: + $ref: '#/components/schemas/Licence' + required: + - data + type: object + getProjEnvLogSources_200_response: + description: The list of log sources. + example: + data: + - id: id + - id: id + properties: + data: + items: + $ref: '#/components/schemas/LogSource' + type: array + required: + - data + type: object + getProjEnvLogEntries_200_response: + description: The list of log lines + example: + data: + - host: host + message: message + timestamp: timestamp + - host: host + message: message + timestamp: timestamp + properties: + data: + items: + $ref: '#/components/schemas/LogSourceEntry' + type: array + required: + - data + type: object + getOrgMembers_200_response: + example: + pagination: + total: 0 + size: 0 + index: 1 + data: + - invitation_resent_at: 0 + invitation_state: pending + last_login_at: 0 + role: + default: true + updated_at: 0 + name: name + description: description + created_at: 0 + rules: + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + id: 1 + canonical: canonical + picture_url: https://openapi-generator.tech + invited_at: 0 + created_at: 0 + invited_by: null + given_name: given_name + locale: en + updated_at: 0 + invitation_email: invitation_email + mfa_enabled: true + id: 1 + family_name: family_name + email: email + username: username + - invitation_resent_at: 0 + invitation_state: pending + last_login_at: 0 + role: + default: true + updated_at: 0 + name: name + description: description + created_at: 0 + rules: + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + id: 1 + canonical: canonical + picture_url: https://openapi-generator.tech + invited_at: 0 + created_at: 0 + invited_by: null + given_name: given_name + locale: en + updated_at: 0 + invitation_email: invitation_email + mfa_enabled: true + id: 1 + family_name: family_name + email: email + username: username + properties: + data: + items: + $ref: '#/components/schemas/MemberOrg' + type: array + pagination: + $ref: '#/components/schemas/Pagination' + required: + - data + - pagination + type: object + inviteUserToOrgMember_200_response: + example: + data: + invitation_resent_at: 0 + invitation_state: pending + last_login_at: 0 + role: + default: true + updated_at: 0 + name: name + description: description + created_at: 0 + rules: + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + id: 1 + canonical: canonical + picture_url: https://openapi-generator.tech + invited_at: 0 + created_at: 0 + invited_by: null + given_name: given_name + locale: en + updated_at: 0 + invitation_email: invitation_email + mfa_enabled: true + id: 1 + family_name: family_name + email: email + username: username + properties: + data: + $ref: '#/components/schemas/MemberOrg' + required: + - data + type: object + getPendingMemberInvitation_200_response: + example: + data: + email: email + properties: + data: + $ref: '#/components/schemas/PendingMemberInvitation' + required: + - data + type: object + getPipelines_200_response: + example: + pagination: + total: 0 + size: 0 + index: 1 + data: + - paused: true + jobs: + - outputs: + - resource: resource + name: name + - resource: resource + name: name + paused: true + next_build: + start_time: 6 + job_name: job_name + api_url: api_url + reap_time: 1 + name: name + pipeline_id: 1 + end_time: 7 + id: 1 + team_name: team_name + pipeline_name: pipeline_name + status: status + finished_build: + start_time: 6 + job_name: job_name + api_url: api_url + reap_time: 1 + name: name + pipeline_id: 1 + end_time: 7 + id: 1 + team_name: team_name + pipeline_name: pipeline_name + status: status + inputs: + - resource: resource + name: name + passed: + - passed + - passed + trigger: true + version: + pinned: + key: pinned + every: true + latest: true + - resource: resource + name: name + passed: + - passed + - passed + trigger: true + version: + pinned: + key: pinned + every: true + latest: true + has_new_inputs: true + groups: + - groups + - groups + disable_manual_trigger: true + team_name: team_name + pipeline_name: pipeline_name + first_logged_build_id: 1 + name: name + pipeline_id: 4 + id: 7 + transition_build: + start_time: 6 + job_name: job_name + api_url: api_url + reap_time: 1 + name: name + pipeline_id: 1 + end_time: 7 + id: 1 + team_name: team_name + pipeline_name: pipeline_name + status: status + - outputs: + - resource: resource + name: name + - resource: resource + name: name + paused: true + next_build: + start_time: 6 + job_name: job_name + api_url: api_url + reap_time: 1 + name: name + pipeline_id: 1 + end_time: 7 + id: 1 + team_name: team_name + pipeline_name: pipeline_name + status: status + finished_build: + start_time: 6 + job_name: job_name + api_url: api_url + reap_time: 1 + name: name + pipeline_id: 1 + end_time: 7 + id: 1 + team_name: team_name + pipeline_name: pipeline_name + status: status + inputs: + - resource: resource + name: name + passed: + - passed + - passed + trigger: true + version: + pinned: + key: pinned + every: true + latest: true + - resource: resource + name: name + passed: + - passed + - passed + trigger: true + version: + pinned: + key: pinned + every: true + latest: true + has_new_inputs: true + groups: + - groups + - groups + disable_manual_trigger: true + team_name: team_name + pipeline_name: pipeline_name + first_logged_build_id: 1 + name: name + pipeline_id: 4 + id: 7 + transition_build: + start_time: 6 + job_name: job_name + api_url: api_url + reap_time: 1 + name: name + pipeline_id: 1 + end_time: 7 + id: 1 + team_name: team_name + pipeline_name: pipeline_name + status: status + groups: + - jobs: + - jobs + - jobs + name: name + resources: + - resources + - resources + - jobs: + - jobs + - jobs + name: name + resources: + - resources + - resources + project: + service_catalog: + image: https://openapi-generator.tech + keywords: + - keywords + - keywords + visibility: visibility + author: author + cloud_providers: + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + description: description + created_at: 0 + import_status: succeeded + canonical: canonical + readme: readme + team: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: canonical + directory: directory + form_enabled: true + dependencies: + - ref: ref + required: true + - ref: ref + required: true + technologies: + - technology: technology + version: version + - technology: technology + version: version + blueprint: true + ref: ref + updated_at: 0 + trusted: true + name: name + organization_canonical: organization_canonical + id: 1 + service_catalog_source_canonical: service_catalog_source_canonical + quota_enabled: true + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + environments: + - use_case: use_case + updated_at: 0 + color: color + icon: icon + created_at: 0 + cloud_provider: + regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + id: 1 + canonical: canonical + - use_case: use_case + updated_at: 0 + color: color + icon: icon + created_at: 0 + cloud_provider: + regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + id: 1 + canonical: canonical + description: description + created_at: 0 + import_status: succeeded + canonical: canonical + team: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: canonical + updated_at: 0 + config_repository_canonical: config_repository_canonical + name: name + id: 1 + favorite: true + created_at: 0 + started: true + team_name: team_name + use_case: use_case + archived: true + environment: + use_case: use_case + updated_at: 0 + color: color + icon: icon + created_at: 0 + cloud_provider: + regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + id: 1 + canonical: canonical + public: true + updated_at: 0 + name: name + id: 0 + status: status + - paused: true + jobs: + - outputs: + - resource: resource + name: name + - resource: resource + name: name + paused: true + next_build: + start_time: 6 + job_name: job_name + api_url: api_url + reap_time: 1 + name: name + pipeline_id: 1 + end_time: 7 + id: 1 + team_name: team_name + pipeline_name: pipeline_name + status: status + finished_build: + start_time: 6 + job_name: job_name + api_url: api_url + reap_time: 1 + name: name + pipeline_id: 1 + end_time: 7 + id: 1 + team_name: team_name + pipeline_name: pipeline_name + status: status + inputs: + - resource: resource + name: name + passed: + - passed + - passed + trigger: true + version: + pinned: + key: pinned + every: true + latest: true + - resource: resource + name: name + passed: + - passed + - passed + trigger: true + version: + pinned: + key: pinned + every: true + latest: true + has_new_inputs: true + groups: + - groups + - groups + disable_manual_trigger: true + team_name: team_name + pipeline_name: pipeline_name + first_logged_build_id: 1 + name: name + pipeline_id: 4 + id: 7 + transition_build: + start_time: 6 + job_name: job_name + api_url: api_url + reap_time: 1 + name: name + pipeline_id: 1 + end_time: 7 + id: 1 + team_name: team_name + pipeline_name: pipeline_name + status: status + - outputs: + - resource: resource + name: name + - resource: resource + name: name + paused: true + next_build: + start_time: 6 + job_name: job_name + api_url: api_url + reap_time: 1 + name: name + pipeline_id: 1 + end_time: 7 + id: 1 + team_name: team_name + pipeline_name: pipeline_name + status: status + finished_build: + start_time: 6 + job_name: job_name + api_url: api_url + reap_time: 1 + name: name + pipeline_id: 1 + end_time: 7 + id: 1 + team_name: team_name + pipeline_name: pipeline_name + status: status + inputs: + - resource: resource + name: name + passed: + - passed + - passed + trigger: true + version: + pinned: + key: pinned + every: true + latest: true + - resource: resource + name: name + passed: + - passed + - passed + trigger: true + version: + pinned: + key: pinned + every: true + latest: true + has_new_inputs: true + groups: + - groups + - groups + disable_manual_trigger: true + team_name: team_name + pipeline_name: pipeline_name + first_logged_build_id: 1 + name: name + pipeline_id: 4 + id: 7 + transition_build: + start_time: 6 + job_name: job_name + api_url: api_url + reap_time: 1 + name: name + pipeline_id: 1 + end_time: 7 + id: 1 + team_name: team_name + pipeline_name: pipeline_name + status: status + groups: + - jobs: + - jobs + - jobs + name: name + resources: + - resources + - resources + - jobs: + - jobs + - jobs + name: name + resources: + - resources + - resources + project: + service_catalog: + image: https://openapi-generator.tech + keywords: + - keywords + - keywords + visibility: visibility + author: author + cloud_providers: + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + description: description + created_at: 0 + import_status: succeeded + canonical: canonical + readme: readme + team: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: canonical + directory: directory + form_enabled: true + dependencies: + - ref: ref + required: true + - ref: ref + required: true + technologies: + - technology: technology + version: version + - technology: technology + version: version + blueprint: true + ref: ref + updated_at: 0 + trusted: true + name: name + organization_canonical: organization_canonical + id: 1 + service_catalog_source_canonical: service_catalog_source_canonical + quota_enabled: true + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + environments: + - use_case: use_case + updated_at: 0 + color: color + icon: icon + created_at: 0 + cloud_provider: + regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + id: 1 + canonical: canonical + - use_case: use_case + updated_at: 0 + color: color + icon: icon + created_at: 0 + cloud_provider: + regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + id: 1 + canonical: canonical + description: description + created_at: 0 + import_status: succeeded + canonical: canonical + team: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: canonical + updated_at: 0 + config_repository_canonical: config_repository_canonical + name: name + id: 1 + favorite: true + created_at: 0 + started: true + team_name: team_name + use_case: use_case + archived: true + environment: + use_case: use_case + updated_at: 0 + color: color + icon: icon + created_at: 0 + cloud_provider: + regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + id: 1 + canonical: canonical + public: true + updated_at: 0 + name: name + id: 0 + status: status + properties: + data: + items: + $ref: '#/components/schemas/Pipeline' + type: array + pagination: + $ref: '#/components/schemas/Pagination' + required: + - data + - pagination + type: object + diffPipeline_200_response: + example: + data: + jobs: + - name: name + diff: + - line: line + delta_type: delta_type + - line: line + delta_type: delta_type + status: added + - name: name + diff: + - line: line + delta_type: delta_type + - line: line + delta_type: delta_type + status: added + groups: + - name: name + diff: + - line: line + delta_type: delta_type + - line: line + delta_type: delta_type + status: added + - name: name + diff: + - line: line + delta_type: delta_type + - line: line + delta_type: delta_type + status: added + resources: + - name: name + diff: + - line: line + delta_type: delta_type + - line: line + delta_type: delta_type + status: added + - name: name + diff: + - line: line + delta_type: delta_type + - line: line + delta_type: delta_type + status: added + resource_types: + - name: name + diff: + - line: line + delta_type: delta_type + - line: line + delta_type: delta_type + status: added + - name: name + diff: + - line: line + delta_type: delta_type + - line: line + delta_type: delta_type + status: added + properties: + data: + $ref: '#/components/schemas/PipelineDiffs' + required: + - data + type: object + syncedPipeline_200_response: + example: + data: + synced: unknown + error: error + diffs: + jobs: + - name: name + diff: + - line: line + delta_type: delta_type + - line: line + delta_type: delta_type + status: added + - name: name + diff: + - line: line + delta_type: delta_type + - line: line + delta_type: delta_type + status: added + groups: + - name: name + diff: + - line: line + delta_type: delta_type + - line: line + delta_type: delta_type + status: added + - name: name + diff: + - line: line + delta_type: delta_type + - line: line + delta_type: delta_type + status: added + resources: + - name: name + diff: + - line: line + delta_type: delta_type + - line: line + delta_type: delta_type + status: added + - name: name + diff: + - line: line + delta_type: delta_type + - line: line + delta_type: delta_type + status: added + resource_types: + - name: name + diff: + - line: line + delta_type: delta_type + - line: line + delta_type: delta_type + status: added + - name: name + diff: + - line: line + delta_type: delta_type + - line: line + delta_type: delta_type + status: added + properties: + data: + $ref: '#/components/schemas/PipelineStatus' + required: + - data + type: object + createPipeline_200_response: + example: + data: + paused: true + jobs: + - outputs: + - resource: resource + name: name + - resource: resource + name: name + paused: true + next_build: + start_time: 6 + job_name: job_name + api_url: api_url + reap_time: 1 + name: name + pipeline_id: 1 + end_time: 7 + id: 1 + team_name: team_name + pipeline_name: pipeline_name + status: status + finished_build: + start_time: 6 + job_name: job_name + api_url: api_url + reap_time: 1 + name: name + pipeline_id: 1 + end_time: 7 + id: 1 + team_name: team_name + pipeline_name: pipeline_name + status: status + inputs: + - resource: resource + name: name + passed: + - passed + - passed + trigger: true + version: + pinned: + key: pinned + every: true + latest: true + - resource: resource + name: name + passed: + - passed + - passed + trigger: true + version: + pinned: + key: pinned + every: true + latest: true + has_new_inputs: true + groups: + - groups + - groups + disable_manual_trigger: true + team_name: team_name + pipeline_name: pipeline_name + first_logged_build_id: 1 + name: name + pipeline_id: 4 + id: 7 + transition_build: + start_time: 6 + job_name: job_name + api_url: api_url + reap_time: 1 + name: name + pipeline_id: 1 + end_time: 7 + id: 1 + team_name: team_name + pipeline_name: pipeline_name + status: status + - outputs: + - resource: resource + name: name + - resource: resource + name: name + paused: true + next_build: + start_time: 6 + job_name: job_name + api_url: api_url + reap_time: 1 + name: name + pipeline_id: 1 + end_time: 7 + id: 1 + team_name: team_name + pipeline_name: pipeline_name + status: status + finished_build: + start_time: 6 + job_name: job_name + api_url: api_url + reap_time: 1 + name: name + pipeline_id: 1 + end_time: 7 + id: 1 + team_name: team_name + pipeline_name: pipeline_name + status: status + inputs: + - resource: resource + name: name + passed: + - passed + - passed + trigger: true + version: + pinned: + key: pinned + every: true + latest: true + - resource: resource + name: name + passed: + - passed + - passed + trigger: true + version: + pinned: + key: pinned + every: true + latest: true + has_new_inputs: true + groups: + - groups + - groups + disable_manual_trigger: true + team_name: team_name + pipeline_name: pipeline_name + first_logged_build_id: 1 + name: name + pipeline_id: 4 + id: 7 + transition_build: + start_time: 6 + job_name: job_name + api_url: api_url + reap_time: 1 + name: name + pipeline_id: 1 + end_time: 7 + id: 1 + team_name: team_name + pipeline_name: pipeline_name + status: status + groups: + - jobs: + - jobs + - jobs + name: name + resources: + - resources + - resources + - jobs: + - jobs + - jobs + name: name + resources: + - resources + - resources + project: + service_catalog: + image: https://openapi-generator.tech + keywords: + - keywords + - keywords + visibility: visibility + author: author + cloud_providers: + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + description: description + created_at: 0 + import_status: succeeded + canonical: canonical + readme: readme + team: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: canonical + directory: directory + form_enabled: true + dependencies: + - ref: ref + required: true + - ref: ref + required: true + technologies: + - technology: technology + version: version + - technology: technology + version: version + blueprint: true + ref: ref + updated_at: 0 + trusted: true + name: name + organization_canonical: organization_canonical + id: 1 + service_catalog_source_canonical: service_catalog_source_canonical + quota_enabled: true + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + environments: + - use_case: use_case + updated_at: 0 + color: color + icon: icon + created_at: 0 + cloud_provider: + regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + id: 1 + canonical: canonical + - use_case: use_case + updated_at: 0 + color: color + icon: icon + created_at: 0 + cloud_provider: + regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + id: 1 + canonical: canonical + description: description + created_at: 0 + import_status: succeeded + canonical: canonical + team: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: canonical + updated_at: 0 + config_repository_canonical: config_repository_canonical + name: name + id: 1 + favorite: true + created_at: 0 + started: true + team_name: team_name + use_case: use_case + archived: true + environment: + use_case: use_case + updated_at: 0 + color: color + icon: icon + created_at: 0 + cloud_provider: + regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + id: 1 + canonical: canonical + public: true + updated_at: 0 + name: name + id: 0 + status: status + properties: + data: + $ref: '#/components/schemas/Pipeline' + required: + - data + type: object + getPolicies_200_response: + example: + pagination: + total: 0 + size: 0 + index: 1 + data: + - code: code + updated_at: 0 + entities: + - entities + - entities + description: description + created_at: 0 + id: 1 + - code: code + updated_at: 0 + entities: + - entities + - entities + description: description + created_at: 0 + id: 1 + properties: + data: + items: + $ref: '#/components/schemas/Policy' + type: array + pagination: + $ref: '#/components/schemas/Pagination' + required: + - data + - pagination + type: object + getBuilds_200_response: + example: + data: + - start_time: 6 + job_name: job_name + api_url: api_url + reap_time: 1 + name: name + pipeline_id: 1 + end_time: 7 + id: 1 + team_name: team_name + pipeline_name: pipeline_name + status: status + - start_time: 6 + job_name: job_name + api_url: api_url + reap_time: 1 + name: name + pipeline_id: 1 + end_time: 7 + id: 1 + team_name: team_name + pipeline_name: pipeline_name + status: status + pagination_concourse: + next: + limit: 1 + until: 6 + since: 0 + previous: + limit: 1 + until: 6 + since: 0 + properties: + data: + items: + $ref: '#/components/schemas/Build' + type: array + pagination_concourse: + $ref: '#/components/schemas/PaginationConcourse' + required: + - data + - pagination_concourse + type: object + createBuild_200_response: + example: + data: + start_time: 6 + job_name: job_name + api_url: api_url + reap_time: 1 + name: name + pipeline_id: 1 + end_time: 7 + id: 1 + team_name: team_name + pipeline_name: pipeline_name + status: status + properties: + data: + $ref: '#/components/schemas/Build' + required: + - data + type: object + getBuildPlan_200_response: + example: + data: + schema: schema + plan: '{}' + properties: + data: + $ref: '#/components/schemas/PublicPlan' + required: + - data + type: object + getBuildPreparation_200_response: + example: + data: + paused_job: paused_job + missing_input_reasons: '{}' + max_running_builds: max_running_builds + build_id: build_id + inputs: '{}' + paused_pipeline: paused_pipeline + inputs_satisfied: '{}' + properties: + data: + $ref: '#/components/schemas/Preparation' + required: + - data + type: object + getBuildResources_200_response: + example: + data: + outputs: + - name: name + version: + key: version + - name: name + version: + key: version + inputs: + - first_occurrence: true + name: name + pipeline_id: 0 + version: + key: version + - first_occurrence: true + name: name + pipeline_id: 0 + version: + key: version + properties: + data: + $ref: '#/components/schemas/BuildInputsOutputs' + required: + - data + type: object + getPipelineConfig_200_response: + example: + data: data + properties: + data: + type: string + required: + - data + type: object + getJobs_200_response: + example: + pagination: + total: 0 + size: 0 + index: 1 + data: + - outputs: + - resource: resource + name: name + - resource: resource + name: name + paused: true + next_build: + start_time: 6 + job_name: job_name + api_url: api_url + reap_time: 1 + name: name + pipeline_id: 1 + end_time: 7 + id: 1 + team_name: team_name + pipeline_name: pipeline_name + status: status + finished_build: + start_time: 6 + job_name: job_name + api_url: api_url + reap_time: 1 + name: name + pipeline_id: 1 + end_time: 7 + id: 1 + team_name: team_name + pipeline_name: pipeline_name + status: status + inputs: + - resource: resource + name: name + passed: + - passed + - passed + trigger: true + version: + pinned: + key: pinned + every: true + latest: true + - resource: resource + name: name + passed: + - passed + - passed + trigger: true + version: + pinned: + key: pinned + every: true + latest: true + has_new_inputs: true + groups: + - groups + - groups + disable_manual_trigger: true + team_name: team_name + pipeline_name: pipeline_name + first_logged_build_id: 1 + name: name + pipeline_id: 4 + id: 7 + transition_build: + start_time: 6 + job_name: job_name + api_url: api_url + reap_time: 1 + name: name + pipeline_id: 1 + end_time: 7 + id: 1 + team_name: team_name + pipeline_name: pipeline_name + status: status + - outputs: + - resource: resource + name: name + - resource: resource + name: name + paused: true + next_build: + start_time: 6 + job_name: job_name + api_url: api_url + reap_time: 1 + name: name + pipeline_id: 1 + end_time: 7 + id: 1 + team_name: team_name + pipeline_name: pipeline_name + status: status + finished_build: + start_time: 6 + job_name: job_name + api_url: api_url + reap_time: 1 + name: name + pipeline_id: 1 + end_time: 7 + id: 1 + team_name: team_name + pipeline_name: pipeline_name + status: status + inputs: + - resource: resource + name: name + passed: + - passed + - passed + trigger: true + version: + pinned: + key: pinned + every: true + latest: true + - resource: resource + name: name + passed: + - passed + - passed + trigger: true + version: + pinned: + key: pinned + every: true + latest: true + has_new_inputs: true + groups: + - groups + - groups + disable_manual_trigger: true + team_name: team_name + pipeline_name: pipeline_name + first_logged_build_id: 1 + name: name + pipeline_id: 4 + id: 7 + transition_build: + start_time: 6 + job_name: job_name + api_url: api_url + reap_time: 1 + name: name + pipeline_id: 1 + end_time: 7 + id: 1 + team_name: team_name + pipeline_name: pipeline_name + status: status + properties: + data: + items: + $ref: '#/components/schemas/Job' + type: array + pagination: + $ref: '#/components/schemas/Pagination' + required: + - data + - pagination + type: object + getJob_200_response: + example: + data: + outputs: + - resource: resource + name: name + - resource: resource + name: name + paused: true + next_build: + start_time: 6 + job_name: job_name + api_url: api_url + reap_time: 1 + name: name + pipeline_id: 1 + end_time: 7 + id: 1 + team_name: team_name + pipeline_name: pipeline_name + status: status + finished_build: + start_time: 6 + job_name: job_name + api_url: api_url + reap_time: 1 + name: name + pipeline_id: 1 + end_time: 7 + id: 1 + team_name: team_name + pipeline_name: pipeline_name + status: status + inputs: + - resource: resource + name: name + passed: + - passed + - passed + trigger: true + version: + pinned: + key: pinned + every: true + latest: true + - resource: resource + name: name + passed: + - passed + - passed + trigger: true + version: + pinned: + key: pinned + every: true + latest: true + has_new_inputs: true + groups: + - groups + - groups + disable_manual_trigger: true + team_name: team_name + pipeline_name: pipeline_name + first_logged_build_id: 1 + name: name + pipeline_id: 4 + id: 7 + transition_build: + start_time: 6 + job_name: job_name + api_url: api_url + reap_time: 1 + name: name + pipeline_id: 1 + end_time: 7 + id: 1 + team_name: team_name + pipeline_name: pipeline_name + status: status + properties: + data: + $ref: '#/components/schemas/Job' + required: + - data + type: object + clearTaskCache_200_response: + example: + data: + caches_removed: 0 + properties: + data: + $ref: '#/components/schemas/ClearTaskCache' + required: + - data + type: object + getPipelineResources_200_response: + example: + pagination: + total: 0 + size: 0 + index: 1 + data: + - build: + start_time: 5 + job_name: job_name + name: name + end_time: 5 + pipeline_id: 2 + id: 1 + plan: '{}' + team_name: team_name + pipeline_name: pipeline_name + status: status + last_checked: 0 + name: name + icon: icon + pinned_version: + key: pinned_version + pipeline_id: 6 + type: type + pinned_in_config: true + pipeline_name: pipeline_name + team_name: team_name + pin_comment: pin_comment + - build: + start_time: 5 + job_name: job_name + name: name + end_time: 5 + pipeline_id: 2 + id: 1 + plan: '{}' + team_name: team_name + pipeline_name: pipeline_name + status: status + last_checked: 0 + name: name + icon: icon + pinned_version: + key: pinned_version + pipeline_id: 6 + type: type + pinned_in_config: true + pipeline_name: pipeline_name + team_name: team_name + pin_comment: pin_comment + properties: + data: + items: + $ref: '#/components/schemas/Resource' + type: array + pagination: + $ref: '#/components/schemas/Pagination' + required: + - data + - pagination + type: object + getResource_200_response: + example: + data: + build: + start_time: 5 + job_name: job_name + name: name + end_time: 5 + pipeline_id: 2 + id: 1 + plan: '{}' + team_name: team_name + pipeline_name: pipeline_name + status: status + last_checked: 0 + name: name + icon: icon + pinned_version: + key: pinned_version + pipeline_id: 6 + type: type + pinned_in_config: true + pipeline_name: pipeline_name + team_name: team_name + pin_comment: pin_comment + properties: + data: + $ref: '#/components/schemas/Resource' + required: + - data + type: object + getResourceVersions_200_response: + example: + data: + - metadata: + - name: name + value: value + - name: name + value: value + id: 0 + version: + key: version + enabled: true + - metadata: + - name: name + value: value + - name: name + value: value + id: 0 + version: + key: version + enabled: true + pagination_concourse: + next: + limit: 1 + until: 6 + since: 0 + previous: + limit: 1 + until: 6 + since: 0 + properties: + data: + items: + $ref: '#/components/schemas/ResourceVersion' + type: array + pagination_concourse: + $ref: '#/components/schemas/PaginationConcourse' + required: + - data + - pagination_concourse + type: object + getBuildsWithVersionAsInput_200_response: + example: + data: + - start_time: 6 + job_name: job_name + api_url: api_url + reap_time: 1 + name: name + pipeline_id: 1 + end_time: 7 + id: 1 + team_name: team_name + pipeline_name: pipeline_name + status: status + - start_time: 6 + job_name: job_name + api_url: api_url + reap_time: 1 + name: name + pipeline_id: 1 + end_time: 7 + id: 1 + team_name: team_name + pipeline_name: pipeline_name + status: status + properties: + data: + items: + $ref: '#/components/schemas/Build' + type: array + required: + - data + type: object + getPipelineVariables_200_response: + example: + data: + yaml_vars: yaml_vars + has_saved_yaml_vars: true + properties: + data: + $ref: '#/components/schemas/PipelineVariables' + required: + - data + type: object + getProjects_200_response: + example: + pagination: + total: 0 + size: 0 + index: 1 + data: + - service_catalog: + image: https://openapi-generator.tech + keywords: + - keywords + - keywords + visibility: visibility + author: author + cloud_providers: + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + description: description + created_at: 0 + import_status: succeeded + canonical: canonical + readme: readme + team: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: canonical + directory: directory + form_enabled: true + dependencies: + - ref: ref + required: true + - ref: ref + required: true + technologies: + - technology: technology + version: version + - technology: technology + version: version + blueprint: true + ref: ref + updated_at: 0 + trusted: true + name: name + organization_canonical: organization_canonical + id: 1 + service_catalog_source_canonical: service_catalog_source_canonical + quota_enabled: true + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + environments: + - use_case: use_case + updated_at: 0 + color: color + icon: icon + created_at: 0 + cloud_provider: + regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + id: 1 + canonical: canonical + - use_case: use_case + updated_at: 0 + color: color + icon: icon + created_at: 0 + cloud_provider: + regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + id: 1 + canonical: canonical + description: description + created_at: 0 + import_status: succeeded + canonical: canonical + team: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: canonical + updated_at: 0 + config_repository_canonical: config_repository_canonical + name: name + id: 1 + favorite: true + - service_catalog: + image: https://openapi-generator.tech + keywords: + - keywords + - keywords + visibility: visibility + author: author + cloud_providers: + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + description: description + created_at: 0 + import_status: succeeded + canonical: canonical + readme: readme + team: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: canonical + directory: directory + form_enabled: true + dependencies: + - ref: ref + required: true + - ref: ref + required: true + technologies: + - technology: technology + version: version + - technology: technology + version: version + blueprint: true + ref: ref + updated_at: 0 + trusted: true + name: name + organization_canonical: organization_canonical + id: 1 + service_catalog_source_canonical: service_catalog_source_canonical + quota_enabled: true + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + environments: + - use_case: use_case + updated_at: 0 + color: color + icon: icon + created_at: 0 + cloud_provider: + regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + id: 1 + canonical: canonical + - use_case: use_case + updated_at: 0 + color: color + icon: icon + created_at: 0 + cloud_provider: + regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + id: 1 + canonical: canonical + description: description + created_at: 0 + import_status: succeeded + canonical: canonical + team: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: canonical + updated_at: 0 + config_repository_canonical: config_repository_canonical + name: name + id: 1 + favorite: true + properties: + data: + items: + $ref: '#/components/schemas/Project' + type: array + pagination: + $ref: '#/components/schemas/Pagination' + required: + - data + - pagination + type: object + createProject_200_response: + example: + data: + service_catalog: + image: https://openapi-generator.tech + keywords: + - keywords + - keywords + visibility: visibility + author: author + cloud_providers: + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + description: description + created_at: 0 + import_status: succeeded + canonical: canonical + readme: readme + team: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: canonical + directory: directory + form_enabled: true + dependencies: + - ref: ref + required: true + - ref: ref + required: true + technologies: + - technology: technology + version: version + - technology: technology + version: version + blueprint: true + ref: ref + updated_at: 0 + trusted: true + name: name + organization_canonical: organization_canonical + id: 1 + service_catalog_source_canonical: service_catalog_source_canonical + quota_enabled: true + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + environments: + - use_case: use_case + updated_at: 0 + color: color + icon: icon + created_at: 0 + cloud_provider: + regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + id: 1 + canonical: canonical + - use_case: use_case + updated_at: 0 + color: color + icon: icon + created_at: 0 + cloud_provider: + regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + id: 1 + canonical: canonical + description: description + created_at: 0 + import_status: succeeded + canonical: canonical + team: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: canonical + updated_at: 0 + config_repository_canonical: config_repository_canonical + name: name + id: 1 + favorite: true + properties: + data: + $ref: '#/components/schemas/Project' + required: + - data + type: object + createEnvironment_200_response: + example: + data: + use_case: use_case + updated_at: 0 + color: color + icon: icon + created_at: 0 + cloud_provider: + regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + id: 1 + canonical: canonical + properties: + data: + $ref: '#/components/schemas/Environment' + required: + - data + type: object + getProjectConfig_200_response: + example: + data: + use_case: use_case + resource_pool_canonical: resource_pool_canonical + forms: + use_cases: + - name: name + sections: + - name: name + groups: + - technologies: + - technologies + - technologies + condition: condition + name: name + vars: + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + folded: true + - technologies: + - technologies + - technologies + condition: condition + name: name + vars: + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + folded: true + - name: name + groups: + - technologies: + - technologies + - technologies + condition: condition + name: name + vars: + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + folded: true + - technologies: + - technologies + - technologies + condition: condition + name: name + vars: + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + folded: true + - name: name + sections: + - name: name + groups: + - technologies: + - technologies + - technologies + condition: condition + name: name + vars: + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + folded: true + - technologies: + - technologies + - technologies + condition: condition + name: name + vars: + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + folded: true + - name: name + groups: + - technologies: + - technologies + - technologies + condition: condition + name: name + vars: + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + folded: true + - technologies: + - technologies + - technologies + condition: condition + name: name + vars: + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + - widget: auto_complete + widget_config: '{}' + depends_on: + - depends_on + - depends_on + values: '{}' + description: description + mismatch_values: + - '{}' + - '{}' + source: source + type: integer + values_ref: values_ref + required: true + default: '{}' + current: '{}' + unit: unit + name: name + validations: + - '{}' + - '{}' + folded: true + key: key + folded: true + version: version + properties: + data: + $ref: '#/components/schemas/ProjectEnvironmentConfig' + type: object + getProjInfrastructure_200_response: + description: The Infrastructure from the Project's environment + example: + data: + config: '{}' + graph: + nodes: + - resource: + image: https://openapi-generator.tech + short_description: short_description + keywords: + - keywords + - keywords + is_edge: true + description: description + attributes: + important: + - important + - important + normalized_status: '{}' + status: status + canonical: canonical + category: category + is_node: true + name: name + id: id + canonical: canonical + position: + - 0 + - 0 + - resource: + image: https://openapi-generator.tech + short_description: short_description + keywords: + - keywords + - keywords + is_edge: true + description: description + attributes: + important: + - important + - important + normalized_status: '{}' + status: status + canonical: canonical + category: category + is_node: true + name: name + id: id + canonical: canonical + position: + - 0 + - 0 + edges: + - id: id + source: source + canonicals: + - canonicals + - canonicals + target: target + - id: id + source: source + canonicals: + - canonicals + - canonicals + target: target + properties: + data: + $ref: '#/components/schemas/Infrastructure' + required: + - data + type: object + listQuotas_200_response: + example: + pagination: + total: 0 + size: 0 + index: 1 + data: + - memory: 0 + used_memory: 0 + used_storage: 0 + cpu: 0 + id: 1 + storage: 0 + used_cpu: 0 + team: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: canonical + resource_pool: + memory: 0 + used_memory: 0 + cpu: 0 + canonical: canonical + label: label + storage: 0 + allocated_storage: 0 + name: name + used_storage: 0 + allocated_memory: 0 + id: 1 + used_cpu: 0 + allocated_cpu: 0 + - memory: 0 + used_memory: 0 + used_storage: 0 + cpu: 0 + id: 1 + storage: 0 + used_cpu: 0 + team: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: canonical + resource_pool: + memory: 0 + used_memory: 0 + cpu: 0 + canonical: canonical + label: label + storage: 0 + allocated_storage: 0 + name: name + used_storage: 0 + allocated_memory: 0 + id: 1 + used_cpu: 0 + allocated_cpu: 0 + properties: + data: + items: + $ref: '#/components/schemas/Quota' + type: array + pagination: + $ref: '#/components/schemas/Pagination' + required: + - data + - pagination + type: object + createQuota_200_response: + example: + data: + memory: 0 + used_memory: 0 + used_storage: 0 + cpu: 0 + id: 1 + storage: 0 + used_cpu: 0 + team: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: canonical + resource_pool: + memory: 0 + used_memory: 0 + cpu: 0 + canonical: canonical + label: label + storage: 0 + allocated_storage: 0 + name: name + used_storage: 0 + allocated_memory: 0 + id: 1 + used_cpu: 0 + allocated_cpu: 0 + properties: + data: + $ref: '#/components/schemas/Quota' + required: + - data + type: object + listQuotaConsumptions_200_response: + example: + data: + environment: + use_case: use_case + updated_at: 0 + color: color + icon: icon + created_at: 0 + cloud_provider: + regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + id: 1 + canonical: canonical + memory: 0 + cpu: 0 + project: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + updated_at: 0 + name: name + description: description + created_at: 0 + import_status: succeeded + id: 1 + canonical: canonical + favorite: true + id: 1 + storage: 0 + properties: + data: + $ref: '#/components/schemas/ProjectEnvironmentConsumption' + required: + - data + type: object + listResourcePools_200_response: + example: + pagination: + total: 0 + size: 0 + index: 1 + data: + - memory: 0 + used_memory: 0 + cpu: 0 + canonical: canonical + label: label + storage: 0 + allocated_storage: 0 + name: name + used_storage: 0 + allocated_memory: 0 + id: 1 + used_cpu: 0 + allocated_cpu: 0 + - memory: 0 + used_memory: 0 + cpu: 0 + canonical: canonical + label: label + storage: 0 + allocated_storage: 0 + name: name + used_storage: 0 + allocated_memory: 0 + id: 1 + used_cpu: 0 + allocated_cpu: 0 + properties: + data: + items: + $ref: '#/components/schemas/ResourcePool' + type: array + pagination: + $ref: '#/components/schemas/Pagination' + required: + - data + - pagination + type: object + createResourcePool_200_response: + example: + data: + memory: 0 + used_memory: 0 + cpu: 0 + canonical: canonical + label: label + storage: 0 + allocated_storage: 0 + name: name + used_storage: 0 + allocated_memory: 0 + id: 1 + used_cpu: 0 + allocated_cpu: 0 + properties: + data: + $ref: '#/components/schemas/ResourcePool' + required: + - data + type: object + getRoles_200_response: + example: + pagination: + total: 0 + size: 0 + index: 1 + data: + - default: true + updated_at: 0 + name: name + description: description + created_at: 0 + rules: + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + id: 1 + canonical: canonical + - default: true + updated_at: 0 + name: name + description: description + created_at: 0 + rules: + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + id: 1 + canonical: canonical + properties: + data: + items: + $ref: '#/components/schemas/Role' + type: array + pagination: + $ref: '#/components/schemas/Pagination' + required: + - data + - pagination + type: object + createRole_200_response: + example: + data: + name: name + description: description + rules: + - effect: allow + action: action + resources: + - resources + - resources + - effect: allow + action: action + resources: + - resources + - resources + canonical: canonical + properties: + data: + $ref: '#/components/schemas/NewRole' + required: + - data + type: object + getRole_200_response: + example: + data: + default: true + updated_at: 0 + name: name + description: description + created_at: 0 + rules: + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + id: 1 + canonical: canonical + properties: + data: + $ref: '#/components/schemas/Role' + required: + - data + type: object + getServiceCatalogSources_200_response: + example: + data: + - owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + changes: + deleted: + - image: https://openapi-generator.tech + keywords: + - keywords + - keywords + visibility: visibility + author: author + cloud_providers: + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + description: description + created_at: 0 + import_status: succeeded + canonical: canonical + readme: readme + team: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: canonical + directory: directory + form_enabled: true + dependencies: + - ref: ref + required: true + - ref: ref + required: true + technologies: + - technology: technology + version: version + - technology: technology + version: version + blueprint: true + ref: ref + updated_at: 0 + trusted: true + name: name + organization_canonical: organization_canonical + id: 1 + service_catalog_source_canonical: service_catalog_source_canonical + quota_enabled: true + - image: https://openapi-generator.tech + keywords: + - keywords + - keywords + visibility: visibility + author: author + cloud_providers: + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + description: description + created_at: 0 + import_status: succeeded + canonical: canonical + readme: readme + team: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: canonical + directory: directory + form_enabled: true + dependencies: + - ref: ref + required: true + - ref: ref + required: true + technologies: + - technology: technology + version: version + - technology: technology + version: version + blueprint: true + ref: ref + updated_at: 0 + trusted: true + name: name + organization_canonical: organization_canonical + id: 1 + service_catalog_source_canonical: service_catalog_source_canonical + quota_enabled: true + created: + - image: https://openapi-generator.tech + keywords: + - keywords + - keywords + visibility: visibility + author: author + cloud_providers: + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + description: description + created_at: 0 + import_status: succeeded + canonical: canonical + readme: readme + team: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: canonical + directory: directory + form_enabled: true + dependencies: + - ref: ref + required: true + - ref: ref + required: true + technologies: + - technology: technology + version: version + - technology: technology + version: version + blueprint: true + ref: ref + updated_at: 0 + trusted: true + name: name + organization_canonical: organization_canonical + id: 1 + service_catalog_source_canonical: service_catalog_source_canonical + quota_enabled: true + - image: https://openapi-generator.tech + keywords: + - keywords + - keywords + visibility: visibility + author: author + cloud_providers: + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + description: description + created_at: 0 + import_status: succeeded + canonical: canonical + readme: readme + team: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: canonical + directory: directory + form_enabled: true + dependencies: + - ref: ref + required: true + - ref: ref + required: true + technologies: + - technology: technology + version: version + - technology: technology + version: version + blueprint: true + ref: ref + updated_at: 0 + trusted: true + name: name + organization_canonical: organization_canonical + id: 1 + service_catalog_source_canonical: service_catalog_source_canonical + quota_enabled: true + updated: + - image: https://openapi-generator.tech + keywords: + - keywords + - keywords + visibility: visibility + author: author + cloud_providers: + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + description: description + created_at: 0 + import_status: succeeded + canonical: canonical + readme: readme + team: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: canonical + directory: directory + form_enabled: true + dependencies: + - ref: ref + required: true + - ref: ref + required: true + technologies: + - technology: technology + version: version + - technology: technology + version: version + blueprint: true + ref: ref + updated_at: 0 + trusted: true + name: name + organization_canonical: organization_canonical + id: 1 + service_catalog_source_canonical: service_catalog_source_canonical + quota_enabled: true + - image: https://openapi-generator.tech + keywords: + - keywords + - keywords + visibility: visibility + author: author + cloud_providers: + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + description: description + created_at: 0 + import_status: succeeded + canonical: canonical + readme: readme + team: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: canonical + directory: directory + form_enabled: true + dependencies: + - ref: ref + required: true + - ref: ref + required: true + technologies: + - technology: technology + version: version + - technology: technology + version: version + blueprint: true + ref: ref + updated_at: 0 + trusted: true + name: name + organization_canonical: organization_canonical + id: 1 + service_catalog_source_canonical: service_catalog_source_canonical + quota_enabled: true + created_at: 0 + canonical: canonical + branch: branch + url: url + updated_at: 0 + refreshed_at: 0 + credential_canonical: credential_canonical + name: name + id: 1 + stack_count: 0 + service_catalogs: + - image: https://openapi-generator.tech + keywords: + - keywords + - keywords + visibility: visibility + author: author + cloud_providers: + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + description: description + created_at: 0 + import_status: succeeded + canonical: canonical + readme: readme + team: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: canonical + directory: directory + form_enabled: true + dependencies: + - ref: ref + required: true + - ref: ref + required: true + technologies: + - technology: technology + version: version + - technology: technology + version: version + blueprint: true + ref: ref + updated_at: 0 + trusted: true + name: name + organization_canonical: organization_canonical + id: 1 + service_catalog_source_canonical: service_catalog_source_canonical + quota_enabled: true + - image: https://openapi-generator.tech + keywords: + - keywords + - keywords + visibility: visibility + author: author + cloud_providers: + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + description: description + created_at: 0 + import_status: succeeded + canonical: canonical + readme: readme + team: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: canonical + directory: directory + form_enabled: true + dependencies: + - ref: ref + required: true + - ref: ref + required: true + technologies: + - technology: technology + version: version + - technology: technology + version: version + blueprint: true + ref: ref + updated_at: 0 + trusted: true + name: name + organization_canonical: organization_canonical + id: 1 + service_catalog_source_canonical: service_catalog_source_canonical + quota_enabled: true + - owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + changes: + deleted: + - image: https://openapi-generator.tech + keywords: + - keywords + - keywords + visibility: visibility + author: author + cloud_providers: + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + description: description + created_at: 0 + import_status: succeeded + canonical: canonical + readme: readme + team: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: canonical + directory: directory + form_enabled: true + dependencies: + - ref: ref + required: true + - ref: ref + required: true + technologies: + - technology: technology + version: version + - technology: technology + version: version + blueprint: true + ref: ref + updated_at: 0 + trusted: true + name: name + organization_canonical: organization_canonical + id: 1 + service_catalog_source_canonical: service_catalog_source_canonical + quota_enabled: true + - image: https://openapi-generator.tech + keywords: + - keywords + - keywords + visibility: visibility + author: author + cloud_providers: + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + description: description + created_at: 0 + import_status: succeeded + canonical: canonical + readme: readme + team: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: canonical + directory: directory + form_enabled: true + dependencies: + - ref: ref + required: true + - ref: ref + required: true + technologies: + - technology: technology + version: version + - technology: technology + version: version + blueprint: true + ref: ref + updated_at: 0 + trusted: true + name: name + organization_canonical: organization_canonical + id: 1 + service_catalog_source_canonical: service_catalog_source_canonical + quota_enabled: true + created: + - image: https://openapi-generator.tech + keywords: + - keywords + - keywords + visibility: visibility + author: author + cloud_providers: + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + description: description + created_at: 0 + import_status: succeeded + canonical: canonical + readme: readme + team: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: canonical + directory: directory + form_enabled: true + dependencies: + - ref: ref + required: true + - ref: ref + required: true + technologies: + - technology: technology + version: version + - technology: technology + version: version + blueprint: true + ref: ref + updated_at: 0 + trusted: true + name: name + organization_canonical: organization_canonical + id: 1 + service_catalog_source_canonical: service_catalog_source_canonical + quota_enabled: true + - image: https://openapi-generator.tech + keywords: + - keywords + - keywords + visibility: visibility + author: author + cloud_providers: + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + description: description + created_at: 0 + import_status: succeeded + canonical: canonical + readme: readme + team: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: canonical + directory: directory + form_enabled: true + dependencies: + - ref: ref + required: true + - ref: ref + required: true + technologies: + - technology: technology + version: version + - technology: technology + version: version + blueprint: true + ref: ref + updated_at: 0 + trusted: true + name: name + organization_canonical: organization_canonical + id: 1 + service_catalog_source_canonical: service_catalog_source_canonical + quota_enabled: true + updated: + - image: https://openapi-generator.tech + keywords: + - keywords + - keywords + visibility: visibility + author: author + cloud_providers: + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + description: description + created_at: 0 + import_status: succeeded + canonical: canonical + readme: readme + team: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: canonical + directory: directory + form_enabled: true + dependencies: + - ref: ref + required: true + - ref: ref + required: true + technologies: + - technology: technology + version: version + - technology: technology + version: version + blueprint: true + ref: ref + updated_at: 0 + trusted: true + name: name + organization_canonical: organization_canonical + id: 1 + service_catalog_source_canonical: service_catalog_source_canonical + quota_enabled: true + - image: https://openapi-generator.tech + keywords: + - keywords + - keywords + visibility: visibility + author: author + cloud_providers: + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + description: description + created_at: 0 + import_status: succeeded + canonical: canonical + readme: readme + team: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: canonical + directory: directory + form_enabled: true + dependencies: + - ref: ref + required: true + - ref: ref + required: true + technologies: + - technology: technology + version: version + - technology: technology + version: version + blueprint: true + ref: ref + updated_at: 0 + trusted: true + name: name + organization_canonical: organization_canonical + id: 1 + service_catalog_source_canonical: service_catalog_source_canonical + quota_enabled: true + created_at: 0 + canonical: canonical + branch: branch + url: url + updated_at: 0 + refreshed_at: 0 + credential_canonical: credential_canonical + name: name + id: 1 + stack_count: 0 + service_catalogs: + - image: https://openapi-generator.tech + keywords: + - keywords + - keywords + visibility: visibility + author: author + cloud_providers: + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + description: description + created_at: 0 + import_status: succeeded + canonical: canonical + readme: readme + team: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: canonical + directory: directory + form_enabled: true + dependencies: + - ref: ref + required: true + - ref: ref + required: true + technologies: + - technology: technology + version: version + - technology: technology + version: version + blueprint: true + ref: ref + updated_at: 0 + trusted: true + name: name + organization_canonical: organization_canonical + id: 1 + service_catalog_source_canonical: service_catalog_source_canonical + quota_enabled: true + - image: https://openapi-generator.tech + keywords: + - keywords + - keywords + visibility: visibility + author: author + cloud_providers: + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + description: description + created_at: 0 + import_status: succeeded + canonical: canonical + readme: readme + team: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: canonical + directory: directory + form_enabled: true + dependencies: + - ref: ref + required: true + - ref: ref + required: true + technologies: + - technology: technology + version: version + - technology: technology + version: version + blueprint: true + ref: ref + updated_at: 0 + trusted: true + name: name + organization_canonical: organization_canonical + id: 1 + service_catalog_source_canonical: service_catalog_source_canonical + quota_enabled: true + properties: + data: + items: + $ref: '#/components/schemas/ServiceCatalogSource' + type: array + required: + - data + type: object + createServiceCatalogSource_200_response: + example: + data: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + changes: + deleted: + - image: https://openapi-generator.tech + keywords: + - keywords + - keywords + visibility: visibility + author: author + cloud_providers: + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + description: description + created_at: 0 + import_status: succeeded + canonical: canonical + readme: readme + team: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: canonical + directory: directory + form_enabled: true + dependencies: + - ref: ref + required: true + - ref: ref + required: true + technologies: + - technology: technology + version: version + - technology: technology + version: version + blueprint: true + ref: ref + updated_at: 0 + trusted: true + name: name + organization_canonical: organization_canonical + id: 1 + service_catalog_source_canonical: service_catalog_source_canonical + quota_enabled: true + - image: https://openapi-generator.tech + keywords: + - keywords + - keywords + visibility: visibility + author: author + cloud_providers: + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + description: description + created_at: 0 + import_status: succeeded + canonical: canonical + readme: readme + team: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: canonical + directory: directory + form_enabled: true + dependencies: + - ref: ref + required: true + - ref: ref + required: true + technologies: + - technology: technology + version: version + - technology: technology + version: version + blueprint: true + ref: ref + updated_at: 0 + trusted: true + name: name + organization_canonical: organization_canonical + id: 1 + service_catalog_source_canonical: service_catalog_source_canonical + quota_enabled: true + created: + - image: https://openapi-generator.tech + keywords: + - keywords + - keywords + visibility: visibility + author: author + cloud_providers: + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + description: description + created_at: 0 + import_status: succeeded + canonical: canonical + readme: readme + team: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: canonical + directory: directory + form_enabled: true + dependencies: + - ref: ref + required: true + - ref: ref + required: true + technologies: + - technology: technology + version: version + - technology: technology + version: version + blueprint: true + ref: ref + updated_at: 0 + trusted: true + name: name + organization_canonical: organization_canonical + id: 1 + service_catalog_source_canonical: service_catalog_source_canonical + quota_enabled: true + - image: https://openapi-generator.tech + keywords: + - keywords + - keywords + visibility: visibility + author: author + cloud_providers: + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + description: description + created_at: 0 + import_status: succeeded + canonical: canonical + readme: readme + team: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: canonical + directory: directory + form_enabled: true + dependencies: + - ref: ref + required: true + - ref: ref + required: true + technologies: + - technology: technology + version: version + - technology: technology + version: version + blueprint: true + ref: ref + updated_at: 0 + trusted: true + name: name + organization_canonical: organization_canonical + id: 1 + service_catalog_source_canonical: service_catalog_source_canonical + quota_enabled: true + updated: + - image: https://openapi-generator.tech + keywords: + - keywords + - keywords + visibility: visibility + author: author + cloud_providers: + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + description: description + created_at: 0 + import_status: succeeded + canonical: canonical + readme: readme + team: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: canonical + directory: directory + form_enabled: true + dependencies: + - ref: ref + required: true + - ref: ref + required: true + technologies: + - technology: technology + version: version + - technology: technology + version: version + blueprint: true + ref: ref + updated_at: 0 + trusted: true + name: name + organization_canonical: organization_canonical + id: 1 + service_catalog_source_canonical: service_catalog_source_canonical + quota_enabled: true + - image: https://openapi-generator.tech + keywords: + - keywords + - keywords + visibility: visibility + author: author + cloud_providers: + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + description: description + created_at: 0 + import_status: succeeded + canonical: canonical + readme: readme + team: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: canonical + directory: directory + form_enabled: true + dependencies: + - ref: ref + required: true + - ref: ref + required: true + technologies: + - technology: technology + version: version + - technology: technology + version: version + blueprint: true + ref: ref + updated_at: 0 + trusted: true + name: name + organization_canonical: organization_canonical + id: 1 + service_catalog_source_canonical: service_catalog_source_canonical + quota_enabled: true + created_at: 0 + canonical: canonical + branch: branch + url: url + updated_at: 0 + refreshed_at: 0 + credential_canonical: credential_canonical + name: name + id: 1 + stack_count: 0 + service_catalogs: + - image: https://openapi-generator.tech + keywords: + - keywords + - keywords + visibility: visibility + author: author + cloud_providers: + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + description: description + created_at: 0 + import_status: succeeded + canonical: canonical + readme: readme + team: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: canonical + directory: directory + form_enabled: true + dependencies: + - ref: ref + required: true + - ref: ref + required: true + technologies: + - technology: technology + version: version + - technology: technology + version: version + blueprint: true + ref: ref + updated_at: 0 + trusted: true + name: name + organization_canonical: organization_canonical + id: 1 + service_catalog_source_canonical: service_catalog_source_canonical + quota_enabled: true + - image: https://openapi-generator.tech + keywords: + - keywords + - keywords + visibility: visibility + author: author + cloud_providers: + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + description: description + created_at: 0 + import_status: succeeded + canonical: canonical + readme: readme + team: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: canonical + directory: directory + form_enabled: true + dependencies: + - ref: ref + required: true + - ref: ref + required: true + technologies: + - technology: technology + version: version + - technology: technology + version: version + blueprint: true + ref: ref + updated_at: 0 + trusted: true + name: name + organization_canonical: organization_canonical + id: 1 + service_catalog_source_canonical: service_catalog_source_canonical + quota_enabled: true + properties: + data: + $ref: '#/components/schemas/ServiceCatalogSource' + required: + - data + type: object + refreshServiceCatalogSource_200_response: + example: + data: + deleted: + - image: https://openapi-generator.tech + keywords: + - keywords + - keywords + visibility: visibility + author: author + cloud_providers: + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + description: description + created_at: 0 + import_status: succeeded + canonical: canonical + readme: readme + team: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: canonical + directory: directory + form_enabled: true + dependencies: + - ref: ref + required: true + - ref: ref + required: true + technologies: + - technology: technology + version: version + - technology: technology + version: version + blueprint: true + ref: ref + updated_at: 0 + trusted: true + name: name + organization_canonical: organization_canonical + id: 1 + service_catalog_source_canonical: service_catalog_source_canonical + quota_enabled: true + - image: https://openapi-generator.tech + keywords: + - keywords + - keywords + visibility: visibility + author: author + cloud_providers: + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + description: description + created_at: 0 + import_status: succeeded + canonical: canonical + readme: readme + team: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: canonical + directory: directory + form_enabled: true + dependencies: + - ref: ref + required: true + - ref: ref + required: true + technologies: + - technology: technology + version: version + - technology: technology + version: version + blueprint: true + ref: ref + updated_at: 0 + trusted: true + name: name + organization_canonical: organization_canonical + id: 1 + service_catalog_source_canonical: service_catalog_source_canonical + quota_enabled: true + created: + - image: https://openapi-generator.tech + keywords: + - keywords + - keywords + visibility: visibility + author: author + cloud_providers: + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + description: description + created_at: 0 + import_status: succeeded + canonical: canonical + readme: readme + team: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: canonical + directory: directory + form_enabled: true + dependencies: + - ref: ref + required: true + - ref: ref + required: true + technologies: + - technology: technology + version: version + - technology: technology + version: version + blueprint: true + ref: ref + updated_at: 0 + trusted: true + name: name + organization_canonical: organization_canonical + id: 1 + service_catalog_source_canonical: service_catalog_source_canonical + quota_enabled: true + - image: https://openapi-generator.tech + keywords: + - keywords + - keywords + visibility: visibility + author: author + cloud_providers: + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + description: description + created_at: 0 + import_status: succeeded + canonical: canonical + readme: readme + team: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: canonical + directory: directory + form_enabled: true + dependencies: + - ref: ref + required: true + - ref: ref + required: true + technologies: + - technology: technology + version: version + - technology: technology + version: version + blueprint: true + ref: ref + updated_at: 0 + trusted: true + name: name + organization_canonical: organization_canonical + id: 1 + service_catalog_source_canonical: service_catalog_source_canonical + quota_enabled: true + updated: + - image: https://openapi-generator.tech + keywords: + - keywords + - keywords + visibility: visibility + author: author + cloud_providers: + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + description: description + created_at: 0 + import_status: succeeded + canonical: canonical + readme: readme + team: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: canonical + directory: directory + form_enabled: true + dependencies: + - ref: ref + required: true + - ref: ref + required: true + technologies: + - technology: technology + version: version + - technology: technology + version: version + blueprint: true + ref: ref + updated_at: 0 + trusted: true + name: name + organization_canonical: organization_canonical + id: 1 + service_catalog_source_canonical: service_catalog_source_canonical + quota_enabled: true + - image: https://openapi-generator.tech + keywords: + - keywords + - keywords + visibility: visibility + author: author + cloud_providers: + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + description: description + created_at: 0 + import_status: succeeded + canonical: canonical + readme: readme + team: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: canonical + directory: directory + form_enabled: true + dependencies: + - ref: ref + required: true + - ref: ref + required: true + technologies: + - technology: technology + version: version + - technology: technology + version: version + blueprint: true + ref: ref + updated_at: 0 + trusted: true + name: name + organization_canonical: organization_canonical + id: 1 + service_catalog_source_canonical: service_catalog_source_canonical + quota_enabled: true + properties: + data: + $ref: '#/components/schemas/ServiceCatalogChanges' + required: + - data + type: object + getTeams_200_response: + example: + pagination: + total: 0 + size: 0 + index: 1 + data: + - owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + updated_at: 0 + roles: + - default: true + updated_at: 0 + name: name + description: description + created_at: 0 + rules: + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + id: 1 + canonical: canonical + - default: true + updated_at: 0 + name: name + description: description + created_at: 0 + rules: + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + id: 1 + canonical: canonical + name: name + created_at: 0 + id: 1 + canonical: canonical + member_count: 5 + members_preview: + - last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + invited_by: + invitation_resent_at: 0 + invitation_state: pending + last_login_at: 0 + role: + default: true + updated_at: 0 + name: name + description: description + created_at: 0 + rules: + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + id: 1 + canonical: canonical + picture_url: https://openapi-generator.tech + invited_at: 0 + created_at: 0 + invited_by: null + given_name: given_name + locale: en + updated_at: 0 + invitation_email: invitation_email + mfa_enabled: true + id: 1 + family_name: family_name + email: email + username: username + given_name: given_name + family_name: family_name + email: email + username: username + - last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + invited_by: + invitation_resent_at: 0 + invitation_state: pending + last_login_at: 0 + role: + default: true + updated_at: 0 + name: name + description: description + created_at: 0 + rules: + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + id: 1 + canonical: canonical + picture_url: https://openapi-generator.tech + invited_at: 0 + created_at: 0 + invited_by: null + given_name: given_name + locale: en + updated_at: 0 + invitation_email: invitation_email + mfa_enabled: true + id: 1 + family_name: family_name + email: email + username: username + given_name: given_name + family_name: family_name + email: email + username: username + - last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + invited_by: + invitation_resent_at: 0 + invitation_state: pending + last_login_at: 0 + role: + default: true + updated_at: 0 + name: name + description: description + created_at: 0 + rules: + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + id: 1 + canonical: canonical + picture_url: https://openapi-generator.tech + invited_at: 0 + created_at: 0 + invited_by: null + given_name: given_name + locale: en + updated_at: 0 + invitation_email: invitation_email + mfa_enabled: true + id: 1 + family_name: family_name + email: email + username: username + given_name: given_name + family_name: family_name + email: email + username: username + - last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + invited_by: + invitation_resent_at: 0 + invitation_state: pending + last_login_at: 0 + role: + default: true + updated_at: 0 + name: name + description: description + created_at: 0 + rules: + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + id: 1 + canonical: canonical + picture_url: https://openapi-generator.tech + invited_at: 0 + created_at: 0 + invited_by: null + given_name: given_name + locale: en + updated_at: 0 + invitation_email: invitation_email + mfa_enabled: true + id: 1 + family_name: family_name + email: email + username: username + given_name: given_name + family_name: family_name + email: email + username: username + - last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + invited_by: + invitation_resent_at: 0 + invitation_state: pending + last_login_at: 0 + role: + default: true + updated_at: 0 + name: name + description: description + created_at: 0 + rules: + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + id: 1 + canonical: canonical + picture_url: https://openapi-generator.tech + invited_at: 0 + created_at: 0 + invited_by: null + given_name: given_name + locale: en + updated_at: 0 + invitation_email: invitation_email + mfa_enabled: true + id: 1 + family_name: family_name + email: email + username: username + given_name: given_name + family_name: family_name + email: email + username: username + - owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + updated_at: 0 + roles: + - default: true + updated_at: 0 + name: name + description: description + created_at: 0 + rules: + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + id: 1 + canonical: canonical + - default: true + updated_at: 0 + name: name + description: description + created_at: 0 + rules: + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + id: 1 + canonical: canonical + name: name + created_at: 0 + id: 1 + canonical: canonical + member_count: 5 + members_preview: + - last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + invited_by: + invitation_resent_at: 0 + invitation_state: pending + last_login_at: 0 + role: + default: true + updated_at: 0 + name: name + description: description + created_at: 0 + rules: + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + id: 1 + canonical: canonical + picture_url: https://openapi-generator.tech + invited_at: 0 + created_at: 0 + invited_by: null + given_name: given_name + locale: en + updated_at: 0 + invitation_email: invitation_email + mfa_enabled: true + id: 1 + family_name: family_name + email: email + username: username + given_name: given_name + family_name: family_name + email: email + username: username + - last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + invited_by: + invitation_resent_at: 0 + invitation_state: pending + last_login_at: 0 + role: + default: true + updated_at: 0 + name: name + description: description + created_at: 0 + rules: + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + id: 1 + canonical: canonical + picture_url: https://openapi-generator.tech + invited_at: 0 + created_at: 0 + invited_by: null + given_name: given_name + locale: en + updated_at: 0 + invitation_email: invitation_email + mfa_enabled: true + id: 1 + family_name: family_name + email: email + username: username + given_name: given_name + family_name: family_name + email: email + username: username + - last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + invited_by: + invitation_resent_at: 0 + invitation_state: pending + last_login_at: 0 + role: + default: true + updated_at: 0 + name: name + description: description + created_at: 0 + rules: + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + id: 1 + canonical: canonical + picture_url: https://openapi-generator.tech + invited_at: 0 + created_at: 0 + invited_by: null + given_name: given_name + locale: en + updated_at: 0 + invitation_email: invitation_email + mfa_enabled: true + id: 1 + family_name: family_name + email: email + username: username + given_name: given_name + family_name: family_name + email: email + username: username + - last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + invited_by: + invitation_resent_at: 0 + invitation_state: pending + last_login_at: 0 + role: + default: true + updated_at: 0 + name: name + description: description + created_at: 0 + rules: + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + id: 1 + canonical: canonical + picture_url: https://openapi-generator.tech + invited_at: 0 + created_at: 0 + invited_by: null + given_name: given_name + locale: en + updated_at: 0 + invitation_email: invitation_email + mfa_enabled: true + id: 1 + family_name: family_name + email: email + username: username + given_name: given_name + family_name: family_name + email: email + username: username + - last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + invited_by: + invitation_resent_at: 0 + invitation_state: pending + last_login_at: 0 + role: + default: true + updated_at: 0 + name: name + description: description + created_at: 0 + rules: + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + id: 1 + canonical: canonical + picture_url: https://openapi-generator.tech + invited_at: 0 + created_at: 0 + invited_by: null + given_name: given_name + locale: en + updated_at: 0 + invitation_email: invitation_email + mfa_enabled: true + id: 1 + family_name: family_name + email: email + username: username + given_name: given_name + family_name: family_name + email: email + username: username + properties: + data: + items: + $ref: '#/components/schemas/Team' + type: array + pagination: + $ref: '#/components/schemas/Pagination' + required: + - data + - pagination + type: object + createTeam_200_response: + example: + data: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + updated_at: 0 + roles: + - default: true + updated_at: 0 + name: name + description: description + created_at: 0 + rules: + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + id: 1 + canonical: canonical + - default: true + updated_at: 0 + name: name + description: description + created_at: 0 + rules: + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + id: 1 + canonical: canonical + name: name + created_at: 0 + id: 1 + canonical: canonical + member_count: 5 + members_preview: + - last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + invited_by: + invitation_resent_at: 0 + invitation_state: pending + last_login_at: 0 + role: + default: true + updated_at: 0 + name: name + description: description + created_at: 0 + rules: + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + id: 1 + canonical: canonical + picture_url: https://openapi-generator.tech + invited_at: 0 + created_at: 0 + invited_by: null + given_name: given_name + locale: en + updated_at: 0 + invitation_email: invitation_email + mfa_enabled: true + id: 1 + family_name: family_name + email: email + username: username + given_name: given_name + family_name: family_name + email: email + username: username + - last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + invited_by: + invitation_resent_at: 0 + invitation_state: pending + last_login_at: 0 + role: + default: true + updated_at: 0 + name: name + description: description + created_at: 0 + rules: + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + id: 1 + canonical: canonical + picture_url: https://openapi-generator.tech + invited_at: 0 + created_at: 0 + invited_by: null + given_name: given_name + locale: en + updated_at: 0 + invitation_email: invitation_email + mfa_enabled: true + id: 1 + family_name: family_name + email: email + username: username + given_name: given_name + family_name: family_name + email: email + username: username + - last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + invited_by: + invitation_resent_at: 0 + invitation_state: pending + last_login_at: 0 + role: + default: true + updated_at: 0 + name: name + description: description + created_at: 0 + rules: + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + id: 1 + canonical: canonical + picture_url: https://openapi-generator.tech + invited_at: 0 + created_at: 0 + invited_by: null + given_name: given_name + locale: en + updated_at: 0 + invitation_email: invitation_email + mfa_enabled: true + id: 1 + family_name: family_name + email: email + username: username + given_name: given_name + family_name: family_name + email: email + username: username + - last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + invited_by: + invitation_resent_at: 0 + invitation_state: pending + last_login_at: 0 + role: + default: true + updated_at: 0 + name: name + description: description + created_at: 0 + rules: + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + id: 1 + canonical: canonical + picture_url: https://openapi-generator.tech + invited_at: 0 + created_at: 0 + invited_by: null + given_name: given_name + locale: en + updated_at: 0 + invitation_email: invitation_email + mfa_enabled: true + id: 1 + family_name: family_name + email: email + username: username + given_name: given_name + family_name: family_name + email: email + username: username + - last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + invited_by: + invitation_resent_at: 0 + invitation_state: pending + last_login_at: 0 + role: + default: true + updated_at: 0 + name: name + description: description + created_at: 0 + rules: + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + id: 1 + canonical: canonical + picture_url: https://openapi-generator.tech + invited_at: 0 + created_at: 0 + invited_by: null + given_name: given_name + locale: en + updated_at: 0 + invitation_email: invitation_email + mfa_enabled: true + id: 1 + family_name: family_name + email: email + username: username + given_name: given_name + family_name: family_name + email: email + username: username + properties: + data: + $ref: '#/components/schemas/Team' + required: + - data + type: object + getTeamMembers_200_response: + example: + pagination: + total: 0 + size: 0 + index: 1 + data: + - last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + invited_by: + invitation_resent_at: 0 + invitation_state: pending + last_login_at: 0 + role: + default: true + updated_at: 0 + name: name + description: description + created_at: 0 + rules: + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + id: 1 + canonical: canonical + picture_url: https://openapi-generator.tech + invited_at: 0 + created_at: 0 + invited_by: null + given_name: given_name + locale: en + updated_at: 0 + invitation_email: invitation_email + mfa_enabled: true + id: 1 + family_name: family_name + email: email + username: username + given_name: given_name + family_name: family_name + email: email + username: username + - last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + invited_by: + invitation_resent_at: 0 + invitation_state: pending + last_login_at: 0 + role: + default: true + updated_at: 0 + name: name + description: description + created_at: 0 + rules: + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + id: 1 + canonical: canonical + picture_url: https://openapi-generator.tech + invited_at: 0 + created_at: 0 + invited_by: null + given_name: given_name + locale: en + updated_at: 0 + invitation_email: invitation_email + mfa_enabled: true + id: 1 + family_name: family_name + email: email + username: username + given_name: given_name + family_name: family_name + email: email + username: username + properties: + data: + items: + $ref: '#/components/schemas/MemberTeam' + type: array + pagination: + $ref: '#/components/schemas/Pagination' + required: + - data + - pagination + type: object + assignMemberToTeam_200_response: + example: + data: + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + invited_by: + invitation_resent_at: 0 + invitation_state: pending + last_login_at: 0 + role: + default: true + updated_at: 0 + name: name + description: description + created_at: 0 + rules: + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + - effect: allow + action: action + resources: + - resources + - resources + id: 0 + id: 1 + canonical: canonical + picture_url: https://openapi-generator.tech + invited_at: 0 + created_at: 0 + invited_by: null + given_name: given_name + locale: en + updated_at: 0 + invitation_email: invitation_email + mfa_enabled: true + id: 1 + family_name: family_name + email: email + username: username + given_name: given_name + family_name: family_name + email: email + username: username + properties: + data: + $ref: '#/components/schemas/MemberTeam' + required: + - data + type: object + getWorkers_200_response: + example: + pagination: + total: 0 + size: 0 + index: 1 + data: + - active_containers: 0 + start_time: 1 + name: name + ephemeral: true + state: state + team: team + active_volumes: 6 + version: version + platform: platform + tags: + - tags + - tags + - active_containers: 0 + start_time: 1 + name: name + ephemeral: true + state: state + team: team + active_volumes: 6 + version: version + platform: platform + tags: + - tags + - tags + properties: + data: + items: + $ref: '#/components/schemas/Worker' + type: array + pagination: + $ref: '#/components/schemas/Pagination' + required: + - data + - pagination + type: object + canDo_200_response: + example: + data: + entity_canonicals: + - entity_canonicals + - entity_canonicals + ok: true + properties: + data: + $ref: '#/components/schemas/CanDoOutput' + required: + - data + type: object + getSummary_200_response: + example: + data: + config_repositories: 5 + projects: 0 + pipelines: 6 + teams: 2 + credentials: 1 + service_catalog_sources: 5 + roles: 9 + service_catalogs: 3 + users: 7 + properties: + data: + $ref: '#/components/schemas/Summary' + required: + - data + type: object + samlAssertionConsumerService_request: + properties: + SAMLResponse: + description: Base64-encoded SAML authentication response document. + type: string + type: object + listServiceCatalogs_200_response: + example: + pagination: + total: 0 + size: 0 + index: 1 + data: + - image: https://openapi-generator.tech + keywords: + - keywords + - keywords + visibility: visibility + author: author + cloud_providers: + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + description: description + created_at: 0 + import_status: succeeded + canonical: canonical + readme: readme + team: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: canonical + directory: directory + form_enabled: true + dependencies: + - ref: ref + required: true + - ref: ref + required: true + technologies: + - technology: technology + version: version + - technology: technology + version: version + blueprint: true + ref: ref + updated_at: 0 + trusted: true + name: name + organization_canonical: organization_canonical + id: 1 + service_catalog_source_canonical: service_catalog_source_canonical + quota_enabled: true + - image: https://openapi-generator.tech + keywords: + - keywords + - keywords + visibility: visibility + author: author + cloud_providers: + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + description: description + created_at: 0 + import_status: succeeded + canonical: canonical + readme: readme + team: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: canonical + directory: directory + form_enabled: true + dependencies: + - ref: ref + required: true + - ref: ref + required: true + technologies: + - technology: technology + version: version + - technology: technology + version: version + blueprint: true + ref: ref + updated_at: 0 + trusted: true + name: name + organization_canonical: organization_canonical + id: 1 + service_catalog_source_canonical: service_catalog_source_canonical + quota_enabled: true + properties: + data: + items: + $ref: '#/components/schemas/ServiceCatalog' + type: array + pagination: + $ref: '#/components/schemas/Pagination' + required: + - data + - pagination + type: object + createServiceCatalog_200_response: + example: + data: + image: https://openapi-generator.tech + keywords: + - keywords + - keywords + visibility: visibility + author: author + cloud_providers: + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + - regions: + - regions + - regions + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: aws + abbreviation: abbreviation + description: description + created_at: 0 + import_status: succeeded + canonical: canonical + readme: readme + team: + owner: + country_code: country_code + last_login_at: 0 + picture_url: https://openapi-generator.tech + updated_at: 0 + created_at: 0 + mfa_enabled: true + id: 1 + given_name: given_name + locale: locale + family_name: family_name + email: email + username: username + updated_at: 0 + name: name + created_at: 0 + id: 1 + canonical: canonical + directory: directory + form_enabled: true + dependencies: + - ref: ref + required: true + - ref: ref + required: true + technologies: + - technology: technology + version: version + - technology: technology + version: version + blueprint: true + ref: ref + updated_at: 0 + trusted: true + name: name + organization_canonical: organization_canonical + id: 1 + service_catalog_source_canonical: service_catalog_source_canonical + quota_enabled: true + properties: + data: + $ref: '#/components/schemas/ServiceCatalog' + required: + - data + type: object + getServiceCatalogTerraform_200_response: + example: + data: + config: '{}' + properties: + data: + $ref: '#/components/schemas/TerraformJSONConfig' + required: + - data + type: object + getServiceCatalogTerraformDiagram_200_response: + example: + data: '{}' + updated_at: 0 + created_at: 0 + properties: + data: + description: The JSON Diagram structure + title: TerraformDiagram + type: object + created_at: + format: uint64 + minimum: 0 + type: integer + updated_at: + format: uint64 + minimum: 0 + type: integer + required: + - data + type: object + getServiceCatalogTerraformImage_200_response: + example: + data: + image: image + properties: + data: + $ref: '#/components/schemas/TerraformImage' + required: + - data + type: object + validateServiceCatalogDependencies_200_response: + example: + data: + warnings: + - warnings + - warnings + errors: + - errors + - errors + properties: + data: + $ref: '#/components/schemas/ServiceCatalogDependenciesValidationResult' + required: + - data + type: object + emailAuthenticationVerification_200_response: + example: + data: + permissions: + key: + effect: allow + action: action + resources: + - resources + - resources + id: 0 + owns: + - owns + - owns + token: token + properties: + data: + $ref: '#/components/schemas/UserSession' + required: + - data + type: object + getOAuthUser_200_response: + example: + data: + user: + country_code: country_code + social_id: social_id + picture_url: https://openapi-generator.tech + invitation_token: invitation_token + given_name: given_name + locale: en + family_name: family_name + email: email + username: username + token: token + properties: + data: + $ref: '#/components/schemas/UserOAuth' + required: + - data + type: object + getUserAccount_200_response: + example: + data: + emails: + - purpose: purpose + verified: true + created_at: 0 + email: email + - purpose: purpose + verified: true + created_at: 0 + email: email + country: + code: code + name: name + updated_at: 0 + picture_url: https://openapi-generator.tech + last_login: 0 + created_at: 0 + mfa_enabled: true + given_name: given_name + locale: en + family_name: family_name + guide: '{}' + username: username + properties: + data: + $ref: '#/components/schemas/UserAccount' + required: + - data + type: object + UpdateUserAccount_password_update: + description: The update password requires to confirm the old password. + properties: + current: + format: password + minLength: 8 + type: string + new: + format: password + minLength: 8 + type: string + required: + - current + - new + type: object + ElasticsearchLogs_allOf_sources_value_value_mapping: + description: | + Object with the mapping to know which attributes are the ones + we have to map to the ones we want + properties: + host: + description: | + The Host of the log + type: string + timestamp: + description: | + The Timestamp of the log + type: string + message: + description: | + The Message the user wants to show + type: string + required: + - host + - message + - timestamp + type: object + ElasticsearchLogs_allOf_sources_value_value: + properties: + index: + description: | + Index to use + type: string + urls: + description: | + List of URLs to override the main URL defined + items: + type: string + type: array + prefilters: + description: | + JSON representing the prefilters to apply to the index to get + the specific values. + properties: {} + type: object + mapping: + $ref: '#/components/schemas/ElasticsearchLogs_allOf_sources_value_value_mapping' + type: object + Appearance_color: + example: + r: 20 + b: 37 + g: 153 + properties: + r: + description: Red color value of the RGB color + format: uint32 + maximum: 255 + minimum: 0 + type: integer + g: + description: Green color value of the RGB color + format: uint32 + maximum: 255 + minimum: 0 + type: integer + b: + description: Blue color value of the RGB color + format: uint32 + maximum: 255 + minimum: 0 + type: integer + required: + - b + - g + - r + type: object + securitySchemes: + api_key: + description: The API authorization is done with JWT tokens + in: header + name: Authorization + type: apiKey + api_key_query: + description: The API authorization is done with JWT tokens in the query string + in: query + name: api_key + type: apiKey +x-original-swagger-version: '2.0'