openapi: 3.2.0 info: title: Fenergo Nebula Configuration Release Hub Command Bundle API description: '**Configuration Release Hub Command API**: Configuration Release Hub Command API provides endpoints in order to manage configuration import process. **Configuration Release Hub Command API provides**:' version: '1.0' servers: - url: /configreleasehubcommand security: - Bearer: [] tags: - name: Bundle paths: /api/bundles: post: tags: - Bundle summary: Create a Configuration Bundle description: 'Create Bundle for a given tenant. Required permissions: Following permissions are required: ConfigurationReleaseHubCreateBundle' operationId: CreateBundle parameters: - name: X-TENANT-ID in: header description: The UiD of the tenant representing organization required: true schema: type: string example: b11f8be3-f29b-4959-8964-956d4af7c468 requestBody: description: 'The request containing basic information required to create a new configuration bundle, including its name, description, and the reference date for retrieving configuration items.' content: application/json: schema: allOf: - $ref: '#/components/schemas/CreateBundleRequestDtoServiceRequest' required: true responses: '202': description: Success. Bundle created content: application/json: schema: $ref: '#/components/schemas/BundleVersionDtoServiceResponse' '400': description: Bad request. The request has missing/invalid values content: application/json: schema: $ref: '#/components/schemas/ValidationErrorModelListServiceResponse' '404': description: Resource not found content: application/json: schema: $ref: '#/components/schemas/ObjectServiceResponse' example: data: {} messages: - message: Not Found type: Error errorCode: Error Code '401': description: User is not authorized to perform this request content: application/json: example: message: Unauthorized '403': description: Access to resource is forbidden. content: application/json: schema: $ref: '#/components/schemas/ObjectServiceResponse' example: data: {} messages: - message: 'Access denied. Following permissions are required: Permission1, Permission2' type: Forbidden errorCode: Error Code '500': description: Internal server exception. Please, contact your provider. content: application/json: schema: $ref: '#/components/schemas/ObjectServiceResponse' example: data: null messages: - message: Internal server exception. Please, contact your provider. type: Error errorCode: INTERNAL_SERVER_ERROR '410': description: Endpoint marked as deprecated was terminated. This response will be present only if the endpoint was marked as deprecated and has reached the sunset date. During the deprecation period, the API will include additional 'sunset' and 'deprecation' headers. content: application/json: schema: $ref: '#/components/schemas/StringServiceResponse' example: data: null messages: - message: This endpoint is obsolete and was terminated on yyyy-MM-dd type: Error errorCode: OBSOLETE_ENDPOINT /api/bundles/{bundleVersionId}/draft: post: tags: - Bundle summary: Creates a new draft version of an existing configuration bundle description: 'Required permissions: Following permissions are required: ConfigurationReleaseHubCreateBundle' operationId: CreateBundleVersionDraft parameters: - name: bundleVersionId in: path description: Identifier of the existing bundle configuration. required: true schema: type: string format: uuid - name: X-TENANT-ID in: header description: The UiD of the tenant representing organization required: true schema: type: string example: b11f8be3-f29b-4959-8964-956d4af7c468 responses: '202': description: Success. Bundle draft version created content: application/json: schema: $ref: '#/components/schemas/BundleVersionDtoServiceResponse' '400': description: Bad request. The request has missing/invalid values content: application/json: schema: $ref: '#/components/schemas/ValidationErrorModelListServiceResponse' '404': description: Resource not found content: application/json: schema: $ref: '#/components/schemas/ObjectServiceResponse' example: data: {} messages: - message: Not Found type: Error errorCode: Error Code '401': description: User is not authorized to perform this request content: application/json: example: message: Unauthorized '403': description: Access to resource is forbidden. content: application/json: schema: $ref: '#/components/schemas/ObjectServiceResponse' example: data: {} messages: - message: 'Access denied. Following permissions are required: Permission1, Permission2' type: Forbidden errorCode: Error Code '500': description: Internal server exception. Please, contact your provider. content: application/json: schema: $ref: '#/components/schemas/ObjectServiceResponse' example: data: null messages: - message: Internal server exception. Please, contact your provider. type: Error errorCode: INTERNAL_SERVER_ERROR '410': description: Endpoint marked as deprecated was terminated. This response will be present only if the endpoint was marked as deprecated and has reached the sunset date. During the deprecation period, the API will include additional 'sunset' and 'deprecation' headers. content: application/json: schema: $ref: '#/components/schemas/StringServiceResponse' example: data: null messages: - message: This endpoint is obsolete and was terminated on yyyy-MM-dd type: Error errorCode: OBSOLETE_ENDPOINT /api/bundles/{bundleVersionId}: delete: tags: - Bundle summary: Delete the existing configuration bundle version draft description: 'Required permissions: Following permissions are required: ConfigurationReleaseHubCreateBundle' operationId: DeleteBundleVersionDraft parameters: - name: bundleVersionId in: path description: Identifier of the existing bundle configuration. required: true schema: type: string format: uuid - name: X-TENANT-ID in: header description: The UiD of the tenant representing organization required: true schema: type: string example: b11f8be3-f29b-4959-8964-956d4af7c468 responses: '202': description: Success. Bundle draft version deleted '400': description: Bad request. The request has missing/invalid values content: application/json: schema: $ref: '#/components/schemas/ValidationErrorModelListServiceResponse' '404': description: Resource not found content: application/json: schema: $ref: '#/components/schemas/ObjectServiceResponse' example: data: {} messages: - message: Not Found type: Error errorCode: Error Code '401': description: User is not authorized to perform this request content: application/json: example: message: Unauthorized '403': description: Access to resource is forbidden. content: application/json: schema: $ref: '#/components/schemas/ObjectServiceResponse' example: data: {} messages: - message: 'Access denied. Following permissions are required: Permission1, Permission2' type: Forbidden errorCode: Error Code '500': description: Internal server exception. Please, contact your provider. content: application/json: schema: $ref: '#/components/schemas/ObjectServiceResponse' example: data: null messages: - message: Internal server exception. Please, contact your provider. type: Error errorCode: INTERNAL_SERVER_ERROR '410': description: Endpoint marked as deprecated was terminated. This response will be present only if the endpoint was marked as deprecated and has reached the sunset date. During the deprecation period, the API will include additional 'sunset' and 'deprecation' headers. content: application/json: schema: $ref: '#/components/schemas/StringServiceResponse' example: data: null messages: - message: This endpoint is obsolete and was terminated on yyyy-MM-dd type: Error errorCode: OBSOLETE_ENDPOINT put: tags: - Bundle summary: Save existing configuration bundle version description: 'Required permissions: Following permissions are required: ConfigurationReleaseHubCreateBundle' operationId: SaveBundleVersion parameters: - name: bundleVersionId in: path description: Identifier of the existing bundle configuration. required: true schema: type: string format: uuid - name: X-TENANT-ID in: header description: The UiD of the tenant representing organization required: true schema: type: string example: b11f8be3-f29b-4959-8964-956d4af7c468 requestBody: description: Request object containing Bundle properties content: application/json: schema: allOf: - $ref: '#/components/schemas/SaveBundleVersionDtoServiceRequest' responses: '202': description: Success. Bundle draft version saved content: application/json: schema: $ref: '#/components/schemas/BundleVersionDtoServiceResponse' '400': description: Bad request. The request has missing/invalid values content: application/json: schema: $ref: '#/components/schemas/ValidationErrorModelListServiceResponse' '404': description: Resource not found content: application/json: schema: $ref: '#/components/schemas/ObjectServiceResponse' example: data: {} messages: - message: Not Found type: Error errorCode: Error Code '401': description: User is not authorized to perform this request content: application/json: example: message: Unauthorized '403': description: Access to resource is forbidden. content: application/json: schema: $ref: '#/components/schemas/ObjectServiceResponse' example: data: {} messages: - message: 'Access denied. Following permissions are required: Permission1, Permission2' type: Forbidden errorCode: Error Code '500': description: Internal server exception. Please, contact your provider. content: application/json: schema: $ref: '#/components/schemas/ObjectServiceResponse' example: data: null messages: - message: Internal server exception. Please, contact your provider. type: Error errorCode: INTERNAL_SERVER_ERROR '410': description: Endpoint marked as deprecated was terminated. This response will be present only if the endpoint was marked as deprecated and has reached the sunset date. During the deprecation period, the API will include additional 'sunset' and 'deprecation' headers. content: application/json: schema: $ref: '#/components/schemas/StringServiceResponse' example: data: null messages: - message: This endpoint is obsolete and was terminated on yyyy-MM-dd type: Error errorCode: OBSOLETE_ENDPOINT /api/bundles/{bundleVersionId}/items: post: tags: - Bundle summary: Add configuration items to the specified bundle version description: 'This method adds one or more configuration items to a given bundle version. Required permissions: Following permissions are required: ConfigurationReleaseHubCreateBundle' operationId: AddConfigToTheBundle parameters: - name: bundleVersionId in: path description: Identifier of the existing bundle configuration. required: true schema: type: string format: uuid - name: X-TENANT-ID in: header description: The UiD of the tenant representing organization required: true schema: type: string example: b11f8be3-f29b-4959-8964-956d4af7c468 requestBody: description: The request object containing configuration items to add to the bundle. content: application/json: schema: allOf: - $ref: '#/components/schemas/AddConfigRequestDtoListServiceRequest' responses: '202': description: Configuration items successfully added to the bundle. content: application/json: schema: $ref: '#/components/schemas/SelectedItemDtoIEnumerableServiceResponse' '400': description: Bad request. The request has missing/invalid values content: application/json: schema: $ref: '#/components/schemas/ValidationErrorModelListServiceResponse' '404': description: Resource not found content: application/json: schema: $ref: '#/components/schemas/ObjectServiceResponse' example: data: {} messages: - message: Not Found type: Error errorCode: Error Code '401': description: User is not authorized to perform this request content: application/json: example: message: Unauthorized '403': description: Access to resource is forbidden. content: application/json: schema: $ref: '#/components/schemas/ObjectServiceResponse' example: data: {} messages: - message: 'Access denied. Following permissions are required: Permission1, Permission2' type: Forbidden errorCode: Error Code '500': description: Internal server exception. Please, contact your provider. content: application/json: schema: $ref: '#/components/schemas/ObjectServiceResponse' example: data: null messages: - message: Internal server exception. Please, contact your provider. type: Error errorCode: INTERNAL_SERVER_ERROR '410': description: Endpoint marked as deprecated was terminated. This response will be present only if the endpoint was marked as deprecated and has reached the sunset date. During the deprecation period, the API will include additional 'sunset' and 'deprecation' headers. content: application/json: schema: $ref: '#/components/schemas/StringServiceResponse' example: data: null messages: - message: This endpoint is obsolete and was terminated on yyyy-MM-dd type: Error errorCode: OBSOLETE_ENDPOINT /api/bundles/{bundleVersionId}/items/{configKey}/{configId}: delete: tags: - Bundle summary: Removes a configuration item from the specified bundle version description: 'Required permissions: Following permissions are required: ConfigurationReleaseHubCreateBundle' operationId: RemoveConfigFromBundle parameters: - name: bundleVersionId in: path description: Identifier of the bundle version. required: true schema: type: string format: uuid - name: configKey in: path description: Configuration key to remove. required: true schema: type: string - name: configId in: path description: Configuration identifier to remove. required: true schema: type: string - name: X-TENANT-ID in: header description: The UiD of the tenant representing organization required: true schema: type: string example: b11f8be3-f29b-4959-8964-956d4af7c468 responses: '202': description: Configuration item successfully removed from the bundle. '400': description: 'Bad request: missing or invalid parameters.' content: application/json: schema: $ref: '#/components/schemas/ValidationErrorModelListServiceResponse' '404': description: Resource not found content: application/json: schema: $ref: '#/components/schemas/ObjectServiceResponse' example: data: {} messages: - message: Not Found type: Error errorCode: Error Code '401': description: User is not authorized to perform this request content: application/json: example: message: Unauthorized '403': description: Access to resource is forbidden. content: application/json: schema: $ref: '#/components/schemas/ObjectServiceResponse' example: data: {} messages: - message: 'Access denied. Following permissions are required: Permission1, Permission2' type: Forbidden errorCode: Error Code '500': description: Internal server exception. Please, contact your provider. content: application/json: schema: $ref: '#/components/schemas/ObjectServiceResponse' example: data: null messages: - message: Internal server exception. Please, contact your provider. type: Error errorCode: INTERNAL_SERVER_ERROR '410': description: Endpoint marked as deprecated was terminated. This response will be present only if the endpoint was marked as deprecated and has reached the sunset date. During the deprecation period, the API will include additional 'sunset' and 'deprecation' headers. content: application/json: schema: $ref: '#/components/schemas/StringServiceResponse' example: data: null messages: - message: This endpoint is obsolete and was terminated on yyyy-MM-dd type: Error errorCode: OBSOLETE_ENDPOINT /api/bundles/{bundleVersionId}/submit: put: tags: - Bundle summary: Submit existing configuration bundle version description: 'Required permissions: Following permissions are required: ConfigurationReleaseHubCreateBundle' operationId: SubmitBundleVersion parameters: - name: bundleVersionId in: path description: Identifier of the existing bundle configuration. required: true schema: type: string format: uuid - name: X-TENANT-ID in: header description: The UiD of the tenant representing organization required: true schema: type: string example: b11f8be3-f29b-4959-8964-956d4af7c468 responses: '202': description: Success. Bundle draft version submitted content: application/json: schema: $ref: '#/components/schemas/ServiceResponse' '400': description: Bad request. The request has missing/invalid values content: application/json: schema: $ref: '#/components/schemas/ValidationErrorModelListServiceResponse' '404': description: Resource not found content: application/json: schema: $ref: '#/components/schemas/ObjectServiceResponse' example: data: {} messages: - message: Not Found type: Error errorCode: Error Code '401': description: User is not authorized to perform this request content: application/json: example: message: Unauthorized '403': description: Access to resource is forbidden. content: application/json: schema: $ref: '#/components/schemas/ObjectServiceResponse' example: data: {} messages: - message: 'Access denied. Following permissions are required: Permission1, Permission2' type: Forbidden errorCode: Error Code '500': description: Internal server exception. Please, contact your provider. content: application/json: schema: $ref: '#/components/schemas/ObjectServiceResponse' example: data: null messages: - message: Internal server exception. Please, contact your provider. type: Error errorCode: INTERNAL_SERVER_ERROR '410': description: Endpoint marked as deprecated was terminated. This response will be present only if the endpoint was marked as deprecated and has reached the sunset date. During the deprecation period, the API will include additional 'sunset' and 'deprecation' headers. content: application/json: schema: $ref: '#/components/schemas/StringServiceResponse' example: data: null messages: - message: This endpoint is obsolete and was terminated on yyyy-MM-dd type: Error errorCode: OBSOLETE_ENDPOINT components: schemas: AddConfigRequestDto: required: - configItems - configKey type: object properties: configKey: minLength: 1 type: string configItems: type: array items: $ref: '#/components/schemas/AddConfigItemDto' additionalProperties: false SelectedItemStatus: enum: - DependencyCalculation - Error - Ready type: string SaveBundleVersionDto: required: - configurationAsOfDate - name type: object properties: name: maxLength: 100 minLength: 1 type: string description: maxLength: 400 type: - string - 'null' versionNotes: maxLength: 400 type: - string - 'null' configurationAsOfDate: minLength: 1 type: string additionalProperties: false ServiceResponse: type: object properties: data: type: - string - 'null' messages: type: - array - 'null' items: $ref: '#/components/schemas/ServiceResponseMessage' additionalProperties: false SaveBundleVersionDtoServiceRequest: required: - data type: object properties: data: allOf: - $ref: '#/components/schemas/SaveBundleVersionDto' additionalProperties: false BundleVersionDtoServiceResponse: type: object properties: data: allOf: - $ref: '#/components/schemas/BundleVersionDto' messages: type: - array - 'null' items: $ref: '#/components/schemas/ServiceResponseMessage' additionalProperties: false BundleVersionDto: type: object properties: bundleId: type: string format: uuid bundleVersionId: type: string format: uuid name: type: - string - 'null' description: type: - string - 'null' versionNotes: type: - string - 'null' createdAt: type: string format: date-time createdBy: type: - string - 'null' configurationAsOfDate: type: string format: date publishedAt: type: - string - 'null' format: date-time publishedBy: type: - string - 'null' bundleVersionNumber: type: integer format: int32 status: allOf: - $ref: '#/components/schemas/BundleStatus' additionalProperties: false SelectConfigItemType: enum: - Auto - Manual type: string SelectedItemDto: type: object properties: configId: type: - string - 'null' configName: type: - string - 'null' configVersionKey: type: - string - 'null' versionLabel: type: - string - 'null' versionNotes: type: - string - 'null' dependencies: type: - array - 'null' items: $ref: '#/components/schemas/DependencyRecordDto' effectiveFrom: type: - string - 'null' format: date-time type: allOf: - $ref: '#/components/schemas/SelectConfigItemType' configKey: type: - string - 'null' selectedItemStatus: allOf: - $ref: '#/components/schemas/SelectedItemStatus' additionalProperties: false SelectedItemDtoIEnumerableServiceResponse: type: object properties: data: type: - array - 'null' items: $ref: '#/components/schemas/SelectedItemDto' messages: type: - array - 'null' items: $ref: '#/components/schemas/ServiceResponseMessage' additionalProperties: false DependencyRecordDto: type: object properties: dependencyId: type: - string - 'null' configKey: type: - string - 'null' name: type: - string - 'null' dependencyVersionKey: type: - string - 'null' additionalProperties: false ValidationErrorModelListServiceResponse: type: object properties: data: type: - array - 'null' items: $ref: '#/components/schemas/ValidationErrorModel' messages: type: - array - 'null' items: $ref: '#/components/schemas/ServiceResponseMessage' additionalProperties: false example: data: - propertyName: data errorMessage: Data is required attemptedValue: '' errorCode: NotNullValidator messages: - message: Data is required type: Error errorCode: Error Code ObjectServiceResponse: type: object properties: data: {} messages: type: - array - 'null' items: $ref: '#/components/schemas/ServiceResponseMessage' additionalProperties: false CreateBundleRequestDto: required: - name type: object properties: name: maxLength: 100 minLength: 1 type: string description: maxLength: 400 type: - string - 'null' additionalProperties: false StringServiceResponse: type: object properties: data: type: - string - 'null' messages: type: - array - 'null' items: $ref: '#/components/schemas/ServiceResponseMessage' additionalProperties: false AddConfigRequestDtoListServiceRequest: required: - data type: object properties: data: type: array items: $ref: '#/components/schemas/AddConfigRequestDto' additionalProperties: false CreateBundleRequestDtoServiceRequest: required: - data type: object properties: data: allOf: - $ref: '#/components/schemas/CreateBundleRequestDto' additionalProperties: false BundleStatus: enum: - Draft - Pending - Failed - Published - Deleted type: string ValidationErrorModel: type: object properties: propertyName: type: - string - 'null' errorMessage: type: - string - 'null' attemptedValue: {} errorCode: type: - string - 'null' additionalProperties: false AddConfigItemDto: required: - configId type: object properties: configId: minLength: 1 type: string configVersion: type: - string - 'null' additionalProperties: false ServiceResponseMessage: type: object properties: message: type: - string - 'null' type: type: - string - 'null' errorCode: type: - string - 'null' additionalProperties: false securitySchemes: Bearer: type: apiKey description: Please insert JWT with Bearer into field name: Authorization in: header