diff --git a/management/campaign.yaml b/management/campaign.yaml index 35c264a..4fda3e1 100644 --- a/management/campaign.yaml +++ b/management/campaign.yaml @@ -41,57 +41,7 @@ paths: content: application/json: schema: - type: object - required: - - AdvertiserId - - Name - - StartDateISO - properties: - AdvertiserId: - type: integer - format: int32 - Name: - type: string - IsActive: - type: boolean - nullable: true - IsDeleted: - type: boolean - default: false - nullable: true - IsArchived: - type: boolean - default: false - nullable: true - FreqCap: - type: integer - format: int32 - nullable: true - FreqCapDuration: - type: integer - format: int32 - nullable: true - FreqCapType: - type: integer - format: int32 - enum: [1, 2, 3] - nullable: true - DontAffectParentFreqCap: - type: boolean - nullable: true - CapType: - type: integer - format: int32 - nullable: true - default: 4 - DailyCapAmount: - type: integer - format: int32 - nullable: true - LifetimeCapAmount: - type: integer - format: int32 - nullable: true + $ref: './schemas/campaign.yaml#/schemas/Campaign' responses: 200: description: Campaign Created diff --git a/management/creative.yaml b/management/creative.yaml index 7ae1686..e295b2b 100644 --- a/management/creative.yaml +++ b/management/creative.yaml @@ -21,7 +21,7 @@ paths: content: application/json: schema: - $ref: './schemas/creative.yaml#/schemas/CreativeInput' + $ref: './schemas/creative.yaml#/schemas/Creative' responses: 200: description: Creative Created diff --git a/management/flight.yaml b/management/flight.yaml index 83bbb43..23d4e12 100644 --- a/management/flight.yaml +++ b/management/flight.yaml @@ -436,7 +436,7 @@ paths: content: application/json: schema: - $ref: './schemas/flight.yaml#/schemas/FlightInput' + $ref: './schemas/flight.yaml#/schemas/Flight' responses: 200: description: Flight Created diff --git a/management/schemas/campaign.yaml b/management/schemas/campaign.yaml index 495e1d2..85fb748 100644 --- a/management/schemas/campaign.yaml +++ b/management/schemas/campaign.yaml @@ -1,26 +1,18 @@ schemas: - Campaign: + CampaignBase: type: object required: - AdvertiserId - Name - - StartDate properties: AdvertiserId: type: integer format: int32 Name: type: string - StartDate: - type: string - default: 1/1/2018 - deprecated: true - Flights: - type: array - items: - type: object - nullable: true + minLength: 1 + maxLength: 200 IsActive: type: boolean default: false @@ -34,14 +26,17 @@ schemas: FreqCap: type: integer format: int32 + minimum: 1 nullable: true FreqCapDuration: type: integer format: int32 + minimum: 1 nullable: true FreqCapType: type: integer format: int32 + enum: [1, 2, 3] nullable: true DontAffectParentFreqCap: type: boolean @@ -49,14 +44,17 @@ schemas: CapType: type: integer format: int32 + enum: [4] nullable: true DailyCapAmount: type: integer format: int32 + minimum: 0 nullable: true LifetimeCapAmount: type: integer format: int32 + minimum: 0 nullable: true Id: type: integer @@ -71,34 +69,55 @@ schemas: IsFreqCap: type: boolean nullable: true - EndDateISO: - type: string - deprecated: true - nullable: true - Price: - type: number - deprecated: true - nullable: true - StartDateISO: - type: string - nullable: true - deprecated: true - Created: - type: string - format: date-time - nullable: true - LastModified: - type: string - format: date-time - nullable: true - Version: - type: integer - format: int32 - nullable: true - SalespersonId: - type: integer - format: int32 - nullable: true + + Campaign: + allOf: + - $ref: '#/schemas/CampaignBase' + - type: object + required: + - CampaignId + - StartDate + properties: + SalespersonId: + type: integer + format: int32 + nullable: true + StartDate: + type: string + default: 1/1/2018 + deprecated: true + Flights: + type: array + items: + type: object + nullable: true + EndDateISO: + type: string + deprecated: true + nullable: true + Price: + type: number + deprecated: true + nullable: true + StartDateISO: + type: string + nullable: true + deprecated: true + Created: + type: string + format: date-time + nullable: true + readOnly: true + LastModified: + type: string + format: date-time + nullable: true + readOnly: true + Version: + type: integer + format: int32 + nullable: true + readOnly: true CampaignList: type: object @@ -127,62 +146,15 @@ schemas: type: string NestedCampaignInput: - type: object - required: - - AdvertiserId - - Name - properties: - AdvertiserId: - type: integer - format: int32 - Name: - type: string - minLength: 1 - maxLength: 200 - IsActive: - type: boolean - default: false - CapType: - type: integer - format: int32 - enum: [4] - nullable: true - DailyCapAmount: - type: integer - format: int32 - minimum: 0 - nullable: true - LifetimeCapAmount: - type: integer - format: int32 - minimum: 0 - nullable: true - FreqCapType: - type: integer - format: int32 - enum: [1, 2, 3] - nullable: true - FreqCap: - type: integer - format: int32 - minimum: 1 - nullable: true - FreqCapDuration: - type: integer - format: int32 - minimum: 1 - nullable: true - DontAffectParentFreqCap: - type: boolean - nullable: true - CustomFieldsJSON: - type: string - nullable: true - Flights: - type: array - nullable: true - items: - $ref: './flight.yaml#/schemas/NestedFlightInput' + allOf: + - $ref: '#/schemas/CampaignBase' + - type: object + properties: + Flights: + type: array + nullable: true + items: + $ref: './flight.yaml#/schemas/NestedFlightInput' NestedCampaignOutput: type: object diff --git a/management/schemas/creative.yaml b/management/schemas/creative.yaml index 77f4de3..68b9c02 100644 --- a/management/schemas/creative.yaml +++ b/management/schemas/creative.yaml @@ -1,27 +1,20 @@ schemas: - - Creative: + CreativeBase: type: object required: - - AdvertiserId - AdTypeId - IsActive properties: - AdvertiserId: + Id: type: integer format: int32 - nullable: true + readOnly: true AdTypeId: type: integer format: int32 - nullable: true IsActive: type: boolean - nullable: true - Id: - type: integer - format: int32 - nullable: true + default: false Title: type: string nullable: true @@ -31,22 +24,18 @@ schemas: Body: type: string nullable: true - default: "" Url: type: string - format: uri - maxLength: 2000 nullable: true + format: url Alt: type: string nullable: true IsDeleted: type: boolean - default: false nullable: true IsHTMLJS: type: boolean - default: false nullable: true ScriptBody: type: string @@ -59,7 +48,6 @@ schemas: nullable: true SaveEmptyCreative: type: boolean - default: false nullable: true IsNoTrack: type: boolean @@ -75,6 +63,17 @@ schemas: type: string nullable: true + Creative: + allOf: + - $ref: '#/schemas/CreativeBase' + - type: object + required: + - AdvertiserId + properties: + AdvertiserId: + type: integer + format: int32 + CreativeList: type: object properties: @@ -95,129 +94,9 @@ schemas: items: $ref: '#/schemas/Creative' - CreativeInput: - type: object - required: - - AdvertiserId - - AdTypeId - - IsActive - properties: - AdvertiserId: - type: integer - format: int32 - AdTypeId: - type: integer - format: int32 - IsActive: - type: boolean - default: false - Title: - type: string - nullable: true - ImageName: - type: string - nullable: true - Body: - type: string - nullable: true - Url: - type: string - nullable: true - format: url - Alt: - type: string - nullable: true - IsDeleted: - type: boolean - nullable: true - IsHTMLJS: - type: boolean - nullable: true - ScriptBody: - type: string - nullable: true - Metadata: - type: string - nullable: true - ImageLink: - type: string - nullable: true - SaveEmptyCreative: - type: boolean - nullable: true - IsNoTrack: - type: boolean - nullable: true - IsNetworkAd: - type: boolean - nullable: true - TemplateId: - type: integer - format: int32 - nullable: true - TemplateValues: - type: string - nullable: true - NestedCreativeInput: - type: object - required: - - AdTypeId - - IsActive - properties: - AdTypeId: - type: integer - format: int32 - IsActive: - type: boolean - default: false - Title: - type: string - nullable: true - ImageName: - type: string - nullable: true - Body: - type: string - nullable: true - Url: - type: string - nullable: true - format: url - Alt: - type: string - nullable: true - IsDeleted: - type: boolean - nullable: true - IsHTMLJS: - type: boolean - nullable: true - ScriptBody: - type: string - nullable: true - Metadata: - type: string - nullable: true - ImageLink: - type: string - nullable: true - SaveEmptyCreative: - type: boolean - nullable: true - IsNoTrack: - type: boolean - nullable: true - IsNetworkAd: - type: boolean - nullable: true - TemplateId: - type: integer - format: int32 - nullable: true - TemplateValues: - type: string - nullable: true + allOf: + - $ref: '#/schemas/CreativeBase' NestedCreativeOutput: type: object diff --git a/management/schemas/flight.yaml b/management/schemas/flight.yaml index 6b39cb6..e93a9b3 100644 --- a/management/schemas/flight.yaml +++ b/management/schemas/flight.yaml @@ -1,509 +1,5 @@ schemas: - Flight: - type: object - required: - - Name - - StartDateISO - - CampaignId - - PriorityId - - GoalType - - Impressions - - IsActive - properties: - Name: - type: string - StartDateISO: - type: string - format: date-time - CampaignId: - type: integer - format: int32 - PriorityId: - type: integer - format: int32 - GoalType: - type: integer - format: int32 - Impressions: - type: integer - format: int32 - IsActive: - type: boolean - default: false - Id: - type: integer - format: int32 - nullable: true - EndDateISO: - type: string - format: date-time - nullable: true - NoEndDate: - type: boolean - default: false - nullable: true - IsDeleted: - type: boolean - default: false - RateType: - type: integer - format: int32 - nullable: true - Price: - type: number - format: float - nullable: true - CapType: - type: integer - format: int32 - nullable: true - DailyCapAmount: - type: integer - format: int32 - nullable: true - DailyCapAmountDecimal: - type: number - format: float - nullable: true - LifetimeCapAmount: - type: integer - format: int32 - nullable: true - LifetimeCapAmountDecimal: - type: number - format: float - nullable: true - Keywords: - type: string - nullable: true - CustomTargeting: - type: string - nullable: true - CustomFieldsJson: - type: string - nullable: true - IsFreqCap: - type: boolean - nullable: true - FreqCap: - type: integer - format: int32 - nullable: true - FreqCapDuration: - type: integer - format: int32 - nullable: true - FreqCapType: - type: integer - format: int32 - nullable: true - DontAffectParentFreqCap: - type: boolean - nullable: true - IsCompanion: - type: boolean - nullable: true - IsNoDuplicates: - type: boolean - nullable: true - DuplicateMode: - type: integer - format: int32 - nullable: true - DeliveryStatus: - type: integer - format: int32 - nullable: true - IsTrackingConversions: - type: boolean - nullable: true - CanPassback: - type: boolean - nullable: true - PassbackSortOrder: - type: integer - format: int32 - nullable: true - IsECPMOptimized: - type: boolean - nullable: true - ECPMOptimizePeriod: - type: integer - format: int32 - nullable: true - ECPMMultiplier: - type: number - format: float - nullable: true - FloorECPM: - type: number - format: float - nullable: true - CeilingECPM: - type: number - format: float - nullable: true - DefaultECPM: - type: number - format: float - nullable: true - ECPMBurnInImpressions: - type: integer - format: int32 - nullable: true - EffectiveCPMOverride: - type: number - format: float - nullable: true - DatePartingStartTimeISO: - type: string - format: date-time - nullable: true - DatePartingEndTimeISO: - type: string - format: date-time - nullable: true - IsSunday: - type: boolean - nullable: true - IsMonday: - type: boolean - nullable: true - IsTuesday: - type: boolean - nullable: true - IsWednesday: - type: boolean - nullable: true - IsThursday: - type: boolean - nullable: true - IsFriday: - type: boolean - nullable: true - IsSaturday: - type: boolean - nullable: true - IsArchived: - type: boolean - nullable: true - BehavioralTargeting: - $ref: '#/schemas/BehavioralTarget' - GeoTargeting: - type: array - nullable: true - items: - $ref: './geo-target.yaml#/schemas/GeoTarget' - SiteZoneTargeting: - type: array - nullable: true - items: - $ref: './site-zone.yaml#/schemas/SiteZone' - RequireStrictLocation: - type: boolean - nullable: true - CreativeMaps: - type: array - nullable: true - items: - $ref: './ad.yaml#/schemas/Ad' - IsTargetingOptimization: - type: boolean - nullable: true - deprecated: true - TargetingOptimizationType: - type: integer - format: int32 - nullable: true - deprecated: true - TargetingOptimizationTargetType: - type: integer - format: int32 - nullable: true - deprecated: true - TargetingOptimizationTarget: - type: number - format: float - nullable: true - deprecated: true - TargetingOptimizationBurnIn: - type: integer - format: int32 - nullable: true - deprecated: true - TargetingOptimizationCanMiss: - type: boolean - nullable: true - deprecated: true - AttributionClick: - type: object - nullable: true - required: - - MatchType - - LookbackWindow - AttributionView: - type: object - nullable: true - required: - - MatchType - - LookbackWindow - TargetROAS: - type: number - format: float - nullable: true - Created: - type: string - format: date-time - nullable: true - LastModified: - type: string - format: date-time - nullable: true - Version: - type: integer - format: int32 - nullable: true - - FlightInput: - type: object - required: - - Name - - StartDateISO - - CampaignId - - PriorityId - - GoalType - - Impressions - - IsActive - properties: - Name: - type: string - StartDateISO: - type: string - format: date-time - CampaignId: - type: integer - format: int32 - PriorityId: - type: integer - format: int32 - GoalType: - type: integer - format: int32 - enum: [1, 2, 3, 7, 8, 9, 10] - Impressions: - type: integer - format: int32 - IsActive: - type: boolean - default: false - EndDateISO: - type: string - format: date-time - nullable: true - IsDeleted: - type: boolean - nullable: true - RateType: - type: integer - format: int32 - enum: [1, 2, 3, 4, 5, 6] - nullable: true - Price: - type: number - format: float - nullable: true - CapType: - type: integer - format: int32 - enum: [1, 2, 3, 4] - nullable: true - DailyCapAmount: - type: integer - format: int32 - nullable: true - DailyCapAmountDecimal: - type: number - format: float - nullable: true - LifetimeCapAmount: - type: integer - format: int32 - nullable: true - LifetimeCapAmountDecimal: - type: number - format: float - nullable: true - Keywords: - type: string - nullable: true - CustomTargeting: - type: string - nullable: true - CustomFieldsJSON: - type: string - nullable: true - IsFreqCap: - type: boolean - nullable: true - FreqCap: - type: integer - format: int32 - nullable: true - FreqCapDuration: - type: integer - format: int32 - nullable: true - FreqCapType: - type: integer - format: int32 - nullable: true - enum: [1, 2, 3] - DontAffectParentFreqCap: - type: boolean - nullable: true - IsCompanion: - type: boolean - nullable: true - IsNoDuplicates: - type: boolean - nullable: true - DuplicateMode: - type: integer - format: int32 - nullable: true - enum: [1, 2, 3, 4] - DeliveryStatus: - type: integer - format: int32 - nullable: true - enum: [1, 2, 3, 4, 5] - IsTrackingConversions: - type: boolean - nullable: true - CanPassback: - type: boolean - nullable: true - PassbackSortOrder: - type: integer - format: int32 - nullable: true - IsECPMOptimized: - type: boolean - nullable: true - ECPMOptimizePeriod: - type: integer - format: int32 - minimum: 1 - maximum: 90 - nullable: true - ECPMMultiplier: - type: number - format: float - nullable: true - FloorECPM: - type: number - format: float - nullable: true - CeilingECPM: - type: number - format: float - nullable: true - DefaultECPM: - type: number - format: float - nullable: true - ECPMBurnInImpressions: - type: integer - format: int32 - nullable: true - EffectiveCPMOverride: - type: number - format: float - nullable: true - DatePartingStartTimeISO: - type: string - format: date-time - nullable: true - DatePartingEndTimeISO: - type: string - format: date-time - nullable: true - IsSunday: - type: boolean - nullable: true - IsMonday: - type: boolean - nullable: true - IsTuesday: - type: boolean - nullable: true - IsWednesday: - type: boolean - nullable: true - IsThursday: - type: boolean - nullable: true - IsFriday: - type: boolean - nullable: true - IsSaturday: - type: boolean - nullable: true - IsArchived: - type: boolean - nullable: true - RequireStrictLocation: - type: boolean - nullable: true - TimeZone: - type: string - nullable: true - IsTargetingOptimization: - type: boolean - nullable: true - deprecated: true - TargetingOptimizationType: - type: integer - format: int32 - nullable: true - deprecated: true - TargetingOptimizationTargetType: - type: integer - format: int32 - nullable: true - deprecated: true - TargetingOptimizationTarget: - type: number - format: float - nullable: true - deprecated: true - TargetOptimizationBurnIn: - type: integer - format: int32 - nullable: true - deprecated: true - TargetingOptimizationCanMiss: - type: boolean - nullable: true - deprecated: true - AttributionClick: - type: object - nullable: true - required: - - MatchType - - LookbackWindow - AttributionView: - type: object - nullable: true - required: - - MatchType - - LookbackWindow - TargetROAS: - type: number - format: float - nullable: true - - NestedFlightInput: + FlightBase: type: object required: - Name @@ -531,17 +27,13 @@ schemas: IsActive: type: boolean default: false - Ads: - type: array - items: - $ref: './ad.yaml#/schemas/NestedAdInput' EndDateISO: type: string format: date-time nullable: true IsDeleted: type: boolean - nullable: true + default: false RateType: type: integer format: int32 @@ -578,7 +70,7 @@ schemas: CustomTargeting: type: string nullable: true - CustomFieldsJSON: + CustomFieldsJson: type: string nullable: true IsFreqCap: @@ -595,8 +87,8 @@ schemas: FreqCapType: type: integer format: int32 - nullable: true enum: [1, 2, 3] + nullable: true DontAffectParentFreqCap: type: boolean nullable: true @@ -609,13 +101,13 @@ schemas: DuplicateMode: type: integer format: int32 - nullable: true enum: [1, 2, 3, 4] + nullable: true DeliveryStatus: type: integer format: int32 - nullable: true enum: [1, 2, 3, 4, 5] + nullable: true IsTrackingConversions: type: boolean nullable: true @@ -694,9 +186,6 @@ schemas: RequireStrictLocation: type: boolean nullable: true - TimeZone: - type: string - nullable: true IsTargetingOptimization: type: boolean nullable: true @@ -716,7 +205,7 @@ schemas: format: float nullable: true deprecated: true - TargetOptimizationBurnIn: + TargetingOptimizationBurnIn: type: integer format: int32 nullable: true @@ -741,6 +230,57 @@ schemas: type: number format: float nullable: true + TimeZone: + type: string + nullable: true + + Flight: + allOf: + - $ref: '#/schemas/FlightBase' + - type: object + required: + - CampaignId + properties: + Id: + type: integer + format: int32 + readOnly: true + CampaignId: + type: integer + format: int32 + NoEndDate: + type: boolean + default: false + nullable: true + BehavioralTargeting: + $ref: '#/schemas/BehavioralTarget' + GeoTargeting: + type: array + nullable: true + items: + $ref: './geo-target.yaml#/schemas/GeoTarget' + SiteZoneTargeting: + type: array + nullable: true + items: + $ref: './site-zone.yaml#/schemas/SiteZone' + CreativeMaps: + type: array + nullable: true + items: + $ref: './ad.yaml#/schemas/Ad' + Created: + type: string + format: date-time + nullable: true + LastModified: + type: string + format: date-time + nullable: true + Version: + type: integer + format: int32 + nullable: true BehavioralTarget: type: object @@ -796,6 +336,16 @@ schemas: items: $ref: '#/schemas/Flight' + NestedFlightInput: + allOf: + - $ref: '#/schemas/FlightBase' + - type: object + properties: + Ads: + type: array + items: + $ref: './ad.yaml#/schemas/NestedAdInput' + NestedFlightOutput: type: object required: