@apistudio/apim-cli
Version:
CLI for API Management Products
91 lines (85 loc) • 4.83 kB
text/typescript
/**
* Copyright IBM Corp. 2024, 2025
*/
import { GenericAssetAdaptor } from '@apic/api-model/adaptor/GenericAssetAdaptor.js';
import { Metadata } from '@apic/api-model/common/Metadata.js';
import { Api_Spec } from '@apic/api-model/api/Api.js';
import { PolicySequence_Spec } from '@apic/api-model/policy/PolicySeq.js';
import { Policy_Spec } from '@apic/api-model/policy/Policy.js';
import { Transport_Spec } from '@apic/api-model/policy/transport/Transport.js';
import { Routing_Spec } from '@apic/api-model/policy/routing/Routing.js';
import { Scope_Spec } from '@apic/api-model/api/Scope.js';
import { KindEnums } from '@apic/api-model/common/StudioEnums.js';
import { SetContextVariable_Spec } from '@apic/api-model/policy/iam/SetContextVariable.js';
import { IAM_Spec } from '@apic/api-model/policy/iam/IAM.js';
import { DataMasking_Spec } from '@apic/api-model/policy/ReqProcessing/DataMasking.js';
import { WebMethodsISService_Spec } from '@apic/api-model/policy/iam/WebMethodsISService.js';
import { OutboundAlias_Spec } from '@apic/api-model/outbound/OutboundAlias.js';
import { OutboundAnonymous_Spec } from '@apic/api-model/outbound/OutboundAnonymous.js';
import { OutboundBasicAuth_Spec } from '@apic/api-model/outbound/OutboundBasicAuth.js';
import { OutboundIncomingJWT_Spec } from '@apic/api-model/outbound/OutboundIncomingJWT.js';
import { OutboundKerberosAuth_Spec } from '@apic/api-model/outbound/OutboundKerberosAuth.js';
import { OutboundNTLMAuth_Spec } from '@apic/api-model/outbound/OutboundNTLMAuth.js';
import { OutboundOAuth2_Spec } from '@apic/api-model/outbound/OutboundOAuth2.js';
import { AuthorizeUser_Spec } from '@apic/api-model/policy/iam/AuthorizeUser.js';
import { InboundBulkHead_Spec } from '@apic/api-model/policy/transport/BulkHeadTransport.js';
import { InboundMessaging_Spec } from '@apic/api-model/policy/transport/JMSAMQPTransport.js';
import { MessageConfig_Spec } from '@apic/api-model/policy/routing/MessageConfig.js';
import { Tuple_Spec } from '@apic/api-model/api/Tuple.js';
import { CustomHttpHeader_Spec } from '@apic/api-model/policy/routing/CustomHttpHeader.js';
import { SetMediaType_Spec } from '@apic/api-model/policy/transport/SetMediaType.js';
import { Package_Spec } from '@apic/api-model/package/Package.js';
import { Plan_Spec } from '@apic/api-model/package/Plan.js';
import { Quota_Spec } from '@apic/api-model/package/Quota.js';
export type Api_Spec_Ref = Required<Api_Spec>;
export type PolicySequence_Spec_Ref = Required<PolicySequence_Spec>;
export type Policy_Spec_Ref = Required<Policy_Spec>;
export type Transport_Spec_Ref = Required<Transport_Spec>;
export type Routing_Spec_Ref = Required<Routing_Spec>;
export type Scope_Spec_Ref = Required<Scope_Spec>;
export type IAM_Spec_Ref = Required<IAM_Spec>;
export type DataMasking_Spec_Ref = Required<DataMasking_Spec>;
export type WebMethodsISService_Spec_Ref = Required<WebMethodsISService_Spec>;
export type SetContextVariable_Spec_Ref = Required<SetContextVariable_Spec>;
export type OutboundAlias_Spec_Ref = Required<OutboundAlias_Spec>;
export type OutboundAnonymous_Spec_Ref = Required<OutboundAnonymous_Spec>;
export type OutboundBasicAuth_Spec_Ref = Required<OutboundBasicAuth_Spec>;
export type OutboundIncomingJWT_Spec_Ref = Required<OutboundIncomingJWT_Spec>;
export type OutboundKerberosAuth_Spec_Ref = Required<OutboundKerberosAuth_Spec>;
export type OutboundNTLMAuth_Spec_Ref = Required<OutboundNTLMAuth_Spec>;
export type OutboundOAuth2_Spec_Ref = Required<OutboundOAuth2_Spec>;
export type AuthorizeUser_Spec_Ref = Required<AuthorizeUser_Spec>;
export type InboundBulkHead_Spec_Ref = Required<InboundBulkHead_Spec>;
export type InboundMessaging_Spec_Ref = Required<InboundMessaging_Spec>;
export type MessageConfig_Spec_Ref = Required<MessageConfig_Spec>;
export type Tuple_Spec_Ref = Required<Tuple_Spec>;
export type CustomHttpHeader_Spec_Ref = Required<CustomHttpHeader_Spec>;
export type SetMediaType_Spec_Ref = Required<SetMediaType_Spec>;
export type Package_Spec_Ref = Required<Package_Spec>;
export type Plan_Spec_Ref = Required<Plan_Spec>;
export type Quota_Spec_Ref = Required<Quota_Spec>;
export const UpperCaseKinds = Object.keys(KindEnums).map((key) =>
key.toUpperCase(),
);
//TODO: to be removed after model updates
UpperCaseKinds.push('DATAPOWERASSEMBLY');
export interface SpecObject {
[key: string]: SpecObject | string;
}
export type YamlContent = Required<GenericAssetAdaptor>;
export type Metadata_Ref = Required<Metadata>;
export interface ErrorResponse {
code: string;
field: string;
description: string;
}
export type ReferenceValidationResult = {
isValid: boolean;
refMap: Map<string, boolean>;
errors: string[];
};
export type ReferenceValidationResultMap = {
isValid: boolean;
allRefMaps: Map<string, Map<string, boolean>>;
errors: string[];
};