@altostra/core
Version:
Core library for shared types and logic
41 lines (40 loc) • 1.95 kB
TypeScript
import type { Blueprint } from "../../../blueprint";
import type { ResourceId } from "../../../blueprint/Resources/ResourceId";
export interface DesignRecommendationsRequest {
blueprint: Blueprint;
}
export interface DesignRecommendationsResponse {
recommendations: Recommendation[];
}
export interface RecommendationBase {
issueCode: string;
severity: Severity;
text: string;
url?: string;
issueType: IssueType;
suggestions: Suggestion[];
}
export interface ResourceRecommendation extends RecommendationBase {
resource: ResourceId;
}
export interface ConnectionRecommendation extends RecommendationBase {
connection: ConnectionId;
}
export declare type Recommendation = ConnectionRecommendation | ResourceRecommendation;
export interface ConnectionId {
source: ResourceId;
target: ResourceId;
}
export interface Suggestion {
description: string;
blueprint: Blueprint;
}
export declare type Severity = 'Error' | 'Information' | 'Warning';
export declare type IssueType = 'Billing' | 'Compliance' | 'Connectivity' | 'Misc' | 'Security';
export declare const isDesignRecommendationsRequest: import("@altostra/type-validations").ObjectOfTypeValidation<DesignRecommendationsRequest>;
export declare const isSeverity: import("@altostra/type-validations").TypeValidation<Severity>;
export declare const isIssueType: import("@altostra/type-validations").TypeValidation<IssueType>;
export declare const isResourceRecommendation: import("@altostra/type-validations").ObjectOfTypeValidation<ResourceRecommendation>;
export declare const isConnectionRecommendation: import("@altostra/type-validations").ObjectOfTypeValidation<ConnectionRecommendation>;
export declare const isRecommendation: import("@altostra/type-validations").TypeValidation<Recommendation>;
export declare const isDesignRecommendationsResponse: import("@altostra/type-validations").ObjectOfTypeValidation<DesignRecommendationsResponse>;