openapi: 3.2.0 info: title: Folio Proxy Tenant Installation API version: v2.0 description: 'Operations tagged proxy-tenant-installation across 2 of this provider''s published API definitions: folio-mod-okapi-facade-openapi.json, folio-mod-okapi-facade-openapi.yml. Each path carries the servers of the definition it was published in.' servers: - url: http://localhost:8081 description: Locally deployed server tags: - name: proxy-tenant-installation paths: /_/proxy/tenants/{tenant_id}/install: parameters: - name: tenant_id in: path required: true schema: type: string get: responses: '200': description: OK headers: X-Okapi-Trace: $ref: '#/components/headers/X-Okapi-Trace' content: application/json: schema: $ref: '#/components/schemas/InstallJobList' '400': description: User error '404': description: Tenant not Found '500': description: User error description: Retrieve information about all install/upgrade jobs - including those that are ongoing. operationId: getAllInstallJobs tags: - proxy-tenant-installation summary: Get all install jobs x-summary-source: derived delete: responses: '204': description: OK headers: X-Okapi-Trace: $ref: '#/components/headers/X-Okapi-Trace' '400': description: Bad Request '404': description: Tenant not Found '500': description: Server Error description: Delete all completed install jobs operationId: deleteInstallJobs tags: - proxy-tenant-installation summary: Delete install jobs x-summary-source: derived post: responses: '200': description: OK headers: X-Okapi-Trace: $ref: '#/components/headers/X-Okapi-Trace' content: application/json: schema: $ref: '#/components/schemas/TenantModuleDescriptorList' '201': description: Install job created (async mode) headers: Location: description: URI to the install job schema: type: string X-Okapi-Trace: $ref: '#/components/headers/X-Okapi-Trace' content: application/json: schema: $ref: '#/components/schemas/TenantModuleDescriptorList' '400': description: Bad Request '404': description: Not Found '500': description: Server Error description: Enable, disable or upgrade one or more modules for tenant. The request body and response body is of the same type TenantModuleDescriptorList. This list includes one or more modules to be enabled, disabled or upgraded. The request is the initial desired changes and the response is the list of changes that must be fulfilled to satisfy dependencies. This service will eventually partially replace /_/proxy/tenants/{tenant}/modules . It also allows enabling multiple modules in one transaction. For simulate=true, the response, can be viewed as a recipe for what must be deployed (optionally) and enabled/disabled by the existing tenants-modules CRUD service. operationId: createInstallJob tags: - proxy-tenant-installation requestBody: content: application/json: schema: $ref: '#/components/schemas/TenantModuleDescriptorList' required: true parameters: - $ref: '#/components/parameters/query-pre-release' - $ref: '#/components/parameters/query-npm-snapshot' - $ref: '#/components/parameters/query-install-async' - $ref: '#/components/parameters/query-install-deploy' - $ref: '#/components/parameters/query-install-ignore-errors' - $ref: '#/components/parameters/query-install-invoke' - $ref: '#/components/parameters/query-install-parallel' - $ref: '#/components/parameters/query-install-purge' - $ref: '#/components/parameters/query-install-reinstall' - $ref: '#/components/parameters/query-install-simulate' - $ref: '#/components/parameters/query-install-tenant-parameters' - $ref: '#/components/parameters/query-install-dep-check' summary: Create install job x-summary-source: derived servers: - url: http://localhost:8081 description: Locally deployed server /_/proxy/tenants/{tenant_id}/install/{install_id}: parameters: - name: install_id in: path required: true schema: type: string - name: tenant_id in: path required: true schema: type: string get: responses: '200': description: OK headers: X-Okapi-Trace: $ref: '#/components/headers/X-Okapi-Trace' content: application/json: schema: $ref: '#/components/schemas/InstallJob' '400': description: User error '404': description: Not Found '500': description: Internal error description: Get install job status operationId: getInstallJob tags: - proxy-tenant-installation summary: Get install job x-summary-source: derived delete: responses: '204': description: OK headers: X-Okapi-Trace: $ref: '#/components/headers/X-Okapi-Trace' '400': description: User error '404': description: Not Found '500': description: Internal error operationId: deleteInstallJob tags: - proxy-tenant-installation summary: Delete install job x-summary-source: derived servers: - url: http://localhost:8081 description: Locally deployed server /_/proxy/tenants/{tenant_id}/upgrade: parameters: - name: tenant_id in: path required: true schema: type: string post: responses: '200': description: OK headers: X-Okapi-Trace: $ref: '#/components/headers/X-Okapi-Trace' content: application/json: schema: $ref: '#/components/schemas/TenantModuleDescriptorList' '201': description: Install job created (async mode) headers: Location: description: URI to the install job schema: type: string X-Okapi-Trace: $ref: '#/components/headers/X-Okapi-Trace' content: application/json: schema: $ref: '#/components/schemas/TenantModuleDescriptorList' '400': description: Bad Request '404': description: Not Found '500': description: Server Error description: Upgrade each module to the latest version. The upgrade is rejected if it would violate the interface dependencies of the modules. The response is a list of modules that have been enabled, disabled or upgraded to perform the upgrade. operationId: createUpgradeJob tags: - proxy-tenant-installation parameters: - $ref: '#/components/parameters/query-pre-release' - $ref: '#/components/parameters/query-npm-snapshot' - $ref: '#/components/parameters/query-install-async' - $ref: '#/components/parameters/query-install-deploy' - $ref: '#/components/parameters/query-install-ignore-errors' - $ref: '#/components/parameters/query-install-invoke' - $ref: '#/components/parameters/query-install-parallel' - $ref: '#/components/parameters/query-install-purge' - $ref: '#/components/parameters/query-install-reinstall' - $ref: '#/components/parameters/query-install-simulate' - $ref: '#/components/parameters/query-install-tenant-parameters' - $ref: '#/components/parameters/query-install-dep-check' summary: Create upgrade job x-summary-source: derived servers: - url: http://localhost:8081 description: Locally deployed server components: parameters: query-install-parallel: name: parallel in: query description: 'Number of parallel calls to tenant interfaces of modules. A value of 1 means calls are happening in sequence. If depCheck=false and parallel>1, the invocation will be rejected. ' schema: default: 1 minimum: 1 type: integer query-install-simulate: name: simulate in: query description: Whether the installation is simulated schema: default: false type: boolean query-pre-release: name: preRelease in: query description: Whether to use pre-release in operation. "true": use all modules; "false": releases (no pre-releases); "only": only pre-releases. schema: default: 'true' enum: - 'true' - 'false' - only type: string query-install-dep-check: name: depCheck in: query description: "Whether to check dependencies of modules before being installed. Modules are installed exactly\n in the order supplied by the client. If depCheck=false and parallel>1, the invocation will be\n rejected.\n" schema: default: true type: boolean query-install-tenant-parameters: name: tenantParameters in: query description: Parameters for tenant init schema: type: string query-install-reinstall: name: reinstall in: query description: Whether to install modules even if up-to-update. schema: default: false type: boolean query-install-invoke: name: invoke in: query description: "Whether to invoke for tenant init/permissions/purge. Use\n \"true\" to invoke, \"false\" to not invoke. Any other value\n is a regular expression that is matched against the module ID.\n If that pattern matches, invoke is performed (same as \"true\").\n" schema: default: 'true' type: string query-install-purge: name: purge in: query description: Disabled modules will also be purged. schema: default: false type: boolean query-install-ignore-errors: name: ignoreErrors in: query description: 'Okapi 4.2.0 and later, it is possible to ignore errors during the install operation. This is done by supplying parameter `ignoreErrors=true`. In this case, Okapi will try to upgrade all modules in the modules list, regardless if one of them fails. However, for individual modules, if they fail, their upgrade will not be committed. This is an experimental parameter which was added to be able to inspect all problem(s) with module upgrade(s). ' schema: default: false type: boolean query-install-async: name: async in: query description: Whether to install in the background. schema: default: false type: boolean query-npm-snapshot: name: npmSnapshot in: query description: Whether to use NPM module snapshots in operation. "true": use all modules; "false": releases (no NPM snapshots); "only": only NPM snapshots. schema: default: 'true' enum: - 'true' - 'false' - only type: string query-install-deploy: name: deploy in: query description: Whether to deploy (or undeploy if disabling). schema: default: false type: boolean headers: X-Okapi-Trace: required: false description: Okapi trace and timing schema: type: string schemas: InstallJob: $schema: http://json-schema.org/draft-04/schema# id: InstallJob.json title: InstallJob description: Install job type: object additionalProperties: false properties: id: description: Job ID type: string complete: description: Whether job is complete type: boolean startDate: description: Start date type: string endDate: description: End date type: string modules: description: List of modules involved in install job $ref: '#/components/schemas/TenantModuleDescriptorList' required: - complete - modules TenantModuleDescriptorList: $schema: http://json-schema.org/draft-04/schema# id: TenantModuleDescriptorList.json title: TenantModuleDescriptorList description: List of module transitions type: array items: $ref: '#/components/schemas/TenantModuleDescriptor' TenantModuleDescriptor: $schema: http://json-schema.org/draft-04/schema# id: TenantModuleDescriptor.json title: TenantModuleDescriptor description: Module transitions type: object additionalProperties: false properties: id: description: Module ID (or just product part) type: string from: description: Original Module ID when transitioning from one module to another type: string action: description: Module action type: string enum: - enable - disable - uptodate - suggest - conflict stage: description: Stage for the module type: string enum: - pending - deploy - invoke - undeploy - done message: description: Diagnostic Message type: string required: - id InstallJobList: $schema: http://json-schema.org/draft-04/schema# id: InstallJobList.json title: InstallJobList description: List of install jobs type: array items: $ref: '#/components/schemas/InstallJob' x-refined-from: - folio-mod-okapi-facade-openapi.json - folio-mod-okapi-facade-openapi.yml