diff --git a/src/adcp/types/__init__.py b/src/adcp/types/__init__.py index 05e30a572..ca22b447e 100644 --- a/src/adcp/types/__init__.py +++ b/src/adcp/types/__init__.py @@ -72,6 +72,24 @@ "RequestProposalsRequest", "RequestProposalsResponse", "UnsupportedRefinementDimensionDetails", + # Structured protocol error details + "AccessibilityViolationDetails", + "AccountMovedDetails", + "AccountSetupRequiredDetails", + "ActionNotAllowedDetails", + "ActionNotAllowedReason", + "AgentPermissionDeniedDetails", + "AudienceTooSmallDetails", + "BillingNotPermittedForAgentDetails", + "BillingNotSupportedDetails", + "BudgetTooLowDetails", + "ConflictDetails", + "CreativeRejectedDetails", + "PolicyViolationDetails", + "RateLimitedDetails", + "StaleResponseDetails", + "VendorErrorCodeRegistry", + "VersionUnsupportedDetails", # A2UI types "A2UiComponent", "A2UiSurface", @@ -1080,14 +1098,17 @@ def __dir__() -> list[str]: AcceptedLoss, AcceptProposalRequest, AcceptProposalResponse, + AccessibilityViolationDetails, Account, AccountAuthorization, AccountIdReference, + AccountMovedDetails, AccountReference, AccountReferenceById, AccountReferenceByNaturalKey, AccountResponse, AccountScope, + AccountSetupRequiredDetails, AccountWithAuthorization, AcquireRightsAcquiredResponse, AcquireRightsErrorResponse, @@ -1097,6 +1118,8 @@ def __dir__() -> list[str]: AcquireRightsResponse, AcquireRightsResponse1, Action, + ActionNotAllowedDetails, + ActionNotAllowedReason, ActivateSignalErrorResponse, ActivateSignalRequest, ActivateSignalResponse, @@ -1107,6 +1130,7 @@ def __dir__() -> list[str]: AgentConfig, AgentDeployment, AgentDestination, + AgentPermissionDeniedDetails, AggregatedTotals, AiTool, Artifact, @@ -1120,6 +1144,7 @@ def __dir__() -> list[str]: AssignedPackage, Assignments, AudienceSource, + AudienceTooSmallDetails, AudioContent, AudioFormatAsset, AudioFormatGroupAsset, @@ -1137,12 +1162,15 @@ def __dir__() -> list[str]: AvailableMetric, AvailablePackage, AvailableReportingFrequency, + BillingNotPermittedForAgentDetails, + BillingNotSupportedDetails, BothPreviewRender, BrandIdentity, BrandReference, BrandSource, BriefAsset, BriefFormatAsset, + BudgetTooLowDetails, BuildCreativeCreative, BusinessEntity, BusinessEntityResponse, @@ -1209,6 +1237,7 @@ def __dir__() -> list[str]: ComplyTestControllerRequest, ComplyTestControllerResponse, ComplyTestControllerResponse1, + ConflictDetails, ConsentBasis, Contact, ContentIdType, @@ -1260,6 +1289,7 @@ def __dir__() -> list[str]: CreativeFilters, CreativeManifest, CreativePolicy, + CreativeRejectedDetails, CreativeStatus, CreativeVariant, CreditLimit, @@ -1571,6 +1601,7 @@ def __dir__() -> list[str]: PolicyHistory, PolicyRevision, PolicySummary, + PolicyViolationDetails, PostalArea, PreviewOutputFormat, PreviewRender, @@ -1631,6 +1662,7 @@ def __dir__() -> list[str]: PushNotificationConfig, QuartileData, QuerySummary, + RateLimitedDetails, ReachUnit, RealEstateUnit, Recovery, @@ -1712,6 +1744,7 @@ def __dir__() -> list[str]: SortApplied, SortDirection, Source, + StaleResponseDetails, Status, StatusSummary, SyncAccountsAccount, @@ -1837,6 +1870,7 @@ def __dir__() -> list[str]: VcpmFixedRatePricingOption, VcpmPricingOption, VehicleUnit, + VendorErrorCodeRegistry, VendorPricingOptionUnion, VenueBreakdownItem, VerifyBrandClaimPayload, @@ -1852,6 +1886,7 @@ def __dir__() -> list[str]: VerifyBrandClaimsResponseBulk, VerifyBrandClaimsSignedResponse, VerifyBrandClaimsSignedSuccessPayload, + VersionUnsupportedDetails, VideoContent, VideoFormatAsset, VideoFormatGroupAsset, diff --git a/src/adcp/types/_eager.py b/src/adcp/types/_eager.py index f2bb2c0bb..e96facdf3 100644 --- a/src/adcp/types/_eager.py +++ b/src/adcp/types/_eager.py @@ -48,17 +48,23 @@ AcceptedLoss, AcceptProposalRequest, AcceptProposalResponse, + AccessibilityViolationDetails, Account, AccountAuthorization, + AccountMovedDetails, AccountReference, AccountScope, + AccountSetupRequiredDetails, AccountWithAuthorization, AcquireRightsRequest, AcquireRightsResponse, + ActionNotAllowedDetails, + ActionNotAllowedReason, ActivateSignalRequest, ActivateSignalResponse, AdcpProtocol, AdvertiserIndustry, + AgentPermissionDeniedDetails, AggregatedTotals, AiTool, Artifact, @@ -67,13 +73,17 @@ AssignedPackage, Assignments, AudienceSource, + AudienceTooSmallDetails, Authentication, AuthenticationScheme, AuthorizationRequiredDetails, AuthorizedAgents, AvailableMetric, AvailablePackage, + BillingNotPermittedForAgentDetails, + BillingNotSupportedDetails, BrandReference, + BudgetTooLowDetails, BusinessEntity, BuyingMode, BuyProductsRequest, @@ -99,6 +109,7 @@ CompatibilityPurchaseCoordinatorInput, ComplyTestControllerRequest, ComplyTestControllerResponse, + ConflictDetails, Contact, ContentIdType, ContentStandards, @@ -126,6 +137,7 @@ CreativeApprovalStatus, CreativeAssignment, CreativePolicy, + CreativeRejectedDetails, CreativeStatus, CreditLimit, DaastTrackingEvent, @@ -260,6 +272,7 @@ PlacementPresentationDocument, PlacementPresentationReference, PlacementReference, + PolicyViolationDetails, PostalArea, PreviewOutputFormat, PreviewRender, @@ -289,6 +302,7 @@ PushNotificationConfig, QuartileData, QuerySummary, + RateLimitedDetails, ReachUnit, ReferenceRenderer, Refine, @@ -348,6 +362,7 @@ Sort, SortApplied, SortDirection, + StaleResponseDetails, StatusSummary, SyncAccountsRequest, SyncAccountsResponse, @@ -394,6 +409,7 @@ VastTrackingEvent, VastVersion, VcpmPricingOption, + VendorErrorCodeRegistry, VenueBreakdownItem, VerifyBrandClaimPayload, VerifyBrandClaimRequest, @@ -408,6 +424,7 @@ VerifyBrandClaimsResponseBulk, VerifyBrandClaimsSignedResponse, VerifyBrandClaimsSignedSuccessPayload, + VersionUnsupportedDetails, ViewThreshold, WcagLevel, WebhookChallenge, @@ -1014,6 +1031,24 @@ def __init__(self, *args: object, **kwargs: object) -> None: "RequestProposalsRequest", "RequestProposalsResponse", "UnsupportedRefinementDimensionDetails", + # Structured protocol error details + "AccessibilityViolationDetails", + "AccountMovedDetails", + "AccountSetupRequiredDetails", + "ActionNotAllowedDetails", + "ActionNotAllowedReason", + "AgentPermissionDeniedDetails", + "AudienceTooSmallDetails", + "BillingNotPermittedForAgentDetails", + "BillingNotSupportedDetails", + "BudgetTooLowDetails", + "ConflictDetails", + "CreativeRejectedDetails", + "PolicyViolationDetails", + "RateLimitedDetails", + "StaleResponseDetails", + "VendorErrorCodeRegistry", + "VersionUnsupportedDetails", "A2UiComponent", "A2UiSurface", "Account", diff --git a/tests/fixtures/public_api_snapshot.json b/tests/fixtures/public_api_snapshot.json index 80f995d46..ab2841562 100644 --- a/tests/fixtures/public_api_snapshot.json +++ b/tests/fixtures/public_api_snapshot.json @@ -618,14 +618,17 @@ "AcceptProposalRequest", "AcceptProposalResponse", "AcceptedLoss", + "AccessibilityViolationDetails", "Account", "AccountAuthorization", "AccountIdReference", + "AccountMovedDetails", "AccountReference", "AccountReferenceById", "AccountReferenceByNaturalKey", "AccountResponse", "AccountScope", + "AccountSetupRequiredDetails", "AccountWithAuthorization", "AcquireRightsAcquiredResponse", "AcquireRightsErrorResponse", @@ -635,6 +638,8 @@ "AcquireRightsResponse", "AcquireRightsResponse1", "Action", + "ActionNotAllowedDetails", + "ActionNotAllowedReason", "ActivateSignalErrorResponse", "ActivateSignalRequest", "ActivateSignalResponse", @@ -645,6 +650,7 @@ "AgentConfig", "AgentDeployment", "AgentDestination", + "AgentPermissionDeniedDetails", "AggregatedTotals", "AiTool", "Artifact", @@ -658,6 +664,7 @@ "AssignedPackage", "Assignments", "AudienceSource", + "AudienceTooSmallDetails", "AudioContent", "AudioFormatAsset", "AudioFormatGroupAsset", @@ -675,12 +682,15 @@ "AvailableMetric", "AvailablePackage", "AvailableReportingFrequency", + "BillingNotPermittedForAgentDetails", + "BillingNotSupportedDetails", "BothPreviewRender", "BrandIdentity", "BrandReference", "BrandSource", "BriefAsset", "BriefFormatAsset", + "BudgetTooLowDetails", "BuildCreativeCreative", "BusinessEntity", "BusinessEntityResponse", @@ -747,6 +757,7 @@ "ComplyTestControllerRequest", "ComplyTestControllerResponse", "ComplyTestControllerResponse1", + "ConflictDetails", "ConsentBasis", "Contact", "ContentIdType", @@ -798,6 +809,7 @@ "CreativeFilters", "CreativeManifest", "CreativePolicy", + "CreativeRejectedDetails", "CreativeStatus", "CreativeVariant", "CreditLimit", @@ -1109,6 +1121,7 @@ "PolicyHistory", "PolicyRevision", "PolicySummary", + "PolicyViolationDetails", "PostalArea", "PreviewOutputFormat", "PreviewRender", @@ -1169,6 +1182,7 @@ "PushNotificationConfig", "QuartileData", "QuerySummary", + "RateLimitedDetails", "ReachUnit", "RealEstateUnit", "Recovery", @@ -1250,6 +1264,7 @@ "SortApplied", "SortDirection", "Source", + "StaleResponseDetails", "Status", "StatusSummary", "SyncAccountsAccount", @@ -1375,6 +1390,7 @@ "VcpmFixedRatePricingOption", "VcpmPricingOption", "VehicleUnit", + "VendorErrorCodeRegistry", "VendorPricingOptionUnion", "VenueBreakdownItem", "VerifyBrandClaimPayload", @@ -1390,6 +1406,7 @@ "VerifyBrandClaimsResponseBulk", "VerifyBrandClaimsSignedResponse", "VerifyBrandClaimsSignedSuccessPayload", + "VersionUnsupportedDetails", "VideoContent", "VideoFormatAsset", "VideoFormatGroupAsset", diff --git a/tests/test_public_api.py b/tests/test_public_api.py index 43acc86db..2a3c0a010 100644 --- a/tests/test_public_api.py +++ b/tests/test_public_api.py @@ -112,6 +112,36 @@ def test_request_response_types_are_exported(): assert hasattr(adcp, type_name), f"{type_name} not exported from adcp package" +def test_structured_error_details_are_exported(): + """Every generated error-detail model is available from ``adcp.types``.""" + from adcp import types + + error_detail_types = [ + "AccessibilityViolationDetails", + "AccountMovedDetails", + "AccountSetupRequiredDetails", + "ActionNotAllowedDetails", + "ActionNotAllowedReason", + "AgentPermissionDeniedDetails", + "AudienceTooSmallDetails", + "AuthorizationRequiredDetails", + "BillingNotPermittedForAgentDetails", + "BillingNotSupportedDetails", + "BudgetTooLowDetails", + "ConflictDetails", + "CreativeRejectedDetails", + "PolicyViolationDetails", + "RateLimitedDetails", + "StaleResponseDetails", + "UnsupportedRefinementDimensionDetails", + "VendorErrorCodeRegistry", + "VersionUnsupportedDetails", + ] + + for type_name in error_detail_types: + assert getattr(types, type_name).__name__ == type_name + + def test_pricing_option_types_are_exported(): """All pricing option types are accessible from main package.""" import adcp