@revxui/api-clients-ts 1.1.484 → 1.1.486

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.
Files changed (80) hide show
  1. package/README.md +2 -2
  2. package/api/api.d.ts +1 -3
  3. package/api/appSettingsController.service.d.ts +3 -3
  4. package/esm2020/api/adminController.service.mjs +2 -2
  5. package/esm2020/api/advertiserController.service.mjs +2 -2
  6. package/esm2020/api/api.mjs +2 -4
  7. package/esm2020/api/appSettingsController.service.mjs +2 -2
  8. package/esm2020/api/appsFlyerController.service.mjs +2 -2
  9. package/esm2020/api/audienceController.service.mjs +2 -2
  10. package/esm2020/api/auditController.service.mjs +2 -2
  11. package/esm2020/api/bidFunnelController.service.mjs +2 -2
  12. package/esm2020/api/bulkStrategyController.service.mjs +2 -2
  13. package/esm2020/api/cSSThemeController_.service.mjs +2 -2
  14. package/esm2020/api/campaignController.service.mjs +2 -2
  15. package/esm2020/api/catalogController.service.mjs +2 -2
  16. package/esm2020/api/clickDestinationController.service.mjs +2 -2
  17. package/esm2020/api/creativeController.service.mjs +2 -2
  18. package/esm2020/api/creativeSetsController.service.mjs +2 -2
  19. package/esm2020/api/creativeTemplateThemesController.service.mjs +2 -2
  20. package/esm2020/api/creativeTemplateVariablesController.service.mjs +2 -2
  21. package/esm2020/api/creativeTemplatesController.service.mjs +2 -2
  22. package/esm2020/api/customerReportingController.service.mjs +2 -2
  23. package/esm2020/api/dCOVideoSettingsController.service.mjs +2 -2
  24. package/esm2020/api/dashboardController.service.mjs +2 -2
  25. package/esm2020/api/experimentsController.service.mjs +2 -2
  26. package/esm2020/api/notificationsController.service.mjs +2 -2
  27. package/esm2020/api/pixelController.service.mjs +2 -2
  28. package/esm2020/api/reportController.service.mjs +2 -2
  29. package/esm2020/api/reportingController.service.mjs +2 -2
  30. package/esm2020/api/reportingSchedulerController.service.mjs +2 -2
  31. package/esm2020/api/safeguardController.service.mjs +2 -2
  32. package/esm2020/api/sliceXController.service.mjs +2 -2
  33. package/esm2020/api/strategyController.service.mjs +2 -2
  34. package/esm2020/api/strategyTemplateController.service.mjs +2 -2
  35. package/esm2020/api/uILoggerController.service.mjs +2 -2
  36. package/esm2020/api/userPreferenceController.service.mjs +2 -2
  37. package/esm2020/api.module.mjs +1 -4
  38. package/esm2020/model/advertiserAppSettingsDTO.mjs +2 -3
  39. package/esm2020/model/advertiserSettings.mjs +2 -9
  40. package/esm2020/model/appSettingsDTO.mjs +2 -3
  41. package/esm2020/model/creativeDTO.mjs +1 -6
  42. package/esm2020/model/creativeEntity.mjs +1 -6
  43. package/esm2020/model/creativeSetDetails.mjs +1 -1
  44. package/esm2020/model/models.mjs +1 -10
  45. package/esm2020/model/strategyDTO.mjs +1 -1
  46. package/esm2020/model/videoAttributes.mjs +1 -6
  47. package/fesm2015/revxui-api-clients-ts.mjs +36 -428
  48. package/fesm2015/revxui-api-clients-ts.mjs.map +1 -1
  49. package/fesm2020/revxui-api-clients-ts.mjs +36 -426
  50. package/fesm2020/revxui-api-clients-ts.mjs.map +1 -1
  51. package/model/advertiserAppSettingsDTO.d.ts +1 -2
  52. package/model/advertiserSettings.d.ts +0 -9
  53. package/model/appSettingsDTO.d.ts +1 -2
  54. package/model/creativeDTO.d.ts +0 -7
  55. package/model/creativeEntity.d.ts +0 -7
  56. package/model/creativeSetDetails.d.ts +0 -1
  57. package/model/models.d.ts +0 -9
  58. package/model/strategyDTO.d.ts +1 -0
  59. package/model/videoAttributes.d.ts +0 -7
  60. package/package.json +1 -1
  61. package/api/creativeAssetOptimizationController.service.d.ts +0 -78
  62. package/esm2020/api/creativeAssetOptimizationController.service.mjs +0 -214
  63. package/esm2020/model/apiListResponseCreativeSizeMappingDTO.mjs +0 -2
  64. package/esm2020/model/assetSelectionDTO.mjs +0 -2
  65. package/esm2020/model/creativeAssetOptimizationRequest.mjs +0 -23
  66. package/esm2020/model/creativeAssetUploadResponse.mjs +0 -20
  67. package/esm2020/model/creativeSizeMappingDTO.mjs +0 -38
  68. package/esm2020/model/endCardSelectionDTO.mjs +0 -19
  69. package/esm2020/model/optimizationJobItemStatusDTO.mjs +0 -21
  70. package/esm2020/model/optimizationJobStatusResponse.mjs +0 -11
  71. package/esm2020/model/selectedTargetDTO.mjs +0 -24
  72. package/model/apiListResponseCreativeSizeMappingDTO.d.ts +0 -16
  73. package/model/assetSelectionDTO.d.ts +0 -18
  74. package/model/creativeAssetOptimizationRequest.d.ts +0 -41
  75. package/model/creativeAssetUploadResponse.d.ts +0 -26
  76. package/model/creativeSizeMappingDTO.d.ts +0 -47
  77. package/model/endCardSelectionDTO.d.ts +0 -22
  78. package/model/optimizationJobItemStatusDTO.d.ts +0 -27
  79. package/model/optimizationJobStatusResponse.d.ts +0 -31
  80. package/model/selectedTargetDTO.d.ts +0 -30
@@ -15,7 +15,7 @@ export interface AdvertiserAppSettingsDTO {
15
15
  value?: string;
16
16
  }
17
17
  export declare namespace AdvertiserAppSettingsDTO {
18
- type KeyEnum = 'FEED_KEY' | 'LIFT_TEST_ACTIVE' | 'EVENT_FILTER_ALLOWED' | 'SKU_ALLOWED_CHARS' | 'TRANSACTION_CURRENCY' | 'CREATIVE_NAME_FORMAT' | 'CLICK_SIGNING' | 'SLACK_CHANNEL_ID' | 'ENABLE_AUDIT_LOGS_REPORT' | 'CREATIVE_BORDER_TYPE';
18
+ type KeyEnum = 'FEED_KEY' | 'LIFT_TEST_ACTIVE' | 'EVENT_FILTER_ALLOWED' | 'SKU_ALLOWED_CHARS' | 'TRANSACTION_CURRENCY' | 'CREATIVE_NAME_FORMAT' | 'CLICK_SIGNING' | 'SLACK_CHANNEL_ID' | 'ENABLE_AUDIT_LOGS_REPORT';
19
19
  const KeyEnum: {
20
20
  FEEDKEY: KeyEnum;
21
21
  LIFTTESTACTIVE: KeyEnum;
@@ -26,7 +26,6 @@ export declare namespace AdvertiserAppSettingsDTO {
26
26
  CLICKSIGNING: KeyEnum;
27
27
  SLACKCHANNELID: KeyEnum;
28
28
  ENABLEAUDITLOGSREPORT: KeyEnum;
29
- CREATIVEBORDERTYPE: KeyEnum;
30
29
  };
31
30
  type TypeEnum = 'BOOLEAN' | 'STRING' | 'JSON' | 'INTEGER' | 'DOUBLE' | 'FLOAT';
32
31
  const TypeEnum: {
@@ -12,7 +12,6 @@
12
12
  import { BaseModel } from './baseModel';
13
13
  export interface AdvertiserSettings {
14
14
  advertiserId?: number;
15
- creativeBorderType?: AdvertiserSettings.CreativeBorderTypeEnum;
16
15
  creativeNameFormat?: string;
17
16
  dateFormat?: string;
18
17
  eventFilterAllowed?: boolean;
@@ -26,11 +25,3 @@ export interface AdvertiserSettings {
26
25
  slackChannelId?: string;
27
26
  transactionCurrency?: BaseModel;
28
27
  }
29
- export declare namespace AdvertiserSettings {
30
- type CreativeBorderTypeEnum = 'NONE' | 'BLACK' | 'BLUR';
31
- const CreativeBorderTypeEnum: {
32
- NONE: CreativeBorderTypeEnum;
33
- BLACK: CreativeBorderTypeEnum;
34
- BLUR: CreativeBorderTypeEnum;
35
- };
36
- }
@@ -21,7 +21,7 @@ export interface AppSettingsDTO {
21
21
  settingsValue?: string;
22
22
  }
23
23
  export declare namespace AppSettingsDTO {
24
- type SettingsKeyEnum = 'LOGO_LINK' | 'FALLBACK_IMG_LINK' | 'OVERLAY_IMG_LINK' | 'DEFAULT_LOGO' | 'CREATIVE_NAME_FORMAT' | 'CLICK_SIGNING' | 'SLACK_CHANNEL_ID' | 'ENABLE_AUDIT_LOGS_REPORT' | 'CREATIVE_BORDER_TYPE';
24
+ type SettingsKeyEnum = 'LOGO_LINK' | 'FALLBACK_IMG_LINK' | 'OVERLAY_IMG_LINK' | 'DEFAULT_LOGO' | 'CREATIVE_NAME_FORMAT' | 'CLICK_SIGNING' | 'SLACK_CHANNEL_ID' | 'ENABLE_AUDIT_LOGS_REPORT';
25
25
  const SettingsKeyEnum: {
26
26
  LOGOLINK: SettingsKeyEnum;
27
27
  FALLBACKIMGLINK: SettingsKeyEnum;
@@ -31,7 +31,6 @@ export declare namespace AppSettingsDTO {
31
31
  CLICKSIGNING: SettingsKeyEnum;
32
32
  SLACKCHANNELID: SettingsKeyEnum;
33
33
  ENABLEAUDITLOGSREPORT: SettingsKeyEnum;
34
- CREATIVEBORDERTYPE: SettingsKeyEnum;
35
34
  };
36
35
  type SettingsTypeEnum = 'BOOLEAN' | 'STRING' | 'JSON' | 'INTEGER' | 'DOUBLE' | 'FLOAT';
37
36
  const SettingsTypeEnum: {
@@ -23,7 +23,6 @@ export interface CreativeDTO {
23
23
  advertiserId?: number;
24
24
  archived?: boolean;
25
25
  assetPreviewId?: number;
26
- borderType?: CreativeDTO.BorderTypeEnum;
27
26
  clickDestination?: ClickDestination;
28
27
  content?: string;
29
28
  contentType?: CreativeDTO.ContentTypeEnum;
@@ -73,12 +72,6 @@ export interface CreativeDTO {
73
72
  videoUploadType?: CreativeDTO.VideoUploadTypeEnum;
74
73
  }
75
74
  export declare namespace CreativeDTO {
76
- type BorderTypeEnum = 'NONE' | 'BLACK' | 'BLUR';
77
- const BorderTypeEnum: {
78
- NONE: BorderTypeEnum;
79
- BLACK: BorderTypeEnum;
80
- BLUR: BorderTypeEnum;
81
- };
82
75
  type ContentTypeEnum = 'ZIP' | 'JPG' | 'JPEG' | 'PNG' | 'GIF' | 'FLV' | 'MP4' | 'THREE_GPP' | 'MOV' | 'WEBM' | 'DASH' | 'HLS' | 'GZIP' | 'TEXT' | 'CSV' | 'UNKNOWN' | 'XMPEGURL';
83
76
  const ContentTypeEnum: {
84
77
  ZIP: ContentTypeEnum;
@@ -16,7 +16,6 @@ export interface CreativeEntity {
16
16
  assetPreviewId?: number;
17
17
  attributesId?: number;
18
18
  bidResponseTestEnabled?: boolean;
19
- borderType?: CreativeEntity.BorderTypeEnum;
20
19
  cdnId?: number;
21
20
  clickDestination?: number;
22
21
  content?: string;
@@ -57,12 +56,6 @@ export interface CreativeEntity {
57
56
  width?: number;
58
57
  }
59
58
  export declare namespace CreativeEntity {
60
- type BorderTypeEnum = 'NONE' | 'BLACK' | 'BLUR';
61
- const BorderTypeEnum: {
62
- NONE: BorderTypeEnum;
63
- BLACK: BorderTypeEnum;
64
- BLUR: BorderTypeEnum;
65
- };
66
59
  type HybridAdTypeEnum = 'STATIC' | 'DYNAMIC';
67
60
  const HybridAdTypeEnum: {
68
61
  STATIC: HybridAdTypeEnum;
@@ -46,7 +46,6 @@ export interface CreativeSetDetails {
46
46
  strategyList?: Array<BaseModel>;
47
47
  theme?: BaseModel;
48
48
  type?: CreativeSetDetails.TypeEnum;
49
- version?: number;
50
49
  }
51
50
  export declare namespace CreativeSetDetails {
52
51
  type TypeEnum = 'IMAGE' | 'VIDEO' | 'THIRD_PARTY_AD_TAGS' | 'ZIPPED_HTML' | 'NATIVE_IMAGE' | 'NATIVE_VIDEO' | 'DYNAMIC_IMAGE' | 'DYNAMIC_MACRO' | 'DYNAMIC_HTML' | 'DYNAMIC_VIDEO' | 'HYBRID_STATIC_AD' | 'HYBRID_DYNAMIC_AD' | 'THIRD_PARTY_VIDEO_AD_TAGS' | 'NATIVE_ICON' | 'ICON' | 'CTV_VIDEO' | 'PLAYABLE';
package/model/models.d.ts CHANGED
@@ -35,7 +35,6 @@ export * from './apiListResponseCreativeDTO';
35
35
  export * from './apiListResponseCreativePerformanceList';
36
36
  export * from './apiListResponseCreativeSetDashboardMetric';
37
37
  export * from './apiListResponseCreativeSetPerformanceList';
38
- export * from './apiListResponseCreativeSizeMappingDTO';
39
38
  export * from './apiListResponseCreativeTemplateDTO';
40
39
  export * from './apiListResponseHotstarNativeFileRequest';
41
40
  export * from './apiListResponseMacro';
@@ -187,7 +186,6 @@ export * from './apiResponseObjectlong';
187
186
  export * from './apiResponseObjectstring';
188
187
  export * from './appSettingsDTO';
189
188
  export * from './appSettingsPropertyDTO';
190
- export * from './assetSelectionDTO';
191
189
  export * from './auctionTypeEditField';
192
190
  export * from './audienceAccessDTO';
193
191
  export * from './audienceAnalysisRequest';
@@ -244,8 +242,6 @@ export * from './contentGenre';
244
242
  export * from './contentLanguage';
245
243
  export * from './creative';
246
244
  export * from './creativeAssetEntity';
247
- export * from './creativeAssetOptimizationRequest';
248
- export * from './creativeAssetUploadResponse';
249
245
  export * from './creativeCompactDTO';
250
246
  export * from './creativeDTO';
251
247
  export * from './creativeDetails';
@@ -267,7 +263,6 @@ export * from './creativeSetPerformanceList';
267
263
  export * from './creativeSetRequest';
268
264
  export * from './creativeSetRescheduleRequest';
269
265
  export * from './creativeSetResponse';
270
- export * from './creativeSizeMappingDTO';
271
266
  export * from './creativeStrategyAssociationStatus';
272
267
  export * from './creativeTemplateDTO';
273
268
  export * from './creativeTemplatesMetadataDTO';
@@ -330,7 +325,6 @@ export * from './dynamicVideoTemplate';
330
325
  export * from './eResponseobject';
331
326
  export * from './eligibleUsersRequest';
332
327
  export * from './eligibleUsersResponse';
333
- export * from './endCardSelectionDTO';
334
328
  export * from './endCards';
335
329
  export * from './experimentsEntity';
336
330
  export * from './extendedBaseModel';
@@ -380,8 +374,6 @@ export * from './nativeAssetPojo';
380
374
  export * from './notificationListResponseNotificationResponse';
381
375
  export * from './notificationResponse';
382
376
  export * from './onDayCohortData';
383
- export * from './optimizationJobItemStatusDTO';
384
- export * from './optimizationJobStatusResponse';
385
377
  export * from './optimizationRuleAuditLogDTO';
386
378
  export * from './optimizationRuleAuditLogDTOList';
387
379
  export * from './optimizationRuleDTO';
@@ -422,7 +414,6 @@ export * from './safeguardResponseDTO';
422
414
  export * from './safeguardRuleMasterEntity';
423
415
  export * from './schedulerRequest';
424
416
  export * from './searchRequest';
425
- export * from './selectedTargetDTO';
426
417
  export * from './siteListDTO';
427
418
  export * from './siteListRequest';
428
419
  export * from './siteModel';
@@ -69,6 +69,7 @@ export interface StrategyDTO {
69
69
  currency?: BaseModel;
70
70
  currencyCode?: string;
71
71
  dailyAdvSpendBudget?: number;
72
+ dayPartingTimezone?: TimeZoneDTO;
72
73
  daysDuration?: number;
73
74
  daysElapsed?: number;
74
75
  dealDTO?: Array<DealESDTO>;
@@ -11,7 +11,6 @@
11
11
  */
12
12
  export interface VideoAttributes {
13
13
  bitRate?: string;
14
- borderType?: VideoAttributes.BorderTypeEnum;
15
14
  companionContentType?: VideoAttributes.CompanionContentTypeEnum;
16
15
  companionCreativeId?: number;
17
16
  companionHeight?: number;
@@ -31,12 +30,6 @@ export interface VideoAttributes {
31
30
  videoWidth?: number;
32
31
  }
33
32
  export declare namespace VideoAttributes {
34
- type BorderTypeEnum = 'NONE' | 'BLACK' | 'BLUR';
35
- const BorderTypeEnum: {
36
- NONE: BorderTypeEnum;
37
- BLACK: BorderTypeEnum;
38
- BLUR: BorderTypeEnum;
39
- };
40
33
  type CompanionContentTypeEnum = 'ZIP' | 'JPG' | 'JPEG' | 'PNG' | 'GIF' | 'FLV' | 'MP4' | 'THREE_GPP' | 'MOV' | 'WEBM' | 'DASH' | 'HLS' | 'GZIP' | 'TEXT' | 'CSV' | 'UNKNOWN' | 'XMPEGURL';
41
34
  const CompanionContentTypeEnum: {
42
35
  ZIP: CompanionContentTypeEnum;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@revxui/api-clients-ts",
3
- "version": "1.1.484",
3
+ "version": "1.1.486",
4
4
  "description": "swagger client for @revxui/api-clients-ts",
5
5
  "author": "Swagger Codegen Contributors",
6
6
  "keywords": [
@@ -1,78 +0,0 @@
1
- import { HttpClient, HttpHeaders, HttpResponse, HttpEvent } from '@angular/common/http';
2
- import { Observable } from 'rxjs';
3
- import { ApiListResponseCreativeSizeMappingDTO } from '../model/apiListResponseCreativeSizeMappingDTO';
4
- import { CreativeAssetOptimizationRequest } from '../model/creativeAssetOptimizationRequest';
5
- import { CreativeAssetUploadResponse } from '../model/creativeAssetUploadResponse';
6
- import { OptimizationJobStatusResponse } from '../model/optimizationJobStatusResponse';
7
- import { Configuration } from '../configuration';
8
- import * as i0 from "@angular/core";
9
- export declare class CreativeAssetOptimizationControllerService {
10
- protected httpClient: HttpClient;
11
- protected basePath: string;
12
- defaultHeaders: HttpHeaders;
13
- configuration: Configuration;
14
- constructor(httpClient: HttpClient, basePath: string, configuration: Configuration);
15
- /**
16
- * @param consumes string[] mime-types
17
- * @return true: consumes contains 'multipart/form-data', false: otherwise
18
- */
19
- private canConsumeForm;
20
- /**
21
- * Poll job status/progress — drives the loader % and the Generation Results table.
22
- *
23
- * @param jobId jobId
24
- * @param reqId request id
25
- * @param token Auth Token
26
- * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
27
- * @param reportProgress flag to report request and response progress.
28
- */
29
- getJobStatusUsingGET(jobId: number, reqId?: string, token?: string, observe?: 'body', reportProgress?: boolean): Observable<OptimizationJobStatusResponse>;
30
- getJobStatusUsingGET(jobId: number, reqId?: string, token?: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<OptimizationJobStatusResponse>>;
31
- getJobStatusUsingGET(jobId: number, reqId?: string, token?: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<OptimizationJobStatusResponse>>;
32
- /**
33
- * Fetch the full size-mapping config for a creative type (browser caches this for the session).
34
- *
35
- * @param creativeType creativeType
36
- * @param reqId request id
37
- * @param token Auth Token
38
- * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
39
- * @param reportProgress flag to report request and response progress.
40
- */
41
- getSizeMappingConfigUsingGET(creativeType: 'IMAGE' | 'VIDEO' | 'THIRD_PARTY_AD_TAGS' | 'ZIPPED_HTML' | 'NATIVE_IMAGE' | 'NATIVE_VIDEO' | 'DYNAMIC_IMAGE' | 'DYNAMIC_MACRO' | 'DYNAMIC_HTML' | 'DYNAMIC_VIDEO' | 'HYBRID_STATIC_AD' | 'HYBRID_DYNAMIC_AD' | 'THIRD_PARTY_VIDEO_AD_TAGS' | 'NATIVE_ICON' | 'ICON' | 'CTV_VIDEO' | 'PLAYABLE', reqId?: string, token?: string, observe?: 'body', reportProgress?: boolean): Observable<ApiListResponseCreativeSizeMappingDTO>;
42
- getSizeMappingConfigUsingGET(creativeType: 'IMAGE' | 'VIDEO' | 'THIRD_PARTY_AD_TAGS' | 'ZIPPED_HTML' | 'NATIVE_IMAGE' | 'NATIVE_VIDEO' | 'DYNAMIC_IMAGE' | 'DYNAMIC_MACRO' | 'DYNAMIC_HTML' | 'DYNAMIC_VIDEO' | 'HYBRID_STATIC_AD' | 'HYBRID_DYNAMIC_AD' | 'THIRD_PARTY_VIDEO_AD_TAGS' | 'NATIVE_ICON' | 'ICON' | 'CTV_VIDEO' | 'PLAYABLE', reqId?: string, token?: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<ApiListResponseCreativeSizeMappingDTO>>;
43
- getSizeMappingConfigUsingGET(creativeType: 'IMAGE' | 'VIDEO' | 'THIRD_PARTY_AD_TAGS' | 'ZIPPED_HTML' | 'NATIVE_IMAGE' | 'NATIVE_VIDEO' | 'DYNAMIC_IMAGE' | 'DYNAMIC_MACRO' | 'DYNAMIC_HTML' | 'DYNAMIC_VIDEO' | 'HYBRID_STATIC_AD' | 'HYBRID_DYNAMIC_AD' | 'THIRD_PARTY_VIDEO_AD_TAGS' | 'NATIVE_ICON' | 'ICON' | 'CTV_VIDEO' | 'PLAYABLE', reqId?: string, token?: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<ApiListResponseCreativeSizeMappingDTO>>;
44
- /**
45
- * Submit the previously-uploaded asset&#39;s mediaId + selected target sizes for backend bulk generation. Pure JSON — the file itself already traveled in the earlier /upload call. Returns immediately with a jobId.
46
- *
47
- * @param request request
48
- * @param reqId request id
49
- * @param token Auth Token
50
- * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
51
- * @param reportProgress flag to report request and response progress.
52
- */
53
- saveUsingPOST(request: CreativeAssetOptimizationRequest, reqId?: string, token?: string, observe?: 'body', reportProgress?: boolean): Observable<{
54
- [key: string]: number;
55
- }>;
56
- saveUsingPOST(request: CreativeAssetOptimizationRequest, reqId?: string, token?: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<{
57
- [key: string]: number;
58
- }>>;
59
- saveUsingPOST(request: CreativeAssetOptimizationRequest, reqId?: string, token?: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<{
60
- [key: string]: number;
61
- }>>;
62
- /**
63
- * Upload the original asset only — persists it, detects its dimensions, and returns a mediaId. Called silently in the background while the user fills out the rest of the creative form; does not create a job or touch the database&#39;s Creative/CreativeSets tables.
64
- *
65
- * @param advertiserId advertiserId
66
- * @param creativeSetType creativeSetType
67
- * @param file file
68
- * @param reqId request id
69
- * @param token Auth Token
70
- * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
71
- * @param reportProgress flag to report request and response progress.
72
- */
73
- uploadUsingPOST(advertiserId: any, creativeSetType: any, file: Blob, reqId?: string, token?: string, observe?: 'body', reportProgress?: boolean): Observable<CreativeAssetUploadResponse>;
74
- uploadUsingPOST(advertiserId: any, creativeSetType: any, file: Blob, reqId?: string, token?: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<CreativeAssetUploadResponse>>;
75
- uploadUsingPOST(advertiserId: any, creativeSetType: any, file: Blob, reqId?: string, token?: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<CreativeAssetUploadResponse>>;
76
- static ɵfac: i0.ɵɵFactoryDeclaration<CreativeAssetOptimizationControllerService, [null, { optional: true; }, { optional: true; }]>;
77
- static ɵprov: i0.ɵɵInjectableDeclaration<CreativeAssetOptimizationControllerService>;
78
- }
@@ -1,214 +0,0 @@
1
- /**
2
- * Api Documentation
3
- * Api Documentation
4
- *
5
- * OpenAPI spec version: 1.0
6
- *
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
- /* tslint:disable:no-unused-variable member-ordering */
13
- import { Inject, Injectable, Optional } from '@angular/core';
14
- import { HttpHeaders, HttpParams } from '@angular/common/http';
15
- import { CustomHttpUrlEncodingCodec } from '../encoder';
16
- import { BASE_PATH } from '../variables';
17
- import { Configuration } from '../configuration';
18
- import * as i0 from "@angular/core";
19
- import * as i1 from "@angular/common/http";
20
- import * as i2 from "../configuration";
21
- export class CreativeAssetOptimizationControllerService {
22
- constructor(httpClient, basePath, configuration) {
23
- this.httpClient = httpClient;
24
- this.basePath = 'https://apiv2stage7.atomex.net';
25
- this.defaultHeaders = new HttpHeaders();
26
- this.configuration = new Configuration();
27
- if (basePath) {
28
- this.basePath = basePath;
29
- }
30
- if (configuration) {
31
- this.configuration = configuration;
32
- this.basePath = basePath || configuration.basePath || this.basePath;
33
- }
34
- }
35
- /**
36
- * @param consumes string[] mime-types
37
- * @return true: consumes contains 'multipart/form-data', false: otherwise
38
- */
39
- canConsumeForm(consumes) {
40
- const form = 'multipart/form-data';
41
- for (const consume of consumes) {
42
- if (form === consume) {
43
- return true;
44
- }
45
- }
46
- return false;
47
- }
48
- getJobStatusUsingGET(jobId, reqId, token, observe = 'body', reportProgress = false) {
49
- if (jobId === null || jobId === undefined) {
50
- throw new Error('Required parameter jobId was null or undefined when calling getJobStatusUsingGET.');
51
- }
52
- let headers = this.defaultHeaders;
53
- if (reqId !== undefined && reqId !== null) {
54
- headers = headers.set('reqId', String(reqId));
55
- }
56
- if (token !== undefined && token !== null) {
57
- headers = headers.set('token', String(token));
58
- }
59
- // to determine the Accept header
60
- let httpHeaderAccepts = [
61
- 'application/json'
62
- ];
63
- const httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);
64
- if (httpHeaderAcceptSelected != undefined) {
65
- headers = headers.set('Accept', httpHeaderAcceptSelected);
66
- }
67
- // to determine the Content-Type header
68
- const consumes = [];
69
- return this.httpClient.get(`${this.basePath}/v2/api/creativesets/v2/jobs/${encodeURIComponent(String(jobId))}`, {
70
- withCredentials: this.configuration.withCredentials,
71
- headers: headers,
72
- observe: observe,
73
- reportProgress: reportProgress
74
- });
75
- }
76
- getSizeMappingConfigUsingGET(creativeType, reqId, token, observe = 'body', reportProgress = false) {
77
- if (creativeType === null || creativeType === undefined) {
78
- throw new Error('Required parameter creativeType was null or undefined when calling getSizeMappingConfigUsingGET.');
79
- }
80
- let queryParameters = new HttpParams({ encoder: new CustomHttpUrlEncodingCodec() });
81
- if (creativeType !== undefined && creativeType !== null) {
82
- queryParameters = queryParameters.set('creativeType', creativeType);
83
- }
84
- let headers = this.defaultHeaders;
85
- if (reqId !== undefined && reqId !== null) {
86
- headers = headers.set('reqId', String(reqId));
87
- }
88
- if (token !== undefined && token !== null) {
89
- headers = headers.set('token', String(token));
90
- }
91
- // to determine the Accept header
92
- let httpHeaderAccepts = [
93
- 'application/json'
94
- ];
95
- const httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);
96
- if (httpHeaderAcceptSelected != undefined) {
97
- headers = headers.set('Accept', httpHeaderAcceptSelected);
98
- }
99
- // to determine the Content-Type header
100
- const consumes = [];
101
- return this.httpClient.get(`${this.basePath}/v2/api/creativesets/v2/size-mapping-config`, {
102
- params: queryParameters,
103
- withCredentials: this.configuration.withCredentials,
104
- headers: headers,
105
- observe: observe,
106
- reportProgress: reportProgress
107
- });
108
- }
109
- saveUsingPOST(request, reqId, token, observe = 'body', reportProgress = false) {
110
- if (request === null || request === undefined) {
111
- throw new Error('Required parameter request was null or undefined when calling saveUsingPOST.');
112
- }
113
- let headers = this.defaultHeaders;
114
- if (reqId !== undefined && reqId !== null) {
115
- headers = headers.set('reqId', String(reqId));
116
- }
117
- if (token !== undefined && token !== null) {
118
- headers = headers.set('token', String(token));
119
- }
120
- // to determine the Accept header
121
- let httpHeaderAccepts = [
122
- 'application/json'
123
- ];
124
- const httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);
125
- if (httpHeaderAcceptSelected != undefined) {
126
- headers = headers.set('Accept', httpHeaderAcceptSelected);
127
- }
128
- // to determine the Content-Type header
129
- const consumes = [
130
- 'application/json'
131
- ];
132
- const httpContentTypeSelected = this.configuration.selectHeaderContentType(consumes);
133
- if (httpContentTypeSelected != undefined) {
134
- headers = headers.set('Content-Type', httpContentTypeSelected);
135
- }
136
- return this.httpClient.post(`${this.basePath}/v2/api/creativesets/v2/save`, request, {
137
- withCredentials: this.configuration.withCredentials,
138
- headers: headers,
139
- observe: observe,
140
- reportProgress: reportProgress
141
- });
142
- }
143
- uploadUsingPOST(advertiserId, creativeSetType, file, reqId, token, observe = 'body', reportProgress = false) {
144
- if (advertiserId === null || advertiserId === undefined) {
145
- throw new Error('Required parameter advertiserId was null or undefined when calling uploadUsingPOST.');
146
- }
147
- if (creativeSetType === null || creativeSetType === undefined) {
148
- throw new Error('Required parameter creativeSetType was null or undefined when calling uploadUsingPOST.');
149
- }
150
- if (file === null || file === undefined) {
151
- throw new Error('Required parameter file was null or undefined when calling uploadUsingPOST.');
152
- }
153
- let headers = this.defaultHeaders;
154
- if (reqId !== undefined && reqId !== null) {
155
- headers = headers.set('reqId', String(reqId));
156
- }
157
- if (token !== undefined && token !== null) {
158
- headers = headers.set('token', String(token));
159
- }
160
- // to determine the Accept header
161
- let httpHeaderAccepts = [
162
- 'application/json'
163
- ];
164
- const httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);
165
- if (httpHeaderAcceptSelected != undefined) {
166
- headers = headers.set('Accept', httpHeaderAcceptSelected);
167
- }
168
- // to determine the Content-Type header
169
- const consumes = [
170
- 'multipart/form-data'
171
- ];
172
- const canConsumeForm = this.canConsumeForm(consumes);
173
- let formParams;
174
- let useForm = false;
175
- let convertFormParamsToString = false;
176
- // use FormData to transmit files using content-type "multipart/form-data"
177
- // see https://stackoverflow.com/questions/4007969/application-x-www-form-urlencoded-or-multipart-form-data
178
- useForm = canConsumeForm;
179
- if (useForm) {
180
- formParams = new FormData();
181
- }
182
- else {
183
- formParams = new HttpParams({ encoder: new CustomHttpUrlEncodingCodec() });
184
- }
185
- if (advertiserId !== undefined) {
186
- formParams = formParams.append('advertiserId', advertiserId) || formParams;
187
- }
188
- if (creativeSetType !== undefined) {
189
- formParams = formParams.append('creativeSetType', creativeSetType) || formParams;
190
- }
191
- if (file !== undefined) {
192
- formParams = formParams.append('file', file) || formParams;
193
- }
194
- return this.httpClient.post(`${this.basePath}/v2/api/creativesets/v2/upload`, convertFormParamsToString ? formParams.toString() : formParams, {
195
- withCredentials: this.configuration.withCredentials,
196
- headers: headers,
197
- observe: observe,
198
- reportProgress: reportProgress
199
- });
200
- }
201
- }
202
- CreativeAssetOptimizationControllerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CreativeAssetOptimizationControllerService, deps: [{ token: i1.HttpClient }, { token: BASE_PATH, optional: true }, { token: i2.Configuration, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
203
- CreativeAssetOptimizationControllerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CreativeAssetOptimizationControllerService });
204
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CreativeAssetOptimizationControllerService, decorators: [{
205
- type: Injectable
206
- }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: undefined, decorators: [{
207
- type: Optional
208
- }, {
209
- type: Inject,
210
- args: [BASE_PATH]
211
- }] }, { type: i2.Configuration, decorators: [{
212
- type: Optional
213
- }] }]; } });
214
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRpdmVBc3NldE9wdGltaXphdGlvbkNvbnRyb2xsZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2FwaS9jcmVhdGl2ZUFzc2V0T3B0aW1pemF0aW9uQ29udHJvbGxlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7O0dBVUc7QUFDSCx1REFBdUQ7QUFFdkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQTJCLGVBQWUsQ0FBQztBQUNsRixPQUFPLEVBQWMsV0FBVyxFQUFFLFVBQVUsRUFDVixNQUFnQyxzQkFBc0IsQ0FBQztBQUN6RixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBNkIsWUFBWSxDQUFDO0FBUy9FLE9BQU8sRUFBRSxTQUFTLEVBQXNCLE1BQTBCLGNBQWMsQ0FBQztBQUNqRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQTBDLGtCQUFrQixDQUFDOzs7O0FBSXJGLE1BQU0sT0FBTywwQ0FBMEM7SUFNbkQsWUFBc0IsVUFBc0IsRUFBZ0MsUUFBZ0IsRUFBYyxhQUE0QjtRQUFoSCxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBSmxDLGFBQVEsR0FBRyxnQ0FBZ0MsQ0FBQztRQUMvQyxtQkFBYyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7UUFDbkMsa0JBQWEsR0FBRyxJQUFJLGFBQWEsRUFBRSxDQUFDO1FBR3ZDLElBQUksUUFBUSxFQUFFO1lBQ1YsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7U0FDNUI7UUFDRCxJQUFJLGFBQWEsRUFBRTtZQUNmLElBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO1lBQ25DLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxJQUFJLGFBQWEsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQztTQUN2RTtJQUNMLENBQUM7SUFFRDs7O09BR0c7SUFDSyxjQUFjLENBQUMsUUFBa0I7UUFD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Q0FDSixDQUFDO0lBQ04sQ0FBQzs7d0lBelJRLDBDQUEwQyw0Q0FNYyxTQUFTOzRJQU5qRSwwQ0FBMEM7NEZBQTFDLDBDQUEwQztrQkFEdEQsVUFBVTs7MEJBT3dDLFFBQVE7OzBCQUFHLE1BQU07MkJBQUMsU0FBUzs7MEJBQXFCLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEFwaSBEb2N1bWVudGF0aW9uXG4gKiBBcGkgRG9jdW1lbnRhdGlvblxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKi9cbi8qIHRzbGludDpkaXNhYmxlOm5vLXVudXNlZC12YXJpYWJsZSBtZW1iZXItb3JkZXJpbmcgKi9cblxuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbCB9ICAgICAgICAgICAgICAgICAgICAgIGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMsIEh0dHBQYXJhbXMsXG4gICAgICAgICBIdHRwUmVzcG9uc2UsIEh0dHBFdmVudCB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgQ3VzdG9tSHR0cFVybEVuY29kaW5nQ29kZWMgfSAgICAgICAgICAgICAgICAgICAgICAgIGZyb20gJy4uL2VuY29kZXInO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEFwaUxpc3RSZXNwb25zZUNyZWF0aXZlU2l6ZU1hcHBpbmdEVE8gfSBmcm9tICcuLi9tb2RlbC9hcGlMaXN0UmVzcG9uc2VDcmVhdGl2ZVNpemVNYXBwaW5nRFRPJztcbmltcG9ydCB7IENyZWF0aXZlQXNzZXRPcHRpbWl6YXRpb25SZXF1ZXN0IH0gZnJvbSAnLi4vbW9kZWwvY3JlYXRpdmVBc3NldE9wdGltaXphdGlvblJlcXVlc3QnO1xuaW1wb3J0IHsgQ3JlYXRpdmVBc3NldFVwbG9hZFJlc3BvbnNlIH0gZnJvbSAnLi4vbW9kZWwvY3JlYXRpdmVBc3NldFVwbG9hZFJlc3BvbnNlJztcbmltcG9ydCB7IE9wdGltaXphdGlvbkpvYlN0YXR1c1Jlc3BvbnNlIH0gZnJvbSAnLi4vbW9kZWwvb3B0aW1pemF0aW9uSm9iU3RhdHVzUmVzcG9uc2UnO1xuXG5pbXBvcnQgeyBCQVNFX1BBVEgsIENPTExFQ1RJT05fRk9STUFUUyB9ICAgICAgICAgICAgICAgICAgICAgZnJvbSAnLi4vdmFyaWFibGVzJztcbmltcG9ydCB7IENvbmZpZ3VyYXRpb24gfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcm9tICcuLi9jb25maWd1cmF0aW9uJztcblxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ3JlYXRpdmVBc3NldE9wdGltaXphdGlvbkNvbnRyb2xsZXJTZXJ2aWNlIHtcblxuICAgIHByb3RlY3RlZCBiYXNlUGF0aCA9ICdodHRwczovL2FwaXYyc3RhZ2U3LmF0b21leC5uZXQnO1xuICAgIHB1YmxpYyBkZWZhdWx0SGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpO1xuICAgIHB1YmxpYyBjb25maWd1cmF0aW9uID0gbmV3IENvbmZpZ3VyYXRpb24oKTtcblxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBodHRwQ2xpZW50OiBIdHRwQ2xpZW50LCBAT3B0aW9uYWwoKUBJbmplY3QoQkFTRV9QQVRIKSBiYXNlUGF0aDogc3RyaW5nLCBAT3B0aW9uYWwoKSBjb25maWd1cmF0aW9uOiBDb25maWd1cmF0aW9uKSB7XG4gICAgICAgIGlmIChiYXNlUGF0aCkge1xuICAgICAgICAgICAgdGhpcy5iYXNlUGF0aCA9IGJhc2VQYXRoO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjb25maWd1cmF0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLmNvbmZpZ3VyYXRpb24gPSBjb25maWd1cmF0aW9uO1xuICAgICAgICAgICAgdGhpcy5iYXNlUGF0aCA9IGJhc2VQYXRoIHx8IGNvbmZpZ3VyYXRpb24uYmFzZVBhdGggfHwgdGhpcy5iYXNlUGF0aDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBwYXJhbSBjb25zdW1lcyBzdHJpbmdbXSBtaW1lLXR5cGVzXG4gICAgICogQHJldHVybiB0cnVlOiBjb25zdW1lcyBjb250YWlucyAnbXVsdGlwYXJ0L2Zvcm0tZGF0YScsIGZhbHNlOiBvdGhlcndpc2VcbiAgICAgKi9cbiAgICBwcml2YXRlIGNhbkNvbnN1bWVGb3JtKGNvbnN1bWVzOiBzdHJpbmdbXSk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBmb3JtID0gJ211bHRpcGFydC9mb3JtLWRhdGEnO1xuICAgICAgICBmb3IgKGNvbnN0IGNvbnN1bWUgb2YgY29uc3VtZXMpIHtcbiAgICAgICAgICAgIGlmIChmb3JtID09PSBjb25zdW1lKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuXG4gICAgLyoqXG4gICAgICogUG9sbCBqb2Igc3RhdHVzL3Byb2dyZXNzIOKAlCBkcml2ZXMgdGhlIGxvYWRlciAlIGFuZCB0aGUgR2VuZXJhdGlvbiBSZXN1bHRzIHRhYmxlLlxuICAgICAqIFxuICAgICAqIEBwYXJhbSBqb2JJZCBqb2JJZFxuICAgICAqIEBwYXJhbSByZXFJZCByZXF1ZXN0IGlkXG4gICAgICogQHBhcmFtIHRva2VuIEF1dGggVG9rZW5cbiAgICAgKiBAcGFyYW0gb2JzZXJ2ZSBzZXQgd2hldGhlciBvciBub3QgdG8gcmV0dXJuIHRoZSBkYXRhIE9ic2VydmFibGUgYXMgdGhlIGJvZHksIHJlc3BvbnNlIG9yIGV2ZW50cy4gZGVmYXVsdHMgdG8gcmV0dXJuaW5nIHRoZSBib2R5LlxuICAgICAqIEBwYXJhbSByZXBvcnRQcm9ncmVzcyBmbGFnIHRvIHJlcG9ydCByZXF1ZXN0IGFuZCByZXNwb25zZSBwcm9ncmVzcy5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0Sm9iU3RhdHVzVXNpbmdHRVQoam9iSWQ6IG51bWJlciwgcmVxSWQ/OiBzdHJpbmcsIHRva2VuPzogc3RyaW5nLCBvYnNlcnZlPzogJ2JvZHknLCByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPE9wdGltaXphdGlvbkpvYlN0YXR1c1Jlc3BvbnNlPjtcbiAgICBwdWJsaWMgZ2V0Sm9iU3RhdHVzVXNpbmdHRVQoam9iSWQ6IG51bWJlciwgcmVxSWQ/OiBzdHJpbmcsIHRva2VuPzogc3RyaW5nLCBvYnNlcnZlPzogJ3Jlc3BvbnNlJywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxIdHRwUmVzcG9uc2U8T3B0aW1pemF0aW9uSm9iU3RhdHVzUmVzcG9uc2U+PjtcbiAgICBwdWJsaWMgZ2V0Sm9iU3RhdHVzVXNpbmdHRVQoam9iSWQ6IG51bWJlciwgcmVxSWQ/OiBzdHJpbmcsIHRva2VuPzogc3RyaW5nLCBvYnNlcnZlPzogJ2V2ZW50cycsIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbik6IE9ic2VydmFibGU8SHR0cEV2ZW50PE9wdGltaXphdGlvbkpvYlN0YXR1c1Jlc3BvbnNlPj47XG4gICAgcHVibGljIGdldEpvYlN0YXR1c1VzaW5nR0VUKGpvYklkOiBudW1iZXIsIHJlcUlkPzogc3RyaW5nLCB0b2tlbj86IHN0cmluZywgb2JzZXJ2ZTogYW55ID0gJ2JvZHknLCByZXBvcnRQcm9ncmVzczogYm9vbGVhbiA9IGZhbHNlICk6IE9ic2VydmFibGU8YW55PiB7XG5cbiAgICAgICAgaWYgKGpvYklkID09PSBudWxsIHx8IGpvYklkID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignUmVxdWlyZWQgcGFyYW1ldGVyIGpvYklkIHdhcyBudWxsIG9yIHVuZGVmaW5lZCB3aGVuIGNhbGxpbmcgZ2V0Sm9iU3RhdHVzVXNpbmdHRVQuJyk7XG4gICAgICAgIH1cblxuXG5cbiAgICAgICAgbGV0IGhlYWRlcnMgPSB0aGlzLmRlZmF1bHRIZWFkZXJzO1xuICAgICAgICBpZiAocmVxSWQgIT09IHVuZGVmaW5lZCAmJiByZXFJZCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KCdyZXFJZCcsIFN0cmluZyhyZXFJZCkpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0b2tlbiAhPT0gdW5kZWZpbmVkICYmIHRva2VuICE9PSBudWxsKSB7XG4gICAgICAgICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoJ3Rva2VuJywgU3RyaW5nKHRva2VuKSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyB0byBkZXRlcm1pbmUgdGhlIEFjY2VwdCBoZWFkZXJcbiAgICAgICAgbGV0IGh0dHBIZWFkZXJBY2NlcHRzOiBzdHJpbmdbXSA9IFtcbiAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJ1xuICAgICAgICBdO1xuICAgICAgICBjb25zdCBodHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQ6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHRoaXMuY29uZmlndXJhdGlvbi5zZWxlY3RIZWFkZXJBY2NlcHQoaHR0cEhlYWRlckFjY2VwdHMpO1xuICAgICAgICBpZiAoaHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KCdBY2NlcHQnLCBodHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gdG8gZGV0ZXJtaW5lIHRoZSBDb250ZW50LVR5cGUgaGVhZGVyXG4gICAgICAgIGNvbnN0IGNvbnN1bWVzOiBzdHJpbmdbXSA9IFtcbiAgICAgICAgXTtcblxuICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldDxPcHRpbWl6YXRpb25Kb2JTdGF0dXNSZXNwb25zZT4oYCR7dGhpcy5iYXNlUGF0aH0vdjIvYXBpL2NyZWF0aXZlc2V0cy92Mi9qb2JzLyR7ZW5jb2RlVVJJQ29tcG9uZW50KFN0cmluZyhqb2JJZCkpfWAsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0aGlzLmNvbmZpZ3VyYXRpb24ud2l0aENyZWRlbnRpYWxzLFxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IGhlYWRlcnMsXG4gICAgICAgICAgICAgICAgb2JzZXJ2ZTogb2JzZXJ2ZSxcbiAgICAgICAgICAgICAgICByZXBvcnRQcm9ncmVzczogcmVwb3J0UHJvZ3Jlc3NcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBGZXRjaCB0aGUgZnVsbCBzaXplLW1hcHBpbmcgY29uZmlnIGZvciBhIGNyZWF0aXZlIHR5cGUgKGJyb3dzZXIgY2FjaGVzIHRoaXMgZm9yIHRoZSBzZXNzaW9uKS5cbiAgICAgKiBcbiAgICAgKiBAcGFyYW0gY3JlYXRpdmVUeXBlIGNyZWF0aXZlVHlwZVxuICAgICAqIEBwYXJhbSByZXFJZCByZXF1ZXN0IGlkXG4gICAgICogQHBhcmFtIHRva2VuIEF1dGggVG9rZW5cbiAgICAgKiBAcGFyYW0gb2JzZXJ2ZSBzZXQgd2hldGhlciBvciBub3QgdG8gcmV0dXJuIHRoZSBkYXRhIE9ic2VydmFibGUgYXMgdGhlIGJvZHksIHJlc3BvbnNlIG9yIGV2ZW50cy4gZGVmYXVsdHMgdG8gcmV0dXJuaW5nIHRoZSBib2R5LlxuICAgICAqIEBwYXJhbSByZXBvcnRQcm9ncmVzcyBmbGFnIHRvIHJlcG9ydCByZXF1ZXN0IGFuZCByZXNwb25zZSBwcm9ncmVzcy5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0U2l6ZU1hcHBpbmdDb25maWdVc2luZ0dFVChjcmVhdGl2ZVR5cGU6ICdJTUFHRScgfCAnVklERU8nIHwgJ1RISVJEX1BBUlRZX0FEX1RBR1MnIHwgJ1pJUFBFRF9IVE1MJyB8ICdOQVRJVkVfSU1BR0UnIHwgJ05BVElWRV9WSURFTycgfCAnRFlOQU1JQ19JTUFHRScgfCAnRFlOQU1JQ19NQUNSTycgfCAnRFlOQU1JQ19IVE1MJyB8ICdEWU5BTUlDX1ZJREVPJyB8ICdIWUJSSURfU1RBVElDX0FEJyB8ICdIWUJSSURfRFlOQU1JQ19BRCcgfCAnVEhJUkRfUEFSVFlfVklERU9fQURfVEFHUycgfCAnTkFUSVZFX0lDT04nIHwgJ0lDT04nIHwgJ0NUVl9WSURFTycgfCAnUExBWUFCTEUnLCByZXFJZD86IHN0cmluZywgdG9rZW4/OiBzdHJpbmcsIG9ic2VydmU/OiAnYm9keScsIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbik6IE9ic2VydmFibGU8QXBpTGlzdFJlc3BvbnNlQ3JlYXRpdmVTaXplTWFwcGluZ0RUTz47XG4gICAgcHVibGljIGdldFNpemVNYXBwaW5nQ29uZmlnVXNpbmdHRVQoY3JlYXRpdmVUeXBlOiAnSU1BR0UnIHwgJ1ZJREVPJyB8ICdUSElSRF9QQVJUWV9BRF9UQUdTJyB8ICdaSVBQRURfSFRNTCcgfCAnTkFUSVZFX0lNQUdFJyB8ICdOQVRJVkVfVklERU8nIHwgJ0RZTkFNSUNfSU1BR0UnIHwgJ0RZTkFNSUNfTUFDUk8nIHwgJ0RZTkFNSUNfSFRNTCcgfCAnRFlOQU1JQ19WSURFTycgfCAnSFlCUklEX1NUQVRJQ19BRCcgfCAnSFlCUklEX0RZTkFNSUNfQUQnIHwgJ1RISVJEX1BBUlRZX1ZJREVPX0FEX1RBR1MnIHwgJ05BVElWRV9JQ09OJyB8ICdJQ09OJyB8ICdDVFZfVklERU8nIHwgJ1BMQVlBQkxFJywgcmVxSWQ/OiBzdHJpbmcsIHRva2VuPzogc3RyaW5nLCBvYnNlcnZlPzogJ3Jlc3BvbnNlJywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxIdHRwUmVzcG9uc2U8QXBpTGlzdFJlc3BvbnNlQ3JlYXRpdmVTaXplTWFwcGluZ0RUTz4+O1xuICAgIHB1YmxpYyBnZXRTaXplTWFwcGluZ0NvbmZpZ1VzaW5nR0VUKGNyZWF0aXZlVHlwZTogJ0lNQUdFJyB8ICdWSURFTycgfCAnVEhJUkRfUEFSVFlfQURfVEFHUycgfCAnWklQUEVEX0hUTUwnIHwgJ05BVElWRV9JTUFHRScgfCAnTkFUSVZFX1ZJREVPJyB8ICdEWU5BTUlDX0lNQUdFJyB8ICdEWU5BTUlDX01BQ1JPJyB8ICdEWU5BTUlDX0hUTUwnIHwgJ0RZTkFNSUNfVklERU8nIHwgJ0hZQlJJRF9TVEFUSUNfQUQnIHwgJ0hZQlJJRF9EWU5BTUlDX0FEJyB8ICdUSElSRF9QQVJUWV9WSURFT19BRF9UQUdTJyB8ICdOQVRJVkVfSUNPTicgfCAnSUNPTicgfCAnQ1RWX1ZJREVPJyB8ICdQTEFZQUJMRScsIHJlcUlkPzogc3RyaW5nLCB0b2tlbj86IHN0cmluZywgb2JzZXJ2ZT86ICdldmVudHMnLCByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPEh0dHBFdmVudDxBcGlMaXN0UmVzcG9uc2VDcmVhdGl2ZVNpemVNYXBwaW5nRFRPPj47XG4gICAgcHVibGljIGdldFNpemVNYXBwaW5nQ29uZmlnVXNpbmdHRVQoY3JlYXRpdmVUeXBlOiAnSU1BR0UnIHwgJ1ZJREVPJyB8ICdUSElSRF9QQVJUWV9BRF9UQUdTJyB8ICdaSVBQRURfSFRNTCcgfCAnTkFUSVZFX0lNQUdFJyB8ICdOQVRJVkVfVklERU8nIHwgJ0RZTkFNSUNfSU1BR0UnIHwgJ0RZTkFNSUNfTUFDUk8nIHwgJ0RZTkFNSUNfSFRNTCcgfCAnRFlOQU1JQ19WSURFTycgfCAnSFlCUklEX1NUQVRJQ19BRCcgfCAnSFlCUklEX0RZTkFNSUNfQUQnIHwgJ1RISVJEX1BBUlRZX1ZJREVPX0FEX1RBR1MnIHwgJ05BVElWRV9JQ09OJyB8ICdJQ09OJyB8ICdDVFZfVklERU8nIHwgJ1BMQVlBQkxFJywgcmVxSWQ/OiBzdHJpbmcsIHRva2VuPzogc3RyaW5nLCBvYnNlcnZlOiBhbnkgPSAnYm9keScsIHJlcG9ydFByb2dyZXNzOiBib29sZWFuID0gZmFsc2UgKTogT2JzZXJ2YWJsZTxhbnk+IHtcblxuICAgICAgICBpZiAoY3JlYXRpdmVUeXBlID09PSBudWxsIHx8IGNyZWF0aXZlVHlwZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1JlcXVpcmVkIHBhcmFtZXRlciBjcmVhdGl2ZVR5cGUgd2FzIG51bGwgb3IgdW5kZWZpbmVkIHdoZW4gY2FsbGluZyBnZXRTaXplTWFwcGluZ0NvbmZpZ1VzaW5nR0VULicpO1xuICAgICAgICB9XG5cblxuXG4gICAgICAgIGxldCBxdWVyeVBhcmFtZXRlcnMgPSBuZXcgSHR0cFBhcmFtcyh7ZW5jb2RlcjogbmV3IEN1c3RvbUh0dHBVcmxFbmNvZGluZ0NvZGVjKCl9KTtcbiAgICAgICAgaWYgKGNyZWF0aXZlVHlwZSAhPT0gdW5kZWZpbmVkICYmIGNyZWF0aXZlVHlwZSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgcXVlcnlQYXJhbWV0ZXJzID0gcXVlcnlQYXJhbWV0ZXJzLnNldCgnY3JlYXRpdmVUeXBlJywgPGFueT5jcmVhdGl2ZVR5cGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGhlYWRlcnMgPSB0aGlzLmRlZmF1bHRIZWFkZXJzO1xuICAgICAgICBpZiAocmVxSWQgIT09IHVuZGVmaW5lZCAmJiByZXFJZCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KCdyZXFJZCcsIFN0cmluZyhyZXFJZCkpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0b2tlbiAhPT0gdW5kZWZpbmVkICYmIHRva2VuICE9PSBudWxsKSB7XG4gICAgICAgICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoJ3Rva2VuJywgU3RyaW5nKHRva2VuKSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyB0byBkZXRlcm1pbmUgdGhlIEFjY2VwdCBoZWFkZXJcbiAgICAgICAgbGV0IGh0dHBIZWFkZXJBY2NlcHRzOiBzdHJpbmdbXSA9IFtcbiAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJ1xuICAgICAgICBdO1xuICAgICAgICBjb25zdCBodHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQ6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHRoaXMuY29uZmlndXJhdGlvbi5zZWxlY3RIZWFkZXJBY2NlcHQoaHR0cEhlYWRlckFjY2VwdHMpO1xuICAgICAgICBpZiAoaHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KCdBY2NlcHQnLCBodHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gdG8gZGV0ZXJtaW5lIHRoZSBDb250ZW50LVR5cGUgaGVhZGVyXG4gICAgICAgIGNvbnN0IGNvbnN1bWVzOiBzdHJpbmdbXSA9IFtcbiAgICAgICAgXTtcblxuICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldDxBcGlMaXN0UmVzcG9uc2VDcmVhdGl2ZVNpemVNYXBwaW5nRFRPPihgJHt0aGlzLmJhc2VQYXRofS92Mi9hcGkvY3JlYXRpdmVzZXRzL3YyL3NpemUtbWFwcGluZy1jb25maWdgLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHBhcmFtczogcXVlcnlQYXJhbWV0ZXJzLFxuICAgICAgICAgICAgICAgIHdpdGhDcmVkZW50aWFsczogdGhpcy5jb25maWd1cmF0aW9uLndpdGhDcmVkZW50aWFscyxcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiBoZWFkZXJzLFxuICAgICAgICAgICAgICAgIG9ic2VydmU6IG9ic2VydmUsXG4gICAgICAgICAgICAgICAgcmVwb3J0UHJvZ3Jlc3M6IHJlcG9ydFByb2dyZXNzXG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU3VibWl0IHRoZSBwcmV2aW91c2x5LXVwbG9hZGVkIGFzc2V0JiMzOTtzIG1lZGlhSWQgKyBzZWxlY3RlZCB0YXJnZXQgc2l6ZXMgZm9yIGJhY2tlbmQgYnVsayBnZW5lcmF0aW9uLiBQdXJlIEpTT04g4oCUIHRoZSBmaWxlIGl0c2VsZiBhbHJlYWR5IHRyYXZlbGVkIGluIHRoZSBlYXJsaWVyIC91cGxvYWQgY2FsbC4gUmV0dXJucyBpbW1lZGlhdGVseSB3aXRoIGEgam9iSWQuXG4gICAgICogXG4gICAgICogQHBhcmFtIHJlcXVlc3QgcmVxdWVzdFxuICAgICAqIEBwYXJhbSByZXFJZCByZXF1ZXN0IGlkXG4gICAgICogQHBhcmFtIHRva2VuIEF1dGggVG9rZW5cbiAgICAgKiBAcGFyYW0gb2JzZXJ2ZSBzZXQgd2hldGhlciBvciBub3QgdG8gcmV0dXJuIHRoZSBkYXRhIE9ic2VydmFibGUgYXMgdGhlIGJvZHksIHJlc3BvbnNlIG9yIGV2ZW50cy4gZGVmYXVsdHMgdG8gcmV0dXJuaW5nIHRoZSBib2R5LlxuICAgICAqIEBwYXJhbSByZXBvcnRQcm9ncmVzcyBmbGFnIHRvIHJlcG9ydCByZXF1ZXN0IGFuZCByZXNwb25zZSBwcm9ncmVzcy5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2F2ZVVzaW5nUE9TVChyZXF1ZXN0OiBDcmVhdGl2ZUFzc2V0T3B0aW1pemF0aW9uUmVxdWVzdCwgcmVxSWQ/OiBzdHJpbmcsIHRva2VuPzogc3RyaW5nLCBvYnNlcnZlPzogJ2JvZHknLCByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPHsgW2tleTogc3RyaW5nXTogbnVtYmVyOyB9PjtcbiAgICBwdWJsaWMgc2F2ZVVzaW5nUE9TVChyZXF1ZXN0OiBDcmVhdGl2ZUFzc2V0T3B0aW1pemF0aW9uUmVxdWVzdCwgcmVxSWQ/OiBzdHJpbmcsIHRva2VuPzogc3RyaW5nLCBvYnNlcnZlPzogJ3Jlc3BvbnNlJywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxIdHRwUmVzcG9uc2U8eyBba2V5OiBzdHJpbmddOiBudW1iZXI7IH0+PjtcbiAgICBwdWJsaWMgc2F2ZVVzaW5nUE9TVChyZXF1ZXN0OiBDcmVhdGl2ZUFzc2V0T3B0aW1pemF0aW9uUmVxdWVzdCwgcmVxSWQ/OiBzdHJpbmcsIHRva2VuPzogc3RyaW5nLCBvYnNlcnZlPzogJ2V2ZW50cycsIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbik6IE9ic2VydmFibGU8SHR0cEV2ZW50PHsgW2tleTogc3RyaW5nXTogbnVtYmVyOyB9Pj47XG4gICAgcHVibGljIHNhdmVVc2luZ1BPU1QocmVxdWVzdDogQ3JlYXRpdmVBc3NldE9wdGltaXphdGlvblJlcXVlc3QsIHJlcUlkPzogc3RyaW5nLCB0b2tlbj86IHN0cmluZywgb2JzZXJ2ZTogYW55ID0gJ2JvZHknLCByZXBvcnRQcm9ncmVzczogYm9vbGVhbiA9IGZhbHNlICk6IE9ic2VydmFibGU8YW55PiB7XG5cbiAgICAgICAgaWYgKHJlcXVlc3QgPT09IG51bGwgfHwgcmVxdWVzdCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1JlcXVpcmVkIHBhcmFtZXRlciByZXF1ZXN0IHdhcyBudWxsIG9yIHVuZGVmaW5lZCB3aGVuIGNhbGxpbmcgc2F2ZVVzaW5nUE9TVC4nKTtcbiAgICAgICAgfVxuXG5cblxuICAgICAgICBsZXQgaGVhZGVycyA9IHRoaXMuZGVmYXVsdEhlYWRlcnM7XG4gICAgICAgIGlmIChyZXFJZCAhPT0gdW5kZWZpbmVkICYmIHJlcUlkICE9PSBudWxsKSB7XG4gICAgICAgICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoJ3JlcUlkJywgU3RyaW5nKHJlcUlkKSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRva2VuICE9PSB1bmRlZmluZWQgJiYgdG9rZW4gIT09IG51bGwpIHtcbiAgICAgICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgndG9rZW4nLCBTdHJpbmcodG9rZW4pKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHRvIGRldGVybWluZSB0aGUgQWNjZXB0IGhlYWRlclxuICAgICAgICBsZXQgaHR0cEhlYWRlckFjY2VwdHM6IHN0cmluZ1tdID0gW1xuICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nXG4gICAgICAgIF07XG4gICAgICAgIGNvbnN0IGh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZDogc3RyaW5nIHwgdW5kZWZpbmVkID0gdGhpcy5jb25maWd1cmF0aW9uLnNlbGVjdEhlYWRlckFjY2VwdChodHRwSGVhZGVyQWNjZXB0cyk7XG4gICAgICAgIGlmIChodHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQgIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoJ0FjY2VwdCcsIGh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyB0byBkZXRlcm1pbmUgdGhlIENvbnRlbnQtVHlwZSBoZWFkZXJcbiAgICAgICAgY29uc3QgY29uc3VtZXM6IHN0cmluZ1tdID0gW1xuICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nXG4gICAgICAgIF07XG4gICAgICAgIGNvbnN0IGh0dHBDb250ZW50VHlwZVNlbGVjdGVkOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB0aGlzLmNvbmZpZ3VyYXRpb24uc2VsZWN0SGVhZGVyQ29udGVudFR5cGUoY29uc3VtZXMpO1xuICAgICAgICBpZiAoaHR0cENvbnRlbnRUeXBlU2VsZWN0ZWQgIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoJ0NvbnRlbnQtVHlwZScsIGh0dHBDb250ZW50VHlwZVNlbGVjdGVkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucG9zdDx7IFtrZXk6IHN0cmluZ106IG51bWJlcjsgfT4oYCR7dGhpcy5iYXNlUGF0aH0vdjIvYXBpL2NyZWF0aXZlc2V0cy92Mi9zYXZlYCxcbiAgICAgICAgICAgIHJlcXVlc3QsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0aGlzLmNvbmZpZ3VyYXRpb24ud2l0aENyZWRlbnRpYWxzLFxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IGhlYWRlcnMsXG4gICAgICAgICAgICAgICAgb2JzZXJ2ZTogb2JzZXJ2ZSxcbiAgICAgICAgICAgICAgICByZXBvcnRQcm9ncmVzczogcmVwb3J0UHJvZ3Jlc3NcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBVcGxvYWQgdGhlIG9yaWdpbmFsIGFzc2V0IG9ubHkg4oCUIHBlcnNpc3RzIGl0LCBkZXRlY3RzIGl0cyBkaW1lbnNpb25zLCBhbmQgcmV0dXJucyBhIG1lZGlhSWQuIENhbGxlZCBzaWxlbnRseSBpbiB0aGUgYmFja2dyb3VuZCB3aGlsZSB0aGUgdXNlciBmaWxscyBvdXQgdGhlIHJlc3Qgb2YgdGhlIGNyZWF0aXZlIGZvcm07IGRvZXMgbm90IGNyZWF0ZSBhIGpvYiBvciB0b3VjaCB0aGUgZGF0YWJhc2UmIzM5O3MgQ3JlYXRpdmUvQ3JlYXRpdmVTZXRzIHRhYmxlcy5cbiAgICAgKiBcbiAgICAgKiBAcGFyYW0gYWR2ZXJ0aXNlcklkIGFkdmVydGlzZXJJZFxuICAgICAqIEBwYXJhbSBjcmVhdGl2ZVNldFR5cGUgY3JlYXRpdmVTZXRUeXBlXG4gICAgICogQHBhcmFtIGZpbGUgZmlsZVxuICAgICAqIEBwYXJhbSByZXFJZCByZXF1ZXN0IGlkXG4gICAgICogQHBhcmFtIHRva2VuIEF1dGggVG9rZW5cbiAgICAgKiBAcGFyYW0gb2JzZXJ2ZSBzZXQgd2hldGhlciBvciBub3QgdG8gcmV0dXJuIHRoZSBkYXRhIE9ic2VydmFibGUgYXMgdGhlIGJvZHksIHJlc3BvbnNlIG9yIGV2ZW50cy4gZGVmYXVsdHMgdG8gcmV0dXJuaW5nIHRoZSBib2R5LlxuICAgICAqIEBwYXJhbSByZXBvcnRQcm9ncmVzcyBmbGFnIHRvIHJlcG9ydCByZXF1ZXN0IGFuZCByZXNwb25zZSBwcm9ncmVzcy5cbiAgICAgKi9cbiAgICBwdWJsaWMgdXBsb2FkVXNpbmdQT1NUKGFkdmVydGlzZXJJZDogYW55LCBjcmVhdGl2ZVNldFR5cGU6IGFueSwgZmlsZTogQmxvYiwgcmVxSWQ/OiBzdHJpbmcsIHRva2VuPzogc3RyaW5nLCBvYnNlcnZlPzogJ2JvZHknLCByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPENyZWF0aXZlQXNzZXRVcGxvYWRSZXNwb25zZT47XG4gICAgcHVibGljIHVwbG9hZFVzaW5nUE9TVChhZHZlcnRpc2VySWQ6IGFueSwgY3JlYXRpdmVTZXRUeXBlOiBhbnksIGZpbGU6IEJsb2IsIHJlcUlkPzogc3RyaW5nLCB0b2tlbj86IHN0cmluZywgb2JzZXJ2ZT86ICdyZXNwb25zZScsIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbik6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPENyZWF0aXZlQXNzZXRVcGxvYWRSZXNwb25zZT4+O1xuICAgIHB1YmxpYyB1cGxvYWRVc2luZ1BPU1QoYWR2ZXJ0aXNlcklkOiBhbnksIGNyZWF0aXZlU2V0VHlwZTogYW55LCBmaWxlOiBCbG9iLCByZXFJZD86IHN0cmluZywgdG9rZW4/OiBzdHJpbmcsIG9ic2VydmU/OiAnZXZlbnRzJywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8Q3JlYXRpdmVBc3NldFVwbG9hZFJlc3BvbnNlPj47XG4gICAgcHVibGljIHVwbG9hZFVzaW5nUE9TVChhZHZlcnRpc2VySWQ6IGFueSwgY3JlYXRpdmVTZXRUeXBlOiBhbnksIGZpbGU6IEJsb2IsIHJlcUlkPzogc3RyaW5nLCB0b2tlbj86IHN0cmluZywgb2JzZXJ2ZTogYW55ID0gJ2JvZHknLCByZXBvcnRQcm9ncmVzczogYm9vbGVhbiA9IGZhbHNlICk6IE9ic2VydmFibGU8YW55PiB7XG5cbiAgICAgICAgaWYgKGFkdmVydGlzZXJJZCA9PT0gbnVsbCB8fCBhZHZlcnRpc2VySWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdSZXF1aXJlZCBwYXJhbWV0ZXIgYWR2ZXJ0aXNlcklkIHdhcyBudWxsIG9yIHVuZGVmaW5lZCB3aGVuIGNhbGxpbmcgdXBsb2FkVXNpbmdQT1NULicpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNyZWF0aXZlU2V0VHlwZSA9PT0gbnVsbCB8fCBjcmVhdGl2ZVNldFR5cGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdSZXF1aXJlZCBwYXJhbWV0ZXIgY3JlYXRpdmVTZXRUeXBlIHdhcyBudWxsIG9yIHVuZGVmaW5lZCB3aGVuIGNhbGxpbmcgdXBsb2FkVXNpbmdQT1NULicpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGZpbGUgPT09IG51bGwgfHwgZmlsZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1JlcXVpcmVkIHBhcmFtZXRlciBmaWxlIHdhcyBudWxsIG9yIHVuZGVmaW5lZCB3aGVuIGNhbGxpbmcgdXBsb2FkVXNpbmdQT1NULicpO1xuICAgICAgICB9XG5cblxuXG4gICAgICAgIGxldCBoZWFkZXJzID0gdGhpcy5kZWZhdWx0SGVhZGVycztcbiAgICAgICAgaWYgKHJlcUlkICE9PSB1bmRlZmluZWQgJiYgcmVxSWQgIT09IG51bGwpIHtcbiAgICAgICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgncmVxSWQnLCBTdHJpbmcocmVxSWQpKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodG9rZW4gIT09IHVuZGVmaW5lZCAmJiB0b2tlbiAhPT0gbnVsbCkge1xuICAgICAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KCd0b2tlbicsIFN0cmluZyh0b2tlbikpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gdG8gZGV0ZXJtaW5lIHRoZSBBY2NlcHQgaGVhZGVyXG4gICAgICAgIGxldCBodHRwSGVhZGVyQWNjZXB0czogc3RyaW5nW10gPSBbXG4gICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbidcbiAgICAgICAgXTtcbiAgICAgICAgY29uc3QgaHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB0aGlzLmNvbmZpZ3VyYXRpb24uc2VsZWN0SGVhZGVyQWNjZXB0KGh0dHBIZWFkZXJBY2NlcHRzKTtcbiAgICAgICAgaWYgKGh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZCAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgnQWNjZXB0JywgaHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHRvIGRldGVybWluZSB0aGUgQ29udGVudC1UeXBlIGhlYWRlclxuICAgICAgICBjb25zdCBjb25zdW1lczogc3RyaW5nW10gPSBbXG4gICAgICAgICAgICAnbXVsdGlwYXJ0L2Zvcm0tZGF0YSdcbiAgICAgICAgXTtcblxuICAgICAgICBjb25zdCBjYW5Db25zdW1lRm9ybSA9IHRoaXMuY2FuQ29uc3VtZUZvcm0oY29uc3VtZXMpO1xuXG4gICAgICAgIGxldCBmb3JtUGFyYW1zOiB7IGFwcGVuZChwYXJhbTogc3RyaW5nLCB2YWx1ZTogYW55KTogdm9pZCB8IEh0dHBQYXJhbXM7IH07XG4gICAgICAgIGxldCB1c2VGb3JtID0gZmFsc2U7XG4gICAgICAgIGxldCBjb252ZXJ0Rm9ybVBhcmFtc1RvU3RyaW5nID0gZmFsc2U7XG4gICAgICAgIC8vIHVzZSBGb3JtRGF0YSB0byB0cmFuc21pdCBmaWxlcyB1c2luZyBjb250ZW50LXR5cGUgXCJtdWx0aXBhcnQvZm9ybS1kYXRhXCJcbiAgICAgICAgLy8gc2VlIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzQwMDc5NjkvYXBwbGljYXRpb24teC13d3ctZm9ybS11cmxlbmNvZGVkLW9yLW11bHRpcGFydC1mb3JtLWRhdGFcbiAgICAgICAgdXNlRm9ybSA9IGNhbkNvbnN1bWVGb3JtO1xuICAgICAgICBpZiAodXNlRm9ybSkge1xuICAgICAgICAgICAgZm9ybVBhcmFtcyA9IG5ldyBGb3JtRGF0YSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZm9ybVBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKHtlbmNvZGVyOiBuZXcgQ3VzdG9tSHR0cFVybEVuY29kaW5nQ29kZWMoKX0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGFkdmVydGlzZXJJZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBmb3JtUGFyYW1zID0gZm9ybVBhcmFtcy5hcHBlbmQoJ2FkdmVydGlzZXJJZCcsIDxhbnk+YWR2ZXJ0aXNlcklkKSB8fCBmb3JtUGFyYW1zO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjcmVhdGl2ZVNldFR5cGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgZm9ybVBhcmFtcyA9IGZvcm1QYXJhbXMuYXBwZW5kKCdjcmVhdGl2ZVNldFR5cGUnLCA8YW55PmNyZWF0aXZlU2V0VHlwZSkgfHwgZm9ybVBhcmFtcztcbiAgICAgICAgfVxuICAgICAgICBpZiAoZmlsZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBmb3JtUGFyYW1zID0gZm9ybVBhcmFtcy5hcHBlbmQoJ2ZpbGUnLCA8YW55PmZpbGUpIHx8IGZvcm1QYXJhbXM7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3Q8Q3JlYXRpdmVBc3NldFVwbG9hZFJlc3BvbnNlPihgJHt0aGlzLmJhc2VQYXRofS92Mi9hcGkvY3JlYXRpdmVzZXRzL3YyL3VwbG9hZGAsXG4gICAgICAgICAgICBjb252ZXJ0Rm9ybVBhcmFtc1RvU3RyaW5nID8gZm9ybVBhcmFtcy50b1N0cmluZygpIDogZm9ybVBhcmFtcyxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRoaXMuY29uZmlndXJhdGlvbi53aXRoQ3JlZGVudGlhbHMsXG4gICAgICAgICAgICAgICAgaGVhZGVyczogaGVhZGVycyxcbiAgICAgICAgICAgICAgICBvYnNlcnZlOiBvYnNlcnZlLFxuICAgICAgICAgICAgICAgIHJlcG9ydFByb2dyZXNzOiByZXBvcnRQcm9ncmVzc1xuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH1cblxufVxuIl19
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpTGlzdFJlc3BvbnNlQ3JlYXRpdmVTaXplTWFwcGluZ0RUTy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL21vZGVsL2FwaUxpc3RSZXNwb25zZUNyZWF0aXZlU2l6ZU1hcHBpbmdEVE8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQXBpIERvY3VtZW50YXRpb25cbiAqIEFwaSBEb2N1bWVudGF0aW9uXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqL1xuaW1wb3J0IHsgQ3JlYXRpdmVTaXplTWFwcGluZ0RUTyB9IGZyb20gJy4vY3JlYXRpdmVTaXplTWFwcGluZ0RUTyc7XG5cblxuZXhwb3J0IGludGVyZmFjZSBBcGlMaXN0UmVzcG9uc2VDcmVhdGl2ZVNpemVNYXBwaW5nRFRPIHsgXG4gICAgZGF0YT86IEFycmF5PENyZWF0aXZlU2l6ZU1hcHBpbmdEVE8+O1xuICAgIHRvdGFsTm9PZlJlY29yZHM/OiBudW1iZXI7XG59XG4iXX0=
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXRTZWxlY3Rpb25EVE8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9tb2RlbC9hc3NldFNlbGVjdGlvbkRUTy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBBcGkgRG9jdW1lbnRhdGlvblxuICogQXBpIERvY3VtZW50YXRpb25cbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICovXG5pbXBvcnQgeyBFbmRDYXJkU2VsZWN0aW9uRFRPIH0gZnJvbSAnLi9lbmRDYXJkU2VsZWN0aW9uRFRPJztcbmltcG9ydCB7IFNlbGVjdGVkVGFyZ2V0RFRPIH0gZnJvbSAnLi9zZWxlY3RlZFRhcmdldERUTyc7XG5cblxuZXhwb3J0IGludGVyZmFjZSBBc3NldFNlbGVjdGlvbkRUTyB7IFxuICAgIGVuZENhcmQ/OiBFbmRDYXJkU2VsZWN0aW9uRFRPO1xuICAgIHNlbGVjdGVkVGFyZ2V0cz86IEFycmF5PFNlbGVjdGVkVGFyZ2V0RFRPPjtcbiAgICB1cGxvYWRJZD86IG51bWJlcjtcbn1cbiJdfQ==
@@ -1,23 +0,0 @@
1
- export var CreativeAssetOptimizationRequest;
2
- (function (CreativeAssetOptimizationRequest) {
3
- CreativeAssetOptimizationRequest.CreativeSetTypeEnum = {
4
- IMAGE: 'IMAGE',
5
- VIDEO: 'VIDEO',
6
- THIRDPARTYADTAGS: 'THIRD_PARTY_AD_TAGS',
7
- ZIPPEDHTML: 'ZIPPED_HTML',
8
- NATIVEIMAGE: 'NATIVE_IMAGE',
9
- NATIVEVIDEO: 'NATIVE_VIDEO',
10
- DYNAMICIMAGE: 'DYNAMIC_IMAGE',
11
- DYNAMICMACRO: 'DYNAMIC_MACRO',
12
- DYNAMICHTML: 'DYNAMIC_HTML',
13
- DYNAMICVIDEO: 'DYNAMIC_VIDEO',
14
- HYBRIDSTATICAD: 'HYBRID_STATIC_AD',
15
- HYBRIDDYNAMICAD: 'HYBRID_DYNAMIC_AD',
16
- THIRDPARTYVIDEOADTAGS: 'THIRD_PARTY_VIDEO_AD_TAGS',
17
- NATIVEICON: 'NATIVE_ICON',
18
- ICON: 'ICON',
19
- CTVVIDEO: 'CTV_VIDEO',
20
- PLAYABLE: 'PLAYABLE'
21
- };
22
- })(CreativeAssetOptimizationRequest || (CreativeAssetOptimizationRequest = {}));
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRpdmVBc3NldE9wdGltaXphdGlvblJlcXVlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9tb2RlbC9jcmVhdGl2ZUFzc2V0T3B0aW1pemF0aW9uUmVxdWVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFxQkEsTUFBTSxLQUFXLGdDQUFnQyxDQXFCaEQ7QUFyQkQsV0FBaUIsZ0NBQWdDO0lBRWhDLG9EQUFtQixHQUFHO1FBQy9CLEtBQUssRUFBRSxPQUE4QjtRQUNyQyxLQUFLLEVBQUUsT0FBOEI7UUFDckMsZ0JBQWdCLEVBQUUscUJBQTRDO1FBQzlELFVBQVUsRUFBRSxhQUFvQztRQUNoRCxXQUFXLEVBQUUsY0FBcUM7UUFDbEQsV0FBVyxFQUFFLGNBQXFDO1FBQ2xELFlBQVksRUFBRSxlQUFzQztRQUNwRCxZQUFZLEVBQUUsZUFBc0M7UUFDcEQsV0FBVyxFQUFFLGNBQXFDO1FBQ2xELFlBQVksRUFBRSxlQUFzQztRQUNwRCxjQUFjLEVBQUUsa0JBQXlDO1FBQ3pELGVBQWUsRUFBRSxtQkFBMEM7UUFDM0QscUJBQXFCLEVBQUUsMkJBQWtEO1FBQ3pFLFVBQVUsRUFBRSxhQUFvQztRQUNoRCxJQUFJLEVBQUUsTUFBNkI7UUFDbkMsUUFBUSxFQUFFLFdBQWtDO1FBQzVDLFFBQVEsRUFBRSxVQUFpQztLQUM5QyxDQUFDO0FBQ04sQ0FBQyxFQXJCZ0IsZ0NBQWdDLEtBQWhDLGdDQUFnQyxRQXFCaEQiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEFwaSBEb2N1bWVudGF0aW9uXG4gKiBBcGkgRG9jdW1lbnRhdGlvblxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKi9cbmltcG9ydCB7IEFzc2V0U2VsZWN0aW9uRFRPIH0gZnJvbSAnLi9hc3NldFNlbGVjdGlvbkRUTyc7XG5pbXBvcnQgeyBDcmVhdGl2ZVNldFJlcXVlc3QgfSBmcm9tICcuL2NyZWF0aXZlU2V0UmVxdWVzdCc7XG5cblxuZXhwb3J0IGludGVyZmFjZSBDcmVhdGl2ZUFzc2V0T3B0aW1pemF0aW9uUmVxdWVzdCB7IFxuICAgIGFkdmVydGlzZXJJZD86IG51bWJlcjtcbiAgICBhc3NldHM/OiBBcnJheTxBc3NldFNlbGVjdGlvbkRUTz47XG4gICAgY3JlYXRpdmVTZXRSZXF1ZXN0PzogQ3JlYXRpdmVTZXRSZXF1ZXN0O1xuICAgIGNyZWF0aXZlU2V0VHlwZT86IENyZWF0aXZlQXNzZXRPcHRpbWl6YXRpb25SZXF1ZXN0LkNyZWF0aXZlU2V0VHlwZUVudW07XG59XG5leHBvcnQgbmFtZXNwYWNlIENyZWF0aXZlQXNzZXRPcHRpbWl6YXRpb25SZXF1ZXN0IHtcbiAgICBleHBvcnQgdHlwZSBDcmVhdGl2ZVNldFR5cGVFbnVtID0gJ0lNQUdFJyB8ICdWSURFTycgfCAnVEhJUkRfUEFSVFlfQURfVEFHUycgfCAnWklQUEVEX0hUTUwnIHwgJ05BVElWRV9JTUFHRScgfCAnTkFUSVZFX1ZJREVPJyB8ICdEWU5BTUlDX0lNQUdFJyB8ICdEWU5BTUlDX01BQ1JPJyB8ICdEWU5BTUlDX0hUTUwnIHwgJ0RZTkFNSUNfVklERU8nIHwgJ0hZQlJJRF9TVEFUSUNfQUQnIHwgJ0hZQlJJRF9EWU5BTUlDX0FEJyB8ICdUSElSRF9QQVJUWV9WSURFT19BRF9UQUdTJyB8ICdOQVRJVkVfSUNPTicgfCAnSUNPTicgfCAnQ1RWX1ZJREVPJyB8ICdQTEFZQUJMRSc7XG4gICAgZXhwb3J0IGNvbnN0IENyZWF0aXZlU2V0VHlwZUVudW0gPSB7XG4gICAgICAgIElNQUdFOiAnSU1BR0UnIGFzIENyZWF0aXZlU2V0VHlwZUVudW0sXG4gICAgICAgIFZJREVPOiAnVklERU8nIGFzIENyZWF0aXZlU2V0VHlwZUVudW0sXG4gICAgICAgIFRISVJEUEFSVFlBRFRBR1M6ICdUSElSRF9QQVJUWV9BRF9UQUdTJyBhcyBDcmVhdGl2ZVNldFR5cGVFbnVtLFxuICAgICAgICBaSVBQRURIVE1MOiAnWklQUEVEX0hUTUwnIGFzIENyZWF0aXZlU2V0VHlwZUVudW0sXG4gICAgICAgIE5BVElWRUlNQUdFOiAnTkFUSVZFX0lNQUdFJyBhcyBDcmVhdGl2ZVNldFR5cGVFbnVtLFxuICAgICAgICBOQVRJVkVWSURFTzogJ05BVElWRV9WSURFTycgYXMgQ3JlYXRpdmVTZXRUeXBlRW51bSxcbiAgICAgICAgRFlOQU1JQ0lNQUdFOiAnRFlOQU1JQ19JTUFHRScgYXMgQ3JlYXRpdmVTZXRUeXBlRW51bSxcbiAgICAgICAgRFlOQU1JQ01BQ1JPOiAnRFlOQU1JQ19NQUNSTycgYXMgQ3JlYXRpdmVTZXRUeXBlRW51bSxcbiAgICAgICAgRFlOQU1JQ0hUTUw6ICdEWU5BTUlDX0hUTUwnIGFzIENyZWF0aXZlU2V0VHlwZUVudW0sXG4gICAgICAgIERZTkFNSUNWSURFTzogJ0RZTkFNSUNfVklERU8nIGFzIENyZWF0aXZlU2V0VHlwZUVudW0sXG4gICAgICAgIEhZQlJJRFNUQVRJQ0FEOiAnSFlCUklEX1NUQVRJQ19BRCcgYXMgQ3JlYXRpdmVTZXRUeXBlRW51bSxcbiAgICAgICAgSFlCUklERFlOQU1JQ0FEOiAnSFlCUklEX0RZTkFNSUNfQUQnIGFzIENyZWF0aXZlU2V0VHlwZUVudW0sXG4gICAgICAgIFRISVJEUEFSVFlWSURFT0FEVEFHUzogJ1RISVJEX1BBUlRZX1ZJREVPX0FEX1RBR1MnIGFzIENyZWF0aXZlU2V0VHlwZUVudW0sXG4gICAgICAgIE5BVElWRUlDT046ICdOQVRJVkVfSUNPTicgYXMgQ3JlYXRpdmVTZXRUeXBlRW51bSxcbiAgICAgICAgSUNPTjogJ0lDT04nIGFzIENyZWF0aXZlU2V0VHlwZUVudW0sXG4gICAgICAgIENUVlZJREVPOiAnQ1RWX1ZJREVPJyBhcyBDcmVhdGl2ZVNldFR5cGVFbnVtLFxuICAgICAgICBQTEFZQUJMRTogJ1BMQVlBQkxFJyBhcyBDcmVhdGl2ZVNldFR5cGVFbnVtXG4gICAgfTtcbn1cbiJdfQ==
@@ -1,20 +0,0 @@
1
- /**
2
- * Api Documentation
3
- * Api Documentation
4
- *
5
- * OpenAPI spec version: 1.0
6
- *
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 var CreativeAssetUploadResponse;
13
- (function (CreativeAssetUploadResponse) {
14
- CreativeAssetUploadResponse.WarningCodeEnum = {
15
- INVALIDSIZE: 'INVALID_SIZE',
16
- ASPECTRATIOMISMATCH: 'ASPECT_RATIO_MISMATCH',
17
- LOWRESOLUTIONUPLOAD: 'LOW_RESOLUTION_UPLOAD'
18
- };
19
- })(CreativeAssetUploadResponse || (CreativeAssetUploadResponse = {}));
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRpdmVBc3NldFVwbG9hZFJlc3BvbnNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbW9kZWwvY3JlYXRpdmVBc3NldFVwbG9hZFJlc3BvbnNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7O0dBVUc7QUFVSCxNQUFNLEtBQVcsMkJBQTJCLENBTzNDO0FBUEQsV0FBaUIsMkJBQTJCO0lBRTNCLDJDQUFlLEdBQUc7UUFDM0IsV0FBVyxFQUFFLGNBQWlDO1FBQzlDLG1CQUFtQixFQUFFLHVCQUEwQztRQUMvRCxtQkFBbUIsRUFBRSx1QkFBMEM7S0FDbEUsQ0FBQztBQUNOLENBQUMsRUFQZ0IsMkJBQTJCLEtBQTNCLDJCQUEyQixRQU8zQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQXBpIERvY3VtZW50YXRpb25cbiAqIEFwaSBEb2N1bWVudGF0aW9uXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqL1xuXG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRpdmVBc3NldFVwbG9hZFJlc3BvbnNlIHsgXG4gICAgc291cmNlSGVpZ2h0PzogbnVtYmVyO1xuICAgIHNvdXJjZVdpZHRoPzogbnVtYmVyO1xuICAgIHVwbG9hZElkPzogbnVtYmVyO1xuICAgIHdhcm5pbmdDb2RlPzogQ3JlYXRpdmVBc3NldFVwbG9hZFJlc3BvbnNlLldhcm5pbmdDb2RlRW51bTtcbiAgICB3YXJuaW5nTWVzc2FnZT86IHN0cmluZztcbn1cbmV4cG9ydCBuYW1lc3BhY2UgQ3JlYXRpdmVBc3NldFVwbG9hZFJlc3BvbnNlIHtcbiAgICBleHBvcnQgdHlwZSBXYXJuaW5nQ29kZUVudW0gPSAnSU5WQUxJRF9TSVpFJyB8ICdBU1BFQ1RfUkFUSU9fTUlTTUFUQ0gnIHwgJ0xPV19SRVNPTFVUSU9OX1VQTE9BRCc7XG4gICAgZXhwb3J0IGNvbnN0IFdhcm5pbmdDb2RlRW51bSA9IHtcbiAgICAgICAgSU5WQUxJRFNJWkU6ICdJTlZBTElEX1NJWkUnIGFzIFdhcm5pbmdDb2RlRW51bSxcbiAgICAgICAgQVNQRUNUUkFUSU9NSVNNQVRDSDogJ0FTUEVDVF9SQVRJT19NSVNNQVRDSCcgYXMgV2FybmluZ0NvZGVFbnVtLFxuICAgICAgICBMT1dSRVNPTFVUSU9OVVBMT0FEOiAnTE9XX1JFU09MVVRJT05fVVBMT0FEJyBhcyBXYXJuaW5nQ29kZUVudW1cbiAgICB9O1xufVxuIl19