UNPKG

@apistudio/apim-cli

Version:

CLI for API Management Products

112 lines (91 loc) 3.12 kB
/** * Copyright Super iPaaS Integration LLC, an IBM Company 2024 */ import { GenericAssetAdaptor } from '@apic/api-model/adaptor/GenericAssetAdaptor.js'; import { DeepRequired } from './generic/deep-required.js'; import { Metadata } from '@apic/api-model/common/Metadata.js'; import { Api, Api_Spec } from '@apic/api-model/api/Api.js'; import { PolicySequence, PolicySequence_Spec } from '@apic/api-model/policy/PolicySeq.js'; import { Routing, Routing_Spec } from '@apic/api-model/policy/routing/Routing.js'; import { Test, Test_Spec } from '@apic/api-model/test/Test.js'; import {Ref} from '@apic/api-model/common/Ref.js'; import {Environment, Environment_Spec } from '@apic/api-model/test/Environment.js'; import { MockEndpoint, MockEndpoint_Spec} from '@apic/api-model/mock/MockEndpoint.js'; import { Plan, Plan_Spec } from '@apic/api-model/package/Plan.js'; import { RequestLimit, RequestLimit_Spec } from '@apic/api-model/package/RequestLimit.js'; import { Product, Product_Spec } from '@apic/api-model/package/Product.js'; // BaseAsset type BaseAsset = DeepRequired<GenericAssetAdaptor> & Omit<GenericAssetAdaptor, 'metadata'> & { metadata: DeepRequired<Metadata> }; // API Kind type APIAsset = DeepRequired<Api> & Omit<Api, 'spec'> & { spec: APISpec } type APISpec = DeepRequired<Api_Spec> & Omit<Api_Spec, 'policy-seq'> & { 'policy-sequence': RefModel[] }; type RefModel = DeepRequired<Ref> & Omit<Ref, '$ref'> & { $ref: string; } // PolicySeq Kind type PolicySeqAsset = DeepRequired<PolicySequence> & Omit<PolicySequence, 'spec'> & { spec: PolicySeqSpec } type PolicySeqSpec = DeepRequired<PolicySequence_Spec>; // Route Kind type RouteAsset = DeepRequired<Routing> & Omit<Routing, 'spec'> & { spec: RoutingSpec }; type RoutingSpec =DeepRequired<Routing_Spec>; // Test Kind type TestAsset = DeepRequired<Test> & Omit <Test, 'spec'> &{ spec: TestSpec }; type TestSpec =DeepRequired<Test_Spec>; // Environment Kind type EnvironmentAsset = DeepRequired<Environment> & Omit <Environment, 'spec'> &{ spec:EnvironmentSpec }; type EnvironmentSpec = DeepRequired<Environment_Spec>; //MockEndpoint Kind type MockEndpointAsset = DeepRequired<MockEndpoint> & Omit <MockEndpoint, 'spec'> &{ spec:MockEndpointSpec }; type MockEndpointSpec = DeepRequired<MockEndpoint_Spec>; type PackageAsset = DeepRequired<Product> & Omit<Product, 'spec'> & { spec: PackageSpec }; type PackageSpec = DeepRequired<Product_Spec>; type PlanAsset = DeepRequired<Plan> & Omit<Plan, 'spec'> & { spec: PlanSpec }; type PlanSpec = DeepRequired<Plan_Spec>; type RequestLimitAsset = DeepRequired<RequestLimit> & Omit<RequestLimit, 'spec'> & { spec: RequestLimitSpec }; type RequestLimitSpec = DeepRequired<RequestLimit_Spec>; // Reference Object type RefObj = { $ref: string }; export { BaseAsset, APIAsset, RefModel, APISpec, PolicySeqAsset, PolicySeqSpec, RouteAsset, RoutingSpec, TestAsset, TestSpec, EnvironmentAsset, EnvironmentSpec, MockEndpointAsset, MockEndpointSpec, RefObj, PackageAsset, PackageSpec, PlanAsset, PlanSpec, RequestLimitAsset, RequestLimitSpec, };