@energycap/energycapid-sdk-angular 1.2108.35 → 1.2108.39-develop-20211217-1538

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"__symbolic":"module","version":4,"metadata":{"APIS":[{"__symbolic":"reference","name":"ApplicationService"},{"__symbolic":"reference","name":"ApplicationInstanceService"},{"__symbolic":"reference","name":"AuthService"},{"__symbolic":"reference","name":"DataSourceService"},{"__symbolic":"reference","name":"EnvironmentService"},{"__symbolic":"reference","name":"MeService"},{"__symbolic":"reference","name":"OrganizationService"},{"__symbolic":"reference","name":"OrganizationApplicationService"},{"__symbolic":"reference","name":"UserService"}],"ApplicationService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":39,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":46,"character":45}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":46,"character":56},"arguments":[{"__symbolic":"reference","name":"BASE_PATH"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":46,"character":93}}]],"parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":46,"character":32},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"Configuration"}]}],"extendObj":[{"__symbolic":"method"}],"canConsumeForm":[{"__symbolic":"method"}],"getMyApplications":[{"__symbolic":"method"}],"getMyApplicationsWithHttpInfo":[{"__symbolic":"method"}]}},"ApplicationInstanceService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":40,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":47,"character":45}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":47,"character":56},"arguments":[{"__symbolic":"reference","name":"BASE_PATH"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":47,"character":93}}]],"parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":47,"character":32},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"Configuration"}]}],"extendObj":[{"__symbolic":"method"}],"canConsumeForm":[{"__symbolic":"method"}],"getApplicationInstanceExchangeInfo":[{"__symbolic":"method"}],"getApplicationInstances":[{"__symbolic":"method"}],"getApplicationInstanceExchangeInfoWithHttpInfo":[{"__symbolic":"method"}],"getApplicationInstancesWithHttpInfo":[{"__symbolic":"method"}]}},"AuthService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":45,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":52,"character":45}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":52,"character":56},"arguments":[{"__symbolic":"reference","name":"BASE_PATH"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":52,"character":93}}]],"parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":52,"character":32},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"Configuration"}]}],"extendObj":[{"__symbolic":"method"}],"canConsumeForm":[{"__symbolic":"method"}],"changePassword":[{"__symbolic":"method"}],"getLoginSource":[{"__symbolic":"method"}],"loginWithFederationProvider":[{"__symbolic":"method"}],"loginWithUsernameAndPassword":[{"__symbolic":"method"}],"resetPassword":[{"__symbolic":"method"}],"sendPasswordRecoveryEmail":[{"__symbolic":"method"}],"validatePassword":[{"__symbolic":"method"}],"changePasswordWithHttpInfo":[{"__symbolic":"method"}],"getLoginSourceWithHttpInfo":[{"__symbolic":"method"}],"loginWithFederationProviderWithHttpInfo":[{"__symbolic":"method"}],"loginWithUsernameAndPasswordWithHttpInfo":[{"__symbolic":"method"}],"resetPasswordWithHttpInfo":[{"__symbolic":"method"}],"sendPasswordRecoveryEmailWithHttpInfo":[{"__symbolic":"method"}],"validatePasswordWithHttpInfo":[{"__symbolic":"method"}]}},"DataSourceService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":40,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":47,"character":45}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":47,"character":56},"arguments":[{"__symbolic":"reference","name":"BASE_PATH"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":47,"character":93}}]],"parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":47,"character":32},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"Configuration"}]}],"extendObj":[{"__symbolic":"method"}],"canConsumeForm":[{"__symbolic":"method"}],"getDataSourceById":[{"__symbolic":"method"}],"getDataSources":[{"__symbolic":"method"}],"updateDataSource":[{"__symbolic":"method"}],"getDataSourceByIdWithHttpInfo":[{"__symbolic":"method"}],"getDataSourcesWithHttpInfo":[{"__symbolic":"method"}],"updateDataSourceWithHttpInfo":[{"__symbolic":"method"}]}},"EnvironmentService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":39,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":46,"character":45}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":46,"character":56},"arguments":[{"__symbolic":"reference","name":"BASE_PATH"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":46,"character":93}}]],"parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":46,"character":32},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"Configuration"}]}],"extendObj":[{"__symbolic":"method"}],"canConsumeForm":[{"__symbolic":"method"}],"getEnvironments":[{"__symbolic":"method"}],"getEnvironmentsWithHttpInfo":[{"__symbolic":"method"}]}},"MeService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":41,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":48,"character":45}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":48,"character":56},"arguments":[{"__symbolic":"reference","name":"BASE_PATH"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":48,"character":93}}]],"parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":48,"character":32},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"Configuration"}]}],"extendObj":[{"__symbolic":"method"}],"canConsumeForm":[{"__symbolic":"method"}],"getMe":[{"__symbolic":"method"}],"linkMyUserToDataSource":[{"__symbolic":"method"}],"updateMyInformation":[{"__symbolic":"method"}],"getMeWithHttpInfo":[{"__symbolic":"method"}],"linkMyUserToDataSourceWithHttpInfo":[{"__symbolic":"method"}],"updateMyInformationWithHttpInfo":[{"__symbolic":"method"}]}},"OrganizationService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":39,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":46,"character":45}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":46,"character":56},"arguments":[{"__symbolic":"reference","name":"BASE_PATH"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":46,"character":93}}]],"parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":46,"character":32},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"Configuration"}]}],"extendObj":[{"__symbolic":"method"}],"canConsumeForm":[{"__symbolic":"method"}],"getOrganizationById":[{"__symbolic":"method"}],"getOrganizations":[{"__symbolic":"method"}],"getOrganizationByIdWithHttpInfo":[{"__symbolic":"method"}],"getOrganizationsWithHttpInfo":[{"__symbolic":"method"}]}},"OrganizationApplicationService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":39,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":46,"character":45}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":46,"character":56},"arguments":[{"__symbolic":"reference","name":"BASE_PATH"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":46,"character":93}}]],"parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":46,"character":32},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"Configuration"}]}],"extendObj":[{"__symbolic":"method"}],"canConsumeForm":[{"__symbolic":"method"}],"getOrganizationApplications":[{"__symbolic":"method"}],"getOrganizationApplicationsWithHttpInfo":[{"__symbolic":"method"}]}},"UserService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":45,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":52,"character":45}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":52,"character":56},"arguments":[{"__symbolic":"reference","name":"BASE_PATH"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":52,"character":93}}]],"parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":52,"character":32},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"Configuration"}]}],"extendObj":[{"__symbolic":"method"}],"canConsumeForm":[{"__symbolic":"method"}],"createUser":[{"__symbolic":"method"}],"deleteUserPermission":[{"__symbolic":"method"}],"getUserByEmail":[{"__symbolic":"method"}],"getUserPermissionForEntity":[{"__symbolic":"method"}],"getUserPermissions":[{"__symbolic":"method"}],"getUsersWithPermissionToEntity":[{"__symbolic":"method"}],"inviteUser":[{"__symbolic":"method"}],"resendInvite":[{"__symbolic":"method"}],"setUserPermission":[{"__symbolic":"method"}],"createUserWithHttpInfo":[{"__symbolic":"method"}],"deleteUserPermissionWithHttpInfo":[{"__symbolic":"method"}],"getUserByEmailWithHttpInfo":[{"__symbolic":"method"}],"getUserPermissionForEntityWithHttpInfo":[{"__symbolic":"method"}],"getUserPermissionsWithHttpInfo":[{"__symbolic":"method"}],"getUsersWithPermissionToEntityWithHttpInfo":[{"__symbolic":"method"}],"inviteUserWithHttpInfo":[{"__symbolic":"method"}],"resendInviteWithHttpInfo":[{"__symbolic":"method"}],"setUserPermissionWithHttpInfo":[{"__symbolic":"method"}]}},"AllUserPermissionsResponse":{"__symbolic":"class","members":{}},"ApplicationInstanceRedirectResponse":{"__symbolic":"class","members":{}},"ApplicationInstanceResponse":{"__symbolic":"class","members":{}},"ApplicationResponse":{"__symbolic":"class","members":{}},"ChangePasswordRequest":{"__symbolic":"class","members":{}},"DataSourceResponse":{"__symbolic":"class","members":{}},"DataSourceUpdateRequest":{"__symbolic":"class","members":{}},"EntityPermission":{"__symbolic":"class","members":{}},"EnvironmentResponse":{"__symbolic":"class","members":{}},"InviteUserRequest":{"__symbolic":"class","members":{}},"LinkDataSourceRequest":{"__symbolic":"class","members":{}},"LoginResponse":{"__symbolic":"class","members":{}},"LoginSourceResponse":{"__symbolic":"class","members":{}},"OrganizationApplicationResponse":{"__symbolic":"class","members":{}},"OrganizationResponse":{"__symbolic":"class","members":{}},"ResetPasswordRequest":{"__symbolic":"class","members":{}},"RoleEnum":{"NoAccess":"NoAccess","ReadOnly":"ReadOnly","Admin":"Admin"},"SelfCreateUserRequest":{"__symbolic":"class","members":{}},"UpdateMeRequest":{"__symbolic":"class","members":{}},"UserAuthResultEnum":{"PasswordChangeRequired":"PasswordChangeRequired","PasswordResetRequired":"PasswordResetRequired","Success":"Success","EmailNotVerified":"EmailNotVerified","LockedOut":"LockedOut","PasswordIsInvalid":"PasswordIsInvalid","NoPasswordChangeForFederatedDomain":"NoPasswordChangeForFederatedDomain","FailedOther":"FailedOther"},"UserLoginRequest":{"__symbolic":"class","members":{}},"UserPermissionRequest":{"__symbolic":"class","members":{}},"UserPermissionResponse":{"__symbolic":"class","members":{}},"UserResponse":{"__symbolic":"class","members":{}},"UserStatusEnum":{"Unknown":"Unknown","Confirmed":"Confirmed","ForcePasswordReset":"ForcePasswordReset","ForcePasswordChange":"ForcePasswordChange","RequireEmailVerification":"RequireEmailVerification","LockedOut":"LockedOut"},"ValidatePasswordRequest":{"__symbolic":"class","members":{}},"ValidatePasswordResponse":{"__symbolic":"class","members":{}},"BASE_PATH":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":2,"character":29},"arguments":["basePath"]},"COLLECTION_FORMATS":{"csv":",","tsv":" ","ssv":" ","pipes":"|","$quoted$":["csv","tsv","ssv","pipes"]},"ConfigurationParameters":{"__symbolic":"interface"},"Configuration":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"any"}]}]}},"EnergyCapSdkModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":15,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":16,"character":18},{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClientModule","line":16,"character":32}],"declarations":[],"exports":[],"providers":[{"__symbolic":"reference","name":"ApplicationService"},{"__symbolic":"reference","name":"ApplicationInstanceService"},{"__symbolic":"reference","name":"AuthService"},{"__symbolic":"reference","name":"DataSourceService"},{"__symbolic":"reference","name":"EnvironmentService"},{"__symbolic":"reference","name":"MeService"},{"__symbolic":"reference","name":"OrganizationService"},{"__symbolic":"reference","name":"OrganizationApplicationService"},{"__symbolic":"reference","name":"UserService"}]}]}],"members":{},"statics":{"forConfig":{"__symbolic":"function","parameters":["configurationFactory"],"value":{"ngModule":{"__symbolic":"reference","name":"EnergyCapSdkModule"},"providers":[{"provide":{"__symbolic":"reference","name":"Configuration"},"useFactory":{"__symbolic":"reference","name":"configurationFactory"}}]}}}}},"origins":{"APIS":"./api/api","ApplicationService":"./api/application.service","ApplicationInstanceService":"./api/applicationInstance.service","AuthService":"./api/auth.service","DataSourceService":"./api/dataSource.service","EnvironmentService":"./api/environment.service","MeService":"./api/me.service","OrganizationService":"./api/organization.service","OrganizationApplicationService":"./api/organizationApplication.service","UserService":"./api/user.service","AllUserPermissionsResponse":"./model/allUserPermissionsResponse","ApplicationInstanceRedirectResponse":"./model/applicationInstanceRedirectResponse","ApplicationInstanceResponse":"./model/applicationInstanceResponse","ApplicationResponse":"./model/applicationResponse","ChangePasswordRequest":"./model/changePasswordRequest","DataSourceResponse":"./model/dataSourceResponse","DataSourceUpdateRequest":"./model/dataSourceUpdateRequest","EntityPermission":"./model/entityPermission","EnvironmentResponse":"./model/environmentResponse","InviteUserRequest":"./model/inviteUserRequest","LinkDataSourceRequest":"./model/linkDataSourceRequest","LoginResponse":"./model/loginResponse","LoginSourceResponse":"./model/loginSourceResponse","OrganizationApplicationResponse":"./model/organizationApplicationResponse","OrganizationResponse":"./model/organizationResponse","ResetPasswordRequest":"./model/resetPasswordRequest","RoleEnum":"./model/roleEnum","SelfCreateUserRequest":"./model/selfCreateUserRequest","UpdateMeRequest":"./model/updateMeRequest","UserAuthResultEnum":"./model/userAuthResultEnum","UserLoginRequest":"./model/userLoginRequest","UserPermissionRequest":"./model/userPermissionRequest","UserPermissionResponse":"./model/userPermissionResponse","UserResponse":"./model/userResponse","UserStatusEnum":"./model/userStatusEnum","ValidatePasswordRequest":"./model/validatePasswordRequest","ValidatePasswordResponse":"./model/validatePasswordResponse","BASE_PATH":"./variables","COLLECTION_FORMATS":"./variables","ConfigurationParameters":"./configuration","Configuration":"./configuration","EnergyCapSdkModule":"./api.module"},"importAs":"@energycap/energycapid-sdk-angular"}
1
+ {"__symbolic":"module","version":4,"metadata":{"APIS":[{"__symbolic":"reference","name":"ApplicationService"},{"__symbolic":"reference","name":"ApplicationInstanceService"},{"__symbolic":"reference","name":"AuthService"},{"__symbolic":"reference","name":"DataSourceService"},{"__symbolic":"reference","name":"EnvironmentService"},{"__symbolic":"reference","name":"MeService"},{"__symbolic":"reference","name":"OrganizationService"},{"__symbolic":"reference","name":"OrganizationApplicationService"},{"__symbolic":"reference","name":"UserService"}],"ApplicationService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":39,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":46,"character":45}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":46,"character":56},"arguments":[{"__symbolic":"reference","name":"BASE_PATH"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":46,"character":93}}]],"parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":46,"character":32},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"Configuration"}]}],"extendObj":[{"__symbolic":"method"}],"canConsumeForm":[{"__symbolic":"method"}],"getMyApplications":[{"__symbolic":"method"}],"getMyApplicationsWithHttpInfo":[{"__symbolic":"method"}]}},"ApplicationInstanceService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":40,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":47,"character":45}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":47,"character":56},"arguments":[{"__symbolic":"reference","name":"BASE_PATH"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":47,"character":93}}]],"parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":47,"character":32},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"Configuration"}]}],"extendObj":[{"__symbolic":"method"}],"canConsumeForm":[{"__symbolic":"method"}],"getApplicationInstanceExchangeInfo":[{"__symbolic":"method"}],"getApplicationInstances":[{"__symbolic":"method"}],"getApplicationInstanceExchangeInfoWithHttpInfo":[{"__symbolic":"method"}],"getApplicationInstancesWithHttpInfo":[{"__symbolic":"method"}]}},"AuthService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":45,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":52,"character":45}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":52,"character":56},"arguments":[{"__symbolic":"reference","name":"BASE_PATH"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":52,"character":93}}]],"parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":52,"character":32},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"Configuration"}]}],"extendObj":[{"__symbolic":"method"}],"canConsumeForm":[{"__symbolic":"method"}],"changePassword":[{"__symbolic":"method"}],"getLoginSource":[{"__symbolic":"method"}],"loginWithFederationProvider":[{"__symbolic":"method"}],"loginWithUsernameAndPassword":[{"__symbolic":"method"}],"resetPassword":[{"__symbolic":"method"}],"sendPasswordRecoveryEmail":[{"__symbolic":"method"}],"validatePassword":[{"__symbolic":"method"}],"changePasswordWithHttpInfo":[{"__symbolic":"method"}],"getLoginSourceWithHttpInfo":[{"__symbolic":"method"}],"loginWithFederationProviderWithHttpInfo":[{"__symbolic":"method"}],"loginWithUsernameAndPasswordWithHttpInfo":[{"__symbolic":"method"}],"resetPasswordWithHttpInfo":[{"__symbolic":"method"}],"sendPasswordRecoveryEmailWithHttpInfo":[{"__symbolic":"method"}],"validatePasswordWithHttpInfo":[{"__symbolic":"method"}]}},"DataSourceService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":40,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":47,"character":45}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":47,"character":56},"arguments":[{"__symbolic":"reference","name":"BASE_PATH"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":47,"character":93}}]],"parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":47,"character":32},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"Configuration"}]}],"extendObj":[{"__symbolic":"method"}],"canConsumeForm":[{"__symbolic":"method"}],"getDataSourceById":[{"__symbolic":"method"}],"getDataSources":[{"__symbolic":"method"}],"updateDataSource":[{"__symbolic":"method"}],"getDataSourceByIdWithHttpInfo":[{"__symbolic":"method"}],"getDataSourcesWithHttpInfo":[{"__symbolic":"method"}],"updateDataSourceWithHttpInfo":[{"__symbolic":"method"}]}},"EnvironmentService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":39,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":46,"character":45}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":46,"character":56},"arguments":[{"__symbolic":"reference","name":"BASE_PATH"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":46,"character":93}}]],"parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":46,"character":32},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"Configuration"}]}],"extendObj":[{"__symbolic":"method"}],"canConsumeForm":[{"__symbolic":"method"}],"getEnvironments":[{"__symbolic":"method"}],"getEnvironmentsWithHttpInfo":[{"__symbolic":"method"}]}},"MeService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":41,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":48,"character":45}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":48,"character":56},"arguments":[{"__symbolic":"reference","name":"BASE_PATH"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":48,"character":93}}]],"parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":48,"character":32},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"Configuration"}]}],"extendObj":[{"__symbolic":"method"}],"canConsumeForm":[{"__symbolic":"method"}],"getMe":[{"__symbolic":"method"}],"linkMyUserToDataSource":[{"__symbolic":"method"}],"updateMyInformation":[{"__symbolic":"method"}],"getMeWithHttpInfo":[{"__symbolic":"method"}],"linkMyUserToDataSourceWithHttpInfo":[{"__symbolic":"method"}],"updateMyInformationWithHttpInfo":[{"__symbolic":"method"}]}},"OrganizationService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":39,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":46,"character":45}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":46,"character":56},"arguments":[{"__symbolic":"reference","name":"BASE_PATH"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":46,"character":93}}]],"parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":46,"character":32},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"Configuration"}]}],"extendObj":[{"__symbolic":"method"}],"canConsumeForm":[{"__symbolic":"method"}],"getOrganizationById":[{"__symbolic":"method"}],"getOrganizations":[{"__symbolic":"method"}],"getOrganizationByIdWithHttpInfo":[{"__symbolic":"method"}],"getOrganizationsWithHttpInfo":[{"__symbolic":"method"}]}},"OrganizationApplicationService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":39,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":46,"character":45}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":46,"character":56},"arguments":[{"__symbolic":"reference","name":"BASE_PATH"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":46,"character":93}}]],"parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":46,"character":32},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"Configuration"}]}],"extendObj":[{"__symbolic":"method"}],"canConsumeForm":[{"__symbolic":"method"}],"getOrganizationApplications":[{"__symbolic":"method"}],"getOrganizationApplicationsWithHttpInfo":[{"__symbolic":"method"}]}},"UserService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":45,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":52,"character":45}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":52,"character":56},"arguments":[{"__symbolic":"reference","name":"BASE_PATH"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":52,"character":93}}]],"parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":52,"character":32},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"Configuration"}]}],"extendObj":[{"__symbolic":"method"}],"canConsumeForm":[{"__symbolic":"method"}],"createUser":[{"__symbolic":"method"}],"deleteUserPermission":[{"__symbolic":"method"}],"getUserByEmail":[{"__symbolic":"method"}],"getUserPermissionForEntity":[{"__symbolic":"method"}],"getUserPermissions":[{"__symbolic":"method"}],"getUsersWithPermissionToEntity":[{"__symbolic":"method"}],"inviteUser":[{"__symbolic":"method"}],"resendInvite":[{"__symbolic":"method"}],"setUserPermission":[{"__symbolic":"method"}],"createUserWithHttpInfo":[{"__symbolic":"method"}],"deleteUserPermissionWithHttpInfo":[{"__symbolic":"method"}],"getUserByEmailWithHttpInfo":[{"__symbolic":"method"}],"getUserPermissionForEntityWithHttpInfo":[{"__symbolic":"method"}],"getUserPermissionsWithHttpInfo":[{"__symbolic":"method"}],"getUsersWithPermissionToEntityWithHttpInfo":[{"__symbolic":"method"}],"inviteUserWithHttpInfo":[{"__symbolic":"method"}],"resendInviteWithHttpInfo":[{"__symbolic":"method"}],"setUserPermissionWithHttpInfo":[{"__symbolic":"method"}]}},"APIOrderBy":{"__symbolic":"class","members":{}},"AllUserPermissionsResponse":{"__symbolic":"class","members":{}},"ApplicationInstanceRedirectResponse":{"__symbolic":"class","members":{}},"ApplicationInstanceResponse":{"__symbolic":"class","members":{}},"ApplicationResponse":{"__symbolic":"class","members":{}},"ChangePasswordRequest":{"__symbolic":"class","members":{}},"DataSourceResponse":{"__symbolic":"class","members":{}},"DataSourceUpdateRequest":{"__symbolic":"class","members":{}},"EntityPermission":{"__symbolic":"class","members":{}},"EnvironmentResponse":{"__symbolic":"class","members":{}},"InviteUserRequest":{"__symbolic":"class","members":{}},"LinkDataSourceRequest":{"__symbolic":"class","members":{}},"LoginResponse":{"__symbolic":"class","members":{}},"LoginSourceResponse":{"__symbolic":"class","members":{}},"OrganizationApplicationResponse":{"__symbolic":"class","members":{}},"OrganizationResponse":{"__symbolic":"class","members":{}},"ResetPasswordRequest":{"__symbolic":"class","members":{}},"RoleEnum":{"NoAccess":"NoAccess","ReadOnly":"ReadOnly","Admin":"Admin"},"SelfCreateUserRequest":{"__symbolic":"class","members":{}},"UpdateMeRequest":{"__symbolic":"class","members":{}},"UserAuthResultEnum":{"PasswordChangeRequired":"PasswordChangeRequired","PasswordResetRequired":"PasswordResetRequired","Success":"Success","EmailNotVerified":"EmailNotVerified","LockedOut":"LockedOut","PasswordIsInvalid":"PasswordIsInvalid","NoPasswordChangeForFederatedDomain":"NoPasswordChangeForFederatedDomain","FailedOther":"FailedOther"},"UserLoginRequest":{"__symbolic":"class","members":{}},"UserPermissionRequest":{"__symbolic":"class","members":{}},"UserPermissionResponse":{"__symbolic":"class","members":{}},"UserResponse":{"__symbolic":"class","members":{}},"UserStatusEnum":{"Unknown":"Unknown","Confirmed":"Confirmed","ForcePasswordReset":"ForcePasswordReset","ForcePasswordChange":"ForcePasswordChange","RequireEmailVerification":"RequireEmailVerification","LockedOut":"LockedOut"},"ValidatePasswordRequest":{"__symbolic":"class","members":{}},"ValidatePasswordResponse":{"__symbolic":"class","members":{}},"BASE_PATH":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":2,"character":29},"arguments":["basePath"]},"COLLECTION_FORMATS":{"csv":",","tsv":" ","ssv":" ","pipes":"|","$quoted$":["csv","tsv","ssv","pipes"]},"ConfigurationParameters":{"__symbolic":"interface"},"Configuration":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"any"}]}]}},"EnergyCapSdkModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":15,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":16,"character":18},{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClientModule","line":16,"character":32}],"declarations":[],"exports":[],"providers":[{"__symbolic":"reference","name":"ApplicationService"},{"__symbolic":"reference","name":"ApplicationInstanceService"},{"__symbolic":"reference","name":"AuthService"},{"__symbolic":"reference","name":"DataSourceService"},{"__symbolic":"reference","name":"EnvironmentService"},{"__symbolic":"reference","name":"MeService"},{"__symbolic":"reference","name":"OrganizationService"},{"__symbolic":"reference","name":"OrganizationApplicationService"},{"__symbolic":"reference","name":"UserService"}]}]}],"members":{},"statics":{"forConfig":{"__symbolic":"function","parameters":["configurationFactory"],"value":{"ngModule":{"__symbolic":"reference","name":"EnergyCapSdkModule"},"providers":[{"provide":{"__symbolic":"reference","name":"Configuration"},"useFactory":{"__symbolic":"reference","name":"configurationFactory"}}]}}}}},"origins":{"APIS":"./api/api","ApplicationService":"./api/application.service","ApplicationInstanceService":"./api/applicationInstance.service","AuthService":"./api/auth.service","DataSourceService":"./api/dataSource.service","EnvironmentService":"./api/environment.service","MeService":"./api/me.service","OrganizationService":"./api/organization.service","OrganizationApplicationService":"./api/organizationApplication.service","UserService":"./api/user.service","APIOrderBy":"./model/aPIOrderBy","AllUserPermissionsResponse":"./model/allUserPermissionsResponse","ApplicationInstanceRedirectResponse":"./model/applicationInstanceRedirectResponse","ApplicationInstanceResponse":"./model/applicationInstanceResponse","ApplicationResponse":"./model/applicationResponse","ChangePasswordRequest":"./model/changePasswordRequest","DataSourceResponse":"./model/dataSourceResponse","DataSourceUpdateRequest":"./model/dataSourceUpdateRequest","EntityPermission":"./model/entityPermission","EnvironmentResponse":"./model/environmentResponse","InviteUserRequest":"./model/inviteUserRequest","LinkDataSourceRequest":"./model/linkDataSourceRequest","LoginResponse":"./model/loginResponse","LoginSourceResponse":"./model/loginSourceResponse","OrganizationApplicationResponse":"./model/organizationApplicationResponse","OrganizationResponse":"./model/organizationResponse","ResetPasswordRequest":"./model/resetPasswordRequest","RoleEnum":"./model/roleEnum","SelfCreateUserRequest":"./model/selfCreateUserRequest","UpdateMeRequest":"./model/updateMeRequest","UserAuthResultEnum":"./model/userAuthResultEnum","UserLoginRequest":"./model/userLoginRequest","UserPermissionRequest":"./model/userPermissionRequest","UserPermissionResponse":"./model/userPermissionResponse","UserResponse":"./model/userResponse","UserStatusEnum":"./model/userStatusEnum","ValidatePasswordRequest":"./model/validatePasswordRequest","ValidatePasswordResponse":"./model/validatePasswordResponse","BASE_PATH":"./variables","COLLECTION_FORMATS":"./variables","ConfigurationParameters":"./configuration","Configuration":"./configuration","EnergyCapSdkModule":"./api.module"},"importAs":"@energycap/energycapid-sdk-angular"}
@@ -88,9 +88,10 @@ export class ApplicationInstanceService {
88
88
  * @param dataSourceName Filter by an exact name of a data source
89
89
  * @param targetHost Filter by a host name containing an alias
90
90
  * @param onlyAdmin Defaults to false. If false, returns all application instances to which the current user has access. If set to true will only return results where the logged in user has admin access
91
+ * @param orderBy
91
92
  */
92
- getApplicationInstances(organizationName, dataSourceName, targetHost, onlyAdmin, extraHttpRequestParams, extraHttpRequestHeaders) {
93
- return this.getApplicationInstancesWithHttpInfo(organizationName, dataSourceName, targetHost, onlyAdmin, extraHttpRequestParams, extraHttpRequestHeaders)
93
+ getApplicationInstances(organizationName, dataSourceName, targetHost, onlyAdmin, orderBy, extraHttpRequestParams, extraHttpRequestHeaders) {
94
+ return this.getApplicationInstancesWithHttpInfo(organizationName, dataSourceName, targetHost, onlyAdmin, orderBy, extraHttpRequestParams, extraHttpRequestHeaders)
94
95
  .pipe(map((response) => {
95
96
  if (response.status === 204) {
96
97
  return undefined;
@@ -156,8 +157,9 @@ export class ApplicationInstanceService {
156
157
  * @param dataSourceName Filter by an exact name of a data source
157
158
  * @param targetHost Filter by a host name containing an alias
158
159
  * @param onlyAdmin Defaults to false. If false, returns all application instances to which the current user has access. If set to true will only return results where the logged in user has admin access
160
+ * @param orderBy
159
161
  */
160
- getApplicationInstancesWithHttpInfo(organizationName, dataSourceName, targetHost, onlyAdmin, extraHttpRequestParams, extraHttpRequestHeaders) {
162
+ getApplicationInstancesWithHttpInfo(organizationName, dataSourceName, targetHost, onlyAdmin, orderBy, extraHttpRequestParams, extraHttpRequestHeaders) {
161
163
  const path = this.basePath + '/api/v202108/ApplicationInstance';
162
164
  let queryParameters;
163
165
  if (extraHttpRequestParams) {
@@ -192,6 +194,9 @@ export class ApplicationInstanceService {
192
194
  if (onlyAdmin !== undefined) {
193
195
  queryParameters = queryParameters.set('onlyAdmin', onlyAdmin);
194
196
  }
197
+ if (orderBy !== undefined) {
198
+ queryParameters = queryParameters.set('orderBy', orderBy);
199
+ }
195
200
  // to determine the Accept header
196
201
  let produces = [
197
202
  'application/json'
@@ -217,4 +222,4 @@ ApplicationInstanceService.ctorParameters = () => [
217
222
  { type: String, decorators: [{ type: Optional }, { type: Inject, args: [BASE_PATH,] }] },
218
223
  { type: Configuration, decorators: [{ type: Optional }] }
219
224
  ];
220
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb25JbnN0YW5jZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vYXBpL2FwcGxpY2F0aW9uSW5zdGFuY2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7OztHQVVHO0FBRUgsdURBQXVEO0FBRXZELE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUEyQixlQUFlLENBQUM7QUFDbEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQW9CLHNCQUFzQixDQUFDO0FBSXpGLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBb0QsZ0JBQWdCLENBQUM7QUFLbkYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUE4QyxjQUFjLENBQUM7QUFHakYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUEwQyxrQkFBa0IsQ0FBQztBQUVyRixNQUFNLGFBQWEsR0FBRztJQUNsQixHQUFHLEVBQUUsS0FBSztJQUNWLElBQUksRUFBRSxNQUFNO0lBQ1osR0FBRyxFQUFFLEtBQUs7SUFDVixNQUFNLEVBQUUsUUFBUTtJQUNoQixPQUFPLEVBQUUsU0FBUztJQUNsQixJQUFJLEVBQUUsTUFBTTtJQUNaLEtBQUssRUFBRSxPQUFPO0NBQ2pCLENBQUM7QUFJRixNQUFNLE9BQU8sMEJBQTBCO0lBTW5DLFlBQXNCLElBQWdCLEVBQWdDLFFBQWdCLEVBQWMsYUFBNEI7UUFBMUcsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUo1QixhQUFRLEdBQUcsbUJBQW1CLENBQUM7UUFDbEMsbUJBQWMsR0FBZ0IsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUNoRCxrQkFBYSxHQUFrQixJQUFJLGFBQWEsRUFBRSxDQUFDO1FBR3RELElBQUksUUFBUSxFQUFFO1lBQ1YsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7U0FDNUI7UUFDRCxJQUFJLGFBQWEsRUFBRTtZQUNmLElBQUksQ0FB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R0FBRyxFQUFFLElBQUksRUFBRSxjQUFjLENBQUMsQ0FBQztJQUMxRyxDQUFDOzs7WUF4TkosVUFBVTs7O1lBekJGLFVBQVU7eUNBZ0MwQixRQUFRLFlBQUcsTUFBTSxTQUFDLFNBQVM7WUFwQi9ELGFBQWEsdUJBb0J1RSxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIEVuZXJneUNBUCBJRCBTREtcclxuICogRG9jdW1lbnQgdXNlZCB0byBnZW5lcmF0ZSB0aGUgRW5lcmd5Q0FQIElEIFNES1xyXG4gKlxyXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4yMTA4XHJcbiAqIENvbnRhY3Q6IHN1cHBvcnRAZW5lcmd5Y2FwLmNvbVxyXG4gKlxyXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXHJcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XHJcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cclxuICovXHJcblxyXG4vKiB0c2xpbnQ6ZGlzYWJsZTpuby11bnVzZWQtdmFyaWFibGUgbWVtYmVyLW9yZGVyaW5nICovXHJcblxyXG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIE9wdGlvbmFsIH0gICAgICAgICAgICAgICAgICAgICAgZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzLCBIdHRwUGFyYW1zIH0gICAgICAgICAgICAgICBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEh0dHBSZXNwb25zZSB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcblxyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IG1hcCB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgeyBBcHBsaWNhdGlvbkluc3RhbmNlUmVkaXJlY3RSZXNwb25zZSB9IGZyb20gJy4uL21vZGVsL2FwcGxpY2F0aW9uSW5zdGFuY2VSZWRpcmVjdFJlc3BvbnNlJztcclxuaW1wb3J0IHsgQXBwbGljYXRpb25JbnN0YW5jZVJlc3BvbnNlIH0gZnJvbSAnLi4vbW9kZWwvYXBwbGljYXRpb25JbnN0YW5jZVJlc3BvbnNlJztcclxuXHJcbmltcG9ydCB7IEJBU0VfUEFUSCB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcm9tICcuLi92YXJpYWJsZXMnO1xyXG5pbXBvcnQgeyBDT0xMRUNUSU9OX0ZPUk1BVFMgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbSAnLi4vdmFyaWFibGVzJztcclxuXHJcbmltcG9ydCB7IENvbmZpZ3VyYXRpb24gfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcm9tICcuLi9jb25maWd1cmF0aW9uJztcclxuXHJcbmNvbnN0IFJlcXVlc3RNZXRob2QgPSB7XHJcbiAgICBHZXQ6ICdnZXQnLFxyXG4gICAgUG9zdDogJ3Bvc3QnLFxyXG4gICAgUHV0OiAncHV0JyxcclxuICAgIERlbGV0ZTogJ2RlbGV0ZScsXHJcbiAgICBPcHRpb25zOiAnb3B0aW9ucycsXHJcbiAgICBIZWFkOiAnaGVhZCcsXHJcbiAgICBQYXRjaDogJ3BhdGNoJ1xyXG59O1xyXG5cclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIEFwcGxpY2F0aW9uSW5zdGFuY2VTZXJ2aWNlIHtcclxuXHJcbiAgICBwcm90ZWN0ZWQgYmFzZVBhdGggPSAnaHR0cHM6Ly9sb2NhbGhvc3QnO1xyXG4gICAgcHVibGljIGRlZmF1bHRIZWFkZXJzOiBIdHRwSGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpO1xyXG4gICAgcHVibGljIGNvbmZpZ3VyYXRpb246IENvbmZpZ3VyYXRpb24gPSBuZXcgQ29uZmlndXJhdGlvbigpO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBodHRwOiBIdHRwQ2xpZW50LCBAT3B0aW9uYWwoKUBJbmplY3QoQkFTRV9QQVRIKSBiYXNlUGF0aDogc3RyaW5nLCBAT3B0aW9uYWwoKSBjb25maWd1cmF0aW9uOiBDb25maWd1cmF0aW9uKSB7XHJcbiAgICAgICAgaWYgKGJhc2VQYXRoKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYmFzZVBhdGggPSBiYXNlUGF0aDtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGNvbmZpZ3VyYXRpb24pIHtcclxuICAgICAgICAgICAgdGhpcy5jb25maWd1cmF0aW9uID0gY29uZmlndXJhdGlvbjtcclxuXHRcdFx0dGhpcy5iYXNlUGF0aCA9IGJhc2VQYXRoIHx8IGNvbmZpZ3VyYXRpb24uYmFzZVBhdGggfHwgdGhpcy5iYXNlUGF0aDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBcclxuICAgICAqIEV4dGVuZHMgb2JqZWN0IGJ5IGNvcGluZyBub24tZXhpc3RpbmcgcHJvcGVydGllcy5cclxuICAgICAqIEBwYXJhbSBvYmpBIG9iamVjdCB0byBiZSBleHRlbmRlZFxyXG4gICAgICogQHBhcmFtIG9iakIgc291cmNlIG9iamVjdFxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGV4dGVuZE9iajxUMSxUMj4ob2JqQTogVDEsIG9iakI6IFQyKSB7XHJcbiAgICAgICAgZm9yKGxldCBrZXkgaW4gb2JqQil7XHJcbiAgICAgICAgICAgIGlmKG9iakIuaGFzT3duUHJvcGVydHkoa2V5KSl7XHJcbiAgICAgICAgICAgICAgICAob2JqQSBhcyBhbnkpW2tleV0gPSAob2JqQiBhcyBhbnkpW2tleV07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIDxUMSZUMj5vYmpBO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQHBhcmFtIGNvbnN1bWVzIHN0cmluZ1tdIG1pbWUtdHlwZXNcclxuICAgICAqIEByZXR1cm4gdHJ1ZTogY29uc3VtZXMgY29udGFpbnMgJ211bHRpcGFydC9mb3JtLWRhdGEnLCBmYWxzZTogb3RoZXJ3aXNlXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgY2FuQ29uc3VtZUZvcm0oY29uc3VtZXM6IHN0cmluZ1tdKTogYm9vbGVhbiB7XHJcbiAgICAgICAgY29uc3QgZm9ybSA9ICdtdWx0aXBhcnQvZm9ybS1kYXRhJztcclxuICAgICAgICBmb3IgKGxldCBjb25zdW1lIG9mIGNvbnN1bWVzKSB7XHJcbiAgICAgICAgICAgIGlmIChmb3JtID09PSBjb25zdW1lKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQcm92aWRlcyB0aGUgZGF0YSBuZWVkZWQgdG8gcmVkaXJlY3QgdGhlIHVzZXIgdG8gdGhlIHNwZWNpZmllZCBhcHBsaWNhdGlvbiBpbnN0YW5jZVxyXG4gICAgICogSWYgdGhlIEFwcGxpY2F0aW9uIEluc3RhbmNlIGlzIGNvbmZpZ3VyZWQgd2l0aCBhbiBBbGlhcywgdGhlIGV4Y2hhbmdlIFVSTCBmcm9tIHRoZSBBbGlhcyB3aWxsIGJlIHJldHVybmVkIGluc3RlYWQgb2YgdGhhdCBmcm9tIHRoZSBhc3NvY2lhdGVkIEFwcGxpY2F0aW9uIEVudmlyb25tZW50LlxyXG4gICAgICogQHBhcmFtIGFwcGxpY2F0aW9uSW5zdGFuY2VJZCBUaGUgYXBwbGljYXRpb24gaW5zdGFuY2UgSURcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldEFwcGxpY2F0aW9uSW5zdGFuY2VFeGNoYW5nZUluZm8oYXBwbGljYXRpb25JbnN0YW5jZUlkOiBzdHJpbmcsIGV4dHJhSHR0cFJlcXVlc3RQYXJhbXM/OiB7c2VhcmNoOiBzdHJpbmcgfCB7W3BhcmFtOiBzdHJpbmddOiBzdHJpbmcgfCBzdHJpbmdbXSB9IH0sIGV4dHJhSHR0cFJlcXVlc3RIZWFkZXJzPzoge1toZWFkZXI6IHN0cmluZ106IHN0cmluZyB8IHN0cmluZ1tdfSk6IE9ic2VydmFibGU8QXBwbGljYXRpb25JbnN0YW5jZVJlZGlyZWN0UmVzcG9uc2U+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5nZXRBcHBsaWNhdGlvbkluc3RhbmNlRXhjaGFuZ2VJbmZvV2l0aEh0dHBJbmZvKGFwcGxpY2F0aW9uSW5zdGFuY2VJZCwgZXh0cmFIdHRwUmVxdWVzdFBhcmFtcywgZXh0cmFIdHRwUmVxdWVzdEhlYWRlcnMpXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgbWFwKChyZXNwb25zZTogSHR0cFJlc3BvbnNlPEFwcGxpY2F0aW9uSW5zdGFuY2VSZWRpcmVjdFJlc3BvbnNlPikgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPT09IDIwNCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZS5ib2R5O1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIClcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFByb3ZpZGVzIGEgbGlzdCBvZiBhbGwgYXZhaWxhYmxlIGFwcGxpY2F0aW9uIGluc3RhbmNlcyB0byB3aGljaCB0aGUgbG9nZ2VkIGluIHVzZXIgaGFzIGFjY2Vzc1xyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0gb3JnYW5pemF0aW9uTmFtZSBGaWx0ZXIgYnkgYW4gZXhhY3QgbmFtZSBvZiBhbiBvcmdhbml6YXRpb25cclxuICAgICAqIEBwYXJhbSBkYXRhU291cmNlTmFtZSBGaWx0ZXIgYnkgYW4gZXhhY3QgbmFtZSBvZiBhIGRhdGEgc291cmNlXHJcbiAgICAgKiBAcGFyYW0gdGFyZ2V0SG9zdCBGaWx0ZXIgYnkgYSBob3N0IG5hbWUgY29udGFpbmluZyBhbiBhbGlhc1xyXG4gICAgICogQHBhcmFtIG9ubHlBZG1pbiBEZWZhdWx0cyB0byBmYWxzZS4gIElmIGZhbHNlLCByZXR1cm5zIGFsbCBhcHBsaWNhdGlvbiBpbnN0YW5jZXMgdG8gd2hpY2ggdGhlIGN1cnJlbnQgdXNlciBoYXMgYWNjZXNzLiAgSWYgc2V0IHRvIHRydWUgd2lsbCBvbmx5IHJldHVybiByZXN1bHRzIHdoZXJlIHRoZSBsb2dnZWQgaW4gdXNlciBoYXMgYWRtaW4gYWNjZXNzXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRBcHBsaWNhdGlvbkluc3RhbmNlcyhvcmdhbml6YXRpb25OYW1lPzogc3RyaW5nLCBkYXRhU291cmNlTmFtZT86IHN0cmluZywgdGFyZ2V0SG9zdD86IHN0cmluZywgb25seUFkbWluPzogYm9vbGVhbiwgZXh0cmFIdHRwUmVxdWVzdFBhcmFtcz86IHtzZWFyY2g6IHN0cmluZyB8IHtbcGFyYW06IHN0cmluZ106IHN0cmluZyB8IHN0cmluZ1tdIH0gfSwgZXh0cmFIdHRwUmVxdWVzdEhlYWRlcnM/OiB7W2hlYWRlcjogc3RyaW5nXTogc3RyaW5nIHwgc3RyaW5nW119KTogT2JzZXJ2YWJsZTxBcnJheTxBcHBsaWNhdGlvbkluc3RhbmNlUmVzcG9uc2U+PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0QXBwbGljYXRpb25JbnN0YW5jZXNXaXRoSHR0cEluZm8ob3JnYW5pemF0aW9uTmFtZSwgZGF0YVNvdXJjZU5hbWUsIHRhcmdldEhvc3QsIG9ubHlBZG1pbiwgZXh0cmFIdHRwUmVxdWVzdFBhcmFtcywgZXh0cmFIdHRwUmVxdWVzdEhlYWRlcnMpXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgbWFwKChyZXNwb25zZTogSHR0cFJlc3BvbnNlPEFycmF5PEFwcGxpY2F0aW9uSW5zdGFuY2VSZXNwb25zZT4+KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1cyA9PT0gMjA0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLmJvZHk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgKVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIFByb3ZpZGVzIHRoZSBkYXRhIG5lZWRlZCB0byByZWRpcmVjdCB0aGUgdXNlciB0byB0aGUgc3BlY2lmaWVkIGFwcGxpY2F0aW9uIGluc3RhbmNlXHJcbiAgICAgKiBJZiB0aGUgQXBwbGljYXRpb24gSW5zdGFuY2UgaXMgY29uZmlndXJlZCB3aXRoIGFuIEFsaWFzLCB0aGUgZXhjaGFuZ2UgVVJMIGZyb20gdGhlIEFsaWFzIHdpbGwgYmUgcmV0dXJuZWQgaW5zdGVhZCBvZiB0aGF0IGZyb20gdGhlIGFzc29jaWF0ZWQgQXBwbGljYXRpb24gRW52aXJvbm1lbnQuXHJcbiAgICAgKiBAcGFyYW0gYXBwbGljYXRpb25JbnN0YW5jZUlkIFRoZSBhcHBsaWNhdGlvbiBpbnN0YW5jZSBJRFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0QXBwbGljYXRpb25JbnN0YW5jZUV4Y2hhbmdlSW5mb1dpdGhIdHRwSW5mbyhhcHBsaWNhdGlvbkluc3RhbmNlSWQ6IHN0cmluZywgZXh0cmFIdHRwUmVxdWVzdFBhcmFtcz86IHtzZWFyY2g6IHN0cmluZyB8IHtbcGFyYW06IHN0cmluZ106IHN0cmluZyB8IHN0cmluZ1tdIH0gfSwgZXh0cmFIdHRwUmVxdWVzdEhlYWRlcnM/OiB7W2hlYWRlcjogc3RyaW5nXTogc3RyaW5nIHwgc3RyaW5nW119KTogT2JzZXJ2YWJsZTxIdHRwUmVzcG9uc2U8QXBwbGljYXRpb25JbnN0YW5jZVJlZGlyZWN0UmVzcG9uc2U+PiB7XHJcbiAgICAgICAgY29uc3QgcGF0aCA9IHRoaXMuYmFzZVBhdGggKyAnL2FwaS92MjAyMTA4L0FwcGxpY2F0aW9uSW5zdGFuY2UvJHthcHBsaWNhdGlvbkluc3RhbmNlSWR9L2V4Y2hhbmdlJ1xyXG4gICAgICAgICAgICAgICAgICAgIC5yZXBsYWNlKCckeycgKyAnYXBwbGljYXRpb25JbnN0YW5jZUlkJyArICd9JywgU3RyaW5nKGFwcGxpY2F0aW9uSW5zdGFuY2VJZCkpO1xyXG5cclxuICAgICAgICBsZXQgcXVlcnlQYXJhbWV0ZXJzOiBIdHRwUGFyYW1zO1xyXG4gICAgICAgIFxyXG4gICAgICAgIGlmIChleHRyYUh0dHBSZXF1ZXN0UGFyYW1zKSB7XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2YgZXh0cmFIdHRwUmVxdWVzdFBhcmFtcy5zZWFyY2ggPT09ICdzdHJpbmcnKSB7IFxyXG4gICAgICAgICAgICAgICAgcXVlcnlQYXJhbWV0ZXJzID0gbmV3IEh0dHBQYXJhbXMoe2Zyb21TdHJpbmc6IGV4dHJhSHR0cFJlcXVlc3RQYXJhbXMuc2VhcmNofSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBxdWVyeVBhcmFtZXRlcnMgPSBuZXcgSHR0cFBhcmFtcyh7ZnJvbU9iamVjdDogZXh0cmFIdHRwUmVxdWVzdFBhcmFtcy5zZWFyY2h9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHF1ZXJ5UGFyYW1ldGVycyA9IG5ldyBIdHRwUGFyYW1zKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsZXQgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpO1xyXG4gICAgICAgIHRoaXMuZGVmYXVsdEhlYWRlcnMua2V5cygpLmZvckVhY2goa2V5ID0+IHtcclxuICAgICAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KGtleSwgdGhpcy5kZWZhdWx0SGVhZGVycy5nZXRBbGwoa2V5KSk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIGlmIChleHRyYUh0dHBSZXF1ZXN0SGVhZGVycykge1xyXG4gICAgICAgICAgICBPYmplY3QuZW50cmllcyhleHRyYUh0dHBSZXF1ZXN0SGVhZGVycykuZm9yRWFjaCgoW2tleSwgdmFsdWVdKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoa2V5LCB2YWx1ZSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gdmVyaWZ5IHJlcXVpcmVkIHBhcmFtZXRlciAnYXBwbGljYXRpb25JbnN0YW5jZUlkJyBpcyBub3QgbnVsbCBvciB1bmRlZmluZWRcclxuICAgICAgICBpZiAoYXBwbGljYXRpb25JbnN0YW5jZUlkID09PSBudWxsIHx8IGFwcGxpY2F0aW9uSW5zdGFuY2VJZCA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignUmVxdWlyZWQgcGFyYW1ldGVyIGFwcGxpY2F0aW9uSW5zdGFuY2VJZCB3YXMgbnVsbCBvciB1bmRlZmluZWQgd2hlbiBjYWxsaW5nIGdldEFwcGxpY2F0aW9uSW5zdGFuY2VFeGNoYW5nZUluZm8uJyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyB0byBkZXRlcm1pbmUgdGhlIEFjY2VwdCBoZWFkZXJcclxuICAgICAgICBsZXQgcHJvZHVjZXM6IHN0cmluZ1tdID0gW1xyXG4gICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbidcclxuICAgICAgICBdO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5jb25maWd1cmF0aW9uLmFwaUtleXNbXCJBdXRob3JpemF0aW9uXCJdKSB7XHJcbiAgICAgICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgnQXV0aG9yaXphdGlvbicsIHRoaXMuY29uZmlndXJhdGlvbi5hcGlLZXlzW1wiQXV0aG9yaXphdGlvblwiXSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFxyXG5cclxuICAgICAgICBjb25zdCBjb25zdW1lczogc3RyaW5nW10gPSBbXHJcbiAgICAgICAgXTtcclxuXHJcbiAgICAgICAgbGV0IHJlcXVlc3RPcHRpb25zID0ge1xyXG4gICAgICAgICAgICBoZWFkZXJzOiBoZWFkZXJzLFxyXG4gICAgICAgICAgICBwYXJhbXM6IHF1ZXJ5UGFyYW1ldGVycyxcclxuICAgICAgICAgICAgd2l0aENyZWRlbnRpYWxzOnRoaXMuY29uZmlndXJhdGlvbi53aXRoQ3JlZGVudGlhbHMsXHJcbiAgICAgICAgICAgIG9ic2VydmU6ICdyZXNwb25zZScgYXMgJ3Jlc3BvbnNlJ1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5yZXF1ZXN0PEFwcGxpY2F0aW9uSW5zdGFuY2VSZWRpcmVjdFJlc3BvbnNlPihSZXF1ZXN0TWV0aG9kLkdldCwgcGF0aCwgcmVxdWVzdE9wdGlvbnMpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUHJvdmlkZXMgYSBsaXN0IG9mIGFsbCBhdmFpbGFibGUgYXBwbGljYXRpb24gaW5zdGFuY2VzIHRvIHdoaWNoIHRoZSBsb2dnZWQgaW4gdXNlciBoYXMgYWNjZXNzXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSBvcmdhbml6YXRpb25OYW1lIEZpbHRlciBieSBhbiBleGFjdCBuYW1lIG9mIGFuIG9yZ2FuaXphdGlvblxyXG4gICAgICogQHBhcmFtIGRhdGFTb3VyY2VOYW1lIEZpbHRlciBieSBhbiBleGFjdCBuYW1lIG9mIGEgZGF0YSBzb3VyY2VcclxuICAgICAqIEBwYXJhbSB0YXJnZXRIb3N0IEZpbHRlciBieSBhIGhvc3QgbmFtZSBjb250YWluaW5nIGFuIGFsaWFzXHJcbiAgICAgKiBAcGFyYW0gb25seUFkbWluIERlZmF1bHRzIHRvIGZhbHNlLiAgSWYgZmFsc2UsIHJldHVybnMgYWxsIGFwcGxpY2F0aW9uIGluc3RhbmNlcyB0byB3aGljaCB0aGUgY3VycmVudCB1c2VyIGhhcyBhY2Nlc3MuICBJZiBzZXQgdG8gdHJ1ZSB3aWxsIG9ubHkgcmV0dXJuIHJlc3VsdHMgd2hlcmUgdGhlIGxvZ2dlZCBpbiB1c2VyIGhhcyBhZG1pbiBhY2Nlc3NcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldEFwcGxpY2F0aW9uSW5zdGFuY2VzV2l0aEh0dHBJbmZvKG9yZ2FuaXphdGlvbk5hbWU/OiBzdHJpbmcsIGRhdGFTb3VyY2VOYW1lPzogc3RyaW5nLCB0YXJnZXRIb3N0Pzogc3RyaW5nLCBvbmx5QWRtaW4/OiBib29sZWFuLCBleHRyYUh0dHBSZXF1ZXN0UGFyYW1zPzoge3NlYXJjaDogc3RyaW5nIHwge1twYXJhbTogc3RyaW5nXTogc3RyaW5nIHwgc3RyaW5nW10gfSB9LCBleHRyYUh0dHBSZXF1ZXN0SGVhZGVycz86IHtbaGVhZGVyOiBzdHJpbmddOiBzdHJpbmcgfCBzdHJpbmdbXX0pOiBPYnNlcnZhYmxlPEh0dHBSZXNwb25zZTxBcnJheTxBcHBsaWNhdGlvbkluc3RhbmNlUmVzcG9uc2U+Pj4ge1xyXG4gICAgICAgIGNvbnN0IHBhdGggPSB0aGlzLmJhc2VQYXRoICsgJy9hcGkvdjIwMjEwOC9BcHBsaWNhdGlvbkluc3RhbmNlJztcclxuXHJcbiAgICAgICAgbGV0IHF1ZXJ5UGFyYW1ldGVyczogSHR0cFBhcmFtcztcclxuICAgICAgICBcclxuICAgICAgICBpZiAoZXh0cmFIdHRwUmVxdWVzdFBhcmFtcykge1xyXG4gICAgICAgICAgICBpZiAodHlwZW9mIGV4dHJhSHR0cFJlcXVlc3RQYXJhbXMuc2VhcmNoID09PSAnc3RyaW5nJykgeyBcclxuICAgICAgICAgICAgICAgIHF1ZXJ5UGFyYW1ldGVycyA9IG5ldyBIdHRwUGFyYW1zKHtmcm9tU3RyaW5nOiBleHRyYUh0dHBSZXF1ZXN0UGFyYW1zLnNlYXJjaH0pO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgcXVlcnlQYXJhbWV0ZXJzID0gbmV3IEh0dHBQYXJhbXMoe2Zyb21PYmplY3Q6IGV4dHJhSHR0cFJlcXVlc3RQYXJhbXMuc2VhcmNofSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBxdWVyeVBhcmFtZXRlcnMgPSBuZXcgSHR0cFBhcmFtcygpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKTtcclxuICAgICAgICB0aGlzLmRlZmF1bHRIZWFkZXJzLmtleXMoKS5mb3JFYWNoKGtleSA9PiB7XHJcbiAgICAgICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldChrZXksIHRoaXMuZGVmYXVsdEhlYWRlcnMuZ2V0QWxsKGtleSkpO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBpZiAoZXh0cmFIdHRwUmVxdWVzdEhlYWRlcnMpIHtcclxuICAgICAgICAgICAgT2JqZWN0LmVudHJpZXMoZXh0cmFIdHRwUmVxdWVzdEhlYWRlcnMpLmZvckVhY2goKFtrZXksIHZhbHVlXSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KGtleSwgdmFsdWUpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChvcmdhbml6YXRpb25OYW1lICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgcXVlcnlQYXJhbWV0ZXJzID0gcXVlcnlQYXJhbWV0ZXJzLnNldCgnb3JnYW5pemF0aW9uTmFtZScsIDxhbnk+b3JnYW5pemF0aW9uTmFtZSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoZGF0YVNvdXJjZU5hbWUgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICBxdWVyeVBhcmFtZXRlcnMgPSBxdWVyeVBhcmFtZXRlcnMuc2V0KCdkYXRhU291cmNlTmFtZScsIDxhbnk+ZGF0YVNvdXJjZU5hbWUpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRhcmdldEhvc3QgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICBxdWVyeVBhcmFtZXRlcnMgPSBxdWVyeVBhcmFtZXRlcnMuc2V0KCd0YXJnZXRIb3N0JywgPGFueT50YXJnZXRIb3N0KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChvbmx5QWRtaW4gIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICBxdWVyeVBhcmFtZXRlcnMgPSBxdWVyeVBhcmFtZXRlcnMuc2V0KCdvbmx5QWRtaW4nLCA8YW55Pm9ubHlBZG1pbik7XHJcbiAgICAgICAgfVxyXG5cclxuXHJcbiAgICAgICAgLy8gdG8gZGV0ZXJtaW5lIHRoZSBBY2NlcHQgaGVhZGVyXHJcbiAgICAgICAgbGV0IHByb2R1Y2VzOiBzdHJpbmdbXSA9IFtcclxuICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nXHJcbiAgICAgICAgXTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuY29uZmlndXJhdGlvbi5hcGlLZXlzW1wiQXV0aG9yaXphdGlvblwiXSkge1xyXG4gICAgICAgICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoJ0F1dGhvcml6YXRpb24nLCB0aGlzLmNvbmZpZ3VyYXRpb24uYXBpS2V5c1tcIkF1dGhvcml6YXRpb25cIl0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuXHJcbiAgICAgICAgY29uc3QgY29uc3VtZXM6IHN0cmluZ1tdID0gW1xyXG4gICAgICAgIF07XHJcblxyXG4gICAgICAgIGxldCByZXF1ZXN0T3B0aW9ucyA9IHtcclxuICAgICAgICAgICAgaGVhZGVyczogaGVhZGVycyxcclxuICAgICAgICAgICAgcGFyYW1zOiBxdWVyeVBhcmFtZXRlcnMsXHJcbiAgICAgICAgICAgIHdpdGhDcmVkZW50aWFsczp0aGlzLmNvbmZpZ3VyYXRpb24ud2l0aENyZWRlbnRpYWxzLFxyXG4gICAgICAgICAgICBvYnNlcnZlOiAncmVzcG9uc2UnIGFzICdyZXNwb25zZSdcclxuICAgICAgICB9O1xyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucmVxdWVzdDxBcnJheTxBcHBsaWNhdGlvbkluc3RhbmNlUmVzcG9uc2U+PihSZXF1ZXN0TWV0aG9kLkdldCwgcGF0aCwgcmVxdWVzdE9wdGlvbnMpO1xyXG4gICAgfVxyXG5cclxufVxyXG4iXX0=
225
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb25JbnN0YW5jZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vYXBpL2FwcGxpY2F0aW9uSW5zdGFuY2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7OztHQVVHO0FBRUgsdURBQXVEO0FBRXZELE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUEyQixlQUFlLENBQUM7QUFDbEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQW9CLHNCQUFzQixDQUFDO0FBSXpGLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBb0QsZ0JBQWdCLENBQUM7QUFLbkYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUE4QyxjQUFjLENBQUM7QUFHakYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUEwQyxrQkFBa0IsQ0FBQztBQUVyRixNQUFNLGFBQWEsR0FBRztJQUNsQixHQUFHLEVBQUUsS0FBSztJQUNWLElBQUksRUFBRSxNQUFNO0lBQ1osR0FBRyxFQUFFLEtBQUs7SUFDVixNQUFNLEVBQUUsUUFBUTtJQUNoQixPQUFPLEVBQUUsU0FBUztJQUNsQixJQUFJLEVBQUUsTUFBTTtJQUNaLEtBQUssRUFBRSxPQUFPO0NBQ2pCLENBQUM7QUFJRixNQUFNLE9BQU8sMEJBQTBCO0lBTW5DLFlBQXNCLElBQWdCLEVBQWdDLFFBQWdCLEVBQWMsYUFBNEI7UUFBMUcsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUo1QixhQUFRLEdBQUcsbUJBQW1CLENBQUM7UUFDbEMsbUJBQWMsR0FBZ0IsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUNoRCxrQkFBYSxHQUFrQixJQUFJLGFBQWEsRUFBRSxDQUFDO1FBR3RELElBQUksUUFBUSxFQUFFO1lBQ1YsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7U0FDNUI7UUFDRCxJQUFJLGFBQWEsRUFBRTtZQUNmLElBQUksQ0FB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LGVBQWU7WUFDdkIsZUFBZSxFQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZTtZQUNsRCxPQUFPLEVBQUUsVUFBd0I7U0FDcEMsQ0FBQztRQUNGLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQXFDLGFBQWEsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQzFHLENBQUM7OztZQTlOSixVQUFVOzs7WUF6QkYsVUFBVTt5Q0FnQzBCLFFBQVEsWUFBRyxNQUFNLFNBQUMsU0FBUztZQXBCL0QsYUFBYSx1QkFvQnVFLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogRW5lcmd5Q0FQIElEIFNES1xyXG4gKiBEb2N1bWVudCB1c2VkIHRvIGdlbmVyYXRlIHRoZSBFbmVyZ3lDQVAgSUQgU0RLXHJcbiAqXHJcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjIxMDhcclxuICogQ29udGFjdDogc3VwcG9ydEBlbmVyZ3ljYXAuY29tXHJcbiAqXHJcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cclxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcclxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxyXG4gKi9cclxuXHJcbi8qIHRzbGludDpkaXNhYmxlOm5vLXVudXNlZC12YXJpYWJsZSBtZW1iZXItb3JkZXJpbmcgKi9cclxuXHJcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSAgICAgICAgICAgICAgICAgICAgICBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMsIEh0dHBQYXJhbXMgfSAgICAgICAgICAgICAgIGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSHR0cFJlc3BvbnNlIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuXHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmltcG9ydCB7IEFwcGxpY2F0aW9uSW5zdGFuY2VSZWRpcmVjdFJlc3BvbnNlIH0gZnJvbSAnLi4vbW9kZWwvYXBwbGljYXRpb25JbnN0YW5jZVJlZGlyZWN0UmVzcG9uc2UnO1xyXG5pbXBvcnQgeyBBcHBsaWNhdGlvbkluc3RhbmNlUmVzcG9uc2UgfSBmcm9tICcuLi9tb2RlbC9hcHBsaWNhdGlvbkluc3RhbmNlUmVzcG9uc2UnO1xyXG5cclxuaW1wb3J0IHsgQkFTRV9QQVRIIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyb20gJy4uL3ZhcmlhYmxlcyc7XHJcbmltcG9ydCB7IENPTExFQ1RJT05fRk9STUFUUyB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcm9tICcuLi92YXJpYWJsZXMnO1xyXG5cclxuaW1wb3J0IHsgQ29uZmlndXJhdGlvbiB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyb20gJy4uL2NvbmZpZ3VyYXRpb24nO1xyXG5cclxuY29uc3QgUmVxdWVzdE1ldGhvZCA9IHtcclxuICAgIEdldDogJ2dldCcsXHJcbiAgICBQb3N0OiAncG9zdCcsXHJcbiAgICBQdXQ6ICdwdXQnLFxyXG4gICAgRGVsZXRlOiAnZGVsZXRlJyxcclxuICAgIE9wdGlvbnM6ICdvcHRpb25zJyxcclxuICAgIEhlYWQ6ICdoZWFkJyxcclxuICAgIFBhdGNoOiAncGF0Y2gnXHJcbn07XHJcblxyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgQXBwbGljYXRpb25JbnN0YW5jZVNlcnZpY2Uge1xyXG5cclxuICAgIHByb3RlY3RlZCBiYXNlUGF0aCA9ICdodHRwczovL2xvY2FsaG9zdCc7XHJcbiAgICBwdWJsaWMgZGVmYXVsdEhlYWRlcnM6IEh0dHBIZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCk7XHJcbiAgICBwdWJsaWMgY29uZmlndXJhdGlvbjogQ29uZmlndXJhdGlvbiA9IG5ldyBDb25maWd1cmF0aW9uKCk7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIGh0dHA6IEh0dHBDbGllbnQsIEBPcHRpb25hbCgpQEluamVjdChCQVNFX1BBVEgpIGJhc2VQYXRoOiBzdHJpbmcsIEBPcHRpb25hbCgpIGNvbmZpZ3VyYXRpb246IENvbmZpZ3VyYXRpb24pIHtcclxuICAgICAgICBpZiAoYmFzZVBhdGgpIHtcclxuICAgICAgICAgICAgdGhpcy5iYXNlUGF0aCA9IGJhc2VQYXRoO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoY29uZmlndXJhdGlvbikge1xyXG4gICAgICAgICAgICB0aGlzLmNvbmZpZ3VyYXRpb24gPSBjb25maWd1cmF0aW9uO1xyXG5cdFx0XHR0aGlzLmJhc2VQYXRoID0gYmFzZVBhdGggfHwgY29uZmlndXJhdGlvbi5iYXNlUGF0aCB8fCB0aGlzLmJhc2VQYXRoO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFxyXG4gICAgICogRXh0ZW5kcyBvYmplY3QgYnkgY29waW5nIG5vbi1leGlzdGluZyBwcm9wZXJ0aWVzLlxyXG4gICAgICogQHBhcmFtIG9iakEgb2JqZWN0IHRvIGJlIGV4dGVuZGVkXHJcbiAgICAgKiBAcGFyYW0gb2JqQiBzb3VyY2Ugb2JqZWN0XHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgZXh0ZW5kT2JqPFQxLFQyPihvYmpBOiBUMSwgb2JqQjogVDIpIHtcclxuICAgICAgICBmb3IobGV0IGtleSBpbiBvYmpCKXtcclxuICAgICAgICAgICAgaWYob2JqQi5oYXNPd25Qcm9wZXJ0eShrZXkpKXtcclxuICAgICAgICAgICAgICAgIChvYmpBIGFzIGFueSlba2V5XSA9IChvYmpCIGFzIGFueSlba2V5XTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gPFQxJlQyPm9iakE7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAcGFyYW0gY29uc3VtZXMgc3RyaW5nW10gbWltZS10eXBlc1xyXG4gICAgICogQHJldHVybiB0cnVlOiBjb25zdW1lcyBjb250YWlucyAnbXVsdGlwYXJ0L2Zvcm0tZGF0YScsIGZhbHNlOiBvdGhlcndpc2VcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBjYW5Db25zdW1lRm9ybShjb25zdW1lczogc3RyaW5nW10pOiBib29sZWFuIHtcclxuICAgICAgICBjb25zdCBmb3JtID0gJ211bHRpcGFydC9mb3JtLWRhdGEnO1xyXG4gICAgICAgIGZvciAobGV0IGNvbnN1bWUgb2YgY29uc3VtZXMpIHtcclxuICAgICAgICAgICAgaWYgKGZvcm0gPT09IGNvbnN1bWUpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFByb3ZpZGVzIHRoZSBkYXRhIG5lZWRlZCB0byByZWRpcmVjdCB0aGUgdXNlciB0byB0aGUgc3BlY2lmaWVkIGFwcGxpY2F0aW9uIGluc3RhbmNlXHJcbiAgICAgKiBJZiB0aGUgQXBwbGljYXRpb24gSW5zdGFuY2UgaXMgY29uZmlndXJlZCB3aXRoIGFuIEFsaWFzLCB0aGUgZXhjaGFuZ2UgVVJMIGZyb20gdGhlIEFsaWFzIHdpbGwgYmUgcmV0dXJuZWQgaW5zdGVhZCBvZiB0aGF0IGZyb20gdGhlIGFzc29jaWF0ZWQgQXBwbGljYXRpb24gRW52aXJvbm1lbnQuXHJcbiAgICAgKiBAcGFyYW0gYXBwbGljYXRpb25JbnN0YW5jZUlkIFRoZSBhcHBsaWNhdGlvbiBpbnN0YW5jZSBJRFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0QXBwbGljYXRpb25JbnN0YW5jZUV4Y2hhbmdlSW5mbyhhcHBsaWNhdGlvbkluc3RhbmNlSWQ6IHN0cmluZywgZXh0cmFIdHRwUmVxdWVzdFBhcmFtcz86IHtzZWFyY2g6IHN0cmluZyB8IHtbcGFyYW06IHN0cmluZ106IHN0cmluZyB8IHN0cmluZ1tdIH0gfSwgZXh0cmFIdHRwUmVxdWVzdEhlYWRlcnM/OiB7W2hlYWRlcjogc3RyaW5nXTogc3RyaW5nIHwgc3RyaW5nW119KTogT2JzZXJ2YWJsZTxBcHBsaWNhdGlvbkluc3RhbmNlUmVkaXJlY3RSZXNwb25zZT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdldEFwcGxpY2F0aW9uSW5zdGFuY2VFeGNoYW5nZUluZm9XaXRoSHR0cEluZm8oYXBwbGljYXRpb25JbnN0YW5jZUlkLCBleHRyYUh0dHBSZXF1ZXN0UGFyYW1zLCBleHRyYUh0dHBSZXF1ZXN0SGVhZGVycylcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBtYXAoKHJlc3BvbnNlOiBIdHRwUmVzcG9uc2U8QXBwbGljYXRpb25JbnN0YW5jZVJlZGlyZWN0UmVzcG9uc2U+KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1cyA9PT0gMjA0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLmJvZHk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgKVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUHJvdmlkZXMgYSBsaXN0IG9mIGFsbCBhdmFpbGFibGUgYXBwbGljYXRpb24gaW5zdGFuY2VzIHRvIHdoaWNoIHRoZSBsb2dnZWQgaW4gdXNlciBoYXMgYWNjZXNzXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSBvcmdhbml6YXRpb25OYW1lIEZpbHRlciBieSBhbiBleGFjdCBuYW1lIG9mIGFuIG9yZ2FuaXphdGlvblxyXG4gICAgICogQHBhcmFtIGRhdGFTb3VyY2VOYW1lIEZpbHRlciBieSBhbiBleGFjdCBuYW1lIG9mIGEgZGF0YSBzb3VyY2VcclxuICAgICAqIEBwYXJhbSB0YXJnZXRIb3N0IEZpbHRlciBieSBhIGhvc3QgbmFtZSBjb250YWluaW5nIGFuIGFsaWFzXHJcbiAgICAgKiBAcGFyYW0gb25seUFkbWluIERlZmF1bHRzIHRvIGZhbHNlLiAgSWYgZmFsc2UsIHJldHVybnMgYWxsIGFwcGxpY2F0aW9uIGluc3RhbmNlcyB0byB3aGljaCB0aGUgY3VycmVudCB1c2VyIGhhcyBhY2Nlc3MuICBJZiBzZXQgdG8gdHJ1ZSB3aWxsIG9ubHkgcmV0dXJuIHJlc3VsdHMgd2hlcmUgdGhlIGxvZ2dlZCBpbiB1c2VyIGhhcyBhZG1pbiBhY2Nlc3NcclxuICAgICAqIEBwYXJhbSBvcmRlckJ5IFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0QXBwbGljYXRpb25JbnN0YW5jZXMob3JnYW5pemF0aW9uTmFtZT86IHN0cmluZywgZGF0YVNvdXJjZU5hbWU/OiBzdHJpbmcsIHRhcmdldEhvc3Q/OiBzdHJpbmcsIG9ubHlBZG1pbj86IGJvb2xlYW4sIG9yZGVyQnk/OiBzdHJpbmcsIGV4dHJhSHR0cFJlcXVlc3RQYXJhbXM/OiB7c2VhcmNoOiBzdHJpbmcgfCB7W3BhcmFtOiBzdHJpbmddOiBzdHJpbmcgfCBzdHJpbmdbXSB9IH0sIGV4dHJhSHR0cFJlcXVlc3RIZWFkZXJzPzoge1toZWFkZXI6IHN0cmluZ106IHN0cmluZyB8IHN0cmluZ1tdfSk6IE9ic2VydmFibGU8QXJyYXk8QXBwbGljYXRpb25JbnN0YW5jZVJlc3BvbnNlPj4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdldEFwcGxpY2F0aW9uSW5zdGFuY2VzV2l0aEh0dHBJbmZvKG9yZ2FuaXphdGlvbk5hbWUsIGRhdGFTb3VyY2VOYW1lLCB0YXJnZXRIb3N0LCBvbmx5QWRtaW4sIG9yZGVyQnksIGV4dHJhSHR0cFJlcXVlc3RQYXJhbXMsIGV4dHJhSHR0cFJlcXVlc3RIZWFkZXJzKVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIG1hcCgocmVzcG9uc2U6IEh0dHBSZXNwb25zZTxBcnJheTxBcHBsaWNhdGlvbkluc3RhbmNlUmVzcG9uc2U+PikgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPT09IDIwNCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZS5ib2R5O1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIClcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQcm92aWRlcyB0aGUgZGF0YSBuZWVkZWQgdG8gcmVkaXJlY3QgdGhlIHVzZXIgdG8gdGhlIHNwZWNpZmllZCBhcHBsaWNhdGlvbiBpbnN0YW5jZVxyXG4gICAgICogSWYgdGhlIEFwcGxpY2F0aW9uIEluc3RhbmNlIGlzIGNvbmZpZ3VyZWQgd2l0aCBhbiBBbGlhcywgdGhlIGV4Y2hhbmdlIFVSTCBmcm9tIHRoZSBBbGlhcyB3aWxsIGJlIHJldHVybmVkIGluc3RlYWQgb2YgdGhhdCBmcm9tIHRoZSBhc3NvY2lhdGVkIEFwcGxpY2F0aW9uIEVudmlyb25tZW50LlxyXG4gICAgICogQHBhcmFtIGFwcGxpY2F0aW9uSW5zdGFuY2VJZCBUaGUgYXBwbGljYXRpb24gaW5zdGFuY2UgSURcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldEFwcGxpY2F0aW9uSW5zdGFuY2VFeGNoYW5nZUluZm9XaXRoSHR0cEluZm8oYXBwbGljYXRpb25JbnN0YW5jZUlkOiBzdHJpbmcsIGV4dHJhSHR0cFJlcXVlc3RQYXJhbXM/OiB7c2VhcmNoOiBzdHJpbmcgfCB7W3BhcmFtOiBzdHJpbmddOiBzdHJpbmcgfCBzdHJpbmdbXSB9IH0sIGV4dHJhSHR0cFJlcXVlc3RIZWFkZXJzPzoge1toZWFkZXI6IHN0cmluZ106IHN0cmluZyB8IHN0cmluZ1tdfSk6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPEFwcGxpY2F0aW9uSW5zdGFuY2VSZWRpcmVjdFJlc3BvbnNlPj4ge1xyXG4gICAgICAgIGNvbnN0IHBhdGggPSB0aGlzLmJhc2VQYXRoICsgJy9hcGkvdjIwMjEwOC9BcHBsaWNhdGlvbkluc3RhbmNlLyR7YXBwbGljYXRpb25JbnN0YW5jZUlkfS9leGNoYW5nZSdcclxuICAgICAgICAgICAgICAgICAgICAucmVwbGFjZSgnJHsnICsgJ2FwcGxpY2F0aW9uSW5zdGFuY2VJZCcgKyAnfScsIFN0cmluZyhhcHBsaWNhdGlvbkluc3RhbmNlSWQpKTtcclxuXHJcbiAgICAgICAgbGV0IHF1ZXJ5UGFyYW1ldGVyczogSHR0cFBhcmFtcztcclxuICAgICAgICBcclxuICAgICAgICBpZiAoZXh0cmFIdHRwUmVxdWVzdFBhcmFtcykge1xyXG4gICAgICAgICAgICBpZiAodHlwZW9mIGV4dHJhSHR0cFJlcXVlc3RQYXJhbXMuc2VhcmNoID09PSAnc3RyaW5nJykgeyBcclxuICAgICAgICAgICAgICAgIHF1ZXJ5UGFyYW1ldGVycyA9IG5ldyBIdHRwUGFyYW1zKHtmcm9tU3RyaW5nOiBleHRyYUh0dHBSZXF1ZXN0UGFyYW1zLnNlYXJjaH0pO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgcXVlcnlQYXJhbWV0ZXJzID0gbmV3IEh0dHBQYXJhbXMoe2Zyb21PYmplY3Q6IGV4dHJhSHR0cFJlcXVlc3RQYXJhbXMuc2VhcmNofSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBxdWVyeVBhcmFtZXRlcnMgPSBuZXcgSHR0cFBhcmFtcygpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKTtcclxuICAgICAgICB0aGlzLmRlZmF1bHRIZWFkZXJzLmtleXMoKS5mb3JFYWNoKGtleSA9PiB7XHJcbiAgICAgICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldChrZXksIHRoaXMuZGVmYXVsdEhlYWRlcnMuZ2V0QWxsKGtleSkpO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBpZiAoZXh0cmFIdHRwUmVxdWVzdEhlYWRlcnMpIHtcclxuICAgICAgICAgICAgT2JqZWN0LmVudHJpZXMoZXh0cmFIdHRwUmVxdWVzdEhlYWRlcnMpLmZvckVhY2goKFtrZXksIHZhbHVlXSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KGtleSwgdmFsdWUpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIHZlcmlmeSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2FwcGxpY2F0aW9uSW5zdGFuY2VJZCcgaXMgbm90IG51bGwgb3IgdW5kZWZpbmVkXHJcbiAgICAgICAgaWYgKGFwcGxpY2F0aW9uSW5zdGFuY2VJZCA9PT0gbnVsbCB8fCBhcHBsaWNhdGlvbkluc3RhbmNlSWQgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1JlcXVpcmVkIHBhcmFtZXRlciBhcHBsaWNhdGlvbkluc3RhbmNlSWQgd2FzIG51bGwgb3IgdW5kZWZpbmVkIHdoZW4gY2FsbGluZyBnZXRBcHBsaWNhdGlvbkluc3RhbmNlRXhjaGFuZ2VJbmZvLicpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gdG8gZGV0ZXJtaW5lIHRoZSBBY2NlcHQgaGVhZGVyXHJcbiAgICAgICAgbGV0IHByb2R1Y2VzOiBzdHJpbmdbXSA9IFtcclxuICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nXHJcbiAgICAgICAgXTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuY29uZmlndXJhdGlvbi5hcGlLZXlzW1wiQXV0aG9yaXphdGlvblwiXSkge1xyXG4gICAgICAgICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoJ0F1dGhvcml6YXRpb24nLCB0aGlzLmNvbmZpZ3VyYXRpb24uYXBpS2V5c1tcIkF1dGhvcml6YXRpb25cIl0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuXHJcbiAgICAgICAgY29uc3QgY29uc3VtZXM6IHN0cmluZ1tdID0gW1xyXG4gICAgICAgIF07XHJcblxyXG4gICAgICAgIGxldCByZXF1ZXN0T3B0aW9ucyA9IHtcclxuICAgICAgICAgICAgaGVhZGVyczogaGVhZGVycyxcclxuICAgICAgICAgICAgcGFyYW1zOiBxdWVyeVBhcmFtZXRlcnMsXHJcbiAgICAgICAgICAgIHdpdGhDcmVkZW50aWFsczp0aGlzLmNvbmZpZ3VyYXRpb24ud2l0aENyZWRlbnRpYWxzLFxyXG4gICAgICAgICAgICBvYnNlcnZlOiAncmVzcG9uc2UnIGFzICdyZXNwb25zZSdcclxuICAgICAgICB9O1xyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucmVxdWVzdDxBcHBsaWNhdGlvbkluc3RhbmNlUmVkaXJlY3RSZXNwb25zZT4oUmVxdWVzdE1ldGhvZC5HZXQsIHBhdGgsIHJlcXVlc3RPcHRpb25zKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFByb3ZpZGVzIGEgbGlzdCBvZiBhbGwgYXZhaWxhYmxlIGFwcGxpY2F0aW9uIGluc3RhbmNlcyB0byB3aGljaCB0aGUgbG9nZ2VkIGluIHVzZXIgaGFzIGFjY2Vzc1xyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0gb3JnYW5pemF0aW9uTmFtZSBGaWx0ZXIgYnkgYW4gZXhhY3QgbmFtZSBvZiBhbiBvcmdhbml6YXRpb25cclxuICAgICAqIEBwYXJhbSBkYXRhU291cmNlTmFtZSBGaWx0ZXIgYnkgYW4gZXhhY3QgbmFtZSBvZiBhIGRhdGEgc291cmNlXHJcbiAgICAgKiBAcGFyYW0gdGFyZ2V0SG9zdCBGaWx0ZXIgYnkgYSBob3N0IG5hbWUgY29udGFpbmluZyBhbiBhbGlhc1xyXG4gICAgICogQHBhcmFtIG9ubHlBZG1pbiBEZWZhdWx0cyB0byBmYWxzZS4gIElmIGZhbHNlLCByZXR1cm5zIGFsbCBhcHBsaWNhdGlvbiBpbnN0YW5jZXMgdG8gd2hpY2ggdGhlIGN1cnJlbnQgdXNlciBoYXMgYWNjZXNzLiAgSWYgc2V0IHRvIHRydWUgd2lsbCBvbmx5IHJldHVybiByZXN1bHRzIHdoZXJlIHRoZSBsb2dnZWQgaW4gdXNlciBoYXMgYWRtaW4gYWNjZXNzXHJcbiAgICAgKiBAcGFyYW0gb3JkZXJCeSBcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldEFwcGxpY2F0aW9uSW5zdGFuY2VzV2l0aEh0dHBJbmZvKG9yZ2FuaXphdGlvbk5hbWU/OiBzdHJpbmcsIGRhdGFTb3VyY2VOYW1lPzogc3RyaW5nLCB0YXJnZXRIb3N0Pzogc3RyaW5nLCBvbmx5QWRtaW4/OiBib29sZWFuLCBvcmRlckJ5Pzogc3RyaW5nLCBleHRyYUh0dHBSZXF1ZXN0UGFyYW1zPzoge3NlYXJjaDogc3RyaW5nIHwge1twYXJhbTogc3RyaW5nXTogc3RyaW5nIHwgc3RyaW5nW10gfSB9LCBleHRyYUh0dHBSZXF1ZXN0SGVhZGVycz86IHtbaGVhZGVyOiBzdHJpbmddOiBzdHJpbmcgfCBzdHJpbmdbXX0pOiBPYnNlcnZhYmxlPEh0dHBSZXNwb25zZTxBcnJheTxBcHBsaWNhdGlvbkluc3RhbmNlUmVzcG9uc2U+Pj4ge1xyXG4gICAgICAgIGNvbnN0IHBhdGggPSB0aGlzLmJhc2VQYXRoICsgJy9hcGkvdjIwMjEwOC9BcHBsaWNhdGlvbkluc3RhbmNlJztcclxuXHJcbiAgICAgICAgbGV0IHF1ZXJ5UGFyYW1ldGVyczogSHR0cFBhcmFtcztcclxuICAgICAgICBcclxuICAgICAgICBpZiAoZXh0cmFIdHRwUmVxdWVzdFBhcmFtcykge1xyXG4gICAgICAgICAgICBpZiAodHlwZW9mIGV4dHJhSHR0cFJlcXVlc3RQYXJhbXMuc2VhcmNoID09PSAnc3RyaW5nJykgeyBcclxuICAgICAgICAgICAgICAgIHF1ZXJ5UGFyYW1ldGVycyA9IG5ldyBIdHRwUGFyYW1zKHtmcm9tU3RyaW5nOiBleHRyYUh0dHBSZXF1ZXN0UGFyYW1zLnNlYXJjaH0pO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgcXVlcnlQYXJhbWV0ZXJzID0gbmV3IEh0dHBQYXJhbXMoe2Zyb21PYmplY3Q6IGV4dHJhSHR0cFJlcXVlc3RQYXJhbXMuc2VhcmNofSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBxdWVyeVBhcmFtZXRlcnMgPSBuZXcgSHR0cFBhcmFtcygpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKTtcclxuICAgICAgICB0aGlzLmRlZmF1bHRIZWFkZXJzLmtleXMoKS5mb3JFYWNoKGtleSA9PiB7XHJcbiAgICAgICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldChrZXksIHRoaXMuZGVmYXVsdEhlYWRlcnMuZ2V0QWxsKGtleSkpO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBpZiAoZXh0cmFIdHRwUmVxdWVzdEhlYWRlcnMpIHtcclxuICAgICAgICAgICAgT2JqZWN0LmVudHJpZXMoZXh0cmFIdHRwUmVxdWVzdEhlYWRlcnMpLmZvckVhY2goKFtrZXksIHZhbHVlXSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KGtleSwgdmFsdWUpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChvcmdhbml6YXRpb25OYW1lICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgcXVlcnlQYXJhbWV0ZXJzID0gcXVlcnlQYXJhbWV0ZXJzLnNldCgnb3JnYW5pemF0aW9uTmFtZScsIDxhbnk+b3JnYW5pemF0aW9uTmFtZSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoZGF0YVNvdXJjZU5hbWUgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICBxdWVyeVBhcmFtZXRlcnMgPSBxdWVyeVBhcmFtZXRlcnMuc2V0KCdkYXRhU291cmNlTmFtZScsIDxhbnk+ZGF0YVNvdXJjZU5hbWUpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRhcmdldEhvc3QgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICBxdWVyeVBhcmFtZXRlcnMgPSBxdWVyeVBhcmFtZXRlcnMuc2V0KCd0YXJnZXRIb3N0JywgPGFueT50YXJnZXRIb3N0KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChvbmx5QWRtaW4gIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICBxdWVyeVBhcmFtZXRlcnMgPSBxdWVyeVBhcmFtZXRlcnMuc2V0KCdvbmx5QWRtaW4nLCA8YW55Pm9ubHlBZG1pbik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAob3JkZXJCeSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIHF1ZXJ5UGFyYW1ldGVycyA9IHF1ZXJ5UGFyYW1ldGVycy5zZXQoJ29yZGVyQnknLCA8YW55Pm9yZGVyQnkpO1xyXG4gICAgICAgIH1cclxuXHJcblxyXG4gICAgICAgIC8vIHRvIGRldGVybWluZSB0aGUgQWNjZXB0IGhlYWRlclxyXG4gICAgICAgIGxldCBwcm9kdWNlczogc3RyaW5nW10gPSBbXHJcbiAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJ1xyXG4gICAgICAgIF07XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmNvbmZpZ3VyYXRpb24uYXBpS2V5c1tcIkF1dGhvcml6YXRpb25cIl0pIHtcclxuICAgICAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KCdBdXRob3JpemF0aW9uJywgdGhpcy5jb25maWd1cmF0aW9uLmFwaUtleXNbXCJBdXRob3JpemF0aW9uXCJdKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcblxyXG4gICAgICAgIGNvbnN0IGNvbnN1bWVzOiBzdHJpbmdbXSA9IFtcclxuICAgICAgICBdO1xyXG5cclxuICAgICAgICBsZXQgcmVxdWVzdE9wdGlvbnMgPSB7XHJcbiAgICAgICAgICAgIGhlYWRlcnM6IGhlYWRlcnMsXHJcbiAgICAgICAgICAgIHBhcmFtczogcXVlcnlQYXJhbWV0ZXJzLFxyXG4gICAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6dGhpcy5jb25maWd1cmF0aW9uLndpdGhDcmVkZW50aWFscyxcclxuICAgICAgICAgICAgb2JzZXJ2ZTogJ3Jlc3BvbnNlJyBhcyAncmVzcG9uc2UnXHJcbiAgICAgICAgfTtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnJlcXVlc3Q8QXJyYXk8QXBwbGljYXRpb25JbnN0YW5jZVJlc3BvbnNlPj4oUmVxdWVzdE1ldGhvZC5HZXQsIHBhdGgsIHJlcXVlc3RPcHRpb25zKTtcclxuICAgIH1cclxuXHJcbn1cclxuIl19
@@ -0,0 +1,14 @@
1
+ /**
2
+ * EnergyCAP ID SDK
3
+ * Document used to generate the EnergyCAP ID SDK
4
+ *
5
+ * OpenAPI spec version: 1.2108
6
+ * Contact: support@energycap.com
7
+ *
8
+ * NOTE: This class is auto generated by the swagger code generator program.
9
+ * https://github.com/swagger-api/swagger-codegen.git
10
+ * Do not edit the class manually.
11
+ */
12
+ export class APIOrderBy {
13
+ }
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYVBJT3JkZXJCeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL21vZGVsL2FQSU9yZGVyQnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7R0FVRztBQUlILE1BQU0sT0FBTyxVQUFVO0NBQ3RCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIEVuZXJneUNBUCBJRCBTREtcclxuICogRG9jdW1lbnQgdXNlZCB0byBnZW5lcmF0ZSB0aGUgRW5lcmd5Q0FQIElEIFNES1xyXG4gKlxyXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4yMTA4XHJcbiAqIENvbnRhY3Q6IHN1cHBvcnRAZW5lcmd5Y2FwLmNvbVxyXG4gKlxyXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXHJcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XHJcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cclxuICovXHJcblxyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBBUElPcmRlckJ5IHtcclxufVxyXG4iXX0=
@@ -1,3 +1,4 @@
1
+ export * from './aPIOrderBy';
1
2
  export * from './allUserPermissionsResponse';
2
3
  export * from './applicationInstanceRedirectResponse';
3
4
  export * from './applicationInstanceResponse';
@@ -25,4 +26,4 @@ export * from './userResponse';
25
26
  export * from './userStatusEnum';
26
27
  export * from './validatePasswordRequest';
27
28
  export * from './validatePasswordResponse';
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbW9kZWwvbW9kZWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyw0QkFBNEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYWxsVXNlclBlcm1pc3Npb25zUmVzcG9uc2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2FwcGxpY2F0aW9uSW5zdGFuY2VSZWRpcmVjdFJlc3BvbnNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9hcHBsaWNhdGlvbkluc3RhbmNlUmVzcG9uc2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2FwcGxpY2F0aW9uUmVzcG9uc2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2NoYW5nZVBhc3N3b3JkUmVxdWVzdCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZGF0YVNvdXJjZVJlc3BvbnNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9kYXRhU291cmNlVXBkYXRlUmVxdWVzdCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZW50aXR5UGVybWlzc2lvbic7XHJcbmV4cG9ydCAqIGZyb20gJy4vZW52aXJvbm1lbnRSZXNwb25zZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vaW52aXRlVXNlclJlcXVlc3QnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpbmtEYXRhU291cmNlUmVxdWVzdCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbG9naW5SZXNwb25zZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbG9naW5Tb3VyY2VSZXNwb25zZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vb3JnYW5pemF0aW9uQXBwbGljYXRpb25SZXNwb25zZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vb3JnYW5pemF0aW9uUmVzcG9uc2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL3Jlc2V0UGFzc3dvcmRSZXF1ZXN0JztcclxuZXhwb3J0ICogZnJvbSAnLi9yb2xlRW51bSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc2VsZkNyZWF0ZVVzZXJSZXF1ZXN0JztcclxuZXhwb3J0ICogZnJvbSAnLi91cGRhdGVNZVJlcXVlc3QnO1xyXG5leHBvcnQgKiBmcm9tICcuL3VzZXJBdXRoUmVzdWx0RW51bSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vdXNlckxvZ2luUmVxdWVzdCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vdXNlclBlcm1pc3Npb25SZXF1ZXN0JztcclxuZXhwb3J0ICogZnJvbSAnLi91c2VyUGVybWlzc2lvblJlc3BvbnNlJztcclxuZXhwb3J0ICogZnJvbSAnLi91c2VyUmVzcG9uc2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL3VzZXJTdGF0dXNFbnVtJztcclxuZXhwb3J0ICogZnJvbSAnLi92YWxpZGF0ZVBhc3N3b3JkUmVxdWVzdCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vdmFsaWRhdGVQYXNzd29yZFJlc3BvbnNlJztcclxuIl19
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbW9kZWwvbW9kZWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyw0QkFBNEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYVBJT3JkZXJCeSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vYWxsVXNlclBlcm1pc3Npb25zUmVzcG9uc2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2FwcGxpY2F0aW9uSW5zdGFuY2VSZWRpcmVjdFJlc3BvbnNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9hcHBsaWNhdGlvbkluc3RhbmNlUmVzcG9uc2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2FwcGxpY2F0aW9uUmVzcG9uc2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2NoYW5nZVBhc3N3b3JkUmVxdWVzdCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZGF0YVNvdXJjZVJlc3BvbnNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9kYXRhU291cmNlVXBkYXRlUmVxdWVzdCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZW50aXR5UGVybWlzc2lvbic7XHJcbmV4cG9ydCAqIGZyb20gJy4vZW52aXJvbm1lbnRSZXNwb25zZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vaW52aXRlVXNlclJlcXVlc3QnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpbmtEYXRhU291cmNlUmVxdWVzdCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbG9naW5SZXNwb25zZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbG9naW5Tb3VyY2VSZXNwb25zZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vb3JnYW5pemF0aW9uQXBwbGljYXRpb25SZXNwb25zZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vb3JnYW5pemF0aW9uUmVzcG9uc2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL3Jlc2V0UGFzc3dvcmRSZXF1ZXN0JztcclxuZXhwb3J0ICogZnJvbSAnLi9yb2xlRW51bSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc2VsZkNyZWF0ZVVzZXJSZXF1ZXN0JztcclxuZXhwb3J0ICogZnJvbSAnLi91cGRhdGVNZVJlcXVlc3QnO1xyXG5leHBvcnQgKiBmcm9tICcuL3VzZXJBdXRoUmVzdWx0RW51bSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vdXNlckxvZ2luUmVxdWVzdCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vdXNlclBlcm1pc3Npb25SZXF1ZXN0JztcclxuZXhwb3J0ICogZnJvbSAnLi91c2VyUGVybWlzc2lvblJlc3BvbnNlJztcclxuZXhwb3J0ICogZnJvbSAnLi91c2VyUmVzcG9uc2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL3VzZXJTdGF0dXNFbnVtJztcclxuZXhwb3J0ICogZnJvbSAnLi92YWxpZGF0ZVBhc3N3b3JkUmVxdWVzdCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vdmFsaWRhdGVQYXNzd29yZFJlc3BvbnNlJztcclxuIl19
@@ -247,9 +247,10 @@ class ApplicationInstanceService {
247
247
  * @param dataSourceName Filter by an exact name of a data source
248
248
  * @param targetHost Filter by a host name containing an alias
249
249
  * @param onlyAdmin Defaults to false. If false, returns all application instances to which the current user has access. If set to true will only return results where the logged in user has admin access
250
+ * @param orderBy
250
251
  */
251
- getApplicationInstances(organizationName, dataSourceName, targetHost, onlyAdmin, extraHttpRequestParams, extraHttpRequestHeaders) {
252
- return this.getApplicationInstancesWithHttpInfo(organizationName, dataSourceName, targetHost, onlyAdmin, extraHttpRequestParams, extraHttpRequestHeaders)
252
+ getApplicationInstances(organizationName, dataSourceName, targetHost, onlyAdmin, orderBy, extraHttpRequestParams, extraHttpRequestHeaders) {
253
+ return this.getApplicationInstancesWithHttpInfo(organizationName, dataSourceName, targetHost, onlyAdmin, orderBy, extraHttpRequestParams, extraHttpRequestHeaders)
253
254
  .pipe(map((response) => {
254
255
  if (response.status === 204) {
255
256
  return undefined;
@@ -315,8 +316,9 @@ class ApplicationInstanceService {
315
316
  * @param dataSourceName Filter by an exact name of a data source
316
317
  * @param targetHost Filter by a host name containing an alias
317
318
  * @param onlyAdmin Defaults to false. If false, returns all application instances to which the current user has access. If set to true will only return results where the logged in user has admin access
319
+ * @param orderBy
318
320
  */
319
- getApplicationInstancesWithHttpInfo(organizationName, dataSourceName, targetHost, onlyAdmin, extraHttpRequestParams, extraHttpRequestHeaders) {
321
+ getApplicationInstancesWithHttpInfo(organizationName, dataSourceName, targetHost, onlyAdmin, orderBy, extraHttpRequestParams, extraHttpRequestHeaders) {
320
322
  const path = this.basePath + '/api/v202108/ApplicationInstance';
321
323
  let queryParameters;
322
324
  if (extraHttpRequestParams) {
@@ -351,6 +353,9 @@ class ApplicationInstanceService {
351
353
  if (onlyAdmin !== undefined) {
352
354
  queryParameters = queryParameters.set('onlyAdmin', onlyAdmin);
353
355
  }
356
+ if (orderBy !== undefined) {
357
+ queryParameters = queryParameters.set('orderBy', orderBy);
358
+ }
354
359
  // to determine the Accept header
355
360
  let produces = [
356
361
  'application/json'
@@ -2575,6 +2580,20 @@ UserService.ctorParameters = () => [
2575
2580
 
2576
2581
  const APIS = [ApplicationService, ApplicationInstanceService, AuthService, DataSourceService, EnvironmentService, MeService, OrganizationService, OrganizationApplicationService, UserService];
2577
2582
 
2583
+ /**
2584
+ * EnergyCAP ID SDK
2585
+ * Document used to generate the EnergyCAP ID SDK
2586
+ *
2587
+ * OpenAPI spec version: 1.2108
2588
+ * Contact: support@energycap.com
2589
+ *
2590
+ * NOTE: This class is auto generated by the swagger code generator program.
2591
+ * https://github.com/swagger-api/swagger-codegen.git
2592
+ * Do not edit the class manually.
2593
+ */
2594
+ class APIOrderBy {
2595
+ }
2596
+
2578
2597
  /**
2579
2598
  * EnergyCAP ID SDK
2580
2599
  * Document used to generate the EnergyCAP ID SDK
@@ -3066,5 +3085,5 @@ EnergyCapSdkModule.decorators = [
3066
3085
  * Generated bundle index. Do not edit.
3067
3086
  */
3068
3087
 
3069
- export { APIS, AllUserPermissionsResponse, ApplicationInstanceRedirectResponse, ApplicationInstanceResponse, ApplicationInstanceService, ApplicationResponse, ApplicationService, AuthService, BASE_PATH, COLLECTION_FORMATS, ChangePasswordRequest, Configuration, DataSourceResponse, DataSourceService, DataSourceUpdateRequest, EnergyCapSdkModule, EntityPermission, EnvironmentResponse, EnvironmentService, InviteUserRequest, LinkDataSourceRequest, LoginResponse, LoginSourceResponse, MeService, OrganizationApplicationResponse, OrganizationApplicationService, OrganizationResponse, OrganizationService, ResetPasswordRequest, RoleEnum, SelfCreateUserRequest, UpdateMeRequest, UserAuthResultEnum, UserLoginRequest, UserPermissionRequest, UserPermissionResponse, UserResponse, UserService, UserStatusEnum, ValidatePasswordRequest, ValidatePasswordResponse };
3088
+ export { APIOrderBy, APIS, AllUserPermissionsResponse, ApplicationInstanceRedirectResponse, ApplicationInstanceResponse, ApplicationInstanceService, ApplicationResponse, ApplicationService, AuthService, BASE_PATH, COLLECTION_FORMATS, ChangePasswordRequest, Configuration, DataSourceResponse, DataSourceService, DataSourceUpdateRequest, EnergyCapSdkModule, EntityPermission, EnvironmentResponse, EnvironmentService, InviteUserRequest, LinkDataSourceRequest, LoginResponse, LoginSourceResponse, MeService, OrganizationApplicationResponse, OrganizationApplicationService, OrganizationResponse, OrganizationService, ResetPasswordRequest, RoleEnum, SelfCreateUserRequest, UpdateMeRequest, UserAuthResultEnum, UserLoginRequest, UserPermissionRequest, UserPermissionResponse, UserResponse, UserService, UserStatusEnum, ValidatePasswordRequest, ValidatePasswordResponse };
3070
3089
  //# sourceMappingURL=energycap-energycapid-sdk-angular.js.map