openapi: 3.2.0 info: contact: {} description: Config API supports CRUD operations on config objects. title: Config REST Application Agent Credentials Projects API license: name: Apache 2.0 url: https://www.apache.org/licenses/LICENSE-2.0 version: '1' servers: - url: https://eu.api.indykite.com/configs/v1 - url: https://us.api.indykite.com/configs/v1 security: - BearerToken: [] tags: - name: Projects description: Project CRUD operations x-displayName: Projects paths: /projects: get: tags: - Projects operationId: listProjects summary: List Projects description: List Projects in provided Organization with optional filtering. parameters: - description: Project ID where to search for Projects. in: query name: organization_id required: true style: form explode: true schema: type: string - description: List only objects, that contains given search query in name, display name or description in: query name: search required: false style: form explode: true schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/httpproxy.listConfigResponse-httpproxy_readProjectResponse' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/restapi.ErrorResponse' '401': description: Invalid ServiceAccount JWT in Authorization header content: application/json: schema: $ref: '#/components/schemas/restapi.DetailedError' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/restapi.DetailedError' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/restapi.DetailedError' '422': description: Unprocessable Entity content: application/json: schema: $ref: '#/components/schemas/restapi.DetailedError' '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/restapi.ErrorResponse' security: - BearerToken: [] post: tags: - Projects operationId: createProject summary: Create Project description: Create Project, formerly known as Application space, in provided Organization. requestBody: content: application/json: schema: $ref: '#/components/schemas/httpproxy.createProjectRequest' description: Create Project request required: true responses: '201': description: Created headers: etag: description: Multiversion concurrency control version - etag style: simple explode: false schema: type: string content: application/json: schema: $ref: '#/components/schemas/httpproxy.createConfigResponse' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/restapi.ErrorResponse' '401': description: Invalid ServiceAccount JWT in Authorization header content: application/json: schema: $ref: '#/components/schemas/restapi.DetailedError' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/restapi.DetailedError' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/restapi.DetailedError' '422': description: Unprocessable Entity content: application/json: schema: $ref: '#/components/schemas/restapi.DetailedError' '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/restapi.ErrorResponse' x-codegen-request-body-name: request security: - BearerToken: [] /projects/{id}: delete: tags: - Projects operationId: deleteProject summary: Delete Project description: Delete Project, formerly known as Application space, by provided ID. You can optionally can specify etag in If-Match header. parameters: - description: Project ID in: path name: id required: true style: simple explode: false schema: type: string - description: Multiversion concurrency control version - etag in: header name: If-Match required: false style: simple explode: false schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/httpproxy.deleteConfigResponse' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/restapi.ErrorResponse' '401': description: Invalid ServiceAccount JWT in Authorization header content: application/json: schema: $ref: '#/components/schemas/restapi.DetailedError' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/restapi.DetailedError' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/restapi.DetailedError' '422': description: Unprocessable Entity content: application/json: schema: $ref: '#/components/schemas/restapi.DetailedError' '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/restapi.ErrorResponse' security: - BearerToken: [] get: tags: - Projects operationId: getProject summary: Read Project description: Read Project, formerly known as Application space, identified by provided ID. parameters: - description: Project ID in: path name: id required: true style: simple explode: false schema: type: string - description: Version of configuration to read. If not provided, latest version is returned. in: query name: version required: false style: form explode: true schema: type: integer responses: '200': description: OK headers: etag: description: Multiversion concurrency control version - etag style: simple explode: false schema: type: string content: application/json: schema: $ref: '#/components/schemas/httpproxy.readProjectResponse' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/restapi.ErrorResponse' '401': description: Invalid ServiceAccount JWT in Authorization header content: application/json: schema: $ref: '#/components/schemas/restapi.DetailedError' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/restapi.DetailedError' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/restapi.DetailedError' '422': description: Unprocessable Entity content: application/json: schema: $ref: '#/components/schemas/restapi.DetailedError' '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/restapi.ErrorResponse' security: - BearerToken: [] put: tags: - Projects operationId: updateProject summary: Update Project description: Update Project, formerly known as Application space, identified by provided ID and optionally etag in If-Match header. parameters: - description: Project ID or name in: path name: id required: true style: simple explode: false schema: type: string - description: Multiversion concurrency control version - etag. in: header name: If-Match required: false style: simple explode: false schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/httpproxy.updateProjectRequest' description: Update Project request. required: true responses: '200': description: OK headers: etag: description: Multiversion concurrency control version - etag style: simple explode: false schema: type: string content: application/json: schema: $ref: '#/components/schemas/httpproxy.updateConfigResponse' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/restapi.ErrorResponse' '401': description: Invalid ServiceAccount JWT in Authorization header content: application/json: schema: $ref: '#/components/schemas/restapi.DetailedError' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/restapi.DetailedError' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/restapi.DetailedError' '422': description: Unprocessable Entity content: application/json: schema: $ref: '#/components/schemas/restapi.DetailedError' '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/restapi.ErrorResponse' x-codegen-request-body-name: request security: - BearerToken: [] components: schemas: httpproxy.dbConnection: properties: name: description: Optional name of the database. type: string password: description: Password for database authentication - write only. type: string url: description: Connection URL for the database. type: string username: description: Username for database authentication. type: string alias_mapping: description: Optional alias mapping for the database. type: string composite_db_name: description: Optional composite database name. type: string required: - password - url - username type: object httpproxy.updateConfigResponse: properties: create_time: description: CreateTime specify when configuration was created. type: string created_by: description: CreatedBy specify who created configuration. type: string id: description: ID of configuration to update. type: string update_time: description: UpdateTime specify when configuration was last time updated. type: string updated_by: description: UpdatedBy specify who last time updated configuration. type: string type: object httpproxy.updateProjectRequest: properties: db_connection: allOf: - $ref: '#/components/schemas/httpproxy.dbConnection' description: Database connection information for self hosted database. description: description: 'Description is optional description of configuration. When kept null, it is not changed. But when set to empty string, it will be removed.' maxLength: 65000 type: string display_name: description: 'DisplayName is optional human readable name of configuration. When kept null, it is not changed. But when set to empty string, it will be removed.' maxLength: 254 type: string type: object httpproxy.deleteConfigResponse: properties: id: description: ID of deleted configuration. type: string type: object httpproxy.listConfigResponse-httpproxy_readProjectResponse: properties: data: items: $ref: '#/components/schemas/httpproxy.readProjectResponse' type: array type: object restapi.DetailedError: properties: errors: items: type: string type: array message: type: string type: object httpproxy.readProjectResponse: properties: create_time: description: CreateTime specify when configuration was created. type: string created_by: description: CreatedBy specify who created configuration. type: string db_connection: allOf: - $ref: '#/components/schemas/httpproxy.dbConnection' description: 'Database connection information for self hosted database. Password is never returned back during read operation.' description: description: Description is optional description of configuration. type: string display_name: description: DisplayName is optional human readable name of configuration. Is equal to Name if not set. type: string id: description: ID is globally unique identifier of configuration. type: string ikg_size: description: 'IKG Size that is allocated, with corresponding amount of CPU nodes. 2GB (1 CPU), 4GB (1 CPU), 8GB (2 CPUs), 16GB (3 CPUs), 32GB (6 CPUs), 64GB (12 CPUs), 128GB (24 CPUs), 192GB (36 CPUs), 256GB (48 CPUs), 384GB (82 CPUs), and 512GB (96 CPUs).' type: string ikg_status: description: IkgStatus is status of the IKG DB instance behind the project. type: string name: description: Name is URL friendly identifier of configuration. type: string organization_id: description: 'OrganizationID is globally unique identifier of organization, formerly known as customer, under which configuration was created.' type: string project_id: description: 'ProjectID is globally unique identifier of project, formerly known as application space, under which configuration was created. Might be empty, if configuration is created directly under organization.' type: string region: description: Region specify where the IKG and other data are stored. type: string replica_region: description: Replica region specify where the second IKG with synchronization is created, if any. type: string update_time: description: UpdateTime specify when configuration was last time updated. type: string updated_by: description: UpdatedBy specify who last time updated configuration. type: string type: object restapi.ErrorResponse: properties: message: example: Internal Server Error type: string type: object httpproxy.createProjectRequest: properties: db_connection: allOf: - $ref: '#/components/schemas/httpproxy.dbConnection' description: Database connection information for self hosted database. description: description: Description is optional description of configuration. maxLength: 65000 minLength: 2 type: string display_name: description: DisplayName is optional human readable name of configuration. maxLength: 254 minLength: 2 type: string ikg_size: description: 'IKG size that will be allocated, which correspond also to amount of CPU nodes. Default value is 2GB. 2GB (1 CPU), 4GB (1 CPU), 8GB (2 CPUs), 16GB (3 CPUs), 32GB (6 CPUs), 64GB (12 CPUs), 128GB (24 CPUs), 192GB (36 CPUs), 256GB (48 CPUs), 384GB (82 CPUs), and 512GB (96 CPUs)' enum: - 2GB - 4GB - 8GB - 16GB - 32GB - 64GB - 128GB - 192GB - 256GB - 384GB - 512GB type: string name: description: 'Name is URL friendly identifier of configuration, must be unique in scope of parent entity. Also is immutable and cannot be changed later.' type: string organization_id: description: 'OrganizationID is identifier of Organization, formerly known as Customer, where to place this new configuration object. Must be in GID format.' type: string region: enum: - europe-west1 - us-east1 type: string replica_region: description: 'Replica region specify where the second IKG is created. This will turn on multi region with synchronization from master into that replica. Replica must be different region than the master, but also in the same geographical continent.' enum: - europe-west1 - us-east1 - us-west1 type: string required: - name - organization_id - region type: object httpproxy.createConfigResponse: properties: create_time: description: CreateTime specify when configuration was created. type: string created_by: description: CreatedBy specify who created configuration. type: string id: description: ID is globally unique identifier of created configuration. type: string update_time: description: UpdateTime specify when configuration was last time updated. type: string updated_by: description: UpdatedBy specify who last time updated configuration. type: string type: object securitySchemes: BearerToken: type: http scheme: bearer bearerFormat: JWT description: Bearer token generated from Service Account credentials. x-original-swagger-version: '2.0'