diff --git a/.speakeasy/gen.lock b/.speakeasy/gen.lock index d54d788..8b620e0 100644 --- a/.speakeasy/gen.lock +++ b/.speakeasy/gen.lock @@ -1,20 +1,24 @@ lockVersion: 2.0.0 id: 3c41c678-4c1f-4986-aa2b-76f74444c11d management: - docChecksum: 5fbe9cf9b4771a94b0e44c55edfeb236 + docChecksum: a249a191a179e19425534a534c9df944 docVersion: v1 - speakeasyVersion: 1.659.0 - generationVersion: 2.755.9 - releaseVersion: 0.12.0 - configChecksum: 478ecab7538c4631019c7dadd8d146c1 + speakeasyVersion: 1.700.2 + generationVersion: 2.801.2 + releaseVersion: 0.13.0 + configChecksum: 749e9a3047bc8d04b84c913e90064f8e repoURL: https://github.com/thetradedesk/ttd-workflows-java.git published: true +persistentEdits: + generation_id: 3bfce9c1-c3ab-4b2a-a6cb-fd933d9633f7 + pristine_commit_hash: d83bcca81cada1af2d1ebac4255142796fa9f35a + pristine_tree_hash: 4180394047d78096aca41b3f8069e7597ae6ce86 features: java: additionalDependencies: 0.1.0 additionalProperties: 0.0.1 constsAndDefaults: 0.1.1 - core: 3.55.2 + core: 3.55.8 flattening: 2.81.1 globalSecurity: 2.83.1 globalSecurityCallbacks: 0.1.0 @@ -23,433 +27,1733 @@ features: nameOverrides: 2.81.3 nullables: 0.1.0 retries: 0.1.1 - sdkHooks: 1.1.0 + sdkHooks: 1.2.0 serverIDs: 2.81.1 -generatedFiles: - - .gitattributes - - USAGE.md - - build.gradle - - docs/models/components/AdGroupAssociateBidList.md - - docs/models/components/AdGroupAudienceTargeting.md - - docs/models/components/AdGroupBudget.md - - docs/models/components/AdGroupBulkCreateWorkflowInputWithValidation.md - - docs/models/components/AdGroupBulkUpdateWorkflowInputWithValidation.md - - docs/models/components/AdGroupChannel.md - - docs/models/components/AdGroupComscoreSettings.md - - docs/models/components/AdGroupContractTargeting.md - - docs/models/components/AdGroupCreateWorkflowInput.md - - docs/models/components/AdGroupCreateWorkflowInputWithValidation.md - - docs/models/components/AdGroupCreateWorkflowPrimaryInput.md - - docs/models/components/AdGroupFlight.md - - docs/models/components/AdGroupFunnelLocation.md - - docs/models/components/AdGroupKoaOptimizationSettings.md - - docs/models/components/AdGroupNielsenTrackingAttributes.md - - docs/models/components/AdGroupPayload.md - - docs/models/components/AdGroupROIGoal.md - - docs/models/components/AdGroupUpdateWorkflowInput.md - - docs/models/components/AdGroupUpdateWorkflowInputWithValidation.md - - docs/models/components/AdGroupUpdateWorkflowPrimaryInput.md - - docs/models/components/AdGroupWorkflow.md - - docs/models/components/AdGroupWorkflowAdvancedInput.md - - docs/models/components/AdGroupWorkflowAssociateBidListInput.md - - docs/models/components/AdGroupWorkflowAudienceTargetingInput.md - - docs/models/components/AdGroupWorkflowBudgetInput.md - - docs/models/components/AdGroupWorkflowComscoreSettingsInput.md - - docs/models/components/AdGroupWorkflowContractTargetingInput.md - - docs/models/components/AdGroupWorkflowFlightInput.md - - docs/models/components/AdGroupWorkflowKoaOptimizationSettingsInput.md - - docs/models/components/AdGroupWorkflowNewFrequencyConfigInput.md - - docs/models/components/AdGroupWorkflowNielsenTrackingAttributesInput.md - - docs/models/components/AdGroupWorkflowROIGoalInput.md - - docs/models/components/AllocationType.md - - docs/models/components/BulkJobStatus.md - - docs/models/components/CallRestApiWorkflowInput.md - - docs/models/components/CampaignBulkCreateWorkflowInputWithValidation.md - - docs/models/components/CampaignBulkUpdateWorkflowInputWithValidation.md - - docs/models/components/CampaignChannelType.md - - docs/models/components/CampaignCreatePassThroughFeesInput.md - - docs/models/components/CampaignCreateWorkflowAdGroupAdvancedInput.md - - docs/models/components/CampaignCreateWorkflowAdGroupFlightInput.md - - docs/models/components/CampaignCreateWorkflowAdGroupInput.md - - docs/models/components/CampaignCreateWorkflowAdvancedInput.md - - docs/models/components/CampaignCreateWorkflowIncrementalReachCampaignSetting.md - - docs/models/components/CampaignCreateWorkflowInput.md - - docs/models/components/CampaignCreateWorkflowInputWithValidation.md - - docs/models/components/CampaignCreateWorkflowPassThroughFeeCardInput.md - - docs/models/components/CampaignCreateWorkflowPrimaryInput.md - - docs/models/components/CampaignFlightWorkflow.md - - docs/models/components/CampaignPacingMode.md - - docs/models/components/CampaignPayload.md - - docs/models/components/CampaignUpdateWorkflowAdvancedInput.md - - docs/models/components/CampaignUpdateWorkflowInput.md - - docs/models/components/CampaignUpdateWorkflowInputWithValidation.md - - docs/models/components/CampaignUpdateWorkflowPrimaryInput.md - - docs/models/components/CampaignVersionWorkflow.md - - docs/models/components/CampaignWorkflow.md - - docs/models/components/CampaignWorkflowBudgetInput.md - - docs/models/components/CampaignWorkflowCampaignConversionReportingColumnInput.md - - docs/models/components/CampaignWorkflowFlightInput.md - - docs/models/components/CampaignWorkflowROIGoalInput.md - - docs/models/components/CustomCPAType.md - - docs/models/components/CustomROASConfig.md - - docs/models/components/CustomROASType.md - - docs/models/components/DimensionalBiddingDimensions.md - - docs/models/components/EnhancedNielsenReportingOptions.md - - docs/models/components/EnhancedNielsenReportingOptionsInput.md - - docs/models/components/FirstPartyDataInput.md - - docs/models/components/GraphQLBulkJobError.md - - docs/models/components/GraphQLBulkJobRetrievalResponse.md - - docs/models/components/GraphQLRequestInput.md - - docs/models/components/GraphQlBulkJob.md - - docs/models/components/GraphQlBulkJobCallbackInput.md - - docs/models/components/GraphQlBulkJobPayload.md - - docs/models/components/GraphQlBulkJobResponse.md - - docs/models/components/GraphQlQueryJobInput.md - - docs/models/components/IncrementalReachBrandInput.md - - docs/models/components/IncrementalReachProductInput.md - - docs/models/components/KeyValuePairOfStringAndStringInput.md - - docs/models/components/MarketType.md - - docs/models/components/PassThroughFeeType.md - - docs/models/components/ProblemDetails.md - - docs/models/components/RealyticsEntertainmentType.md - - docs/models/components/RealyticsReachSettingInput.md - - docs/models/components/RestApiMethodType.md - - docs/models/components/Security.md - - docs/models/components/StandardJobStatusResponse.md - - docs/models/components/StandardJobSubmitResponse.md - - docs/models/components/TargetingEndAge.md - - docs/models/components/TargetingEndAgeInput.md - - docs/models/components/TargetingGender.md - - docs/models/components/TargetingGenderInput.md - - docs/models/components/TargetingStartAge.md - - docs/models/components/TargetingStartAgeInput.md - - docs/models/components/ThirdPartyDataInput.md - - docs/models/components/WorkflowCallbackInput.md - - docs/models/components/WorkflowStatus.md - - docs/models/errors/ProblemDetailsException.md - - docs/models/operations/ArchiveAdGroupsRequest.md - - docs/models/operations/ArchiveAdGroupsResponse.md - - docs/models/operations/ArchiveCampaignsRequest.md - - docs/models/operations/ArchiveCampaignsResponse.md - - docs/models/operations/CreateAdGroupResponse.md - - docs/models/operations/CreateAdGroupsJobResponse.md - - docs/models/operations/CreateCampaignResponse.md - - docs/models/operations/CreateCampaignsJobResponse.md - - docs/models/operations/GetCampaignVersionRequest.md - - docs/models/operations/GetCampaignVersionResponse.md - - docs/models/operations/GetFirstPartyDataJobResponse.md - - docs/models/operations/GetGraphQlBulkJobStatusRequest.md - - docs/models/operations/GetGraphQlBulkJobStatusResponse.md - - docs/models/operations/GetJobStatusRequest.md - - docs/models/operations/GetJobStatusResponse.md - - docs/models/operations/GetThirdPartyDataJobResponse.md - - docs/models/operations/SubmitGraphQlBulkQueryJobResponse.md - - docs/models/operations/SubmitGraphQlRequestResponse.md - - docs/models/operations/SubmitRestRequestResponse.md - - docs/models/operations/UpdateAdGroupResponse.md - - docs/models/operations/UpdateAdGroupsJobResponse.md - - docs/models/operations/UpdateCampaignResponse.md - - docs/models/operations/UpdateCampaignsJobResponse.md - - docs/sdks/adgroup/README.md - - docs/sdks/campaign/README.md - - docs/sdks/dmp/README.md - - docs/sdks/graphqlrequest/README.md - - docs/sdks/jobstatus/README.md - - docs/sdks/restrequest/README.md - - docs/utils/Blob.md - - gradle.properties - - gradle/wrapper/gradle-wrapper.jar - - gradle/wrapper/gradle-wrapper.properties - - gradlew - - gradlew.bat - - publishing.gradle - - settings.gradle - - spring/workflows-spring-boot-autoconfigure/build.gradle - - spring/workflows-spring-boot-autoconfigure/src/main/java/com/thetradedesk/workflows/ConditionalOnPropertyPrefix.java - - spring/workflows-spring-boot-autoconfigure/src/main/java/com/thetradedesk/workflows/OnPropertyPrefixCondition.java - - spring/workflows-spring-boot-autoconfigure/src/main/java/com/thetradedesk/workflows/WorkflowsAutoConfig.java - - spring/workflows-spring-boot-autoconfigure/src/main/java/com/thetradedesk/workflows/WorkflowsAutoConfigProperties.java - - spring/workflows-spring-boot-autoconfigure/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports - - spring/workflows-spring-boot-starter/build.gradle - - src/main/java/com/thetradedesk/workflows/AdGroup.java - - src/main/java/com/thetradedesk/workflows/AsyncAdGroup.java - - src/main/java/com/thetradedesk/workflows/AsyncCampaign.java - - src/main/java/com/thetradedesk/workflows/AsyncDmp.java - - src/main/java/com/thetradedesk/workflows/AsyncGraphQLRequest.java - - src/main/java/com/thetradedesk/workflows/AsyncJobStatus.java - - src/main/java/com/thetradedesk/workflows/AsyncRESTRequest.java - - src/main/java/com/thetradedesk/workflows/AsyncWorkflows.java - - src/main/java/com/thetradedesk/workflows/Campaign.java - - src/main/java/com/thetradedesk/workflows/Dmp.java - - src/main/java/com/thetradedesk/workflows/GraphQLRequest.java - - src/main/java/com/thetradedesk/workflows/JobStatus.java - - src/main/java/com/thetradedesk/workflows/RESTRequest.java - - src/main/java/com/thetradedesk/workflows/SDKConfiguration.java - - src/main/java/com/thetradedesk/workflows/SecuritySource.java - - src/main/java/com/thetradedesk/workflows/Workflows.java - - src/main/java/com/thetradedesk/workflows/models/components/AdGroupAssociateBidList.java - - src/main/java/com/thetradedesk/workflows/models/components/AdGroupAudienceTargeting.java - - src/main/java/com/thetradedesk/workflows/models/components/AdGroupBudget.java - - src/main/java/com/thetradedesk/workflows/models/components/AdGroupBulkCreateWorkflowInputWithValidation.java - - src/main/java/com/thetradedesk/workflows/models/components/AdGroupBulkUpdateWorkflowInputWithValidation.java - - src/main/java/com/thetradedesk/workflows/models/components/AdGroupChannel.java - - src/main/java/com/thetradedesk/workflows/models/components/AdGroupComscoreSettings.java - - src/main/java/com/thetradedesk/workflows/models/components/AdGroupContractTargeting.java - - src/main/java/com/thetradedesk/workflows/models/components/AdGroupCreateWorkflowInput.java - - src/main/java/com/thetradedesk/workflows/models/components/AdGroupCreateWorkflowInputWithValidation.java - - src/main/java/com/thetradedesk/workflows/models/components/AdGroupCreateWorkflowPrimaryInput.java - - src/main/java/com/thetradedesk/workflows/models/components/AdGroupFlight.java - - src/main/java/com/thetradedesk/workflows/models/components/AdGroupFunnelLocation.java - - src/main/java/com/thetradedesk/workflows/models/components/AdGroupKoaOptimizationSettings.java - - src/main/java/com/thetradedesk/workflows/models/components/AdGroupNielsenTrackingAttributes.java - - src/main/java/com/thetradedesk/workflows/models/components/AdGroupPayload.java - - src/main/java/com/thetradedesk/workflows/models/components/AdGroupROIGoal.java - - src/main/java/com/thetradedesk/workflows/models/components/AdGroupUpdateWorkflowInput.java - - src/main/java/com/thetradedesk/workflows/models/components/AdGroupUpdateWorkflowInputWithValidation.java - - src/main/java/com/thetradedesk/workflows/models/components/AdGroupUpdateWorkflowPrimaryInput.java - - src/main/java/com/thetradedesk/workflows/models/components/AdGroupWorkflow.java - - src/main/java/com/thetradedesk/workflows/models/components/AdGroupWorkflowAdvancedInput.java - - src/main/java/com/thetradedesk/workflows/models/components/AdGroupWorkflowAssociateBidListInput.java - - src/main/java/com/thetradedesk/workflows/models/components/AdGroupWorkflowAudienceTargetingInput.java - - src/main/java/com/thetradedesk/workflows/models/components/AdGroupWorkflowBudgetInput.java - - src/main/java/com/thetradedesk/workflows/models/components/AdGroupWorkflowComscoreSettingsInput.java - - src/main/java/com/thetradedesk/workflows/models/components/AdGroupWorkflowContractTargetingInput.java - - src/main/java/com/thetradedesk/workflows/models/components/AdGroupWorkflowFlightInput.java - - src/main/java/com/thetradedesk/workflows/models/components/AdGroupWorkflowKoaOptimizationSettingsInput.java - - src/main/java/com/thetradedesk/workflows/models/components/AdGroupWorkflowNewFrequencyConfigInput.java - - src/main/java/com/thetradedesk/workflows/models/components/AdGroupWorkflowNielsenTrackingAttributesInput.java - - src/main/java/com/thetradedesk/workflows/models/components/AdGroupWorkflowROIGoalInput.java - - src/main/java/com/thetradedesk/workflows/models/components/AllocationType.java - - src/main/java/com/thetradedesk/workflows/models/components/BulkJobStatus.java - - src/main/java/com/thetradedesk/workflows/models/components/CallRestApiWorkflowInput.java - - src/main/java/com/thetradedesk/workflows/models/components/CampaignBulkCreateWorkflowInputWithValidation.java - - src/main/java/com/thetradedesk/workflows/models/components/CampaignBulkUpdateWorkflowInputWithValidation.java - - src/main/java/com/thetradedesk/workflows/models/components/CampaignChannelType.java - - src/main/java/com/thetradedesk/workflows/models/components/CampaignCreatePassThroughFeesInput.java - - src/main/java/com/thetradedesk/workflows/models/components/CampaignCreateWorkflowAdGroupAdvancedInput.java - - src/main/java/com/thetradedesk/workflows/models/components/CampaignCreateWorkflowAdGroupFlightInput.java - - src/main/java/com/thetradedesk/workflows/models/components/CampaignCreateWorkflowAdGroupInput.java - - src/main/java/com/thetradedesk/workflows/models/components/CampaignCreateWorkflowAdvancedInput.java - - src/main/java/com/thetradedesk/workflows/models/components/CampaignCreateWorkflowIncrementalReachCampaignSetting.java - - src/main/java/com/thetradedesk/workflows/models/components/CampaignCreateWorkflowInput.java - - src/main/java/com/thetradedesk/workflows/models/components/CampaignCreateWorkflowInputWithValidation.java - - src/main/java/com/thetradedesk/workflows/models/components/CampaignCreateWorkflowPassThroughFeeCardInput.java - - src/main/java/com/thetradedesk/workflows/models/components/CampaignCreateWorkflowPrimaryInput.java - - src/main/java/com/thetradedesk/workflows/models/components/CampaignFlightWorkflow.java - - src/main/java/com/thetradedesk/workflows/models/components/CampaignPacingMode.java - - src/main/java/com/thetradedesk/workflows/models/components/CampaignPayload.java - - src/main/java/com/thetradedesk/workflows/models/components/CampaignUpdateWorkflowAdvancedInput.java - - src/main/java/com/thetradedesk/workflows/models/components/CampaignUpdateWorkflowInput.java - - src/main/java/com/thetradedesk/workflows/models/components/CampaignUpdateWorkflowInputWithValidation.java - - src/main/java/com/thetradedesk/workflows/models/components/CampaignUpdateWorkflowPrimaryInput.java - - src/main/java/com/thetradedesk/workflows/models/components/CampaignVersionWorkflow.java - - src/main/java/com/thetradedesk/workflows/models/components/CampaignWorkflow.java - - src/main/java/com/thetradedesk/workflows/models/components/CampaignWorkflowBudgetInput.java - - src/main/java/com/thetradedesk/workflows/models/components/CampaignWorkflowCampaignConversionReportingColumnInput.java - - src/main/java/com/thetradedesk/workflows/models/components/CampaignWorkflowFlightInput.java - - src/main/java/com/thetradedesk/workflows/models/components/CampaignWorkflowROIGoalInput.java - - src/main/java/com/thetradedesk/workflows/models/components/CustomCPAType.java - - src/main/java/com/thetradedesk/workflows/models/components/CustomROASConfig.java - - src/main/java/com/thetradedesk/workflows/models/components/CustomROASType.java - - src/main/java/com/thetradedesk/workflows/models/components/DimensionalBiddingDimensions.java - - src/main/java/com/thetradedesk/workflows/models/components/EnhancedNielsenReportingOptions.java - - src/main/java/com/thetradedesk/workflows/models/components/EnhancedNielsenReportingOptionsInput.java - - src/main/java/com/thetradedesk/workflows/models/components/FirstPartyDataInput.java - - src/main/java/com/thetradedesk/workflows/models/components/GraphQLBulkJobError.java - - src/main/java/com/thetradedesk/workflows/models/components/GraphQLBulkJobRetrievalResponse.java - - src/main/java/com/thetradedesk/workflows/models/components/GraphQLRequestInput.java - - src/main/java/com/thetradedesk/workflows/models/components/GraphQlBulkJob.java - - src/main/java/com/thetradedesk/workflows/models/components/GraphQlBulkJobCallbackInput.java - - src/main/java/com/thetradedesk/workflows/models/components/GraphQlBulkJobPayload.java - - src/main/java/com/thetradedesk/workflows/models/components/GraphQlBulkJobResponse.java - - src/main/java/com/thetradedesk/workflows/models/components/GraphQlQueryJobInput.java - - src/main/java/com/thetradedesk/workflows/models/components/IncrementalReachBrandInput.java - - src/main/java/com/thetradedesk/workflows/models/components/IncrementalReachProductInput.java - - src/main/java/com/thetradedesk/workflows/models/components/KeyValuePairOfStringAndStringInput.java - - src/main/java/com/thetradedesk/workflows/models/components/MarketType.java - - src/main/java/com/thetradedesk/workflows/models/components/PassThroughFeeType.java - - src/main/java/com/thetradedesk/workflows/models/components/ProblemDetails.java - - src/main/java/com/thetradedesk/workflows/models/components/RealyticsEntertainmentType.java - - src/main/java/com/thetradedesk/workflows/models/components/RealyticsReachSettingInput.java - - src/main/java/com/thetradedesk/workflows/models/components/RestApiMethodType.java - - src/main/java/com/thetradedesk/workflows/models/components/Security.java - - src/main/java/com/thetradedesk/workflows/models/components/StandardJobStatusResponse.java - - src/main/java/com/thetradedesk/workflows/models/components/StandardJobSubmitResponse.java - - src/main/java/com/thetradedesk/workflows/models/components/TargetingEndAge.java - - src/main/java/com/thetradedesk/workflows/models/components/TargetingEndAgeInput.java - - src/main/java/com/thetradedesk/workflows/models/components/TargetingGender.java - - src/main/java/com/thetradedesk/workflows/models/components/TargetingGenderInput.java - - src/main/java/com/thetradedesk/workflows/models/components/TargetingStartAge.java - - src/main/java/com/thetradedesk/workflows/models/components/TargetingStartAgeInput.java - - src/main/java/com/thetradedesk/workflows/models/components/ThirdPartyDataInput.java - - src/main/java/com/thetradedesk/workflows/models/components/WorkflowCallbackInput.java - - src/main/java/com/thetradedesk/workflows/models/components/WorkflowStatus.java - - src/main/java/com/thetradedesk/workflows/models/errors/APIException.java - - src/main/java/com/thetradedesk/workflows/models/errors/AsyncAPIException.java - - src/main/java/com/thetradedesk/workflows/models/errors/AuthException.java - - src/main/java/com/thetradedesk/workflows/models/errors/ProblemDetailsException.java - - src/main/java/com/thetradedesk/workflows/models/errors/WorkflowsError.java - - src/main/java/com/thetradedesk/workflows/models/operations//async/ArchiveAdGroupsRequestBuilder.java - - src/main/java/com/thetradedesk/workflows/models/operations//async/ArchiveCampaignsRequestBuilder.java - - src/main/java/com/thetradedesk/workflows/models/operations//async/CreateAdGroupRequestBuilder.java - - src/main/java/com/thetradedesk/workflows/models/operations//async/CreateAdGroupsJobRequestBuilder.java - - src/main/java/com/thetradedesk/workflows/models/operations//async/CreateCampaignRequestBuilder.java - - src/main/java/com/thetradedesk/workflows/models/operations//async/CreateCampaignsJobRequestBuilder.java - - src/main/java/com/thetradedesk/workflows/models/operations//async/GetCampaignVersionRequestBuilder.java - - src/main/java/com/thetradedesk/workflows/models/operations//async/GetFirstPartyDataJobRequestBuilder.java - - src/main/java/com/thetradedesk/workflows/models/operations//async/GetGraphQlBulkJobStatusRequestBuilder.java - - src/main/java/com/thetradedesk/workflows/models/operations//async/GetJobStatusRequestBuilder.java - - src/main/java/com/thetradedesk/workflows/models/operations//async/GetThirdPartyDataJobRequestBuilder.java - - src/main/java/com/thetradedesk/workflows/models/operations//async/SubmitGraphQlBulkQueryJobRequestBuilder.java - - src/main/java/com/thetradedesk/workflows/models/operations//async/SubmitGraphQlRequestRequestBuilder.java - - src/main/java/com/thetradedesk/workflows/models/operations//async/SubmitRestRequestRequestBuilder.java - - src/main/java/com/thetradedesk/workflows/models/operations//async/UpdateAdGroupRequestBuilder.java - - src/main/java/com/thetradedesk/workflows/models/operations//async/UpdateAdGroupsJobRequestBuilder.java - - src/main/java/com/thetradedesk/workflows/models/operations//async/UpdateCampaignRequestBuilder.java - - src/main/java/com/thetradedesk/workflows/models/operations//async/UpdateCampaignsJobRequestBuilder.java - - src/main/java/com/thetradedesk/workflows/models/operations/ArchiveAdGroupsRequest.java - - src/main/java/com/thetradedesk/workflows/models/operations/ArchiveAdGroupsRequestBuilder.java - - src/main/java/com/thetradedesk/workflows/models/operations/ArchiveAdGroupsResponse.java - - src/main/java/com/thetradedesk/workflows/models/operations/ArchiveCampaignsRequest.java - - src/main/java/com/thetradedesk/workflows/models/operations/ArchiveCampaignsRequestBuilder.java - - src/main/java/com/thetradedesk/workflows/models/operations/ArchiveCampaignsResponse.java - - src/main/java/com/thetradedesk/workflows/models/operations/CreateAdGroupRequestBuilder.java - - src/main/java/com/thetradedesk/workflows/models/operations/CreateAdGroupResponse.java - - src/main/java/com/thetradedesk/workflows/models/operations/CreateAdGroupsJobRequestBuilder.java - - src/main/java/com/thetradedesk/workflows/models/operations/CreateAdGroupsJobResponse.java - - src/main/java/com/thetradedesk/workflows/models/operations/CreateCampaignRequestBuilder.java - - src/main/java/com/thetradedesk/workflows/models/operations/CreateCampaignResponse.java - - src/main/java/com/thetradedesk/workflows/models/operations/CreateCampaignsJobRequestBuilder.java - - src/main/java/com/thetradedesk/workflows/models/operations/CreateCampaignsJobResponse.java - - src/main/java/com/thetradedesk/workflows/models/operations/GetCampaignVersionRequest.java - - src/main/java/com/thetradedesk/workflows/models/operations/GetCampaignVersionRequestBuilder.java - - src/main/java/com/thetradedesk/workflows/models/operations/GetCampaignVersionResponse.java - - src/main/java/com/thetradedesk/workflows/models/operations/GetFirstPartyDataJobRequestBuilder.java - - src/main/java/com/thetradedesk/workflows/models/operations/GetFirstPartyDataJobResponse.java - - src/main/java/com/thetradedesk/workflows/models/operations/GetGraphQlBulkJobStatusRequest.java - - src/main/java/com/thetradedesk/workflows/models/operations/GetGraphQlBulkJobStatusRequestBuilder.java - - src/main/java/com/thetradedesk/workflows/models/operations/GetGraphQlBulkJobStatusResponse.java - - src/main/java/com/thetradedesk/workflows/models/operations/GetJobStatusRequest.java - - src/main/java/com/thetradedesk/workflows/models/operations/GetJobStatusRequestBuilder.java - - src/main/java/com/thetradedesk/workflows/models/operations/GetJobStatusResponse.java - - src/main/java/com/thetradedesk/workflows/models/operations/GetThirdPartyDataJobRequestBuilder.java - - src/main/java/com/thetradedesk/workflows/models/operations/GetThirdPartyDataJobResponse.java - - src/main/java/com/thetradedesk/workflows/models/operations/SubmitGraphQlBulkQueryJobRequestBuilder.java - - src/main/java/com/thetradedesk/workflows/models/operations/SubmitGraphQlBulkQueryJobResponse.java - - src/main/java/com/thetradedesk/workflows/models/operations/SubmitGraphQlRequestRequestBuilder.java - - src/main/java/com/thetradedesk/workflows/models/operations/SubmitGraphQlRequestResponse.java - - src/main/java/com/thetradedesk/workflows/models/operations/SubmitRestRequestRequestBuilder.java - - src/main/java/com/thetradedesk/workflows/models/operations/SubmitRestRequestResponse.java - - src/main/java/com/thetradedesk/workflows/models/operations/UpdateAdGroupRequestBuilder.java - - src/main/java/com/thetradedesk/workflows/models/operations/UpdateAdGroupResponse.java - - src/main/java/com/thetradedesk/workflows/models/operations/UpdateAdGroupsJobRequestBuilder.java - - src/main/java/com/thetradedesk/workflows/models/operations/UpdateAdGroupsJobResponse.java - - src/main/java/com/thetradedesk/workflows/models/operations/UpdateCampaignRequestBuilder.java - - src/main/java/com/thetradedesk/workflows/models/operations/UpdateCampaignResponse.java - - src/main/java/com/thetradedesk/workflows/models/operations/UpdateCampaignsJobRequestBuilder.java - - src/main/java/com/thetradedesk/workflows/models/operations/UpdateCampaignsJobResponse.java - - src/main/java/com/thetradedesk/workflows/models/operations/async/ArchiveAdGroupsResponse.java - - src/main/java/com/thetradedesk/workflows/models/operations/async/ArchiveCampaignsResponse.java - - src/main/java/com/thetradedesk/workflows/models/operations/async/CreateAdGroupResponse.java - - src/main/java/com/thetradedesk/workflows/models/operations/async/CreateAdGroupsJobResponse.java - - src/main/java/com/thetradedesk/workflows/models/operations/async/CreateCampaignResponse.java - - src/main/java/com/thetradedesk/workflows/models/operations/async/CreateCampaignsJobResponse.java - - src/main/java/com/thetradedesk/workflows/models/operations/async/GetCampaignVersionResponse.java - - src/main/java/com/thetradedesk/workflows/models/operations/async/GetFirstPartyDataJobResponse.java - - src/main/java/com/thetradedesk/workflows/models/operations/async/GetGraphQlBulkJobStatusResponse.java - - src/main/java/com/thetradedesk/workflows/models/operations/async/GetJobStatusResponse.java - - src/main/java/com/thetradedesk/workflows/models/operations/async/GetThirdPartyDataJobResponse.java - - src/main/java/com/thetradedesk/workflows/models/operations/async/SubmitGraphQlBulkQueryJobResponse.java - - src/main/java/com/thetradedesk/workflows/models/operations/async/SubmitGraphQlRequestResponse.java - - src/main/java/com/thetradedesk/workflows/models/operations/async/SubmitRestRequestResponse.java - - src/main/java/com/thetradedesk/workflows/models/operations/async/UpdateAdGroupResponse.java - - src/main/java/com/thetradedesk/workflows/models/operations/async/UpdateAdGroupsJobResponse.java - - src/main/java/com/thetradedesk/workflows/models/operations/async/UpdateCampaignResponse.java - - src/main/java/com/thetradedesk/workflows/models/operations/async/UpdateCampaignsJobResponse.java - - src/main/java/com/thetradedesk/workflows/operations/ArchiveAdGroups.java - - src/main/java/com/thetradedesk/workflows/operations/ArchiveCampaigns.java - - src/main/java/com/thetradedesk/workflows/operations/CreateAdGroup.java - - src/main/java/com/thetradedesk/workflows/operations/CreateAdGroupsJob.java - - src/main/java/com/thetradedesk/workflows/operations/CreateCampaign.java - - src/main/java/com/thetradedesk/workflows/operations/CreateCampaignsJob.java - - src/main/java/com/thetradedesk/workflows/operations/GetCampaignVersion.java - - src/main/java/com/thetradedesk/workflows/operations/GetFirstPartyDataJob.java - - src/main/java/com/thetradedesk/workflows/operations/GetGraphQlBulkJobStatus.java - - src/main/java/com/thetradedesk/workflows/operations/GetJobStatus.java - - src/main/java/com/thetradedesk/workflows/operations/GetThirdPartyDataJob.java - - src/main/java/com/thetradedesk/workflows/operations/Operations.java - - src/main/java/com/thetradedesk/workflows/operations/SubmitGraphQlBulkQueryJob.java - - src/main/java/com/thetradedesk/workflows/operations/SubmitGraphQlRequest.java - - src/main/java/com/thetradedesk/workflows/operations/SubmitRestRequest.java - - src/main/java/com/thetradedesk/workflows/operations/UpdateAdGroup.java - - src/main/java/com/thetradedesk/workflows/operations/UpdateAdGroupsJob.java - - src/main/java/com/thetradedesk/workflows/operations/UpdateCampaign.java - - src/main/java/com/thetradedesk/workflows/operations/UpdateCampaignsJob.java - - src/main/java/com/thetradedesk/workflows/utils/AsyncHook.java - - src/main/java/com/thetradedesk/workflows/utils/AsyncHooks.java - - src/main/java/com/thetradedesk/workflows/utils/AsyncResponse.java - - src/main/java/com/thetradedesk/workflows/utils/AsyncRetries.java - - src/main/java/com/thetradedesk/workflows/utils/AsyncRetryableException.java - - src/main/java/com/thetradedesk/workflows/utils/BackoffStrategy.java - - src/main/java/com/thetradedesk/workflows/utils/BigDecimalString.java - - src/main/java/com/thetradedesk/workflows/utils/BigIntegerString.java - - src/main/java/com/thetradedesk/workflows/utils/Blob.java - - src/main/java/com/thetradedesk/workflows/utils/BlockingParser.java - - src/main/java/com/thetradedesk/workflows/utils/Constants.java - - src/main/java/com/thetradedesk/workflows/utils/CopiableInputStream.java - - src/main/java/com/thetradedesk/workflows/utils/Deserializers.java - - src/main/java/com/thetradedesk/workflows/utils/EventStream.java - - src/main/java/com/thetradedesk/workflows/utils/EventStreamMessage.java - - src/main/java/com/thetradedesk/workflows/utils/Exceptions.java - - src/main/java/com/thetradedesk/workflows/utils/FormMetadata.java - - src/main/java/com/thetradedesk/workflows/utils/GenericTypeIdResolver.java - - src/main/java/com/thetradedesk/workflows/utils/Globals.java - - src/main/java/com/thetradedesk/workflows/utils/HTTPClient.java - - src/main/java/com/thetradedesk/workflows/utils/HTTPRequest.java - - src/main/java/com/thetradedesk/workflows/utils/HasSecurity.java - - src/main/java/com/thetradedesk/workflows/utils/HeaderMetadata.java - - src/main/java/com/thetradedesk/workflows/utils/Headers.java - - src/main/java/com/thetradedesk/workflows/utils/Helpers.java - - src/main/java/com/thetradedesk/workflows/utils/Hook.java - - src/main/java/com/thetradedesk/workflows/utils/HookAdapters.java - - src/main/java/com/thetradedesk/workflows/utils/Hooks.java - - src/main/java/com/thetradedesk/workflows/utils/JSON.java - - src/main/java/com/thetradedesk/workflows/utils/LazySingletonValue.java - - src/main/java/com/thetradedesk/workflows/utils/Metadata.java - - src/main/java/com/thetradedesk/workflows/utils/Multipart.java - - src/main/java/com/thetradedesk/workflows/utils/MultipartFormMetadata.java - - src/main/java/com/thetradedesk/workflows/utils/NameValue.java - - src/main/java/com/thetradedesk/workflows/utils/NonRetryableException.java - - src/main/java/com/thetradedesk/workflows/utils/OneOfDeserializer.java - - src/main/java/com/thetradedesk/workflows/utils/Options.java - - src/main/java/com/thetradedesk/workflows/utils/PathParamsMetadata.java - - src/main/java/com/thetradedesk/workflows/utils/QueryEncoding.java - - src/main/java/com/thetradedesk/workflows/utils/QueryParameter.java - - src/main/java/com/thetradedesk/workflows/utils/QueryParameters.java - - src/main/java/com/thetradedesk/workflows/utils/QueryParamsMetadata.java - - src/main/java/com/thetradedesk/workflows/utils/RecordingClient.java - - src/main/java/com/thetradedesk/workflows/utils/Reflections.java - - src/main/java/com/thetradedesk/workflows/utils/RequestBody.java - - src/main/java/com/thetradedesk/workflows/utils/RequestMetadata.java - - src/main/java/com/thetradedesk/workflows/utils/Response.java - - src/main/java/com/thetradedesk/workflows/utils/ResponseWithBody.java - - src/main/java/com/thetradedesk/workflows/utils/Retries.java - - src/main/java/com/thetradedesk/workflows/utils/RetryConfig.java - - src/main/java/com/thetradedesk/workflows/utils/RetryableException.java - - src/main/java/com/thetradedesk/workflows/utils/Security.java - - src/main/java/com/thetradedesk/workflows/utils/SecurityMetadata.java - - src/main/java/com/thetradedesk/workflows/utils/SerializedBody.java - - src/main/java/com/thetradedesk/workflows/utils/SessionManager.java - - src/main/java/com/thetradedesk/workflows/utils/SpeakeasyHTTPClient.java - - src/main/java/com/thetradedesk/workflows/utils/SpeakeasyMetadata.java - - src/main/java/com/thetradedesk/workflows/utils/StreamingParser.java - - src/main/java/com/thetradedesk/workflows/utils/TypedObject.java - - src/main/java/com/thetradedesk/workflows/utils/Types.java - - src/main/java/com/thetradedesk/workflows/utils/UnknownType.java - - src/main/java/com/thetradedesk/workflows/utils/Utf8UrlEncoder.java - - src/main/java/com/thetradedesk/workflows/utils/Utils.java - - src/main/java/com/thetradedesk/workflows/utils/reactive/EventStream.java - - src/main/java/com/thetradedesk/workflows/utils/reactive/ReactiveUtils.java +trackedFiles: + .gitattributes: + id: 24139dae6567 + last_write_checksum: sha1:18563f88a3e50e55f2ae6f2b62440464808f5d6f + pristine_git_object: 87cd6547287adad3b806972ee22a765ed80ab806 + USAGE.md: + id: 3aed33ce6e6f + last_write_checksum: sha1:68ed6ecbb12084dc3d8d34554128d818ab02b3e5 + pristine_git_object: 458c04d2c4c1551e4a055c8cf43e2d79b966f151 + build.gradle: + id: f07866736216 + last_write_checksum: sha1:1c13f6cb09ac6da99013bbc60cb5cdbefbcd5717 + pristine_git_object: ec583249f02daa0229d89337cff80ab5b17bfcf1 + docs/models/components/AdGroupAssociateBidList.md: + id: 4f249ffb1be2 + last_write_checksum: sha1:ccfadc26f2a548f298dd9f4e34dd0da6c6104cc8 + pristine_git_object: cc5e626c352b6ebe135143cb83881b0e527aada5 + docs/models/components/AdGroupAudienceTargeting.md: + id: 2afaa6042654 + last_write_checksum: sha1:2114807088cf3e206d82d98d57c183f45e79a7ff + pristine_git_object: 6b1f6867eebac4b18e09ff774822d3889ba4cbbb + docs/models/components/AdGroupBudget.md: + id: 10b0c73ec9ec + last_write_checksum: sha1:2e71e11406bec8f2b9f6f90256c7f728aa126510 + pristine_git_object: 639a9cc52a7aaa80b207ee6d991906dc2b3a0100 + docs/models/components/AdGroupBulkCreateWorkflowInputWithValidation.md: + id: 07eacd994fe2 + last_write_checksum: sha1:6469a99eb21f2a8c336443caf9f9f644b685ed36 + pristine_git_object: ab3c54037451d8f6ac8ad390565ed521e36b270d + docs/models/components/AdGroupBulkUpdateWorkflowInputWithValidation.md: + id: 5d0e915f1e7c + last_write_checksum: sha1:4960bd554b5bc02ae920dd01d2b92eb19e7907df + pristine_git_object: 344d16e184e08b44a4ff3cf6a397a9b70739a714 + docs/models/components/AdGroupChannel.md: + id: 4e8a9e6bae7e + last_write_checksum: sha1:32b0f3c585d5330522d7ca334f768fdefb3cc868 + pristine_git_object: 6074eb690a9d411957c5a6477c4963ebb3aba9e6 + docs/models/components/AdGroupComscoreSettings.md: + id: 605ba5d33360 + last_write_checksum: sha1:09411e6e41da21a9d2bb7d4a20e71694da378d99 + pristine_git_object: 4bb0773730d9236e4055abcc8ab48613730d50e0 + docs/models/components/AdGroupContractTargeting.md: + id: e5a0b3b559cf + last_write_checksum: sha1:dc3ad76213146405c7696e7ad0a1fcdda3bfda4a + pristine_git_object: e20bee5bff071b4c2b219d0512f4cc973b599300 + docs/models/components/AdGroupCreateWorkflowInput.md: + id: 32f85f08f2c9 + last_write_checksum: sha1:bb51247ff631767ae3e7ddbc459b156a26452293 + pristine_git_object: 6ac1cc7e16133eacdcee76e42cdaa123cf6f47ee + docs/models/components/AdGroupCreateWorkflowInputWithValidation.md: + id: b5a66934c8be + last_write_checksum: sha1:33664c93544f0f655fc18101717710a6ff9ff98b + pristine_git_object: 805d6357f9a5439cce25b113f0b7d8400fd8ca59 + docs/models/components/AdGroupCreateWorkflowPrimaryInput.md: + id: 787b91c2c4e7 + last_write_checksum: sha1:3d20ea3331c7c65c590099e8ae8c98ccde687cce + pristine_git_object: ffc10cdc976b827dde2ffadc7fdc0c65108d5ceb + docs/models/components/AdGroupFlight.md: + id: ec310b876a2f + last_write_checksum: sha1:1d525c62b1acb9f404c80662c525f64462a678a4 + pristine_git_object: aaaafaa93658707bc0dbb35d47ade1f5b7bed9cd + docs/models/components/AdGroupFunnelLocation.md: + id: 6872c63d5d40 + last_write_checksum: sha1:854bcb70e51ec7e84d3cb43b464a8167f16129ad + pristine_git_object: dcfaa23e14fef838e3e30c7938cc1aea10e8a226 + docs/models/components/AdGroupKoaOptimizationSettings.md: + id: 6b8ae512d508 + last_write_checksum: sha1:17c187aed4c50f5cbbd9ade901ed1903bc41cc9a + pristine_git_object: 4535b98ecbbfe61989c4aab59c3b18cf3b8cef1b + docs/models/components/AdGroupNielsenTrackingAttributes.md: + id: e13a27ea609b + last_write_checksum: sha1:112098480ad28e92c6023d9158a16bf08780106c + pristine_git_object: 7f88060cd4dba5e51095197721f4ee49c38bf62d + docs/models/components/AdGroupPayload.md: + id: 97c59be73e72 + last_write_checksum: sha1:95212f1573f530965a04d61d2d97317db1f82000 + pristine_git_object: 75f6d6845515ca2f6a7f68ef9d14399d313421d3 + docs/models/components/AdGroupROIGoal.md: + id: de96cd5ddb9e + last_write_checksum: sha1:1fc4d321fddef5f8e7233bbf06460fc2d0fc60b0 + pristine_git_object: 640ed56bc6654d5b94943ad39b5a4f46a7ab3c03 + docs/models/components/AdGroupUpdateWorkflowInput.md: + id: 27d9230e34bc + last_write_checksum: sha1:d64e791d3572a2633d655bbb331de89cac79fe52 + pristine_git_object: cd530dfde723cd92ef395ec918dee6d870441f0f + docs/models/components/AdGroupUpdateWorkflowInputWithValidation.md: + id: 781562133d38 + last_write_checksum: sha1:4e40f988c745e3ebfe8f6678a2a4e37f41cb72ff + pristine_git_object: 74001f5f27080d28305cbc55402e61d3dec439e4 + docs/models/components/AdGroupUpdateWorkflowPrimaryInput.md: + id: f755e5b910e4 + last_write_checksum: sha1:66f750d5fb0ab082c74d9649f43cb44bc40858fa + pristine_git_object: 5403b2dab05f250d1fe51c058793236525831e58 + docs/models/components/AdGroupWorkflow.md: + id: dec0c5639c0f + last_write_checksum: sha1:f713a3a2a0b14c8bd2bee90e6f786b76a8e81a76 + pristine_git_object: 5d78316218c0a26257bd1d809a6361e59e2e66ab + docs/models/components/AdGroupWorkflowAdvancedInput.md: + id: 309c9ced7c11 + last_write_checksum: sha1:5d9e666eb1cc5d1aecff16b17f034bb5b7e01a46 + pristine_git_object: 2133d4e23def3d246c0533bee38e08dcd1c6c8e1 + docs/models/components/AdGroupWorkflowAssociateBidListInput.md: + id: b498ecfa83c6 + last_write_checksum: sha1:807ba76536f71f4873b6d98ee80b56449abeab5e + pristine_git_object: 787e77dd29c52e4213e12663e8059380f0bd99a1 + docs/models/components/AdGroupWorkflowAudienceTargetingInput.md: + id: 8cae0de05a1c + last_write_checksum: sha1:1006fa038a50d03ad5c90a38fcd0498814dfcfb3 + pristine_git_object: dca014aa65fad635ce5b0c6c2753f3f6bc2707f6 + docs/models/components/AdGroupWorkflowBudgetInput.md: + id: 74c8e31406cf + last_write_checksum: sha1:9aa2aaf1a6b1e8cc42316ab5d0893a3fa169457b + pristine_git_object: 0595cd93f4f608412d026d2d3fc8926dda9a3d12 + docs/models/components/AdGroupWorkflowComscoreSettingsInput.md: + id: 9be4e0ec765d + last_write_checksum: sha1:23e2cd457a1d9bc335f7fef5671d4e1f8a141ce8 + pristine_git_object: 98780d385c530a9fee7a1ea5e705ae36e552ccb3 + docs/models/components/AdGroupWorkflowContractTargetingInput.md: + id: 86b47ce247c6 + last_write_checksum: sha1:cd7a9955f5fd0619f1907c9eb60d04816a0557ab + pristine_git_object: ef7584acc18d767b72cd53280fccbf73014f872c + docs/models/components/AdGroupWorkflowFlightInput.md: + id: f99e80485c08 + last_write_checksum: sha1:3284e39e7c0f7ce59f0ae1dfb16e81f692a910e0 + pristine_git_object: 917779c31e96d32b5645544052b03dc73fe1ad5c + docs/models/components/AdGroupWorkflowKoaOptimizationSettingsInput.md: + id: cdd23422f70c + last_write_checksum: sha1:6283f729a1a696534e18299a5e4d5e96b091980b + pristine_git_object: dfcb11bf58de9c60143e7b8651be3b9fc0081513 + docs/models/components/AdGroupWorkflowNewFrequencyConfigInput.md: + id: 8fe40959fbc3 + last_write_checksum: sha1:849efa7cacdd960f7a3e913c17f718b08c691cb6 + pristine_git_object: eb79400d5a88ff7ebea1b8213a75864ac3fa9152 + docs/models/components/AdGroupWorkflowNielsenTrackingAttributesInput.md: + id: 553edf1cf94a + last_write_checksum: sha1:ad964e087b1157b0ca536db2db97931547064fbf + pristine_git_object: 34d19edadb0cba64d59a541c3ca5fe89fb495c87 + docs/models/components/AdGroupWorkflowROIGoalInput.md: + id: ce32ebf4f5f6 + last_write_checksum: sha1:2c00ddc45badb65f56a4643c50bc9ac5b0832b46 + pristine_git_object: 8a4f0eeb1d336740dfc35682411b3d523e6fdbbc + docs/models/components/AllocationType.md: + id: b1a88f326bba + last_write_checksum: sha1:e85a4c466cc4a666f8d0f636c24ddd358d313dc3 + pristine_git_object: cd5146bccfe2214208e314abd37d823c5ccfe58d + docs/models/components/BulkJobStatus.md: + id: e669c57fe05b + last_write_checksum: sha1:5d7522b7ce5216552491521d52cac9098b4c9627 + pristine_git_object: 9d9d119df812d185327968ef4d18025be79e9f83 + docs/models/components/CallRestApiWorkflowInput.md: + id: c6f7976ae715 + last_write_checksum: sha1:fe88337cf944835e737fa3d6832ec93a5e5dd52d + pristine_git_object: 1e933f71578506409641bf35bc55d11f211f6178 + docs/models/components/CampaignBulkCreateWorkflowInputWithValidation.md: + id: f2c4e74bda14 + last_write_checksum: sha1:f35b111a6127fef449b5926c8a330a0ee166ed4b + pristine_git_object: 0ed7a4fdd8cb60d66d224dc8de8b3f0e3d516de2 + docs/models/components/CampaignBulkUpdateWorkflowInputWithValidation.md: + id: dcc1acb35894 + last_write_checksum: sha1:6ff321f8968eb8c0517a1df765bb9e1ac2d9c4d8 + pristine_git_object: 765d315f5d2f661a8a579069ef82a9fdee06c4f1 + docs/models/components/CampaignChannelType.md: + id: 7ab2f5ecc602 + last_write_checksum: sha1:d089c8765c6c1be32c0d4c7012b5422830224600 + pristine_git_object: 4d92b17f82356f79bdc0f5654b9dd13a34d44b75 + docs/models/components/CampaignCreatePassThroughFeesInput.md: + id: a918788b71d5 + last_write_checksum: sha1:17453b08576d2071d51a134e1f1afe03fab7f399 + pristine_git_object: bd88d21e3b5f079c5917f86361a2a0fab9e5f98f + docs/models/components/CampaignCreateWorkflowAdGroupAdvancedInput.md: + id: 65bcdf5dd697 + last_write_checksum: sha1:aef2d39479063d110f133a838ba59f3d7e73854d + pristine_git_object: c1838839371d8a54a37539f3a28a32fade19ae51 + docs/models/components/CampaignCreateWorkflowAdGroupFlightInput.md: + id: 3dd9fc271302 + last_write_checksum: sha1:1926d346891842b60a824ff57d05bd2993cef3ce + pristine_git_object: 2a2db46ac5dae5c5a2a30feda3e4fcb8fd5aa5a8 + docs/models/components/CampaignCreateWorkflowAdGroupInput.md: + id: d886e76bb7bf + last_write_checksum: sha1:862ce1657c49bbaf32bc4cd9277b9947c30c803b + pristine_git_object: b0e941012b0955539ffa54acee9905a74bc92a47 + docs/models/components/CampaignCreateWorkflowAdvancedInput.md: + id: 36821450eab5 + last_write_checksum: sha1:c553261e3cbf1ac891af307b658b4d7fa0e4367e + pristine_git_object: 664332d12e4f045933696c4c2ca35008132f68e1 + docs/models/components/CampaignCreateWorkflowBudgetInput.md: + id: 9b59c73dc5fe + last_write_checksum: sha1:e22e74880285d2b7c9c3fbdc0dc8c5038a13246d + pristine_git_object: 6ccb179766f05763df797e47c41bae6babcb4548 + docs/models/components/CampaignCreateWorkflowIncrementalReachCampaignSetting.md: + id: 48e7d0a640d0 + last_write_checksum: sha1:9402bf109e7e652e60f4c4c7e60e771c99a0bbf9 + pristine_git_object: 0e4247d49f3f5166df00cfd168801487b28fe945 + docs/models/components/CampaignCreateWorkflowInput.md: + id: 638ab3e39da3 + last_write_checksum: sha1:3ac358d5b215e7dcbd44211e3780295f6c11e8fd + pristine_git_object: b4200fd89150724fc62f9b489a0f5e8200412a44 + docs/models/components/CampaignCreateWorkflowInputWithValidation.md: + id: 69ef9f8ddc5e + last_write_checksum: sha1:ac12e750f15637d31099a08fa868abec743177c3 + pristine_git_object: 3e2ef71c13db306e1ce0a96f012931e9659eef86 + docs/models/components/CampaignCreateWorkflowPassThroughFeeCardInput.md: + id: a8fabf2de89d + last_write_checksum: sha1:ac619278cbcb8ab88f9e7cdc70b82a12fe6efd0a + pristine_git_object: 32477dea09e910945899497086f7c72d8f67eeb7 + docs/models/components/CampaignCreateWorkflowPrimaryInput.md: + id: f9a265d53cd8 + last_write_checksum: sha1:eba7a55f9420f4cddcef39e2a776de0c94642a53 + pristine_git_object: a45e37b30b6e2de13600e127d065ca7721ae687c + docs/models/components/CampaignFlightWorkflow.md: + id: 3a8db54716ec + last_write_checksum: sha1:4802c6c112b52e91f9f6ffbf5ccef0e180a309c2 + pristine_git_object: 73bab58bf247a3b041ce5de1f9492bf611bd748f + docs/models/components/CampaignPacingMode.md: + id: e00bbb6e9f38 + last_write_checksum: sha1:03f09076f4db58d69126e0cef2842355c9d84fe7 + pristine_git_object: 8439a827e60bae1b69397378b26dfdf570cddda5 + docs/models/components/CampaignPayload.md: + id: 4c83b1e79dce + last_write_checksum: sha1:0e4f36612816dab5e5a4c723de605194d2925ed0 + pristine_git_object: 83b54f59411167261ce2d707124b31157aa60048 + docs/models/components/CampaignUpdateWorkflowAdvancedInput.md: + id: cc4232aede15 + last_write_checksum: sha1:fc10de71ef9d22b685f7c0ae057863477e274c95 + pristine_git_object: 9834b9158494f55f6e22b445d51c766f8f9d1dc3 + docs/models/components/CampaignUpdateWorkflowBudgetInput.md: + id: 4a48a5003b0f + last_write_checksum: sha1:ff1a0067d29fd64ca81625d3dc9e73f28349b397 + pristine_git_object: d56d868f2c0318517981db8490a8f234efff3ab3 + docs/models/components/CampaignUpdateWorkflowInput.md: + id: cd3491b8f1cf + last_write_checksum: sha1:c32692ac01b2c4b69239eb0c3e0f91a1a0144dd4 + pristine_git_object: 61ec2e113cd7828ff5a00ed8759704a712dd2562 + docs/models/components/CampaignUpdateWorkflowInputWithValidation.md: + id: 5a13965aaaa9 + last_write_checksum: sha1:a8d6568a1f64a65cd4166d9f7cd06979bdc7012d + pristine_git_object: b4219acaae376279aa184867c6b36f2c407936c8 + docs/models/components/CampaignUpdateWorkflowPrimaryInput.md: + id: 49502031c85a + last_write_checksum: sha1:a201adbc1c32b4e400a4ef881783c87e1c902352 + pristine_git_object: 2a8821e22f6fc765327fe3f4392956279361f705 + docs/models/components/CampaignVersionWorkflow.md: + id: b4d98667c70f + last_write_checksum: sha1:b54604a998c2df8e770b261eb6ccdbd9f6b6eda6 + pristine_git_object: 56f126837628aadf78370ed4ebd0653a963e2821 + docs/models/components/CampaignWorkflow.md: + id: 14c98d195763 + last_write_checksum: sha1:045c7d7a5f84c132492620d53e1fe556717c12a2 + pristine_git_object: 8baa062b3cac6911aa066d5a175010d94965f12f + docs/models/components/CampaignWorkflowCampaignConversionReportingColumnInput.md: + id: 8bb32baba7cf + last_write_checksum: sha1:1ef28032ece839b68e225aa8b22bc92daefaa847 + pristine_git_object: a6e48e7638141da4d6c90c65b4d96660f598ca6a + docs/models/components/CampaignWorkflowFlightInput.md: + id: 86126305d83a + last_write_checksum: sha1:fbfaf529f823c677e58bab2df4b653b3b5605404 + pristine_git_object: 390f805448856efc4230d1b217d9aa3df2dc4a8e + docs/models/components/CampaignWorkflowROIGoalInput.md: + id: 4cb63a18228f + last_write_checksum: sha1:91076c52a7a4e762ed3df13a1536096690bf7ac1 + pristine_git_object: 57b0b443f8772b94306067002348a01de22c2bd6 + docs/models/components/CustomCPAType.md: + id: 6d699579524d + last_write_checksum: sha1:5153a8d8b5d3d0d21d67ceef36cde1e2cfa31973 + pristine_git_object: fd9e4f2204588bfb21315e631d3d24bcd07a3c70 + docs/models/components/CustomROASConfig.md: + id: 7a781dec35e9 + last_write_checksum: sha1:78786cb03cb412c9bce131a2de1554afc1a1f216 + pristine_git_object: ca8d5fbd872fb3df6fbd7fc89e0fef2ce03039a3 + docs/models/components/CustomROASType.md: + id: 36bca906067f + last_write_checksum: sha1:4302f784c9ade482ad97520e6c5f3c76b1fbbef4 + pristine_git_object: f196fd4788386142188fddfc87a565734ab54380 + docs/models/components/DimensionalBiddingDimensions.md: + id: 79549079b0f9 + last_write_checksum: sha1:29aef464678321f8aecadc47c800409d6d1120a4 + pristine_git_object: 335699f9fdaa1205d7be1490faccb62305b1da36 + docs/models/components/EnhancedNielsenReportingOptions.md: + id: 2b961a459785 + last_write_checksum: sha1:9fcfe39530753e5883c5a84b9ac3719896e26d7a + pristine_git_object: ef00bfb9f59dc52e6f5fef9a0c0c9c5c43912201 + docs/models/components/EnhancedNielsenReportingOptionsInput.md: + id: 54efad991936 + last_write_checksum: sha1:eed31487a1530c0d40d947aaea1f0c81ca33b0a6 + pristine_git_object: 403eeb55db274eda3a6f81162ca415f232974aa1 + docs/models/components/FirstPartyDataInput.md: + id: 060450ea7403 + last_write_checksum: sha1:6f190a81ee202e42bcf1df68444b2a01b859962e + pristine_git_object: 04eef79f39c0abb0f7b08db7ceb8f80951f27c9f + docs/models/components/FrequencyConfig.md: + id: 027308776f82 + last_write_checksum: sha1:c4aec1fb9a1f86733f665fff59405a61a6454449 + pristine_git_object: d566742e38745869dafeef64233cb75693553b28 + docs/models/components/GraphQLBulkJobError.md: + id: a7926a55d54a + last_write_checksum: sha1:4672f7b6a1f118028364aa895719364497408abb + pristine_git_object: a845aba0f7a7aaaf3352d73bef5fe4f75609077b + docs/models/components/GraphQLBulkJobRetrievalResponse.md: + id: 51b58f5ea473 + last_write_checksum: sha1:22ba097bb0b43994fb4ee9d948501b42032ed894 + pristine_git_object: 36d7f71892abad89696c8d62500010b9e73a1366 + docs/models/components/GraphQLRequestInput.md: + id: 51a44104af6f + last_write_checksum: sha1:ce84a2edeb00fcbf1873d5f61d3e3b6f2c05682f + pristine_git_object: 48c2780a160282611455391ef9eb29d7157f5161 + docs/models/components/GraphQlBulkJob.md: + id: a3ff1a46789e + last_write_checksum: sha1:3a3e8dae3b71217086e3e31374eded953dd85ea5 + pristine_git_object: e6d6c4c80d589bf67f405f7baa5819d7b10747c9 + docs/models/components/GraphQlBulkJobCallbackInput.md: + id: 44747b4119ef + last_write_checksum: sha1:41dbfb54889e5335f2ef1a7e27d8a68aef2bd01c + pristine_git_object: 355a04c2679cfaf86165a8370ad7d1a0f0db6ce0 + docs/models/components/GraphQlBulkJobPayload.md: + id: e5a76380aec8 + last_write_checksum: sha1:6a16336517605cd1614a4b485a50269526097220 + pristine_git_object: 27edafcdac4aa6b6f93b2e7c307264366335aef2 + docs/models/components/GraphQlBulkJobResponse.md: + id: 7098c3c6dd8e + last_write_checksum: sha1:d4c1643ca65fd975a71072a77f65717a1a90b5ec + pristine_git_object: 1577ac5e2bbecd3031cd6fc39935c17dee938f93 + docs/models/components/GraphQlQueryJobInput.md: + id: 9d04c32961bd + last_write_checksum: sha1:d34e1e3d11639e847182b885eaa65a5a505eb120 + pristine_git_object: c64a896f3f1615d212da2a08bd833abcfd4d795c + docs/models/components/IncrementalReachBrandInput.md: + id: 0b3f0a756b1b + last_write_checksum: sha1:01d7e5a0a7905ea505de41d6b66cfcafa444fd4e + pristine_git_object: 3550841416baeaaf1b3e7f84660f3353ac0674ed + docs/models/components/IncrementalReachProductInput.md: + id: d52090909008 + last_write_checksum: sha1:f3516521abbd493877fffc7ddfaac7e4ef4ed159 + pristine_git_object: 74de77798b3f4b9d1bf47b3d9e114a5252c1c60a + docs/models/components/KeyValuePairOfStringAndStringInput.md: + id: 7ea85b7937f3 + last_write_checksum: sha1:c768ace0f60efe2eef9f930cdd5fd2c825316e70 + pristine_git_object: 2108fc444a57779c2308d6ac572625d4aae4a94b + docs/models/components/MarketType.md: + id: 426035b00197 + last_write_checksum: sha1:92e2ac6fbe9d9621c2fe3ba197ce47ac891ce595 + pristine_git_object: 677a8b75ce74bfae5b5abc7daef85c98def375ca + docs/models/components/PassThroughFeeType.md: + id: 1659c9c896c8 + last_write_checksum: sha1:adee35d14199369b441445481bf3bc295e941f7b + pristine_git_object: dc50cf399a4bcff5f187bd2f14e0f2f7f5e723c0 + docs/models/components/ProblemDetails.md: + id: b6fc9712ab14 + last_write_checksum: sha1:a03ec7410fcce855a2841b00431d8ba71df3f742 + pristine_git_object: df047f21ab337055563b24d3a75ae85603d0c423 + docs/models/components/ProductListReportingTypeInput.md: + id: f004a3405035 + last_write_checksum: sha1:ab9b45f46492b30e06d3d04e64de780ff56a3124 + pristine_git_object: c18c515fa844cc8077bccc39af4ae7cccd3670cc + docs/models/components/RealyticsEntertainmentType.md: + id: 1974d3181d35 + last_write_checksum: sha1:7df8d783551d33b27fe66e2232f2335d08f46503 + pristine_git_object: af96d8c00f10c3dfd62b1b5140be059e9efc04ba + docs/models/components/RealyticsReachSettingInput.md: + id: 8e02ce28fb55 + last_write_checksum: sha1:7106ce62dc1d25f3faded4653bdc7501a079c116 + pristine_git_object: 66ba54fbdfcc60e2003bc71dbf37b2eb9270ea95 + docs/models/components/RestApiMethodType.md: + id: 8e3ca26fe474 + last_write_checksum: sha1:baa77cdf33e8a04074b03c7eddd17943668af9bf + pristine_git_object: 7e2b53844327eaf7205c23ff99b53a2d3295d170 + docs/models/components/Security.md: + id: 3878f0f84029 + last_write_checksum: sha1:360b8a84e7761cbeaa3ca81eea6c12fac2a55dbd + pristine_git_object: a230604ed3744ffc5149451340eb567818cd87d1 + docs/models/components/StandardJobStatusResponse.md: + id: d9db2aa7847d + last_write_checksum: sha1:35e3712d095e67d0a9db580c8bcc260aa79ed8eb + pristine_git_object: 9a9acbd0a1480443d0be6984e43703c820e8a11f + docs/models/components/StandardJobSubmitResponse.md: + id: ca557f16db6e + last_write_checksum: sha1:669d4251e7b7ad645e680138d80c345df7c3116c + pristine_git_object: de24a3b11f74f36a8b46b55004f890a269173d48 + docs/models/components/TargetingEndAge.md: + id: a4a7f1056fda + last_write_checksum: sha1:7b0b7c9d53dbed88a88619bf8f8ea33d4b42f890 + pristine_git_object: ee43803a7cb61eb8de4576e9efcdcd1d4e391d67 + docs/models/components/TargetingEndAgeInput.md: + id: adbfa089ab50 + last_write_checksum: sha1:b23cff533ef55c67909dc2da8b96f32242de0ee0 + pristine_git_object: 7bc5f1c8f593786c145f3912f2dad373fc25c05b + docs/models/components/TargetingGender.md: + id: bc6a259086ca + last_write_checksum: sha1:d6bc5b7bfc73105d45c73566da6daf5ea224081d + pristine_git_object: 999667d8f7a77ded5ac89f91fc72eac17235d4e6 + docs/models/components/TargetingGenderInput.md: + id: 47aad6e6476a + last_write_checksum: sha1:085762f9136d959f094dbea632220ed03afd9824 + pristine_git_object: 9a0a21587f944315499ae4b1e9c5b383e5931c41 + docs/models/components/TargetingStartAge.md: + id: 6bd15654c9a0 + last_write_checksum: sha1:13dc803a6bcf2b9b37d540912f05ce4bfb9b3919 + pristine_git_object: 7b9455eed12c1822a12864a84172f8b7db5af0cf + docs/models/components/TargetingStartAgeInput.md: + id: 05632f9bece7 + last_write_checksum: sha1:5f8388fdc4e3a0224e22f630ddf8a90c5f6db1af + pristine_git_object: 710fc038e352b62e2d1bd9857f9a7ae12de806a8 + docs/models/components/ThirdPartyDataInput.md: + id: 972f22cabb11 + last_write_checksum: sha1:b44728dafb5c9388d8e34f375a892e526a607eb5 + pristine_git_object: ba815e2542d4e8884f8330a154e580bbaa00c5cd + docs/models/components/WorkflowCallbackInput.md: + id: c7b3643732a3 + last_write_checksum: sha1:a39e2825b54a594eeeda04ef96720abf12d0da10 + pristine_git_object: b9e02a7f98cec01d487b367002b98c961c331acf + docs/models/components/WorkflowStatus.md: + id: 2f74e44a6f3a + last_write_checksum: sha1:a07db3419526e6a30be49b847998588a5486223f + pristine_git_object: 7912f012f66047745b1fd8c23f828ee88dcb2f4e + docs/models/errors/ProblemDetailsException.md: + id: f4ef0eb88b78 + last_write_checksum: sha1:acb501d0965ab8db68b58ddc7fceda52fe1d8ba3 + pristine_git_object: bd034b55ed5e6fe309f95650cf2a361f9150f356 + docs/models/operations/ArchiveAdGroupsRequest.md: + id: 6b1aa5ee1d08 + last_write_checksum: sha1:a0faca72272fcc12bf8ee183a3dcbee6b191d06d + pristine_git_object: e31476d938cc5822fd838d2fea7d59077780e6fa + docs/models/operations/ArchiveAdGroupsResponse.md: + id: dbebcf4b5564 + last_write_checksum: sha1:2eae0d063a74be91b0737c3f62dc7bd9eacba150 + pristine_git_object: d22a68e10cbec8cde592b6a0af6546f92b3f1168 + docs/models/operations/ArchiveCampaignsRequest.md: + id: 9063fe7f4c74 + last_write_checksum: sha1:6979cf5cebe757bb72bdfc08b2255760c865a36d + pristine_git_object: 9ef09cd17f2ec3affd526d2b5404fccd05b842d1 + docs/models/operations/ArchiveCampaignsResponse.md: + id: 05a062420bdb + last_write_checksum: sha1:0a8a001124ce985d77e6a7a4b5e2942ea7a0ce5e + pristine_git_object: 53eb2b89a73e9d703cacbd3f82d1214935af5890 + docs/models/operations/CreateAdGroupResponse.md: + id: b79552dc1dd9 + last_write_checksum: sha1:78665602d6f7b7302b8041d9a83092c0123410fe + pristine_git_object: c8293245fba578453fb94c0a471cd5eb9ba1575b + docs/models/operations/CreateAdGroupsJobResponse.md: + id: 5c0103687dbb + last_write_checksum: sha1:25b344d1b47893fb2ce6b43af4a365e1f3559316 + pristine_git_object: 5426c91e4e4603dba622f8a04c1a9726b221558e + docs/models/operations/CreateCampaignResponse.md: + id: 6d565ad94c84 + last_write_checksum: sha1:5545d5a17fbd7f6ec9e9f48b8527375f031221ab + pristine_git_object: 6ec2a08b5b10502ff24a911d21351752a48b5d62 + docs/models/operations/CreateCampaignsJobResponse.md: + id: 8258fd0f75b4 + last_write_checksum: sha1:447c41f173d9b334eda5d390691bbcb656541fc8 + pristine_git_object: 8bd364b0b9bcd1c7c6290d1d2346d1fba3579eea + docs/models/operations/GetCampaignVersionRequest.md: + id: a9b26e124e3c + last_write_checksum: sha1:5593de24910145b9eabea230d82bcc457c683ed8 + pristine_git_object: 80913342a46cff1eebe874501d97cb60a9bca387 + docs/models/operations/GetCampaignVersionResponse.md: + id: e9a8c840a808 + last_write_checksum: sha1:a4a396e1e1a2fadc67717065f05a6a30c4d652da + pristine_git_object: 1b0d00ef987b3baab49166afe3630a76cf33067e + docs/models/operations/GetFirstPartyDataJobResponse.md: + id: e6afaa4d8788 + last_write_checksum: sha1:8a7865a27bff2cce4141f1e33dd4940339fb6922 + pristine_git_object: cafc45c36ed172b1755a588143ddf8d036e66231 + docs/models/operations/GetGraphQlBulkJobStatusRequest.md: + id: b5d61c81adee + last_write_checksum: sha1:7bf44f545b6df1fc2b913003ae2b424eb988a180 + pristine_git_object: af3af87d9eca396ae2416716d9bf98952bfa342b + docs/models/operations/GetGraphQlBulkJobStatusResponse.md: + id: b8ebcc53c5bf + last_write_checksum: sha1:bb9a7af349236131ba8f4e87286c40ab8f287125 + pristine_git_object: bf1a777963a87d63fa4efef33c8b969f290e2feb + docs/models/operations/GetJobStatusRequest.md: + id: 5b57bd3631c3 + last_write_checksum: sha1:836d8f2f6d0a6b4c22a350e59fcf72f65825d33e + pristine_git_object: dfddc07d014702af84a83ac24784458b6138571a + docs/models/operations/GetJobStatusResponse.md: + id: a506bff104be + last_write_checksum: sha1:3a10a04926b9f22caca7a82e8d23243a71e2cd89 + pristine_git_object: 125f14f477ed5f77f897d9ba90112593a284ba8c + docs/models/operations/GetThirdPartyDataJobResponse.md: + id: 3836c3262637 + last_write_checksum: sha1:0e7c1fe0507f8ef420228169eda6fb937ee1c475 + pristine_git_object: a4a481a6c559e1e59126021112aef5c81884280d + docs/models/operations/SubmitGraphQlBulkQueryJobResponse.md: + id: 0c9da90e8d24 + last_write_checksum: sha1:51f66312fbe272eb66a5dec1dd2e0565da2e7e14 + pristine_git_object: 281b31e5e194b6a9af9f3fb168d14e6974778efa + docs/models/operations/SubmitGraphQlRequestResponse.md: + id: 654956db5779 + last_write_checksum: sha1:db2ac31d88eeaccf43d6f0fad86a59b38ea34199 + pristine_git_object: 3e34303d790a01d3d4a86deb8ac61e24df3ee8a1 + docs/models/operations/SubmitRestRequestResponse.md: + id: dbb39699cbeb + last_write_checksum: sha1:8d027114c0bd21c8a35cc3680ff54893c4ae53bd + pristine_git_object: 3a70aabe4fd989fb7e0af7f697918b08c24c9e64 + docs/models/operations/UpdateAdGroupResponse.md: + id: 75c976cb0819 + last_write_checksum: sha1:c9b5b6bdb7ed5e9db02487da1ce2489bfea6a097 + pristine_git_object: 8c671195e9dfb1db04119fc14cb0f9bdeedcb907 + docs/models/operations/UpdateAdGroupsJobResponse.md: + id: 2eb3a08d4422 + last_write_checksum: sha1:37d922c6e1efbb0dbcb2063f3bf6d5175f49d505 + pristine_git_object: 199bfd8b239c0c362481f83855c9f75bd31a3aa2 + docs/models/operations/UpdateCampaignResponse.md: + id: e8cc746dd393 + last_write_checksum: sha1:b1096ca8aac5c90138703a30e238cdfd28fb504f + pristine_git_object: fd3f2188285c8346e8f8b6cd06a0332c70ac28af + docs/models/operations/UpdateCampaignsJobResponse.md: + id: 08ac9986907d + last_write_checksum: sha1:1014116998900640224b89c57a0f0f8f5ffec6fe + pristine_git_object: 6b83d06c1e01eee499d8df9a75ccdc6e15fc8d3f + docs/sdks/adgroup/README.md: + id: 8e0c2412ebea + last_write_checksum: sha1:d81d7cbb41e990e8c42c1deb938a048a9b49f3b5 + pristine_git_object: e8d0cbfb6b130c2778955da89f2a874f5741a8c5 + docs/sdks/campaign/README.md: + id: 7c44530e0eca + last_write_checksum: sha1:d282deff320b71dd2a7a8631329a88570ddaf1b9 + pristine_git_object: 20dad29809bda1b16d52bdc1fc6e7c60882c0aff + docs/sdks/dmp/README.md: + id: 0b076a846392 + last_write_checksum: sha1:e66879ed52f7d470cf8ff1eaacd5fdbdbdd3ef7c + pristine_git_object: 54397529c0f3ef859dd8d19ed69756faa99f0e1a + docs/sdks/graphqlrequest/README.md: + id: 052d8a84b2ef + last_write_checksum: sha1:afd9add75bb8789b11182c2fa40e8f2ec52056a6 + pristine_git_object: d7d8a284256407a7b39eadfa2a4435914578d7b3 + docs/sdks/jobstatus/README.md: + id: eedaaa6caff4 + last_write_checksum: sha1:6c93cb991dc6217b39388240985d8438c1e9366f + pristine_git_object: 722a92b0cb2b655041e153860c92e1e3f57359d1 + docs/sdks/restrequest/README.md: + id: 241b82b286d0 + last_write_checksum: sha1:9ccce3971a56e9c1d8be0a37b0de06d58da830ab + pristine_git_object: 3ce1c99d3fb764351ce11c5d480f4b85909d8a66 + docs/utils/Blob.md: + id: 3d9a7c4ad67a + last_write_checksum: sha1:355cd79e1fded2e9c6016ed1344d993be5b6d852 + pristine_git_object: 560783da858833f8f97fe76f90be7fc7638b3ffb + gradle.properties: + id: 2afbb999f001 + last_write_checksum: sha1:0d4308c6a1cb61eddfb6086812bb076647f76e4d + pristine_git_object: 368ef2fefb284379c324661ae32c6e670cfa4dba + gradle/wrapper/gradle-wrapper.jar: + id: ec27dae6e852 + last_write_checksum: sha1:f725fb1467084142d74fd7cd8eab691ab3442611 + pristine_git_object: 1b33c55baabb587c669f562ae36f953de2481846 + gradle/wrapper/gradle-wrapper.properties: + id: fbe448ebfc3e + last_write_checksum: sha1:cd2b4a92ef78f65abc751f0619d159ab3f8f973e + pristine_git_object: ff23a68d70f3cdb1e68a3761ef342d929fd90aee + gradlew: + id: 5bbfa66edb4d + last_write_checksum: sha1:680217d55865c44c2dbc51b106a01ca14152a615 + pristine_git_object: 23d15a9367071145e9c79bb4ddf879d1fbe78b5d + gradlew.bat: + id: 2a45a911a8f1 + last_write_checksum: sha1:755607dcbac0ba8adba338ef00aafc1177ceb2b5 + pristine_git_object: 5eed7ee8452842305a18a4eb967442683808226a + publishing.gradle: + id: 0f10e722a87d + last_write_checksum: sha1:c355c778f5e56d2423eb4e8949d0c25588c8994a + pristine_git_object: 612ada74d9ea1cfc6b58adef8b69e4f487e3169b + settings.gradle: + id: 05efc8b16577 + last_write_checksum: sha1:0c7532d780ab86e9a39696462b3749c98499f94b + pristine_git_object: c7811fbeceaa09017ec02bfa2af177c94e0930f7 + spring/workflows-spring-boot-autoconfigure/build.gradle: + id: b5eaf53fd2e1 + last_write_checksum: sha1:601ed29157d17cc241a591a478362ec98fafb19d + pristine_git_object: 46d0745d27098953ed6441184b26153f332694d1 + spring/workflows-spring-boot-autoconfigure/src/main/java/com/thetradedesk/workflows/ConditionalOnPropertyPrefix.java: + id: d2901c852261 + last_write_checksum: sha1:2626f3bde2376fc7fdb7f30f5d61f26ee7ad3e45 + pristine_git_object: af1050ba683cd67548b4b333eb39bfc5138d7f03 + spring/workflows-spring-boot-autoconfigure/src/main/java/com/thetradedesk/workflows/OnPropertyPrefixCondition.java: + id: 993fcf03a0ce + last_write_checksum: sha1:0242ab12bf9de8f3a0289e58f27ae53fbad6fbf4 + pristine_git_object: d138656099a7dd677ba5052a3bba1969ae9da600 + spring/workflows-spring-boot-autoconfigure/src/main/java/com/thetradedesk/workflows/WorkflowsAutoConfig.java: + id: "794759041478" + last_write_checksum: sha1:2d7438da0042a2ef53f8638ed608134802a51267 + pristine_git_object: a11d62b4493436aec9ce2c4cef03d1fbfc2cad27 + spring/workflows-spring-boot-autoconfigure/src/main/java/com/thetradedesk/workflows/WorkflowsAutoConfigProperties.java: + id: e5b6b40932d4 + last_write_checksum: sha1:bffebd0704b7d583d6c00c7aa87e91036d4a173f + pristine_git_object: dd55b3fe0e8e29a6ac05647b95b43801e197d8d5 + ? spring/workflows-spring-boot-autoconfigure/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports + : id: 61eeec9c94f4 + last_write_checksum: sha1:d43f84af55c286dd280f9f967d4f1b02491e9d71 + pristine_git_object: 1a444142b0598dfa347dcf8de5087db79bb8dc83 + spring/workflows-spring-boot-starter/build.gradle: + id: fdeb190e1106 + last_write_checksum: sha1:d91af03d16580e6dbcfc26662ff82477f9d31431 + pristine_git_object: 33a8915fc43e6b0e8c791ba00b7a5ba2e498baef + src/main/java/com/thetradedesk/workflows/AdGroup.java: + id: 6d480caf178d + last_write_checksum: sha1:8d72c889f71459da776c54399227897b625ea459 + pristine_git_object: d6bbd0343720e559a6fdb11a898a7463ffa1fdad + src/main/java/com/thetradedesk/workflows/AsyncAdGroup.java: + id: 928159976ec7 + last_write_checksum: sha1:0947a3dbd9ec869e4ee0a83da82b62896c44179d + pristine_git_object: 31aeb86da5417f3d369030b117f2573b8ec292bd + src/main/java/com/thetradedesk/workflows/AsyncCampaign.java: + id: d9760d4576df + last_write_checksum: sha1:e6c7a0af1e58cc8fae8cf2edc8acfbeb1d8254de + pristine_git_object: 9923dc35c36924b9ce1d12a5cc1f2fdab40a68bc + src/main/java/com/thetradedesk/workflows/AsyncDmp.java: + id: 5e932302f154 + last_write_checksum: sha1:6980911e8948e5ccd0bf1dbd4e4a0a860d451362 + pristine_git_object: 88049f10efd66eb9031a1d42432292b183e47a5b + src/main/java/com/thetradedesk/workflows/AsyncGraphQLRequest.java: + id: a2007f112b09 + last_write_checksum: sha1:89cdf5347a64528f769cc86a595453979138530e + pristine_git_object: fe5f8204beea5be56f381db055e5311481e1b8e5 + src/main/java/com/thetradedesk/workflows/AsyncJobStatus.java: + id: 374bc7ebcbf9 + last_write_checksum: sha1:14cdcd3e0a1f8055ce5a19cff806bd792547f42b + pristine_git_object: c40fb1c265f319c84a27573c180c27b9d9e01714 + src/main/java/com/thetradedesk/workflows/AsyncRESTRequest.java: + id: abdc38bcc1ab + last_write_checksum: sha1:a7623ac784d3c7150d32835f6375963dea320dab + pristine_git_object: ca697ea1e7c3c098ad37618ed565d1fe56571802 + src/main/java/com/thetradedesk/workflows/AsyncWorkflows.java: + id: d111c2fa99f5 + last_write_checksum: sha1:a4f3e02451727d18cf8de60ea7171102a8a9d927 + pristine_git_object: e2907856ff3ad1c21ddcc7680b593dbd2e0c6749 + src/main/java/com/thetradedesk/workflows/Campaign.java: + id: d793093d54a1 + last_write_checksum: sha1:e2c0445435e175edb497b536d062474155d41700 + pristine_git_object: 56bfc89c93100c6bc6a99f1b5826688b35b353a9 + src/main/java/com/thetradedesk/workflows/Dmp.java: + id: 43d172b6587c + last_write_checksum: sha1:1811a7e52b01b262d7474991d07932b2bdfb48b0 + pristine_git_object: ebd5b7d1de9ad147473ef3d67801815973001914 + src/main/java/com/thetradedesk/workflows/GraphQLRequest.java: + id: 9f6e9c5f4106 + last_write_checksum: sha1:16de477d48d1e7a295d07921cf3a0840486341da + pristine_git_object: 29eccf2ff3629b357c872f5f1b849b98b720e5cc + src/main/java/com/thetradedesk/workflows/JobStatus.java: + id: e1e80c5c5877 + last_write_checksum: sha1:7f79f83020f7e52e0f1a70ebe2b4f70314eee0d0 + pristine_git_object: 44b3a4aeb4fb9385abb3e5dfe4fbc0db48a4b0a7 + src/main/java/com/thetradedesk/workflows/RESTRequest.java: + id: 3f5cc8f7624f + last_write_checksum: sha1:d1c5e1c15b9870485873787fb7bf52065e0c2fce + pristine_git_object: e18b1357107cc828db09181715988ea5d51cf731 + src/main/java/com/thetradedesk/workflows/SDKConfiguration.java: + id: a59a881fc3b5 + last_write_checksum: sha1:f5d848c7e68f81e035abe205fa4615f2bc898720 + pristine_git_object: fe1c532bf075f419b5dba2d1d7b15d76bfaa5348 + src/main/java/com/thetradedesk/workflows/SecuritySource.java: + id: 696561dc3c53 + last_write_checksum: sha1:81f51518d023f26daaaaf94cfd6a019bf96ab48b + pristine_git_object: 95841de006dbfd2e112d0d4ee77583e09838583f + src/main/java/com/thetradedesk/workflows/Workflows.java: + id: 809add4007e0 + last_write_checksum: sha1:ce7e7cce09c5ee6ed7864dfd89759d09d11f9752 + pristine_git_object: 73a4f10c9e94ab5fb102cb7be8e06546402efb7e + src/main/java/com/thetradedesk/workflows/models/components/AdGroupAssociateBidList.java: + id: 58844e6a64af + last_write_checksum: sha1:64370d2c7b18cf97ff2d207acff41d498f493a1b + pristine_git_object: abd246f1ec8531265129b3fe04acd788f0224783 + src/main/java/com/thetradedesk/workflows/models/components/AdGroupAudienceTargeting.java: + id: dc00197586ef + last_write_checksum: sha1:5b15932aa122566cf1bfc70266e4a7e92c9c3626 + pristine_git_object: ac43846b15efbaf69eeff5e00a0ad0e28ed671d3 + src/main/java/com/thetradedesk/workflows/models/components/AdGroupBudget.java: + id: df9c20e5d98b + last_write_checksum: sha1:6f194be392eeaa8d31b820eb6bf2e69a9f66cced + pristine_git_object: 4e0572900af1263155b604ab27b2382296e10a76 + src/main/java/com/thetradedesk/workflows/models/components/AdGroupBulkCreateWorkflowInputWithValidation.java: + id: 7329517afe6a + last_write_checksum: sha1:616ac2288338c48533ffba12c545741fcbec1ba6 + pristine_git_object: 6354d9ea8c5c569628d0b2fe12a67509bb57bb38 + src/main/java/com/thetradedesk/workflows/models/components/AdGroupBulkUpdateWorkflowInputWithValidation.java: + id: 08349c9bbe4f + last_write_checksum: sha1:08d6f049d1133eb87d47a7bf2d3e45e4d37c9ef6 + pristine_git_object: 80b1d53970ebc44d8f65a09704fc03b7a6907339 + src/main/java/com/thetradedesk/workflows/models/components/AdGroupChannel.java: + id: 1289804a6e0b + last_write_checksum: sha1:77f763e1baaaa93af303d1d6fbc8cffd91c47879 + pristine_git_object: 158fabac02506a51bd4299ad1efc6747f01968f2 + src/main/java/com/thetradedesk/workflows/models/components/AdGroupComscoreSettings.java: + id: 5c5f4a2c8ada + last_write_checksum: sha1:52054eb2834ca9202e67d950390ef9bee77c8941 + pristine_git_object: 6aa1853cec41f05c8c9e0289b4024087ac84df3c + src/main/java/com/thetradedesk/workflows/models/components/AdGroupContractTargeting.java: + id: fa8bf4648840 + last_write_checksum: sha1:b1d47416b2274cc63494da4ab7c7b44d0b6befdc + pristine_git_object: 120f7716e2801468865157ca6c7500a441f24d52 + src/main/java/com/thetradedesk/workflows/models/components/AdGroupCreateWorkflowInput.java: + id: 129e317cbfc2 + last_write_checksum: sha1:7605963f7999204360a0dec016c042b357f76020 + pristine_git_object: f8dbb9001839a580f0adc19c3083c5a094296134 + src/main/java/com/thetradedesk/workflows/models/components/AdGroupCreateWorkflowInputWithValidation.java: + id: 753dbc1626a4 + last_write_checksum: sha1:a990aecada33cc9548e6b6a1e4d11134cb9f904e + pristine_git_object: 3bc572e99e35d6fb71c61b108350562bfe04ceb6 + src/main/java/com/thetradedesk/workflows/models/components/AdGroupCreateWorkflowPrimaryInput.java: + id: 787f4cbbe4cb + last_write_checksum: sha1:fb2d1a38d1c7eac44186284d48af932d9432e202 + pristine_git_object: 45ca79eb198b9fe09d371e1ec4a7a397b24d0890 + src/main/java/com/thetradedesk/workflows/models/components/AdGroupFlight.java: + id: f7e3a2c4f17e + last_write_checksum: sha1:b8aa112ba1d2a91786c7218c72732d395759ba18 + pristine_git_object: 70e0c28f852d3fa3926296820e4e0a3264ee1b73 + src/main/java/com/thetradedesk/workflows/models/components/AdGroupFunnelLocation.java: + id: 95c0f886ca3b + last_write_checksum: sha1:f52a31513de5d931abeaef35c9a076bba493955a + pristine_git_object: ba1b94615989631c3af8dcf0527620572d9ddfaa + src/main/java/com/thetradedesk/workflows/models/components/AdGroupKoaOptimizationSettings.java: + id: 74e9b7e0ddf5 + last_write_checksum: sha1:3b534d457bc51841fd6616eccc2a8a5750a1d16f + pristine_git_object: 92df03e5d252554985bc46277c269676960e8313 + src/main/java/com/thetradedesk/workflows/models/components/AdGroupNielsenTrackingAttributes.java: + id: 3cd9d42b2344 + last_write_checksum: sha1:ab2024f62d2eb75875f4f13195b532ba79927314 + pristine_git_object: 1d2f7eda3d252b361e9d26240b5662e84387a8c4 + src/main/java/com/thetradedesk/workflows/models/components/AdGroupPayload.java: + id: f504f56a5a0c + last_write_checksum: sha1:e21112ce05af12c888907f8bf121438f237bca3c + pristine_git_object: dca63ed513a7a3338f110602f6f8fd1d1f1cfd35 + src/main/java/com/thetradedesk/workflows/models/components/AdGroupROIGoal.java: + id: 032800fc0c87 + last_write_checksum: sha1:499ba3e69d447de585a613e8d9b08fa046364873 + pristine_git_object: 1aea74c410f21a6181a7d16131f70018080a7d6f + src/main/java/com/thetradedesk/workflows/models/components/AdGroupUpdateWorkflowInput.java: + id: 3826c13b490e + last_write_checksum: sha1:6b1f477d1c7408324c1b91cd4dbd2be86f7ed133 + pristine_git_object: cc4a05fd6c33aec40db8665dd51c518f0d213f38 + src/main/java/com/thetradedesk/workflows/models/components/AdGroupUpdateWorkflowInputWithValidation.java: + id: fe90d03223b3 + last_write_checksum: sha1:99cd715038307e21b5d3a13b7f319d50105e0773 + pristine_git_object: ad14eadc2453ac14c8c84718f04b06a1c5b263c3 + src/main/java/com/thetradedesk/workflows/models/components/AdGroupUpdateWorkflowPrimaryInput.java: + id: 776b51efb457 + last_write_checksum: sha1:bf8b59415d4b7bab20a46a157cc6d4c9f634aae7 + pristine_git_object: 22cd898045851a8aec96735a382a417fb66d397a + src/main/java/com/thetradedesk/workflows/models/components/AdGroupWorkflow.java: + id: 056dc5468df9 + last_write_checksum: sha1:1613fc05811ab7cb2a62a275371fb409b8c5d5fe + pristine_git_object: aef608e9f89cb8bbdce105f74cc6eb9f8a46d327 + src/main/java/com/thetradedesk/workflows/models/components/AdGroupWorkflowAdvancedInput.java: + id: 78dbf8d5042c + last_write_checksum: sha1:091069276674677ea4159245d33dc2664a9d82a5 + pristine_git_object: 6e6b7d36fd9e5d7bd85acd022263bd9d874662a8 + src/main/java/com/thetradedesk/workflows/models/components/AdGroupWorkflowAssociateBidListInput.java: + id: 01a96f02aef7 + last_write_checksum: sha1:9efe82dcfc36601ca860e8d790d809302c974965 + pristine_git_object: 471ab885b7aa8b6757589614cb4e386b414c6575 + src/main/java/com/thetradedesk/workflows/models/components/AdGroupWorkflowAudienceTargetingInput.java: + id: 40532c7d6289 + last_write_checksum: sha1:2b596dfc81be31dc8a8965ec368b121ebdb06d87 + pristine_git_object: 86a5b1b188b010d869e7fce4165e9c45fcc610eb + src/main/java/com/thetradedesk/workflows/models/components/AdGroupWorkflowBudgetInput.java: + id: ee87d7780259 + last_write_checksum: sha1:a64cd9ff4a884746594a585bd304a33387e6e2ad + pristine_git_object: 96f27a29fe3af4c9245a8adcd08ed2debd9795c2 + src/main/java/com/thetradedesk/workflows/models/components/AdGroupWorkflowComscoreSettingsInput.java: + id: 36f61998de41 + last_write_checksum: sha1:fa7c52618d17bd8aaf790a086e56235a9ce31efd + pristine_git_object: 33a010b72c4b1e2f0842864a22ac666ad9c88ac8 + src/main/java/com/thetradedesk/workflows/models/components/AdGroupWorkflowContractTargetingInput.java: + id: 6134c09cd6e8 + last_write_checksum: sha1:406af543f85582dec19f5d6c6fceeda0ab727702 + pristine_git_object: 80c52510a3406b44f28cb914d9230be4a25bbf58 + src/main/java/com/thetradedesk/workflows/models/components/AdGroupWorkflowFlightInput.java: + id: 8e70ef833512 + last_write_checksum: sha1:70ed71dd62b53aa2cc2a86e5ee382f7954795f65 + pristine_git_object: 4d10ef3230a3a7c22d3ffc778a163604d84e0b72 + src/main/java/com/thetradedesk/workflows/models/components/AdGroupWorkflowKoaOptimizationSettingsInput.java: + id: 74bd62268289 + last_write_checksum: sha1:ecd641bd75daf8320a3cc938e3683175f07aa245 + pristine_git_object: 316f072b825a27b5404c23a7aa15bfbf1bd60be9 + src/main/java/com/thetradedesk/workflows/models/components/AdGroupWorkflowNewFrequencyConfigInput.java: + id: b7c0f192c92a + last_write_checksum: sha1:bcd330b9aa1984c797231a888c39b9f239fdd702 + pristine_git_object: 24baee684c2698b71d28c396cc42eef8d7beb682 + src/main/java/com/thetradedesk/workflows/models/components/AdGroupWorkflowNielsenTrackingAttributesInput.java: + id: 1af95953341b + last_write_checksum: sha1:ef08e519aa4f2bf3cd9537a1f3e9f37c1d423fcf + pristine_git_object: e37dbdfb6d60dfba3045a5b9ba78122bbd4f5c6b + src/main/java/com/thetradedesk/workflows/models/components/AdGroupWorkflowROIGoalInput.java: + id: ed49458b3236 + last_write_checksum: sha1:d36a650bb104ba3cadbb85fbc45f5edbb1485ff8 + pristine_git_object: d68f8f1f4f6d6a05f444d38f7802d55b90b190f0 + src/main/java/com/thetradedesk/workflows/models/components/AllocationType.java: + id: 50d1b90cb347 + last_write_checksum: sha1:bf0a6fa26f247c75c20148b51ef0ad59d89f9c88 + pristine_git_object: 5962e0f1b796ae5b3bfc2634f15e574d33537860 + src/main/java/com/thetradedesk/workflows/models/components/BulkJobStatus.java: + id: 2ec621ac7ad9 + last_write_checksum: sha1:ad410f4a772e76075f8607cf4a48a2e8cbc99a21 + pristine_git_object: 99e29edbf4b527a08f872dcbc55e6adc31653a61 + src/main/java/com/thetradedesk/workflows/models/components/CallRestApiWorkflowInput.java: + id: 68670ea0ce35 + last_write_checksum: sha1:b9d5ad337147632da8203aff84804bd3262bd613 + pristine_git_object: f42edec8299a9180baf603288062d0f25138045d + src/main/java/com/thetradedesk/workflows/models/components/CampaignBulkCreateWorkflowInputWithValidation.java: + id: e36e27f105c3 + last_write_checksum: sha1:154773732c8db0a6b77d831f9cb0cb5ca33032f3 + pristine_git_object: 908d08fe617c7612146d54b729e962ce992da835 + src/main/java/com/thetradedesk/workflows/models/components/CampaignBulkUpdateWorkflowInputWithValidation.java: + id: cfd3b6c645eb + last_write_checksum: sha1:69f3ede57b92ae6a780e9a966832d9f86f9f51ab + pristine_git_object: 43378d2c8e95f793f5dbd5153345518baa37824c + src/main/java/com/thetradedesk/workflows/models/components/CampaignChannelType.java: + id: 4dec5007135b + last_write_checksum: sha1:fdd376a5a2cc1a75b84023760f3f7594df186432 + pristine_git_object: da8ac55bc264e6cf9b8f015dd775cadf16b7da8c + src/main/java/com/thetradedesk/workflows/models/components/CampaignCreatePassThroughFeesInput.java: + id: badf55fd449b + last_write_checksum: sha1:a1ada19d3d002d70ca7cb54ce5f0b2013a1bc35e + pristine_git_object: b4a4baecc7bcc43f689bd5509dba0945871668fb + src/main/java/com/thetradedesk/workflows/models/components/CampaignCreateWorkflowAdGroupAdvancedInput.java: + id: fd4008047dcd + last_write_checksum: sha1:8f6b98a1d8a0d6ed6728b8ad3d8d3d34c999d39c + pristine_git_object: 1f4a2afc6c832c3e1c85d4ece2417b37e3cf7e9d + src/main/java/com/thetradedesk/workflows/models/components/CampaignCreateWorkflowAdGroupFlightInput.java: + id: ff80f33621f6 + last_write_checksum: sha1:ebae8d0967d20a62331f1b952cc2084e1e4f7641 + pristine_git_object: d3e8f5fe10b99661bb63eecba84190a56f6dd4ec + src/main/java/com/thetradedesk/workflows/models/components/CampaignCreateWorkflowAdGroupInput.java: + id: f8f30fd25f77 + last_write_checksum: sha1:3d95970922dc1c718b3f6604e40bb347e20266e3 + pristine_git_object: a5f3617d448785afab40abd6a897adc27ead0d6a + src/main/java/com/thetradedesk/workflows/models/components/CampaignCreateWorkflowAdvancedInput.java: + id: 7d19a9b43629 + last_write_checksum: sha1:ceffc919f6a46874560b0d6a9bbe4ceeb1a24e18 + pristine_git_object: bfa890855d04f35e47740a3dddd1cfe7b7743841 + src/main/java/com/thetradedesk/workflows/models/components/CampaignCreateWorkflowBudgetInput.java: + id: 6842840c86d2 + last_write_checksum: sha1:db1123bb71331ed3b7c0f06b0eb1242488cbb6b2 + pristine_git_object: 7c4f060e8254918acae68cd57d02b6689c048200 + src/main/java/com/thetradedesk/workflows/models/components/CampaignCreateWorkflowIncrementalReachCampaignSetting.java: + id: 0da9cb498e63 + last_write_checksum: sha1:e5b48175804259bf3e573ef5eacb8df84ab36085 + pristine_git_object: 7b3d3beca54d0a64bfb24f4433e79d4e65ddcf25 + src/main/java/com/thetradedesk/workflows/models/components/CampaignCreateWorkflowInput.java: + id: 3e334a051d1f + last_write_checksum: sha1:2e3835a37af232b1a1aeea87994d2f7f66d123fb + pristine_git_object: 295f0457a5bcbd5bfbaba1abce4be6dfc647a883 + src/main/java/com/thetradedesk/workflows/models/components/CampaignCreateWorkflowInputWithValidation.java: + id: 3ecde59040d7 + last_write_checksum: sha1:01eddae4562691da4552d8879729c1650f76aee8 + pristine_git_object: f7efa97b5237bd9425908e92b95f28ca24e52d58 + src/main/java/com/thetradedesk/workflows/models/components/CampaignCreateWorkflowPassThroughFeeCardInput.java: + id: 31176d5da65c + last_write_checksum: sha1:5728e90793e97bd89d61db278450666d446221f5 + pristine_git_object: fa70ff2fcab8e6ce0b5d7c88f9ba8b06649fa586 + src/main/java/com/thetradedesk/workflows/models/components/CampaignCreateWorkflowPrimaryInput.java: + id: b45ca95fdb75 + last_write_checksum: sha1:b29d6c621a2dd79b779bd2ef16c20693be05ce9a + pristine_git_object: ba1e2e6b3aeff58893bc54606fb7b21685dbfb5f + src/main/java/com/thetradedesk/workflows/models/components/CampaignFlightWorkflow.java: + id: ef9673364fdd + last_write_checksum: sha1:cf02853633ad7bdb5ffdb42b3568564a5ca4706c + pristine_git_object: 186f6a0429ee9055a44fea4c7cf65b240b28af97 + src/main/java/com/thetradedesk/workflows/models/components/CampaignPacingMode.java: + id: 6fce3657046c + last_write_checksum: sha1:d30d675fe6f9675185b7818d49f64e7850f72b7f + pristine_git_object: 32a9dbd0336c75f75a11a2d156e5518717b95ad4 + src/main/java/com/thetradedesk/workflows/models/components/CampaignPayload.java: + id: e69276b277a9 + last_write_checksum: sha1:de57b5789c4ced1a3f9b4a49e8bd8920604ed4e4 + pristine_git_object: f7fb194efc0113bdf177111e0f8a371dc93474e5 + src/main/java/com/thetradedesk/workflows/models/components/CampaignUpdateWorkflowAdvancedInput.java: + id: 78148a17af21 + last_write_checksum: sha1:e11c00631dce1d8b8b80327c5f1a3395b5aeba01 + pristine_git_object: 07bc95fb32ef5ccd901ac628b349b79482c5b68e + src/main/java/com/thetradedesk/workflows/models/components/CampaignUpdateWorkflowBudgetInput.java: + id: 2ad5ddfcaf6f + last_write_checksum: sha1:8f248e995693add04c0926313ef0df756df72b82 + pristine_git_object: 8213f2f49186950d80f34eaab3773670ba4a8ea2 + src/main/java/com/thetradedesk/workflows/models/components/CampaignUpdateWorkflowInput.java: + id: 0ee71ffd8a00 + last_write_checksum: sha1:408b53371f5373ea86e60c60c4ff263749ef4fe1 + pristine_git_object: ace81c4d992f8e124f291746a7a6dbfb8847e8e4 + src/main/java/com/thetradedesk/workflows/models/components/CampaignUpdateWorkflowInputWithValidation.java: + id: 99763c04011d + last_write_checksum: sha1:d154c9eae6d1bc3169ab383a485d6c28c3c1b46e + pristine_git_object: 2772733454de0af0598399d8ad3b3ffffc3a90b0 + src/main/java/com/thetradedesk/workflows/models/components/CampaignUpdateWorkflowPrimaryInput.java: + id: 0d43550c4e4c + last_write_checksum: sha1:feb4d21d41c9e901c37bd03724942785c5c62ddd + pristine_git_object: b1a83af86444f926f45d53980d59d46216bacb61 + src/main/java/com/thetradedesk/workflows/models/components/CampaignVersionWorkflow.java: + id: b38351bda26f + last_write_checksum: sha1:95ce5c9741b08ef09f0c48cbf69b841662d09e68 + pristine_git_object: a8d73de3f3224cbca50339388c0630ab408e7f96 + src/main/java/com/thetradedesk/workflows/models/components/CampaignWorkflow.java: + id: 81c16674538c + last_write_checksum: sha1:0df29ee2f734cdf939ede4ac8e0063f0df522593 + pristine_git_object: 4a812de33b83238f555f7adf94e934225f4b1d43 + src/main/java/com/thetradedesk/workflows/models/components/CampaignWorkflowCampaignConversionReportingColumnInput.java: + id: 7e0dedb985cf + last_write_checksum: sha1:c2426b6c816fe4e87d07a5de9f2412c1d01f8823 + pristine_git_object: 156af87f4ac1fe40bed59023bbebc266a67329bc + src/main/java/com/thetradedesk/workflows/models/components/CampaignWorkflowFlightInput.java: + id: bb32459ed84d + last_write_checksum: sha1:ed1e09ec25e027c49667d8358c487107917f616f + pristine_git_object: 39cd86e64ff81aaf89f12f932cbb26befcfb544d + src/main/java/com/thetradedesk/workflows/models/components/CampaignWorkflowROIGoalInput.java: + id: a799f93a0f97 + last_write_checksum: sha1:773e79694575909dfe5ce0f12ecf26941cdb1eb2 + pristine_git_object: 37a5273bb9928a4df7cd79d3e6d7a583d1b1f304 + src/main/java/com/thetradedesk/workflows/models/components/CustomCPAType.java: + id: 053d65d90fe6 + last_write_checksum: sha1:43bae61f2ec549f23b3f0a3ca62aa1801d45aaa6 + pristine_git_object: 6e5dfb6701780f99c7971efa34b201e7c6ea726b + src/main/java/com/thetradedesk/workflows/models/components/CustomROASConfig.java: + id: 6c501536a060 + last_write_checksum: sha1:8d898b07b3ca8e1a58b8ce69417eef68806d2ccc + pristine_git_object: 17ac0da99d4aadd71c63d807b5ccac428d9a3ebb + src/main/java/com/thetradedesk/workflows/models/components/CustomROASType.java: + id: 9b5418d7e215 + last_write_checksum: sha1:82bb14c75a87347e08fd5a8878f42c7a8a6c59d3 + pristine_git_object: 6e5ace8e0d745a0e457885d1c1598e851d64bdd4 + src/main/java/com/thetradedesk/workflows/models/components/DimensionalBiddingDimensions.java: + id: e8de72528def + last_write_checksum: sha1:3da58f3fe9eb8fcbca6868646717fe3c9943a3f1 + pristine_git_object: 9861eea9001bda90b56dd198e53546a00a68db40 + src/main/java/com/thetradedesk/workflows/models/components/EnhancedNielsenReportingOptions.java: + id: cc2abec07743 + last_write_checksum: sha1:381934731f424e9b2920bc4b7d816f1ac506d1bc + pristine_git_object: fe451aeb3b1fdf72ff41130b012f55c012007bf4 + src/main/java/com/thetradedesk/workflows/models/components/EnhancedNielsenReportingOptionsInput.java: + id: 57f6d1a12da1 + last_write_checksum: sha1:8be005e0e2b15de64bc9708431d59c07b0e2b52e + pristine_git_object: 8c0ab0964b157d5e2371727fd7af592d9117cc49 + src/main/java/com/thetradedesk/workflows/models/components/FirstPartyDataInput.java: + id: 95901fa8aa0a + last_write_checksum: sha1:d4038eaafaca1833f671b01fc5e6245fc9246b79 + pristine_git_object: 9115ccba917cccf42ac7b6bdd2a693dc8d7038f4 + src/main/java/com/thetradedesk/workflows/models/components/FrequencyConfig.java: + id: 8959612251ff + last_write_checksum: sha1:35d3d73b64e1a0b75e83404a6da20aa27391195f + pristine_git_object: 7b72c216b3556dad08dbcdcb38da4f0fc21a195b + src/main/java/com/thetradedesk/workflows/models/components/GraphQLBulkJobError.java: + id: f9144a148653 + last_write_checksum: sha1:d83b93b7d41492c1dc3646b5cb67d46e32277505 + pristine_git_object: 4264d58ad95f54f0ceda4e47c7d91698952d2f94 + src/main/java/com/thetradedesk/workflows/models/components/GraphQLBulkJobRetrievalResponse.java: + id: e7df9be2a82b + last_write_checksum: sha1:85c4f135e1e75b23b2ad58a815c29b8c6174ab4f + pristine_git_object: 2cd766c52d71a84adfadc303dff6b4c4f82354af + src/main/java/com/thetradedesk/workflows/models/components/GraphQLRequestInput.java: + id: 189707a6083a + last_write_checksum: sha1:aaea5f7d2d34c0e071de18520122e1b002305e43 + pristine_git_object: 083341346130088228006276a4127e077b28df32 + src/main/java/com/thetradedesk/workflows/models/components/GraphQlBulkJob.java: + id: 2e0ff339f72f + last_write_checksum: sha1:e3216fecbe5f53b3cdc46f5b65200a9f457445d7 + pristine_git_object: 8c385737336db117633be0a6dc8e0516d00499f6 + src/main/java/com/thetradedesk/workflows/models/components/GraphQlBulkJobCallbackInput.java: + id: 16436bbfbf63 + last_write_checksum: sha1:fd3f52cf4ac689d920cdb721e69c216bb9a0f943 + pristine_git_object: a1b979d2ee6e1e80d81ae1a19c9429829f45558b + src/main/java/com/thetradedesk/workflows/models/components/GraphQlBulkJobPayload.java: + id: 4b2c7844be6a + last_write_checksum: sha1:b8bd19a04ca3268b6fd4385553ad24bd3e380c67 + pristine_git_object: 5685ff305266117a719b91c7faa152c873f9b774 + src/main/java/com/thetradedesk/workflows/models/components/GraphQlBulkJobResponse.java: + id: 428b12dc7a6e + last_write_checksum: sha1:14d3ec61e9a618a47c4c0a4d06df00d56fbeb6d6 + pristine_git_object: b35468a75d5caf3848aa740811e6b2a6842710fd + src/main/java/com/thetradedesk/workflows/models/components/GraphQlQueryJobInput.java: + id: a4604eb959e0 + last_write_checksum: sha1:2dca7b76ab3a2b7644fe69bb859639225b613132 + pristine_git_object: 937b145fa57e99422741afe7dd7cb6ded34ed863 + src/main/java/com/thetradedesk/workflows/models/components/IncrementalReachBrandInput.java: + id: 91c45761b42e + last_write_checksum: sha1:f72eb981a5facdae41788795dee7637b54cb2cf1 + pristine_git_object: 88de2bd3cab55c0fa918e01d65ddd81e5fdfa622 + src/main/java/com/thetradedesk/workflows/models/components/IncrementalReachProductInput.java: + id: e5dbf7392eff + last_write_checksum: sha1:26afc1b1b756c1b4c3918236cf46889312db2273 + pristine_git_object: df1c381ef18ec65464337a74e083736ad113841b + src/main/java/com/thetradedesk/workflows/models/components/KeyValuePairOfStringAndStringInput.java: + id: 51d1be6d04b0 + last_write_checksum: sha1:3ff297608acb5bf8e7b8d14578bbbea06e9b58f6 + pristine_git_object: ed6e8f2fb94718564a74f575e68621d0a75fbd2e + src/main/java/com/thetradedesk/workflows/models/components/MarketType.java: + id: 574b87a67d5c + last_write_checksum: sha1:f34ac6b29497af885ccdd5217564981f86a5d01b + pristine_git_object: a68cbb37d9ba9ff6d55813627b6f13543dedb91a + src/main/java/com/thetradedesk/workflows/models/components/PassThroughFeeType.java: + id: 8ee5955387d1 + last_write_checksum: sha1:92c3303dedb985ba04509fe7f28a0a8e1a4df7dc + pristine_git_object: 0b41f2aea85d25b42540818a28bde30a25c333ca + src/main/java/com/thetradedesk/workflows/models/components/ProblemDetails.java: + id: f85052ad4756 + last_write_checksum: sha1:a6638dd28c3ab2ad0d7d2a0731738dea40ee4378 + pristine_git_object: ddd6a01a16c71b121b743f0f9bbd12f1126de3a1 + src/main/java/com/thetradedesk/workflows/models/components/ProductListReportingTypeInput.java: + id: 9d0cadfce57b + last_write_checksum: sha1:ab0a357aed727fcdf30852f66d00cd1a1eca3ef3 + pristine_git_object: 9ef5bddbda99af06fb9efdb206a3bdd936940c3b + src/main/java/com/thetradedesk/workflows/models/components/RealyticsEntertainmentType.java: + id: 2f3a6c36eedf + last_write_checksum: sha1:a541abd5f3b2854851ce92e1699012eedf0078b3 + pristine_git_object: 4b0730c368bf3bd2e72801d4e6a2152c74dca906 + src/main/java/com/thetradedesk/workflows/models/components/RealyticsReachSettingInput.java: + id: 710a017ad69a + last_write_checksum: sha1:dc5457345f5875311a3f84c9a062a44690b6debf + pristine_git_object: 26a981017ce5aeb302134388d7989de515571ad8 + src/main/java/com/thetradedesk/workflows/models/components/RestApiMethodType.java: + id: 5f4807259d1d + last_write_checksum: sha1:3baae287dd021609a1c49523130aae44fdca2ac9 + pristine_git_object: baef2a8ef68a044cb7c2e1070398e838e05ba968 + src/main/java/com/thetradedesk/workflows/models/components/Security.java: + id: 472c4e85e75b + last_write_checksum: sha1:0db6465ca5ac287f9218631e215d0e06bc9a9975 + pristine_git_object: c0e0804d5e667a96fd3f99c0bdf3a6608d01878f + src/main/java/com/thetradedesk/workflows/models/components/StandardJobStatusResponse.java: + id: 42727ea216ea + last_write_checksum: sha1:20dafdedf0f02d04981754d5cdda5092d6ba76df + pristine_git_object: 4237e8f61fe273ab53e6cc2fa5e0f4c951efa544 + src/main/java/com/thetradedesk/workflows/models/components/StandardJobSubmitResponse.java: + id: 9e375641aaf0 + last_write_checksum: sha1:34593532ba2867543ad3b4e5f9debcdcb28f0805 + pristine_git_object: 3a7ef5b4b2f588e2142dff1c60df23723a399478 + src/main/java/com/thetradedesk/workflows/models/components/TargetingEndAge.java: + id: de17193057ae + last_write_checksum: sha1:b02622787e13a19a7eaf4a65f6f2062a6bb3ac89 + pristine_git_object: 4a90208bab5bbc3f59d35819ae9e85527a56b4b9 + src/main/java/com/thetradedesk/workflows/models/components/TargetingEndAgeInput.java: + id: a46c5d9d2005 + last_write_checksum: sha1:380f42ba160aee27348419e8ff9e44b5ba0fa3a6 + pristine_git_object: f252d2dedbe96f8159eae551eb1c2d7a900039a2 + src/main/java/com/thetradedesk/workflows/models/components/TargetingGender.java: + id: db2edde07947 + last_write_checksum: sha1:0ae4576ecf93804c78096e7888b991a29419b01a + pristine_git_object: 48927b27b87683f473805a045df73b1a468e3982 + src/main/java/com/thetradedesk/workflows/models/components/TargetingGenderInput.java: + id: 3ef0359c73a9 + last_write_checksum: sha1:39672e60bfcec581883bf1c00387028a6fc17409 + pristine_git_object: 7aabfd9415bcb5af69bfd7cad2cd0a372031197c + src/main/java/com/thetradedesk/workflows/models/components/TargetingStartAge.java: + id: 09f59c9442f7 + last_write_checksum: sha1:53fbaf3b632b1001f7045f375c3722a5e77c4ab7 + pristine_git_object: 7868c1bce91c30e1035495b374efc9d70626f545 + src/main/java/com/thetradedesk/workflows/models/components/TargetingStartAgeInput.java: + id: 26a76fd9d9ce + last_write_checksum: sha1:69bda4aaf835a57af53d5e404d33347ef985f1b3 + pristine_git_object: bbf0bbc37020294507de1c207e283aafb3a13193 + src/main/java/com/thetradedesk/workflows/models/components/ThirdPartyDataInput.java: + id: 16cc0eae25cf + last_write_checksum: sha1:c77abd7bf5ea62637f9d1886e35f22150a9d1e52 + pristine_git_object: e57f0bf8d67ade52fe77e448ee74292a3fbfd61d + src/main/java/com/thetradedesk/workflows/models/components/WorkflowCallbackInput.java: + id: 3c4b33ea6c3f + last_write_checksum: sha1:56bcb8418603685e54c00f89e053fda569030555 + pristine_git_object: 4e8d2efc312a69a4f483e6041ed862a3f0917db9 + src/main/java/com/thetradedesk/workflows/models/components/WorkflowStatus.java: + id: 9b522898478d + last_write_checksum: sha1:fc58ce4438121ce5bdebaf66b111f413f22be61f + pristine_git_object: bba462c10b0081bcf28627fe314c37797336357f + src/main/java/com/thetradedesk/workflows/models/errors/APIException.java: + id: e3a0bf115a43 + last_write_checksum: sha1:5cedda5fc8ba513d996d429e9ed0f024d78232da + pristine_git_object: 760215863eede9a062b20b2dc2af3cadac9b87cc + src/main/java/com/thetradedesk/workflows/models/errors/AsyncAPIException.java: + id: e0e9b9d40a94 + last_write_checksum: sha1:41883821e03106428c71129aa41694391be360a8 + pristine_git_object: 34567f48c672ce20d6c5d21229023ef87cdd4e74 + src/main/java/com/thetradedesk/workflows/models/errors/AuthException.java: + id: ab1ef50fe445 + last_write_checksum: sha1:0e00483735c75e7a937f86116962c8da3a390b3d + pristine_git_object: 0979df8891d8071f04c76b4abb3746588e97e496 + src/main/java/com/thetradedesk/workflows/models/errors/ProblemDetailsException.java: + id: 5e53e44907f8 + last_write_checksum: sha1:0a1734c624ab0a760fcb0298f39c11ea2c52f6e7 + pristine_git_object: 2526bbcd1fa01d3b7cbfd120b75fab579769dd4d + src/main/java/com/thetradedesk/workflows/models/errors/WorkflowsError.java: + id: 671521bacb93 + last_write_checksum: sha1:a4101ec43a971ac1a406812cb79aa2809f4da9db + pristine_git_object: 70878d2a3a957a9d407b586953d3c22f129c8f7c + src/main/java/com/thetradedesk/workflows/models/operations//async/ArchiveAdGroupsRequestBuilder.java: + id: 66a5694ee30e + last_write_checksum: sha1:d00f2fac8050cef62a168fa92b303e384a75bd28 + pristine_git_object: 883675876bc0897bd6cb3552dbb5752985b9cb78 + src/main/java/com/thetradedesk/workflows/models/operations//async/ArchiveCampaignsRequestBuilder.java: + id: 9074f8de8c86 + last_write_checksum: sha1:856912e041b620026fb7b8709bb9c3aec98b1874 + pristine_git_object: 9cd856bc419c7aa0cdebb4cb6935569cc8e37496 + src/main/java/com/thetradedesk/workflows/models/operations//async/CreateAdGroupRequestBuilder.java: + id: 226f3569d668 + last_write_checksum: sha1:8ff024fb87df151449e91313e4b8a9d2869dbc06 + pristine_git_object: e2fb8c43083d94548d530a5709011586a578e411 + src/main/java/com/thetradedesk/workflows/models/operations//async/CreateAdGroupsJobRequestBuilder.java: + id: 66f879e0a243 + last_write_checksum: sha1:5c5a25b9dadec935dcb02337905cbd7e81cbb09a + pristine_git_object: 3c68fc88ab3cafc670766f28142bb9583b53059c + src/main/java/com/thetradedesk/workflows/models/operations//async/CreateCampaignRequestBuilder.java: + id: 12982098d39f + last_write_checksum: sha1:bf1c4bedfad6cbbbf0ab4747f409f858c2a1e2a7 + pristine_git_object: 6cba1b818918a42400846768f42f4abb1a5c5d67 + src/main/java/com/thetradedesk/workflows/models/operations//async/CreateCampaignsJobRequestBuilder.java: + id: 64e9a5bb14d4 + last_write_checksum: sha1:89eeb6ead9a7c37496239a9b31141e987b23091e + pristine_git_object: a6d2a36bfe4cc434ee9fde02daba8256ce85e6fd + src/main/java/com/thetradedesk/workflows/models/operations//async/GetCampaignVersionRequestBuilder.java: + id: 4aea56d8aafa + last_write_checksum: sha1:184afb30ee7f802d4b828094e64b56af84e17b9b + pristine_git_object: c730f71ad58e065a624d1c28fd6f67a332a110be + src/main/java/com/thetradedesk/workflows/models/operations//async/GetFirstPartyDataJobRequestBuilder.java: + id: 27a932230521 + last_write_checksum: sha1:72c6b76a887dcbd6e2d2456348cc595db4aaa8e0 + pristine_git_object: 4e792408892a86f7c76d85975a5195618a767455 + src/main/java/com/thetradedesk/workflows/models/operations//async/GetGraphQlBulkJobStatusRequestBuilder.java: + id: d11a697c2469 + last_write_checksum: sha1:54fdbe8f7549f92e42191382a61907bc6c67849e + pristine_git_object: 53dba16a8f3b5772dff3f97ddb991a1644df9a63 + src/main/java/com/thetradedesk/workflows/models/operations//async/GetJobStatusRequestBuilder.java: + id: 9062828100aa + last_write_checksum: sha1:b8c5cf15e805c1e6019c0ff5ac45f97cf171c22e + pristine_git_object: 925df26956fe65f2e1396a2e0c42a0e470a257e2 + src/main/java/com/thetradedesk/workflows/models/operations//async/GetThirdPartyDataJobRequestBuilder.java: + id: fba679804810 + last_write_checksum: sha1:86ce194dff8e88e234c52f825acb632959f5ae25 + pristine_git_object: 679dacce0e176fc3c3b0963980563900800cf3a2 + src/main/java/com/thetradedesk/workflows/models/operations//async/SubmitGraphQlBulkQueryJobRequestBuilder.java: + id: 401ec4661f27 + last_write_checksum: sha1:1c243f8a15e287ab83b64761de0501f1add3a403 + pristine_git_object: e5a39f7c95555065bdb3b4914928cc820540453a + src/main/java/com/thetradedesk/workflows/models/operations//async/SubmitGraphQlRequestRequestBuilder.java: + id: a11651f5eb37 + last_write_checksum: sha1:f5c4b827942031029acfd22bae6c55785fd6131b + pristine_git_object: c1d0abb04868389890977b0051ec16e899a7bfd5 + src/main/java/com/thetradedesk/workflows/models/operations//async/SubmitRestRequestRequestBuilder.java: + id: 62eb2aeea828 + last_write_checksum: sha1:d8ce70ee3b5480dcde9eea6b3a19f77915b9610d + pristine_git_object: 7f847b397f728685ceee9fdb1cda18d01172cf73 + src/main/java/com/thetradedesk/workflows/models/operations//async/UpdateAdGroupRequestBuilder.java: + id: 47cf0c7b9d67 + last_write_checksum: sha1:5aba7311a8b2dd5b54795d0110df65fb915fee2a + pristine_git_object: f4998d9b9be08ca9ae1b48ad177f738d759d455a + src/main/java/com/thetradedesk/workflows/models/operations//async/UpdateAdGroupsJobRequestBuilder.java: + id: b14009e3fa0a + last_write_checksum: sha1:a841094ee45a665afe44e6ba81b7b9172a1327ac + pristine_git_object: 96b2db10301e748167362c40b0e5b0245de4bbb0 + src/main/java/com/thetradedesk/workflows/models/operations//async/UpdateCampaignRequestBuilder.java: + id: 9be5bc994d69 + last_write_checksum: sha1:36331d7b263256c07d42ce21d2fdfe1d7dddc94f + pristine_git_object: 1c03f3d6166fd56eac446de9210ea1325d43ab5a + src/main/java/com/thetradedesk/workflows/models/operations//async/UpdateCampaignsJobRequestBuilder.java: + id: 1c69d9634823 + last_write_checksum: sha1:9d1a405d4d49fdf2a06d78a8e2e45848d879f392 + pristine_git_object: 8598630f28c1f9705aecbdaa833d9fb03f5cb9f1 + src/main/java/com/thetradedesk/workflows/models/operations/ArchiveAdGroupsRequest.java: + id: 5041e415d638 + last_write_checksum: sha1:5de3e92b3b2e7977e945cfdbb0c70b28fefede01 + pristine_git_object: 710a503036ebc57ea533fe95f8fecd4f3c7968b6 + src/main/java/com/thetradedesk/workflows/models/operations/ArchiveAdGroupsRequestBuilder.java: + id: 02470f468593 + last_write_checksum: sha1:8fe5dc9a8e1df6b493345746d4ffdce0162df204 + pristine_git_object: f78bf7a55cdc9174b7e668b3fd54afb08c90fc31 + src/main/java/com/thetradedesk/workflows/models/operations/ArchiveAdGroupsResponse.java: + id: c8f29cbf17c3 + last_write_checksum: sha1:a3bb36d5f3e5fa9df6999366adba81d9d9387e48 + pristine_git_object: fee3936bca88080251229919a5e4f42cea86dd08 + src/main/java/com/thetradedesk/workflows/models/operations/ArchiveCampaignsRequest.java: + id: ac2015d04450 + last_write_checksum: sha1:a8a695b74e457900cccf1946b737c24f52d1fdbb + pristine_git_object: 0d07f2a3ab85064d7a7144cf2a713933f8005101 + src/main/java/com/thetradedesk/workflows/models/operations/ArchiveCampaignsRequestBuilder.java: + id: 0b39a6895590 + last_write_checksum: sha1:fdcc61f78eea250921f640335733470f811586d6 + pristine_git_object: 9b1aa56bac4a582bdf9c135df398e55cb437a47d + src/main/java/com/thetradedesk/workflows/models/operations/ArchiveCampaignsResponse.java: + id: c67b655eb736 + last_write_checksum: sha1:320f8d676dbd48af9c1627d16dc8e35db29b7d96 + pristine_git_object: d0a9248ced805197123705a8797a127597e9cef6 + src/main/java/com/thetradedesk/workflows/models/operations/CreateAdGroupRequestBuilder.java: + id: eee50554c1de + last_write_checksum: sha1:2c33eb08d304715c623b490a76feb5f7f965cd00 + pristine_git_object: c66976993e4f5302311ae2a8c2ede6e6f3c6b89b + src/main/java/com/thetradedesk/workflows/models/operations/CreateAdGroupResponse.java: + id: b9d38df2b44c + last_write_checksum: sha1:9534096e4dd9851aa7c9e17211fa2b251515bad3 + pristine_git_object: 237f06a3ea6b7ac301838f48c3a10fae3a139e13 + src/main/java/com/thetradedesk/workflows/models/operations/CreateAdGroupsJobRequestBuilder.java: + id: 5658c85bc990 + last_write_checksum: sha1:a29c92f943535ba1dcd24614efdd754441046d64 + pristine_git_object: e3513578cb18d8c65e02961840c21b728c4cefc2 + src/main/java/com/thetradedesk/workflows/models/operations/CreateAdGroupsJobResponse.java: + id: 4883bea64b64 + last_write_checksum: sha1:0dca5f1b16e5aa8aea9bef4dddd2adaf6698f85a + pristine_git_object: 55e64a483886b1ba49e56655243588be897995ee + src/main/java/com/thetradedesk/workflows/models/operations/CreateCampaignRequestBuilder.java: + id: 0f1766126790 + last_write_checksum: sha1:271a2a50825daab7faad652281779582473822ab + pristine_git_object: 6f575e96b3fca6311741391c2d3038ba41f1df0b + src/main/java/com/thetradedesk/workflows/models/operations/CreateCampaignResponse.java: + id: aec6f8e80786 + last_write_checksum: sha1:2de2a928ec14ae8e5eaf8bfc0890f974bc92f5b4 + pristine_git_object: 7fae2d433b97e93dcde912a761f5c6b6697f7f84 + src/main/java/com/thetradedesk/workflows/models/operations/CreateCampaignsJobRequestBuilder.java: + id: 8df5a293c02e + last_write_checksum: sha1:19c6c49e39c4b365052a6aeca6f7eea6f7d25f50 + pristine_git_object: d3c2702cf56b07bbbfcded959ae40f60d297f2ec + src/main/java/com/thetradedesk/workflows/models/operations/CreateCampaignsJobResponse.java: + id: a1a4f6996dfc + last_write_checksum: sha1:f428e7ebeb7e0994362c1ee9a4f794978b5b8ccf + pristine_git_object: d126cc86b299d6b3d88ea8d48613a90e15927b9b + src/main/java/com/thetradedesk/workflows/models/operations/GetCampaignVersionRequest.java: + id: 2de41f91db56 + last_write_checksum: sha1:ea5cc916e42ce8876bb79928339a65e2f8d561e3 + pristine_git_object: 8316b3e938f9481a17c01892f69c4ec5d7e0b70d + src/main/java/com/thetradedesk/workflows/models/operations/GetCampaignVersionRequestBuilder.java: + id: ff011aec24bf + last_write_checksum: sha1:65257f5e0216eb70b9826ea3812b1ddc2347c14e + pristine_git_object: b4f95dfc367a8061cec05c7b58c94298fb2db7fb + src/main/java/com/thetradedesk/workflows/models/operations/GetCampaignVersionResponse.java: + id: d7aff1105e41 + last_write_checksum: sha1:e75e35153f4548c99b3814c92b2f6f3d1531f92a + pristine_git_object: f1468d00a14fdaebd5312fab18a6b28fa78d4fdc + src/main/java/com/thetradedesk/workflows/models/operations/GetFirstPartyDataJobRequestBuilder.java: + id: 20a5a17bd2e7 + last_write_checksum: sha1:c4f85b738fd08693e11c157b5f57388c0cf94a95 + pristine_git_object: d0b6df5c8281b0964b849ea844efb0ee027f990a + src/main/java/com/thetradedesk/workflows/models/operations/GetFirstPartyDataJobResponse.java: + id: 2cb7ec0302a7 + last_write_checksum: sha1:a2c47f02abee760b30430c293b5089a8d05ac537 + pristine_git_object: ffafefc13309edb25062957ba2c5c817b609ac54 + src/main/java/com/thetradedesk/workflows/models/operations/GetGraphQlBulkJobStatusRequest.java: + id: 771356a4d763 + last_write_checksum: sha1:9af1238966e34c21918772c704e745aca2002463 + pristine_git_object: 263a82b69219ae1aebabef52953c3a08c0d18b5e + src/main/java/com/thetradedesk/workflows/models/operations/GetGraphQlBulkJobStatusRequestBuilder.java: + id: 89e81dc5719f + last_write_checksum: sha1:a080584c52a35049b60f6a1435e4cf19e87727ca + pristine_git_object: 903e42e33694477812e524f28cb4ed3eee3013b2 + src/main/java/com/thetradedesk/workflows/models/operations/GetGraphQlBulkJobStatusResponse.java: + id: d4dda65582d9 + last_write_checksum: sha1:c23016b9042d924165422ea17e026b6b1e7d5bfb + pristine_git_object: 4db9c2f7d9386894f6d5a4c1ce54d384561a930e + src/main/java/com/thetradedesk/workflows/models/operations/GetJobStatusRequest.java: + id: 74df3cf5172c + last_write_checksum: sha1:ae802f48e0cf72e31e66b4acef90a879c44348d2 + pristine_git_object: 0436b69b72a537c6a8358413be75830dc176d9a6 + src/main/java/com/thetradedesk/workflows/models/operations/GetJobStatusRequestBuilder.java: + id: cc051a87969d + last_write_checksum: sha1:a48ce228b87a7408eff9e86f7bb1d334d0c57cf2 + pristine_git_object: dae0612316b64fea9c8cc35c7d8614f9803212b6 + src/main/java/com/thetradedesk/workflows/models/operations/GetJobStatusResponse.java: + id: c4c8fa587066 + last_write_checksum: sha1:91fefac6b5d1c9cc2108b4a227b3840a3968bf49 + pristine_git_object: 6cf78d504b6e6a335d74abd4539d3ac2c401d19a + src/main/java/com/thetradedesk/workflows/models/operations/GetThirdPartyDataJobRequestBuilder.java: + id: 937be1f5d54a + last_write_checksum: sha1:58e3a9de440f4e1b52f9583fcd01c4f9699146a1 + pristine_git_object: 88e8dd09447a6d9698eedfdf9ec8b47781c59f5c + src/main/java/com/thetradedesk/workflows/models/operations/GetThirdPartyDataJobResponse.java: + id: 7a6b68f9ae6f + last_write_checksum: sha1:5b38164a97111ff9df5096c996646e3fc724fce6 + pristine_git_object: 796696a88250daf7d30b46ee8971c3a85e177775 + src/main/java/com/thetradedesk/workflows/models/operations/SubmitGraphQlBulkQueryJobRequestBuilder.java: + id: bf1ac2ffc66e + last_write_checksum: sha1:8a658c7bfec445afd1eade9aa6dec3edcee85225 + pristine_git_object: e744892e7cdd1b1a436dfe60c63a7b741a6615ff + src/main/java/com/thetradedesk/workflows/models/operations/SubmitGraphQlBulkQueryJobResponse.java: + id: 9c7f995d5e3a + last_write_checksum: sha1:a2830c11d89952cc822a5a065ad567e088a7cc8e + pristine_git_object: 17a4b1c79364d873189393afc3090512953890a4 + src/main/java/com/thetradedesk/workflows/models/operations/SubmitGraphQlRequestRequestBuilder.java: + id: 1395095fa80d + last_write_checksum: sha1:6b36cf2e3f2d9a9b56fdf3ba418990fa35280ba3 + pristine_git_object: 664183358c2c394eaf202c87337751afd24c8bb7 + src/main/java/com/thetradedesk/workflows/models/operations/SubmitGraphQlRequestResponse.java: + id: 0293b3f79dec + last_write_checksum: sha1:cb5d9aaaffec2f67b6f26ab2c1e01a20de754957 + pristine_git_object: bb047ce788c2991fa1a2a8b928e6daeeaafdf379 + src/main/java/com/thetradedesk/workflows/models/operations/SubmitRestRequestRequestBuilder.java: + id: 8ee38a009d01 + last_write_checksum: sha1:890410157faf5c7fede402b828ca91992f732de6 + pristine_git_object: 5aad9ad54738039493d33bdce91708329b418ee7 + src/main/java/com/thetradedesk/workflows/models/operations/SubmitRestRequestResponse.java: + id: f8124e697c68 + last_write_checksum: sha1:18fc3b3f8c4a7d1fd0c3dc2053d7be1fee134010 + pristine_git_object: 2fccf4457ad12b3ee4f037ba9b002f22d901e140 + src/main/java/com/thetradedesk/workflows/models/operations/UpdateAdGroupRequestBuilder.java: + id: 72a55a9b0ff3 + last_write_checksum: sha1:dc0f2ae74d21eeb2f24221da94d2955c1749a55a + pristine_git_object: 4a2208c45d5ffe38df9943f600118551fbf0ea8e + src/main/java/com/thetradedesk/workflows/models/operations/UpdateAdGroupResponse.java: + id: 54a4c36656c0 + last_write_checksum: sha1:1b84de4237cc09fe2466397879f7b3f40c5960a2 + pristine_git_object: 3409fa6463459c896d1018931062055cda4b9d49 + src/main/java/com/thetradedesk/workflows/models/operations/UpdateAdGroupsJobRequestBuilder.java: + id: e32fe433aaea + last_write_checksum: sha1:f6221430e7da99ef3f24f22814ff8dc0d7efbf0d + pristine_git_object: 4998839d4454f535b3e81afbfb2e933935e0f4cf + src/main/java/com/thetradedesk/workflows/models/operations/UpdateAdGroupsJobResponse.java: + id: 2c989524177f + last_write_checksum: sha1:359a4cf74cd99df91b22250964054505fa5a20c9 + pristine_git_object: 101c51803ccc85f61f63b8156c203147c6509339 + src/main/java/com/thetradedesk/workflows/models/operations/UpdateCampaignRequestBuilder.java: + id: 5e52f7db8ddf + last_write_checksum: sha1:16988eaa688fb628d1bc9cf74c57f1b261a7a5a3 + pristine_git_object: 08b83092d26f6cabb442063f2fb4ad6fa460c91c + src/main/java/com/thetradedesk/workflows/models/operations/UpdateCampaignResponse.java: + id: def32e6a1f59 + last_write_checksum: sha1:54b0a9a2f21c950f5d1d0c175db36aa87a8dfba9 + pristine_git_object: 9dca11717738ab75816f03357d25cf22f021d46b + src/main/java/com/thetradedesk/workflows/models/operations/UpdateCampaignsJobRequestBuilder.java: + id: 189cc2fead81 + last_write_checksum: sha1:5f92e966d19bca6a0abe0be1c5715c593b2c246c + pristine_git_object: 5a6b07197f112cf5afcc8a4323e70963dff284ef + src/main/java/com/thetradedesk/workflows/models/operations/UpdateCampaignsJobResponse.java: + id: 7a1e8c9d4caa + last_write_checksum: sha1:e175a880859db6c70f5a172ee2696a29f009c793 + pristine_git_object: 93b62c34b040b361a19969cfc911c5cbd3e7bea9 + src/main/java/com/thetradedesk/workflows/models/operations/async/ArchiveAdGroupsResponse.java: + id: 9472de0992d3 + last_write_checksum: sha1:fac4fca13d7884b2219b44b46fa81c9ae0ded6c1 + pristine_git_object: 7ce921a072c8eb66113d7f63f7454eb04b719296 + src/main/java/com/thetradedesk/workflows/models/operations/async/ArchiveCampaignsResponse.java: + id: 3e74b9bf4ce4 + last_write_checksum: sha1:0e4bf60d761f523011d63abfe73b3e6015f0b2f7 + pristine_git_object: 5bcdcc997770c07fc5d75196a1c8a9d893fe3b80 + src/main/java/com/thetradedesk/workflows/models/operations/async/CreateAdGroupResponse.java: + id: 6bd38e5a0b3f + last_write_checksum: sha1:f39aed92ff66b5b1fd8c1613dcde198e37869cef + pristine_git_object: e2ac26b64b5445c3ab4c810eee3e9b7e78c176c0 + src/main/java/com/thetradedesk/workflows/models/operations/async/CreateAdGroupsJobResponse.java: + id: 67d076f7d007 + last_write_checksum: sha1:5d4fc52ad632a0cefdf66a5292f13d88b4966f5b + pristine_git_object: 2b595232cc6f3545fc05f8fdb3f08e37b9fac974 + src/main/java/com/thetradedesk/workflows/models/operations/async/CreateCampaignResponse.java: + id: 98a19dde2911 + last_write_checksum: sha1:836a967f844b2ac07e5582fbab798aa9c43d1af1 + pristine_git_object: 327b971e0280b34e62af3db7003b2f482d9d6e98 + src/main/java/com/thetradedesk/workflows/models/operations/async/CreateCampaignsJobResponse.java: + id: 7047c61b843c + last_write_checksum: sha1:e46bca7dacfbf6b4b39b6b3297a15afad373aa63 + pristine_git_object: 1556f75506f966507a34010b6b24443e2ff721ac + src/main/java/com/thetradedesk/workflows/models/operations/async/GetCampaignVersionResponse.java: + id: a0d4b83d4200 + last_write_checksum: sha1:2eb70d556d06fed9a1f36cfbb92fa2cc89b5d93a + pristine_git_object: 93a87f113a92aac883cefe6703c981137676e410 + src/main/java/com/thetradedesk/workflows/models/operations/async/GetFirstPartyDataJobResponse.java: + id: d9bb857d2ab9 + last_write_checksum: sha1:9cca18522dbebfa974949ff489f3727e2e76917c + pristine_git_object: 86e1f92b194929af9307a5be98cbad32d47811bb + src/main/java/com/thetradedesk/workflows/models/operations/async/GetGraphQlBulkJobStatusResponse.java: + id: 4f46b9970aa5 + last_write_checksum: sha1:326730cbafa29497d6a867c76e013851680fbf3b + pristine_git_object: fd87abe455a95607fe4383eedda4c4d1e8fda56e + src/main/java/com/thetradedesk/workflows/models/operations/async/GetJobStatusResponse.java: + id: e29412f3cbe6 + last_write_checksum: sha1:d0cafbb5b3fefd9609a200e2c830f0ed8ee3dd4f + pristine_git_object: 8b9f0f56f806f2da6dfb224e3e91c222eeda3b9c + src/main/java/com/thetradedesk/workflows/models/operations/async/GetThirdPartyDataJobResponse.java: + id: 802ada737529 + last_write_checksum: sha1:77b3f15b220983396c0d591817c65970cd87c8d6 + pristine_git_object: d34064c0dbd26bd55a839e60034440800cb66cea + src/main/java/com/thetradedesk/workflows/models/operations/async/SubmitGraphQlBulkQueryJobResponse.java: + id: a3fd0cf950d7 + last_write_checksum: sha1:91d2210a7c6159136ece64d45ad7f6f249fcdc2a + pristine_git_object: 098dc8902836bf034169fcecaa05ff150fdd3d0a + src/main/java/com/thetradedesk/workflows/models/operations/async/SubmitGraphQlRequestResponse.java: + id: b7a573585ad8 + last_write_checksum: sha1:72a4ac02441074c02a7e7f393dadd922447f0123 + pristine_git_object: 1a4cccfaa1cf256d7cf54c6192cea8e96b2b3e0f + src/main/java/com/thetradedesk/workflows/models/operations/async/SubmitRestRequestResponse.java: + id: d9744ffdc214 + last_write_checksum: sha1:a15917c3b2eeb48bed466f5f54f8208dfec45757 + pristine_git_object: 777d3b8167ff4f2526b0b629b66ac6255aa0a86b + src/main/java/com/thetradedesk/workflows/models/operations/async/UpdateAdGroupResponse.java: + id: 30db2821a2c0 + last_write_checksum: sha1:37d4ac760cf81b8478f544d91431acae6c39b464 + pristine_git_object: 5a3e51821adeda3ac83341163f9b39cd155424c0 + src/main/java/com/thetradedesk/workflows/models/operations/async/UpdateAdGroupsJobResponse.java: + id: d99d89c3d1be + last_write_checksum: sha1:e62b44942967d9555ca67bb9d73fb52d9202c7ef + pristine_git_object: 3c4ceedd40cc622ab57c4c9985df4e260b20dcee + src/main/java/com/thetradedesk/workflows/models/operations/async/UpdateCampaignResponse.java: + id: e4cdade0ccc3 + last_write_checksum: sha1:3a6b43577421809c23006b84b9340d80e0c3ca72 + pristine_git_object: 909f9e4c9070f3f805934a4b0dd942ee05152ac9 + src/main/java/com/thetradedesk/workflows/models/operations/async/UpdateCampaignsJobResponse.java: + id: d400ccf6b458 + last_write_checksum: sha1:ec4cba0dab950b88cf6d8eab18b7709ab5b0c37a + pristine_git_object: 23258fb4cd248d792d3cdeb4741c4f49cd415936 + src/main/java/com/thetradedesk/workflows/operations/ArchiveAdGroups.java: + id: 4bf1a3ca3f9b + last_write_checksum: sha1:9916f79d4f2167741bf0e6796fdb618ed24cfd78 + pristine_git_object: 5615c4dde910a75eb94309d5f0221f7ef796fb07 + src/main/java/com/thetradedesk/workflows/operations/ArchiveCampaigns.java: + id: bf2be1cca783 + last_write_checksum: sha1:f4b135bd1123d1458b373f804c808035ed868bbc + pristine_git_object: 22c8daf21dc84e8b09865e9b33ed215de465dbe9 + src/main/java/com/thetradedesk/workflows/operations/CreateAdGroup.java: + id: 224779fd98e8 + last_write_checksum: sha1:0301fceb9766bbdfb5e3a2693ea2ce6f34a8e6b6 + pristine_git_object: 89e69146772f0b9af4e04d8bf0bb0caf9b672fa0 + src/main/java/com/thetradedesk/workflows/operations/CreateAdGroupsJob.java: + id: a87be3630fdd + last_write_checksum: sha1:e1e9b1e7eef3f37134d2b0a1489b32fa22caa4cb + pristine_git_object: 54ff24a28f944dac797d9c24e6c585086a02d2e9 + src/main/java/com/thetradedesk/workflows/operations/CreateCampaign.java: + id: 87d1fc7da4a9 + last_write_checksum: sha1:da2f00fb9027c676ed5375d021006e16507b37a1 + pristine_git_object: f9e94c6d53b5d6dce36d69684e5a9d60a24d3fe3 + src/main/java/com/thetradedesk/workflows/operations/CreateCampaignsJob.java: + id: d6d3f6fd6a2e + last_write_checksum: sha1:cc88ff3edaea09ef4d4bfd06389f60e4b5798388 + pristine_git_object: da4f36c3ff7a6dea3c820425360b9322651afce5 + src/main/java/com/thetradedesk/workflows/operations/GetCampaignVersion.java: + id: c8bce89a8385 + last_write_checksum: sha1:3f65fed29ad6ef1eeef5a60115fc98bb9e2ee691 + pristine_git_object: 52fdb9b4060bdc282a0e92fb858ee6e113717640 + src/main/java/com/thetradedesk/workflows/operations/GetFirstPartyDataJob.java: + id: 5b884beba42f + last_write_checksum: sha1:60c977ae598c664cfb16e78ca25232b5fbd57f6a + pristine_git_object: 671394499e152ebcb9dd97f534e620ae21f31e04 + src/main/java/com/thetradedesk/workflows/operations/GetGraphQlBulkJobStatus.java: + id: c4c23eaf8fed + last_write_checksum: sha1:987215c7620933fe3413c8a8fda5952cbc7024c2 + pristine_git_object: 131745d1cd40df34e5ff366d172c9ce86fc13646 + src/main/java/com/thetradedesk/workflows/operations/GetJobStatus.java: + id: 8600ecbc5834 + last_write_checksum: sha1:f4bdedf6cd4507f028610691eac0dbfb25596086 + pristine_git_object: de7cd493317b257c7a5cd55792c1cd54dccbe537 + src/main/java/com/thetradedesk/workflows/operations/GetThirdPartyDataJob.java: + id: c07156e7eba8 + last_write_checksum: sha1:8965fdf066168d40b11b1077ba56c1feac845afd + pristine_git_object: ee1512cb8cc6117eb844afd8a30129d4e11de4a9 + src/main/java/com/thetradedesk/workflows/operations/Operations.java: + id: "340296925815" + last_write_checksum: sha1:4044af599cf63f1f5bd1b95d796de536ac4a6a93 + pristine_git_object: 60b2352661242c6a4eaa4da428f53557010cc4ff + src/main/java/com/thetradedesk/workflows/operations/SubmitGraphQlBulkQueryJob.java: + id: 84e5192ad804 + last_write_checksum: sha1:7349bf92aa70dadfc47740a0df3aa807c78b20ac + pristine_git_object: d6b0b1e47966b16898c537abf11f7528b856838b + src/main/java/com/thetradedesk/workflows/operations/SubmitGraphQlRequest.java: + id: 0e3217737ce2 + last_write_checksum: sha1:6bded547a4463943527ccbfbefae5cebed48c9a0 + pristine_git_object: 08df8dd9a7605f7fef187cde76754f45f72bc234 + src/main/java/com/thetradedesk/workflows/operations/SubmitRestRequest.java: + id: d9500581b029 + last_write_checksum: sha1:a8ab272458cdee35d0369b69fea71810c3623d5e + pristine_git_object: d944e39aad016e04b08be6ba0c76ed467a49f340 + src/main/java/com/thetradedesk/workflows/operations/UpdateAdGroup.java: + id: e0d5e7bd0345 + last_write_checksum: sha1:9ad5e8a0c9dc4951fc6a703fd0ef4f53c744b70b + pristine_git_object: 0fb9674634c0d6dca6afac981799c7fc7b350404 + src/main/java/com/thetradedesk/workflows/operations/UpdateAdGroupsJob.java: + id: 9d7750a3e31d + last_write_checksum: sha1:9e6c49f13d12e8092cdcd88402edd4ccf35403d4 + pristine_git_object: beab2fa100b5cc6c534288f0fd9de582d9d1cf02 + src/main/java/com/thetradedesk/workflows/operations/UpdateCampaign.java: + id: 333890efa5c0 + last_write_checksum: sha1:749622d1af2e25840035b5e234176da2ada11eeb + pristine_git_object: 29edafc27fab164aab7371810a36032fa46c16ed + src/main/java/com/thetradedesk/workflows/operations/UpdateCampaignsJob.java: + id: 9220ff9bb111 + last_write_checksum: sha1:6cfc07c88c4bc9b5cc0a1d1dc8aebf522926aab5 + pristine_git_object: 1d4c76ed508a5a752b7aea062d63ae34775b9cd2 + src/main/java/com/thetradedesk/workflows/utils/AsyncHook.java: + id: 183da9430396 + last_write_checksum: sha1:83d03215cefa0c3e7be43564d3b4c41d1e44e77b + pristine_git_object: f99f26690501d8b1dbb1120de0682eb036f22abb + src/main/java/com/thetradedesk/workflows/utils/AsyncHooks.java: + id: 299441f98259 + last_write_checksum: sha1:dea5acccd279c11aebbc88c5b344fb2219b8b375 + pristine_git_object: 73c28c7ef3447ee592cd2c81cc5605351a720945 + src/main/java/com/thetradedesk/workflows/utils/AsyncResponse.java: + id: 930f25ba12fd + last_write_checksum: sha1:68da5ce37805850b34a3b8338466f87f1d609b19 + pristine_git_object: 8599dc5ee71f6834b1562bdcc9035a52e36338e7 + src/main/java/com/thetradedesk/workflows/utils/AsyncRetries.java: + id: 0c88f6db615b + last_write_checksum: sha1:8cf380d0813cd02c40dee1b4c60d0002c54ccaa4 + pristine_git_object: 1155534a87540c1fc41a66bcf1276503034ce5bb + src/main/java/com/thetradedesk/workflows/utils/AsyncRetryableException.java: + id: 3be9861cfabf + last_write_checksum: sha1:a4a6228ca9750efa320479cf4e88d022447d625e + pristine_git_object: b5a04556a2d490a50980d7e89252cf3523a2ecec + src/main/java/com/thetradedesk/workflows/utils/BackoffStrategy.java: + id: 7c8485bd4936 + last_write_checksum: sha1:406daabae928ccb49ce856cac5802a345eb20b23 + pristine_git_object: 29943ef21a274fa158b04c5abeb40bce6fa087b4 + src/main/java/com/thetradedesk/workflows/utils/BigDecimalString.java: + id: c17501e93d33 + last_write_checksum: sha1:17da26ec9d1d48d15cb5de28a8b2ff22cb3aabb2 + pristine_git_object: f7c58079f63466fe56b8a7004b4e0856316ba82c + src/main/java/com/thetradedesk/workflows/utils/BigIntegerString.java: + id: b4049fa2a348 + last_write_checksum: sha1:1356e460f42eb25d9d0138b69faccedcd241f266 + pristine_git_object: d88e34396560158656aec28d9e31dd68f345382d + src/main/java/com/thetradedesk/workflows/utils/Blob.java: + id: b1a537db3945 + last_write_checksum: sha1:05205a195578db090e57970331f2f9dd006849be + pristine_git_object: 4c781a6a18b32b99f38368a2d40b0a7ebb7db5e4 + src/main/java/com/thetradedesk/workflows/utils/BlockingParser.java: + id: d4361330fd98 + last_write_checksum: sha1:792b7d8d2a0f3c983e91106f4c88e195cc46ba82 + pristine_git_object: 35dd61b116ec0d877c23125c349f0072bc06782d + src/main/java/com/thetradedesk/workflows/utils/Constants.java: + id: 29750ae35554 + last_write_checksum: sha1:5c722ef5a3bcfbf540d85bb7a23e0cdbe34cdf50 + pristine_git_object: 874981e3fe84acfa1d9fb7ab276c6588e4b1898e + src/main/java/com/thetradedesk/workflows/utils/CopiableInputStream.java: + id: 554cc0251a84 + last_write_checksum: sha1:aac71e393bef98609e0a7e816f753aea34bca73d + pristine_git_object: aadeab2b1a762a2c2bd3dead1d72299aae742d54 + src/main/java/com/thetradedesk/workflows/utils/Deserializers.java: + id: a63dd22be2e1 + last_write_checksum: sha1:fd0d206223a84d4c15b5495ef3e96ac861704f84 + pristine_git_object: c3d663f4d3a72bb52bc513cb64f53d9f82f32f12 + src/main/java/com/thetradedesk/workflows/utils/EventStream.java: + id: 128632e02e3e + last_write_checksum: sha1:c79df6936ec4f2761329824adfaefb0a5dd59caa + pristine_git_object: 9d189d100fedf797db0b5b4ebc9ae98f1db503c6 + src/main/java/com/thetradedesk/workflows/utils/EventStreamMessage.java: + id: fd92884e220e + last_write_checksum: sha1:04177aa3a075e1b245bf61fb3de4024b5a3dc9f3 + pristine_git_object: 130fbef11880aab5725c113c4ab599de3aa2f99d + src/main/java/com/thetradedesk/workflows/utils/Exceptions.java: + id: de688a8a4dbb + last_write_checksum: sha1:a5537f338b7084c0ae59f0566de4703cc1e42463 + pristine_git_object: 51122ebd5c875d2c218d714dff6b2e20eaaed4d7 + src/main/java/com/thetradedesk/workflows/utils/FormMetadata.java: + id: db42824a6879 + last_write_checksum: sha1:ffa30e00c44005890dad67e37bd7f401fb1adcab + pristine_git_object: 214e6f3bb990a3a32a10681a8a42840ea5bd5b08 + src/main/java/com/thetradedesk/workflows/utils/GenericTypeIdResolver.java: + id: 5a1433579253 + last_write_checksum: sha1:d54b4ae56b7ce3b7f9c5e9ce825ba5d44b3b2cce + pristine_git_object: 9d2951e10f3486ad8b76a2076e7e2a075f370d26 + src/main/java/com/thetradedesk/workflows/utils/Globals.java: + id: ffb311eeef74 + last_write_checksum: sha1:e5c0a33c25fc85df6a70968d9d6c7970319aa90c + pristine_git_object: bc5c2ae8f3494a4be76b69515faebc6ce49918e7 + src/main/java/com/thetradedesk/workflows/utils/HTTPClient.java: + id: f6f0f79a6cbe + last_write_checksum: sha1:a4d6cb232eea1ce78c4212f30b1d6809daecdb29 + pristine_git_object: 7eb375dd3e0b8145646796de39c5353a3b0551cb + src/main/java/com/thetradedesk/workflows/utils/HTTPRequest.java: + id: 1154ed0cf6cc + last_write_checksum: sha1:cee16df72e43edd5018644ba36e79766c0c0f737 + pristine_git_object: 0c3545d4f9163d8f051f7e435f667f8fd95e4b32 + src/main/java/com/thetradedesk/workflows/utils/HasSecurity.java: + id: 85c38e59aa5d + last_write_checksum: sha1:f55c148ec53ba212e897266a7d680a9c6c0b0ea7 + pristine_git_object: fb7daa14ba4f10fa337200e62014e79d26fcf8ef + src/main/java/com/thetradedesk/workflows/utils/HeaderMetadata.java: + id: a670862beea1 + last_write_checksum: sha1:f8c3215ab89d5ac956c67535d49bebce1ce4e54f + pristine_git_object: cfb5424f081ac4d52fbb51d86f03699512637a0a + src/main/java/com/thetradedesk/workflows/utils/Headers.java: + id: 6fbfc748e4e7 + last_write_checksum: sha1:a8c5560f444dc7b6044df80e0af59a2405cd3621 + pristine_git_object: 4575130e74cb5bd1b266ef996a57b008494db486 + src/main/java/com/thetradedesk/workflows/utils/Helpers.java: + id: 73160f2f51fc + last_write_checksum: sha1:16de099f89fd13c4eff86199f17ea760cc6ed616 + pristine_git_object: b555ac56eae0d40269083b5bee358863bff04cce + src/main/java/com/thetradedesk/workflows/utils/Hook.java: + id: a09d7a52c024 + last_write_checksum: sha1:b58adbe82df51cfd9cc593e88cf2e7a3bdd1aa06 + pristine_git_object: f53a4dcdd77756cb5d92b844a5073859f967bed0 + src/main/java/com/thetradedesk/workflows/utils/HookAdapters.java: + id: 9f797a325870 + last_write_checksum: sha1:aeb23e98b53d2bc2456ff5c64c07e89080fee886 + pristine_git_object: 288f1aa52f97ebb9aa769687e7a5a2c6303ae849 + src/main/java/com/thetradedesk/workflows/utils/Hooks.java: + id: 3c0156674630 + last_write_checksum: sha1:4571805c921b120618ddb45367968ce2f908dede + pristine_git_object: 147cd5d220d5001ee4447ec92496863f02325c75 + src/main/java/com/thetradedesk/workflows/utils/JSON.java: + id: f20f50acc026 + last_write_checksum: sha1:be5cc4a4f8e0f5751b2fd70444141acf8863b82f + pristine_git_object: c4b0d9248bd9002a5a3c9f56dfc177a8f546b50b + src/main/java/com/thetradedesk/workflows/utils/LazySingletonValue.java: + id: b2ed4bb47357 + last_write_checksum: sha1:d02c7f1c2e4c96cd5065723f08a9f0d3f4bcc61e + pristine_git_object: e5e6c8829d586f1042b6cdb65d927df47edc518b + src/main/java/com/thetradedesk/workflows/utils/Metadata.java: + id: 71f28931f17d + last_write_checksum: sha1:62db14397fc907bea8de8ca915ae79be2dfa1ae1 + pristine_git_object: add7140bec4699d924c05db6807c449088273a6f + src/main/java/com/thetradedesk/workflows/utils/Multipart.java: + id: 4b18ee5f5a6a + last_write_checksum: sha1:2c81f9d35f41b3ba4da99cbbc82abe14610d9339 + pristine_git_object: defbc9bde1aa150dec7efaa2a442d8317d28e1c2 + src/main/java/com/thetradedesk/workflows/utils/MultipartFormMetadata.java: + id: 7b177e5c8286 + last_write_checksum: sha1:72416131358c21734a9594d2f970fd91bfc7457f + pristine_git_object: ab442f4ce5901cb40a8a7c1a5bd296db02a033f9 + src/main/java/com/thetradedesk/workflows/utils/NameValue.java: + id: cbe94f099ec8 + last_write_checksum: sha1:270175287d834157fb4f583390eeafd590ed482c + pristine_git_object: 509ea1508eddcdf6c8ac392cccc92d01346796e0 + src/main/java/com/thetradedesk/workflows/utils/NonRetryableException.java: + id: deaece96afbf + last_write_checksum: sha1:c1992d88e0f06804456ef9e4e6622c9c2d6f6a7f + pristine_git_object: 9efbe0a02b9eaa7f2d35c6c55c6dcd403169331e + src/main/java/com/thetradedesk/workflows/utils/OneOfDeserializer.java: + id: 0ab6f0710e7a + last_write_checksum: sha1:9d99ed292f151081aad9074f2da956fd95430e09 + pristine_git_object: 246534a80f1a8c15bdee5b3a70df34b4585534ba + src/main/java/com/thetradedesk/workflows/utils/Options.java: + id: fba495a6672e + last_write_checksum: sha1:3e1ccdcacd2d08e226b32c449b18911c9aba84b1 + pristine_git_object: e807b8b26a46f170d16a4c90330681e5e5658f41 + src/main/java/com/thetradedesk/workflows/utils/PathParamsMetadata.java: + id: af9043f0c2f7 + last_write_checksum: sha1:ee1f17102cf2e70a92251fb48a85406fce7d8d37 + pristine_git_object: bc28628c20c2f82c4e7a6cd71c0e8359e58ff49e + src/main/java/com/thetradedesk/workflows/utils/QueryEncoding.java: + id: 92bd5cb61062 + last_write_checksum: sha1:eedfb44e5c45f04dbde7f673a038e3ada22a7b38 + pristine_git_object: d575e8aacb1f05f1abb3b3a7b9034952b0198b0e + src/main/java/com/thetradedesk/workflows/utils/QueryParameter.java: + id: 3d700b69064c + last_write_checksum: sha1:7fd92c9449341cafdf382a7935838373584ae5fa + pristine_git_object: 49abbcc6b9dad6a15d6fee9de443923bc761363e + src/main/java/com/thetradedesk/workflows/utils/QueryParameters.java: + id: 849a281e8900 + last_write_checksum: sha1:edc7ea66ad75092c3a10a784cc6a234d7cd43660 + pristine_git_object: 4047c27474c11a9b32824189e1da340d7c942423 + src/main/java/com/thetradedesk/workflows/utils/QueryParamsMetadata.java: + id: 3d39be3fcaad + last_write_checksum: sha1:f1bc0142d7cab6006a105b556b636174027c463f + pristine_git_object: cb5dac8a9bb37887038a61dae411a57957e64e18 + src/main/java/com/thetradedesk/workflows/utils/RecordingClient.java: + id: 2d5d6a294e92 + last_write_checksum: sha1:08eb7d8edad8eb8224aeac14239d5b3b78af1b53 + pristine_git_object: b33f65f7e7e786dfa6c5d99ca6fc3c3a6eb1f708 + src/main/java/com/thetradedesk/workflows/utils/Reflections.java: + id: eb829115bb6d + last_write_checksum: sha1:47985cda568974d12c9cc82912da9812ae2bb279 + pristine_git_object: 8cfde06ffb2571333b47fd063dc41868a8457b91 + src/main/java/com/thetradedesk/workflows/utils/RequestBody.java: + id: d0a0c67d363f + last_write_checksum: sha1:84ae4625e20c99cabcf4184a227c3e6eda18bb81 + pristine_git_object: da5b097e01bafe9f0d99c35687c8dc1f3b5569ef + src/main/java/com/thetradedesk/workflows/utils/RequestMetadata.java: + id: e0d0993538d1 + last_write_checksum: sha1:c96e682a03a9792409ee2b6f167d255e30438a9a + pristine_git_object: 2709fdecf34b8bec663e8b92c05c7c39c0a04da6 + src/main/java/com/thetradedesk/workflows/utils/Response.java: + id: 3d070b47da46 + last_write_checksum: sha1:cdf47ec8452b749b5dacb8175eff405da507a0b6 + pristine_git_object: 8077f276cf88a08368a5edeffabec32093cf9342 + src/main/java/com/thetradedesk/workflows/utils/ResponseWithBody.java: + id: d78a5779bf6f + last_write_checksum: sha1:2501fe8e47a3e17b2c03f20e6bfdea3d21808cde + pristine_git_object: d7a22aea81da9c6519af5b9b9e995f6a999fbb1f + src/main/java/com/thetradedesk/workflows/utils/Retries.java: + id: fb3b9f870f25 + last_write_checksum: sha1:e43cf83721cda98e76deccc767cd5e6988aeb252 + pristine_git_object: 6b3692d8f125de166a64e392d26da87cf108f09a + src/main/java/com/thetradedesk/workflows/utils/RetryConfig.java: + id: dcaa0e1cfa1a + last_write_checksum: sha1:15353483bf98643d6b37611d838762d2ada040b6 + pristine_git_object: ac4b81dd7e10961d7a7f07721004d71f470e0715 + src/main/java/com/thetradedesk/workflows/utils/RetryableException.java: + id: 7c85e183c368 + last_write_checksum: sha1:1edee931ee2521afc55d2d4aaf6a101031b34fdb + pristine_git_object: bc83ff5a6ff6a63cb6a47773b674c57f2a227b35 + src/main/java/com/thetradedesk/workflows/utils/Security.java: + id: 576a1a309a29 + last_write_checksum: sha1:d5a1d8f33b779773ba3509eb23c693282e4c2c74 + pristine_git_object: c67aff0496f877ce9aa45cd2d613817e6fa15436 + src/main/java/com/thetradedesk/workflows/utils/SecurityMetadata.java: + id: c831dddd6967 + last_write_checksum: sha1:15e59b94b38a514ec5d9871c126a1db2df563213 + pristine_git_object: 85040a0fdfbddae502bf892506b4a04e65b84d68 + src/main/java/com/thetradedesk/workflows/utils/SerializedBody.java: + id: 8bbc279b1eb4 + last_write_checksum: sha1:32cf23b04bba97743aba0aedd904ca70969c1a56 + pristine_git_object: 691ebf3c7874472420fbe5317af46520d58208a8 + src/main/java/com/thetradedesk/workflows/utils/SessionManager.java: + id: 0c82fd6bca08 + last_write_checksum: sha1:87b7df41a588ed497f5112316e291319ef15cd86 + pristine_git_object: 63c5e0636d844801d033a495e1c7d07d8cf482c6 + src/main/java/com/thetradedesk/workflows/utils/SpeakeasyHTTPClient.java: + id: 5908e7677e96 + last_write_checksum: sha1:e0b638cd2a1ec03c352051fcaee6925caee24721 + pristine_git_object: 5fc2de0328f84fa5bed7161b1c1206933e984901 + src/main/java/com/thetradedesk/workflows/utils/SpeakeasyLogger.java: + id: ee89e8b3036c + last_write_checksum: sha1:b522409dfc5e94f2444e2d057962cbb31e8c6d1b + pristine_git_object: 824b9a48554946803941250cca0d85f64b2e24d7 + src/main/java/com/thetradedesk/workflows/utils/SpeakeasyMetadata.java: + id: 71996413cd62 + last_write_checksum: sha1:b1faa9f17299fcf03c03acbd42d8b337812e3440 + pristine_git_object: 8f0c4bf5a4b92e02fdb1660101da53883202b5ed + src/main/java/com/thetradedesk/workflows/utils/StreamingParser.java: + id: 803219ddc8a4 + last_write_checksum: sha1:dcf700d08977c3d97ef52d1d8b967deb10498813 + pristine_git_object: 53a32fe0d9e95539054739520e9b8b3bf5560b94 + src/main/java/com/thetradedesk/workflows/utils/TypedObject.java: + id: 93aa2ace8641 + last_write_checksum: sha1:e7e85f46bee198c1abec224e0c94bfb0772c7674 + pristine_git_object: e89f58b142dae5a9fb6674bba647431cc78f9df9 + src/main/java/com/thetradedesk/workflows/utils/Types.java: + id: 28eb8f8f2d2e + last_write_checksum: sha1:4a5766bd4c69b08482f089018ca44cbf3f64702d + pristine_git_object: 0006a685019bd679f6d4746913eeb4bddeec984e + src/main/java/com/thetradedesk/workflows/utils/UnknownType.java: + id: 4f335789fe60 + last_write_checksum: sha1:f703390440c7315b031f5afe99d5a0d79a66bbe7 + pristine_git_object: eeaf7de91f7e3dec9201e9f591b8c67d39d40e4f + src/main/java/com/thetradedesk/workflows/utils/Utf8UrlEncoder.java: + id: b2678b246110 + last_write_checksum: sha1:2333014ede9251eaf0e2e3212536355eacd5a7a9 + pristine_git_object: e627e39fa9c9e5a86e8c80053f5a393b3aabe024 + src/main/java/com/thetradedesk/workflows/utils/Utils.java: + id: 135866956bb7 + last_write_checksum: sha1:1476948e5c5916bbc017a5ce5d95bed82107c4dd + pristine_git_object: 25250ec25bede79780e062fe74e931f42f9a5458 + src/main/java/com/thetradedesk/workflows/utils/reactive/EventStream.java: + id: d1fc8286961f + last_write_checksum: sha1:e7e8f440635b027af7842604560af4bd56e1305f + pristine_git_object: 77a2ceb52e4498e8eaa829b93c574a13a86bbf7a + src/main/java/com/thetradedesk/workflows/utils/reactive/ReactiveUtils.java: + id: 741697436c3b + last_write_checksum: sha1:347e187a78a4b0300b441190f78d79aad982c7a2 + pristine_git_object: 29024ff56a40e223dd04a7424fc9ed9d2edfeade examples: post_/adgroup: speakeasy-default-post-/adgroup: @@ -741,7 +2045,7 @@ examples: createCampaign: speakeasy-default-create-campaign: requestBody: - application/json: {"primaryInput": {"description": "woot furthermore mentor", "campaignGroupId": 86586, "timeZone": "Europe/Ulyanovsk", "customCPAClickWeight": 2561.01, "customCPAViewthroughWeight": 5604.35, "customCPAType": "ClickViewthroughWeighting", "customRoasType": "Disabled", "impressionsOnlyBudgetingCpm": 1502.33, "budget": {"pacingMode": "PaceAsSoonAsPossible", "budgetInAdvertiserCurrency": 6363.35, "budgetInImpressions": 836518, "dailyTargetInAdvertiserCurrency": 7814.79, "dailyTargetInImpressions": 784985}, "endDateInUtc": null, "seedId": null, "campaignConversionReportingColumns": [{"trackingTagId": "", "includeInCustomCPA": false, "reportingColumnId": 888649, "ROASConfig": {"includeInCustomROAS": false, "customROASWeight": 4766.9, "customROASClickWeight": 3310.24, "customROASViewthroughWeight": 2919.37}, "weight": 5369.43, "crossDeviceAttributionModelId": ""}], "isManagedByTTD": null, "secondaryGoal": {"maximizeReach": false, "maximizeLtvIncrementalReach": false, "cpcInAdvertiserCurrency": 4128.35, "ctrInPercent": 4434.91, "nielsenOTPInPercent": 7433.37, "cpaInAdvertiserCurrency": null, "returnOnAdSpendPercent": 2367.04, "vcrInPercent": 2333.15, "viewabilityInPercent": 5018.08, "vcpmInAdvertiserCurrency": 6070.6, "cpcvInAdvertiserCurrency": null, "miaozhenOTPInPercent": 4324.01, "iqviaAudienceQualityIndex": true, "crossixAudienceQualityIndex": true, "iqviaAudienceQualityIndexAndCostPerTarget": false, "crossixCostPerTarget": true}, "tertiaryGoal": {"maximizeReach": false, "maximizeLtvIncrementalReach": false, "cpcInAdvertiserCurrency": 7814.79, "ctrInPercent": 7849.85, "nielsenOTPInPercent": null, "cpaInAdvertiserCurrency": null, "returnOnAdSpendPercent": 9519.81, "vcrInPercent": 6125.66, "viewabilityInPercent": 4766.9, "vcpmInAdvertiserCurrency": 3310.24, "cpcvInAdvertiserCurrency": 2919.37, "miaozhenOTPInPercent": 5369.43, "iqviaAudienceQualityIndex": false, "crossixAudienceQualityIndex": false, "iqviaAudienceQualityIndexAndCostPerTarget": null, "crossixCostPerTarget": false}, "advertiserId": "", "name": "", "primaryChannel": "DOOH", "primaryGoal": {"maximizeReach": false, "maximizeLtvIncrementalReach": null, "cpcInAdvertiserCurrency": 6678.34, "ctrInPercent": 5357.4, "nielsenOTPInPercent": 2741.6, "cpaInAdvertiserCurrency": 4220.63, "returnOnAdSpendPercent": 8572.83, "vcrInPercent": 8294.92, "viewabilityInPercent": 8592.21, "vcpmInAdvertiserCurrency": 8388.8, "cpcvInAdvertiserCurrency": null, "miaozhenOTPInPercent": 3033.14, "iqviaAudienceQualityIndex": false, "crossixAudienceQualityIndex": true, "iqviaAudienceQualityIndexAndCostPerTarget": true, "crossixCostPerTarget": false}, "startDateInUtc": null, "campaignIncrementalReachSetting": {"iSpotReachSetting": {"id": 787894, "name": "", "isActive": false}, "realyticsReachSetting": {"id": 859221, "name": "", "isActive": false, "products": null, "realyticsEntertainmentInput": "TVS"}, "tvSquaredReachSetting": {"id": 303314, "name": null, "isActive": false}, "sambaAuReachSetting": {"id": 505888, "name": "", "isActive": true}}}, "advancedInput": {"flights": [{"startDateInclusiveUTC": "2024-07-08T10:52:56.944Z", "endDateExclusiveUTC": "2023-05-12T16:41:56.386Z", "budgetInAdvertiserCurrency": 5904.11, "budgetInImpressions": null, "dailyTargetInAdvertiserCurrency": 6112.24, "dailyTargetInImpressions": 333131}], "purchaseOrderNumber": null, "includeDefaultsFromAdvertiser": false, "passThroughFeeCard": {"startDateUtc": "2023-03-18T04:39:08.387Z", "passThroughFees": [{"type": "FeeCPM", "description": "fairly gah mortally freight since", "amount": 2122.11}]}, "callerSource": ""}, "adGroups": [{"primaryInput": {"isEnabled": false, "description": "quash lightly rot bashfully slope", "budget": {"allocationType": "Minimum", "budgetInAdvertiserCurrency": 4043.98, "budgetInImpressions": 907414, "dailyTargetInAdvertiserCurrency": 49.95, "dailyTargetInImpressions": 62363}, "baseBidCPMInAdvertiserCurrency": 1136.89, "maxBidCPMInAdvertiserCurrency": 6950.27, "audienceTargeting": {"audienceId": "", "audienceAcceleratorExclusionsEnabled": false, "audienceBoosterEnabled": true, "audienceExcluderEnabled": false, "audiencePredictorEnabled": true, "crossDeviceVendorListForAudience": [458524, 284141], "recencyExclusionWindowInMinutes": 982426, "targetTrackableUsersEnabled": false, "useMcIdAsPrimary": true}, "roiGoal": {"maximizeReach": null, "maximizeLtvIncrementalReach": true, "cpcInAdvertiserCurrency": 8782.74, "ctrInPercent": null, "nielsenOTPInPercent": 7930.85, "cpaInAdvertiserCurrency": 4606.89, "returnOnAdSpendPercent": 2522.83, "vcrInPercent": 5828.49, "viewabilityInPercent": 6824.44, "vcpmInAdvertiserCurrency": 7123.95, "cpcvInAdvertiserCurrency": 6233.72, "miaozhenOTPInPercent": 8437.22}, "creativeIds": [""], "associatedBidLists": [{"bidListId": "", "isEnabled": true, "isDefaultForDimension": false}], "name": "", "channel": "NativeVideo", "funnelLocation": "None", "marketType": "OpenMarket", "programmaticGuaranteedPrivateContractId": "", "includeDefaultsFromCampaign": true}, "advancedInput": {"koaOptimizationSettings": {"areFutureKoaFeaturesEnabled": true, "predictiveClearingEnabled": true}, "comscoreSettings": {"isEnabled": false, "populationId": 523753, "demographicMemberIds": null, "mobileDemographicMemberIds": null}, "contractTargeting": {"allowOpenMarketBiddingWhenTargetingContracts": true}, "dimensionalBiddingAutoOptimizationSettings": [["HasFullReferrerUrl"], ["HasPublisherId"]], "isUseClicksAsConversionsEnabled": null, "isUseSecondaryConversionsEnabled": true, "nielsenTrackingAttributes": {"enhancedReportingOption": "Site", "gender": "Female", "startAge": "ThirtyFive", "endAge": "FortyNine", "countries": []}, "newFrequencyConfigs": [{"counterName": "", "frequencyCap": 391231, "frequencyGoal": 499235, "resetIntervalInMinutes": 587736}], "includeDefaultsFromCampaign": false, "flights": [{"allocationType": "Fixed", "budgetInAdvertiserCurrency": 5340.32, "budgetInImpressions": 492382, "dailyTargetInAdvertiserCurrency": 5622.5, "dailyTargetInImpressions": 398919}]}}], "validateInputOnly": false} + application/json: {"primaryInput": {"description": "woot furthermore mentor", "campaignGroupId": 86586, "timeZone": "Europe/Ulyanovsk", "customCPAClickWeight": 2561.01, "customCPAViewthroughWeight": 5604.35, "customCPAType": "ClickViewthroughWeighting", "customRoasType": "Disabled", "impressionsOnlyBudgetingCpm": 1502.33, "endDateInUtc": null, "seedId": null, "campaignConversionReportingColumns": [{"trackingTagId": "", "includeInCustomCPA": false, "reportingColumnId": 888649, "ROASConfig": {"includeInCustomROAS": false, "customROASWeight": 4766.9, "customROASClickWeight": 3310.24, "customROASViewthroughWeight": 2919.37}, "productListReportingType": "Featured", "weight": 5369.43, "crossDeviceAttributionModelId": ""}], "isManagedByTTD": null, "secondaryGoal": {"maximizeReach": false, "maximizeLtvIncrementalReach": false, "cpcInAdvertiserCurrency": 4128.35, "ctrInPercent": 4434.91, "nielsenOTPInPercent": 7433.37, "cpaInAdvertiserCurrency": null, "returnOnAdSpendPercent": 2367.04, "vcrInPercent": 2333.15, "viewabilityInPercent": 5018.08, "vcpmInAdvertiserCurrency": 6070.6, "cpcvInAdvertiserCurrency": null, "miaozhenOTPInPercent": 4324.01, "iqviaAudienceQualityIndex": true, "crossixAudienceQualityIndex": true, "iqviaAudienceQualityIndexAndCostPerTarget": false, "crossixCostPerTarget": true}, "tertiaryGoal": {"maximizeReach": false, "maximizeLtvIncrementalReach": false, "cpcInAdvertiserCurrency": 7814.79, "ctrInPercent": 7849.85, "nielsenOTPInPercent": null, "cpaInAdvertiserCurrency": null, "returnOnAdSpendPercent": 9519.81, "vcrInPercent": 6125.66, "viewabilityInPercent": 4766.9, "vcpmInAdvertiserCurrency": 3310.24, "cpcvInAdvertiserCurrency": 2919.37, "miaozhenOTPInPercent": 5369.43, "iqviaAudienceQualityIndex": false, "crossixAudienceQualityIndex": false, "iqviaAudienceQualityIndexAndCostPerTarget": null, "crossixCostPerTarget": false}, "advertiserId": "", "name": "", "primaryChannel": "DOOH", "primaryGoal": {"maximizeReach": false, "maximizeLtvIncrementalReach": null, "cpcInAdvertiserCurrency": 6678.34, "ctrInPercent": 5357.4, "nielsenOTPInPercent": 2741.6, "cpaInAdvertiserCurrency": 4220.63, "returnOnAdSpendPercent": 8572.83, "vcrInPercent": 8294.92, "viewabilityInPercent": 8592.21, "vcpmInAdvertiserCurrency": 8388.8, "cpcvInAdvertiserCurrency": null, "miaozhenOTPInPercent": 3033.14, "iqviaAudienceQualityIndex": false, "crossixAudienceQualityIndex": true, "iqviaAudienceQualityIndexAndCostPerTarget": true, "crossixCostPerTarget": false}, "startDateInUtc": null, "budget": {"pacingMode": "PaceAsSoonAsPossible", "budgetInAdvertiserCurrency": 6363.35, "budgetInImpressions": 836518, "dailyTargetInAdvertiserCurrency": 7814.79, "dailyTargetInImpressions": 784985}, "campaignIncrementalReachSetting": {"iSpotReachSetting": {"id": 787894, "name": "", "isActive": false}, "realyticsReachSetting": {"id": 859221, "name": "", "isActive": false, "products": null, "realyticsEntertainmentInput": "TVS"}, "tvSquaredReachSetting": {"id": 303314, "name": null, "isActive": false}, "sambaAuReachSetting": {"id": 505888, "name": "", "isActive": true}}}, "advancedInput": {"purchaseOrderNumber": null, "flights": [{"startDateInclusiveUTC": "2024-07-08T10:52:56.944Z", "endDateExclusiveUTC": "2023-05-12T16:41:56.386Z", "budgetInAdvertiserCurrency": 5904.11, "budgetInImpressions": null, "dailyTargetInAdvertiserCurrency": 6112.24, "dailyTargetInImpressions": 333131}], "includeDefaultsFromAdvertiser": false, "passThroughFeeCard": {"startDateUtc": "2023-03-18T04:39:08.387Z", "passThroughFees": [{"type": "FeeCPM", "description": "fairly gah mortally freight since", "amount": 2122.11}]}, "callerSource": "", "frequencyConfigs": null}, "adGroups": [{"primaryInput": {"isEnabled": false, "description": "quash lightly rot bashfully slope", "budget": {"allocationType": "Minimum", "budgetInAdvertiserCurrency": 4043.98, "budgetInImpressions": 907414, "dailyTargetInAdvertiserCurrency": 49.95, "dailyTargetInImpressions": 62363}, "baseBidCPMInAdvertiserCurrency": 1136.89, "maxBidCPMInAdvertiserCurrency": 6950.27, "audienceTargeting": {"audienceId": "", "audienceAcceleratorExclusionsEnabled": false, "audienceBoosterEnabled": true, "audienceExcluderEnabled": false, "audiencePredictorEnabled": true, "crossDeviceVendorListForAudience": [458524, 284141], "recencyExclusionWindowInMinutes": 982426, "targetTrackableUsersEnabled": false, "useMcIdAsPrimary": true}, "roiGoal": {"maximizeReach": null, "maximizeLtvIncrementalReach": true, "cpcInAdvertiserCurrency": 8782.74, "ctrInPercent": null, "nielsenOTPInPercent": 7930.85, "cpaInAdvertiserCurrency": 4606.89, "returnOnAdSpendPercent": 2522.83, "vcrInPercent": 5828.49, "viewabilityInPercent": 6824.44, "vcpmInAdvertiserCurrency": 7123.95, "cpcvInAdvertiserCurrency": 6233.72, "miaozhenOTPInPercent": 8437.22}, "creativeIds": [""], "associatedBidLists": [{"bidListId": "", "isEnabled": true, "isDefaultForDimension": false}], "name": "", "channel": "NativeVideo", "funnelLocation": "None", "marketType": "OpenMarket", "programmaticGuaranteedPrivateContractId": "", "includeDefaultsFromCampaign": true}, "advancedInput": {"koaOptimizationSettings": {"areFutureKoaFeaturesEnabled": true, "predictiveClearingEnabled": true}, "comscoreSettings": {"isEnabled": false, "populationId": 523753, "demographicMemberIds": null, "mobileDemographicMemberIds": null}, "contractTargeting": {"allowOpenMarketBiddingWhenTargetingContracts": true}, "dimensionalBiddingAutoOptimizationSettings": [["HasFullReferrerUrl"], ["HasPublisherId"]], "isUseClicksAsConversionsEnabled": null, "isUseSecondaryConversionsEnabled": true, "nielsenTrackingAttributes": {"enhancedReportingOption": "Site", "gender": "Female", "startAge": "ThirtyFive", "endAge": "FortyNine", "countries": []}, "newFrequencyConfigs": [{"counterName": "", "frequencyCap": 391231, "frequencyGoal": 499235, "resetIntervalInMinutes": 587736}], "includeDefaultsFromCampaign": false, "flights": [{"allocationType": "Fixed", "budgetInAdvertiserCurrency": 5340.32, "budgetInImpressions": 492382, "dailyTargetInAdvertiserCurrency": 5622.5, "dailyTargetInImpressions": 398919}]}}], "validateInputOnly": false} responses: "201": application/json: {"campaign": {"id": "", "name": "", "campaignGroupId": 960101, "description": "commandeer following afore ghost schematise lest understated brr happily lined", "startDate": "2025-05-13T19:59:29.421Z", "endDate": "2025-09-17T08:16:44.433Z", "timeZone": "Africa/Lome", "customCPAClickWeight": 1725.54, "customCPAViewthroughWeight": 418.34, "customCPAType": "PixelWeighting", "impressionsOnlyBudgetingCpm": 3266.9, "primaryChannel": "Display", "primaryGoal": "", "seedId": "", "conversionReportingColumnsCount": 748798, "flights": [{"id": "", "startDateInclusiveUTC": "2024-03-12T14:53:08.741Z", "endDateExclusiveUTC": "2024-07-12T11:11:36.420Z", "budgetInAdvertiserCurrency": 6585.86, "budgetInImpressions": 83962, "dailyTargetInAdvertiserCurrency": 2584.64, "dailyTargetInImpressions": 910113}]}, "adGroups": [{"id": "", "name": "", "campaignId": "", "isEnabled": false, "description": "hence questioningly punctual austere beard around circumnavigate behind aboard", "programmaticGuaranteedPrivateContractId": null, "channel": "NativeVideo", "funnelLocation": "Consideration", "budget": {"allocationType": "Maximum", "budgetInAdvertiserCurrency": 4437.6, "budgetInImpressions": 663120, "dailyTargetInAdvertiserCurrency": 3765.21, "dailyTargetInImpressions": 111869}, "baseBidCPMInAdvertiserCurrency": 9802.01, "maxBidCPMInAdvertiserCurrency": 1646.69, "audienceTargeting": {"audienceId": "", "audienceAcceleratorExclusionsEnabled": false, "audienceBoosterEnabled": false, "audienceExcluderEnabled": false, "audiencePredictorEnabled": false, "crossDeviceVendorListForAudience": [502213, 470177, 420897], "recencyExclusionWindowInMinutes": 4504, "targetTrackableUsersEnabled": true, "useMcIdAsPrimary": true}, "roiGoal": {"maximizeReach": false, "maximizeLtvIncrementalReach": false, "cpcInAdvertiserCurrency": 6741.01, "ctrInPercent": 982.47, "nielsenOTPInPercent": 7021.23, "cpaInAdvertiserCurrency": 7395.27, "returnOnAdSpendPercent": 744.23, "vcrInPercent": 3686.93, "viewabilityInPercent": 3897.27, "vcpmInAdvertiserCurrency": 4522.49, "cpcvInAdvertiserCurrency": 2016.93, "miaozhenOTPInPercent": 3516.78}, "creativeIds": [""], "associatedBidLists": [{"bidListId": null, "isEnabled": false, "isDefaultForDimension": true}], "flights": null, "koaOptimizationSettings": {"areFutureKoaFeaturesEnabled": false, "predictiveClearingEnabled": false}, "comscoreSettings": {"isEnabled": false, "populationId": null, "demographicMemberIds": [339950, 676551], "mobileDemographicMemberIds": []}, "contractTargeting": {"allowOpenMarketBiddingWhenTargetingContracts": false}, "dimensionalBiddingAutoOptimizationSettings": [["HasTVQualityIndexRange"], [], ["HasDoubleVerifyBotAvoidanceCategoryId"]], "isUseClicksAsConversionsEnabled": true, "isUseSecondaryConversionsEnabled": true, "nielsenTrackingAttributes": {"enhancedReportingOption": "Audience", "gender": "Female", "startAge": "TwentyOne", "endAge": "SixtyFour", "countries": ["", ""]}}]} @@ -752,7 +2056,7 @@ examples: updateCampaign: speakeasy-default-update-campaign: requestBody: - application/json: {"id": "", "primaryInput": {"description": "yahoo whether frail but into form sway neck notwithstanding", "campaignGroupId": 760468, "timeZone": "Asia/Amman", "customCPAClickWeight": 1380.93, "customCPAViewthroughWeight": 3991.98, "customCPAType": "ClickViewthroughWeighting", "customRoasType": "Disabled", "impressionsOnlyBudgetingCpm": 126.57, "budget": {"pacingMode": "PaceAsSoonAsPossible", "budgetInAdvertiserCurrency": 6974.82, "budgetInImpressions": 834352, "dailyTargetInAdvertiserCurrency": 8583.49, "dailyTargetInImpressions": 746941}, "endDateInUtc": "2024-07-09T17:14:23.542Z", "seedId": "", "campaignConversionReportingColumns": [{"trackingTagId": "", "includeInCustomCPA": false, "reportingColumnId": 716444, "ROASConfig": {"includeInCustomROAS": true, "customROASWeight": 8307.9, "customROASClickWeight": 129.65, "customROASViewthroughWeight": 2890.82}, "weight": 5187.48, "crossDeviceAttributionModelId": null}], "isManagedByTTD": false, "secondaryGoal": {"maximizeReach": true, "maximizeLtvIncrementalReach": false, "cpcInAdvertiserCurrency": 1165.14, "ctrInPercent": 5157.73, "nielsenOTPInPercent": 3855.93, "cpaInAdvertiserCurrency": 5164.28, "returnOnAdSpendPercent": 8554.35, "vcrInPercent": 9569.97, "viewabilityInPercent": 9650.33, "vcpmInAdvertiserCurrency": 5268.69, "cpcvInAdvertiserCurrency": 7216.52, "miaozhenOTPInPercent": 6966.26, "iqviaAudienceQualityIndex": true, "crossixAudienceQualityIndex": true, "iqviaAudienceQualityIndexAndCostPerTarget": true, "crossixCostPerTarget": true}, "tertiaryGoal": {"maximizeReach": true, "maximizeLtvIncrementalReach": true, "cpcInAdvertiserCurrency": 5149.5, "ctrInPercent": 5602.97, "nielsenOTPInPercent": 3514.56, "cpaInAdvertiserCurrency": 1.97, "returnOnAdSpendPercent": 3177.79, "vcrInPercent": 5564.63, "viewabilityInPercent": 472.11, "vcpmInAdvertiserCurrency": 4614.14, "cpcvInAdvertiserCurrency": 8553.51, "miaozhenOTPInPercent": 5511.72, "iqviaAudienceQualityIndex": false, "crossixAudienceQualityIndex": false, "iqviaAudienceQualityIndexAndCostPerTarget": null, "crossixCostPerTarget": false}, "name": "", "primaryChannel": "Display", "primaryGoal": {"maximizeReach": false, "maximizeLtvIncrementalReach": true, "cpcInAdvertiserCurrency": 8835.54, "ctrInPercent": 4975.78, "nielsenOTPInPercent": 6033.78, "cpaInAdvertiserCurrency": null, "returnOnAdSpendPercent": 5696.08, "vcrInPercent": 8315.31, "viewabilityInPercent": 1059.68, "vcpmInAdvertiserCurrency": 4588.07, "cpcvInAdvertiserCurrency": 2202.71, "miaozhenOTPInPercent": 2682.12, "iqviaAudienceQualityIndex": false, "crossixAudienceQualityIndex": true, "iqviaAudienceQualityIndexAndCostPerTarget": true, "crossixCostPerTarget": true}, "startDateInUtc": "2024-02-29T10:31:50.069Z"}, "advancedInput": {"flights": [{"startDateInclusiveUTC": "2025-11-09T04:11:39.432Z", "endDateExclusiveUTC": "2025-09-10T20:38:51.701Z", "budgetInAdvertiserCurrency": 6534.57, "budgetInImpressions": 865481, "dailyTargetInAdvertiserCurrency": 1033.72, "dailyTargetInImpressions": null}], "purchaseOrderNumber": ""}, "validateInputOnly": true} + application/json: {"id": "", "primaryInput": {"description": "yahoo whether frail but into form sway neck notwithstanding", "campaignGroupId": 760468, "timeZone": "Asia/Amman", "customCPAClickWeight": 1380.93, "customCPAViewthroughWeight": 3991.98, "customCPAType": "ClickViewthroughWeighting", "customRoasType": "Disabled", "impressionsOnlyBudgetingCpm": 126.57, "endDateInUtc": "2024-07-09T17:14:23.542Z", "seedId": "", "campaignConversionReportingColumns": [{"trackingTagId": "", "includeInCustomCPA": false, "reportingColumnId": 716444, "ROASConfig": {"includeInCustomROAS": true, "customROASWeight": 8307.9, "customROASClickWeight": 129.65, "customROASViewthroughWeight": 2890.82}, "productListReportingType": "Featured", "weight": 5187.48, "crossDeviceAttributionModelId": null}], "isManagedByTTD": false, "secondaryGoal": {"maximizeReach": true, "maximizeLtvIncrementalReach": false, "cpcInAdvertiserCurrency": 1165.14, "ctrInPercent": 5157.73, "nielsenOTPInPercent": 3855.93, "cpaInAdvertiserCurrency": 5164.28, "returnOnAdSpendPercent": 8554.35, "vcrInPercent": 9569.97, "viewabilityInPercent": 9650.33, "vcpmInAdvertiserCurrency": 5268.69, "cpcvInAdvertiserCurrency": 7216.52, "miaozhenOTPInPercent": 6966.26, "iqviaAudienceQualityIndex": true, "crossixAudienceQualityIndex": true, "iqviaAudienceQualityIndexAndCostPerTarget": true, "crossixCostPerTarget": true}, "tertiaryGoal": {"maximizeReach": true, "maximizeLtvIncrementalReach": true, "cpcInAdvertiserCurrency": 5149.5, "ctrInPercent": 5602.97, "nielsenOTPInPercent": 3514.56, "cpaInAdvertiserCurrency": 1.97, "returnOnAdSpendPercent": 3177.79, "vcrInPercent": 5564.63, "viewabilityInPercent": 472.11, "vcpmInAdvertiserCurrency": 4614.14, "cpcvInAdvertiserCurrency": 8553.51, "miaozhenOTPInPercent": 5511.72, "iqviaAudienceQualityIndex": false, "crossixAudienceQualityIndex": false, "iqviaAudienceQualityIndexAndCostPerTarget": null, "crossixCostPerTarget": false}, "name": "", "primaryChannel": "Display", "primaryGoal": {"maximizeReach": false, "maximizeLtvIncrementalReach": true, "cpcInAdvertiserCurrency": 8835.54, "ctrInPercent": 4975.78, "nielsenOTPInPercent": 6033.78, "cpaInAdvertiserCurrency": null, "returnOnAdSpendPercent": 5696.08, "vcrInPercent": 8315.31, "viewabilityInPercent": 1059.68, "vcpmInAdvertiserCurrency": 4588.07, "cpcvInAdvertiserCurrency": 2202.71, "miaozhenOTPInPercent": 2682.12, "iqviaAudienceQualityIndex": false, "crossixAudienceQualityIndex": true, "iqviaAudienceQualityIndexAndCostPerTarget": true, "crossixCostPerTarget": true}, "startDateInUtc": "2024-02-29T10:31:50.069Z", "budget": {"pacingMode": "PaceAsSoonAsPossible"}}, "advancedInput": {"purchaseOrderNumber": ""}, "validateInputOnly": true} responses: "200": application/json: {"campaign": {"id": "", "name": "", "campaignGroupId": 287698, "description": "yuppify primary lest nutritious whoa likewise bookcase traduce seriously", "startDate": "2024-06-18T22:41:27.089Z", "endDate": "2023-09-28T10:30:24.825Z", "timeZone": "Africa/Brazzaville", "customCPAClickWeight": 1420.08, "customCPAViewthroughWeight": 3419.03, "customCPAType": "Disabled", "impressionsOnlyBudgetingCpm": null, "primaryChannel": "Display", "primaryGoal": "", "seedId": "", "conversionReportingColumnsCount": 10946, "flights": [{"id": "", "startDateInclusiveUTC": "2024-06-26T03:24:17.236Z", "endDateExclusiveUTC": "2025-07-01T04:11:25.573Z", "budgetInAdvertiserCurrency": 6644.31, "budgetInImpressions": 164310, "dailyTargetInAdvertiserCurrency": 4555.64, "dailyTargetInImpressions": null}], "secondaryGoal": null, "tertiaryGoal": ""}, "adGroups": [{"id": "", "name": null, "campaignId": "", "isEnabled": false, "description": "er palatable clonk against noon blacken though", "programmaticGuaranteedPrivateContractId": "", "channel": "Display", "funnelLocation": "None", "budget": {"allocationType": "Maximum", "budgetInAdvertiserCurrency": 4400.5, "budgetInImpressions": 252235, "dailyTargetInAdvertiserCurrency": 3360.49, "dailyTargetInImpressions": 82960}, "baseBidCPMInAdvertiserCurrency": 4115.19, "maxBidCPMInAdvertiserCurrency": 9043, "marketType": "OpenMarket", "audienceTargeting": {"audienceId": "", "audienceAcceleratorExclusionsEnabled": true, "audienceBoosterEnabled": false, "audienceExcluderEnabled": true, "audiencePredictorEnabled": false, "crossDeviceVendorListForAudience": [706430], "recencyExclusionWindowInMinutes": 773547, "targetTrackableUsersEnabled": true, "useMcIdAsPrimary": false}, "roiGoal": {"maximizeReach": null, "maximizeLtvIncrementalReach": false, "cpcInAdvertiserCurrency": 8439.61, "ctrInPercent": 3120.58, "nielsenOTPInPercent": 7464.3, "cpaInAdvertiserCurrency": 6205.02, "returnOnAdSpendPercent": 9077.31, "vcrInPercent": 9134.53, "viewabilityInPercent": 7809.01, "vcpmInAdvertiserCurrency": null, "cpcvInAdvertiserCurrency": 9297.05, "miaozhenOTPInPercent": 330.19}, "creativeIds": ["", ""], "associatedBidLists": [], "flights": null, "koaOptimizationSettings": {"areFutureKoaFeaturesEnabled": false, "predictiveClearingEnabled": false}, "comscoreSettings": {"isEnabled": true, "populationId": 34197, "demographicMemberIds": [], "mobileDemographicMemberIds": [172582, 373780]}, "contractTargeting": {"allowOpenMarketBiddingWhenTargetingContracts": true}, "dimensionalBiddingAutoOptimizationSettings": [[], []], "isUseClicksAsConversionsEnabled": true, "isUseSecondaryConversionsEnabled": false, "nielsenTrackingAttributes": {"enhancedReportingOption": "Site", "gender": "Female", "startAge": "FiftyFive", "endAge": "TwentyFour", "countries": [""]}}]} @@ -761,7 +2065,7 @@ examples: createCampaignsJob: speakeasy-default-create-campaigns-job: requestBody: - application/json: {"input": [{"primaryInput": {"description": null, "campaignGroupId": 657704, "timeZone": "America/North_Dakota/Center", "customCPAClickWeight": 9662.9, "customCPAViewthroughWeight": 3558.78, "customCPAType": "ClickViewthroughWeighting", "customRoasType": "CompositeWeighting", "impressionsOnlyBudgetingCpm": 4427.56, "budget": {"pacingMode": "PaceAhead", "budgetInAdvertiserCurrency": 5501.96, "budgetInImpressions": 629784, "dailyTargetInAdvertiserCurrency": 2524.41, "dailyTargetInImpressions": 726807}, "endDateInUtc": "2023-12-21T01:12:20.772Z", "seedId": "", "campaignConversionReportingColumns": [{"trackingTagId": "", "includeInCustomCPA": false, "reportingColumnId": 356532, "ROASConfig": {"includeInCustomROAS": false, "customROASWeight": 1483.03, "customROASClickWeight": 5286.76, "customROASViewthroughWeight": 8906.82}, "weight": null, "crossDeviceAttributionModelId": ""}], "isManagedByTTD": true, "secondaryGoal": {"maximizeReach": true, "maximizeLtvIncrementalReach": false, "cpcInAdvertiserCurrency": 3558.78, "ctrInPercent": 2407.01, "nielsenOTPInPercent": 2349.25, "cpaInAdvertiserCurrency": 7778.32, "returnOnAdSpendPercent": 6752.02, "vcrInPercent": 5019.36, "viewabilityInPercent": 5781.75, "vcpmInAdvertiserCurrency": 1696.34, "cpcvInAdvertiserCurrency": 5609.2, "miaozhenOTPInPercent": 5842.09, "iqviaAudienceQualityIndex": true, "crossixAudienceQualityIndex": false, "iqviaAudienceQualityIndexAndCostPerTarget": false, "crossixCostPerTarget": null}, "tertiaryGoal": {"maximizeReach": false, "maximizeLtvIncrementalReach": false, "cpcInAdvertiserCurrency": 6123.61, "ctrInPercent": 25.32, "nielsenOTPInPercent": 4889.32, "cpaInAdvertiserCurrency": 5258.8, "returnOnAdSpendPercent": 2553.01, "vcrInPercent": 1142.91, "viewabilityInPercent": 1152.77, "vcpmInAdvertiserCurrency": 6711.38, "cpcvInAdvertiserCurrency": 4528.37, "miaozhenOTPInPercent": 9833.69, "iqviaAudienceQualityIndex": true, "crossixAudienceQualityIndex": false, "iqviaAudienceQualityIndexAndCostPerTarget": false, "crossixCostPerTarget": true}, "advertiserId": "", "name": "", "primaryChannel": "NativeVideo", "primaryGoal": {"maximizeReach": false, "maximizeLtvIncrementalReach": false, "cpcInAdvertiserCurrency": 25.32, "ctrInPercent": 4889.32, "nielsenOTPInPercent": 5258.8, "cpaInAdvertiserCurrency": 2553.01, "returnOnAdSpendPercent": 1142.91, "vcrInPercent": 1152.77, "viewabilityInPercent": 6711.38, "vcpmInAdvertiserCurrency": 4528.37, "cpcvInAdvertiserCurrency": 9833.69, "miaozhenOTPInPercent": 1951.58, "iqviaAudienceQualityIndex": true, "crossixAudienceQualityIndex": null, "iqviaAudienceQualityIndexAndCostPerTarget": false, "crossixCostPerTarget": true}, "startDateInUtc": "2025-09-26T21:06:42.946Z", "campaignIncrementalReachSetting": {"iSpotReachSetting": {"id": 178346, "name": "", "isActive": true}, "realyticsReachSetting": {"id": 268786, "name": "", "isActive": false, "products": [{"id": 106975, "name": ""}], "realyticsEntertainmentInput": "TVS"}, "tvSquaredReachSetting": {"id": 772731, "name": "", "isActive": false}, "sambaAuReachSetting": {"id": 403863, "name": null, "isActive": true}}}, "advancedInput": {"flights": [{"startDateInclusiveUTC": "2024-09-20T06:04:19.345Z", "endDateExclusiveUTC": "2024-01-18T07:43:56.299Z", "budgetInAdvertiserCurrency": 8219.9, "budgetInImpressions": 76925, "dailyTargetInAdvertiserCurrency": 9309.03, "dailyTargetInImpressions": 152838}], "purchaseOrderNumber": "", "includeDefaultsFromAdvertiser": false, "passThroughFeeCard": {"startDateUtc": "2024-07-24T11:58:59.190Z", "passThroughFees": [{"type": "DataCostPercentage", "description": "sweetly absent fortunately forenenst earnest who solidly wherever step-mother", "amount": 2888.48}]}, "callerSource": ""}, "adGroups": [{"primaryInput": {"isEnabled": true, "description": "scenario dish gracefully through tame yahoo pension husband as atop", "budget": {"allocationType": "Maximum", "budgetInAdvertiserCurrency": 2283.06, "budgetInImpressions": 301691, "dailyTargetInAdvertiserCurrency": 9268.18, "dailyTargetInImpressions": 851470}, "baseBidCPMInAdvertiserCurrency": 694.78, "maxBidCPMInAdvertiserCurrency": 6084.4, "audienceTargeting": {"audienceId": "", "audienceAcceleratorExclusionsEnabled": true, "audienceBoosterEnabled": false, "audienceExcluderEnabled": true, "audiencePredictorEnabled": false, "crossDeviceVendorListForAudience": [497890, 566253], "recencyExclusionWindowInMinutes": 742665, "targetTrackableUsersEnabled": true, "useMcIdAsPrimary": true}, "roiGoal": {"maximizeReach": false, "maximizeLtvIncrementalReach": true, "cpcInAdvertiserCurrency": 9062.02, "ctrInPercent": 7192.99, "nielsenOTPInPercent": 2823.22, "cpaInAdvertiserCurrency": 3140.25, "returnOnAdSpendPercent": 6857.21, "vcrInPercent": 2704.73, "viewabilityInPercent": 2247.4, "vcpmInAdvertiserCurrency": 8383.69, "cpcvInAdvertiserCurrency": 4755.8, "miaozhenOTPInPercent": 4575.86}, "creativeIds": ["", ""], "associatedBidLists": [{"bidListId": "", "isEnabled": true, "isDefaultForDimension": false}], "name": "", "channel": "Display", "funnelLocation": "Awareness", "marketType": "PrivateMarketOnly", "programmaticGuaranteedPrivateContractId": "", "includeDefaultsFromCampaign": true}, "advancedInput": {"koaOptimizationSettings": {"areFutureKoaFeaturesEnabled": true, "predictiveClearingEnabled": false}, "comscoreSettings": {"isEnabled": false, "populationId": 559587, "demographicMemberIds": [139340, 129935], "mobileDemographicMemberIds": null}, "contractTargeting": {"allowOpenMarketBiddingWhenTargetingContracts": true}, "dimensionalBiddingAutoOptimizationSettings": [["HasAudienceReachPercentageTierId"], []], "isUseClicksAsConversionsEnabled": false, "isUseSecondaryConversionsEnabled": true, "nielsenTrackingAttributes": {"enhancedReportingOption": "None", "gender": "Female", "startAge": "ThirtyFive", "endAge": "TwentyFour", "countries": ["", ""]}, "newFrequencyConfigs": null, "includeDefaultsFromCampaign": true, "flights": [{"allocationType": "Maximum", "budgetInAdvertiserCurrency": 4838.47, "budgetInImpressions": 420224, "dailyTargetInAdvertiserCurrency": 1513.78, "dailyTargetInImpressions": 735500}]}}]}], "validateInputOnly": true, "callbackInput": {"callbackUrl": "https://impeccable-pick.com/", "callbackHeaders": {"key": ""}}} + application/json: {"input": [{"primaryInput": {"description": null, "campaignGroupId": 657704, "timeZone": "America/North_Dakota/Center", "customCPAClickWeight": 9662.9, "customCPAViewthroughWeight": 3558.78, "customCPAType": "ClickViewthroughWeighting", "customRoasType": "CompositeWeighting", "impressionsOnlyBudgetingCpm": 4427.56, "endDateInUtc": "2023-12-21T01:12:20.772Z", "seedId": "", "campaignConversionReportingColumns": [{"trackingTagId": "", "includeInCustomCPA": false, "reportingColumnId": 356532, "ROASConfig": {"includeInCustomROAS": false, "customROASWeight": 1483.03, "customROASClickWeight": 5286.76, "customROASViewthroughWeight": 8906.82}, "productListReportingType": "Halo", "weight": null, "crossDeviceAttributionModelId": ""}], "isManagedByTTD": true, "secondaryGoal": {"maximizeReach": true, "maximizeLtvIncrementalReach": false, "cpcInAdvertiserCurrency": 3558.78, "ctrInPercent": 2407.01, "nielsenOTPInPercent": 2349.25, "cpaInAdvertiserCurrency": 7778.32, "returnOnAdSpendPercent": 6752.02, "vcrInPercent": 5019.36, "viewabilityInPercent": 5781.75, "vcpmInAdvertiserCurrency": 1696.34, "cpcvInAdvertiserCurrency": 5609.2, "miaozhenOTPInPercent": 5842.09, "iqviaAudienceQualityIndex": true, "crossixAudienceQualityIndex": false, "iqviaAudienceQualityIndexAndCostPerTarget": false, "crossixCostPerTarget": null}, "tertiaryGoal": {"maximizeReach": false, "maximizeLtvIncrementalReach": false, "cpcInAdvertiserCurrency": 6123.61, "ctrInPercent": 25.32, "nielsenOTPInPercent": 4889.32, "cpaInAdvertiserCurrency": 5258.8, "returnOnAdSpendPercent": 2553.01, "vcrInPercent": 1142.91, "viewabilityInPercent": 1152.77, "vcpmInAdvertiserCurrency": 6711.38, "cpcvInAdvertiserCurrency": 4528.37, "miaozhenOTPInPercent": 9833.69, "iqviaAudienceQualityIndex": true, "crossixAudienceQualityIndex": false, "iqviaAudienceQualityIndexAndCostPerTarget": false, "crossixCostPerTarget": true}, "advertiserId": "", "name": "", "primaryChannel": "NativeVideo", "primaryGoal": {"maximizeReach": false, "maximizeLtvIncrementalReach": false, "cpcInAdvertiserCurrency": 25.32, "ctrInPercent": 4889.32, "nielsenOTPInPercent": 5258.8, "cpaInAdvertiserCurrency": 2553.01, "returnOnAdSpendPercent": 1142.91, "vcrInPercent": 1152.77, "viewabilityInPercent": 6711.38, "vcpmInAdvertiserCurrency": 4528.37, "cpcvInAdvertiserCurrency": 9833.69, "miaozhenOTPInPercent": 1951.58, "iqviaAudienceQualityIndex": true, "crossixAudienceQualityIndex": null, "iqviaAudienceQualityIndexAndCostPerTarget": false, "crossixCostPerTarget": true}, "startDateInUtc": "2025-09-26T21:06:42.946Z", "budget": {"pacingMode": "PaceAhead", "budgetInAdvertiserCurrency": 5501.96, "budgetInImpressions": 629784, "dailyTargetInAdvertiserCurrency": 2524.41, "dailyTargetInImpressions": 726807}, "campaignIncrementalReachSetting": {"iSpotReachSetting": {"id": 178346, "name": "", "isActive": true}, "realyticsReachSetting": {"id": 268786, "name": "", "isActive": false, "products": [{"id": 106975, "name": ""}], "realyticsEntertainmentInput": "TVS"}, "tvSquaredReachSetting": {"id": 772731, "name": "", "isActive": false}, "sambaAuReachSetting": {"id": 403863, "name": null, "isActive": true}}}, "advancedInput": {"purchaseOrderNumber": "", "flights": [{"startDateInclusiveUTC": "2024-09-20T06:04:19.345Z", "endDateExclusiveUTC": "2024-01-18T07:43:56.299Z", "budgetInAdvertiserCurrency": 8219.9, "budgetInImpressions": 76925, "dailyTargetInAdvertiserCurrency": 9309.03, "dailyTargetInImpressions": 152838}], "includeDefaultsFromAdvertiser": false, "passThroughFeeCard": {"startDateUtc": "2024-07-24T11:58:59.190Z", "passThroughFees": [{"type": "DataCostPercentage", "description": "sweetly absent fortunately forenenst earnest who solidly wherever step-mother", "amount": 2888.48}]}, "callerSource": "", "frequencyConfigs": [{"counterName": null, "frequencyCap": 373225, "frequencyGoal": 966290, "resetIntervalInMinutes": 774436}]}, "adGroups": [{"primaryInput": {"isEnabled": true, "description": "scenario dish gracefully through tame yahoo pension husband as atop", "budget": {"allocationType": "Maximum", "budgetInAdvertiserCurrency": 2283.06, "budgetInImpressions": 301691, "dailyTargetInAdvertiserCurrency": 9268.18, "dailyTargetInImpressions": 851470}, "baseBidCPMInAdvertiserCurrency": 694.78, "maxBidCPMInAdvertiserCurrency": 6084.4, "audienceTargeting": {"audienceId": "", "audienceAcceleratorExclusionsEnabled": true, "audienceBoosterEnabled": false, "audienceExcluderEnabled": true, "audiencePredictorEnabled": false, "crossDeviceVendorListForAudience": [497890, 566253], "recencyExclusionWindowInMinutes": 742665, "targetTrackableUsersEnabled": true, "useMcIdAsPrimary": true}, "roiGoal": {"maximizeReach": false, "maximizeLtvIncrementalReach": true, "cpcInAdvertiserCurrency": 9062.02, "ctrInPercent": 7192.99, "nielsenOTPInPercent": 2823.22, "cpaInAdvertiserCurrency": 3140.25, "returnOnAdSpendPercent": 6857.21, "vcrInPercent": 2704.73, "viewabilityInPercent": 2247.4, "vcpmInAdvertiserCurrency": 8383.69, "cpcvInAdvertiserCurrency": 4755.8, "miaozhenOTPInPercent": 4575.86}, "creativeIds": ["", ""], "associatedBidLists": [{"bidListId": "", "isEnabled": true, "isDefaultForDimension": false}], "name": "", "channel": "Display", "funnelLocation": "Awareness", "marketType": "PrivateMarketOnly", "programmaticGuaranteedPrivateContractId": "", "includeDefaultsFromCampaign": true}, "advancedInput": {"koaOptimizationSettings": {"areFutureKoaFeaturesEnabled": true, "predictiveClearingEnabled": false}, "comscoreSettings": {"isEnabled": false, "populationId": 559587, "demographicMemberIds": [139340, 129935], "mobileDemographicMemberIds": null}, "contractTargeting": {"allowOpenMarketBiddingWhenTargetingContracts": true}, "dimensionalBiddingAutoOptimizationSettings": [["HasAudienceReachPercentageTierId"], []], "isUseClicksAsConversionsEnabled": false, "isUseSecondaryConversionsEnabled": true, "nielsenTrackingAttributes": {"enhancedReportingOption": "None", "gender": "Female", "startAge": "ThirtyFive", "endAge": "TwentyFour", "countries": ["", ""]}, "newFrequencyConfigs": null, "includeDefaultsFromCampaign": true, "flights": [{"allocationType": "Maximum", "budgetInAdvertiserCurrency": 4838.47, "budgetInImpressions": 420224, "dailyTargetInAdvertiserCurrency": 1513.78, "dailyTargetInImpressions": 735500}]}}]}], "validateInputOnly": true, "callbackInput": {"callbackUrl": "https://impeccable-pick.com/", "callbackHeaders": {"key": ""}}} responses: "202": application/json: {"id": 400815} @@ -770,7 +2074,7 @@ examples: updateCampaignsJob: speakeasy-default-update-campaigns-job: requestBody: - application/json: {"input": [{"id": "", "primaryInput": {"description": "hmph energetically yet surprisingly swift knight swear multicolored absent", "campaignGroupId": 645576, "timeZone": "America/Argentina/San_Juan", "customCPAClickWeight": null, "customCPAViewthroughWeight": 8361.84, "customCPAType": "PixelWeighting", "customRoasType": "ClickViewthroughWeighting", "impressionsOnlyBudgetingCpm": 2706.4, "budget": {"pacingMode": "PaceAsSoonAsPossible", "budgetInAdvertiserCurrency": 2564.89, "budgetInImpressions": 659726, "dailyTargetInAdvertiserCurrency": 6514.48, "dailyTargetInImpressions": 892097}, "endDateInUtc": "2023-11-11T21:39:56.025Z", "seedId": "", "campaignConversionReportingColumns": [{"trackingTagId": "", "includeInCustomCPA": true, "reportingColumnId": 809247, "ROASConfig": {"includeInCustomROAS": false, "customROASWeight": null, "customROASClickWeight": null, "customROASViewthroughWeight": 6784.9}, "weight": 2260.69, "crossDeviceAttributionModelId": ""}], "isManagedByTTD": true, "secondaryGoal": {"maximizeReach": false, "maximizeLtvIncrementalReach": false, "cpcInAdvertiserCurrency": null, "ctrInPercent": null, "nielsenOTPInPercent": 5546.51, "cpaInAdvertiserCurrency": 7735.11, "returnOnAdSpendPercent": 5459.4, "vcrInPercent": 7724.91, "viewabilityInPercent": null, "vcpmInAdvertiserCurrency": 9927, "cpcvInAdvertiserCurrency": 1852.41, "miaozhenOTPInPercent": 2827.93, "iqviaAudienceQualityIndex": false, "crossixAudienceQualityIndex": null, "iqviaAudienceQualityIndexAndCostPerTarget": false, "crossixCostPerTarget": true}, "tertiaryGoal": {"maximizeReach": false, "maximizeLtvIncrementalReach": false, "cpcInAdvertiserCurrency": 7329.7, "ctrInPercent": 9103.24, "nielsenOTPInPercent": 2359.55, "cpaInAdvertiserCurrency": 6489.19, "returnOnAdSpendPercent": 8265.87, "vcrInPercent": null, "viewabilityInPercent": 6404.44, "vcpmInAdvertiserCurrency": 1278.49, "cpcvInAdvertiserCurrency": 9238.19, "miaozhenOTPInPercent": 8948.48, "iqviaAudienceQualityIndex": true, "crossixAudienceQualityIndex": false, "iqviaAudienceQualityIndexAndCostPerTarget": false, "crossixCostPerTarget": true}, "name": "", "primaryChannel": "None", "primaryGoal": {"maximizeReach": true, "maximizeLtvIncrementalReach": false, "cpcInAdvertiserCurrency": 3354.68, "ctrInPercent": 7716.49, "nielsenOTPInPercent": null, "cpaInAdvertiserCurrency": 381.7, "returnOnAdSpendPercent": 8461.44, "vcrInPercent": 4170.61, "viewabilityInPercent": 5364.85, "vcpmInAdvertiserCurrency": 1107.08, "cpcvInAdvertiserCurrency": null, "miaozhenOTPInPercent": 4584.96, "iqviaAudienceQualityIndex": true, "crossixAudienceQualityIndex": false, "iqviaAudienceQualityIndexAndCostPerTarget": true, "crossixCostPerTarget": true}, "startDateInUtc": "2023-01-13T23:06:05.083Z"}, "advancedInput": {"flights": [{"startDateInclusiveUTC": "2023-08-14T13:47:31.198Z", "endDateExclusiveUTC": "2024-07-07T14:46:57.378Z", "budgetInAdvertiserCurrency": 1874.95, "budgetInImpressions": 207094, "dailyTargetInAdvertiserCurrency": 7255.71, "dailyTargetInImpressions": 760981}], "purchaseOrderNumber": ""}}], "validateInputOnly": true, "callbackInput": {"callbackUrl": "https://soggy-apparatus.org/", "callbackHeaders": {"key": "", "key1": "", "key2": ""}}} + application/json: {"input": [{"id": "", "primaryInput": {"description": "hmph energetically yet surprisingly swift knight swear multicolored absent", "campaignGroupId": 645576, "timeZone": "America/Argentina/San_Juan", "customCPAClickWeight": null, "customCPAViewthroughWeight": 8361.84, "customCPAType": "PixelWeighting", "customRoasType": "ClickViewthroughWeighting", "impressionsOnlyBudgetingCpm": 2706.4, "endDateInUtc": "2023-11-11T21:39:56.025Z", "seedId": "", "campaignConversionReportingColumns": [{"trackingTagId": "", "includeInCustomCPA": true, "reportingColumnId": 809247, "ROASConfig": {"includeInCustomROAS": false, "customROASWeight": null, "customROASClickWeight": null, "customROASViewthroughWeight": 6784.9}, "productListReportingType": "Halo", "weight": 2260.69, "crossDeviceAttributionModelId": ""}], "isManagedByTTD": true, "secondaryGoal": {"maximizeReach": false, "maximizeLtvIncrementalReach": false, "cpcInAdvertiserCurrency": null, "ctrInPercent": null, "nielsenOTPInPercent": 5546.51, "cpaInAdvertiserCurrency": 7735.11, "returnOnAdSpendPercent": 5459.4, "vcrInPercent": 7724.91, "viewabilityInPercent": null, "vcpmInAdvertiserCurrency": 9927, "cpcvInAdvertiserCurrency": 1852.41, "miaozhenOTPInPercent": 2827.93, "iqviaAudienceQualityIndex": false, "crossixAudienceQualityIndex": null, "iqviaAudienceQualityIndexAndCostPerTarget": false, "crossixCostPerTarget": true}, "tertiaryGoal": {"maximizeReach": false, "maximizeLtvIncrementalReach": false, "cpcInAdvertiserCurrency": 7329.7, "ctrInPercent": 9103.24, "nielsenOTPInPercent": 2359.55, "cpaInAdvertiserCurrency": 6489.19, "returnOnAdSpendPercent": 8265.87, "vcrInPercent": null, "viewabilityInPercent": 6404.44, "vcpmInAdvertiserCurrency": 1278.49, "cpcvInAdvertiserCurrency": 9238.19, "miaozhenOTPInPercent": 8948.48, "iqviaAudienceQualityIndex": true, "crossixAudienceQualityIndex": false, "iqviaAudienceQualityIndexAndCostPerTarget": false, "crossixCostPerTarget": true}, "name": "", "primaryChannel": "None", "primaryGoal": {"maximizeReach": true, "maximizeLtvIncrementalReach": false, "cpcInAdvertiserCurrency": 3354.68, "ctrInPercent": 7716.49, "nielsenOTPInPercent": null, "cpaInAdvertiserCurrency": 381.7, "returnOnAdSpendPercent": 8461.44, "vcrInPercent": 4170.61, "viewabilityInPercent": 5364.85, "vcpmInAdvertiserCurrency": 1107.08, "cpcvInAdvertiserCurrency": null, "miaozhenOTPInPercent": 4584.96, "iqviaAudienceQualityIndex": true, "crossixAudienceQualityIndex": false, "iqviaAudienceQualityIndexAndCostPerTarget": true, "crossixCostPerTarget": true}, "startDateInUtc": "2023-01-13T23:06:05.083Z", "budget": {"pacingMode": "PaceAsSoonAsPossible"}}, "advancedInput": {"purchaseOrderNumber": ""}}], "validateInputOnly": true, "callbackInput": {"callbackUrl": "https://soggy-apparatus.org/", "callbackHeaders": {"key": "", "key1": "", "key2": ""}}} responses: "202": application/json: {"id": 833664} @@ -888,4 +2192,429 @@ examples: application/json: {"type": "", "title": "", "status": 603376, "detail": "", "instance": ""} examplesVersion: 1.0.2 generatedTests: {} -releaseNotes: "## Java SDK Changes Detected:\n* `workflows.adGroup.createAdGroup()`: \n * `request` **Changed**\n * `response.adgroup.marketType` **Added**\n* `workflows.adGroup.updateAdGroup()`: \n * `request` **Changed**\n * `response.adgroup.marketType` **Added**\n* `workflows.adGroup.createAdGroupsJob()`: \n * `request.input.[]` **Changed**\n* `workflows.adGroup.updateAdGroupsJob()`: \n * `request.input.[]` **Changed**\n* `workflows.campaign.create()`: \n * `request` **Changed**\n * `response.adgroups.[].marketType` **Added**\n* `workflows.campaign.updateCampaign()`: `response.adgroups.[].marketType` **Added**\n* `workflows.campaign.createCampaignsJob()`: \n * `request.input.[]` **Changed**\n* `workflows.campaign.updateCampaignsJob()`: `response.adgroups.[].marketType` **Added**\n" +releaseNotes: "## Java SDK Changes:\n* `workflows.campaign.updateCampaign()`: `request` **Changed** **Breaking** ⚠️\n* `workflows.campaign.updateCampaignsJob()`: \n * `request.input[]` **Changed** **Breaking** ⚠️\n* `workflows.campaign.create()`: `request` **Changed**\n* `workflows.campaign.createCampaignsJob()`: \n * `request.input[]` **Changed**\n" +generatedFiles: + - .gitattributes + - USAGE.md + - build.gradle + - docs/models/components/AdGroupAssociateBidList.md + - docs/models/components/AdGroupAudienceTargeting.md + - docs/models/components/AdGroupBudget.md + - docs/models/components/AdGroupBulkCreateWorkflowInputWithValidation.md + - docs/models/components/AdGroupBulkUpdateWorkflowInputWithValidation.md + - docs/models/components/AdGroupChannel.md + - docs/models/components/AdGroupComscoreSettings.md + - docs/models/components/AdGroupContractTargeting.md + - docs/models/components/AdGroupCreateWorkflowInput.md + - docs/models/components/AdGroupCreateWorkflowInputWithValidation.md + - docs/models/components/AdGroupCreateWorkflowPrimaryInput.md + - docs/models/components/AdGroupFlight.md + - docs/models/components/AdGroupFunnelLocation.md + - docs/models/components/AdGroupKoaOptimizationSettings.md + - docs/models/components/AdGroupNielsenTrackingAttributes.md + - docs/models/components/AdGroupPayload.md + - docs/models/components/AdGroupROIGoal.md + - docs/models/components/AdGroupUpdateWorkflowInput.md + - docs/models/components/AdGroupUpdateWorkflowInputWithValidation.md + - docs/models/components/AdGroupUpdateWorkflowPrimaryInput.md + - docs/models/components/AdGroupWorkflow.md + - docs/models/components/AdGroupWorkflowAdvancedInput.md + - docs/models/components/AdGroupWorkflowAssociateBidListInput.md + - docs/models/components/AdGroupWorkflowAudienceTargetingInput.md + - docs/models/components/AdGroupWorkflowBudgetInput.md + - docs/models/components/AdGroupWorkflowComscoreSettingsInput.md + - docs/models/components/AdGroupWorkflowContractTargetingInput.md + - docs/models/components/AdGroupWorkflowFlightInput.md + - docs/models/components/AdGroupWorkflowKoaOptimizationSettingsInput.md + - docs/models/components/AdGroupWorkflowNewFrequencyConfigInput.md + - docs/models/components/AdGroupWorkflowNielsenTrackingAttributesInput.md + - docs/models/components/AdGroupWorkflowROIGoalInput.md + - docs/models/components/AllocationType.md + - docs/models/components/BulkJobStatus.md + - docs/models/components/CallRestApiWorkflowInput.md + - docs/models/components/CampaignBulkCreateWorkflowInputWithValidation.md + - docs/models/components/CampaignBulkUpdateWorkflowInputWithValidation.md + - docs/models/components/CampaignChannelType.md + - docs/models/components/CampaignCreatePassThroughFeesInput.md + - docs/models/components/CampaignCreateWorkflowAdGroupAdvancedInput.md + - docs/models/components/CampaignCreateWorkflowAdGroupFlightInput.md + - docs/models/components/CampaignCreateWorkflowAdGroupInput.md + - docs/models/components/CampaignCreateWorkflowAdvancedInput.md + - docs/models/components/CampaignCreateWorkflowIncrementalReachCampaignSetting.md + - docs/models/components/CampaignCreateWorkflowInput.md + - docs/models/components/CampaignCreateWorkflowInputWithValidation.md + - docs/models/components/CampaignCreateWorkflowPassThroughFeeCardInput.md + - docs/models/components/CampaignCreateWorkflowPrimaryInput.md + - docs/models/components/CampaignFlightWorkflow.md + - docs/models/components/CampaignPacingMode.md + - docs/models/components/CampaignPayload.md + - docs/models/components/CampaignUpdateWorkflowAdvancedInput.md + - docs/models/components/CampaignUpdateWorkflowInput.md + - docs/models/components/CampaignUpdateWorkflowInputWithValidation.md + - docs/models/components/CampaignUpdateWorkflowPrimaryInput.md + - docs/models/components/CampaignVersionWorkflow.md + - docs/models/components/CampaignWorkflow.md + - docs/models/components/CampaignWorkflowBudgetInput.md + - docs/models/components/CampaignWorkflowCampaignConversionReportingColumnInput.md + - docs/models/components/CampaignWorkflowFlightInput.md + - docs/models/components/CampaignWorkflowROIGoalInput.md + - docs/models/components/CustomCPAType.md + - docs/models/components/CustomROASConfig.md + - docs/models/components/CustomROASType.md + - docs/models/components/DimensionalBiddingDimensions.md + - docs/models/components/EnhancedNielsenReportingOptions.md + - docs/models/components/EnhancedNielsenReportingOptionsInput.md + - docs/models/components/FirstPartyDataInput.md + - docs/models/components/GraphQLBulkJobError.md + - docs/models/components/GraphQLBulkJobRetrievalResponse.md + - docs/models/components/GraphQLRequestInput.md + - docs/models/components/GraphQlBulkJob.md + - docs/models/components/GraphQlBulkJobCallbackInput.md + - docs/models/components/GraphQlBulkJobPayload.md + - docs/models/components/GraphQlBulkJobResponse.md + - docs/models/components/GraphQlQueryJobInput.md + - docs/models/components/IncrementalReachBrandInput.md + - docs/models/components/IncrementalReachProductInput.md + - docs/models/components/KeyValuePairOfStringAndStringInput.md + - docs/models/components/MarketType.md + - docs/models/components/PassThroughFeeType.md + - docs/models/components/ProblemDetails.md + - docs/models/components/RealyticsEntertainmentType.md + - docs/models/components/RealyticsReachSettingInput.md + - docs/models/components/RestApiMethodType.md + - docs/models/components/Security.md + - docs/models/components/StandardJobStatusResponse.md + - docs/models/components/StandardJobSubmitResponse.md + - docs/models/components/TargetingEndAge.md + - docs/models/components/TargetingEndAgeInput.md + - docs/models/components/TargetingGender.md + - docs/models/components/TargetingGenderInput.md + - docs/models/components/TargetingStartAge.md + - docs/models/components/TargetingStartAgeInput.md + - docs/models/components/ThirdPartyDataInput.md + - docs/models/components/WorkflowCallbackInput.md + - docs/models/components/WorkflowStatus.md + - docs/models/errors/ProblemDetailsException.md + - docs/models/operations/ArchiveAdGroupsRequest.md + - docs/models/operations/ArchiveAdGroupsResponse.md + - docs/models/operations/ArchiveCampaignsRequest.md + - docs/models/operations/ArchiveCampaignsResponse.md + - docs/models/operations/CreateAdGroupResponse.md + - docs/models/operations/CreateAdGroupsJobResponse.md + - docs/models/operations/CreateCampaignResponse.md + - docs/models/operations/CreateCampaignsJobResponse.md + - docs/models/operations/GetCampaignVersionRequest.md + - docs/models/operations/GetCampaignVersionResponse.md + - docs/models/operations/GetFirstPartyDataJobResponse.md + - docs/models/operations/GetGraphQlBulkJobStatusRequest.md + - docs/models/operations/GetGraphQlBulkJobStatusResponse.md + - docs/models/operations/GetJobStatusRequest.md + - docs/models/operations/GetJobStatusResponse.md + - docs/models/operations/GetThirdPartyDataJobResponse.md + - docs/models/operations/SubmitGraphQlBulkQueryJobResponse.md + - docs/models/operations/SubmitGraphQlRequestResponse.md + - docs/models/operations/SubmitRestRequestResponse.md + - docs/models/operations/UpdateAdGroupResponse.md + - docs/models/operations/UpdateAdGroupsJobResponse.md + - docs/models/operations/UpdateCampaignResponse.md + - docs/models/operations/UpdateCampaignsJobResponse.md + - docs/sdks/adgroup/README.md + - docs/sdks/campaign/README.md + - docs/sdks/dmp/README.md + - docs/sdks/graphqlrequest/README.md + - docs/sdks/jobstatus/README.md + - docs/sdks/restrequest/README.md + - docs/utils/Blob.md + - gradle.properties + - gradle/wrapper/gradle-wrapper.jar + - gradle/wrapper/gradle-wrapper.properties + - gradlew + - gradlew.bat + - publishing.gradle + - settings.gradle + - spring/workflows-spring-boot-autoconfigure/build.gradle + - spring/workflows-spring-boot-autoconfigure/src/main/java/com/thetradedesk/workflows/ConditionalOnPropertyPrefix.java + - spring/workflows-spring-boot-autoconfigure/src/main/java/com/thetradedesk/workflows/OnPropertyPrefixCondition.java + - spring/workflows-spring-boot-autoconfigure/src/main/java/com/thetradedesk/workflows/WorkflowsAutoConfig.java + - spring/workflows-spring-boot-autoconfigure/src/main/java/com/thetradedesk/workflows/WorkflowsAutoConfigProperties.java + - spring/workflows-spring-boot-autoconfigure/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports + - spring/workflows-spring-boot-starter/build.gradle + - src/main/java/com/thetradedesk/workflows/AdGroup.java + - src/main/java/com/thetradedesk/workflows/AsyncAdGroup.java + - src/main/java/com/thetradedesk/workflows/AsyncCampaign.java + - src/main/java/com/thetradedesk/workflows/AsyncDmp.java + - src/main/java/com/thetradedesk/workflows/AsyncGraphQLRequest.java + - src/main/java/com/thetradedesk/workflows/AsyncJobStatus.java + - src/main/java/com/thetradedesk/workflows/AsyncRESTRequest.java + - src/main/java/com/thetradedesk/workflows/AsyncWorkflows.java + - src/main/java/com/thetradedesk/workflows/Campaign.java + - src/main/java/com/thetradedesk/workflows/Dmp.java + - src/main/java/com/thetradedesk/workflows/GraphQLRequest.java + - src/main/java/com/thetradedesk/workflows/JobStatus.java + - src/main/java/com/thetradedesk/workflows/RESTRequest.java + - src/main/java/com/thetradedesk/workflows/SDKConfiguration.java + - src/main/java/com/thetradedesk/workflows/SecuritySource.java + - src/main/java/com/thetradedesk/workflows/Workflows.java + - src/main/java/com/thetradedesk/workflows/models/components/AdGroupAssociateBidList.java + - src/main/java/com/thetradedesk/workflows/models/components/AdGroupAudienceTargeting.java + - src/main/java/com/thetradedesk/workflows/models/components/AdGroupBudget.java + - src/main/java/com/thetradedesk/workflows/models/components/AdGroupBulkCreateWorkflowInputWithValidation.java + - src/main/java/com/thetradedesk/workflows/models/components/AdGroupBulkUpdateWorkflowInputWithValidation.java + - src/main/java/com/thetradedesk/workflows/models/components/AdGroupChannel.java + - src/main/java/com/thetradedesk/workflows/models/components/AdGroupComscoreSettings.java + - src/main/java/com/thetradedesk/workflows/models/components/AdGroupContractTargeting.java + - src/main/java/com/thetradedesk/workflows/models/components/AdGroupCreateWorkflowInput.java + - src/main/java/com/thetradedesk/workflows/models/components/AdGroupCreateWorkflowInputWithValidation.java + - src/main/java/com/thetradedesk/workflows/models/components/AdGroupCreateWorkflowPrimaryInput.java + - src/main/java/com/thetradedesk/workflows/models/components/AdGroupFlight.java + - src/main/java/com/thetradedesk/workflows/models/components/AdGroupFunnelLocation.java + - src/main/java/com/thetradedesk/workflows/models/components/AdGroupKoaOptimizationSettings.java + - src/main/java/com/thetradedesk/workflows/models/components/AdGroupNielsenTrackingAttributes.java + - src/main/java/com/thetradedesk/workflows/models/components/AdGroupPayload.java + - src/main/java/com/thetradedesk/workflows/models/components/AdGroupROIGoal.java + - src/main/java/com/thetradedesk/workflows/models/components/AdGroupUpdateWorkflowInput.java + - src/main/java/com/thetradedesk/workflows/models/components/AdGroupUpdateWorkflowInputWithValidation.java + - src/main/java/com/thetradedesk/workflows/models/components/AdGroupUpdateWorkflowPrimaryInput.java + - src/main/java/com/thetradedesk/workflows/models/components/AdGroupWorkflow.java + - src/main/java/com/thetradedesk/workflows/models/components/AdGroupWorkflowAdvancedInput.java + - src/main/java/com/thetradedesk/workflows/models/components/AdGroupWorkflowAssociateBidListInput.java + - src/main/java/com/thetradedesk/workflows/models/components/AdGroupWorkflowAudienceTargetingInput.java + - src/main/java/com/thetradedesk/workflows/models/components/AdGroupWorkflowBudgetInput.java + - src/main/java/com/thetradedesk/workflows/models/components/AdGroupWorkflowComscoreSettingsInput.java + - src/main/java/com/thetradedesk/workflows/models/components/AdGroupWorkflowContractTargetingInput.java + - src/main/java/com/thetradedesk/workflows/models/components/AdGroupWorkflowFlightInput.java + - src/main/java/com/thetradedesk/workflows/models/components/AdGroupWorkflowKoaOptimizationSettingsInput.java + - src/main/java/com/thetradedesk/workflows/models/components/AdGroupWorkflowNewFrequencyConfigInput.java + - src/main/java/com/thetradedesk/workflows/models/components/AdGroupWorkflowNielsenTrackingAttributesInput.java + - src/main/java/com/thetradedesk/workflows/models/components/AdGroupWorkflowROIGoalInput.java + - src/main/java/com/thetradedesk/workflows/models/components/AllocationType.java + - src/main/java/com/thetradedesk/workflows/models/components/BulkJobStatus.java + - src/main/java/com/thetradedesk/workflows/models/components/CallRestApiWorkflowInput.java + - src/main/java/com/thetradedesk/workflows/models/components/CampaignBulkCreateWorkflowInputWithValidation.java + - src/main/java/com/thetradedesk/workflows/models/components/CampaignBulkUpdateWorkflowInputWithValidation.java + - src/main/java/com/thetradedesk/workflows/models/components/CampaignChannelType.java + - src/main/java/com/thetradedesk/workflows/models/components/CampaignCreatePassThroughFeesInput.java + - src/main/java/com/thetradedesk/workflows/models/components/CampaignCreateWorkflowAdGroupAdvancedInput.java + - src/main/java/com/thetradedesk/workflows/models/components/CampaignCreateWorkflowAdGroupFlightInput.java + - src/main/java/com/thetradedesk/workflows/models/components/CampaignCreateWorkflowAdGroupInput.java + - src/main/java/com/thetradedesk/workflows/models/components/CampaignCreateWorkflowAdvancedInput.java + - src/main/java/com/thetradedesk/workflows/models/components/CampaignCreateWorkflowIncrementalReachCampaignSetting.java + - src/main/java/com/thetradedesk/workflows/models/components/CampaignCreateWorkflowInput.java + - src/main/java/com/thetradedesk/workflows/models/components/CampaignCreateWorkflowInputWithValidation.java + - src/main/java/com/thetradedesk/workflows/models/components/CampaignCreateWorkflowPassThroughFeeCardInput.java + - src/main/java/com/thetradedesk/workflows/models/components/CampaignCreateWorkflowPrimaryInput.java + - src/main/java/com/thetradedesk/workflows/models/components/CampaignFlightWorkflow.java + - src/main/java/com/thetradedesk/workflows/models/components/CampaignPacingMode.java + - src/main/java/com/thetradedesk/workflows/models/components/CampaignPayload.java + - src/main/java/com/thetradedesk/workflows/models/components/CampaignUpdateWorkflowAdvancedInput.java + - src/main/java/com/thetradedesk/workflows/models/components/CampaignUpdateWorkflowInput.java + - src/main/java/com/thetradedesk/workflows/models/components/CampaignUpdateWorkflowInputWithValidation.java + - src/main/java/com/thetradedesk/workflows/models/components/CampaignUpdateWorkflowPrimaryInput.java + - src/main/java/com/thetradedesk/workflows/models/components/CampaignVersionWorkflow.java + - src/main/java/com/thetradedesk/workflows/models/components/CampaignWorkflow.java + - src/main/java/com/thetradedesk/workflows/models/components/CampaignWorkflowBudgetInput.java + - src/main/java/com/thetradedesk/workflows/models/components/CampaignWorkflowCampaignConversionReportingColumnInput.java + - src/main/java/com/thetradedesk/workflows/models/components/CampaignWorkflowFlightInput.java + - src/main/java/com/thetradedesk/workflows/models/components/CampaignWorkflowROIGoalInput.java + - src/main/java/com/thetradedesk/workflows/models/components/CustomCPAType.java + - src/main/java/com/thetradedesk/workflows/models/components/CustomROASConfig.java + - src/main/java/com/thetradedesk/workflows/models/components/CustomROASType.java + - src/main/java/com/thetradedesk/workflows/models/components/DimensionalBiddingDimensions.java + - src/main/java/com/thetradedesk/workflows/models/components/EnhancedNielsenReportingOptions.java + - src/main/java/com/thetradedesk/workflows/models/components/EnhancedNielsenReportingOptionsInput.java + - src/main/java/com/thetradedesk/workflows/models/components/FirstPartyDataInput.java + - src/main/java/com/thetradedesk/workflows/models/components/GraphQLBulkJobError.java + - src/main/java/com/thetradedesk/workflows/models/components/GraphQLBulkJobRetrievalResponse.java + - src/main/java/com/thetradedesk/workflows/models/components/GraphQLRequestInput.java + - src/main/java/com/thetradedesk/workflows/models/components/GraphQlBulkJob.java + - src/main/java/com/thetradedesk/workflows/models/components/GraphQlBulkJobCallbackInput.java + - src/main/java/com/thetradedesk/workflows/models/components/GraphQlBulkJobPayload.java + - src/main/java/com/thetradedesk/workflows/models/components/GraphQlBulkJobResponse.java + - src/main/java/com/thetradedesk/workflows/models/components/GraphQlQueryJobInput.java + - src/main/java/com/thetradedesk/workflows/models/components/IncrementalReachBrandInput.java + - src/main/java/com/thetradedesk/workflows/models/components/IncrementalReachProductInput.java + - src/main/java/com/thetradedesk/workflows/models/components/KeyValuePairOfStringAndStringInput.java + - src/main/java/com/thetradedesk/workflows/models/components/MarketType.java + - src/main/java/com/thetradedesk/workflows/models/components/PassThroughFeeType.java + - src/main/java/com/thetradedesk/workflows/models/components/ProblemDetails.java + - src/main/java/com/thetradedesk/workflows/models/components/RealyticsEntertainmentType.java + - src/main/java/com/thetradedesk/workflows/models/components/RealyticsReachSettingInput.java + - src/main/java/com/thetradedesk/workflows/models/components/RestApiMethodType.java + - src/main/java/com/thetradedesk/workflows/models/components/Security.java + - src/main/java/com/thetradedesk/workflows/models/components/StandardJobStatusResponse.java + - src/main/java/com/thetradedesk/workflows/models/components/StandardJobSubmitResponse.java + - src/main/java/com/thetradedesk/workflows/models/components/TargetingEndAge.java + - src/main/java/com/thetradedesk/workflows/models/components/TargetingEndAgeInput.java + - src/main/java/com/thetradedesk/workflows/models/components/TargetingGender.java + - src/main/java/com/thetradedesk/workflows/models/components/TargetingGenderInput.java + - src/main/java/com/thetradedesk/workflows/models/components/TargetingStartAge.java + - src/main/java/com/thetradedesk/workflows/models/components/TargetingStartAgeInput.java + - src/main/java/com/thetradedesk/workflows/models/components/ThirdPartyDataInput.java + - src/main/java/com/thetradedesk/workflows/models/components/WorkflowCallbackInput.java + - src/main/java/com/thetradedesk/workflows/models/components/WorkflowStatus.java + - src/main/java/com/thetradedesk/workflows/models/errors/APIException.java + - src/main/java/com/thetradedesk/workflows/models/errors/AsyncAPIException.java + - src/main/java/com/thetradedesk/workflows/models/errors/AuthException.java + - src/main/java/com/thetradedesk/workflows/models/errors/ProblemDetailsException.java + - src/main/java/com/thetradedesk/workflows/models/errors/WorkflowsError.java + - src/main/java/com/thetradedesk/workflows/models/operations//async/ArchiveAdGroupsRequestBuilder.java + - src/main/java/com/thetradedesk/workflows/models/operations//async/ArchiveCampaignsRequestBuilder.java + - src/main/java/com/thetradedesk/workflows/models/operations//async/CreateAdGroupRequestBuilder.java + - src/main/java/com/thetradedesk/workflows/models/operations//async/CreateAdGroupsJobRequestBuilder.java + - src/main/java/com/thetradedesk/workflows/models/operations//async/CreateCampaignRequestBuilder.java + - src/main/java/com/thetradedesk/workflows/models/operations//async/CreateCampaignsJobRequestBuilder.java + - src/main/java/com/thetradedesk/workflows/models/operations//async/GetCampaignVersionRequestBuilder.java + - src/main/java/com/thetradedesk/workflows/models/operations//async/GetFirstPartyDataJobRequestBuilder.java + - src/main/java/com/thetradedesk/workflows/models/operations//async/GetGraphQlBulkJobStatusRequestBuilder.java + - src/main/java/com/thetradedesk/workflows/models/operations//async/GetJobStatusRequestBuilder.java + - src/main/java/com/thetradedesk/workflows/models/operations//async/GetThirdPartyDataJobRequestBuilder.java + - src/main/java/com/thetradedesk/workflows/models/operations//async/SubmitGraphQlBulkQueryJobRequestBuilder.java + - src/main/java/com/thetradedesk/workflows/models/operations//async/SubmitGraphQlRequestRequestBuilder.java + - src/main/java/com/thetradedesk/workflows/models/operations//async/SubmitRestRequestRequestBuilder.java + - src/main/java/com/thetradedesk/workflows/models/operations//async/UpdateAdGroupRequestBuilder.java + - src/main/java/com/thetradedesk/workflows/models/operations//async/UpdateAdGroupsJobRequestBuilder.java + - src/main/java/com/thetradedesk/workflows/models/operations//async/UpdateCampaignRequestBuilder.java + - src/main/java/com/thetradedesk/workflows/models/operations//async/UpdateCampaignsJobRequestBuilder.java + - src/main/java/com/thetradedesk/workflows/models/operations/ArchiveAdGroupsRequest.java + - src/main/java/com/thetradedesk/workflows/models/operations/ArchiveAdGroupsRequestBuilder.java + - src/main/java/com/thetradedesk/workflows/models/operations/ArchiveAdGroupsResponse.java + - src/main/java/com/thetradedesk/workflows/models/operations/ArchiveCampaignsRequest.java + - src/main/java/com/thetradedesk/workflows/models/operations/ArchiveCampaignsRequestBuilder.java + - src/main/java/com/thetradedesk/workflows/models/operations/ArchiveCampaignsResponse.java + - src/main/java/com/thetradedesk/workflows/models/operations/CreateAdGroupRequestBuilder.java + - src/main/java/com/thetradedesk/workflows/models/operations/CreateAdGroupResponse.java + - src/main/java/com/thetradedesk/workflows/models/operations/CreateAdGroupsJobRequestBuilder.java + - src/main/java/com/thetradedesk/workflows/models/operations/CreateAdGroupsJobResponse.java + - src/main/java/com/thetradedesk/workflows/models/operations/CreateCampaignRequestBuilder.java + - src/main/java/com/thetradedesk/workflows/models/operations/CreateCampaignResponse.java + - src/main/java/com/thetradedesk/workflows/models/operations/CreateCampaignsJobRequestBuilder.java + - src/main/java/com/thetradedesk/workflows/models/operations/CreateCampaignsJobResponse.java + - src/main/java/com/thetradedesk/workflows/models/operations/GetCampaignVersionRequest.java + - src/main/java/com/thetradedesk/workflows/models/operations/GetCampaignVersionRequestBuilder.java + - src/main/java/com/thetradedesk/workflows/models/operations/GetCampaignVersionResponse.java + - src/main/java/com/thetradedesk/workflows/models/operations/GetFirstPartyDataJobRequestBuilder.java + - src/main/java/com/thetradedesk/workflows/models/operations/GetFirstPartyDataJobResponse.java + - src/main/java/com/thetradedesk/workflows/models/operations/GetGraphQlBulkJobStatusRequest.java + - src/main/java/com/thetradedesk/workflows/models/operations/GetGraphQlBulkJobStatusRequestBuilder.java + - src/main/java/com/thetradedesk/workflows/models/operations/GetGraphQlBulkJobStatusResponse.java + - src/main/java/com/thetradedesk/workflows/models/operations/GetJobStatusRequest.java + - src/main/java/com/thetradedesk/workflows/models/operations/GetJobStatusRequestBuilder.java + - src/main/java/com/thetradedesk/workflows/models/operations/GetJobStatusResponse.java + - src/main/java/com/thetradedesk/workflows/models/operations/GetThirdPartyDataJobRequestBuilder.java + - src/main/java/com/thetradedesk/workflows/models/operations/GetThirdPartyDataJobResponse.java + - src/main/java/com/thetradedesk/workflows/models/operations/SubmitGraphQlBulkQueryJobRequestBuilder.java + - src/main/java/com/thetradedesk/workflows/models/operations/SubmitGraphQlBulkQueryJobResponse.java + - src/main/java/com/thetradedesk/workflows/models/operations/SubmitGraphQlRequestRequestBuilder.java + - src/main/java/com/thetradedesk/workflows/models/operations/SubmitGraphQlRequestResponse.java + - src/main/java/com/thetradedesk/workflows/models/operations/SubmitRestRequestRequestBuilder.java + - src/main/java/com/thetradedesk/workflows/models/operations/SubmitRestRequestResponse.java + - src/main/java/com/thetradedesk/workflows/models/operations/UpdateAdGroupRequestBuilder.java + - src/main/java/com/thetradedesk/workflows/models/operations/UpdateAdGroupResponse.java + - src/main/java/com/thetradedesk/workflows/models/operations/UpdateAdGroupsJobRequestBuilder.java + - src/main/java/com/thetradedesk/workflows/models/operations/UpdateAdGroupsJobResponse.java + - src/main/java/com/thetradedesk/workflows/models/operations/UpdateCampaignRequestBuilder.java + - src/main/java/com/thetradedesk/workflows/models/operations/UpdateCampaignResponse.java + - src/main/java/com/thetradedesk/workflows/models/operations/UpdateCampaignsJobRequestBuilder.java + - src/main/java/com/thetradedesk/workflows/models/operations/UpdateCampaignsJobResponse.java + - src/main/java/com/thetradedesk/workflows/models/operations/async/ArchiveAdGroupsResponse.java + - src/main/java/com/thetradedesk/workflows/models/operations/async/ArchiveCampaignsResponse.java + - src/main/java/com/thetradedesk/workflows/models/operations/async/CreateAdGroupResponse.java + - src/main/java/com/thetradedesk/workflows/models/operations/async/CreateAdGroupsJobResponse.java + - src/main/java/com/thetradedesk/workflows/models/operations/async/CreateCampaignResponse.java + - src/main/java/com/thetradedesk/workflows/models/operations/async/CreateCampaignsJobResponse.java + - src/main/java/com/thetradedesk/workflows/models/operations/async/GetCampaignVersionResponse.java + - src/main/java/com/thetradedesk/workflows/models/operations/async/GetFirstPartyDataJobResponse.java + - src/main/java/com/thetradedesk/workflows/models/operations/async/GetGraphQlBulkJobStatusResponse.java + - src/main/java/com/thetradedesk/workflows/models/operations/async/GetJobStatusResponse.java + - src/main/java/com/thetradedesk/workflows/models/operations/async/GetThirdPartyDataJobResponse.java + - src/main/java/com/thetradedesk/workflows/models/operations/async/SubmitGraphQlBulkQueryJobResponse.java + - src/main/java/com/thetradedesk/workflows/models/operations/async/SubmitGraphQlRequestResponse.java + - src/main/java/com/thetradedesk/workflows/models/operations/async/SubmitRestRequestResponse.java + - src/main/java/com/thetradedesk/workflows/models/operations/async/UpdateAdGroupResponse.java + - src/main/java/com/thetradedesk/workflows/models/operations/async/UpdateAdGroupsJobResponse.java + - src/main/java/com/thetradedesk/workflows/models/operations/async/UpdateCampaignResponse.java + - src/main/java/com/thetradedesk/workflows/models/operations/async/UpdateCampaignsJobResponse.java + - src/main/java/com/thetradedesk/workflows/operations/ArchiveAdGroups.java + - src/main/java/com/thetradedesk/workflows/operations/ArchiveCampaigns.java + - src/main/java/com/thetradedesk/workflows/operations/CreateAdGroup.java + - src/main/java/com/thetradedesk/workflows/operations/CreateAdGroupsJob.java + - src/main/java/com/thetradedesk/workflows/operations/CreateCampaign.java + - src/main/java/com/thetradedesk/workflows/operations/CreateCampaignsJob.java + - src/main/java/com/thetradedesk/workflows/operations/GetCampaignVersion.java + - src/main/java/com/thetradedesk/workflows/operations/GetFirstPartyDataJob.java + - src/main/java/com/thetradedesk/workflows/operations/GetGraphQlBulkJobStatus.java + - src/main/java/com/thetradedesk/workflows/operations/GetJobStatus.java + - src/main/java/com/thetradedesk/workflows/operations/GetThirdPartyDataJob.java + - src/main/java/com/thetradedesk/workflows/operations/Operations.java + - src/main/java/com/thetradedesk/workflows/operations/SubmitGraphQlBulkQueryJob.java + - src/main/java/com/thetradedesk/workflows/operations/SubmitGraphQlRequest.java + - src/main/java/com/thetradedesk/workflows/operations/SubmitRestRequest.java + - src/main/java/com/thetradedesk/workflows/operations/UpdateAdGroup.java + - src/main/java/com/thetradedesk/workflows/operations/UpdateAdGroupsJob.java + - src/main/java/com/thetradedesk/workflows/operations/UpdateCampaign.java + - src/main/java/com/thetradedesk/workflows/operations/UpdateCampaignsJob.java + - src/main/java/com/thetradedesk/workflows/utils/AsyncHook.java + - src/main/java/com/thetradedesk/workflows/utils/AsyncHooks.java + - src/main/java/com/thetradedesk/workflows/utils/AsyncResponse.java + - src/main/java/com/thetradedesk/workflows/utils/AsyncRetries.java + - src/main/java/com/thetradedesk/workflows/utils/AsyncRetryableException.java + - src/main/java/com/thetradedesk/workflows/utils/BackoffStrategy.java + - src/main/java/com/thetradedesk/workflows/utils/BigDecimalString.java + - src/main/java/com/thetradedesk/workflows/utils/BigIntegerString.java + - src/main/java/com/thetradedesk/workflows/utils/Blob.java + - src/main/java/com/thetradedesk/workflows/utils/BlockingParser.java + - src/main/java/com/thetradedesk/workflows/utils/Constants.java + - src/main/java/com/thetradedesk/workflows/utils/CopiableInputStream.java + - src/main/java/com/thetradedesk/workflows/utils/Deserializers.java + - src/main/java/com/thetradedesk/workflows/utils/EventStream.java + - src/main/java/com/thetradedesk/workflows/utils/EventStreamMessage.java + - src/main/java/com/thetradedesk/workflows/utils/Exceptions.java + - src/main/java/com/thetradedesk/workflows/utils/FormMetadata.java + - src/main/java/com/thetradedesk/workflows/utils/GenericTypeIdResolver.java + - src/main/java/com/thetradedesk/workflows/utils/Globals.java + - src/main/java/com/thetradedesk/workflows/utils/HTTPClient.java + - src/main/java/com/thetradedesk/workflows/utils/HTTPRequest.java + - src/main/java/com/thetradedesk/workflows/utils/HasSecurity.java + - src/main/java/com/thetradedesk/workflows/utils/HeaderMetadata.java + - src/main/java/com/thetradedesk/workflows/utils/Headers.java + - src/main/java/com/thetradedesk/workflows/utils/Helpers.java + - src/main/java/com/thetradedesk/workflows/utils/Hook.java + - src/main/java/com/thetradedesk/workflows/utils/HookAdapters.java + - src/main/java/com/thetradedesk/workflows/utils/Hooks.java + - src/main/java/com/thetradedesk/workflows/utils/JSON.java + - src/main/java/com/thetradedesk/workflows/utils/LazySingletonValue.java + - src/main/java/com/thetradedesk/workflows/utils/Metadata.java + - src/main/java/com/thetradedesk/workflows/utils/Multipart.java + - src/main/java/com/thetradedesk/workflows/utils/MultipartFormMetadata.java + - src/main/java/com/thetradedesk/workflows/utils/NameValue.java + - src/main/java/com/thetradedesk/workflows/utils/NonRetryableException.java + - src/main/java/com/thetradedesk/workflows/utils/OneOfDeserializer.java + - src/main/java/com/thetradedesk/workflows/utils/Options.java + - src/main/java/com/thetradedesk/workflows/utils/PathParamsMetadata.java + - src/main/java/com/thetradedesk/workflows/utils/QueryEncoding.java + - src/main/java/com/thetradedesk/workflows/utils/QueryParameter.java + - src/main/java/com/thetradedesk/workflows/utils/QueryParameters.java + - src/main/java/com/thetradedesk/workflows/utils/QueryParamsMetadata.java + - src/main/java/com/thetradedesk/workflows/utils/RecordingClient.java + - src/main/java/com/thetradedesk/workflows/utils/Reflections.java + - src/main/java/com/thetradedesk/workflows/utils/RequestBody.java + - src/main/java/com/thetradedesk/workflows/utils/RequestMetadata.java + - src/main/java/com/thetradedesk/workflows/utils/Response.java + - src/main/java/com/thetradedesk/workflows/utils/ResponseWithBody.java + - src/main/java/com/thetradedesk/workflows/utils/Retries.java + - src/main/java/com/thetradedesk/workflows/utils/RetryConfig.java + - src/main/java/com/thetradedesk/workflows/utils/RetryableException.java + - src/main/java/com/thetradedesk/workflows/utils/Security.java + - src/main/java/com/thetradedesk/workflows/utils/SecurityMetadata.java + - src/main/java/com/thetradedesk/workflows/utils/SerializedBody.java + - src/main/java/com/thetradedesk/workflows/utils/SessionManager.java + - src/main/java/com/thetradedesk/workflows/utils/SpeakeasyHTTPClient.java + - src/main/java/com/thetradedesk/workflows/utils/SpeakeasyMetadata.java + - src/main/java/com/thetradedesk/workflows/utils/StreamingParser.java + - src/main/java/com/thetradedesk/workflows/utils/TypedObject.java + - src/main/java/com/thetradedesk/workflows/utils/Types.java + - src/main/java/com/thetradedesk/workflows/utils/UnknownType.java + - src/main/java/com/thetradedesk/workflows/utils/Utf8UrlEncoder.java + - src/main/java/com/thetradedesk/workflows/utils/Utils.java + - src/main/java/com/thetradedesk/workflows/utils/reactive/EventStream.java + - src/main/java/com/thetradedesk/workflows/utils/reactive/ReactiveUtils.java diff --git a/.speakeasy/gen.yaml b/.speakeasy/gen.yaml index 7464efe..03e4372 100644 --- a/.speakeasy/gen.yaml +++ b/.speakeasy/gen.yaml @@ -13,6 +13,7 @@ generation: requestResponseComponentNamesFeb2024: true securityFeb2025: true sharedErrorComponentsApr2025: false + sharedNestedComponentsJan2026: false auth: oAuth2ClientCredentialsEnabled: true oAuth2PasswordEnabled: true @@ -20,12 +21,13 @@ generation: schemas: allOfMergeStrategy: shallowMerge requestBodyFieldName: "" + persistentEdits: {} tests: generateTests: true generateNewTests: false skipResponseBodyAssertions: false java: - version: 0.12.0 + version: 0.13.0 additionalDependencies: [] additionalPlugins: [] artifactID: workflows @@ -37,10 +39,11 @@ java: companyURL: https://www.thetradedesk.com/ defaultErrorName: APIException enableCustomCodeRegions: false + enableSlf4jLogging: false enableStreamingUploads: false - enhancedUnionMemberResolution: true envVarPrefix: WORKFLOWS flattenGlobalSecurity: true + forwardCompatibleEnumsByDefault: false generateOptionalUnionAccessors: false generateSpringBootStarter: true githubURL: github.com/thetradedesk/ttd-workflows-java @@ -53,6 +56,7 @@ java: operations: models/operations shared: models/components webhooks: models/webhooks + inferUnionDiscriminators: false inputModelSuffix: input languageVersion: 11 license: @@ -61,9 +65,12 @@ java: url: https://mit-license.org/ maxMethodParams: 999 methodArguments: infer-optional-args + multipartArrayFormat: legacy nullFriendlyParameters: false openUnions: true + operationScopedParams: true outputModelSuffix: output projectName: ttd-workflows responseFormat: envelope-http templateVersion: v2 + unionStrategy: populated-fields diff --git a/.speakeasy/workflow.lock b/.speakeasy/workflow.lock index 3da54d8..d52a0a9 100644 --- a/.speakeasy/workflow.lock +++ b/.speakeasy/workflow.lock @@ -1,21 +1,21 @@ -speakeasyVersion: 1.659.0 +speakeasyVersion: 1.700.2 sources: Workflows API: sourceNamespace: workflows-api - sourceRevisionDigest: sha256:3aa657c02887fcb0ef2cfab5f5bdb208acba9d6931520130b81c496004dd5c30 - sourceBlobDigest: sha256:36e1dc69edd63f499614e073d4730afdb239c8a265f7ef5414f2315276d7653a + sourceRevisionDigest: sha256:b06ac2eb644887b8365a000048a9ee2a7c432c45e7308170d1b7e2d3c4635da9 + sourceBlobDigest: sha256:49368707edd9eafe3e822225831cae077b1ee5621e8f9335b998534867f4ac16 tags: - latest - - speakeasy-sdk-regen-1762133040 + - speakeasy-sdk-regen-1765243467 - v1 targets: ttd-workflows: source: Workflows API sourceNamespace: workflows-api - sourceRevisionDigest: sha256:3aa657c02887fcb0ef2cfab5f5bdb208acba9d6931520130b81c496004dd5c30 - sourceBlobDigest: sha256:36e1dc69edd63f499614e073d4730afdb239c8a265f7ef5414f2315276d7653a + sourceRevisionDigest: sha256:b06ac2eb644887b8365a000048a9ee2a7c432c45e7308170d1b7e2d3c4635da9 + sourceBlobDigest: sha256:49368707edd9eafe3e822225831cae077b1ee5621e8f9335b998534867f4ac16 codeSamplesNamespace: workflows-api-java-code-samples - codeSamplesRevisionDigest: sha256:3c1de06201eb90df74c8494ac195ce46b3140ce5b07a65202a1a74a0e735cb37 + codeSamplesRevisionDigest: sha256:fe5a30f2275c2aea68847d4e4a9ce2ec1aab2558bf089df9d665ba6ab51f8f82 workflow: workflowVersion: 1.0.0 speakeasyVersion: latest diff --git a/README.md b/README.md index 7ea2f9d..288162f 100644 --- a/README.md +++ b/README.md @@ -56,7 +56,7 @@ The samples below show how a published SDK artifact is used: Gradle: ```groovy -implementation 'com.thetradedesk:workflows:0.12.0' +implementation 'com.thetradedesk:workflows:0.13.0' ``` Maven: @@ -64,7 +64,7 @@ Maven: com.thetradedesk workflows - 0.12.0 + 0.13.0 ``` @@ -678,7 +678,7 @@ public class Application {
Available methods -### [adGroup()](docs/sdks/adgroup/README.md) +### [AdGroup](docs/sdks/adgroup/README.md) * [createAdGroup](docs/sdks/adgroup/README.md#createadgroup) - Create a new ad group * [updateAdGroup](docs/sdks/adgroup/README.md#updateadgroup) - Update an ad group @@ -686,7 +686,7 @@ public class Application { * [createAdGroupsJob](docs/sdks/adgroup/README.md#createadgroupsjob) - Submit a job to create multiple new ad groups * [updateAdGroupsJob](docs/sdks/adgroup/README.md#updateadgroupsjob) - Submit a job to update multiple ad groups -### [campaign()](docs/sdks/campaign/README.md) +### [Campaign](docs/sdks/campaign/README.md) * [create](docs/sdks/campaign/README.md#create) - Create a new campaign * [updateCampaign](docs/sdks/campaign/README.md#updatecampaign) - Update a campaign @@ -695,22 +695,22 @@ public class Application { * [archiveCampaigns](docs/sdks/campaign/README.md#archivecampaigns) - Archive multiple campaigns * [getVersion](docs/sdks/campaign/README.md#getversion) - Get a campaign's version -### [dmp()](docs/sdks/dmp/README.md) +### [Dmp](docs/sdks/dmp/README.md) * [getFirstPartyDataJob](docs/sdks/dmp/README.md#getfirstpartydatajob) - Submit a job for first-party data retrieval for an advertiser * [getThirdPartyDataJob](docs/sdks/dmp/README.md#getthirdpartydatajob) - Submit a job for third-party data retrieval for a partner -### [graphQLRequest()](docs/sdks/graphqlrequest/README.md) +### [GraphQLRequest](docs/sdks/graphqlrequest/README.md) * [submitGraphQlRequest](docs/sdks/graphqlrequest/README.md#submitgraphqlrequest) - Submit a valid GraphQL query or mutation * [submitGraphQlBulkQueryJob](docs/sdks/graphqlrequest/README.md#submitgraphqlbulkqueryjob) - Submit a valid bulk GraphQL query job -### [jobStatus()](docs/sdks/jobstatus/README.md) +### [JobStatus](docs/sdks/jobstatus/README.md) * [getGraphQlBulkJobStatus](docs/sdks/jobstatus/README.md#getgraphqlbulkjobstatus) - Get the status of a previously submitted GraphQL bulk job * [getJobStatus](docs/sdks/jobstatus/README.md#getjobstatus) - Get the status of a previously submitted job -### [restRequest()](docs/sdks/restrequest/README.md) +### [RESTRequest](docs/sdks/restrequest/README.md) * [submitRestRequest](docs/sdks/restrequest/README.md#submitrestrequest) - Submit a valid REST request @@ -1686,9 +1686,11 @@ public class Application { ## Debugging ### Debug + You can setup your SDK to emit debug logs for SDK requests and responses. For request and response logging (especially json bodies), call `enableHTTPDebugLogging(boolean)` on the SDK builder like so: + ```java SDK.builder() .enableHTTPDebugLogging(true) @@ -1706,10 +1708,11 @@ Response body: "token": "global" } ``` -__WARNING__: This should only used for temporary debugging purposes. Leaving this option on in a production system could expose credentials/secrets in logs. Authorization headers are redacted by default and there is the ability to specify redacted header names via `SpeakeasyHTTPClient.setRedactedHeaders`. +__WARNING__: This logging should only be used for temporary debugging purposes. Leaving this option on in a production system could expose credentials/secrets in logs. Authorization headers are redacted by default and there is the ability to specify redacted header names via `SpeakeasyHTTPClient.setRedactedHeaders`. __NOTE__: This is a convenience method that calls `HTTPClient.enableDebugLogging()`. The `SpeakeasyHTTPClient` honors this setting. If you are using a custom HTTP client, it is up to the custom client to honor this setting. + Another option is to set the System property `-Djdk.httpclient.HttpClient.log=all`. However, this second option does not log bodies. diff --git a/RELEASES.md b/RELEASES.md index 22c2a6a..e340278 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -198,4 +198,14 @@ Based on: ### Generated - [java v0.12.0] . ### Releases -- [Maven Central v0.12.0] https://central.sonatype.com/artifact/com.thetradedesk/workflows/0.12.0 - . \ No newline at end of file +- [Maven Central v0.12.0] https://central.sonatype.com/artifact/com.thetradedesk/workflows/0.12.0 - . + +## 2026-02-01 02:09:43 +### Changes +Based on: +- OpenAPI Doc +- Speakeasy CLI 1.700.2 (2.801.2) https://github.com/speakeasy-api/speakeasy +### Generated +- [java v0.13.0] . +### Releases +- [Maven Central v0.13.0] https://central.sonatype.com/artifact/com.thetradedesk/workflows/0.13.0 - . \ No newline at end of file diff --git a/docs/models/components/CampaignCreateWorkflowAdvancedInput.md b/docs/models/components/CampaignCreateWorkflowAdvancedInput.md index b22a447..664332d 100644 --- a/docs/models/components/CampaignCreateWorkflowAdvancedInput.md +++ b/docs/models/components/CampaignCreateWorkflowAdvancedInput.md @@ -5,8 +5,9 @@ | Field | Type | Required | Description | | ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ | -| `flights` | List\<[CampaignWorkflowFlightInput](../../models/components/CampaignWorkflowFlightInput.md)> | :heavy_minus_sign: | N/A | | `purchaseOrderNumber` | *JsonNullable\* | :heavy_minus_sign: | N/A | +| `flights` | List\<[CampaignWorkflowFlightInput](../../models/components/CampaignWorkflowFlightInput.md)> | :heavy_minus_sign: | N/A | | `includeDefaultsFromAdvertiser` | *Optional\* | :heavy_minus_sign: | N/A | | `passThroughFeeCard` | [Optional\](../../models/components/CampaignCreateWorkflowPassThroughFeeCardInput.md) | :heavy_minus_sign: | N/A | -| `callerSource` | *JsonNullable\* | :heavy_minus_sign: | N/A | \ No newline at end of file +| `callerSource` | *JsonNullable\* | :heavy_minus_sign: | N/A | +| `frequencyConfigs` | List\<[FrequencyConfig](../../models/components/FrequencyConfig.md)> | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/CampaignWorkflowBudgetInput.md b/docs/models/components/CampaignCreateWorkflowBudgetInput.md similarity index 98% rename from docs/models/components/CampaignWorkflowBudgetInput.md rename to docs/models/components/CampaignCreateWorkflowBudgetInput.md index 87130c1..6ccb179 100644 --- a/docs/models/components/CampaignWorkflowBudgetInput.md +++ b/docs/models/components/CampaignCreateWorkflowBudgetInput.md @@ -1,4 +1,4 @@ -# CampaignWorkflowBudgetInput +# CampaignCreateWorkflowBudgetInput ## Fields diff --git a/docs/models/components/CampaignCreateWorkflowPrimaryInput.md b/docs/models/components/CampaignCreateWorkflowPrimaryInput.md index 90ae5a7..a45e37b 100644 --- a/docs/models/components/CampaignCreateWorkflowPrimaryInput.md +++ b/docs/models/components/CampaignCreateWorkflowPrimaryInput.md @@ -13,7 +13,6 @@ | `customCPAType` | [Optional\](../../models/components/CustomCPAType.md) | :heavy_minus_sign: | N/A | | `customRoasType` | [Optional\](../../models/components/CustomROASType.md) | :heavy_minus_sign: | N/A | | `impressionsOnlyBudgetingCpm` | *JsonNullable\* | :heavy_minus_sign: | N/A | -| `budget` | [Optional\](../../models/components/CampaignWorkflowBudgetInput.md) | :heavy_minus_sign: | N/A | | `endDateInUtc` | [OffsetDateTime](https://docs.oracle.com/javase/8/docs/api/java/time/OffsetDateTime.html) | :heavy_minus_sign: | N/A | | `seedId` | *JsonNullable\* | :heavy_minus_sign: | N/A | | `campaignConversionReportingColumns` | List\<[CampaignWorkflowCampaignConversionReportingColumnInput](../../models/components/CampaignWorkflowCampaignConversionReportingColumnInput.md)> | :heavy_minus_sign: | N/A | @@ -25,4 +24,5 @@ | `primaryChannel` | [CampaignChannelType](../../models/components/CampaignChannelType.md) | :heavy_check_mark: | N/A | | `primaryGoal` | [CampaignWorkflowROIGoalInput](../../models/components/CampaignWorkflowROIGoalInput.md) | :heavy_check_mark: | N/A | | `startDateInUtc` | [OffsetDateTime](https://docs.oracle.com/javase/8/docs/api/java/time/OffsetDateTime.html) | :heavy_minus_sign: | N/A | +| `budget` | [Optional\](../../models/components/CampaignCreateWorkflowBudgetInput.md) | :heavy_minus_sign: | N/A | | `campaignIncrementalReachSetting` | [Optional\](../../models/components/CampaignCreateWorkflowIncrementalReachCampaignSetting.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/CampaignUpdateWorkflowAdvancedInput.md b/docs/models/components/CampaignUpdateWorkflowAdvancedInput.md index f4fe152..9834b91 100644 --- a/docs/models/components/CampaignUpdateWorkflowAdvancedInput.md +++ b/docs/models/components/CampaignUpdateWorkflowAdvancedInput.md @@ -3,7 +3,6 @@ ## Fields -| Field | Type | Required | Description | -| -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -| `flights` | List\<[CampaignWorkflowFlightInput](../../models/components/CampaignWorkflowFlightInput.md)> | :heavy_minus_sign: | N/A | -| `purchaseOrderNumber` | *JsonNullable\* | :heavy_minus_sign: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| ----------------------- | ----------------------- | ----------------------- | ----------------------- | +| `purchaseOrderNumber` | *JsonNullable\* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/CampaignUpdateWorkflowBudgetInput.md b/docs/models/components/CampaignUpdateWorkflowBudgetInput.md new file mode 100644 index 0000000..d56d868 --- /dev/null +++ b/docs/models/components/CampaignUpdateWorkflowBudgetInput.md @@ -0,0 +1,8 @@ +# CampaignUpdateWorkflowBudgetInput + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | +| `pacingMode` | [CampaignPacingMode](../../models/components/CampaignPacingMode.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/CampaignUpdateWorkflowPrimaryInput.md b/docs/models/components/CampaignUpdateWorkflowPrimaryInput.md index cb92c93..2a8821e 100644 --- a/docs/models/components/CampaignUpdateWorkflowPrimaryInput.md +++ b/docs/models/components/CampaignUpdateWorkflowPrimaryInput.md @@ -13,7 +13,6 @@ | `customCPAType` | [Optional\](../../models/components/CustomCPAType.md) | :heavy_minus_sign: | N/A | | `customRoasType` | [Optional\](../../models/components/CustomROASType.md) | :heavy_minus_sign: | N/A | | `impressionsOnlyBudgetingCpm` | *JsonNullable\* | :heavy_minus_sign: | N/A | -| `budget` | [Optional\](../../models/components/CampaignWorkflowBudgetInput.md) | :heavy_minus_sign: | N/A | | `endDateInUtc` | [OffsetDateTime](https://docs.oracle.com/javase/8/docs/api/java/time/OffsetDateTime.html) | :heavy_minus_sign: | N/A | | `seedId` | *JsonNullable\* | :heavy_minus_sign: | N/A | | `campaignConversionReportingColumns` | List\<[CampaignWorkflowCampaignConversionReportingColumnInput](../../models/components/CampaignWorkflowCampaignConversionReportingColumnInput.md)> | :heavy_minus_sign: | N/A | @@ -23,4 +22,5 @@ | `name` | *JsonNullable\* | :heavy_minus_sign: | N/A | | `primaryChannel` | [Optional\](../../models/components/CampaignChannelType.md) | :heavy_minus_sign: | N/A | | `primaryGoal` | [Optional\](../../models/components/CampaignWorkflowROIGoalInput.md) | :heavy_minus_sign: | N/A | -| `startDateInUtc` | [OffsetDateTime](https://docs.oracle.com/javase/8/docs/api/java/time/OffsetDateTime.html) | :heavy_minus_sign: | N/A | \ No newline at end of file +| `startDateInUtc` | [OffsetDateTime](https://docs.oracle.com/javase/8/docs/api/java/time/OffsetDateTime.html) | :heavy_minus_sign: | N/A | +| `budget` | [Optional\](../../models/components/CampaignUpdateWorkflowBudgetInput.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/CampaignWorkflowCampaignConversionReportingColumnInput.md b/docs/models/components/CampaignWorkflowCampaignConversionReportingColumnInput.md index 74c2f7f..a6e48e7 100644 --- a/docs/models/components/CampaignWorkflowCampaignConversionReportingColumnInput.md +++ b/docs/models/components/CampaignWorkflowCampaignConversionReportingColumnInput.md @@ -3,11 +3,12 @@ ## Fields -| Field | Type | Required | Description | -| -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -| `trackingTagId` | *String* | :heavy_check_mark: | N/A | -| `includeInCustomCPA` | *boolean* | :heavy_check_mark: | N/A | -| `reportingColumnId` | *int* | :heavy_check_mark: | N/A | -| `roasConfig` | [Optional\](../../models/components/CustomROASConfig.md) | :heavy_minus_sign: | N/A | -| `weight` | *JsonNullable\* | :heavy_minus_sign: | N/A | -| `crossDeviceAttributionModelId` | *JsonNullable\* | :heavy_minus_sign: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | +| `trackingTagId` | *String* | :heavy_check_mark: | N/A | +| `includeInCustomCPA` | *boolean* | :heavy_check_mark: | N/A | +| `reportingColumnId` | *int* | :heavy_check_mark: | N/A | +| `roasConfig` | [Optional\](../../models/components/CustomROASConfig.md) | :heavy_minus_sign: | N/A | +| `productListReportingType` | [Optional\](../../models/components/ProductListReportingTypeInput.md) | :heavy_minus_sign: | N/A | +| `weight` | *JsonNullable\* | :heavy_minus_sign: | N/A | +| `crossDeviceAttributionModelId` | *JsonNullable\* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/FrequencyConfig.md b/docs/models/components/FrequencyConfig.md new file mode 100644 index 0000000..d566742 --- /dev/null +++ b/docs/models/components/FrequencyConfig.md @@ -0,0 +1,11 @@ +# FrequencyConfig + + +## Fields + +| Field | Type | Required | Description | +| ------------------------ | ------------------------ | ------------------------ | ------------------------ | +| `counterName` | *JsonNullable\* | :heavy_minus_sign: | N/A | +| `frequencyCap` | *JsonNullable\* | :heavy_minus_sign: | N/A | +| `frequencyGoal` | *JsonNullable\* | :heavy_minus_sign: | N/A | +| `resetIntervalInMinutes` | *Optional\* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/ProductListReportingTypeInput.md b/docs/models/components/ProductListReportingTypeInput.md new file mode 100644 index 0000000..c18c515 --- /dev/null +++ b/docs/models/components/ProductListReportingTypeInput.md @@ -0,0 +1,9 @@ +# ProductListReportingTypeInput + + +## Values + +| Name | Value | +| ---------- | ---------- | +| `FEATURED` | Featured | +| `HALO` | Halo | \ No newline at end of file diff --git a/docs/sdks/adgroup/README.md b/docs/sdks/adgroup/README.md index 2bb106b..e8d0cbf 100644 --- a/docs/sdks/adgroup/README.md +++ b/docs/sdks/adgroup/README.md @@ -1,5 +1,4 @@ # AdGroup -(*adGroup()*) ## Overview diff --git a/docs/sdks/campaign/README.md b/docs/sdks/campaign/README.md index 3bc8f87..20dad29 100644 --- a/docs/sdks/campaign/README.md +++ b/docs/sdks/campaign/README.md @@ -1,5 +1,4 @@ # Campaign -(*campaign()*) ## Overview @@ -70,13 +69,6 @@ public class Application { .customCPAType(CustomCPAType.CLICK_VIEWTHROUGH_WEIGHTING) .customRoasType(CustomROASType.DISABLED) .impressionsOnlyBudgetingCpm(1502.33) - .budget(CampaignWorkflowBudgetInput.builder() - .pacingMode(CampaignPacingMode.PACE_AS_SOON_AS_POSSIBLE) - .budgetInAdvertiserCurrency(6363.35) - .budgetInImpressions(836518L) - .dailyTargetInAdvertiserCurrency(7814.79) - .dailyTargetInImpressions(784985L) - .build()) .endDateInUtc(JsonNullable.of(null)) .seedId(JsonNullable.of(null)) .campaignConversionReportingColumns(List.of( @@ -90,6 +82,7 @@ public class Application { .customROASClickWeight(3310.24) .customROASViewthroughWeight(2919.37) .build()) + .productListReportingType(ProductListReportingTypeInput.FEATURED) .weight(5369.43) .crossDeviceAttributionModelId("") .build())) @@ -131,6 +124,13 @@ public class Application { .crossixCostPerTarget(false) .build()) .startDateInUtc(JsonNullable.of(null)) + .budget(CampaignCreateWorkflowBudgetInput.builder() + .pacingMode(CampaignPacingMode.PACE_AS_SOON_AS_POSSIBLE) + .budgetInAdvertiserCurrency(6363.35) + .budgetInImpressions(836518L) + .dailyTargetInAdvertiserCurrency(7814.79) + .dailyTargetInImpressions(784985L) + .build()) .campaignIncrementalReachSetting(CampaignCreateWorkflowIncrementalReachCampaignSetting.builder() .iSpotReachSetting(IncrementalReachBrandInput.builder() .id(787894) @@ -157,6 +157,7 @@ public class Application { .build()) .build()) .advancedInput(CampaignCreateWorkflowAdvancedInput.builder() + .purchaseOrderNumber(JsonNullable.of(null)) .flights(List.of( CampaignWorkflowFlightInput.builder() .startDateInclusiveUTC(OffsetDateTime.parse("2024-07-08T10:52:56.944Z")) @@ -166,7 +167,6 @@ public class Application { .dailyTargetInAdvertiserCurrency(6112.24) .dailyTargetInImpressions(333131L) .build())) - .purchaseOrderNumber(JsonNullable.of(null)) .includeDefaultsFromAdvertiser(false) .passThroughFeeCard(CampaignCreateWorkflowPassThroughFeeCardInput.builder() .passThroughFees(List.of( @@ -178,6 +178,7 @@ public class Application { .startDateUtc(OffsetDateTime.parse("2023-03-18T04:39:08.387Z")) .build()) .callerSource("") + .frequencyConfigs(JsonNullable.of(null)) .build()) .adGroups(List.of( CampaignCreateWorkflowAdGroupInput.builder() @@ -350,13 +351,6 @@ public class Application { .customCPAType(CustomCPAType.CLICK_VIEWTHROUGH_WEIGHTING) .customRoasType(CustomROASType.DISABLED) .impressionsOnlyBudgetingCpm(126.57) - .budget(CampaignWorkflowBudgetInput.builder() - .pacingMode(CampaignPacingMode.PACE_AS_SOON_AS_POSSIBLE) - .budgetInAdvertiserCurrency(6974.82) - .budgetInImpressions(834352L) - .dailyTargetInAdvertiserCurrency(8583.49) - .dailyTargetInImpressions(746941L) - .build()) .endDateInUtc(OffsetDateTime.parse("2024-07-09T17:14:23.542Z")) .seedId("") .campaignConversionReportingColumns(List.of( @@ -370,6 +364,7 @@ public class Application { .customROASClickWeight(129.65) .customROASViewthroughWeight(2890.82) .build()) + .productListReportingType(ProductListReportingTypeInput.FEATURED) .weight(5187.48) .crossDeviceAttributionModelId(JsonNullable.of(null)) .build())) @@ -431,17 +426,11 @@ public class Application { .crossixCostPerTarget(true) .build()) .startDateInUtc(OffsetDateTime.parse("2024-02-29T10:31:50.069Z")) + .budget(CampaignUpdateWorkflowBudgetInput.builder() + .pacingMode(CampaignPacingMode.PACE_AS_SOON_AS_POSSIBLE) + .build()) .build()) .advancedInput(CampaignUpdateWorkflowAdvancedInput.builder() - .flights(List.of( - CampaignWorkflowFlightInput.builder() - .startDateInclusiveUTC(OffsetDateTime.parse("2025-11-09T04:11:39.432Z")) - .budgetInAdvertiserCurrency(6534.57) - .endDateExclusiveUTC(OffsetDateTime.parse("2025-09-10T20:38:51.701Z")) - .budgetInImpressions(865481L) - .dailyTargetInAdvertiserCurrency(1033.72) - .dailyTargetInImpressions(JsonNullable.of(null)) - .build())) .purchaseOrderNumber("") .build()) .validateInputOnly(true) @@ -536,13 +525,6 @@ public class Application { .customCPAType(CustomCPAType.CLICK_VIEWTHROUGH_WEIGHTING) .customRoasType(CustomROASType.COMPOSITE_WEIGHTING) .impressionsOnlyBudgetingCpm(4427.56) - .budget(CampaignWorkflowBudgetInput.builder() - .pacingMode(CampaignPacingMode.PACE_AHEAD) - .budgetInAdvertiserCurrency(5501.96) - .budgetInImpressions(629784L) - .dailyTargetInAdvertiserCurrency(2524.41) - .dailyTargetInImpressions(726807L) - .build()) .endDateInUtc(OffsetDateTime.parse("2023-12-21T01:12:20.772Z")) .seedId("") .campaignConversionReportingColumns(List.of( @@ -556,6 +538,7 @@ public class Application { .customROASClickWeight(5286.76) .customROASViewthroughWeight(8906.82) .build()) + .productListReportingType(ProductListReportingTypeInput.HALO) .weight(JsonNullable.of(null)) .crossDeviceAttributionModelId("") .build())) @@ -597,6 +580,13 @@ public class Application { .crossixCostPerTarget(true) .build()) .startDateInUtc(OffsetDateTime.parse("2025-09-26T21:06:42.946Z")) + .budget(CampaignCreateWorkflowBudgetInput.builder() + .pacingMode(CampaignPacingMode.PACE_AHEAD) + .budgetInAdvertiserCurrency(5501.96) + .budgetInImpressions(629784L) + .dailyTargetInAdvertiserCurrency(2524.41) + .dailyTargetInImpressions(726807L) + .build()) .campaignIncrementalReachSetting(CampaignCreateWorkflowIncrementalReachCampaignSetting.builder() .iSpotReachSetting(IncrementalReachBrandInput.builder() .id(178346) @@ -627,6 +617,7 @@ public class Application { .build()) .build()) .advancedInput(CampaignCreateWorkflowAdvancedInput.builder() + .purchaseOrderNumber("") .flights(List.of( CampaignWorkflowFlightInput.builder() .startDateInclusiveUTC(OffsetDateTime.parse("2024-09-20T06:04:19.345Z")) @@ -636,7 +627,6 @@ public class Application { .dailyTargetInAdvertiserCurrency(9309.03) .dailyTargetInImpressions(152838L) .build())) - .purchaseOrderNumber("") .includeDefaultsFromAdvertiser(false) .passThroughFeeCard(CampaignCreateWorkflowPassThroughFeeCardInput.builder() .passThroughFees(List.of( @@ -648,6 +638,13 @@ public class Application { .startDateUtc(OffsetDateTime.parse("2024-07-24T11:58:59.190Z")) .build()) .callerSource("") + .frequencyConfigs(List.of( + FrequencyConfig.builder() + .counterName(JsonNullable.of(null)) + .frequencyCap(373225) + .frequencyGoal(966290) + .resetIntervalInMinutes(774436) + .build())) .build()) .adGroups(List.of( CampaignCreateWorkflowAdGroupInput.builder() @@ -827,13 +824,6 @@ public class Application { .customCPAType(CustomCPAType.PIXEL_WEIGHTING) .customRoasType(CustomROASType.CLICK_VIEWTHROUGH_WEIGHTING) .impressionsOnlyBudgetingCpm(2706.4) - .budget(CampaignWorkflowBudgetInput.builder() - .pacingMode(CampaignPacingMode.PACE_AS_SOON_AS_POSSIBLE) - .budgetInAdvertiserCurrency(2564.89) - .budgetInImpressions(659726L) - .dailyTargetInAdvertiserCurrency(6514.48) - .dailyTargetInImpressions(892097L) - .build()) .endDateInUtc(OffsetDateTime.parse("2023-11-11T21:39:56.025Z")) .seedId("") .campaignConversionReportingColumns(List.of( @@ -847,6 +837,7 @@ public class Application { .customROASClickWeight(JsonNullable.of(null)) .customROASViewthroughWeight(6784.9) .build()) + .productListReportingType(ProductListReportingTypeInput.HALO) .weight(2260.69) .crossDeviceAttributionModelId("") .build())) @@ -908,17 +899,11 @@ public class Application { .crossixCostPerTarget(true) .build()) .startDateInUtc(OffsetDateTime.parse("2023-01-13T23:06:05.083Z")) + .budget(CampaignUpdateWorkflowBudgetInput.builder() + .pacingMode(CampaignPacingMode.PACE_AS_SOON_AS_POSSIBLE) + .build()) .build()) .advancedInput(CampaignUpdateWorkflowAdvancedInput.builder() - .flights(List.of( - CampaignWorkflowFlightInput.builder() - .startDateInclusiveUTC(OffsetDateTime.parse("2023-08-14T13:47:31.198Z")) - .budgetInAdvertiserCurrency(1874.95) - .endDateExclusiveUTC(OffsetDateTime.parse("2024-07-07T14:46:57.378Z")) - .budgetInImpressions(207094L) - .dailyTargetInAdvertiserCurrency(7255.71) - .dailyTargetInImpressions(760981L) - .build())) .purchaseOrderNumber("") .build()) .build())) diff --git a/docs/sdks/dmp/README.md b/docs/sdks/dmp/README.md index 2a9e425..5439752 100644 --- a/docs/sdks/dmp/README.md +++ b/docs/sdks/dmp/README.md @@ -1,5 +1,4 @@ # Dmp -(*dmp()*) ## Overview diff --git a/docs/sdks/graphqlrequest/README.md b/docs/sdks/graphqlrequest/README.md index a0be4ce..d7d8a28 100644 --- a/docs/sdks/graphqlrequest/README.md +++ b/docs/sdks/graphqlrequest/README.md @@ -1,5 +1,4 @@ # GraphQLRequest -(*graphQLRequest()*) ## Overview diff --git a/docs/sdks/jobstatus/README.md b/docs/sdks/jobstatus/README.md index 9d8e05e..722a92b 100644 --- a/docs/sdks/jobstatus/README.md +++ b/docs/sdks/jobstatus/README.md @@ -1,5 +1,4 @@ # JobStatus -(*jobStatus()*) ## Overview diff --git a/docs/sdks/restrequest/README.md b/docs/sdks/restrequest/README.md index 55d05ff..3ce1c99 100644 --- a/docs/sdks/restrequest/README.md +++ b/docs/sdks/restrequest/README.md @@ -1,5 +1,4 @@ # RESTRequest -(*restRequest()*) ## Overview diff --git a/gradle.properties b/gradle.properties index 52ad791..368ef2f 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,4 @@ groupId=com.thetradedesk artifactId=workflows -version=0.12.0 +version=0.13.0 org.gradle.jvmargs=-Xmx4g -XX:MaxMetaspaceSize=1g diff --git a/spring/workflows-spring-boot-autoconfigure/src/main/java/com/thetradedesk/workflows/WorkflowsAutoConfig.java b/spring/workflows-spring-boot-autoconfigure/src/main/java/com/thetradedesk/workflows/WorkflowsAutoConfig.java index 5a3c5fb..a11d62b 100644 --- a/spring/workflows-spring-boot-autoconfigure/src/main/java/com/thetradedesk/workflows/WorkflowsAutoConfig.java +++ b/spring/workflows-spring-boot-autoconfigure/src/main/java/com/thetradedesk/workflows/WorkflowsAutoConfig.java @@ -72,7 +72,6 @@ public RetryConfig retryConfig(WorkflowsAutoConfigProperties properties) { // Default retry config for other strategies return RetryConfig.builder().build(); } - /** * Creates a {@code Consumer} bean for HTTP debug logging if none exists. * This logger is used by the SpeakeasyHTTPClient for debug output when debug logging is enabled. @@ -85,7 +84,6 @@ public RetryConfig retryConfig(WorkflowsAutoConfigProperties properties) { public Consumer httpLogger() { return System.out::println; } - /** * Creates an HTTPClient bean if none exists. * diff --git a/src/main/java/com/thetradedesk/workflows/SDKConfiguration.java b/src/main/java/com/thetradedesk/workflows/SDKConfiguration.java index 421a1ca..fe1c532 100644 --- a/src/main/java/com/thetradedesk/workflows/SDKConfiguration.java +++ b/src/main/java/com/thetradedesk/workflows/SDKConfiguration.java @@ -19,8 +19,8 @@ public class SDKConfiguration { private static final String LANGUAGE = "java"; public static final String OPENAPI_DOC_VERSION = "v1"; - public static final String SDK_VERSION = "0.12.0"; - public static final String GEN_VERSION = "2.755.9"; + public static final String SDK_VERSION = "0.13.0"; + public static final String GEN_VERSION = "2.801.2"; private static final String BASE_PACKAGE = "com.thetradedesk.workflows"; public static final String USER_AGENT = String.format("speakeasy-sdk/%s %s %s %s %s", diff --git a/src/main/java/com/thetradedesk/workflows/models/components/CampaignCreateWorkflowAdvancedInput.java b/src/main/java/com/thetradedesk/workflows/models/components/CampaignCreateWorkflowAdvancedInput.java index 4be7b54..bfa8908 100644 --- a/src/main/java/com/thetradedesk/workflows/models/components/CampaignCreateWorkflowAdvancedInput.java +++ b/src/main/java/com/thetradedesk/workflows/models/components/CampaignCreateWorkflowAdvancedInput.java @@ -21,13 +21,13 @@ public class CampaignCreateWorkflowAdvancedInput { @JsonInclude(Include.NON_ABSENT) - @JsonProperty("flights") - private JsonNullable> flights; + @JsonProperty("purchaseOrderNumber") + private JsonNullable purchaseOrderNumber; @JsonInclude(Include.NON_ABSENT) - @JsonProperty("purchaseOrderNumber") - private JsonNullable purchaseOrderNumber; + @JsonProperty("flights") + private JsonNullable> flights; @JsonInclude(Include.NON_ABSENT) @@ -44,39 +44,47 @@ public class CampaignCreateWorkflowAdvancedInput { @JsonProperty("callerSource") private JsonNullable callerSource; + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("frequencyConfigs") + private JsonNullable> frequencyConfigs; + @JsonCreator public CampaignCreateWorkflowAdvancedInput( - @JsonProperty("flights") JsonNullable> flights, @JsonProperty("purchaseOrderNumber") JsonNullable purchaseOrderNumber, + @JsonProperty("flights") JsonNullable> flights, @JsonProperty("includeDefaultsFromAdvertiser") Optional includeDefaultsFromAdvertiser, @JsonProperty("passThroughFeeCard") Optional passThroughFeeCard, - @JsonProperty("callerSource") JsonNullable callerSource) { - Utils.checkNotNull(flights, "flights"); + @JsonProperty("callerSource") JsonNullable callerSource, + @JsonProperty("frequencyConfigs") JsonNullable> frequencyConfigs) { Utils.checkNotNull(purchaseOrderNumber, "purchaseOrderNumber"); + Utils.checkNotNull(flights, "flights"); Utils.checkNotNull(includeDefaultsFromAdvertiser, "includeDefaultsFromAdvertiser"); Utils.checkNotNull(passThroughFeeCard, "passThroughFeeCard"); Utils.checkNotNull(callerSource, "callerSource"); - this.flights = flights; + Utils.checkNotNull(frequencyConfigs, "frequencyConfigs"); this.purchaseOrderNumber = purchaseOrderNumber; + this.flights = flights; this.includeDefaultsFromAdvertiser = includeDefaultsFromAdvertiser; this.passThroughFeeCard = passThroughFeeCard; this.callerSource = callerSource; + this.frequencyConfigs = frequencyConfigs; } public CampaignCreateWorkflowAdvancedInput() { this(JsonNullable.undefined(), JsonNullable.undefined(), Optional.empty(), - Optional.empty(), JsonNullable.undefined()); + Optional.empty(), JsonNullable.undefined(), JsonNullable.undefined()); } - @SuppressWarnings("unchecked") @JsonIgnore - public JsonNullable> flights() { - return (JsonNullable>) flights; + public JsonNullable purchaseOrderNumber() { + return purchaseOrderNumber; } + @SuppressWarnings("unchecked") @JsonIgnore - public JsonNullable purchaseOrderNumber() { - return purchaseOrderNumber; + public JsonNullable> flights() { + return (JsonNullable>) flights; } @JsonIgnore @@ -95,23 +103,17 @@ public JsonNullable callerSource() { return callerSource; } + @SuppressWarnings("unchecked") + @JsonIgnore + public JsonNullable> frequencyConfigs() { + return (JsonNullable>) frequencyConfigs; + } + public static Builder builder() { return new Builder(); } - public CampaignCreateWorkflowAdvancedInput withFlights(List flights) { - Utils.checkNotNull(flights, "flights"); - this.flights = JsonNullable.of(flights); - return this; - } - - public CampaignCreateWorkflowAdvancedInput withFlights(JsonNullable> flights) { - Utils.checkNotNull(flights, "flights"); - this.flights = flights; - return this; - } - public CampaignCreateWorkflowAdvancedInput withPurchaseOrderNumber(String purchaseOrderNumber) { Utils.checkNotNull(purchaseOrderNumber, "purchaseOrderNumber"); this.purchaseOrderNumber = JsonNullable.of(purchaseOrderNumber); @@ -124,6 +126,18 @@ public CampaignCreateWorkflowAdvancedInput withPurchaseOrderNumber(JsonNullable< return this; } + public CampaignCreateWorkflowAdvancedInput withFlights(List flights) { + Utils.checkNotNull(flights, "flights"); + this.flights = JsonNullable.of(flights); + return this; + } + + public CampaignCreateWorkflowAdvancedInput withFlights(JsonNullable> flights) { + Utils.checkNotNull(flights, "flights"); + this.flights = flights; + return this; + } + public CampaignCreateWorkflowAdvancedInput withIncludeDefaultsFromAdvertiser(boolean includeDefaultsFromAdvertiser) { Utils.checkNotNull(includeDefaultsFromAdvertiser, "includeDefaultsFromAdvertiser"); this.includeDefaultsFromAdvertiser = Optional.ofNullable(includeDefaultsFromAdvertiser); @@ -162,6 +176,18 @@ public CampaignCreateWorkflowAdvancedInput withCallerSource(JsonNullable return this; } + public CampaignCreateWorkflowAdvancedInput withFrequencyConfigs(List frequencyConfigs) { + Utils.checkNotNull(frequencyConfigs, "frequencyConfigs"); + this.frequencyConfigs = JsonNullable.of(frequencyConfigs); + return this; + } + + public CampaignCreateWorkflowAdvancedInput withFrequencyConfigs(JsonNullable> frequencyConfigs) { + Utils.checkNotNull(frequencyConfigs, "frequencyConfigs"); + this.frequencyConfigs = frequencyConfigs; + return this; + } + @Override public boolean equals(java.lang.Object o) { if (this == o) { @@ -172,70 +198,74 @@ public boolean equals(java.lang.Object o) { } CampaignCreateWorkflowAdvancedInput other = (CampaignCreateWorkflowAdvancedInput) o; return - Utils.enhancedDeepEquals(this.flights, other.flights) && Utils.enhancedDeepEquals(this.purchaseOrderNumber, other.purchaseOrderNumber) && + Utils.enhancedDeepEquals(this.flights, other.flights) && Utils.enhancedDeepEquals(this.includeDefaultsFromAdvertiser, other.includeDefaultsFromAdvertiser) && Utils.enhancedDeepEquals(this.passThroughFeeCard, other.passThroughFeeCard) && - Utils.enhancedDeepEquals(this.callerSource, other.callerSource); + Utils.enhancedDeepEquals(this.callerSource, other.callerSource) && + Utils.enhancedDeepEquals(this.frequencyConfigs, other.frequencyConfigs); } @Override public int hashCode() { return Utils.enhancedHash( - flights, purchaseOrderNumber, includeDefaultsFromAdvertiser, - passThroughFeeCard, callerSource); + purchaseOrderNumber, flights, includeDefaultsFromAdvertiser, + passThroughFeeCard, callerSource, frequencyConfigs); } @Override public String toString() { return Utils.toString(CampaignCreateWorkflowAdvancedInput.class, - "flights", flights, "purchaseOrderNumber", purchaseOrderNumber, + "flights", flights, "includeDefaultsFromAdvertiser", includeDefaultsFromAdvertiser, "passThroughFeeCard", passThroughFeeCard, - "callerSource", callerSource); + "callerSource", callerSource, + "frequencyConfigs", frequencyConfigs); } @SuppressWarnings("UnusedReturnValue") public final static class Builder { - private JsonNullable> flights = JsonNullable.undefined(); - private JsonNullable purchaseOrderNumber = JsonNullable.undefined(); + private JsonNullable> flights = JsonNullable.undefined(); + private Optional includeDefaultsFromAdvertiser = Optional.empty(); private Optional passThroughFeeCard = Optional.empty(); private JsonNullable callerSource = JsonNullable.undefined(); + private JsonNullable> frequencyConfigs = JsonNullable.undefined(); + private Builder() { // force use of static builder() method } - public Builder flights(List flights) { - Utils.checkNotNull(flights, "flights"); - this.flights = JsonNullable.of(flights); + public Builder purchaseOrderNumber(String purchaseOrderNumber) { + Utils.checkNotNull(purchaseOrderNumber, "purchaseOrderNumber"); + this.purchaseOrderNumber = JsonNullable.of(purchaseOrderNumber); return this; } - public Builder flights(JsonNullable> flights) { - Utils.checkNotNull(flights, "flights"); - this.flights = flights; + public Builder purchaseOrderNumber(JsonNullable purchaseOrderNumber) { + Utils.checkNotNull(purchaseOrderNumber, "purchaseOrderNumber"); + this.purchaseOrderNumber = purchaseOrderNumber; return this; } - public Builder purchaseOrderNumber(String purchaseOrderNumber) { - Utils.checkNotNull(purchaseOrderNumber, "purchaseOrderNumber"); - this.purchaseOrderNumber = JsonNullable.of(purchaseOrderNumber); + public Builder flights(List flights) { + Utils.checkNotNull(flights, "flights"); + this.flights = JsonNullable.of(flights); return this; } - public Builder purchaseOrderNumber(JsonNullable purchaseOrderNumber) { - Utils.checkNotNull(purchaseOrderNumber, "purchaseOrderNumber"); - this.purchaseOrderNumber = purchaseOrderNumber; + public Builder flights(JsonNullable> flights) { + Utils.checkNotNull(flights, "flights"); + this.flights = flights; return this; } @@ -278,11 +308,24 @@ public Builder callerSource(JsonNullable callerSource) { return this; } + + public Builder frequencyConfigs(List frequencyConfigs) { + Utils.checkNotNull(frequencyConfigs, "frequencyConfigs"); + this.frequencyConfigs = JsonNullable.of(frequencyConfigs); + return this; + } + + public Builder frequencyConfigs(JsonNullable> frequencyConfigs) { + Utils.checkNotNull(frequencyConfigs, "frequencyConfigs"); + this.frequencyConfigs = frequencyConfigs; + return this; + } + public CampaignCreateWorkflowAdvancedInput build() { return new CampaignCreateWorkflowAdvancedInput( - flights, purchaseOrderNumber, includeDefaultsFromAdvertiser, - passThroughFeeCard, callerSource); + purchaseOrderNumber, flights, includeDefaultsFromAdvertiser, + passThroughFeeCard, callerSource, frequencyConfigs); } } diff --git a/src/main/java/com/thetradedesk/workflows/models/components/CampaignWorkflowBudgetInput.java b/src/main/java/com/thetradedesk/workflows/models/components/CampaignCreateWorkflowBudgetInput.java similarity index 87% rename from src/main/java/com/thetradedesk/workflows/models/components/CampaignWorkflowBudgetInput.java rename to src/main/java/com/thetradedesk/workflows/models/components/CampaignCreateWorkflowBudgetInput.java index 8b0c2b6..7c4f060 100644 --- a/src/main/java/com/thetradedesk/workflows/models/components/CampaignWorkflowBudgetInput.java +++ b/src/main/java/com/thetradedesk/workflows/models/components/CampaignCreateWorkflowBudgetInput.java @@ -16,7 +16,7 @@ import org.openapitools.jackson.nullable.JsonNullable; -public class CampaignWorkflowBudgetInput { +public class CampaignCreateWorkflowBudgetInput { @JsonProperty("pacingMode") private CampaignPacingMode pacingMode; @@ -41,7 +41,7 @@ public class CampaignWorkflowBudgetInput { private JsonNullable dailyTargetInImpressions; @JsonCreator - public CampaignWorkflowBudgetInput( + public CampaignCreateWorkflowBudgetInput( @JsonProperty("pacingMode") CampaignPacingMode pacingMode, @JsonProperty("budgetInAdvertiserCurrency") double budgetInAdvertiserCurrency, @JsonProperty("budgetInImpressions") JsonNullable budgetInImpressions, @@ -59,7 +59,7 @@ public CampaignWorkflowBudgetInput( this.dailyTargetInImpressions = dailyTargetInImpressions; } - public CampaignWorkflowBudgetInput( + public CampaignCreateWorkflowBudgetInput( CampaignPacingMode pacingMode, double budgetInAdvertiserCurrency) { this(pacingMode, budgetInAdvertiserCurrency, JsonNullable.undefined(), @@ -96,49 +96,49 @@ public static Builder builder() { } - public CampaignWorkflowBudgetInput withPacingMode(CampaignPacingMode pacingMode) { + public CampaignCreateWorkflowBudgetInput withPacingMode(CampaignPacingMode pacingMode) { Utils.checkNotNull(pacingMode, "pacingMode"); this.pacingMode = pacingMode; return this; } - public CampaignWorkflowBudgetInput withBudgetInAdvertiserCurrency(double budgetInAdvertiserCurrency) { + public CampaignCreateWorkflowBudgetInput withBudgetInAdvertiserCurrency(double budgetInAdvertiserCurrency) { Utils.checkNotNull(budgetInAdvertiserCurrency, "budgetInAdvertiserCurrency"); this.budgetInAdvertiserCurrency = budgetInAdvertiserCurrency; return this; } - public CampaignWorkflowBudgetInput withBudgetInImpressions(long budgetInImpressions) { + public CampaignCreateWorkflowBudgetInput withBudgetInImpressions(long budgetInImpressions) { Utils.checkNotNull(budgetInImpressions, "budgetInImpressions"); this.budgetInImpressions = JsonNullable.of(budgetInImpressions); return this; } - public CampaignWorkflowBudgetInput withBudgetInImpressions(JsonNullable budgetInImpressions) { + public CampaignCreateWorkflowBudgetInput withBudgetInImpressions(JsonNullable budgetInImpressions) { Utils.checkNotNull(budgetInImpressions, "budgetInImpressions"); this.budgetInImpressions = budgetInImpressions; return this; } - public CampaignWorkflowBudgetInput withDailyTargetInAdvertiserCurrency(double dailyTargetInAdvertiserCurrency) { + public CampaignCreateWorkflowBudgetInput withDailyTargetInAdvertiserCurrency(double dailyTargetInAdvertiserCurrency) { Utils.checkNotNull(dailyTargetInAdvertiserCurrency, "dailyTargetInAdvertiserCurrency"); this.dailyTargetInAdvertiserCurrency = JsonNullable.of(dailyTargetInAdvertiserCurrency); return this; } - public CampaignWorkflowBudgetInput withDailyTargetInAdvertiserCurrency(JsonNullable dailyTargetInAdvertiserCurrency) { + public CampaignCreateWorkflowBudgetInput withDailyTargetInAdvertiserCurrency(JsonNullable dailyTargetInAdvertiserCurrency) { Utils.checkNotNull(dailyTargetInAdvertiserCurrency, "dailyTargetInAdvertiserCurrency"); this.dailyTargetInAdvertiserCurrency = dailyTargetInAdvertiserCurrency; return this; } - public CampaignWorkflowBudgetInput withDailyTargetInImpressions(long dailyTargetInImpressions) { + public CampaignCreateWorkflowBudgetInput withDailyTargetInImpressions(long dailyTargetInImpressions) { Utils.checkNotNull(dailyTargetInImpressions, "dailyTargetInImpressions"); this.dailyTargetInImpressions = JsonNullable.of(dailyTargetInImpressions); return this; } - public CampaignWorkflowBudgetInput withDailyTargetInImpressions(JsonNullable dailyTargetInImpressions) { + public CampaignCreateWorkflowBudgetInput withDailyTargetInImpressions(JsonNullable dailyTargetInImpressions) { Utils.checkNotNull(dailyTargetInImpressions, "dailyTargetInImpressions"); this.dailyTargetInImpressions = dailyTargetInImpressions; return this; @@ -152,7 +152,7 @@ public boolean equals(java.lang.Object o) { if (o == null || getClass() != o.getClass()) { return false; } - CampaignWorkflowBudgetInput other = (CampaignWorkflowBudgetInput) o; + CampaignCreateWorkflowBudgetInput other = (CampaignCreateWorkflowBudgetInput) o; return Utils.enhancedDeepEquals(this.pacingMode, other.pacingMode) && Utils.enhancedDeepEquals(this.budgetInAdvertiserCurrency, other.budgetInAdvertiserCurrency) && @@ -170,7 +170,7 @@ public int hashCode() { @Override public String toString() { - return Utils.toString(CampaignWorkflowBudgetInput.class, + return Utils.toString(CampaignCreateWorkflowBudgetInput.class, "pacingMode", pacingMode, "budgetInAdvertiserCurrency", budgetInAdvertiserCurrency, "budgetInImpressions", budgetInImpressions, @@ -248,9 +248,9 @@ public Builder dailyTargetInImpressions(JsonNullable dailyTargetInImpressi return this; } - public CampaignWorkflowBudgetInput build() { + public CampaignCreateWorkflowBudgetInput build() { - return new CampaignWorkflowBudgetInput( + return new CampaignCreateWorkflowBudgetInput( pacingMode, budgetInAdvertiserCurrency, budgetInImpressions, dailyTargetInAdvertiserCurrency, dailyTargetInImpressions); } diff --git a/src/main/java/com/thetradedesk/workflows/models/components/CampaignCreateWorkflowPassThroughFeeCardInput.java b/src/main/java/com/thetradedesk/workflows/models/components/CampaignCreateWorkflowPassThroughFeeCardInput.java index ff4be4b..fa70ff2 100644 --- a/src/main/java/com/thetradedesk/workflows/models/components/CampaignCreateWorkflowPassThroughFeeCardInput.java +++ b/src/main/java/com/thetradedesk/workflows/models/components/CampaignCreateWorkflowPassThroughFeeCardInput.java @@ -13,14 +13,14 @@ import java.lang.String; import java.time.OffsetDateTime; import java.util.List; -import java.util.Optional; +import org.openapitools.jackson.nullable.JsonNullable; public class CampaignCreateWorkflowPassThroughFeeCardInput { @JsonInclude(Include.NON_ABSENT) @JsonProperty("startDateUtc") - private Optional startDateUtc; + private JsonNullable startDateUtc; @JsonProperty("passThroughFees") @@ -28,7 +28,7 @@ public class CampaignCreateWorkflowPassThroughFeeCardInput { @JsonCreator public CampaignCreateWorkflowPassThroughFeeCardInput( - @JsonProperty("startDateUtc") Optional startDateUtc, + @JsonProperty("startDateUtc") JsonNullable startDateUtc, @JsonProperty("passThroughFees") List passThroughFees) { Utils.checkNotNull(startDateUtc, "startDateUtc"); Utils.checkNotNull(passThroughFees, "passThroughFees"); @@ -38,11 +38,11 @@ public CampaignCreateWorkflowPassThroughFeeCardInput( public CampaignCreateWorkflowPassThroughFeeCardInput( List passThroughFees) { - this(Optional.empty(), passThroughFees); + this(JsonNullable.undefined(), passThroughFees); } @JsonIgnore - public Optional startDateUtc() { + public JsonNullable startDateUtc() { return startDateUtc; } @@ -58,12 +58,11 @@ public static Builder builder() { public CampaignCreateWorkflowPassThroughFeeCardInput withStartDateUtc(OffsetDateTime startDateUtc) { Utils.checkNotNull(startDateUtc, "startDateUtc"); - this.startDateUtc = Optional.ofNullable(startDateUtc); + this.startDateUtc = JsonNullable.of(startDateUtc); return this; } - - public CampaignCreateWorkflowPassThroughFeeCardInput withStartDateUtc(Optional startDateUtc) { + public CampaignCreateWorkflowPassThroughFeeCardInput withStartDateUtc(JsonNullable startDateUtc) { Utils.checkNotNull(startDateUtc, "startDateUtc"); this.startDateUtc = startDateUtc; return this; @@ -105,7 +104,7 @@ public String toString() { @SuppressWarnings("UnusedReturnValue") public final static class Builder { - private Optional startDateUtc = Optional.empty(); + private JsonNullable startDateUtc = JsonNullable.undefined(); private List passThroughFees; @@ -116,11 +115,11 @@ private Builder() { public Builder startDateUtc(OffsetDateTime startDateUtc) { Utils.checkNotNull(startDateUtc, "startDateUtc"); - this.startDateUtc = Optional.ofNullable(startDateUtc); + this.startDateUtc = JsonNullable.of(startDateUtc); return this; } - public Builder startDateUtc(Optional startDateUtc) { + public Builder startDateUtc(JsonNullable startDateUtc) { Utils.checkNotNull(startDateUtc, "startDateUtc"); this.startDateUtc = startDateUtc; return this; diff --git a/src/main/java/com/thetradedesk/workflows/models/components/CampaignCreateWorkflowPrimaryInput.java b/src/main/java/com/thetradedesk/workflows/models/components/CampaignCreateWorkflowPrimaryInput.java index 58ef698..ba1e2e6 100644 --- a/src/main/java/com/thetradedesk/workflows/models/components/CampaignCreateWorkflowPrimaryInput.java +++ b/src/main/java/com/thetradedesk/workflows/models/components/CampaignCreateWorkflowPrimaryInput.java @@ -63,11 +63,6 @@ public class CampaignCreateWorkflowPrimaryInput { private JsonNullable impressionsOnlyBudgetingCpm; - @JsonInclude(Include.NON_ABSENT) - @JsonProperty("budget") - private Optional budget; - - @JsonInclude(Include.NON_ABSENT) @JsonProperty("endDateInUtc") private JsonNullable endDateInUtc; @@ -119,6 +114,11 @@ public class CampaignCreateWorkflowPrimaryInput { private JsonNullable startDateInUtc; + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("budget") + private Optional budget; + + @JsonInclude(Include.NON_ABSENT) @JsonProperty("campaignIncrementalReachSetting") private Optional campaignIncrementalReachSetting; @@ -133,7 +133,6 @@ public CampaignCreateWorkflowPrimaryInput( @JsonProperty("customCPAType") Optional customCPAType, @JsonProperty("customRoasType") Optional customRoasType, @JsonProperty("impressionsOnlyBudgetingCpm") JsonNullable impressionsOnlyBudgetingCpm, - @JsonProperty("budget") Optional budget, @JsonProperty("endDateInUtc") JsonNullable endDateInUtc, @JsonProperty("seedId") JsonNullable seedId, @JsonProperty("campaignConversionReportingColumns") JsonNullable> campaignConversionReportingColumns, @@ -145,6 +144,7 @@ public CampaignCreateWorkflowPrimaryInput( @JsonProperty("primaryChannel") CampaignChannelType primaryChannel, @JsonProperty("primaryGoal") CampaignWorkflowROIGoalInput primaryGoal, @JsonProperty("startDateInUtc") JsonNullable startDateInUtc, + @JsonProperty("budget") Optional budget, @JsonProperty("campaignIncrementalReachSetting") Optional campaignIncrementalReachSetting) { Utils.checkNotNull(description, "description"); Utils.checkNotNull(campaignGroupId, "campaignGroupId"); @@ -154,7 +154,6 @@ public CampaignCreateWorkflowPrimaryInput( Utils.checkNotNull(customCPAType, "customCPAType"); Utils.checkNotNull(customRoasType, "customRoasType"); Utils.checkNotNull(impressionsOnlyBudgetingCpm, "impressionsOnlyBudgetingCpm"); - Utils.checkNotNull(budget, "budget"); Utils.checkNotNull(endDateInUtc, "endDateInUtc"); Utils.checkNotNull(seedId, "seedId"); Utils.checkNotNull(campaignConversionReportingColumns, "campaignConversionReportingColumns"); @@ -166,6 +165,7 @@ public CampaignCreateWorkflowPrimaryInput( Utils.checkNotNull(primaryChannel, "primaryChannel"); Utils.checkNotNull(primaryGoal, "primaryGoal"); Utils.checkNotNull(startDateInUtc, "startDateInUtc"); + Utils.checkNotNull(budget, "budget"); Utils.checkNotNull(campaignIncrementalReachSetting, "campaignIncrementalReachSetting"); this.description = description; this.campaignGroupId = campaignGroupId; @@ -175,7 +175,6 @@ public CampaignCreateWorkflowPrimaryInput( this.customCPAType = customCPAType; this.customRoasType = customRoasType; this.impressionsOnlyBudgetingCpm = impressionsOnlyBudgetingCpm; - this.budget = budget; this.endDateInUtc = endDateInUtc; this.seedId = seedId; this.campaignConversionReportingColumns = campaignConversionReportingColumns; @@ -187,6 +186,7 @@ public CampaignCreateWorkflowPrimaryInput( this.primaryChannel = primaryChannel; this.primaryGoal = primaryGoal; this.startDateInUtc = startDateInUtc; + this.budget = budget; this.campaignIncrementalReachSetting = campaignIncrementalReachSetting; } @@ -197,11 +197,11 @@ public CampaignCreateWorkflowPrimaryInput( CampaignWorkflowROIGoalInput primaryGoal) { this(JsonNullable.undefined(), JsonNullable.undefined(), JsonNullable.undefined(), JsonNullable.undefined(), JsonNullable.undefined(), Optional.empty(), - Optional.empty(), JsonNullable.undefined(), Optional.empty(), + Optional.empty(), JsonNullable.undefined(), JsonNullable.undefined(), JsonNullable.undefined(), JsonNullable.undefined(), JsonNullable.undefined(), - JsonNullable.undefined(), Optional.empty(), Optional.empty(), - advertiserId, name, primaryChannel, - primaryGoal, JsonNullable.undefined(), Optional.empty()); + Optional.empty(), Optional.empty(), advertiserId, + name, primaryChannel, primaryGoal, + JsonNullable.undefined(), Optional.empty(), Optional.empty()); } @JsonIgnore @@ -246,12 +246,6 @@ public JsonNullable impressionsOnlyBudgetingCpm() { return impressionsOnlyBudgetingCpm; } - @SuppressWarnings("unchecked") - @JsonIgnore - public Optional budget() { - return (Optional) budget; - } - @JsonIgnore public JsonNullable endDateInUtc() { return endDateInUtc; @@ -310,6 +304,12 @@ public JsonNullable startDateInUtc() { return startDateInUtc; } + @SuppressWarnings("unchecked") + @JsonIgnore + public Optional budget() { + return (Optional) budget; + } + @SuppressWarnings("unchecked") @JsonIgnore public Optional campaignIncrementalReachSetting() { @@ -419,19 +419,6 @@ public CampaignCreateWorkflowPrimaryInput withImpressionsOnlyBudgetingCpm(JsonNu return this; } - public CampaignCreateWorkflowPrimaryInput withBudget(CampaignWorkflowBudgetInput budget) { - Utils.checkNotNull(budget, "budget"); - this.budget = Optional.ofNullable(budget); - return this; - } - - - public CampaignCreateWorkflowPrimaryInput withBudget(Optional budget) { - Utils.checkNotNull(budget, "budget"); - this.budget = budget; - return this; - } - public CampaignCreateWorkflowPrimaryInput withEndDateInUtc(OffsetDateTime endDateInUtc) { Utils.checkNotNull(endDateInUtc, "endDateInUtc"); this.endDateInUtc = JsonNullable.of(endDateInUtc); @@ -542,6 +529,19 @@ public CampaignCreateWorkflowPrimaryInput withStartDateInUtc(JsonNullable budget) { + Utils.checkNotNull(budget, "budget"); + this.budget = budget; + return this; + } + public CampaignCreateWorkflowPrimaryInput withCampaignIncrementalReachSetting(CampaignCreateWorkflowIncrementalReachCampaignSetting campaignIncrementalReachSetting) { Utils.checkNotNull(campaignIncrementalReachSetting, "campaignIncrementalReachSetting"); this.campaignIncrementalReachSetting = Optional.ofNullable(campaignIncrementalReachSetting); @@ -573,7 +573,6 @@ public boolean equals(java.lang.Object o) { Utils.enhancedDeepEquals(this.customCPAType, other.customCPAType) && Utils.enhancedDeepEquals(this.customRoasType, other.customRoasType) && Utils.enhancedDeepEquals(this.impressionsOnlyBudgetingCpm, other.impressionsOnlyBudgetingCpm) && - Utils.enhancedDeepEquals(this.budget, other.budget) && Utils.enhancedDeepEquals(this.endDateInUtc, other.endDateInUtc) && Utils.enhancedDeepEquals(this.seedId, other.seedId) && Utils.enhancedDeepEquals(this.campaignConversionReportingColumns, other.campaignConversionReportingColumns) && @@ -585,6 +584,7 @@ public boolean equals(java.lang.Object o) { Utils.enhancedDeepEquals(this.primaryChannel, other.primaryChannel) && Utils.enhancedDeepEquals(this.primaryGoal, other.primaryGoal) && Utils.enhancedDeepEquals(this.startDateInUtc, other.startDateInUtc) && + Utils.enhancedDeepEquals(this.budget, other.budget) && Utils.enhancedDeepEquals(this.campaignIncrementalReachSetting, other.campaignIncrementalReachSetting); } @@ -593,11 +593,11 @@ public int hashCode() { return Utils.enhancedHash( description, campaignGroupId, timeZone, customCPAClickWeight, customCPAViewthroughWeight, customCPAType, - customRoasType, impressionsOnlyBudgetingCpm, budget, - endDateInUtc, seedId, campaignConversionReportingColumns, - isManagedByTTD, secondaryGoal, tertiaryGoal, - advertiserId, name, primaryChannel, - primaryGoal, startDateInUtc, campaignIncrementalReachSetting); + customRoasType, impressionsOnlyBudgetingCpm, endDateInUtc, + seedId, campaignConversionReportingColumns, isManagedByTTD, + secondaryGoal, tertiaryGoal, advertiserId, + name, primaryChannel, primaryGoal, + startDateInUtc, budget, campaignIncrementalReachSetting); } @Override @@ -611,7 +611,6 @@ public String toString() { "customCPAType", customCPAType, "customRoasType", customRoasType, "impressionsOnlyBudgetingCpm", impressionsOnlyBudgetingCpm, - "budget", budget, "endDateInUtc", endDateInUtc, "seedId", seedId, "campaignConversionReportingColumns", campaignConversionReportingColumns, @@ -623,6 +622,7 @@ public String toString() { "primaryChannel", primaryChannel, "primaryGoal", primaryGoal, "startDateInUtc", startDateInUtc, + "budget", budget, "campaignIncrementalReachSetting", campaignIncrementalReachSetting); } @@ -645,8 +645,6 @@ public final static class Builder { private JsonNullable impressionsOnlyBudgetingCpm = JsonNullable.undefined(); - private Optional budget = Optional.empty(); - private JsonNullable endDateInUtc = JsonNullable.undefined(); private JsonNullable seedId = JsonNullable.undefined(); @@ -669,6 +667,8 @@ public final static class Builder { private JsonNullable startDateInUtc = JsonNullable.undefined(); + private Optional budget = Optional.empty(); + private Optional campaignIncrementalReachSetting = Optional.empty(); private Builder() { @@ -780,19 +780,6 @@ public Builder impressionsOnlyBudgetingCpm(JsonNullable impressionsOnlyB } - public Builder budget(CampaignWorkflowBudgetInput budget) { - Utils.checkNotNull(budget, "budget"); - this.budget = Optional.ofNullable(budget); - return this; - } - - public Builder budget(Optional budget) { - Utils.checkNotNull(budget, "budget"); - this.budget = budget; - return this; - } - - public Builder endDateInUtc(OffsetDateTime endDateInUtc) { Utils.checkNotNull(endDateInUtc, "endDateInUtc"); this.endDateInUtc = JsonNullable.of(endDateInUtc); @@ -912,6 +899,19 @@ public Builder startDateInUtc(JsonNullable startDateInUtc) { } + public Builder budget(CampaignCreateWorkflowBudgetInput budget) { + Utils.checkNotNull(budget, "budget"); + this.budget = Optional.ofNullable(budget); + return this; + } + + public Builder budget(Optional budget) { + Utils.checkNotNull(budget, "budget"); + this.budget = budget; + return this; + } + + public Builder campaignIncrementalReachSetting(CampaignCreateWorkflowIncrementalReachCampaignSetting campaignIncrementalReachSetting) { Utils.checkNotNull(campaignIncrementalReachSetting, "campaignIncrementalReachSetting"); this.campaignIncrementalReachSetting = Optional.ofNullable(campaignIncrementalReachSetting); @@ -929,11 +929,11 @@ public CampaignCreateWorkflowPrimaryInput build() { return new CampaignCreateWorkflowPrimaryInput( description, campaignGroupId, timeZone, customCPAClickWeight, customCPAViewthroughWeight, customCPAType, - customRoasType, impressionsOnlyBudgetingCpm, budget, - endDateInUtc, seedId, campaignConversionReportingColumns, - isManagedByTTD, secondaryGoal, tertiaryGoal, - advertiserId, name, primaryChannel, - primaryGoal, startDateInUtc, campaignIncrementalReachSetting); + customRoasType, impressionsOnlyBudgetingCpm, endDateInUtc, + seedId, campaignConversionReportingColumns, isManagedByTTD, + secondaryGoal, tertiaryGoal, advertiserId, + name, primaryChannel, primaryGoal, + startDateInUtc, budget, campaignIncrementalReachSetting); } } diff --git a/src/main/java/com/thetradedesk/workflows/models/components/CampaignUpdateWorkflowAdvancedInput.java b/src/main/java/com/thetradedesk/workflows/models/components/CampaignUpdateWorkflowAdvancedInput.java index aac10f4..07bc95f 100644 --- a/src/main/java/com/thetradedesk/workflows/models/components/CampaignUpdateWorkflowAdvancedInput.java +++ b/src/main/java/com/thetradedesk/workflows/models/components/CampaignUpdateWorkflowAdvancedInput.java @@ -11,40 +11,24 @@ import com.thetradedesk.workflows.utils.Utils; import java.lang.Override; import java.lang.String; -import java.lang.SuppressWarnings; -import java.util.List; import org.openapitools.jackson.nullable.JsonNullable; public class CampaignUpdateWorkflowAdvancedInput { - @JsonInclude(Include.NON_ABSENT) - @JsonProperty("flights") - private JsonNullable> flights; - - @JsonInclude(Include.NON_ABSENT) @JsonProperty("purchaseOrderNumber") private JsonNullable purchaseOrderNumber; @JsonCreator public CampaignUpdateWorkflowAdvancedInput( - @JsonProperty("flights") JsonNullable> flights, @JsonProperty("purchaseOrderNumber") JsonNullable purchaseOrderNumber) { - Utils.checkNotNull(flights, "flights"); Utils.checkNotNull(purchaseOrderNumber, "purchaseOrderNumber"); - this.flights = flights; this.purchaseOrderNumber = purchaseOrderNumber; } public CampaignUpdateWorkflowAdvancedInput() { - this(JsonNullable.undefined(), JsonNullable.undefined()); - } - - @SuppressWarnings("unchecked") - @JsonIgnore - public JsonNullable> flights() { - return (JsonNullable>) flights; + this(JsonNullable.undefined()); } @JsonIgnore @@ -57,18 +41,6 @@ public static Builder builder() { } - public CampaignUpdateWorkflowAdvancedInput withFlights(List flights) { - Utils.checkNotNull(flights, "flights"); - this.flights = JsonNullable.of(flights); - return this; - } - - public CampaignUpdateWorkflowAdvancedInput withFlights(JsonNullable> flights) { - Utils.checkNotNull(flights, "flights"); - this.flights = flights; - return this; - } - public CampaignUpdateWorkflowAdvancedInput withPurchaseOrderNumber(String purchaseOrderNumber) { Utils.checkNotNull(purchaseOrderNumber, "purchaseOrderNumber"); this.purchaseOrderNumber = JsonNullable.of(purchaseOrderNumber); @@ -91,28 +63,24 @@ public boolean equals(java.lang.Object o) { } CampaignUpdateWorkflowAdvancedInput other = (CampaignUpdateWorkflowAdvancedInput) o; return - Utils.enhancedDeepEquals(this.flights, other.flights) && Utils.enhancedDeepEquals(this.purchaseOrderNumber, other.purchaseOrderNumber); } @Override public int hashCode() { return Utils.enhancedHash( - flights, purchaseOrderNumber); + purchaseOrderNumber); } @Override public String toString() { return Utils.toString(CampaignUpdateWorkflowAdvancedInput.class, - "flights", flights, "purchaseOrderNumber", purchaseOrderNumber); } @SuppressWarnings("UnusedReturnValue") public final static class Builder { - private JsonNullable> flights = JsonNullable.undefined(); - private JsonNullable purchaseOrderNumber = JsonNullable.undefined(); private Builder() { @@ -120,19 +88,6 @@ private Builder() { } - public Builder flights(List flights) { - Utils.checkNotNull(flights, "flights"); - this.flights = JsonNullable.of(flights); - return this; - } - - public Builder flights(JsonNullable> flights) { - Utils.checkNotNull(flights, "flights"); - this.flights = flights; - return this; - } - - public Builder purchaseOrderNumber(String purchaseOrderNumber) { Utils.checkNotNull(purchaseOrderNumber, "purchaseOrderNumber"); this.purchaseOrderNumber = JsonNullable.of(purchaseOrderNumber); @@ -148,7 +103,7 @@ public Builder purchaseOrderNumber(JsonNullable purchaseOrderNumber) { public CampaignUpdateWorkflowAdvancedInput build() { return new CampaignUpdateWorkflowAdvancedInput( - flights, purchaseOrderNumber); + purchaseOrderNumber); } } diff --git a/src/main/java/com/thetradedesk/workflows/models/components/CampaignUpdateWorkflowBudgetInput.java b/src/main/java/com/thetradedesk/workflows/models/components/CampaignUpdateWorkflowBudgetInput.java new file mode 100644 index 0000000..8213f2f --- /dev/null +++ b/src/main/java/com/thetradedesk/workflows/models/components/CampaignUpdateWorkflowBudgetInput.java @@ -0,0 +1,90 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.thetradedesk.workflows.models.components; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.thetradedesk.workflows.utils.Utils; +import java.lang.Override; +import java.lang.String; + + +public class CampaignUpdateWorkflowBudgetInput { + + @JsonProperty("pacingMode") + private CampaignPacingMode pacingMode; + + @JsonCreator + public CampaignUpdateWorkflowBudgetInput( + @JsonProperty("pacingMode") CampaignPacingMode pacingMode) { + Utils.checkNotNull(pacingMode, "pacingMode"); + this.pacingMode = pacingMode; + } + + @JsonIgnore + public CampaignPacingMode pacingMode() { + return pacingMode; + } + + public static Builder builder() { + return new Builder(); + } + + + public CampaignUpdateWorkflowBudgetInput withPacingMode(CampaignPacingMode pacingMode) { + Utils.checkNotNull(pacingMode, "pacingMode"); + this.pacingMode = pacingMode; + return this; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CampaignUpdateWorkflowBudgetInput other = (CampaignUpdateWorkflowBudgetInput) o; + return + Utils.enhancedDeepEquals(this.pacingMode, other.pacingMode); + } + + @Override + public int hashCode() { + return Utils.enhancedHash( + pacingMode); + } + + @Override + public String toString() { + return Utils.toString(CampaignUpdateWorkflowBudgetInput.class, + "pacingMode", pacingMode); + } + + @SuppressWarnings("UnusedReturnValue") + public final static class Builder { + + private CampaignPacingMode pacingMode; + + private Builder() { + // force use of static builder() method + } + + + public Builder pacingMode(CampaignPacingMode pacingMode) { + Utils.checkNotNull(pacingMode, "pacingMode"); + this.pacingMode = pacingMode; + return this; + } + + public CampaignUpdateWorkflowBudgetInput build() { + + return new CampaignUpdateWorkflowBudgetInput( + pacingMode); + } + + } +} diff --git a/src/main/java/com/thetradedesk/workflows/models/components/CampaignUpdateWorkflowPrimaryInput.java b/src/main/java/com/thetradedesk/workflows/models/components/CampaignUpdateWorkflowPrimaryInput.java index 9528c13..b1a83af 100644 --- a/src/main/java/com/thetradedesk/workflows/models/components/CampaignUpdateWorkflowPrimaryInput.java +++ b/src/main/java/com/thetradedesk/workflows/models/components/CampaignUpdateWorkflowPrimaryInput.java @@ -63,11 +63,6 @@ public class CampaignUpdateWorkflowPrimaryInput { private JsonNullable impressionsOnlyBudgetingCpm; - @JsonInclude(Include.NON_ABSENT) - @JsonProperty("budget") - private Optional budget; - - @JsonInclude(Include.NON_ABSENT) @JsonProperty("endDateInUtc") private JsonNullable endDateInUtc; @@ -117,6 +112,11 @@ public class CampaignUpdateWorkflowPrimaryInput { @JsonProperty("startDateInUtc") private JsonNullable startDateInUtc; + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("budget") + private Optional budget; + @JsonCreator public CampaignUpdateWorkflowPrimaryInput( @JsonProperty("description") JsonNullable description, @@ -127,7 +127,6 @@ public CampaignUpdateWorkflowPrimaryInput( @JsonProperty("customCPAType") Optional customCPAType, @JsonProperty("customRoasType") Optional customRoasType, @JsonProperty("impressionsOnlyBudgetingCpm") JsonNullable impressionsOnlyBudgetingCpm, - @JsonProperty("budget") Optional budget, @JsonProperty("endDateInUtc") JsonNullable endDateInUtc, @JsonProperty("seedId") JsonNullable seedId, @JsonProperty("campaignConversionReportingColumns") JsonNullable> campaignConversionReportingColumns, @@ -137,7 +136,8 @@ public CampaignUpdateWorkflowPrimaryInput( @JsonProperty("name") JsonNullable name, @JsonProperty("primaryChannel") Optional primaryChannel, @JsonProperty("primaryGoal") Optional primaryGoal, - @JsonProperty("startDateInUtc") JsonNullable startDateInUtc) { + @JsonProperty("startDateInUtc") JsonNullable startDateInUtc, + @JsonProperty("budget") Optional budget) { Utils.checkNotNull(description, "description"); Utils.checkNotNull(campaignGroupId, "campaignGroupId"); Utils.checkNotNull(timeZone, "timeZone"); @@ -146,7 +146,6 @@ public CampaignUpdateWorkflowPrimaryInput( Utils.checkNotNull(customCPAType, "customCPAType"); Utils.checkNotNull(customRoasType, "customRoasType"); Utils.checkNotNull(impressionsOnlyBudgetingCpm, "impressionsOnlyBudgetingCpm"); - Utils.checkNotNull(budget, "budget"); Utils.checkNotNull(endDateInUtc, "endDateInUtc"); Utils.checkNotNull(seedId, "seedId"); Utils.checkNotNull(campaignConversionReportingColumns, "campaignConversionReportingColumns"); @@ -157,6 +156,7 @@ public CampaignUpdateWorkflowPrimaryInput( Utils.checkNotNull(primaryChannel, "primaryChannel"); Utils.checkNotNull(primaryGoal, "primaryGoal"); Utils.checkNotNull(startDateInUtc, "startDateInUtc"); + Utils.checkNotNull(budget, "budget"); this.description = description; this.campaignGroupId = campaignGroupId; this.timeZone = timeZone; @@ -165,7 +165,6 @@ public CampaignUpdateWorkflowPrimaryInput( this.customCPAType = customCPAType; this.customRoasType = customRoasType; this.impressionsOnlyBudgetingCpm = impressionsOnlyBudgetingCpm; - this.budget = budget; this.endDateInUtc = endDateInUtc; this.seedId = seedId; this.campaignConversionReportingColumns = campaignConversionReportingColumns; @@ -176,16 +175,17 @@ public CampaignUpdateWorkflowPrimaryInput( this.primaryChannel = primaryChannel; this.primaryGoal = primaryGoal; this.startDateInUtc = startDateInUtc; + this.budget = budget; } public CampaignUpdateWorkflowPrimaryInput() { this(JsonNullable.undefined(), JsonNullable.undefined(), JsonNullable.undefined(), JsonNullable.undefined(), JsonNullable.undefined(), Optional.empty(), - Optional.empty(), JsonNullable.undefined(), Optional.empty(), + Optional.empty(), JsonNullable.undefined(), JsonNullable.undefined(), JsonNullable.undefined(), JsonNullable.undefined(), JsonNullable.undefined(), - JsonNullable.undefined(), Optional.empty(), Optional.empty(), - JsonNullable.undefined(), Optional.empty(), Optional.empty(), - JsonNullable.undefined()); + Optional.empty(), Optional.empty(), JsonNullable.undefined(), + Optional.empty(), Optional.empty(), JsonNullable.undefined(), + Optional.empty()); } @JsonIgnore @@ -230,12 +230,6 @@ public JsonNullable impressionsOnlyBudgetingCpm() { return impressionsOnlyBudgetingCpm; } - @SuppressWarnings("unchecked") - @JsonIgnore - public Optional budget() { - return (Optional) budget; - } - @JsonIgnore public JsonNullable endDateInUtc() { return endDateInUtc; @@ -291,6 +285,12 @@ public JsonNullable startDateInUtc() { return startDateInUtc; } + @SuppressWarnings("unchecked") + @JsonIgnore + public Optional budget() { + return (Optional) budget; + } + public static Builder builder() { return new Builder(); } @@ -394,19 +394,6 @@ public CampaignUpdateWorkflowPrimaryInput withImpressionsOnlyBudgetingCpm(JsonNu return this; } - public CampaignUpdateWorkflowPrimaryInput withBudget(CampaignWorkflowBudgetInput budget) { - Utils.checkNotNull(budget, "budget"); - this.budget = Optional.ofNullable(budget); - return this; - } - - - public CampaignUpdateWorkflowPrimaryInput withBudget(Optional budget) { - Utils.checkNotNull(budget, "budget"); - this.budget = budget; - return this; - } - public CampaignUpdateWorkflowPrimaryInput withEndDateInUtc(OffsetDateTime endDateInUtc) { Utils.checkNotNull(endDateInUtc, "endDateInUtc"); this.endDateInUtc = JsonNullable.of(endDateInUtc); @@ -531,6 +518,19 @@ public CampaignUpdateWorkflowPrimaryInput withStartDateInUtc(JsonNullable budget) { + Utils.checkNotNull(budget, "budget"); + this.budget = budget; + return this; + } + @Override public boolean equals(java.lang.Object o) { if (this == o) { @@ -549,7 +549,6 @@ public boolean equals(java.lang.Object o) { Utils.enhancedDeepEquals(this.customCPAType, other.customCPAType) && Utils.enhancedDeepEquals(this.customRoasType, other.customRoasType) && Utils.enhancedDeepEquals(this.impressionsOnlyBudgetingCpm, other.impressionsOnlyBudgetingCpm) && - Utils.enhancedDeepEquals(this.budget, other.budget) && Utils.enhancedDeepEquals(this.endDateInUtc, other.endDateInUtc) && Utils.enhancedDeepEquals(this.seedId, other.seedId) && Utils.enhancedDeepEquals(this.campaignConversionReportingColumns, other.campaignConversionReportingColumns) && @@ -559,7 +558,8 @@ public boolean equals(java.lang.Object o) { Utils.enhancedDeepEquals(this.name, other.name) && Utils.enhancedDeepEquals(this.primaryChannel, other.primaryChannel) && Utils.enhancedDeepEquals(this.primaryGoal, other.primaryGoal) && - Utils.enhancedDeepEquals(this.startDateInUtc, other.startDateInUtc); + Utils.enhancedDeepEquals(this.startDateInUtc, other.startDateInUtc) && + Utils.enhancedDeepEquals(this.budget, other.budget); } @Override @@ -567,11 +567,11 @@ public int hashCode() { return Utils.enhancedHash( description, campaignGroupId, timeZone, customCPAClickWeight, customCPAViewthroughWeight, customCPAType, - customRoasType, impressionsOnlyBudgetingCpm, budget, - endDateInUtc, seedId, campaignConversionReportingColumns, - isManagedByTTD, secondaryGoal, tertiaryGoal, - name, primaryChannel, primaryGoal, - startDateInUtc); + customRoasType, impressionsOnlyBudgetingCpm, endDateInUtc, + seedId, campaignConversionReportingColumns, isManagedByTTD, + secondaryGoal, tertiaryGoal, name, + primaryChannel, primaryGoal, startDateInUtc, + budget); } @Override @@ -585,7 +585,6 @@ public String toString() { "customCPAType", customCPAType, "customRoasType", customRoasType, "impressionsOnlyBudgetingCpm", impressionsOnlyBudgetingCpm, - "budget", budget, "endDateInUtc", endDateInUtc, "seedId", seedId, "campaignConversionReportingColumns", campaignConversionReportingColumns, @@ -595,7 +594,8 @@ public String toString() { "name", name, "primaryChannel", primaryChannel, "primaryGoal", primaryGoal, - "startDateInUtc", startDateInUtc); + "startDateInUtc", startDateInUtc, + "budget", budget); } @SuppressWarnings("UnusedReturnValue") @@ -617,8 +617,6 @@ public final static class Builder { private JsonNullable impressionsOnlyBudgetingCpm = JsonNullable.undefined(); - private Optional budget = Optional.empty(); - private JsonNullable endDateInUtc = JsonNullable.undefined(); private JsonNullable seedId = JsonNullable.undefined(); @@ -639,6 +637,8 @@ public final static class Builder { private JsonNullable startDateInUtc = JsonNullable.undefined(); + private Optional budget = Optional.empty(); + private Builder() { // force use of static builder() method } @@ -748,19 +748,6 @@ public Builder impressionsOnlyBudgetingCpm(JsonNullable impressionsOnlyB } - public Builder budget(CampaignWorkflowBudgetInput budget) { - Utils.checkNotNull(budget, "budget"); - this.budget = Optional.ofNullable(budget); - return this; - } - - public Builder budget(Optional budget) { - Utils.checkNotNull(budget, "budget"); - this.budget = budget; - return this; - } - - public Builder endDateInUtc(OffsetDateTime endDateInUtc) { Utils.checkNotNull(endDateInUtc, "endDateInUtc"); this.endDateInUtc = JsonNullable.of(endDateInUtc); @@ -890,16 +877,29 @@ public Builder startDateInUtc(JsonNullable startDateInUtc) { return this; } + + public Builder budget(CampaignUpdateWorkflowBudgetInput budget) { + Utils.checkNotNull(budget, "budget"); + this.budget = Optional.ofNullable(budget); + return this; + } + + public Builder budget(Optional budget) { + Utils.checkNotNull(budget, "budget"); + this.budget = budget; + return this; + } + public CampaignUpdateWorkflowPrimaryInput build() { return new CampaignUpdateWorkflowPrimaryInput( description, campaignGroupId, timeZone, customCPAClickWeight, customCPAViewthroughWeight, customCPAType, - customRoasType, impressionsOnlyBudgetingCpm, budget, - endDateInUtc, seedId, campaignConversionReportingColumns, - isManagedByTTD, secondaryGoal, tertiaryGoal, - name, primaryChannel, primaryGoal, - startDateInUtc); + customRoasType, impressionsOnlyBudgetingCpm, endDateInUtc, + seedId, campaignConversionReportingColumns, isManagedByTTD, + secondaryGoal, tertiaryGoal, name, + primaryChannel, primaryGoal, startDateInUtc, + budget); } } diff --git a/src/main/java/com/thetradedesk/workflows/models/components/CampaignWorkflowCampaignConversionReportingColumnInput.java b/src/main/java/com/thetradedesk/workflows/models/components/CampaignWorkflowCampaignConversionReportingColumnInput.java index 7d1aca9..156af87 100644 --- a/src/main/java/com/thetradedesk/workflows/models/components/CampaignWorkflowCampaignConversionReportingColumnInput.java +++ b/src/main/java/com/thetradedesk/workflows/models/components/CampaignWorkflowCampaignConversionReportingColumnInput.java @@ -38,6 +38,11 @@ public class CampaignWorkflowCampaignConversionReportingColumnInput { private Optional roasConfig; + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("productListReportingType") + private Optional productListReportingType; + + @JsonInclude(Include.NON_ABSENT) @JsonProperty("weight") private JsonNullable weight; @@ -53,18 +58,21 @@ public CampaignWorkflowCampaignConversionReportingColumnInput( @JsonProperty("includeInCustomCPA") boolean includeInCustomCPA, @JsonProperty("reportingColumnId") int reportingColumnId, @JsonProperty("ROASConfig") Optional roasConfig, + @JsonProperty("productListReportingType") Optional productListReportingType, @JsonProperty("weight") JsonNullable weight, @JsonProperty("crossDeviceAttributionModelId") JsonNullable crossDeviceAttributionModelId) { Utils.checkNotNull(trackingTagId, "trackingTagId"); Utils.checkNotNull(includeInCustomCPA, "includeInCustomCPA"); Utils.checkNotNull(reportingColumnId, "reportingColumnId"); Utils.checkNotNull(roasConfig, "roasConfig"); + Utils.checkNotNull(productListReportingType, "productListReportingType"); Utils.checkNotNull(weight, "weight"); Utils.checkNotNull(crossDeviceAttributionModelId, "crossDeviceAttributionModelId"); this.trackingTagId = trackingTagId; this.includeInCustomCPA = includeInCustomCPA; this.reportingColumnId = reportingColumnId; this.roasConfig = roasConfig; + this.productListReportingType = productListReportingType; this.weight = weight; this.crossDeviceAttributionModelId = crossDeviceAttributionModelId; } @@ -74,7 +82,8 @@ public CampaignWorkflowCampaignConversionReportingColumnInput( boolean includeInCustomCPA, int reportingColumnId) { this(trackingTagId, includeInCustomCPA, reportingColumnId, - Optional.empty(), JsonNullable.undefined(), JsonNullable.undefined()); + Optional.empty(), Optional.empty(), JsonNullable.undefined(), + JsonNullable.undefined()); } @JsonIgnore @@ -98,6 +107,12 @@ public Optional roasConfig() { return (Optional) roasConfig; } + @SuppressWarnings("unchecked") + @JsonIgnore + public Optional productListReportingType() { + return (Optional) productListReportingType; + } + @JsonIgnore public JsonNullable weight() { return weight; @@ -144,6 +159,19 @@ public CampaignWorkflowCampaignConversionReportingColumnInput withROASConfig(Opt return this; } + public CampaignWorkflowCampaignConversionReportingColumnInput withProductListReportingType(ProductListReportingTypeInput productListReportingType) { + Utils.checkNotNull(productListReportingType, "productListReportingType"); + this.productListReportingType = Optional.ofNullable(productListReportingType); + return this; + } + + + public CampaignWorkflowCampaignConversionReportingColumnInput withProductListReportingType(Optional productListReportingType) { + Utils.checkNotNull(productListReportingType, "productListReportingType"); + this.productListReportingType = productListReportingType; + return this; + } + public CampaignWorkflowCampaignConversionReportingColumnInput withWeight(double weight) { Utils.checkNotNull(weight, "weight"); this.weight = JsonNullable.of(weight); @@ -182,6 +210,7 @@ public boolean equals(java.lang.Object o) { Utils.enhancedDeepEquals(this.includeInCustomCPA, other.includeInCustomCPA) && Utils.enhancedDeepEquals(this.reportingColumnId, other.reportingColumnId) && Utils.enhancedDeepEquals(this.roasConfig, other.roasConfig) && + Utils.enhancedDeepEquals(this.productListReportingType, other.productListReportingType) && Utils.enhancedDeepEquals(this.weight, other.weight) && Utils.enhancedDeepEquals(this.crossDeviceAttributionModelId, other.crossDeviceAttributionModelId); } @@ -190,7 +219,8 @@ public boolean equals(java.lang.Object o) { public int hashCode() { return Utils.enhancedHash( trackingTagId, includeInCustomCPA, reportingColumnId, - roasConfig, weight, crossDeviceAttributionModelId); + roasConfig, productListReportingType, weight, + crossDeviceAttributionModelId); } @Override @@ -200,6 +230,7 @@ public String toString() { "includeInCustomCPA", includeInCustomCPA, "reportingColumnId", reportingColumnId, "roasConfig", roasConfig, + "productListReportingType", productListReportingType, "weight", weight, "crossDeviceAttributionModelId", crossDeviceAttributionModelId); } @@ -215,6 +246,8 @@ public final static class Builder { private Optional roasConfig = Optional.empty(); + private Optional productListReportingType = Optional.empty(); + private JsonNullable weight = JsonNullable.undefined(); private JsonNullable crossDeviceAttributionModelId = JsonNullable.undefined(); @@ -258,6 +291,19 @@ public Builder roasConfig(Optional roasConfig) { } + public Builder productListReportingType(ProductListReportingTypeInput productListReportingType) { + Utils.checkNotNull(productListReportingType, "productListReportingType"); + this.productListReportingType = Optional.ofNullable(productListReportingType); + return this; + } + + public Builder productListReportingType(Optional productListReportingType) { + Utils.checkNotNull(productListReportingType, "productListReportingType"); + this.productListReportingType = productListReportingType; + return this; + } + + public Builder weight(double weight) { Utils.checkNotNull(weight, "weight"); this.weight = JsonNullable.of(weight); @@ -287,7 +333,8 @@ public CampaignWorkflowCampaignConversionReportingColumnInput build() { return new CampaignWorkflowCampaignConversionReportingColumnInput( trackingTagId, includeInCustomCPA, reportingColumnId, - roasConfig, weight, crossDeviceAttributionModelId); + roasConfig, productListReportingType, weight, + crossDeviceAttributionModelId); } } diff --git a/src/main/java/com/thetradedesk/workflows/models/components/FrequencyConfig.java b/src/main/java/com/thetradedesk/workflows/models/components/FrequencyConfig.java new file mode 100644 index 0000000..7b72c21 --- /dev/null +++ b/src/main/java/com/thetradedesk/workflows/models/components/FrequencyConfig.java @@ -0,0 +1,242 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.thetradedesk.workflows.models.components; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.thetradedesk.workflows.utils.Utils; +import java.lang.Integer; +import java.lang.Override; +import java.lang.String; +import java.util.Optional; +import org.openapitools.jackson.nullable.JsonNullable; + + +public class FrequencyConfig { + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("counterName") + private JsonNullable counterName; + + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("frequencyCap") + private JsonNullable frequencyCap; + + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("frequencyGoal") + private JsonNullable frequencyGoal; + + + @JsonInclude(Include.NON_ABSENT) + @JsonProperty("resetIntervalInMinutes") + private Optional resetIntervalInMinutes; + + @JsonCreator + public FrequencyConfig( + @JsonProperty("counterName") JsonNullable counterName, + @JsonProperty("frequencyCap") JsonNullable frequencyCap, + @JsonProperty("frequencyGoal") JsonNullable frequencyGoal, + @JsonProperty("resetIntervalInMinutes") Optional resetIntervalInMinutes) { + Utils.checkNotNull(counterName, "counterName"); + Utils.checkNotNull(frequencyCap, "frequencyCap"); + Utils.checkNotNull(frequencyGoal, "frequencyGoal"); + Utils.checkNotNull(resetIntervalInMinutes, "resetIntervalInMinutes"); + this.counterName = counterName; + this.frequencyCap = frequencyCap; + this.frequencyGoal = frequencyGoal; + this.resetIntervalInMinutes = resetIntervalInMinutes; + } + + public FrequencyConfig() { + this(JsonNullable.undefined(), JsonNullable.undefined(), JsonNullable.undefined(), + Optional.empty()); + } + + @JsonIgnore + public JsonNullable counterName() { + return counterName; + } + + @JsonIgnore + public JsonNullable frequencyCap() { + return frequencyCap; + } + + @JsonIgnore + public JsonNullable frequencyGoal() { + return frequencyGoal; + } + + @JsonIgnore + public Optional resetIntervalInMinutes() { + return resetIntervalInMinutes; + } + + public static Builder builder() { + return new Builder(); + } + + + public FrequencyConfig withCounterName(String counterName) { + Utils.checkNotNull(counterName, "counterName"); + this.counterName = JsonNullable.of(counterName); + return this; + } + + public FrequencyConfig withCounterName(JsonNullable counterName) { + Utils.checkNotNull(counterName, "counterName"); + this.counterName = counterName; + return this; + } + + public FrequencyConfig withFrequencyCap(int frequencyCap) { + Utils.checkNotNull(frequencyCap, "frequencyCap"); + this.frequencyCap = JsonNullable.of(frequencyCap); + return this; + } + + public FrequencyConfig withFrequencyCap(JsonNullable frequencyCap) { + Utils.checkNotNull(frequencyCap, "frequencyCap"); + this.frequencyCap = frequencyCap; + return this; + } + + public FrequencyConfig withFrequencyGoal(int frequencyGoal) { + Utils.checkNotNull(frequencyGoal, "frequencyGoal"); + this.frequencyGoal = JsonNullable.of(frequencyGoal); + return this; + } + + public FrequencyConfig withFrequencyGoal(JsonNullable frequencyGoal) { + Utils.checkNotNull(frequencyGoal, "frequencyGoal"); + this.frequencyGoal = frequencyGoal; + return this; + } + + public FrequencyConfig withResetIntervalInMinutes(int resetIntervalInMinutes) { + Utils.checkNotNull(resetIntervalInMinutes, "resetIntervalInMinutes"); + this.resetIntervalInMinutes = Optional.ofNullable(resetIntervalInMinutes); + return this; + } + + + public FrequencyConfig withResetIntervalInMinutes(Optional resetIntervalInMinutes) { + Utils.checkNotNull(resetIntervalInMinutes, "resetIntervalInMinutes"); + this.resetIntervalInMinutes = resetIntervalInMinutes; + return this; + } + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + FrequencyConfig other = (FrequencyConfig) o; + return + Utils.enhancedDeepEquals(this.counterName, other.counterName) && + Utils.enhancedDeepEquals(this.frequencyCap, other.frequencyCap) && + Utils.enhancedDeepEquals(this.frequencyGoal, other.frequencyGoal) && + Utils.enhancedDeepEquals(this.resetIntervalInMinutes, other.resetIntervalInMinutes); + } + + @Override + public int hashCode() { + return Utils.enhancedHash( + counterName, frequencyCap, frequencyGoal, + resetIntervalInMinutes); + } + + @Override + public String toString() { + return Utils.toString(FrequencyConfig.class, + "counterName", counterName, + "frequencyCap", frequencyCap, + "frequencyGoal", frequencyGoal, + "resetIntervalInMinutes", resetIntervalInMinutes); + } + + @SuppressWarnings("UnusedReturnValue") + public final static class Builder { + + private JsonNullable counterName = JsonNullable.undefined(); + + private JsonNullable frequencyCap = JsonNullable.undefined(); + + private JsonNullable frequencyGoal = JsonNullable.undefined(); + + private Optional resetIntervalInMinutes = Optional.empty(); + + private Builder() { + // force use of static builder() method + } + + + public Builder counterName(String counterName) { + Utils.checkNotNull(counterName, "counterName"); + this.counterName = JsonNullable.of(counterName); + return this; + } + + public Builder counterName(JsonNullable counterName) { + Utils.checkNotNull(counterName, "counterName"); + this.counterName = counterName; + return this; + } + + + public Builder frequencyCap(int frequencyCap) { + Utils.checkNotNull(frequencyCap, "frequencyCap"); + this.frequencyCap = JsonNullable.of(frequencyCap); + return this; + } + + public Builder frequencyCap(JsonNullable frequencyCap) { + Utils.checkNotNull(frequencyCap, "frequencyCap"); + this.frequencyCap = frequencyCap; + return this; + } + + + public Builder frequencyGoal(int frequencyGoal) { + Utils.checkNotNull(frequencyGoal, "frequencyGoal"); + this.frequencyGoal = JsonNullable.of(frequencyGoal); + return this; + } + + public Builder frequencyGoal(JsonNullable frequencyGoal) { + Utils.checkNotNull(frequencyGoal, "frequencyGoal"); + this.frequencyGoal = frequencyGoal; + return this; + } + + + public Builder resetIntervalInMinutes(int resetIntervalInMinutes) { + Utils.checkNotNull(resetIntervalInMinutes, "resetIntervalInMinutes"); + this.resetIntervalInMinutes = Optional.ofNullable(resetIntervalInMinutes); + return this; + } + + public Builder resetIntervalInMinutes(Optional resetIntervalInMinutes) { + Utils.checkNotNull(resetIntervalInMinutes, "resetIntervalInMinutes"); + this.resetIntervalInMinutes = resetIntervalInMinutes; + return this; + } + + public FrequencyConfig build() { + + return new FrequencyConfig( + counterName, frequencyCap, frequencyGoal, + resetIntervalInMinutes); + } + + } +} diff --git a/src/main/java/com/thetradedesk/workflows/models/components/ProductListReportingTypeInput.java b/src/main/java/com/thetradedesk/workflows/models/components/ProductListReportingTypeInput.java new file mode 100644 index 0000000..9ef5bdd --- /dev/null +++ b/src/main/java/com/thetradedesk/workflows/models/components/ProductListReportingTypeInput.java @@ -0,0 +1,35 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.thetradedesk.workflows.models.components; + +import com.fasterxml.jackson.annotation.JsonValue; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; + +public enum ProductListReportingTypeInput { + FEATURED("Featured"), + HALO("Halo"); + + @JsonValue + private final String value; + + ProductListReportingTypeInput(String value) { + this.value = value; + } + + public String value() { + return value; + } + + public static Optional fromValue(String value) { + for (ProductListReportingTypeInput o: ProductListReportingTypeInput.values()) { + if (Objects.deepEquals(o.value, value)) { + return Optional.of(o); + } + } + return Optional.empty(); + } +} + diff --git a/src/main/java/com/thetradedesk/workflows/utils/AsyncHooks.java b/src/main/java/com/thetradedesk/workflows/utils/AsyncHooks.java index 9350cef..73c28c7 100644 --- a/src/main/java/com/thetradedesk/workflows/utils/AsyncHooks.java +++ b/src/main/java/com/thetradedesk/workflows/utils/AsyncHooks.java @@ -34,6 +34,8 @@ // ThreadSafe public class AsyncHooks implements BeforeRequest, AfterSuccess, AfterError { + private static final SpeakeasyLogger logger = SpeakeasyLogger.getLogger(AsyncHooks.class); + // we use CopyOnWriteArrayList for thread safety private final List beforeRequestHooks = new CopyOnWriteArrayList<>(); private final List afterSuccessHooks = new CopyOnWriteArrayList<>(); @@ -51,6 +53,7 @@ public AsyncHooks() { public AsyncHooks registerBeforeRequest(BeforeRequest beforeRequest) { Utils.checkNotNull(beforeRequest, "beforeRequest"); this.beforeRequestHooks.add(beforeRequest); + logger.debug("Registered async BeforeRequest hook: {} (total: {})", beforeRequest.getClass().getSimpleName(), beforeRequestHooks.size()); return this; } @@ -63,6 +66,7 @@ public AsyncHooks registerBeforeRequest(BeforeRequest beforeRequest) { public AsyncHooks registerAfterSuccess(AfterSuccess afterSuccess) { Utils.checkNotNull(afterSuccess, "afterSuccess"); this.afterSuccessHooks.add(afterSuccess); + logger.debug("Registered async AfterSuccess hook: {} (total: {})", afterSuccess.getClass().getSimpleName(), afterSuccessHooks.size()); return this; } @@ -75,6 +79,7 @@ public AsyncHooks registerAfterSuccess(AfterSuccess afterSuccess) { public AsyncHooks registerAfterError(AfterError afterError) { Utils.checkNotNull(afterError, "afterError"); this.afterErrorHooks.add(afterError); + logger.debug("Registered async AfterError hook: {} (total: {})", afterError.getClass().getSimpleName(), afterErrorHooks.size()); return this; } @@ -83,6 +88,10 @@ public CompletableFuture beforeRequest(BeforeRequestContext context Utils.checkNotNull(context, "context"); Utils.checkNotNull(request, "request"); + if (logger.isTraceEnabled() && !beforeRequestHooks.isEmpty()) { + logger.trace("Executing {} async beforeRequest hook(s) for operation: {}", beforeRequestHooks.size(), context.operationId()); + } + CompletableFuture result = CompletableFuture.completedFuture(request); for (BeforeRequest hook : beforeRequestHooks) { @@ -99,6 +108,10 @@ public CompletableFuture> afterSuccess( Utils.checkNotNull(context, "context"); Utils.checkNotNull(response, "response"); + if (logger.isTraceEnabled() && !afterSuccessHooks.isEmpty()) { + logger.trace("Executing {} async afterSuccess hook(s) for operation: {}", afterSuccessHooks.size(), context.operationId()); + } + CompletableFuture> result = CompletableFuture.completedFuture(response); for (AfterSuccess hook : afterSuccessHooks) { @@ -127,6 +140,10 @@ public CompletableFuture> afterError( (response != null) ^ (error != null), "one and only one of response or error must be present"); + if (logger.isTraceEnabled() && !afterErrorHooks.isEmpty()) { + logger.trace("Executing {} async afterError hook(s) for operation: {}", afterErrorHooks.size(), context.operationId()); + } + CompletableFuture> result; if (response != null) { result = CompletableFuture.completedFuture(response); @@ -147,6 +164,7 @@ public CompletableFuture> afterError( failedEarly.set(true); throw (FailEarlyException) hookErr; } + logger.debug("Async hook threw exception: {}", hookErr.getClass().getSimpleName()); throw Exceptions.unchecked(hookErr); } if (hookResp == null) { diff --git a/src/main/java/com/thetradedesk/workflows/utils/AsyncRetries.java b/src/main/java/com/thetradedesk/workflows/utils/AsyncRetries.java index 12d950d..1155534 100644 --- a/src/main/java/com/thetradedesk/workflows/utils/AsyncRetries.java +++ b/src/main/java/com/thetradedesk/workflows/utils/AsyncRetries.java @@ -15,6 +15,8 @@ public class AsyncRetries { + private static final SpeakeasyLogger logger = SpeakeasyLogger.getLogger(AsyncRetries.class); + private final RetryConfig retryConfig; private final List retriableStatusCodes; private final ScheduledExecutorService scheduler; @@ -54,6 +56,9 @@ private void attempt(Supplier>> task, CompletableFuture> result, BackoffStrategy backoff, State state) { + if (state.count() > 0) { + logger.debug("Async retry attempt {} after backoff", state.count()); + } task.get().whenComplete((response, throwable) -> { if (throwable == null) { boolean matched = retriableStatusCodes.stream() @@ -77,6 +82,7 @@ private void attempt(Supplier>> task, return; } } + logger.debug("Non-retryable exception encountered: {}", e.getClass().getSimpleName()); result.completeExceptionally(new NonRetryableException(e)); }); } @@ -97,6 +103,7 @@ private void maybeRetry(Supplier>> task, Duration timeSinceStart = Duration.between(state.startedAt(), Instant.now()); if (timeSinceStart.toMillis() > backoff.maxElapsedTimeMs()) { // retry exhausted + logger.debug("Async retry exhausted after {}ms, {} attempts", timeSinceStart.toMillis(), state.count() + 1); if (e instanceof AsyncRetryableException) { result.complete(((AsyncRetryableException) e).response()); return; @@ -110,6 +117,13 @@ private void maybeRetry(Supplier>> task, intervalMs = intervalMs - jitterMs + Math.random() * (2 * jitterMs + 1); intervalMs = Math.min(intervalMs, backoff.maxIntervalMs()); + if (logger.isTraceEnabled()) { + String reason = e instanceof AsyncRetryableException + ? "status " + ((AsyncRetryableException) e).response().statusCode() + : e.getClass().getSimpleName(); + logger.trace("Async retrying due to {} - waiting {}ms before attempt {}", reason, (long) intervalMs, state.count() + 1); + } + scheduler.schedule( () -> attempt(task, result, backoff, state.countAttempt()), (long) intervalMs, diff --git a/src/main/java/com/thetradedesk/workflows/utils/EventStream.java b/src/main/java/com/thetradedesk/workflows/utils/EventStream.java index 1369234..9d189d1 100644 --- a/src/main/java/com/thetradedesk/workflows/utils/EventStream.java +++ b/src/main/java/com/thetradedesk/workflows/utils/EventStream.java @@ -67,6 +67,9 @@ * @param the type that SSE {@code data} fields will be deserialized into */ public final class EventStream implements Iterable, AutoCloseable { + + private static final SpeakeasyLogger logger = SpeakeasyLogger.getLogger(EventStream.class); + private final BlockingParser parser; private final TypeReference typeReference; private final ObjectMapper mapper; @@ -79,6 +82,7 @@ public EventStream(InputStream in, TypeReference typeReference, ObjectMapper this.typeReference = typeReference; this.mapper = mapper; this.terminalMessage = terminalMessage; + logger.debug("EventStream initialized for type: {}", typeReference.getType().getTypeName()); } /** @@ -89,10 +93,20 @@ public EventStream(InputStream in, TypeReference typeReference, ObjectMapper * @throws IOException when parsing the next message. */ public Optional next() throws IOException { - return parser.next() // - .filter(x -> - terminalMessage.map(sentinel -> !sentinel.equals(x.data())).orElse(true)) + Optional result = parser.next() // + .filter(x -> { + boolean isTerminal = terminalMessage.map(sentinel -> sentinel.equals(x.data())).orElse(false); + if (isTerminal && logger.isTraceEnabled()) { + logger.trace("Terminal message encountered in EventStream"); + } + return !isTerminal; + }) .map(x -> Utils.asType(x, mapper, typeReference)); + + if (logger.isTraceEnabled() && result.isPresent()) { + logger.trace("EventStream item processed"); + } + return result; } /** @@ -148,6 +162,7 @@ public Stream stream() { @Override public void close() throws IOException { + logger.debug("EventStream closed"); parser.close(); } diff --git a/src/main/java/com/thetradedesk/workflows/utils/Hooks.java b/src/main/java/com/thetradedesk/workflows/utils/Hooks.java index 937f483..147cd5d 100644 --- a/src/main/java/com/thetradedesk/workflows/utils/Hooks.java +++ b/src/main/java/com/thetradedesk/workflows/utils/Hooks.java @@ -36,6 +36,8 @@ // ThreadSafe public class Hooks implements BeforeRequest, AfterSuccess, AfterError, SdkInit { + private static final SpeakeasyLogger logger = SpeakeasyLogger.getLogger(Hooks.class); + // we use CopyOnWriteArrayList for thread safety private final List beforeRequestHooks = new CopyOnWriteArrayList<>(); private final List afterSuccessHooks = new CopyOnWriteArrayList<>(); @@ -61,6 +63,7 @@ public Hooks() { public Hooks registerBeforeRequest(BeforeRequest beforeRequest) { Utils.checkNotNull(beforeRequest, "beforeRequest"); this.beforeRequestHooks.add(beforeRequest); + logger.debug("Registered BeforeRequest hook: {} (total: {})", beforeRequest.getClass().getSimpleName(), beforeRequestHooks.size()); return this; } @@ -77,6 +80,7 @@ public Hooks registerBeforeRequest(BeforeRequest beforeRequest) { public Hooks registerAfterSuccess(AfterSuccess afterSuccess) { Utils.checkNotNull(afterSuccess, "afterSuccess"); this.afterSuccessHooks.add(afterSuccess); + logger.debug("Registered AfterSuccess hook: {} (total: {})", afterSuccess.getClass().getSimpleName(), afterSuccessHooks.size()); return this; } @@ -94,6 +98,7 @@ public Hooks registerAfterSuccess(AfterSuccess afterSuccess) { public Hooks registerAfterError(AfterError afterError) { Utils.checkNotNull(afterError, "afterError"); this.afterErrorHooks.add(afterError); + logger.debug("Registered AfterError hook: {} (total: {})", afterError.getClass().getSimpleName(), afterErrorHooks.size()); return this; } @@ -107,6 +112,7 @@ public Hooks registerAfterError(AfterError afterError) { public Hooks registerSdkInit(SdkInit SdkInit) { Utils.checkNotNull(SdkInit, "SdkInit"); this.SdkInitHooks.add(SdkInit); + logger.debug("Registered SdkInit hook: {} (total: {})", SdkInit.getClass().getSimpleName(), SdkInitHooks.size()); return this; } @@ -114,6 +120,9 @@ public Hooks registerSdkInit(SdkInit SdkInit) { public HttpRequest beforeRequest(BeforeRequestContext context, HttpRequest request) throws Exception { Utils.checkNotNull(context, "context"); Utils.checkNotNull(request, "request"); + if (logger.isTraceEnabled() && !beforeRequestHooks.isEmpty()) { + logger.trace("Executing {} beforeRequest hook(s) for operation: {}", beforeRequestHooks.size(), context.operationId()); + } for (BeforeRequest hook : beforeRequestHooks) { request = hook.beforeRequest(context, request); } @@ -126,6 +135,9 @@ public HttpResponse afterSuccess(AfterSuccessContext context, HttpR Utils.checkNotNull(context, "context"); Utils.checkNotNull(response, "response"); + if (logger.isTraceEnabled() && !afterSuccessHooks.isEmpty()) { + logger.trace("Executing {} afterSuccess hook(s) for operation: {}", afterSuccessHooks.size(), context.operationId()); + } for (AfterSuccess hook : afterSuccessHooks) { response = hook.afterSuccess(context, response); if (response == null) { @@ -137,23 +149,26 @@ public HttpResponse afterSuccess(AfterSuccessContext context, HttpR @Override public HttpResponse afterError( - AfterErrorContext context, - Optional> response, + AfterErrorContext context, + Optional> response, Optional error) throws Exception { Utils.checkNotNull(context, "context"); Utils.checkNotNull(response, "response"); Utils.checkNotNull(error, "error"); Utils.checkArgument( response.isPresent() ^ error.isPresent(), - "one and only one of response or error must be present"); - + "one and only one of response or error must be present"); + + if (logger.isTraceEnabled() && !afterErrorHooks.isEmpty()) { + logger.trace("Executing {} afterError hook(s) for operation: {}", afterErrorHooks.size(), context.operationId()); + } for (AfterError hook : afterErrorHooks) { try { response = Optional.ofNullable(hook.afterError(context, response, error)); if (!response.isPresent()) { throw new IllegalStateException( "afterError must either throw an exception or return a non-null response"); - } + } } catch (FailEarlyException e) { Throwable cause = e.getCause(); if (cause instanceof Exception) { @@ -161,8 +176,9 @@ public HttpResponse afterError( } else { // must be an Error throw (Error) cause; - } + } } catch (Exception e) { + logger.debug("Hook threw exception: {}", e.getClass().getSimpleName()); error = Optional.of(e); response = Optional.empty(); } @@ -177,6 +193,9 @@ public HttpResponse afterError( @Override public SdkInitData sdkInit(SdkInitData data) { Utils.checkNotNull(data, "data"); + if (logger.isDebugEnabled() && !SdkInitHooks.isEmpty()) { + logger.debug("Executing {} sdkInit hook(s)", SdkInitHooks.size()); + } for (SdkInit hook : SdkInitHooks) { data = hook.sdkInit(data); if (data == null) { diff --git a/src/main/java/com/thetradedesk/workflows/utils/JSON.java b/src/main/java/com/thetradedesk/workflows/utils/JSON.java index 2529903..c4b0d92 100644 --- a/src/main/java/com/thetradedesk/workflows/utils/JSON.java +++ b/src/main/java/com/thetradedesk/workflows/utils/JSON.java @@ -3,6 +3,8 @@ */ package com.thetradedesk.workflows.utils; +import com.fasterxml.jackson.annotation.JsonAutoDetect; +import com.fasterxml.jackson.annotation.PropertyAccessor; import org.openapitools.jackson.nullable.JsonNullableModule; import com.fasterxml.jackson.databind.DeserializationFeature; @@ -20,8 +22,8 @@ public class JSON { .configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false) .configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false) .disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS) - .enable(DeserializationFeature.FAIL_ON_NULL_FOR_PRIMITIVES); - + .enable(DeserializationFeature.FAIL_ON_NULL_FOR_PRIMITIVES) + .setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.NONE); public static ObjectMapper getMapper() { return MAPPER; } diff --git a/src/main/java/com/thetradedesk/workflows/utils/OneOfDeserializer.java b/src/main/java/com/thetradedesk/workflows/utils/OneOfDeserializer.java index be0acc7..246534a 100644 --- a/src/main/java/com/thetradedesk/workflows/utils/OneOfDeserializer.java +++ b/src/main/java/com/thetradedesk/workflows/utils/OneOfDeserializer.java @@ -17,12 +17,13 @@ import java.util.Comparator; import java.util.List; import java.util.Map; -import java.util.Objects; import java.util.Set; import java.util.stream.Collectors; import com.thetradedesk.workflows.utils.Utils.TypeReferenceWithShape; +import org.openapitools.jackson.nullable.JsonNullable; + import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.core.JsonProcessingException; @@ -122,6 +123,9 @@ private static final class Match implements Comparable> { final TypeReferenceWithShape typeReference; final T value; private final TreeNode tree; + private int matched = 0; // Count of matched fields (includes inexact) + private int inexact = 0; // Count of fields with unknown/unrecognized enum values + private int unmatched = 0; // Count of struct fields not found in raw JSON Match(TypeReferenceWithShape typeReference, T value, TreeNode tree) { this.typeReference = typeReference; @@ -129,68 +133,198 @@ private static final class Match implements Comparable> { this.tree = tree; } - private int getMappedFields() { + /** + * Populates the matched, inexact, and unmatched field counts by recursively + * analyzing the deserialized value against the JSON structure. + */ + private void countFields() { try { Object unwrapped = unwrapValue(value); JsonNode jsonNode = tree instanceof JsonNode ? (JsonNode) tree : null; - return (jsonNode != null) ? countMappedFields(unwrapped, jsonNode) : 0; + if (jsonNode != null) { + countFieldsRecursive(unwrapped, jsonNode); + } } catch (Exception e) { - return 0; + // Keep counts at 0 on error } } - private int getMappedEnumFields() { + /** + * Recursively counts matched, inexact, and unmatched fields by walking the object + * graph based on JSON structure. + * + * @param obj the deserialized object to traverse + * @param jsonNode the corresponding JSON node + */ + private void countFieldsRecursive(Object obj, JsonNode jsonNode) { + // Unwrap union wrappers to get the active variant value + obj = unwrapValue(obj); + + // Handle null JSON value + if (jsonNode != null && jsonNode.isNull()) { + // Null JSON value matches null object or JsonNullable containing null + matched++; + return; + } + + if (obj == null || jsonNode == null) { + return; + } + + // Unwrap JsonNullable fields + if (isJsonNullable(obj)) { + Object unwrapped = unwrapJsonNullable(obj); + if (unwrapped != null) { + countFieldsRecursive(unwrapped, jsonNode); + return; + } + // JsonNullable is present but contains null - already handled above + return; + } + + // Handle primitives and strings + if (isPrimitiveOrString(obj)) { + matched++; + return; + } + + // Handle standard Java enums and enum wrappers + if (obj.getClass().isEnum() || Reflections.isEnumWrapper(obj)) { + matched++; + try { + // Check if it's an unknown enum value (only for enum wrappers) + if (Reflections.isEnumWrapper(obj)) { + java.lang.reflect.Method isKnownMethod = obj.getClass().getMethod("isKnown"); + Boolean isKnown = (Boolean) isKnownMethod.invoke(obj); + if (isKnown != null && !isKnown) { + inexact++; + return; + } + } + } catch (Exception e) { + // If value() method doesn't exist or fails, treat as exact + } + return; + } + try { - Object unwrapped = unwrapValue(value); - JsonNode jsonNode = tree instanceof JsonNode ? (JsonNode) tree : null; - return (jsonNode != null) ? countMappedEnumFields(unwrapped, jsonNode) : 0; + // Recurse through collections + if (obj instanceof Collection && jsonNode.isArray()) { + int index = 0; + for (Object element : (Collection) obj) { + if (element != null && index < jsonNode.size()) { + JsonNode elementNode = jsonNode.get(index); + countFieldsRecursive(element, elementNode); + } + index++; + } + return; + } + + // Recurse through maps + if (obj instanceof Map && jsonNode.isObject()) { + for (Map.Entry entry : ((Map) obj).entrySet()) { + if (entry.getKey() != null && entry.getValue() != null) { + String key = entry.getKey().toString(); + if (jsonNode.has(key)) { + JsonNode valueNode = jsonNode.get(key); + countFieldsRecursive(entry.getValue(), valueNode); + } + } + } + return; + } + + // Recurse through object fields + if (jsonNode.isObject() && !(obj instanceof Map)) { + for (Field field : obj.getClass().getDeclaredFields()) { + if (java.lang.reflect.Modifier.isStatic(field.getModifiers())) continue; + + field.setAccessible(true); + Object fieldValue = field.get(obj); + String fieldName = getJsonFieldName(field); + + if (fieldName == null) { + continue; // Skip fields marked with @JsonIgnore or json:"-" + } + + if (!jsonNode.has(fieldName)) { + // Field exists in struct but not in JSON + unmatched++; + continue; + } + + // Recurse into field regardless of whether it's null + // (null fields with null JSON values should be counted as matched) + JsonNode fieldNode = jsonNode.get(fieldName); + countFieldsRecursive(fieldValue, fieldNode); + } + } } catch (Exception e) { - return 0; + // Ignore errors during recursion } } + /** + * Gets the JSON field name for a Java field, respecting @JsonProperty annotations. + * Returns null if the field should be skipped (e.g., @JsonIgnore or no Jackson annotations). + */ + private String getJsonFieldName(Field field) { + // Check for @JsonIgnore + if (field.isAnnotationPresent(com.fasterxml.jackson.annotation.JsonIgnore.class)) { + return null; + } + + // Check for @JsonProperty - only include fields with Jackson annotations + if (field.isAnnotationPresent(com.fasterxml.jackson.annotation.JsonProperty.class)) { + com.fasterxml.jackson.annotation.JsonProperty prop = + field.getAnnotation(com.fasterxml.jackson.annotation.JsonProperty.class); + String value = prop.value(); + if (value != null && !value.isEmpty()) { + return value; + } + // If @JsonProperty is present but value is empty, use field name + return field.getName(); + } + + // Skip fields without Jackson annotations + return null; + } + /** * Compares candidates using a multi-level tie-breaking strategy: *
-         * 1. Number of mapped fields (higher is better)
-         * 2. Number of mapped enum fields (higher is better)
-         * 3. Size of serialized JSON (larger is better)
+         * 1. Matched count (higher is better)
+         * 2. Inexact count (lower is better)
+         * 3. Unmatched count (lower is better - fewer zero defaulted values)
          * 
- * This natural ordering is used to select the best candidate when multiple - * oneOf schemas successfully deserialize the input. */ @Override public int compareTo(Match other) { - // Primary: number of mapped fields (higher is better) - int fieldComparison = Integer.compare(this.getMappedFields(), other.getMappedFields()); - if (fieldComparison != 0) { - return fieldComparison; + // Primary: number of matched fields (higher is better) + int matchedComparison = Integer.compare(this.matched, other.matched); + if (matchedComparison != 0) { + return matchedComparison; } - // Secondary: number of mapped enum fields (higher is better) - int enumFieldComparison = Integer.compare(this.getMappedEnumFields(), other.getMappedEnumFields()); - if (enumFieldComparison != 0) { - return enumFieldComparison; + // Secondary: number of inexact fields (lower is better, prefer exactness) + int inexactComparison = Integer.compare(other.inexact, this.inexact); + if (inexactComparison != 0) { + return inexactComparison; } - // Tertiary: JSON size (larger is better) - try { - String thisJson = JSON.getMapper().writeValueAsString(unwrapValue(this.value)); - String otherJson = JSON.getMapper().writeValueAsString(unwrapValue(other.value)); - return Integer.compare(thisJson.length(), otherJson.length()); - } catch (Exception e) { - return 0; // Equal if serialization fails - } + // Tertiary: unmatched count (lower is better) + return Integer.compare(other.unmatched, this.unmatched); } } /** - * Unwraps the actual deserialized object from a union wrapper. - * Union wrappers have a TypedObject field annotated with @JsonValue. - * This method extracts that field and unwraps the TypedObject to get the actual value. + * Unwraps union wrappers to extract the active variant value. + * Union wrappers contain a TypedObject field annotated with @JsonValue. + * This ensures field counting only considers the active variant, not all union members. * * @param wrapper the union wrapper instance - * @return the actual deserialized object + * @return the actual deserialized value, or wrapper unchanged if not a union */ private static Object unwrapValue(Object wrapper) { if (wrapper == null) { @@ -218,114 +352,23 @@ private static Object unwrapValue(Object wrapper) { return wrapper; } - @FunctionalInterface - private interface ObjectMatcher { - boolean test(Object obj, JsonNode jsonNode); - } - /** - * Generic recursive counter that walks the object graph based on JSON structure. - * Only counts elements that exist in both the object AND the JSON. - * - * @param obj the deserialized object to traverse - * @param jsonNode the corresponding JSON node - * @param matcher predicate that determines what to count (returns true if matched) - * @return count of matching elements that were present in the JSON + * Checks if an object is a JsonNullable wrapper. */ - private static int countMatching(Object obj, JsonNode jsonNode, ObjectMatcher matcher) { - if (obj == null || jsonNode == null) { - return 0; - } - - // Baseline: test if this object matches our criteria - if (matcher.test(obj, jsonNode)) { - return 1; - } - - // Early exit for primitives that don't match - if (isPrimitiveOrString(obj)) { - return 0; - } - - try { - // Recurse through collections - if (obj instanceof Collection && jsonNode.isArray()) { - int count = 0; - int index = 0; - for (Object element : (Collection) obj) { - if (element != null && index < jsonNode.size()) { - JsonNode elementNode = jsonNode.get(index); - count += countMatching(element, elementNode, matcher); - } - index++; - } - return count; - } - - // Recurse through maps - if (obj instanceof Map && jsonNode.isObject()) { - int count = 0; - for (Map.Entry entry : ((Map) obj).entrySet()) { - if (entry.getKey() != null && entry.getValue() != null) { - String key = entry.getKey().toString(); - if (jsonNode.has(key)) { - JsonNode valueNode = jsonNode.get(key); - count += countMatching(entry.getValue(), valueNode, matcher); - } - } - } - return count; - } - - // Recurse through object fields - only count fields present in JSON - if (jsonNode.isObject() && !(obj instanceof Map)) { - int count = 0; - for (Field field : obj.getClass().getDeclaredFields()) { - if (java.lang.reflect.Modifier.isStatic(field.getModifiers())) continue; - - field.setAccessible(true); - Object fieldValue = field.get(obj); - String fieldName = field.getName(); - - if (fieldValue != null && jsonNode.has(fieldName)) { - JsonNode fieldNode = jsonNode.get(fieldName); - count += countMatching(fieldValue, fieldNode, matcher); - } - } - return count; - } - - return 0; - } catch (Exception e) { - return 0; - } - } - - /** - * Counts all primitive/string fields that were mapped from JSON. - */ - private static int countMappedFields(Object obj, JsonNode jsonNode) { - return countMatching(obj, jsonNode, (o, ignored) -> isPrimitiveOrString(o)); + private static boolean isJsonNullable(Object obj) { + return obj instanceof JsonNullable; } /** - * Counts all enum fields that were mapped from JSON. - * Verifies that the JSON value matches the enum's value. - * TODO: Count "Open Enums" as well (which are wrapped in a class) + * Unwraps a JsonNullable object to get its contained value. + * Returns null if the JsonNullable is not present or contains null. */ - private static int countMappedEnumFields(Object obj, JsonNode jsonNode) { - return countMatching(obj, jsonNode, (o, node) -> { - if (!o.getClass().isEnum()) { - return false; - } - // Verify that the JSON value matches the enum's string representation - if (node != null && node.isTextual()) { - String enumValue = ((Enum) o).name(); - String jsonValue = node.asText(); - return enumValue.equals(jsonValue); - } - return false; - }); + private static Object unwrapJsonNullable(Object obj) { + if (!(obj instanceof JsonNullable)) { + return null; + } + JsonNullable nullable = (JsonNullable) obj; + return nullable.isPresent() ? nullable.get() : null; } private static boolean isPrimitiveOrString(Object obj) { @@ -342,7 +385,7 @@ private static boolean isPrimitiveOrString(Object obj) { clazz == OffsetDateTime.class || clazz == LocalDate.class; } - + private static final Set NUMERIC_CLASSES = Set.of( Integer.class.getCanonicalName(), Long.class.getCanonicalName(), @@ -391,7 +434,7 @@ public static boolean matchPossible(JavaType type, String json) { } private static boolean isDoubleQuoted(String s) { - return s.length() >=2 && s.startsWith("\"") && s.endsWith("\""); + return s.length() >= 2 && s.startsWith("\"") && s.endsWith("\""); } /** * Applies candidate preference rules to resolve multiple matches. @@ -421,6 +464,11 @@ public static List> applyMatchPreferences(List> matches, S // Apply smart scoring using natural ordering if still multiple candidates if (matches.size() > 1) { + // Count fields for each match before sorting + for (Match match : matches) { + match.countFields(); + } + return matches.stream() .sorted(Comparator.reverseOrder()) // Best candidates first (highest scores) .collect(Collectors.toList()); diff --git a/src/main/java/com/thetradedesk/workflows/utils/QueryParameters.java b/src/main/java/com/thetradedesk/workflows/utils/QueryParameters.java index 956102e..4047c27 100644 --- a/src/main/java/com/thetradedesk/workflows/utils/QueryParameters.java +++ b/src/main/java/com/thetradedesk/workflows/utils/QueryParameters.java @@ -61,15 +61,15 @@ public static List parseQueryParams(Class } } - // include all global params in pathParams if not already present + // include all global params in query params if not already present if (globals != null) { Set allParamNames = allParams.stream() .map(QueryParameter::name) .collect(Collectors.toSet()); globals.queryParamsAsStream() .filter(entry -> !allParamNames.contains(entry.getKey())) - .forEach(entry -> - allParams.add(QueryParameter.of(entry.getKey(), + .forEach(entry -> + allParams.add(QueryParameter.of(entry.getKey(), entry.getValue(), false))); } @@ -143,9 +143,9 @@ private static List parseDelimitedParams(QueryParamsMetadata que params.add(QueryParameter.of(queryParamsMetadata.name, Utils.valToString(value), queryParamsMetadata.allowReserved)); break; } - Optional openEnumValue = Reflections.getOpenEnumValue(value.getClass(), value); - if (openEnumValue.isPresent()) { - params.add(QueryParameter.of(queryParamsMetadata.name, Utils.valToString(openEnumValue.get()), queryParamsMetadata.allowReserved)); + Optional unwrappedEnumValue = Reflections.getUnwrappedEnumValue(value.getClass(), value); + if (unwrappedEnumValue.isPresent()) { + params.add(QueryParameter.of(queryParamsMetadata.name, Utils.valToString(unwrappedEnumValue.get()), queryParamsMetadata.allowReserved)); break; } Field[] fields = value.getClass().getDeclaredFields(); diff --git a/src/main/java/com/thetradedesk/workflows/utils/Reflections.java b/src/main/java/com/thetradedesk/workflows/utils/Reflections.java index f49a695..8cfde06 100644 --- a/src/main/java/com/thetradedesk/workflows/utils/Reflections.java +++ b/src/main/java/com/thetradedesk/workflows/utils/Reflections.java @@ -16,13 +16,13 @@ public class Reflections { /** - * Extracts the underlying value from an open enum instance if the class follows the open enum pattern. + * Extracts the underlying value from an enum wrapper instance if the class follows the enum wrapper pattern. * - *

An open enum is a class that emulates enum behavior but can handle unknown values + *

An enum wrapper is a class that emulates enum behavior but can handle unknown values * without runtime errors. This pattern is commonly used for API responses where new * enum values might be added over time. * - *

The method validates that the class follows the open enum pattern by checking for: + *

The method validates that the class follows the enum wrapper pattern by checking for: *

    *
  • A static factory method {@code of(String)} or {@code of(Integer)} that returns the class type
  • *
  • An instance method {@code value()} returning String or Integer
  • @@ -32,12 +32,12 @@ public class Reflections { *

    If all validation passes, the method invokes the {@code value()} method on the provided instance * and returns the result. * - * @param clazz the class to examine for open enum pattern - * @param instance the instance of the open enum class from which to extract the value + * @param clazz the class to examine for enum wrapper pattern + * @param instance the instance of the enum wrapper class from which to extract the value * @return {@code Optional} containing the extracted value (String or Integer) if the class - * follows the open enum pattern and the value extraction succeeds, {@code Optional.empty()} otherwise + * follows the enum wrapper pattern and the value extraction succeeds, {@code Optional.empty()} otherwise */ - public static Optional getOpenEnumValue(Class clazz, Object instance) { + public static Optional getUnwrappedEnumValue(Class clazz, Object instance) { Objects.requireNonNull(clazz, "Class cannot be null"); try { @@ -66,6 +66,59 @@ public static Optional getOpenEnumValue(Class clazz, Object instance) { } } + /** + * Checks if the given class is an enum wrapper. + * + *

    An enum wrapper is a class that emulates enum behavior but can handle unknown values + * without runtime errors. This pattern is commonly used for API responses where new + * enum values might be added over time. + * + *

    The method validates that the class follows the enum wrapper pattern by checking for: + *

      + *
    • A static factory method {@code of(String)} or {@code of(Integer)} that returns the class type
    • + *
    • An instance method {@code value()} returning String or Integer
    • + *
    • At least one public static final field of the same class type (predefined constants)
    • + *
    + * + * @param clazz the class to examine for enum wrapper pattern + * @return true if the class is an enum wrapper, false otherwise + */ + public static boolean isEnumWrapper(Class clazz) { + if (clazz == null) { + return false; + } + + try { + // Check for factory method of(String) or of(Integer) + boolean hasFactoryMethod = Arrays.stream(clazz.getDeclaredMethods()) + .anyMatch(method -> isValidFactoryMethod(method, clazz)); + if (!hasFactoryMethod) { + return false; + } + + // Check for at least one static constant of same type + if (!hasStaticConstants(clazz)) { + return false; + } + + // Check for value() method returning String or Integer + Method valueMethod = clazz.getMethod("value"); + return isValidValueMethod(valueMethod); + } catch (Exception e) { + return false; + } + } + + /** + * Checks if the given object is an instance of an enum wrapper class. + * + * @param obj the object to check + * @return true if the object is an instance of an enum wrapper class, false otherwise + */ + public static boolean isEnumWrapper(Object obj) { + return obj != null && isEnumWrapper(obj.getClass()); + } + private static boolean isNumericType(Class type) { // Primitive numeric types if (type.isPrimitive()) { @@ -84,7 +137,7 @@ private static boolean isNumericType(Class type) { } /** - * Checks if the given method is a valid factory method for an open enum. + * Checks if the given method is a valid factory method for an enum wrapper. * * @param method the method to check * @param clazz the class that should be returned by the factory method @@ -108,7 +161,7 @@ private static boolean isValidFactoryMethod(Method method, Class clazz) { } /** - * Checks if the given method is a valid value() method for an open enum. + * Checks if the given method is a valid value() method for an enum wrapper. * * @param method the value() method to validate * @return true if valid value method diff --git a/src/main/java/com/thetradedesk/workflows/utils/RequestBody.java b/src/main/java/com/thetradedesk/workflows/utils/RequestBody.java index ed2e7d2..da5b097 100644 --- a/src/main/java/com/thetradedesk/workflows/utils/RequestBody.java +++ b/src/main/java/com/thetradedesk/workflows/utils/RequestBody.java @@ -76,10 +76,10 @@ public static SerializedBody serialize(Object request, String requestField, Stri private static SerializedBody serializeContentType(String fieldName, String contentType, Object value) throws IllegalArgumentException, IllegalAccessException, UnsupportedOperationException, IOException { - Pattern jsonPattern = Pattern.compile("(application|text)\\/.*?\\+*json.*"); - Pattern multipartPattern = Pattern.compile("multipart\\/.*"); - Pattern formPattern = Pattern.compile("application\\/x-www-form-urlencoded.*"); - Pattern textPattern = Pattern.compile("text\\/plain"); + Pattern jsonPattern = Pattern.compile("^(application|text)\\/([^+]+\\+)*json.*"); + Pattern multipartPattern = Pattern.compile("^multipart\\/.*"); + Pattern formPattern = Pattern.compile("^application\\/x-www-form-urlencoded.*"); + Pattern textPattern = Pattern.compile("^text\\/plain"); final SerializedBody body; @@ -254,6 +254,13 @@ public static SerializedBody serializeFormData(Object value) } else { switch (Types.getType(val.getClass())) { case OBJECT: { + // Check if it's an enum wrapper first + Optional unwrappedEnumValue = Reflections.getUnwrappedEnumValue(val.getClass(), val); + if (unwrappedEnumValue.isPresent()) { + params.add(new NameValue(metadata.name, Utils.valToString(unwrappedEnumValue.get()))); + break; + } + if (!Utils.allowIntrospection(val.getClass())) { params.add(new NameValue(metadata.name, String.valueOf(val))); } else { diff --git a/src/main/java/com/thetradedesk/workflows/utils/Retries.java b/src/main/java/com/thetradedesk/workflows/utils/Retries.java index bb9680f..6b3692d 100644 --- a/src/main/java/com/thetradedesk/workflows/utils/Retries.java +++ b/src/main/java/com/thetradedesk/workflows/utils/Retries.java @@ -13,6 +13,8 @@ public class Retries { + private static final SpeakeasyLogger logger = SpeakeasyLogger.getLogger(Retries.class); + private final Callable> action; private final RetryConfig retryConfig; private final List statusCodes; @@ -102,12 +104,17 @@ private HttpResponse retryWithBackoff(boolean retryConnectError, bo while(true) { try { + if (numAttempts > 0) { + logger.debug("Retry attempt {} after backoff", numAttempts); + } return getResponse(retryConnectError, retryReadTimeoutError); } catch(NonRetryableException e) { + logger.debug("Non-retryable exception encountered: {}", e.exception().getClass().getSimpleName()); throw Exceptions.coerceException(e.exception()); } catch(IOException | RetryableException e) { long nowMs = System.currentTimeMillis(); if (nowMs - startMs > backoff.maxElapsedTimeMs()) { + logger.debug("Retry exhausted after {}ms, {} attempts", nowMs - startMs, numAttempts + 1); if ( e instanceof RetryableException ) { return ((RetryableException)e).response(); } @@ -124,6 +131,12 @@ private HttpResponse retryWithBackoff(boolean retryConnectError, bo } long sleepMs = (long) intervalMs; + if (logger.isTraceEnabled()) { + String reason = e instanceof RetryableException + ? "status " + ((RetryableException)e).response().statusCode() + : e.getClass().getSimpleName(); + logger.trace("Retrying due to {} - waiting {}ms before attempt {}", reason, sleepMs, numAttempts + 1); + } TimeUnit.MILLISECONDS.sleep(sleepMs); numAttempts += 1; } diff --git a/src/main/java/com/thetradedesk/workflows/utils/SpeakeasyHTTPClient.java b/src/main/java/com/thetradedesk/workflows/utils/SpeakeasyHTTPClient.java index 5ada324..5fc2de0 100644 --- a/src/main/java/com/thetradedesk/workflows/utils/SpeakeasyHTTPClient.java +++ b/src/main/java/com/thetradedesk/workflows/utils/SpeakeasyHTTPClient.java @@ -39,15 +39,20 @@ public class SpeakeasyHTTPClient implements HTTPClient { private final HttpClient client = HttpClient.newHttpClient(); /** - * Experimental, may be changed anytime. Sets debug logging on or off for - * requests and responses including bodies for JSON content. WARNING: this - * setting may expose sensitive information in logs (like Authorization - * headers), and should only be enabled temporarily for local debugging - * purposes. By default, Authorization headers are redacted in the logs - * ( printed with a value of {@code [*******]}). Header suppression is controlled - * with the {@link #setRedactedHeaders(Collection)} method. + * Sets debug logging on or off for requests and responses including bodies for JSON content. + *

    + * WARNING: This setting may expose sensitive information in logs (such as + * {@code Authorization} headers) and should only be enabled temporarily for local debugging + * purposes. + *

    + * By default, {@code Authorization} headers are redacted in the logs (printed with a value + * of {@code [*******]}). Header suppression can be controlled with the + * {@link #setRedactedHeaders(Collection)} method. * - * @param enabled true to enable debug logging, false to disable it + * @param enabled {@code true} to enable debug logging, {@code false} to disable it + * @see #setRedactedHeaders(Collection) + * @see #addRedactedHeader(String) + * @see #getDebugLoggingEnabled() */ public static void setDebugLogging(boolean enabled) { debugEnabled = enabled; @@ -68,14 +73,14 @@ public void enableDebugLogging(boolean enabled) { } /** - * Experimental, may be changed anytime. When debug logging is enabled this - * method controls the suppression of header values in the logs. By default, - * Authorization headers are redacted in the logs (printed with a value - * of {@code [*******]}). Header suppression is controlled with the - * {@link #setRedactedHeaders(Collection)} method. - * - * @param headerNames the names (case-insensitive) of the headers whose values - * will be redacted in the logs + * When debug logging is enabled, this method controls the suppression of header values in the logs. + *

    + * By default, {@code Authorization} headers are redacted in the logs (printed with a value + * of {@code [*******]}). + * + * @param headerNames the names (case-insensitive) of the headers whose values + * will be redacted in the logs + * @see #setDebugLogging(boolean) */ public static void setRedactedHeaders(Collection headerNames) { redactedHeaders = headerNames.stream() // @@ -83,6 +88,24 @@ public static void setRedactedHeaders(Collection headerNames) { .collect(Collectors.toSet()); } + /** + * When debug logging is enabled, this method adds a single header to the list of headers + * whose values will be redacted in the logs. + *

    + * By default, {@code Authorization} headers are redacted in the logs (printed with a value + * of {@code [*******]}). + * + * @param headerName the name (case-insensitive) of the header whose value + * will be redacted in the logs + * @see #setDebugLogging(boolean) + * @see #setRedactedHeaders(Collection) + */ + public static void addRedactedHeader(String headerName) { + Set updated = new java.util.HashSet<>(redactedHeaders); + updated.add(headerName.toUpperCase(Locale.ENGLISH)); + redactedHeaders = Set.copyOf(updated); + } + public static void setLogger(Consumer logger) { SpeakeasyHTTPClient.logger = logger; } @@ -91,11 +114,11 @@ public static void setLogger(Consumer logger) { public HttpResponse send(HttpRequest request) throws IOException, InterruptedException, URISyntaxException { if (isDebugLoggingEnabled()) { - request = logRequest(request); + request = logRequest(request, true); } var response = client.send(request, HttpResponse.BodyHandlers.ofInputStream()); if (isDebugLoggingEnabled()) { - response = logResponse(response); + response = logResponse(response, true); } return response; } @@ -103,7 +126,7 @@ public HttpResponse send(HttpRequest request) @Override public CompletableFuture> sendAsync(HttpRequest request) { if (isDebugLoggingEnabled()) { - request = logRequest(request); + request = logRequest(request, true); } return client.sendAsync(request, HttpResponse.BodyHandlers.ofPublisher()) .thenApply(response -> @@ -111,11 +134,11 @@ public CompletableFuture> sendAsync(HttpRequest request) { new ResponseWithBody<>(response, Blob::from)); } - private HttpRequest logRequest(HttpRequest request) { + private HttpRequest logRequest(HttpRequest request, boolean logBody) { log("Sending request: " + request); log("Request headers: " + redactHeaders(request.headers())); - // only log the body if it is present and the content type is JSON - if (request.bodyPublisher().isPresent() && request.headers() // + // only log the body if logBody is true and the body is present and the content type is JSON + if (logBody && request.bodyPublisher().isPresent() && request.headers() // .firstValue("Content-Type") // .filter(x -> x.equals("application/json") || x.equals("text/plain")).isPresent()) { // we read the body and ensure that the BodyPublisher is rebuilt to pass to the @@ -133,14 +156,14 @@ private HttpRequest logRequest(HttpRequest request) { return request; } - private static HttpResponse logResponse(HttpResponse response) throws IOException { + private static HttpResponse logResponse(HttpResponse response, boolean logBody) throws IOException { // make the response re-readable by loading the response body into a byte array // and allowing the InputStream to be read many times response = Utils.cache(response); log("Received response: " + response); log("Response headers: " + redactHeaders(response.headers())); - // only log the response body if it is present and the content type is JSON or plain text - if (response.headers() // + // only log the response body if logBody is true and the content type is JSON or plain text + if (logBody && response.headers() // .firstValue("Content-Type") // .filter(x -> x.equals("application/json") || x.equals("text/plain")) // .isPresent()) { diff --git a/src/main/java/com/thetradedesk/workflows/utils/SpeakeasyLogger.java b/src/main/java/com/thetradedesk/workflows/utils/SpeakeasyLogger.java new file mode 100644 index 0000000..824b9a4 --- /dev/null +++ b/src/main/java/com/thetradedesk/workflows/utils/SpeakeasyLogger.java @@ -0,0 +1,54 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ +package com.thetradedesk.workflows.utils; + +/** + * Wrapper for SLF4j logging that provides consistent logging patterns across the SDK. + * When SLF4j is disabled, all logging operations are no-ops. + */ +public class SpeakeasyLogger { + // SLF4j logging is disabled - all methods are no-ops + + private SpeakeasyLogger(Class clazz) { + // No-op constructor + } + + public static SpeakeasyLogger getLogger(Class clazz) { + return new SpeakeasyLogger(clazz); + } + + public boolean isDebugEnabled() { + return false; + } + + public boolean isTraceEnabled() { + return false; + } + + public void debug(String message) {} + public void debug(String format, Object arg) {} + public void debug(String format, Object arg1, Object arg2) {} + public void debug(String format, Object... arguments) {} + + public void trace(String message) {} + public void trace(String format, Object arg) {} + public void trace(String format, Object arg1, Object arg2) {} + public void trace(String format, Object... arguments) {} + + public void info(String message) {} + public void info(String format, Object arg) {} + public void info(String format, Object arg1, Object arg2) {} + public void info(String format, Object... arguments) {} + + public void warn(String message) {} + public void warn(String format, Object arg) {} + public void warn(String format, Object arg1, Object arg2) {} + public void warn(String format, Object... arguments) {} + + public void error(String message) {} + public void error(String format, Object arg) {} + public void error(String format, Object arg1, Object arg2) {} + public void error(String format, Object... arguments) {} + public void error(String message, Throwable t) {} +} \ No newline at end of file diff --git a/src/main/java/com/thetradedesk/workflows/utils/Utils.java b/src/main/java/com/thetradedesk/workflows/utils/Utils.java index b0ea377..25250ec 100644 --- a/src/main/java/com/thetradedesk/workflows/utils/Utils.java +++ b/src/main/java/com/thetradedesk/workflows/utils/Utils.java @@ -180,10 +180,10 @@ public static String generateURL(Class type, String baseURL, String path, pathParams.put(pathParamsMetadata.name, pathEncode(valToString(value), pathParamsMetadata.allowReserved)); break; } - Optional openEnumValue = Reflections.getOpenEnumValue(value.getClass(), value); - if (openEnumValue.isPresent()) { + Optional unwrappedEnumValue = Reflections.getUnwrappedEnumValue(value.getClass(), value); + if (unwrappedEnumValue.isPresent()) { pathParams.put(pathParamsMetadata.name, pathEncode( - valToString(openEnumValue.get()), + valToString(unwrappedEnumValue.get()), pathParamsMetadata.allowReserved)); break; } @@ -368,9 +368,9 @@ public static Map> getHeadersFromMetadata(Object headers, G if (!allowIntrospection(value.getClass())) { break; } - Optional openEnumValue = Reflections.getOpenEnumValue(value.getClass(), value); - if (openEnumValue.isPresent()) { - upsertHeader(result, headerMetadata.name, openEnumValue.get()); + Optional unwrappedEnumValue = Reflections.getUnwrappedEnumValue(value.getClass(), value); + if (unwrappedEnumValue.isPresent()) { + upsertHeader(result, headerMetadata.name, unwrappedEnumValue.get()); break; } @@ -495,6 +495,14 @@ public static String valToString(Object value) { } catch (IllegalArgumentException | IllegalAccessException | NoSuchFieldException | SecurityException e) { return "ERROR_UNKNOWN_VALUE"; } + } else if (Reflections.isEnumWrapper(value)) { + // Extract the underlying value from enum wrapper + Optional unwrappedEnumValue = Reflections.getUnwrappedEnumValue(value.getClass(), value); + if (unwrappedEnumValue.isPresent()) { + return String.valueOf(unwrappedEnumValue.get()); + } else { + return "ERROR_UNKNOWN_VALUE"; + } } else { return String.valueOf(resolveOptionals(value)); } @@ -1135,13 +1143,22 @@ private static String toHex(byte[] bytes, int length) { @SuppressWarnings("unchecked") public static String discriminatorToString(Object o) { - // expects o to be either an Optional, Enum (with a String value() method) - // or a String value + // expects o to be either an Optional, Enum (with a String value() method), + // an open enum wrapper, or a String value Class cls = o.getClass(); if (cls.equals(Optional.class)) { Optional a = (Optional) o; return a.map(x -> discriminatorToString(x)).orElse(null); - } else if (cls.isEnum()) { + } + + // Check if it's an open enum wrapper + if (Reflections.isEnumWrapper(o)) { + Optional value = Reflections.getUnwrappedEnumValue(cls, o); + return value.map(String::valueOf).orElse(null); + } + + // Handle regular enums + if (cls.isEnum()) { try { Method m = cls.getMethod("value"); return (String) m.invoke(o); @@ -1149,9 +1166,10 @@ public static String discriminatorToString(Object o) { | InvocationTargetException e) { throw new RuntimeException(e); } - } else { - return (String) o; } + + // Fall back to String cast + return (String) o; } public static void recordTest(String id) { diff --git a/src/main/java/com/thetradedesk/workflows/utils/reactive/EventStream.java b/src/main/java/com/thetradedesk/workflows/utils/reactive/EventStream.java index 6ea5b23..77a2ceb 100644 --- a/src/main/java/com/thetradedesk/workflows/utils/reactive/EventStream.java +++ b/src/main/java/com/thetradedesk/workflows/utils/reactive/EventStream.java @@ -8,6 +8,7 @@ import com.thetradedesk.workflows.utils.AsyncResponse; import com.thetradedesk.workflows.utils.Blob; import com.thetradedesk.workflows.utils.EventStreamMessage; +import com.thetradedesk.workflows.utils.SpeakeasyLogger; import com.thetradedesk.workflows.utils.StreamingParser; import com.thetradedesk.workflows.utils.Utils; @@ -29,6 +30,8 @@ * @param the type that events are deserialized into */ public class EventStream implements Publisher { + + private static final SpeakeasyLogger logger = SpeakeasyLogger.getLogger(EventStream.class); /** * Protocol interface that defines how to parse and process different event stream formats @@ -70,6 +73,7 @@ private EventStream(CompletableFuture asyncResponseFuture, this.typeReference = typeReference; this.objectMapper = objectMapper; this.protocol = protocol; + logger.debug("Reactive EventStream initialized for type: {}", typeReference.getType().getTypeName()); } /** @@ -268,9 +272,13 @@ private boolean processItem(Object parsed) { ItemT item = typedProtocol.processItem(parsed, objectMapper, typeReference); if (item != null) { demand.decrementAndGet(); + if (logger.isTraceEnabled()) { + logger.trace("Reactive EventStream item emitted"); + } subscriber.onNext(item); } } catch (Exception e) { + logger.debug("Error processing reactive EventStream item: {}", e.getMessage()); signalError(e); return false; // Signal to stop processing on error } @@ -303,6 +311,7 @@ private void signalError(Throwable t) { private void signalComplete() { if (!cancelled && !completed) { completed = true; + logger.debug("Reactive EventStream completed"); subscriber.onComplete(); } }