# Generated with protoc-gen-openapi # https://github.com/google/gnostic/tree/master/cmd/protoc-gen-openapi openapi: 3.0.3 info: title: Orchestrator API description: Manages the orchestration of components within the Clouditor architecture version: 0.0.1 paths: /v1/orchestrator/assessment_results: get: tags: - Orchestrator description: List all assessment results. Part of the public API, also exposed as REST. operationId: Orchestrator_ListAssessmentResults parameters: - name: filteredCloudServiceId in: query description: Optional. List only assessment results of a specific cloud service. schema: type: string - name: filteredCompliant in: query description: Optional. List only compliant assessment results. schema: type: boolean - name: filteredMetricId in: query description: Optional. List only assessment results of a specific metric id. schema: type: array items: type: string - name: latestByResourceId in: query description: Optional. Latest results grouped by resource_id and metric_id. schema: type: boolean - name: pageSize in: query schema: type: integer format: int32 - name: pageToken in: query schema: type: string - name: orderBy in: query schema: type: string - name: asc in: query schema: type: boolean responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/ListAssessmentResultsResponse' default: description: Default error response content: application/json: schema: $ref: '#/components/schemas/Status' post: tags: - Orchestrator description: Stores the assessment result provided by an assessment tool operationId: Orchestrator_StoreAssessmentResult requestBody: content: application/json: schema: $ref: '#/components/schemas/AssessmentResult' required: true responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/StoreAssessmentResultResponse' default: description: Default error response content: application/json: schema: $ref: '#/components/schemas/Status' /v1/orchestrator/assessment_results/{id}: get: tags: - Orchestrator description: Get an assessment result by ID operationId: Orchestrator_GetAssessmentResult parameters: - name: id in: path required: true schema: type: string responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/AssessmentResult' default: description: Default error response content: application/json: schema: $ref: '#/components/schemas/Status' /v1/orchestrator/assessment_tools: get: tags: - Orchestrator description: |- Lists all assessment tools assessing evidences for the metric given by the passed metric id operationId: Orchestrator_ListAssessmentTools parameters: - name: filterMetricId in: query description: Optional. Filter tools by metric id. schema: type: string - name: pageSize in: query schema: type: integer format: int32 - name: pageToken in: query schema: type: string - name: orderBy in: query schema: type: string - name: asc in: query schema: type: boolean responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/ListAssessmentToolsResponse' default: description: Default error response content: application/json: schema: $ref: '#/components/schemas/Status' post: tags: - Orchestrator description: Registers the passed assessment tool operationId: Orchestrator_RegisterAssessmentTool requestBody: content: application/json: schema: $ref: '#/components/schemas/AssessmentTool' required: true responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/AssessmentTool' default: description: Default error response content: application/json: schema: $ref: '#/components/schemas/Status' /v1/orchestrator/assessment_tools/{tool.id}: put: tags: - Orchestrator description: Updates the assessment tool given by the passed id operationId: Orchestrator_UpdateAssessmentTool parameters: - name: tool.id in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/AssessmentTool' required: true responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/AssessmentTool' default: description: Default error response content: application/json: schema: $ref: '#/components/schemas/Status' /v1/orchestrator/assessment_tools/{toolId}: get: tags: - Orchestrator description: Returns assessment tool given by the passed tool id operationId: Orchestrator_GetAssessmentTool parameters: - name: toolId in: path required: true schema: type: string responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/AssessmentTool' default: description: Default error response content: application/json: schema: $ref: '#/components/schemas/Status' delete: tags: - Orchestrator description: |- Remove assessment tool with passed id from the list of active assessment tools operationId: Orchestrator_DeregisterAssessmentTool parameters: - name: toolId in: path required: true schema: type: string responses: "200": description: OK content: {} default: description: Default error response content: application/json: schema: $ref: '#/components/schemas/Status' /v1/orchestrator/catalogs: get: tags: - Orchestrator description: |- Lists all security controls catalogs. Each catalog includes a list of its categories but no additional sub-resources. operationId: Orchestrator_ListCatalogs parameters: - name: pageSize in: query schema: type: integer format: int32 - name: pageToken in: query schema: type: string - name: orderBy in: query schema: type: string - name: asc in: query schema: type: boolean responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/ListCatalogsResponse' default: description: Default error response content: application/json: schema: $ref: '#/components/schemas/Status' post: tags: - Orchestrator description: Creates a new security controls catalog operationId: Orchestrator_CreateCatalog requestBody: content: application/json: schema: $ref: '#/components/schemas/Catalog' required: true responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/Catalog' default: description: Default error response content: application/json: schema: $ref: '#/components/schemas/Status' /v1/orchestrator/catalogs/{catalog.id}: put: tags: - Orchestrator description: Updates an existing certificate operationId: Orchestrator_UpdateCatalog parameters: - name: catalog.id in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/Catalog' required: true responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/Catalog' default: description: Default error response content: application/json: schema: $ref: '#/components/schemas/Status' /v1/orchestrator/catalogs/{catalogId}: get: tags: - Orchestrator description: |- Retrieves a specific catalog by it's ID. The catalog includes a list of all of it categories as well as the first level of controls in each category. operationId: Orchestrator_GetCatalog parameters: - name: catalogId in: path required: true schema: type: string responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/Catalog' default: description: Default error response content: application/json: schema: $ref: '#/components/schemas/Status' delete: tags: - Orchestrator description: Removes a catalog operationId: Orchestrator_RemoveCatalog parameters: - name: catalogId in: path required: true schema: type: string responses: "200": description: OK content: {} default: description: Default error response content: application/json: schema: $ref: '#/components/schemas/Status' /v1/orchestrator/catalogs/{catalogId}/categories/{categoryName}/controls/{controlId}: get: tags: - Orchestrator description: |- Retrieves a control specified by the catalog ID, the control's category name and the control ID. If present, it also includes a list of sub-controls if present or a list of metrics if no sub-controls but metrics are present. operationId: Orchestrator_GetControl parameters: - name: catalogId in: path required: true schema: type: string - name: categoryName in: path required: true schema: type: string - name: controlId in: path required: true schema: type: string responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/Control' default: description: Default error response content: application/json: schema: $ref: '#/components/schemas/Status' /v1/orchestrator/catalogs/{catalogId}/category/{categoryName}: get: tags: - Orchestrator description: |- Retrieves a category of a catalog specified by the catalog ID and the category name. It includes the first level of controls within each category. operationId: Orchestrator_GetCategory parameters: - name: catalogId in: path required: true schema: type: string - name: categoryName in: path required: true schema: type: string responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/Category' default: description: Default error response content: application/json: schema: $ref: '#/components/schemas/Status' /v1/orchestrator/certificates: get: tags: - Orchestrator description: Lists all target certificates operationId: Orchestrator_ListCertificates parameters: - name: pageSize in: query schema: type: integer format: int32 - name: pageToken in: query schema: type: string - name: orderBy in: query schema: type: string - name: asc in: query schema: type: boolean responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/ListCertificatesResponse' default: description: Default error response content: application/json: schema: $ref: '#/components/schemas/Status' post: tags: - Orchestrator description: Creates a new certificate operationId: Orchestrator_CreateCertificate requestBody: content: application/json: schema: $ref: '#/components/schemas/Certificate' required: true responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/Certificate' default: description: Default error response content: application/json: schema: $ref: '#/components/schemas/Status' /v1/orchestrator/certificates/{certificate.id}: put: tags: - Orchestrator description: Updates an existing certificate operationId: Orchestrator_UpdateCertificate parameters: - name: certificate.id in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/Certificate' required: true responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/Certificate' default: description: Default error response content: application/json: schema: $ref: '#/components/schemas/Status' /v1/orchestrator/certificates/{certificateId}: get: tags: - Orchestrator description: Retrieves a certificate operationId: Orchestrator_GetCertificate parameters: - name: certificateId in: path required: true schema: type: string responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/Certificate' default: description: Default error response content: application/json: schema: $ref: '#/components/schemas/Status' delete: tags: - Orchestrator description: Removes a certificate operationId: Orchestrator_RemoveCertificate parameters: - name: certificateId in: path required: true schema: type: string responses: "200": description: OK content: {} default: description: Default error response content: application/json: schema: $ref: '#/components/schemas/Status' /v1/orchestrator/cloud_services: get: tags: - Orchestrator description: Lists all target cloud services operationId: Orchestrator_ListCloudServices parameters: - name: pageSize in: query schema: type: integer format: int32 - name: pageToken in: query schema: type: string - name: orderBy in: query schema: type: string - name: asc in: query schema: type: boolean responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/ListCloudServicesResponse' default: description: Default error response content: application/json: schema: $ref: '#/components/schemas/Status' post: tags: - Orchestrator description: Registers a new target cloud service operationId: Orchestrator_RegisterCloudService requestBody: content: application/json: schema: $ref: '#/components/schemas/CloudService' required: true responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/CloudService' default: description: Default error response content: application/json: schema: $ref: '#/components/schemas/Status' /v1/orchestrator/cloud_services/{cloudServiceId}: get: tags: - Orchestrator description: Retrieves a target cloud service operationId: Orchestrator_GetCloudService parameters: - name: cloudServiceId in: path required: true schema: type: string responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/CloudService' default: description: Default error response content: application/json: schema: $ref: '#/components/schemas/Status' delete: tags: - Orchestrator description: Removes a target cloud service operationId: Orchestrator_RemoveCloudService parameters: - name: cloudServiceId in: path required: true schema: type: string responses: "200": description: OK content: {} default: description: Default error response content: application/json: schema: $ref: '#/components/schemas/Status' /v1/orchestrator/cloud_services/{cloudServiceId}/metric_configurations: get: tags: - Orchestrator description: |- Lists all a metric configurations (target value and operator) for a specific service ID operationId: Orchestrator_ListMetricConfigurations parameters: - name: cloudServiceId in: path required: true schema: type: string responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/ListMetricConfigurationResponse' default: description: Default error response content: application/json: schema: $ref: '#/components/schemas/Status' /v1/orchestrator/cloud_services/{cloudServiceId}/metric_configurations/{metricId}: get: tags: - Orchestrator description: |- Retrieves a metric configuration (target value and operator) for a specific service and metric ID. operationId: Orchestrator_GetMetricConfiguration parameters: - name: cloudServiceId in: path required: true schema: type: string - name: metricId in: path required: true schema: type: string responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/MetricConfiguration' default: description: Default error response content: application/json: schema: $ref: '#/components/schemas/Status' put: tags: - Orchestrator description: |- Updates a metric configuration (target value and operator) for a specific service and metric ID operationId: Orchestrator_UpdateMetricConfiguration parameters: - name: cloudServiceId in: path required: true schema: type: string - name: metricId in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/MetricConfiguration' required: true responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/MetricConfiguration' default: description: Default error response content: application/json: schema: $ref: '#/components/schemas/Status' /v1/orchestrator/cloud_services/{cloudServiceId}/toes/{catalogId}: get: tags: - Orchestrator description: Retrieves a Target of Evaluation operationId: Orchestrator_GetTargetOfEvaluation parameters: - name: cloudServiceId in: path required: true schema: type: string - name: catalogId in: path required: true schema: type: string responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/TargetOfEvaluation' default: description: Default error response content: application/json: schema: $ref: '#/components/schemas/Status' delete: tags: - Orchestrator description: Removes a Target of Evaluation operationId: Orchestrator_RemoveTargetOfEvaluation parameters: - name: cloudServiceId in: path required: true schema: type: string - name: catalogId in: path required: true schema: type: string responses: "200": description: OK content: {} default: description: Default error response content: application/json: schema: $ref: '#/components/schemas/Status' /v1/orchestrator/cloud_services/{cloudServiceId}/toes/{catalogId}/controls_in_scope: get: tags: - Orchestrator description: Lists all controls in scope of a target of evaluation. operationId: Orchestrator_ListControlsInScope parameters: - name: cloudServiceId in: path required: true schema: type: string - name: catalogId in: path required: true schema: type: string - name: pageSize in: query schema: type: integer format: int32 - name: pageToken in: query schema: type: string - name: orderBy in: query schema: type: string - name: asc in: query schema: type: boolean responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/ListControlsInScopeResponse' default: description: Default error response content: application/json: schema: $ref: '#/components/schemas/Status' ? /v1/orchestrator/cloud_services/{cloudServiceId}/toes/{catalogId}/controls_in_scope/categories/{controlCategoryName}/controls/{controlId} : delete: tags: - Orchestrator description: Adds the selected control as "in scope" for the target of evaluation. operationId: Orchestrator_RemoveControlFromScope parameters: - name: cloudServiceId in: path required: true schema: type: string - name: catalogId in: path required: true schema: type: string - name: controlCategoryName in: path required: true schema: type: string - name: controlId in: path required: true schema: type: string responses: "200": description: OK content: {} default: description: Default error response content: application/json: schema: $ref: '#/components/schemas/Status' /v1/orchestrator/cloud_services/{cloud_service.id}: put: tags: - Orchestrator description: Registers a new target cloud service operationId: Orchestrator_UpdateCloudService parameters: - name: cloud_service.id in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/CloudService' required: true responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/CloudService' default: description: Default error response content: application/json: schema: $ref: '#/components/schemas/Status' ? /v1/orchestrator/cloud_services/{scope.target_of_evaluation_cloud_service_id}/toes/{scope.target_of_evaluation_catalog_id}/controls_in_scope : post: tags: - Orchestrator description: Adds the selected control as "in scope" for the target of evaluation. operationId: Orchestrator_AddControlToScope parameters: - name: scope.target_of_evaluation_cloud_service_id in: path required: true schema: type: string - name: scope.target_of_evaluation_catalog_id in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/ControlInScope' required: true responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/ControlInScope' default: description: Default error response content: application/json: schema: $ref: '#/components/schemas/Status' ? /v1/orchestrator/cloud_services/{scope.target_of_evaluation_cloud_service_id}/toes/{scope.target_of_evaluation_catalog_id}/controls_in_scope/categories/{scope.control_category_name}/controls/{scope.control_id} : put: tags: - Orchestrator description: Updates a particular control in scope, e.g., its monitoring status. operationId: Orchestrator_UpdateControlInScope parameters: - name: scope.target_of_evaluation_cloud_service_id in: path required: true schema: type: string - name: scope.target_of_evaluation_catalog_id in: path required: true schema: type: string - name: scope.control_category_name in: path required: true schema: type: string - name: scope.control_id in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/ControlInScope' required: true responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/ControlInScope' default: description: Default error response content: application/json: schema: $ref: '#/components/schemas/Status' /v1/orchestrator/cloud_services/{target_of_evaluation.cloud_service_id}/toes/{target_of_evaluation.catalog_id}: put: tags: - Orchestrator description: Updates an existing Target of Evaluation operationId: Orchestrator_UpdateTargetOfEvaluation parameters: - name: target_of_evaluation.cloud_service_id in: path required: true schema: type: string - name: target_of_evaluation.catalog_id in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/TargetOfEvaluation' required: true responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/TargetOfEvaluation' default: description: Default error response content: application/json: schema: $ref: '#/components/schemas/Status' /v1/orchestrator/controls: get: tags: - Orchestrator description: |- If no additional parameters are specified, this lists all controls. If a catalog ID and a category name is specified, then only controls containing in this category are returned. operationId: Orchestrator_ListControls parameters: - name: pageSize in: query schema: type: integer format: int32 - name: pageToken in: query schema: type: string - name: orderBy in: query schema: type: string - name: asc in: query schema: type: boolean - name: catalogId in: query description: return either all controls or only the controls of the specified category schema: type: string - name: categoryName in: query schema: type: string responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/ListControlsResponse' default: description: Default error response content: application/json: schema: $ref: '#/components/schemas/Status' /v1/orchestrator/metrics: get: tags: - Orchestrator description: List all metrics provided by the metric catalog operationId: Orchestrator_ListMetrics parameters: - name: pageSize in: query schema: type: integer format: int32 - name: pageToken in: query schema: type: string - name: orderBy in: query schema: type: string - name: asc in: query schema: type: boolean responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/ListMetricsResponse' default: description: Default error response content: application/json: schema: $ref: '#/components/schemas/Status' post: tags: - Orchestrator description: Creates a new metric operationId: Orchestrator_CreateMetric requestBody: content: application/json: schema: $ref: '#/components/schemas/Metric' required: true responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/Metric' default: description: Default error response content: application/json: schema: $ref: '#/components/schemas/Status' /v1/orchestrator/metrics/{implementation.metric_id}/implementation: put: tags: - Orchestrator description: Updates an existing metric implementation operationId: Orchestrator_UpdateMetricImplementation parameters: - name: implementation.metric_id in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/MetricImplementation' required: true responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/MetricImplementation' default: description: Default error response content: application/json: schema: $ref: '#/components/schemas/Status' /v1/orchestrator/metrics/{metric.id}: put: tags: - Orchestrator description: Updates an existing metric operationId: Orchestrator_UpdateMetric parameters: - name: metric.id in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/Metric' required: true responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/Metric' default: description: Default error response content: application/json: schema: $ref: '#/components/schemas/Status' /v1/orchestrator/metrics/{metricId}: get: tags: - Orchestrator description: Returns the metric with the passed metric id operationId: Orchestrator_GetMetric parameters: - name: metricId in: path required: true schema: type: string responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/Metric' default: description: Default error response content: application/json: schema: $ref: '#/components/schemas/Status' /v1/orchestrator/metrics/{metricId}/implementation: get: tags: - Orchestrator description: Returns the metric implementation of the passed metric id operationId: Orchestrator_GetMetricImplementation parameters: - name: metricId in: path required: true schema: type: string responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/MetricImplementation' default: description: Default error response content: application/json: schema: $ref: '#/components/schemas/Status' /v1/orchestrator/runtime_info: get: tags: - Orchestrator description: Get Runtime Information operationId: Orchestrator_GetRuntimeInfo responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/Runtime' default: description: Default error response content: application/json: schema: $ref: '#/components/schemas/Status' /v1/orchestrator/toes: get: tags: - Orchestrator description: Lists all Targets of Evaluation operationId: Orchestrator_ListTargetsOfEvaluation parameters: - name: pageSize in: query schema: type: integer format: int32 - name: pageToken in: query schema: type: string - name: orderBy in: query schema: type: string - name: asc in: query schema: type: boolean - name: cloudServiceId in: query description: We cannot create additional bindings when the parameter is optional so we check for != "" in the method to see if it is set when the service is specified, return all Targets of Evaluation that evaluate the given service for any catalog schema: type: string - name: catalogId in: query description: when the catalog is specified, return all Targets of Evaluation that evaluate the given catalog for any service schema: type: string responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/ListTargetsOfEvaluationResponse' default: description: Default error response content: application/json: schema: $ref: '#/components/schemas/Status' post: tags: - Orchestrator description: Creates a new Target of Evaluation operationId: Orchestrator_CreateTargetOfEvaluation requestBody: content: application/json: schema: $ref: '#/components/schemas/TargetOfEvaluation' required: true responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/TargetOfEvaluation' default: description: Default error response content: application/json: schema: $ref: '#/components/schemas/Status' components: schemas: AllowedValues: type: object properties: values: type: array items: $ref: '#/components/schemas/GoogleProtobufValue' description: Defines a range AssessmentResult: type: object properties: id: type: string description: Assessment result id timestamp: type: string description: Time of assessment format: date-time metricId: type: string description: Reference to the metric the assessment was based on metricConfiguration: $ref: '#/components/schemas/MetricConfiguration' compliant: type: boolean description: 'Compliant case: true or false' evidenceId: type: string description: Reference to the assessed evidence resourceId: type: string description: Reference to the resource of the assessed evidence resourceTypes: type: array items: type: string description: Resource types nonComplianceComments: type: string description: Some comments on the reason for non-compliance cloudServiceId: type: string description: The cloud service which this assessment result belongs to description: A result resource, representing the result after assessing the cloud resource with id resource_id. AssessmentTool: type: object properties: id: type: string name: type: string description: type: string availableMetrics: type: array items: type: string description: a list of metrics that this tool can assess, referred by their ids description: Represents an external tool or service that offers assessments according to certain metrics. Catalog: type: object properties: id: type: string name: type: string description: type: string categories: type: array items: $ref: '#/components/schemas/Category' allInScope: type: boolean description: Certain security catalogs do not allow to select the scope of the controls, but all controls are automatically "in scope", however they can be set to a DELEGATED status. assuranceLevels: type: array items: type: string description: A list of the assurance levels, e.g., basic, substantial and high for the EUCS catalog. Category: type: object properties: name: type: string catalogId: type: string description: Reference to the catalog this category belongs to. description: type: string controls: type: array items: $ref: '#/components/schemas/Control' Certificate: type: object properties: id: type: string name: type: string cloudServiceId: type: string issueDate: type: string expirationDate: type: string standard: type: string assuranceLevel: type: string cab: type: string description: type: string states: type: array items: $ref: '#/components/schemas/State' description: A list of states at specific times description: An ISO17021-based certificate CloudService: type: object properties: id: type: string name: type: string description: type: string catalogsInScope: type: array items: $ref: '#/components/schemas/Catalog' configuredMetrics: type: array items: $ref: '#/components/schemas/Metric' Control: type: object properties: id: type: string description: A short name of the control, e.g. OPS-01, as used in OSCAL; it is not a unique ID! categoryName: type: string categoryCatalogId: type: string name: type: string description: Human-readable name of the control description: type: string description: Description of the control controls: type: array items: $ref: '#/components/schemas/Control' description: List of sub - controls - this is in accordance with the OSCAL model. metrics: type: array items: $ref: '#/components/schemas/Metric' description: metrics contains either a list of reference to metrics - in this case only the id field of the metric is populated - or a list of populated metric meta-data, most likely returned by the database. parentControlId: type: string description: Reference to the parent category this control belongs to. parentControlCategoryName: type: string parentControlCategoryCatalogId: type: string assuranceLevel: type: string description: An assurance level is not offered by every catalog, therefore it is optional. description: Control represents a certain Control that needs to be fulfilled. It could be a Control in a certification catalog. It follows the OSCAL model. A requirement in the EUCS terminology, e.g., is represented as the lowest sub-control. ControlInScope: type: object properties: targetOfEvaluationCloudServiceId: type: string targetOfEvaluationCatalogId: type: string controlId: type: string controlCategoryName: type: string controlCategoryCatalogId: type: string monitoringStatus: enum: - MONITORING_STATUS_UNSPECIFIED - MONITORING_STATUS_AUTOMATICALLY_MONITORED - MONITORING_STATUS_MANUALLY_MONITORED - MONITORING_STATUS_DELEGATED type: string format: enum description: ControlInScope defines a control which is "in scope" of a target of evaluation. Additional meta-data can be defined when a control is in scope, e.g., its monitoring status (continuously monitored, delegated, etc.) Dependency: type: object properties: path: type: string version: type: string GoogleProtobufAny: type: object properties: '@type': type: string description: The type of the serialized message. additionalProperties: true description: Contains an arbitrary serialized message along with a @type that describes the type of the serialized message. GoogleProtobufValue: description: Represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. ListAssessmentResultsResponse: type: object properties: results: type: array items: $ref: '#/components/schemas/AssessmentResult' nextPageToken: type: string ListAssessmentToolsResponse: type: object properties: tools: type: array items: $ref: '#/components/schemas/AssessmentTool' nextPageToken: type: string ListCatalogsResponse: type: object properties: catalogs: type: array items: $ref: '#/components/schemas/Catalog' nextPageToken: type: string ListCertificatesResponse: type: object properties: certificates: type: array items: $ref: '#/components/schemas/Certificate' nextPageToken: type: string ListCloudServicesResponse: type: object properties: services: type: array items: $ref: '#/components/schemas/CloudService' nextPageToken: type: string ListControlsInScopeResponse: type: object properties: controlsInScope: type: array items: $ref: '#/components/schemas/ControlInScope' nextPageToken: type: string ListControlsResponse: type: object properties: controls: type: array items: $ref: '#/components/schemas/Control' nextPageToken: type: string ListMetricConfigurationResponse: type: object properties: configurations: type: object additionalProperties: $ref: '#/components/schemas/MetricConfiguration' description: A map of metric configurations associated by their metric ID ListMetricsResponse: type: object properties: metrics: type: array items: $ref: '#/components/schemas/Metric' nextPageToken: type: string ListTargetsOfEvaluationResponse: type: object properties: targetOfEvaluation: type: array items: $ref: '#/components/schemas/TargetOfEvaluation' nextPageToken: type: string Metric: type: object properties: id: type: string description: Required. The unique identifier of the metric. name: type: string description: Required. The human readable name of the metric. description: type: string description: The description of the metric category: type: string description: The reference to control catalog category or domain scale: enum: - SCALE_UNSPECIFIED - NOMINAL - ORDINAL - METRIC type: string description: The scale of this metric, e.g. categories, ranked data or metric values. format: enum range: $ref: '#/components/schemas/Range' interval: type: integer description: The interval in seconds the evidences must be collected for the respective metric. For now, we are not able to use google.protobuf.Duration because it is converted to a custom object in OpenAPI (https://github.com/google/gnostic/issues/351) format: int64 implementation: $ref: '#/components/schemas/MetricImplementation' description: A metric resource MetricConfiguration: type: object properties: operator: type: string description: The operator to compare the metric, such as == or > targetValue: $ref: '#/components/schemas/GoogleProtobufValue' isDefault: type: boolean description: Whether this configuration is a default configuration updatedAt: type: string description: The last time of update format: date-time metricId: type: string description: The metric this configuration belongs to cloudServiceId: type: string description: The service this configuration belongs to description: Defines the operator and a target value for an individual metric MetricImplementation: type: object properties: metricId: type: string description: The metric which is implemented lang: enum: - LANGUAGE_UNSPECIFIED - LANGUAGE_REGO type: string description: The language this metric is implemented in format: enum code: type: string description: The actual implementation updatedAt: type: string description: The last time of update format: date-time description: MetricImplementation defines the implementation of an individual metric. MinMax: type: object properties: min: type: integer description: Required. format: int64 max: type: integer description: Required. format: int64 description: Defines a range of values through a (inclusive) minimum and a maximum Order: type: object properties: values: type: array items: $ref: '#/components/schemas/GoogleProtobufValue' description: Defines a range of values in a pre-defined order from the lowest to the highest. Range: type: object properties: allowedValues: $ref: '#/components/schemas/AllowedValues' order: $ref: '#/components/schemas/Order' minMax: $ref: '#/components/schemas/MinMax' description: A range resource representing the range of values Runtime: type: object properties: releaseVersion: type: string description: release_version is the latest Clouditor release version for this commit vcs: type: string description: vcs is the used version control system commitHash: type: string description: commit_hash is the current Clouditor commit hash commitTime: type: string description: commit_time is the time of the Clouditor commit format: date-time golangVersion: type: string description: golang_version is the used golang version dependencies: type: array items: $ref: '#/components/schemas/Dependency' description: dependency is a list of used runtime dependencies State: type: object properties: id: type: string state: type: string description: An EUCS-defined state, e.g. `new`, `suspended` or `withdrawn` treeId: type: string timestamp: type: string certificateId: type: string description: Reference to the certificate description: A state of a certificate at a given time Status: type: object properties: code: type: integer description: The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code]. format: int32 message: type: string description: A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client. details: type: array items: $ref: '#/components/schemas/GoogleProtobufAny' description: A list of messages that carry the error details. There is a common set of message types for APIs to use. description: 'The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).' StoreAssessmentResultResponse: type: object properties: {} description: StoreAssessmentResultReponse belongs to StoreAssessmentResult, which uses a custom unary RPC and therefore requires a response message according to the style convention. Since no return values are required, this is empty. TargetOfEvaluation: type: object properties: cloudServiceId: type: string catalogId: type: string assuranceLevel: type: string description: an assurance level is not offered by every catalog, therefore it is optional controlsInScope: type: array items: $ref: '#/components/schemas/Control' description: 'the controls that are in scope of this ToE. Note: For some security catalogs, e.g., the EUCS, a specific set of controls (in the "worst case": all) are automatically in scope. In this case, this list needs auto-filled at an appropriate time, e.g,. in CreateTargetOfEvaluation. Note: Because of limitations of our ORM framework, this field only contains a list of controls that are in scope of the target, but not the actual meta-data associated it with it (which is of message type ControlInScope). In order to retrieve the meta-data of the controls, the RPC ListControlsInScope (or the associated REST path) must be called.' description: A Target of Evaluation binds a cloud service to a catalog, so the service is evaluated regarding this catalog's controls tags: - name: Orchestrator