/* tslint:disable */
/* eslint-disable */
/**
* TeamCity REST API
* No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
*
* The version of the OpenAPI document: 2018.1 (current)
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
// May contain unused imports in some cases
// @ts-ignore
import type { ApprovableBuild } from './approvable-build';
// May contain unused imports in some cases
// @ts-ignore
import type { BuildsWithReason } from './builds-with-reason';
// May contain unused imports in some cases
// @ts-ignore
import type { CompositeApprovals } from './composite-approvals';
// May contain unused imports in some cases
// @ts-ignore
import type { GroupApprovals } from './group-approvals';
// May contain unused imports in some cases
// @ts-ignore
import type { UserApprovals } from './user-approvals';
/**
* If a build cannot start without a manual approval from specific reviewers, it stores related information in a related ApprovalInfo object.
* @export
* @interface ApprovalInfo
*/
export interface ApprovalInfo {
/**
* Returns *true* if the currently authorized user is among TeamCity users who can approve this build; otherwise, *false*.
* @type {boolean}
* @memberof ApprovalInfo
*/
canBeApprovedByCurrentUser?: boolean;
/**
* The timestamp when the build is (or was) canceled due to reviewers failing to approve it on time. This value is calculated at the moment a build is queued.
* @type {string}
* @memberof ApprovalInfo
*/
timeoutTimestamp?: string;
/**
* Returns *true* if the configuration of users and user groups that should approve this build is valid; otherwise, *false*.
* @type {boolean}
* @memberof ApprovalInfo
*/
configurationValid?: boolean;
/**
*
* @type {UserApprovals}
* @memberof ApprovalInfo
*/
userApprovals?: UserApprovals;
/**
*
* @type {GroupApprovals}
* @memberof ApprovalInfo
*/
groupApprovals?: GroupApprovals;
/**
*
* @type {CompositeApprovals}
* @memberof ApprovalInfo
*/
compositeApprovals?: CompositeApprovals;
/**
* Returns the reasons why TeamCity is waiting for build approval.
* @type {Array<ApprovableBuild>}
* @memberof ApprovalInfo
*/
approvalReasons?: Array<ApprovableBuild>;
/**
* The list of other builds (both upstream and downstream) that belong to the same build chain and require an approval.
* @type {Array<BuildsWithReason>}
* @memberof ApprovalInfo
*/
buildChainBuilds?: Array<BuildsWithReason>;
/**
* The current build status. Supported values: * *waitingForApproval* — the build is waiting in a build queue; * *approved* — the build received a required number of approvals from reviewers; * *timedOut* — the build was automatically canceled as the reviewer(s) failed to approve it within the given time; * *canceled* — reviewer(s) explicitly canceled the build.
* @type {string}
* @memberof ApprovalInfo
*/
status?: ApprovalInfoStatusEnum;
}
export const ApprovalInfoStatusEnum = {
WaitingForApproval: 'waitingForApproval',
Approved: 'approved',
TimedOut: 'timedOut',
Canceled: 'canceled',
} as const;
export type ApprovalInfoStatusEnum =
(typeof ApprovalInfoStatusEnum)[keyof typeof ApprovalInfoStatusEnum];