Chef Software ReportingService API
The ReportingService API from Chef Software — 12 operation(s) for reportingservice.
The ReportingService API from Chef Software — 12 operation(s) for reportingservice.
swagger: '2.0'
info:
title: external/applications/applications.proto ApplicationsService ReportingService API
version: version not set
consumes:
- application/json
produces:
- application/json
tags:
- name: ReportingService
paths:
/api/v0/compliance/reporting/controls:
post:
summary: List Controls
description: 'Lists controls from the last run, with optional filtering.
Supports filtering,pagination but not sorting.
Limited to 100 results by default.
Authorization Action:
```
compliance:controlItems:list
```'
operationId: ReportingService_ListControlItems
responses:
'200':
description: A successful response.
schema:
$ref: '#/definitions/chef.automate.api.compliance.reporting.v1.ControlItems'
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/grpc.gateway.runtime.Error'
parameters:
- name: body
in: body
required: true
schema:
$ref: '#/definitions/chef.automate.api.compliance.reporting.v1.ControlItemRequest'
tags:
- ReportingService
/api/v0/compliance/reporting/controls/search:
post:
summary: List Controls Search
description: 'Lists controls from the last run, with optional filtering.
Supports filtering,pagination but not sorting.
Limited to 100 results by default.
Gets the summary of each control.
The API supports date range filters when `end_time` is the current time
and `start_time` is any time in last 90 days. In case, the `end_time` is any
date other than the current date, the API would return data only for the `end_time`.
Example:
```
{"filters":
[
{"type":"start_time","values":["2019-09-09T00:00:00Z"]},
{"type":"end_time","values":["2019-09-11T23:59:59Z"]}
],
"page_number":1, "size": 3,
}
```
Authorization Action:
```
compliance:controlItems:list
```'
operationId: ReportingService_ListControlItemsRange
responses:
'200':
description: A successful response.
schema:
$ref: '#/definitions/chef.automate.api.compliance.reporting.v1.ControlItems'
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/grpc.gateway.runtime.Error'
parameters:
- name: body
in: body
required: true
schema:
$ref: '#/definitions/chef.automate.api.compliance.reporting.v1.ControlItemRequest'
tags:
- ReportingService
/api/v0/compliance/reporting/nodeheader/id/{id}:
post:
summary: Show Node Header Info From Report ID
description: 'Show specific details about node, report and metadate provided the report ID.
Supports filtering, but not pagination or sorting.
Authorization Action:
```
compliance:nodeheader:get
```'
operationId: ReportingService_ReadNodeHeader
responses:
'200':
description: A successful response.
schema:
$ref: '#/definitions/chef.automate.api.compliance.reporting.v1.NodeHeaderInfo'
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/grpc.gateway.runtime.Error'
parameters:
- name: id
description: Unique identifier.
in: path
required: true
type: string
- name: body
in: body
required: true
schema:
$ref: '#/definitions/chef.automate.api.compliance.reporting.v1.Query'
tags:
- ReportingService
/api/v0/compliance/reporting/nodes/id/{id}:
get:
summary: Show Node by ID
description: 'Show a specific node by ID.
Supports filtering by profile or control.
Does not support pagination or sorting.
Authorization Action:
```
compliance:reportNodes:get
```'
operationId: ReportingService_ReadNode
responses:
'200':
description: A successful response.
schema:
$ref: '#/definitions/chef.automate.api.compliance.reporting.v1.Node'
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/grpc.gateway.runtime.Error'
parameters:
- name: id
description: Unique identifier.
in: path
required: true
type: string
tags:
- ReportingService
/api/v0/compliance/reporting/nodes/search:
post:
summary: List Nodes
description: 'List all nodes, with optional filtering, pagination, and sorting.
Max return payload size is 4MB, use pagination to fetch remaining data.
| Sort parameter | Sort value |
| --- | --- |
| environment | environment.lower |
| latest_report.controls.failed.critical | controls_sums.failed.critical |
| latest_report.controls.failed.total | controls_sums.failed.total |
| latest_report.end_time (default) | end_time |
| latest_report.status | status |
| name | node_name.lower |
| platform | platform.full |
| status | status |
The API supports date range filters when `end_time` is the current time
and `start_time` is any time in last 90 days. In case, the `end_time` is any
date other than the current date, the API would return data only for the `end_time`.
Example:
```
{
"filters":[
{"type":"environment","values":["dev*"]},
{"type":"start_time","values":["2019-10-26T00:00:00Z"]},
{"type":"end_time","values":["2019-11-05T23:59:59Z"]}
],
"page":1,"per_page":100,
"sort":"environment","order":"ASC"
}
```
Authorization Action:
```
compliance:reportNodes:list
```'
operationId: ReportingService_ListNodes
responses:
'200':
description: A successful response.
schema:
$ref: '#/definitions/chef.automate.api.compliance.reporting.v1.Nodes'
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/grpc.gateway.runtime.Error'
parameters:
- name: body
in: body
required: true
schema:
$ref: '#/definitions/chef.automate.api.compliance.reporting.v1.Query'
tags:
- ReportingService
/api/v0/compliance/reporting/profiles:
post:
summary: List Profiles
description: 'List all profiles in use, with optional filtering.
Supports pagination, filtering, and sorting.
Valid sort fields: name, title
The API supports date range filters when `end_time` is the current time
and `start_time` is any time in last 90 days. In case, the `end_time` is any
date other than the current date, the API would return data only for the `end_time`.
Example:
```
{"filters":
[
{"type":"start_time","values":["2019-09-09T00:00:00Z"]},
{"type":"end_time","values":["2019-09-11T23:59:59Z"]}
],
"page":1, "per_page": 3,
}
```
Authorization Action:
```
compliance:reportProfiles:list
```'
operationId: ReportingService_ListProfiles
responses:
'200':
description: A successful response.
schema:
$ref: '#/definitions/chef.automate.api.compliance.reporting.v1.ProfileMins'
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/grpc.gateway.runtime.Error'
parameters:
- name: body
in: body
required: true
schema:
$ref: '#/definitions/chef.automate.api.compliance.reporting.v1.Query'
tags:
- ReportingService
/api/v0/compliance/reporting/report-ids:
post:
summary: List Report IDs
description: 'List all IDs for the latest report for each node, with optional filtering.
Supports filtering, but not pagination or sorting.
Including more than one value for `profile_id`, or `profile_name` is not allowed.
Including values for both `profile_id` and `profile_name` in one request is not allowed.
Max return payload size is 4MB.
Authorization Action:
```
compliance:reportids:list
```'
operationId: ReportingService_ListReportIds
responses:
'200':
description: A successful response.
schema:
$ref: '#/definitions/chef.automate.api.compliance.reporting.v1.ReportIds'
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/grpc.gateway.runtime.Error'
parameters:
- name: body
in: body
required: true
schema:
$ref: '#/definitions/chef.automate.api.compliance.reporting.v1.Query'
tags:
- ReportingService
/api/v0/compliance/reporting/reportcontrols/id/{id}:
post:
summary: List Control Info
description: "Lists controls from the last run, with optional filtering.\nSupports filtering and pagination. Maximum 100 search can be \nmade when specifying the pagination from and size. Sum of from+size\nshould be less that 100. By default 10 results will be returned.\nAuthorization Action:\n```\ncompliance:ControlElements:list\n```"
operationId: ReportingService_ListControlInfo
responses:
'200':
description: A successful response.
schema:
$ref: '#/definitions/chef.automate.api.compliance.reporting.v1.ControlElements'
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/grpc.gateway.runtime.Error'
parameters:
- name: id
description: Unique identifier.
in: path
required: true
type: string
- name: body
in: body
required: true
schema:
$ref: '#/definitions/chef.automate.api.compliance.reporting.v1.Query'
tags:
- ReportingService
/api/v0/compliance/reporting/reportmanager/export:
post:
summary: Export reports
description: 'Export multiple reports.
Supports filtering by profile or control. API returns an acknowledgement ID.
Authorization Action:
```
compliance:reports:list
```'
operationId: ReportingService_ExportReportManager
responses:
'200':
description: A successful response.
schema:
$ref: '#/definitions/chef.automate.api.compliance.reporting.v1.CustomReportResponse'
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/grpc.gateway.runtime.Error'
parameters:
- name: body
in: body
required: true
schema:
$ref: '#/definitions/chef.automate.api.compliance.reporting.v1.Query'
tags:
- ReportingService
/api/v0/compliance/reporting/reports:
post:
summary: List Reports
description: 'Makes a list of reports. Adding a filter makes a list of all node reports that meet the filter criteria.
Supports pagination, filtering, and sorting.
Max return payload size is 4MB, use pagination to fetch remaining data.
Valid sort fields: latest_report.controls.failed.critical, latest_report.controls.failed.total, latest_report.end_time, latest_report.status, node_name
Example:
```
{"filters":
[
{"type":"start_time","values":["2019-09-09T00:00:00Z"]},
{"type":"end_time","values":["2019-09-11T23:59:59Z"]}
],
"page":1, "per_page": 3,
"sort": "latest_report.status", "order": "ASC"
}
```
Authorization Action:
```
compliance:reports:list
```'
operationId: ReportingService_ListReports
responses:
'200':
description: A successful response.
schema:
$ref: '#/definitions/chef.automate.api.compliance.reporting.v1.ReportsSummaryLevelOne'
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/grpc.gateway.runtime.Error'
parameters:
- name: body
in: body
required: true
schema:
$ref: '#/definitions/chef.automate.api.compliance.reporting.v1.Query'
tags:
- ReportingService
/api/v0/compliance/reporting/reports/id/{id}:
post:
summary: Show Report by ID
description: 'Show a specific report by ID. Supports filtering, but not pagination or sorting.
Including more than one value for `profile_id`, or `profile_name` is not allowed.
Including values for both `profile_id` and `profile_name` in one request is not allowed.
Authorization Action:
```
compliance:reports:get
```'
operationId: ReportingService_ReadReport
responses:
'200':
description: A successful response.
schema:
$ref: '#/definitions/chef.automate.api.compliance.reporting.v1.Report'
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/grpc.gateway.runtime.Error'
parameters:
- name: id
description: Unique identifier.
in: path
required: true
type: string
- name: body
in: body
required: true
schema:
$ref: '#/definitions/chef.automate.api.compliance.reporting.v1.Query'
tags:
- ReportingService
/api/v0/compliance/reporting/suggestions:
post:
summary: List Reporting Suggestions
description: 'Get suggestions for compliance reporting resources based on matching text substrings.
Supports filtering, but not pagination or sorting.
`type` parameter is required. It must be one of the parameters from the following table.
| Suggestion type parameter | Suggestion type value |
| --- | --- |
| chef_server | source_fqdn |
| chef_tags | chef_tags |
| control | profiles.controls.title |
| control_tag_key | profiles.controls.string_tags.key |
| control_tag_value | profiles.controls.string_tags.values |
| environment | environment |
| inspec_version | version |
| node | node_name |
| organization | organization_name |
| platform | platform.name |
| platform_with_version | platform.full |
| policy_group | policy_group |
| policy_name | policy_name |
| profile | profiles.title |
| profile_with_version | profiles.full |
| recipe | recipes |
| role | roles |
Example:
```
{
"type":"environment",
"text":"aws*",
"filters":[
{"type":"start_time","values":["2019-10-26T00:00:00Z"]},
{"type":"end_time","values":["2019-11-05T23:59:59Z"]}
]
}
```
Authorization Action:
```
compliance:reportSuggestions:list
```'
operationId: ReportingService_ListSuggestions
responses:
'200':
description: A successful response.
schema:
$ref: '#/definitions/chef.automate.api.compliance.reporting.v1.Suggestions'
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/grpc.gateway.runtime.Error'
parameters:
- name: body
in: body
required: true
schema:
$ref: '#/definitions/chef.automate.api.compliance.reporting.v1.SuggestionRequest'
tags:
- ReportingService
definitions:
chef.automate.api.compliance.reporting.v1.SourceLocation:
type: object
properties:
ref:
type: string
description: The source code file the control is defined in.
line:
type: integer
format: int32
description: The line number the control is defined on.
chef.automate.api.compliance.reporting.v1.ControlItemRequest:
type: object
properties:
text:
type: string
description: The term to use to match resources on.
size:
type: integer
format: int32
description: The maximum number of controls to return (Default 100).
page_number:
type: integer
format: int32
title: The offset for paginating requests. An offset defines a place in the results in order to show the next page of the results. (Default 1)
filters:
type: array
items:
$ref: '#/definitions/chef.automate.api.compliance.reporting.v1.ListFilter'
description: The criteria used to filter the controls returned.
chef.automate.api.compliance.reporting.v1.ProfileCounts:
type: object
properties:
total:
type: integer
format: int32
description: The total number of nodes matching the filters.
failed:
type: integer
format: int32
description: The total number of failed nodes matching the filters.
skipped:
type: integer
format: int32
description: The total number of skipped nodes matching the filters.
passed:
type: integer
format: int32
description: The total number of passing nodes matching the filters.
waived:
type: integer
format: int32
description: The total number of waived nodes matching the filters.
description: Stats on the statuses of nodes matching the filters.
chef.automate.api.compliance.reporting.v1.Kv:
type: object
properties:
key:
type: string
description: The key of the tag.
value:
type: string
description: The value of the tag.
chef.automate.api.compliance.reporting.v1.Total:
type: object
properties:
total:
type: integer
format: int32
description: The total number of controls.
description: A subtotal of controls.
chef.automate.api.compliance.reporting.v1.Attribute:
type: object
properties:
name:
type: string
description: The name of the attribute.
options:
$ref: '#/definitions/chef.automate.api.compliance.reporting.v1.Option'
description: The options defined for the attribute.
chef.automate.api.compliance.reporting.v1.Failed:
type: object
properties:
total:
type: integer
format: int32
description: The total number of failed controls.
minor:
type: integer
format: int32
description: The number of failed controls with minor severity.
major:
type: integer
format: int32
description: The number of failed controls with major severity.
critical:
type: integer
format: int32
description: The number of failed controls with critical severity.
description: Stats of failed controls.
google.protobuf.Any:
type: object
properties:
type_url:
type: string
description: "A URL/resource name that uniquely identifies the type of the serialized\nprotocol buffer message. This string must contain at least\none \"/\" character. The last segment of the URL's path must represent\nthe fully qualified name of the type (as in\n`path/google.protobuf.Duration`). The name should be in a canonical form\n(e.g., leading \".\" is not accepted).\n\nIn practice, teams usually precompile into the binary all types that they\nexpect it to use in the context of Any. However, for URLs which use the\nscheme `http`, `https`, or no scheme, one can optionally set up a type\nserver that maps type URLs to message definitions as follows:\n\n* If no scheme is provided, `https` is assumed.\n* An HTTP GET on the URL must yield a [google.protobuf.Type][]\n value in binary format, or produce an error.\n* Applications are allowed to cache lookup results based on the\n URL, or have them precompiled into a binary to avoid any\n lookup. Therefore, binary compatibility needs to be preserved\n on changes to types. (Use versioned type names to manage\n breaking changes.)\n\nNote: this functionality is not currently available in the official\nprotobuf release, and it is not used for type URLs beginning with\ntype.googleapis.com.\n\nSchemes other than `http`, `https` (or the empty scheme) might be\nused with implementation specific semantics."
value:
type: string
format: byte
description: Must be a valid serialized protocol buffer of the above specified type.
description: "`Any` contains an arbitrary serialized protocol buffer message along with a\nURL that describes the type of the serialized message.\n\nProtobuf library provides support to pack/unpack Any values in the form\nof utility functions or additional generated methods of the Any type.\n\nExample 1: Pack and unpack a message in C++.\n\n Foo foo = ...;\n Any any;\n any.PackFrom(foo);\n ...\n if (any.UnpackTo(&foo)) {\n ...\n }\n\nExample 2: Pack and unpack a message in Java.\n\n Foo foo = ...;\n Any any = Any.pack(foo);\n ...\n if (any.is(Foo.class)) {\n foo = any.unpack(Foo.class);\n }\n\n Example 3: Pack and unpack a message in Python.\n\n foo = Foo(...)\n any = Any()\n any.Pack(foo)\n ...\n if any.Is(Foo.DESCRIPTOR):\n any.Unpack(foo)\n ...\n\n Example 4: Pack and unpack a message in Go\n\n foo := &pb.Foo{...}\n any, err := anypb.New(foo)\n if err != nil {\n ...\n }\n ...\n foo := &pb.Foo{}\n if err := any.UnmarshalTo(foo); err != nil {\n ...\n }\n\nThe pack methods provided by protobuf library will by default use\n'type.googleapis.com/full.type.name' as the type URL and the unpack\nmethods only use the fully qualified type name after the last '/'\nin the type URL, for example \"foo.bar.com/x/y.z\" will yield type\nname \"y.z\".\n\n\nJSON\n====\nThe JSON representation of an `Any` value uses the regular\nrepresentation of the deserialized, embedded message, with an\nadditional field `@type` which contains the type URL. Example:\n\n package google.profile;\n message Person {\n string first_name = 1;\n string last_name = 2;\n }\n\n {\n \"@type\": \"type.googleapis.com/google.profile.Person\",\n \"firstName\": <string>,\n \"lastName\": <string>\n }\n\nIf the embedded message type is well-known and has a custom JSON\nrepresentation, that representation will be embedded adding a field\n`value` which holds the custom JSON in addition to the `@type`\nfield. Example (for message [google.protobuf.Duration][]):\n\n {\n \"@type\": \"type.googleapis.com/google.protobuf.Duration\",\n \"value\": \"1.212s\"\n }"
chef.automate.api.compliance.reporting.v1.ControlSummary:
type: object
properties:
total:
type: integer
format: int32
description: The total number of controls in the report.
passed:
$ref: '#/definitions/chef.automate.api.compliance.reporting.v1.Total'
description: Intentionally blank.
skipped:
$ref: '#/definitions/chef.automate.api.compliance.reporting.v1.Total'
description: Intentionally blank.
failed:
$ref: '#/definitions/chef.automate.api.compliance.reporting.v1.Failed'
description: Intentionally blank.
waived:
$ref: '#/definitions/chef.automate.api.compliance.reporting.v1.Total'
description: Intentionally blank.
description: A minimal representation of the statuses of the controls in the report.
chef.automate.api.compliance.reporting.v1.RemovedResultsCounts:
type: object
properties:
failed:
type: integer
format: int32
title: The number of results with status of `failed` that have been trimmed (removed) from a control
skipped:
type: integer
format: int32
title: The number of results with status of `skipped` that have been trimmed (removed) from a control
passed:
type: integer
format: int32
title: The number of results with status of `passed` that have been trimmed (removed) from a control
chef.automate.api.compliance.reporting.v1.ListFilter:
type: object
properties:
values:
type: array
items:
type: string
description: Filters applied to the list.
type:
type: string
description: The field to filter on.
chef.automate.api.compliance.reporting.v1.Group:
type: object
properties:
id:
type: string
description: The name of the file the controls are defined in.
title:
type: string
description: The title of control group.
controls:
type: array
items:
type: string
description: The ids of the controls defined in this file.
chef.automate.api.compliance.reporting.v1.ProfileMins:
type: object
properties:
profiles:
type: array
items:
$ref: '#/definitions/chef.automate.api.compliance.reporting.v1.ProfileMin'
description: Minimal representations of the profiles matching the filters.
counts:
$ref: '#/definitions/chef.automate.api.compliance.reporting.v1.ProfileCounts'
description: Intentionally blank.
chef.automate.api.compliance.reporting.v1.Suggestions:
type: object
properties:
suggestions:
type: array
items:
$ref: '#/definitions/chef.automate.api.compliance.reporting.v1.Suggestion'
description: The list of returned suggestions.
chef.automate.api.compliance.reporting.v1.OrigWaiverData:
type: object
properties:
expiration_date:
type: string
justification:
type: string
run:
type: boolean
skipped_due_to_waiver:
type: boolean
message:
type: string
title: 'OrigWaiverData as it originally came from the InSpec report
Will supplement this with waived_str to make consumption easier'
chef.automate.api.compliance.reporting.v1.Statistics:
type: object
properties:
duration:
type: number
format: float
description: The duration of the report's generation time.
description: Statistics of the report's run.
chef.automate.api.compliance.reporting.v1.ProfileMin:
type: object
properties:
name:
type: string
description: The name of the profile.
title:
type: string
description: The profile title.
id:
type: string
description: The profile ID.
version:
type: string
description: The profile version.
status:
type: string
description: The aggregated status of the profile across the nodes it has been run on.
description: Minimal representation of a profile.
chef.automate.api.compliance.reporting.v1.NodeHeaderProfileInfo:
type: object
properties:
name:
type: string
description: The name of the profile. Must be unique.
status:
type: string
description: The status of the profile in the generated report.
status_message:
type: string
description: A message to detail the reason why a profile is skipped or failed in the generated report.
grpc.gateway.runtime.Error:
type: object
properties:
error:
type: string
code:
type: integer
format: int32
message:
type: string
details:
type: array
items:
$ref: '#/definitions/google.protobuf.Any'
chef.automate.api.compliance.reporting.v1.Control:
type: object
properties:
id:
type: string
description: The unique ID of this control.
code:
type: string
description: The full ruby code of the control defined in the profile.
desc:
type: string
description: The full description of the control.
impact:
type: number
format: float
description: The severity of the control.
title:
type: string
description: The compact description of the control.
source_location:
$ref: '#/definitions/chef.automate.api.compliance.reporting.v1.SourceLocation'
description: Intentionally blank.
results:
type: array
items:
$ref: '#/definitions/chef.automate.api.compliance.reporting.v1.Result'
description: The results of running all tests defined in the control against the node.
refs:
type: array
items:
$ref: '#/definitions/chef.automate.api.compliance.reporting.v1.Ref'
description: External supporting documents for the control.
tags:
type: string
description: Metadata defined on the control in key-value format.
waived_str:
type: string
title: Indicates if the control has been waived or not
waiver_data:
$ref: '#/definitions/chef.automate.api.compliance.reporting.v1.OrigWaiverData'
title: Additional details for waived controls
removed_results_counts:
$ref: '#/definitions/chef.automate.api.compliance.reporting.v1.RemovedResultsCounts'
description: When the control results are removed to reduce the size of the report, this summarize the status of the trimmed results.
chef.automate.api.compliance.reporting.v1.Query.OrderType:
type: string
enum:
- ASC
- DESC
default: ASC
description: Sort the results in ascending or descending order.
chef.automate.api.compliance.reporting.v1.ControlElements:
type: object
properties:
control_elements:
type: array
items:
$ref: '#/definitions/chef.automate.api.compliance.reporting.v1.ControlElement'
title: List of control elements
chef.automate.api.compliance.reporting.v1.ControlElement:
type: object
properties:
id:
type: string
description: The control's unique ID.
title:
type: string
description: The control's compact description.
profile:
type: string
description: Profile name.
impact:
type: number
format: float
description: The severity of the control.
results:
type: integer
format: int32
description: The total number of results.
status:
type: string
title: The control's status
profile_id:
type: string
title: Profile id
chef.automate.api.compliance.reporting.v1.Ref:
type: object
properties:
url:
type: string
description: The external document URL.
ref:
type: string
description: A description of the external document.
chef.automate.api.compliance.reporting.v1.ReportIds:
type: object
properties:
ids:
type: array
items:
type: string
description: The list of unique report identifiers found matching the query.
report_data:
type: array
items:
$ref: '#/definitions/chef.automate.api.compliance.reporting.v1.ReportData'
description: The list of unique report identifiers with their respective end_time, found matching the query.
chef.automate.api.compliance.reporting.v1.ProfileMeta:
type: object
properties:
name:
type: string
description: The name of the profile.
version:
type: string
description: The profile version.
id:
type: string
description: The profile unique ID.
status:
type: string
description: The status of the profile run against the node.
full:
type: string
description: The combined name and version of the profile.
chef.automate.api.compliance.reporting.v1.Result:
type: object
properties:
status:
type: string
description: The status of the test.
code_desc:
type: string
des
# --- truncated at 32 KB (49 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/chef-software/refs/heads/main/openapi/chef-software-reportingservice-api-openapi.yml