# 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: filter.certificationTargetId in: query description: Optional. List only assessment results of a specific certification target. schema: type: string - name: filter.compliant in: query description: Optional. List only compliant assessment results. schema: type: boolean - name: filter.metricIds in: query description: Optional. List only assessment results of a specific metric id. schema: type: array items: type: string - name: filter.metricId in: query schema: type: string - name: filter.toolId in: query description: Optional. List only assessment result from a specific assessment tool. schema: type: string - name: filter.assessmentResultIds in: query description: Optional. List only assessment result from a specific list of IDs. 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: 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/audit_scopes: get: tags: - Orchestrator description: Lists all Audit Scopes operationId: Orchestrator_ListAuditScopes parameters: - name: filter.certificationTargetId in: query description: Optional. List only audit scopes of a specific certification target schema: type: string - name: filter.catalogId in: query description: Optional. List only audit scopes that evaluate the given catalog for any certification target 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/ListAuditScopesResponse' default: description: Default error response content: application/json: schema: $ref: '#/components/schemas/Status' post: tags: - Orchestrator description: Creates a new Audit Scope operationId: Orchestrator_CreateAuditScope requestBody: content: application/json: schema: $ref: '#/components/schemas/AuditScope' required: true responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/AuditScope' default: description: Default error response content: application/json: schema: $ref: '#/components/schemas/Status' /v1/orchestrator/audit_scopes/{auditScopeId}: get: tags: - Orchestrator description: Retrieves an Audit Scope operationId: Orchestrator_GetAuditScope parameters: - name: auditScopeId in: path required: true schema: type: string responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/AuditScope' default: description: Default error response content: application/json: schema: $ref: '#/components/schemas/Status' delete: tags: - Orchestrator description: Removes an Audit Scope operationId: Orchestrator_RemoveAuditScope parameters: - name: auditScopeId in: path required: true schema: type: string - name: removeEvaluationResults in: query schema: type: boolean 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: 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: catalogId in: path description: return either all controls or only the controls of the specified category required: true schema: type: string - name: categoryName in: path required: true schema: type: string - name: filter.assuranceLevels in: query description: Optional. Lists only controls with the specified assurance levels. schema: type: array items: 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/ListControlsResponse' 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/catalogs/{catalogId}/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: catalogId in: path description: return either all controls or only the controls of the specified category required: true schema: type: string - name: categoryName in: query schema: type: string - name: filter.assuranceLevels in: query description: Optional. Lists only controls with the specified assurance levels. schema: type: array items: 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/ListControlsResponse' 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/certification_targets: get: tags: - Orchestrator description: Lists all target certification targets operationId: Orchestrator_ListCertificationTargets 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/ListCertificationTargetsResponse' default: description: Default error response content: application/json: schema: $ref: '#/components/schemas/Status' post: tags: - Orchestrator description: Registers a new target certification target operationId: Orchestrator_RegisterCertificationTarget requestBody: content: application/json: schema: $ref: '#/components/schemas/CertificationTarget' required: true responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/CertificationTarget' default: description: Default error response content: application/json: schema: $ref: '#/components/schemas/Status' /v1/orchestrator/certification_targets/statistics: get: tags: - Orchestrator description: Retrieves target certification target statistics operationId: Orchestrator_GetCertificationTargetStatistics parameters: - name: certificationTargetId in: query schema: type: string responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/GetCertificationTargetStatisticsResponse' default: description: Default error response content: application/json: schema: $ref: '#/components/schemas/Status' /v1/orchestrator/certification_targets/{audit_scope.certification_target_id}/audit_scopes/{audit_scope.catalog_id}: put: tags: - Orchestrator description: Updates an existing Audit Scope operationId: Orchestrator_UpdateAuditScope parameters: - name: audit_scope.certification_target_id in: path required: true schema: type: string - name: audit_scope.catalog_id in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/AuditScope' required: true responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/AuditScope' default: description: Default error response content: application/json: schema: $ref: '#/components/schemas/Status' /v1/orchestrator/certification_targets/{certificationTargetId}: get: tags: - Orchestrator description: Retrieves a target certification target operationId: Orchestrator_GetCertificationTarget parameters: - name: certificationTargetId in: path required: true schema: type: string responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/CertificationTarget' default: description: Default error response content: application/json: schema: $ref: '#/components/schemas/Status' delete: tags: - Orchestrator description: Removes a target certification target operationId: Orchestrator_RemoveCertificationTarget parameters: - name: certificationTargetId 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/certification_targets/{certificationTargetId}/metric_configurations: get: tags: - Orchestrator description: |- Lists all metric configurations (target value and operator) for a specific certification target ID operationId: Orchestrator_ListMetricConfigurations parameters: - name: certificationTargetId 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/certification_targets/{certificationTargetId}/metric_configurations/{metricId}: get: tags: - Orchestrator description: |- Retrieves a metric configuration (target value and operator) for a specific certification target and metric ID. operationId: Orchestrator_GetMetricConfiguration parameters: - name: certificationTargetId 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 certification target and metric ID operationId: Orchestrator_UpdateMetricConfiguration parameters: - name: certificationTargetId 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/certification_targets/{certification_target.id}: put: tags: - Orchestrator description: Registers a new target certification target operationId: Orchestrator_UpdateCertificationTarget parameters: - name: certification_target.id in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/CertificationTarget' required: true responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/CertificationTarget' 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: 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 - name: filter.assuranceLevels in: query description: Optional. Lists only controls with the specified assurance levels. schema: type: array items: 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/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: filter.includeDeprecated in: query 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/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' delete: tags: - Orchestrator description: Removes a new metric operationId: Orchestrator_RemoveMetric parameters: - name: metricId 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/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/public/certificates: get: tags: - Orchestrator description: Lists all target certificates without state history operationId: Orchestrator_ListPublicCertificates 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/ListPublicCertificatesResponse' 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' components: schemas: AllowedValues: type: object properties: values: type: array items: $ref: '#/components/schemas/GoogleProtobufValue' description: Defines a range AssessmentResult: required: - id - timestamp - metricId - metricConfiguration - evidenceId - resourceId - resourceTypes - complianceComment - certificationTargetId - toolId 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: allOf: - $ref: '#/components/schemas/MetricConfiguration' description: Data corresponding to the metric by the given metric id 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 complianceComment: type: string description: ComplianceComment contains a human readable description on the reason for (non)-compliance. complianceDetails: type: array items: $ref: '#/components/schemas/ComparisonResult' description: ComplianceDetails contains machine-readable details about which comparisons lead to a (non)-compliance. certificationTargetId: type: string description: The certification target which this assessment result belongs to toolId: type: string description: Reference to the tool which provided the assessment result description: |- A result resource, representing the result after assessing the cloud resource with id resource_id. AssessmentTool: required: - name - availableMetrics 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. AuditScope: required: - id - certificationTargetId - catalogId type: object properties: id: type: string description: Audit Scope ID certificationTargetId: type: string catalogId: type: string assuranceLevel: type: string description: |- an assurance level is not offered by every catalog, therefore it is optional description: |- A Audit Scope binds a certification target to a catalog, so the certification target is evaluated regarding this catalog's controls Catalog: required: - id - name - categories - shortName 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. shortName: type: string description: Catalogs short name, e.g. EUCS metadata: allOf: - $ref: '#/components/schemas/Catalog_Metadata' description: metadata of the catalog Catalog_Metadata: type: object properties: color: type: string description: a color for the certification target used by the UI Category: required: - name - catalogId - controls 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: required: - id - name - certificationTargetId type: object properties: id: type: string name: type: string certificationTargetId: 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 CertificationTarget: required: - id - name - configuredMetrics - targetType type: object properties: id: type: string name: type: string description: type: string configuredMetrics: type: array items: $ref: '#/components/schemas/Metric' createdAt: type: string description: creation time of the certification_target format: date-time updatedAt: type: string description: last update time of the certification_target format: date-time metadata: allOf: - $ref: '#/components/schemas/CertificationTarget_Metadata' description: additional metadata of the certification target, mostly used for the UI targetType: enum: - TARGET_TYPE_UNSPECIFIED - TARGET_TYPE_CLOUD - TARGET_TYPE_PRODUCT - TARGET_TYPE_ORGANIZATION type: string description: 'type of the target to be evaluated: cloud, product or organization' format: enum CertificationTarget_Metadata: type: object properties: labels: type: object additionalProperties: type: string description: a map of key/value pairs, e.g., env:prod icon: type: string description: an icon for the certification target used by the UI ComparisonResult: required: - property - value - operator - targetValue - success type: object properties: property: type: string description: Property is the property that was compared value: allOf: - $ref: '#/components/schemas/GoogleProtobufValue' description: Value is the value in the property operator: type: string description: Operator is the operator used in the comparison targetValue: allOf: - $ref: '#/components/schemas/GoogleProtobufValue' description: TargetValue is the target value used in the comparison success: type: boolean description: Success is true, if the comparison was sucessful description: An optional structure containing more details how a comparison inside an assessment result was done and if it was successful. Control: required: - id - categoryName - categoryCatalogId - name - controls - metrics 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. Dependency: type: object properties: path: type: string version: type: string GetCertificationTargetStatisticsResponse: type: object properties: numberOfDiscoveredResources: type: string description: number of discovered resources per certification target numberOfAssessmentResults: type: string description: number of assessment results per certification target numberOfEvidences: type: string description: number of evidences per certification target numberOfSelectedCatalogs: type: string description: number of selected catalogs per certification target 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 ListAuditScopesResponse: type: object properties: auditScopes: type: array items: $ref: '#/components/schemas/AuditScope' 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 ListCertificationTargetsResponse: required: - targets - targets type: object properties: targets: type: array items: $ref: '#/components/schemas/CertificationTarget' 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: required: - metrics type: object properties: metrics: type: array items: $ref: '#/components/schemas/Metric' nextPageToken: type: string ListPublicCertificatesResponse: type: object properties: certificates: type: array items: $ref: '#/components/schemas/Certificate' nextPageToken: type: string Metric: required: - id - name 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: allOf: - $ref: '#/components/schemas/Range' description: The range of this metric. Depending on the scale. interval: pattern: ^-?(?:0|[1-9][0-9]{0,11})(?:\.[0-9]{1,9})?s$ type: string description: |- The interval in seconds the evidences must be collected for the respective metric. implementation: allOf: - $ref: '#/components/schemas/MetricImplementation' description: |- The implementation of this metric. This ensures that we are modelling an association between a Metric and its MetricImplementation. deprecatedSince: type: string description: |- Optional, but required if the metric is removed. The metric is not deleted for backward compatibility and the timestamp is set to the time of removal. format: date-time description: A metric resource MetricConfiguration: required: - operator - targetValue - isDefault - metricId - certificationTargetId type: object properties: operator: type: string description: The operator to compare the metric, such as == or > targetValue: allOf: - $ref: '#/components/schemas/GoogleProtobufValue' description: The target value 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 certificationTargetId: type: string description: The certification target this configuration belongs to description: Defines the operator and a target value for an individual metric MetricImplementation: required: - metricId - code 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: string description: Required. max: type: string description: Required. 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: allOf: - $ref: '#/components/schemas/AllowedValues' description: used for nominal scale order: allOf: - $ref: '#/components/schemas/Order' description: used for ordinal scale minMax: allOf: - $ref: '#/components/schemas/MinMax' description: used for metric scale 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. tags: - name: Orchestrator