openapi: "3.0.0" info: version: 0.0.1 title: Nebraska description: Nebraska is an update manager. contact: name: Flatcar Container Linux email: maintainers@flatcar-linux.org url: http://flatcar.org paths: /login/cb: get: operationId: loginCb description: GitHub OAuth callback (GitHub mode only) security: [] responses: "200": description: OAuth callback processed successfully "302": description: Redirect to originally requested URL "400": description: Bad request "401": description: Unauthorized "500": description: Internal server error "501": description: Not implemented for OIDC auth mode content: application/json: schema: $ref: "#/components/schemas/errorResponse" /login/validate_token: get: operationId: validateToken description: validate JWT access token (OIDC mode only) security: [] responses: "200": description: validate token response "401": description: invalid or expired token "501": description: Not implemented for GitHub auth mode content: application/json: schema: $ref: "#/components/schemas/errorResponse" /login/webhook: post: operationId: loginWebhook description: GitHub webhook (GitHub mode only) security: [] parameters: - in: header name: X-Hub-Signature required: true schema: type: string - in: header name: X-Github-Event required: true schema: type: string responses: "200": description: login webhook response "501": description: Not implemented for OIDC auth mode content: application/json: schema: $ref: "#/components/schemas/errorResponse" /health: get: operationId: health description: health endpoint security: [] responses: "200": description: health response /config: get: operationId: getConfig description: get app config security: [] responses: "200": description: get config response content: application/json: schema: $ref: "#/components/schemas/config" /v1/update: post: operationId: omaha description: omaha endpoint security: [] requestBody: description: payload for omaha endpoint required: true content: text/xml: schema: $ref: "#/components/schemas/omahaRequest" responses: "200": description: Omaha Response "400": description: Bad Request if request size is too large /api/apps: get: description: get Apps operationId: paginateApps security: - oidcBearerAuth: [] - oidcCookieAuth: [] - githubCookieAuth: [] parameters: - in: query name: page required: false schema: type: integer minimum: 0 - in: query name: perpage required: false schema: type: integer minimum: 10 responses: "200": description: Get App success response content: application/json: schema: $ref: "#/components/schemas/appsPage" "404": description: Apps not found response "400": description: Bad request response post: description: create app operationId: createApp security: - oidcBearerAuth: [] - oidcCookieAuth: [] - githubCookieAuth: [] parameters: - in: query name: clone_from required: false schema: type: string requestBody: description: payload for create app required: true content: application/json: schema: $ref: "#/components/schemas/appConfig" responses: "200": description: Create App success response content: application/json: schema: $ref: "#/components/schemas/application" "400": description: Bad request response "500": description: Create App error response /api/apps/{appIDorProductID}: get: description: get app operationId: getApp security: - oidcBearerAuth: [] - oidcCookieAuth: [] - githubCookieAuth: [] parameters: - in: path name: appIDorProductID required: true schema: type: string responses: "200": description: Get app success response content: application/json: schema: $ref: "#/components/schemas/application" "404": description: App not found response "500": description: Get App error response put: description: update app operationId: updateApp security: - oidcBearerAuth: [] - oidcCookieAuth: [] - githubCookieAuth: [] parameters: - in: path name: appIDorProductID required: true schema: type: string requestBody: description: payload for update app required: true content: application/json: schema: $ref: "#/components/schemas/appConfig" responses: "200": description: Update App success response content: application/json: schema: $ref: "#/components/schemas/application" "400": description: Bad request response "500": description: Update app error response delete: description: delete app operationId: deleteApp security: - oidcBearerAuth: [] - oidcCookieAuth: [] - githubCookieAuth: [] parameters: - in: path name: appIDorProductID required: true schema: type: string responses: "200": description: Delete App success response "500": description: Delete App error response /api/apps/{appIDorProductID}/groups: get: description: paginate groups of an app operationId: paginateGroups security: - oidcBearerAuth: [] - oidcCookieAuth: [] - githubCookieAuth: [] parameters: - in: path name: appIDorProductID required: true schema: type: string - in: query name: page required: false schema: type: integer minimum: 0 - in: query name: perpage required: false schema: type: integer minimum: 10 responses: "200": description: get Groups success response content: application/json: schema: $ref: "#/components/schemas/groupPage" "404": description: Groups not found response "500": description: get Groups error response post: description: create group in app operationId: createGroup security: - oidcBearerAuth: [] - oidcCookieAuth: [] - githubCookieAuth: [] parameters: - in: path name: appIDorProductID required: true schema: type: string requestBody: description: payload for create group required: true content: application/json: schema: $ref: "#/components/schemas/groupConfig" responses: "200": description: Create Group success response content: application/json: schema: $ref: "#/components/schemas/group" "400": description: Bad request response "500": description: Create Group error response /api/apps/{appIDorProductID}/groups/{groupID}: get: description: get group given its groupID and appID operationId: getGroup security: - oidcBearerAuth: [] - oidcCookieAuth: [] - githubCookieAuth: [] parameters: - in: path name: appIDorProductID required: true schema: type: string - in: path name: groupID required: true schema: type: string responses: "200": description: Get Group success response content: application/json: schema: $ref: "#/components/schemas/group" "404": description: Group not found response "500": description: Get Group error response put: description: update group given its groupID and appID operationId: updateGroup security: - oidcBearerAuth: [] - oidcCookieAuth: [] - githubCookieAuth: [] parameters: - in: path name: appIDorProductID required: true schema: type: string - in: path name: groupID required: true schema: type: string requestBody: description: payload for update group required: true content: application/json: schema: $ref: "#/components/schemas/groupConfig" responses: "200": description: Update Group success response content: application/json: schema: $ref: "#/components/schemas/group" "404": description: Group not found response "400": description: Update Group Bad request response "500": description: Update Group error response delete: description: delete group given its groupID and appID operationId: deleteGroup security: - oidcBearerAuth: [] - oidcCookieAuth: [] - githubCookieAuth: [] parameters: - in: path name: appIDorProductID required: true schema: type: string - in: path name: groupID required: true schema: type: string responses: "200": description: Delete Group success response "404": description: Group not found response "500": description: Delete Group error response /api/apps/{appIDorProductID}/groups/{groupID}/version_timeline: get: description: get version timeline of a group given its groupID and appID operationId: getGroupVersionTimeline security: - oidcBearerAuth: [] - oidcCookieAuth: [] - githubCookieAuth: [] parameters: - in: path name: appIDorProductID required: true schema: type: string - in: path name: groupID required: true schema: type: string - in: query name: duration required: true schema: type: string responses: "200": description: Version Timeline of group success response content: application/json: schema: $ref: "#/components/schemas/groupVersionCountTimeline" "404": description: Group not found response "500": description: Version Timeline of group error response /api/apps/{appIDorProductID}/groups/{groupID}/status_timeline: get: description: get status timeline of a group given its groupID and appID operationId: getGroupStatusTimeline security: - oidcBearerAuth: [] - oidcCookieAuth: [] - githubCookieAuth: [] parameters: - in: path name: appIDorProductID required: true schema: type: string - in: path name: groupID required: true schema: type: string - in: query name: duration required: true schema: type: string responses: "200": description: Status Timeline of group success response content: application/json: schema: $ref: "#/components/schemas/groupStatusCountTimeline" "404": description: Group not found response "500": description: Status Timeline of group error response /api/apps/{appIDorProductID}/groups/{groupID}/instances_stats: get: description: get instance stats of a group given its groupID and appID operationId: getGroupInstanceStats security: - oidcBearerAuth: [] - oidcCookieAuth: [] - githubCookieAuth: [] parameters: - in: path name: appIDorProductID required: true schema: type: string - in: path name: groupID required: true schema: type: string - in: query name: duration required: true schema: type: string responses: "200": description: Instance Stats of group success response content: application/json: schema: $ref: "#/components/schemas/groupInstanceStats" "404": description: Group not found response "500": description: Instance Stats of group error response /api/apps/{appIDorProductID}/groups/{groupID}/version_breakdown: get: description: get version breakdown of a group given its groupID and appID operationId: getGroupVersionBreakdown security: - oidcBearerAuth: [] - oidcCookieAuth: [] - githubCookieAuth: [] parameters: - in: path name: appIDorProductID required: true schema: type: string - in: path name: groupID required: true schema: type: string responses: "200": description: Version Breakdown of group success response content: application/json: schema: $ref: "#/components/schemas/groupVersionBreakdown" "404": description: Group not found response "500": description: Version Breakdown of group error response /api/apps/{appIDorProductID}/channels: get: description: paginate channels of an app operationId: paginateChannels security: - oidcBearerAuth: [] - oidcCookieAuth: [] - githubCookieAuth: [] parameters: - in : path name: appIDorProductID required: true schema: type: string - in: query name: page required: false schema: type: integer minimum: 0 - in: query name: perpage required: false schema: type: integer minimum: 10 responses: "200": description: Get channels success response content: application/json: schema: $ref: "#/components/schemas/channelPage" "404": description: Channel not found response "500": description: Get channels error response post: description: create channel operationId: createChannel security: - oidcBearerAuth: [] - oidcCookieAuth: [] - githubCookieAuth: [] parameters: - in : path name: appIDorProductID required: true schema: type: string requestBody: description: payload for create channel required: true content: application/json: schema: $ref: "#/components/schemas/channelConfig" responses: "200": description: Create channel success response content: application/json: schema: $ref: "#/components/schemas/channel" "400": description: Bad request response "500": description: Create channel error response /api/apps/{appIDorProductID}/channels/{channelID}: get: description: get channel by id operationId: getChannel security: - oidcBearerAuth: [] - oidcCookieAuth: [] - githubCookieAuth: [] parameters: - in: path name: appIDorProductID required: true schema: type: string - in: path name: channelID required: true schema: type: string responses: "200": description: Get channel success response content: application/json: schema: $ref: "#/components/schemas/channel" "404": description: Channel not found response "500": description: Get channel error response put: description: update channel by id operationId: updateChannel security: - oidcBearerAuth: [] - oidcCookieAuth: [] - githubCookieAuth: [] parameters: - in: path name: appIDorProductID required: true schema: type: string - in: path name: channelID required: true schema: type: string requestBody: description: payload for create channel required: true content: application/json: schema: $ref: "#/components/schemas/channelConfig" responses: "200": description: Update channel success response content: application/json: schema: $ref: "#/components/schemas/channel" "404": description: Channel not found response "400": description: Bad request response "500": description: Update channel error response delete: description: delete channel by id operationId: deleteChannel security: - oidcBearerAuth: [] - oidcCookieAuth: [] - githubCookieAuth: [] parameters: - in: path name: appIDorProductID required: true schema: type: string - in: path name: channelID required: true schema: type: string responses: "200": description: Delete channel success response "500": description: Delete channel error response /api/channels/{channelID}/floors: get: description: paginate floor packages of a channel operationId: paginateChannelFloors security: - oidcBearerAuth: [] - oidcCookieAuth: [] - githubCookieAuth: [] parameters: - in: path name: channelID required: true schema: type: string - in: query name: page schema: type: integer required: false - in: query name: perpage schema: type: integer required: false responses: "200": description: Paginate channel floors success response content: application/json: schema: type: object required: - packages - current_page - last_page - total_count properties: packages: type: array items: $ref: "#/components/schemas/package" current_page: type: integer format: int32 last_page: type: integer format: int32 total_count: type: integer format: int32 "500": description: Get channel floors error response /api/channels/{channelID}/floors/{packageID}: put: description: Create or update a floor package relationship (idempotent operation) operationId: setChannelFloor security: - oidcBearerAuth: [] - oidcCookieAuth: [] - githubCookieAuth: [] parameters: - in: path name: channelID required: true schema: type: string - in: path name: packageID required: true schema: type: string requestBody: required: false content: application/json: schema: type: object properties: floor_reason: type: string nullable: true description: Optional reason for marking this package as a floor (e.g., "Introduces needed filesystem support to handle new updates after this version") maxLength: 500 example: "Introduces btrfs support in update-engine to handle new updates after this version" responses: "200": description: Floor package relationship created or updated successfully "400": description: Invalid request (architecture mismatch, wrong application, etc.) "404": description: Channel or package not found "500": description: Set channel floor error response delete: description: remove package as floor for a channel operationId: removeChannelFloor security: - oidcBearerAuth: [] - oidcCookieAuth: [] - githubCookieAuth: [] parameters: - in: path name: channelID required: true schema: type: string - in: path name: packageID required: true schema: type: string responses: "200": description: Remove channel floor success response "404": description: Floor relationship not found "500": description: Remove channel floor error response /api/apps/{appIDorProductID}/packages: get: description: paginate packages of an app operationId: paginatePackages security: - oidcBearerAuth: [] - oidcCookieAuth: [] - githubCookieAuth: [] parameters: - in: path name: appIDorProductID required: true schema: type: string - in: query name: page required: false schema: type: integer minimum: 0 - in: query name: perpage required: false schema: type: integer minimum: 10 - in: query name: searchVersion schema: type: string responses: "200": description: get Packages success response content: application/json: schema: $ref: "#/components/schemas/packagePage" "404": description: Packages not found response post: description: create package operationId: createPackage security: - oidcBearerAuth: [] - oidcCookieAuth: [] - githubCookieAuth: [] parameters: - in: path name: appIDorProductID required: true schema: type: string requestBody: description: payload for create package required: true content: application/json: schema: $ref: "#/components/schemas/packageConfig" responses: "200": description: Create Package success response content: application/json: schema: $ref: "#/components/schemas/package" "400": description: Create Package bad request response "500": description: Create package error response /api/apps/{appIDorProductID}/packages/{packageID}: get: description: get package given its packageID and appID operationId: getPackage security: - oidcBearerAuth: [] - oidcCookieAuth: [] - githubCookieAuth: [] parameters: - in: path name: appIDorProductID required: true schema: type: string - in: path name: packageID required: true schema: type: string responses: "200": description: Get Package success response content: application/json: schema: $ref: "#/components/schemas/package" "404": description: Package not found response "500": description: Get Package error response put: description: update package given its packageID and appID operationId: updatePackage security: - oidcBearerAuth: [] - oidcCookieAuth: [] - githubCookieAuth: [] parameters: - in: path name: appIDorProductID required: true schema: type: string - in: path name: packageID required: true schema: type: string requestBody: description: payload for update package required: true content: application/json: schema: $ref: "#/components/schemas/packageConfig" responses: "200": description: Update Package success response content: application/json: schema: $ref: "#/components/schemas/package" "404": description: Package not found response "500": description: Update package error response delete: description: delete package given its packageID and appID operationId: deletePackage security: - oidcBearerAuth: [] - oidcCookieAuth: [] - githubCookieAuth: [] parameters: - in: path name: appIDorProductID required: true schema: type: string - in: path name: packageID required: true schema: type: string responses: "200": description: Delete Package success response "404": description: Package not found response "500": description: Delete package error response /api/apps/{appIDorProductID}/packages/{packageID}/floor-channels: get: description: get all channels where a package is marked as a floor operationId: getPackageFloorChannels security: - oidcBearerAuth: [] - oidcCookieAuth: [] - githubCookieAuth: [] parameters: - in: path name: appIDorProductID required: true schema: type: string - in: path name: packageID required: true schema: type: string responses: "200": description: Get Package Floor Channels success response content: application/json: schema: type: object properties: channels: type: array items: type: object properties: channel: $ref: "#/components/schemas/channel" floor_reason: type: string nullable: true count: type: integer "404": description: Package not found "500": description: Internal server error /api/apps/{appIDorProductID}/groups/{groupID}/instances: get: description: get instances of a group given its groupID and appID operationId: getGroupInstances security: - oidcBearerAuth: [] - oidcCookieAuth: [] - githubCookieAuth: [] parameters: - in: path name: appIDorProductID required: true schema: type: string - in: path name: groupID required: true schema: type: string - in: query name: status required: true schema: type: integer - in: query name: page required: false schema: type: integer minimum: 0 - in: query name: perpage required: false schema: type: integer minimum: 10 - in: query name: sortFilter required: false schema: type: string - in: query name: sortOrder required: false schema: type: string - in: query name: searchFilter required: false schema: type: string - in: query name: searchValue required: false schema: type: string - in: query name: duration required: true schema: type: string - in: query name: version required: false schema: type: string responses: "200": description: Get Instances of a Group success response content: application/json: schema: $ref: "#/components/schemas/instancePage" "500": description: Get Instances of a Group error response /api/apps/{appIDorProductID}/groups/{groupID}/instancescount: get: description: get instance count of a group given its groupID and appID operationId: getGroupInstancesCount security: - oidcBearerAuth: [] - oidcCookieAuth: [] - githubCookieAuth: [] parameters: - in: path name: appIDorProductID required: true schema: type: string - in: path name: groupID required: true schema: type: string - in: query name: duration required: true schema: type: string responses: "200": description: Get Instance count of a Group success response content: application/json: schema: $ref: "#/components/schemas/instanceCount" "500": description: Get Instance count of a Group error response /api/apps/{appIDorProductID}/groups/{groupID}/instances/{instanceID}: get: description: get instance of a group given its groupID and appID operationId: getInstance security: - oidcBearerAuth: [] - oidcCookieAuth: [] - githubCookieAuth: [] parameters: - in: path name: appIDorProductID required: true schema: type: string - in: path name: groupID required: true schema: type: string - in: path name: instanceID required: true schema: type: string responses: "200": description: Get instance success response content: application/json: schema: $ref: "#/components/schemas/instance" "404": description: Instance not found response "500": description: Get instance error response /api/apps/{appIDorProductID}/groups/{groupID}/instances/{instanceID}/status_history: get: description: get instance status_history. operationId: getInstanceStatusHistory security: - oidcBearerAuth: [] - oidcCookieAuth: [] - githubCookieAuth: [] parameters: - in: path name: appIDorProductID required: true schema: type: string - in: path name: groupID required: true schema: type: string - in: path name: instanceID required: true schema: type: string - in: query name: limit required: false schema: type: integer minimum: 0 responses: "200": description: Get instance status history success response content: application/json: schema: $ref: "#/components/schemas/instanceStatusHistories" "404": description: Instance not found response "500": description: Get instance status history error response /api/instances/{instanceID}: put: description: update instance operationId: updateInstance security: - oidcBearerAuth: [] - oidcCookieAuth: [] - githubCookieAuth: [] parameters: - in: path name: instanceID required: true schema: type: string requestBody: description: payload for update instance required: true content: application/json: schema: $ref: "#/components/schemas/updateInstanceConfig" responses: "200": description: Update instance success response content: application/json: schema: $ref: "#/components/schemas/instance" "500": description: Update instance error response /api/activity: get: description: paginate activity operationId: paginateActivity security: - oidcBearerAuth: [] - oidcCookieAuth: [] - githubCookieAuth: [] parameters: - in: query name: appIDorProductID required: false schema: type: string - in: query name: groupID required: false schema: type: string - in: query name: channelID required: false schema: type: string - in: query name: instanceID required: false schema: type: string - in: query name: version required: false schema: type: string - in: query name: severity required: false schema: type: integer - in: query name: start required: true schema: type: string format: string - in: query name: end required: true schema: type: string format: string - in: query name: page required: false schema: type: integer minimum: 0 - in: query name: perpage required: false schema: type: integer minimum: 10 responses: "200": description: List activity success response content: application/json: schema: $ref: "#/components/schemas/activityPage" "404": description: Activity not found response "500": description: List activity error response components: schemas: ## request Body appConfig: type: object required: - name properties: name: type: string description: type: string product_id: type: string nullable: true groupConfig: type: object required: - name - policy_max_updates_per_period - policy_period_interval - policy_timezone - policy_update_timeout properties: name: type: string maxLength: 50 description: type: string maxLength: 250 channel_id: type: string policy_updates_enabled: type: boolean policy_safe_mode: type: boolean policy_office_hours: type: boolean policy_timezone: type: string policy_period_interval: type: string policy_max_updates_per_period: type: integer policy_update_timeout: type: string track: type: string maxLength: 256 flatcarActionPackage: type: object properties: id: type: string sha256: type: string x-oapi-codegen-extra-tags: json: flatcar_action extraFiles: type: array items: type: object properties: id: type: integer name: type: string hash: type: string hash256: type: string size: type: string x-oapi-codegen-extra-tags: json: extra_files packageConfig: type: object required: - application_id - arch - channels_blacklist - description - filename - hash - size - type - url - version properties: application_id: type: string arch: type: integer channels_blacklist: type: array items: type: string description: type: string filename: type: string hash: type: string size: type: string url: type: string version: type: string type: type: integer flatcarAction: $ref: "#/components/schemas/flatcarActionPackage" extraFiles: $ref: "#/components/schemas/extraFiles" updateInstanceConfig: type: object required: - alias properties: alias: type: string omahaRequest: type: object channelConfig: type: object required: - application_id - arch - color - name properties: application_id: type: string arch: type: integer x-go-type: uint color: type: string name: type: string package_id: type: string ## response config: type: object required: - accessManagementUrl - nebraskaVersion - logo - title - headerStyle - loginUrl - authMode properties: accessManagementUrl: type: string x-oapi-codegen-extra-tags: json: "access_management_url" nebraskaVersion: type: string x-oapi-codegen-extra-tags: json: "nebraska_version" logo: type: string x-oapi-codegen-extra-tags: json: "logo" title: type: string x-oapi-codegen-extra-tags: json: "title" headerStyle: type: string x-oapi-codegen-extra-tags: json: "header_style" loginUrl: type: string x-oapi-codegen-extra-tags: json: "login_url" authMode: type: string x-oapi-codegen-extra-tags: json: "auth_mode" oidcIssuerUrl: type: string x-oapi-codegen-extra-tags: json: "oidc_issuer_url" oidcClientId: type: string x-oapi-codegen-extra-tags: json: "oidc_client_id" oidcScopes: type: string x-oapi-codegen-extra-tags: json: "oidc_scopes" oidcLogoutUrl: type: string x-oapi-codegen-extra-tags: json: "oidc_logout_url" oidcAudience: type: string x-oapi-codegen-extra-tags: json: "oidc_audience" flatcarAction: type: object required: - id - event - chromeOSVersion - sha256 - needsAdmin - isDelta - disablePayloadBackoff - metadataSignatureRsa - metadataSize - deadline - createdTs properties: id: type: string event: type: string chromeOSVersion: type: string x-oapi-codegen-extra-tags: json: chromeos_version sha256: type: string needsAdmin: type: boolean x-oapi-codegen-extra-tags: json: needs_admin isDelta: type: boolean x-oapi-codegen-extra-tags: json: is_delta disablePayloadBackoff: type: boolean x-oapi-codegen-extra-tags: json: disable_payload_backoff metadataSignatureRsa: type: string x-oapi-codegen-extra-tags: json: metadata_signature_rsa metadataSize: type: string x-oapi-codegen-extra-tags: json: metadata_size deadline: type: string createdTs: type: string format: date-time x-oapi-codegen-extra-tags: json: created_ts x-oapi-codegen-extra-tags: json: flatcar_action package: type: object required: - id - type - version - url - filename - description - size - hash - createdTs - channelsBlacklist - applicationID - arch properties: id: type: string type: type: integer version: type: string url: type: string filename: type: string description: type: string size: type: string hash: type: string createdTs: type: string format: date-time x-oapi-codegen-extra-tags: json: created_ts channelsBlacklist: type: array items: type: string x-oapi-codegen-extra-tags: json: channels_blacklist extraFiles: $ref: "#/components/schemas/extraFiles" applicationID: type: string x-oapi-codegen-extra-tags: json: application_id flatcarAction: $ref: "#/components/schemas/flatcarAction" arch: $ref: "#/components/schemas/arch" isFloor: type: boolean description: Indicates if this package is a floor version for the current context x-oapi-codegen-extra-tags: json: is_floor,omitempty floorReason: type: string nullable: true description: Reason why this package is marked as a floor version maxLength: 500 x-oapi-codegen-extra-tags: json: floor_reason channelPackageFloor: type: object required: - channel_id - package_id - created_ts properties: channel_id: type: string package_id: type: string floor_reason: type: string nullable: true description: Optional reason for marking this package as a floor maxLength: 500 example: "Introduces needed filesystem support to handle new updates after this version" created_ts: type: string format: date-time arch: type: integer channel: type: object required: - id - name - color - createdTs - applicationID - packageID - arch properties: id: type: string name: type: string maxLength: 50 color: type: string createdTs: type: string format: date-time x-oapi-codegen-extra-tags: json: created_ts applicationID: type: string x-oapi-codegen-extra-tags: json: application_id packageID: type: string x-oapi-codegen-extra-tags: json: package_id package: $ref: "#/components/schemas/package" arch: $ref: "#/components/schemas/arch" x-oapi-codegen-extra-tags: db: channel group: type: object required: - id - name - description - createdTs - rolloutInProgress - applicationID - channelID - policyUpdatesEnabled - policySafeMode - policyOfficeHours - policyTimezone - policyPeriodInterval - policyMaxUpdatesPerPeriod - policyUpdateTimeout - track properties: id: type: string name: type: string description: type: string createdTs: type: string format: date-time x-oapi-codegen-extra-tags: json: created_ts rolloutInProgress: type: boolean x-oapi-codegen-extra-tags: json: rollout_in_progress applicationID: type: string x-oapi-codegen-extra-tags: json: application_id channelID: type: string x-oapi-codegen-extra-tags: json: channel_id policyUpdatesEnabled: type: boolean x-oapi-codegen-extra-tags: json: policy_updates_enabled policySafeMode: type: boolean x-oapi-codegen-extra-tags: json: policy_safe_mode policyOfficeHours: type: boolean x-oapi-codegen-extra-tags: json: policy_office_hours policyTimezone: type: string x-oapi-codegen-extra-tags: json: policy_timezone policyPeriodInterval: type: string x-oapi-codegen-extra-tags: json: policy_period_interval policyMaxUpdatesPerPeriod: type: integer minimum: 0 x-oapi-codegen-extra-tags: json: policy_max_updates_per_period policyUpdateTimeout: type: string x-oapi-codegen-extra-tags: json: policy_update_timeout channel: $ref: "#/components/schemas/channel" track: type: string groupVersionCountTimeline: type: object x-go-type: map[time.Time]map[string]uint64 groupStatusCountTimeline: type: object x-go-type: map[time.Time]map[int]map[string]uint64 versionBreakdownEntry: type: object required: - version - instance - percentage properties: version: type: string instances: type: integer percentage: type: number format: double groupVersionBreakdown: type: array items: $ref: "#/components/schemas/versionBreakdownEntry" application: type: object required: - id - name - description - createdTs - groups - channels - instances - productId properties: id: type: string name: type: string description: type: string createdTs: type: string format: date-time x-oapi-codegen-extra-tags: json: created_ts productId: type: string x-oapi-codegen-extra-tags: json: "product_id" groups: type: array items: $ref: "#/components/schemas/group" channels: type: array items: $ref: "#/components/schemas/channel" instances: type: object required: - count properties: count: type: integer groupInstanceStats: type: object required: - total - undefined - updateGranted - error - complete - installed - downloaded - downloading - onHold properties: total: type: integer undefined: type: integer updateGranted: type: integer x-oapi-codegen-extra-tags: json: update_granted error: type: integer complete: type: integer installed: type: integer downloaded: type: integer downloading: type: integer onHold: type: integer instanceApplication: type: object required: - instanceID - applicationID - groupID - version - createdTs - status - lastCheckForUpdates - lastUpdateGrantedTs - lastUpdateVersion - updateInProgress properties: instanceID: type: string x-oapi-codegen-extra-tags: json: instance_id applicationID: type: string x-oapi-codegen-extra-tags: json: application_id groupID: type: string x-oapi-codegen-extra-tags: json: group_id version: type: string x-oapi-codegen-extra-tags: json: version createdTs: type: string format: date-time x-oapi-codegen-extra-tags: json: created_ts status: type: integer lastCheckForUpdates: type: string format: date-time x-oapi-codegen-extra-tags: json: last_check_for_updates lastUpdateGrantedTs: type: string format: date-time x-oapi-codegen-extra-tags: json: last_update_granted_ts lastUpdateVersion: type: string x-oapi-codegen-extra-tags: json: last_update_version updateInProgress: type: boolean x-oapi-codegen-extra-tags: json: update_in_progress x-oapi-codegen-extra-tags: json: application instance: type: object required: - id - ip - createdTs properties: id: type: string ip: type: string createdTs: type: string format: date-time x-oapi-codegen-extra-tags: json: created_ts application: $ref: "#/components/schemas/instanceApplication" alias: type: string instancePage: type: object required: - total - instances properties: total: type: integer instances: type: array items: $ref: "#/components/schemas/instance" instanceCount: type: object required: - count properties: count: type: integer x-go-type: uint64 instanceStatusHistory: type: object required: - status - verison - createdTs - errorCode properties: status: type: integer verison: type: string createdTs: type: string format: date-time x-oapi-codegen-extra-tags: json: created_ts errorCode: type: string x-oapi-codegen-extra-tags: db: error_code json: error_code activity: type: object required: - id - appID - groupID - createdTs - class - severity - version - applicationName - groupName - channelName - instanceID properties: id: type: string appID: type: string x-oapi-codegen-extra-tags: json: app_id groupID: type: string x-oapi-codegen-extra-tags: json: group_id createdTs: type: string format: date-time x-oapi-codegen-extra-tags: db: created_ts json: created_ts class: type: integer severity: type: integer version: type: string applicationName: type: string x-oapi-codegen-extra-tags: json: application_name groupName: type: string x-oapi-codegen-extra-tags: json: group_name channelName: type: string x-oapi-codegen-extra-tags: json: channel_name instanceID: type: string x-oapi-codegen-extra-tags: json: instance_id instanceStatusHistories: type: array items: $ref: "#/components/schemas/instanceStatusHistory" appsPage: type: object required: - totalCount - count - applications properties: totalCount: type: integer count: type: integer applications: type: array items: $ref: "#/components/schemas/application" groupPage: type: object required: - totalCount - count - groups properties: totalCount: type: integer count: type: integer groups: type: array items: $ref: "#/components/schemas/group" channelPage: type: object required: - totalCount - count - channels properties: totalCount: type: integer count: type: integer channels: type: array items: $ref: "#/components/schemas/channel" packagePage: type: object required: - totalCount - count - packages properties: totalCount: type: integer count: type: integer packages: type: array items: $ref: "#/components/schemas/package" activityPage: type: object required: - totalCount - count - activities properties: totalCount: type: integer count: type: integer activities: type: array items: $ref: "#/components/schemas/activity" errorResponse: type: object required: - error - description properties: error: type: string description: Error code identifier description: type: string description: Human-readable error description docs: type: string description: Link to documentation (optional) securitySchemes: oidcBearerAuth: type: http scheme: bearer bearerFormat: JWT oidcCookieAuth: type: apiKey in: cookie name: oidc githubCookieAuth: type: apiKey in: cookie name: github