import { edmToTs , entityDeserializer , FunctionImportRequestBuilder , DeSerializers , transformReturnValueForEdmType , transformReturnValueForEdmTypeList , transformReturnValueForEntity , transformReturnValueForEntityList , transformReturnValueForComplexType , transformReturnValueForComplexTypeList , transformReturnValueForUndefined , DefaultDeSerializers , defaultDeSerializers , FunctionImportParameter , throwErrorWhenReturnTypeIsUnionType } from '@sap-cloud-sdk/odata-v4' ; import { testService } from './service' ; import { TestEntity } from './TestEntity' ; import { TestEntityApi } from './TestEntityApi' ; import { TestComplexType } from './TestComplexType' ; /**
 * Type of the parameters to be passed to [[testFunctionImportEdmReturnType]].
 */ export interface TestFunctionImportEdmReturnTypeParameters < DeSerializersT extends DeSerializers > { } param parameters returns export function testFunctionImportEdmReturnType < DeSerializersT extends DeSerializers = DefaultDeSerializers > ( parameters , deSerializers = defaultDeSerializers as any ) { const params = { } ; return new FunctionImportRequestBuilder ( '/sap/opu/odata/sap/API_TEST_SRV' , 'TestFunctionImportEdmReturnType' , data => transformReturnValueForEdmType ( data , val => edmToTs ( val . value , 'Edm.Boolean' , deSerializers ) ) , params , deSerializers ) ; } /**
 * Type of the parameters to be passed to [[testFunctionImportEdmReturnTypeCollection]].
 */ export interface TestFunctionImportEdmReturnTypeCollectionParameters < DeSerializersT extends DeSerializers > { } param parameters returns export function testFunctionImportEdmReturnTypeCollection < DeSerializersT extends DeSerializers = DefaultDeSerializers > ( parameters , deSerializers = defaultDeSerializers as any ) { const params = { } ; return new FunctionImportRequestBuilder ( '/sap/opu/odata/sap/API_TEST_SRV' , 'TestFunctionImportEdmReturnTypeCollection' , data => transformReturnValueForEdmTypeList ( data , val => edmToTs ( val , 'Edm.String' , deSerializers ) ) , params , deSerializers ) ; } /**
 * Type of the parameters to be passed to [[testFunctionImportNullableTest]].
 */ export interface TestFunctionImportNullableTestParameters < DeSerializersT extends DeSerializers > { /**
     * Nullable Per Default.
     */ nullablePerDefault ? : string | null ; /**
     * Nullable Explicit.
     */ nullableExplicit ? : string | null ; /**
     * Non Nullable.
     */ nonNullable : string ; } param parameters returns export function testFunctionImportNullableTest < DeSerializersT extends DeSerializers = DefaultDeSerializers > ( parameters , deSerializers = defaultDeSerializers as any ) { const params = { nullablePerDefault : new FunctionImportParameter ( 'NullablePerDefault' , 'Edm.String' , parameters . nullablePerDefault ) , nullableExplicit : new FunctionImportParameter ( 'NullableExplicit' , 'Edm.String' , parameters . nullableExplicit ) , nonNullable : new FunctionImportParameter ( 'NonNullable' , 'Edm.String' , parameters . nonNullable ) } ; return new FunctionImportRequestBuilder ( '/sap/opu/odata/sap/API_TEST_SRV' , 'TestFunctionImportNullableTest' , data => transformReturnValueForEdmTypeList ( data , val => edmToTs ( val , 'Edm.String' , deSerializers ) ) , params , deSerializers ) ; } /**
 * Type of the parameters to be passed to [[testFunctionImportEntityReturnType]].
 */ export interface TestFunctionImportEntityReturnTypeParameters < DeSerializersT extends DeSerializers > { } param parameters returns export function testFunctionImportEntityReturnType < DeSerializersT extends DeSerializers = DefaultDeSerializers > ( parameters , deSerializers = defaultDeSerializers as any ) { const params = { } ; return new FunctionImportRequestBuilder ( '/sap/opu/odata/sap/API_TEST_SRV' , 'TestFunctionImportEntityReturnType' , data => transformReturnValueForEntity ( data , testService ( deSerializers ) . testEntityApi ) , params , deSerializers ) ; } /**
 * Type of the parameters to be passed to [[testFunctionImportEntityReturnTypeCollection]].
 */ export interface TestFunctionImportEntityReturnTypeCollectionParameters < DeSerializersT extends DeSerializers > { } param parameters returns export function testFunctionImportEntityReturnTypeCollection < DeSerializersT extends DeSerializers = DefaultDeSerializers > ( parameters , deSerializers = defaultDeSerializers as any ) { const params = { } ; return new FunctionImportRequestBuilder ( '/sap/opu/odata/sap/API_TEST_SRV' , 'TestFunctionImportEntityReturnTypeCollection' , data => transformReturnValueForEntityList ( data , testService ( deSerializers ) . testEntityApi ) , params , deSerializers ) ; } /**
 * Type of the parameters to be passed to [[testFunctionImportSharedEntityReturnType]].
 */ export interface TestFunctionImportSharedEntityReturnTypeParameters < DeSerializersT extends DeSerializers > { } param parameters returns export function testFunctionImportSharedEntityReturnType < DeSerializersT extends DeSerializers = DefaultDeSerializers > ( parameters , deSerializers = defaultDeSerializers as any ) { const params = { } ; return new FunctionImportRequestBuilder ( '/sap/opu/odata/sap/API_TEST_SRV' , 'TestFunctionImportSharedEntityReturnType' , data => throwErrorWhenReturnTypeIsUnionType ( data , 'TestFunctionImportSharedEntityReturnType' ) , params , deSerializers ) ; } /**
 * Type of the parameters to be passed to [[testFunctionImportSharedEntityReturnTypeCollection]].
 */ export interface TestFunctionImportSharedEntityReturnTypeCollectionParameters < DeSerializersT extends DeSerializers > { } param parameters returns export function testFunctionImportSharedEntityReturnTypeCollection < DeSerializersT extends DeSerializers = DefaultDeSerializers > ( parameters , deSerializers = defaultDeSerializers as any ) { const params = { } ; return new FunctionImportRequestBuilder ( '/sap/opu/odata/sap/API_TEST_SRV' , 'TestFunctionImportSharedEntityReturnTypeCollection' , data => throwErrorWhenReturnTypeIsUnionType ( data , 'TestFunctionImportSharedEntityReturnTypeCollection' ) , params , deSerializers ) ; } /**
 * Type of the parameters to be passed to [[testFunctionImportComplexReturnType]].
 */ export interface TestFunctionImportComplexReturnTypeParameters < DeSerializersT extends DeSerializers > { } param parameters returns export function testFunctionImportComplexReturnType < DeSerializersT extends DeSerializers = DefaultDeSerializers > ( parameters , deSerializers = defaultDeSerializers as any ) { const params = { } ; return new FunctionImportRequestBuilder ( '/sap/opu/odata/sap/API_TEST_SRV' , 'TestFunctionImportComplexReturnType' , data => transformReturnValueForComplexType ( data , data => entityDeserializer ( deSerializers ) . deserializeComplexType ( data , TestComplexType ) ) , params , deSerializers ) ; } /**
 * Type of the parameters to be passed to [[testFunctionImportComplexReturnTypeCollection]].
 */ export interface TestFunctionImportComplexReturnTypeCollectionParameters < DeSerializersT extends DeSerializers > { } param parameters returns export function testFunctionImportComplexReturnTypeCollection < DeSerializersT extends DeSerializers = DefaultDeSerializers > ( parameters , deSerializers = defaultDeSerializers as any ) { const params = { } ; return new FunctionImportRequestBuilder ( '/sap/opu/odata/sap/API_TEST_SRV' , 'TestFunctionImportComplexReturnTypeCollection' , data => transformReturnValueForComplexTypeList ( data , data => entityDeserializer ( deSerializers ) . deserializeComplexType ( data , TestComplexType ) ) , params , deSerializers ) ; } /**
 * Type of the parameters to be passed to [[testFunctionImportMultipleParams]].
 */ export interface TestFunctionImportMultipleParamsParameters < DeSerializersT extends DeSerializers > { /**
     * String Param.
     */ stringParam : string ; /**
     * Non Nullable String Param.
     */ nonNullableStringParam : string ; /**
     * Nullable Boolean Param.
     */ nullableBooleanParam ? : boolean | null ; /**
     * Nullable Geography Point Param.
     */ nullableGeographyPointParam ? : any | null ; } param parameters returns export function testFunctionImportMultipleParams < DeSerializersT extends DeSerializers = DefaultDeSerializers > ( parameters , deSerializers = defaultDeSerializers as any ) { const params = { stringParam : new FunctionImportParameter ( 'StringParam' , 'Edm.String' , parameters . stringParam ) , nonNullableStringParam : new FunctionImportParameter ( 'NonNullableStringParam' , 'Edm.String' , parameters . nonNullableStringParam ) , nullableBooleanParam : new FunctionImportParameter ( 'NullableBooleanParam' , 'Edm.Boolean' , parameters . nullableBooleanParam ) , nullableGeographyPointParam : new FunctionImportParameter ( 'NullableGeographyPointParam' , 'Edm.Any' , parameters . nullableGeographyPointParam ) } ; return new FunctionImportRequestBuilder ( '/sap/opu/odata/sap/API_TEST_SRV' , 'TestFunctionImportMultipleParams' , data => transformReturnValueForEdmType ( data , val => edmToTs ( val . value , 'Edm.Boolean' , deSerializers ) ) , params , deSerializers ) ; } /**
 * Type of the parameters to be passed to [[testFunctionImportWithDifferentName]].
 */ export interface TestFunctionImportWithDifferentNameParameters < DeSerializersT extends DeSerializers > { } param parameters returns export function testFunctionImportWithDifferentName < DeSerializersT extends DeSerializers = DefaultDeSerializers > ( parameters , deSerializers = defaultDeSerializers as any ) { const params = { } ; return new FunctionImportRequestBuilder ( '/sap/opu/odata/sap/API_TEST_SRV' , 'TestFunctionImportWithDifferentName' , data => transformReturnValueForUndefined ( data , val => undefined ) , params , deSerializers ) ; } export const functionImports = { testFunctionImportEdmReturnType , testFunctionImportEdmReturnTypeCollection , testFunctionImportNullableTest , testFunctionImportEntityReturnType , testFunctionImportEntityReturnTypeCollection , testFunctionImportSharedEntityReturnType , testFunctionImportSharedEntityReturnTypeCollection , testFunctionImportComplexReturnType , testFunctionImportComplexReturnTypeCollection , testFunctionImportMultipleParams , testFunctionImportWithDifferentName } ;