@rockcarver/frodo-lib
Version:
A library to manage ForgeRock Identity Cloud tenants, ForgeOps deployments, and classic deployments.
218 lines • 6.75 kB
TypeScript
import { State } from '../../shared/State';
/**
* Lock response
*/
export type LockResponse = {
description: string;
promotionId: string;
result: string;
};
/**
* Lock status
*/
export type LockStatus = {
description: string;
lowerEnv: {
promotionId: string;
proxyState: string;
state: string;
};
promotionId: string;
result: 'unlocked' | 'locking' | 'unlocking' | 'locked' | 'error';
upperEnv: {
promotionId: string;
proxyState: string;
state: string;
};
};
/**
* Promotion request config
*/
export type PromotionRequestConfig = {
dryRun: boolean;
ignoreEncryptedSecrets: boolean;
promoter: string;
promotionDescription: string;
unlockEnvironmentsAfterPromotion: boolean;
zendeskTicketReference: string;
};
/**
* Promotion response
*/
export type PromotionResponse = {
result: string;
};
export type PromotionType = 'promotion' | 'rollback';
/**
* Promotion status
*/
export type PromotionStatus = {
blockingError: boolean;
encryptedSecrets: string[];
globalLock: string;
message: string;
missingESVs: string[];
promotionId: string;
status: string;
timeStamp: string;
type: PromotionType;
};
export type PromotionConfigChange = {
name: string;
realm: string;
uid: string;
};
export type PromotionConfig = {
configChange: {
added: PromotionConfigChange[];
deleted: PromotionConfigChange[];
modified: PromotionConfigChange[];
};
configItem: string;
};
export type PromotionReport = {
createdDate: string;
dryRun: boolean;
missingESVs: string[];
previouslyIgnoredEncryptedSecrets: string[];
promoter: string;
promotionDescription: string;
promotionId: string;
report: {
AMConfig: PromotionConfig[];
IDMConfig: PromotionConfig[];
};
reportId: string;
reportName: string;
type: PromotionType;
};
export type PromotionReportStub = {
createdDate: '2022-01-19T13:04:00Z';
dryRun: true;
promotionId: '7575f185-cd0b-4823-b8b1-f677895291d4';
reportId: 'd19e140-8325-4669-b9f3-1cd82784e24e';
type: 'rollback';
};
/**
* Rollback request
*/
export type RollbackConfig = {
promoter: string;
promotionDescription: string;
unlockEnvironmentsAfterPromotion: boolean;
zendeskTicketReference: string;
};
/**
* Rollback response
*/
export type RollbackResponse = {
result: string;
};
/**
* Lock environment
* @param {Object} params Parameters object.
* @param {State} params.state State object.
* @returns {Promise<LockResponse>} a promise that resolves to a LockResponse object.
*/
export declare function lockEnvironment({ state, }: {
state: State;
}): Promise<LockResponse>;
/**
* Unlock environment
* @param {Object} params Parameters object.
* @param {string} params.promotionId Promotion id.
* @param {State} params.state State object.
* @returns {Promise<LockResponse>} a promise that resolves to a LockResponse object
*/
export declare function unlockEnvironment({ promotionId, state, }: {
promotionId: string;
state: State;
}): Promise<LockResponse>;
/**
* Get lock status
* @returns {Promise<LockStatus>} a promise that resolves to a LockStatus object
*/
export declare function getLockStatus({ state, }: {
state: State;
}): Promise<LockStatus>;
/**
* Promote configuration
* @param {Object} params Parameters object.
* @param {PromotionRequestConfig} params.config Promotion request config
* @param {State} params.state State object.
* @returns {Promise<PromotionResponse>} a promise that resolves to a PromotionResponse object.
*/
export declare function promoteConfiguration({ config, state, }: {
config: PromotionRequestConfig;
state: State;
}): Promise<PromotionResponse>;
/**
* Get promotion status
* @param {Object} params Parameters object.
* @param {State} params.state State object.
* @returns {Promise<PromotionStatus>} a promise that resolves to a PromotionStatus object
*/
export declare function getPromotionStatus({ state, }: {
state: State;
}): Promise<PromotionStatus>;
/**
* Get last promotion report
* @param {Object} params Parameters object.
* @param {State} params.state State object.
* @returns {Promise<PromotionReport>} a promise that resolves to a PromotionReport object
*/
export declare function getLastPromotionReport({ state, }: {
state: State;
}): Promise<PromotionReport>;
/**
* Get promotion report
* @param {Object} params Parameters object.
* @param {string} params.reportId Promotion id
* @param {State} params.state State object.
* @returns {Promise<PromotionReport>} a promise that resolves to a PromotionReport object
*/
export declare function getPromotionReport({ reportId, state, }: {
reportId: string;
state: State;
}): Promise<PromotionReport>;
/**
* Get a provisional report of changes since the last time the lower environment was promoted to the upper environment.
* The report generated is for informational purposes only and may not reflect all the changes in a full promotion.
* A dry-run promotion is always recommended prior to a full promotion between environments.
* @param {Object} params Parameters object.
* @param {State} params.state State object.
* @returns {Promise<PromotionReport>} a promise that resolves to a PromotionReport object
*/
export declare function getProvisionalPromotionReport({ state, }: {
state: State;
}): Promise<PromotionReport>;
/**
* Get a provisional rollback report of changes when we rollback the configuration to the previous promotion.
* @param {Object} params Parameters object.
* @param {State} params.state State object.
* @returns {Promise<PromotionReport>} a promise that resolves to a PromotionReport object
*/
export declare function getProvisionalRollbackReport({ state, }: {
state: State;
}): Promise<PromotionReport>;
/**
* Get a list of promotion reports in date order.
* @param {Object} params Parameters object.
* @param {State} params.state State object.
* @returns {Promise<PromotionReportStub[]>} a promise that resolves to an array of PromotionReportStub objects
*/
export declare function getPromotionReports({ state, }: {
state: State;
}): Promise<PromotionReportStub[]>;
/**
* Rollback a promotion
* @param {Object} params Parameters object.
* @param {RollbackConfig} params.config Rollback config
* @param {State} params.state State object.
* @returns {Promise<RollbackResponse>} a promise that resolves to a RollbackResponse object.
*/
export declare function rollbackPromotion({ config, state, }: {
config: RollbackConfig;
state: State;
}): Promise<RollbackResponse>;
//# sourceMappingURL=EnvPromotionApi.d.ts.map