import VSSInterfaces = require("../interfaces/common/VSSInterfaces");
/**
* The full policy configuration with settings.
*/
export interface PolicyConfiguration extends VersionedPolicyConfigurationRef {
/**
* The links to other objects related to this object.
*/
_links?: any;
/**
* A reference to the identity that created the policy.
*/
createdBy?: VSSInterfaces.IdentityRef;
/**
* The date and time when the policy was created.
*/
createdDate?: Date;
/**
* Indicates whether the policy is blocking.
*/
isBlocking: boolean;
/**
* Indicates whether the policy has been (soft) deleted.
*/
isDeleted?: boolean;
/**
* Indicates whether the policy is enabled.
*/
isEnabled: boolean;
/**
* If set, this policy requires "Manage Enterprise Policies" permission to create, edit, or delete.
*/
isEnterpriseManaged?: boolean;
/**
* The policy configuration settings.
*/
settings: any;
}
/**
* Policy configuration reference.
*/
export interface PolicyConfigurationRef {
/**
* The policy configuration ID.
*/
id?: number;
/**
* The policy configuration type.
*/
type?: PolicyTypeRef;
/**
* The URL where the policy configuration can be retrieved.
*/
url?: string;
}
/**
* This record encapsulates the current state of a policy as it applies to one specific pull request. Each pull request has a unique PolicyEvaluationRecord for each pull request which the policy applies to.
*/
export interface PolicyEvaluationRecord {
/**
* Links to other related objects
*/
_links?: any;
/**
* A string which uniquely identifies the target of a policy evaluation.
*/
artifactId?: string;
/**
* Time when this policy finished evaluating on this pull request.
*/
completedDate?: Date;
/**
* Contains all configuration data for the policy which is being evaluated.
*/
configuration?: PolicyConfiguration;
/**
* Internal context data of this policy evaluation.
*/
context?: any;
/**
* Guid which uniquely identifies this evaluation record (one policy running on one pull request).
*/
evaluationId?: string;
/**
* Time when this policy was first evaluated on this pull request.
*/
startedDate?: Date;
/**
* Status of the policy (Running, Approved, Failed, etc.)
*/
status?: PolicyEvaluationStatus;
}
/**
* Status of a policy which is running against a specific pull request.
*/
export declare enum PolicyEvaluationStatus {
/**
* The policy is either queued to run, or is waiting for some event before progressing.
*/
Queued = 0,
/**
* The policy is currently running.
*/
Running = 1,
/**
* The policy has been fulfilled for this pull request.
*/
Approved = 2,
/**
* The policy has rejected this pull request.
*/
Rejected = 3,
/**
* The policy does not apply to this pull request.
*/
NotApplicable = 4,
/**
* The policy has encountered an unexpected error.
*/
Broken = 5
}
/**
* User-friendly policy type with description (used for querying policy types).
*/
export interface PolicyType extends PolicyTypeRef {
/**
* The links to other objects related to this object.
*/
_links?: any;
/**
* Detailed description of the policy type.
*/
description?: string;
}
/**
* Policy type reference.
*/
export interface PolicyTypeRef {
/**
* Display name of the policy type.
*/
displayName?: string;
/**
* The policy type ID.
*/
id: string;
/**
* The URL where the policy type can be retrieved.
*/
url?: string;
}
/**
* A particular revision for a policy configuration.
*/
export interface VersionedPolicyConfigurationRef extends PolicyConfigurationRef {
/**
* The policy configuration revision ID.
*/
revision?: number;
}
export declare var TypeInfo: {
PolicyConfiguration: any;
PolicyEvaluationRecord: any;
PolicyEvaluationStatus: {
enumValues: {
queued: number;
running: number;
approved: number;
rejected: number;
notApplicable: number;
broken: number;
};
};
};