ebay_client/.tmp_notification_models.py

323 lines
18 KiB
Python

# generated by datamodel-codegen:
# filename: commerce_notification_v1_oas3.yaml
# timestamp: 2026-04-07T06:52:28+00:00
from __future__ import annotations
from typing import Any, Dict, List, Optional
from pydantic import BaseModel, Field
class Config(BaseModel):
alertEmail: Optional[str] = Field(
None,
description='This field is used to add or modify an email address that will be used for Notification API alerts associated with the application. <b>getConfig</b> can be used to get the email address currently being used for alerts.',
)
class CreateSubscriptionFilterRequest(BaseModel):
filterSchema: Optional[Dict[str, Dict[str, Any]]] = Field(
None,
description='The content of a subscription filter as a valid <a href="https://json-schema.org " target="_blank">JSON Schema Core document</a> (version 2020-12 or later). The <strong>filterSchema</strong> provided must describe the subscription\'s notification payload such that it supplies valid criteria to filter the subscription\'s notifications.<br><br><span class="tablenote"><b>Note:</b> Not all topics can have filters applied to them. Use <a href="/api-docs/commerce/notification/resources/topic/methods/getTopic">getTopic</a> and <a href="/api-docs/commerce/notification/resources/topic/methods/getTopics">getTopics</a> requests to determine if a specific topic is filterable. Filterable topics have the boolean <b>filterable</b> returned as <code>true</code> in the response.</span><br><span class="tablenote"><b>Note:</b> If the JSON supplied as a subscription filter specifies a field that does not exist in the notifications for a topic, or if the topic is not filterable, the filter will be rejected and become <strong>DISABLED</strong>. If it is valid, however, the filter will move from <strong>PENDING</strong> status to <strong>ENABLED</strong> status.</span><br>Initially, when the <b>createSubscriptionFilter</b> request has been made, if the request has a valid JSON body a <b>201&nbsp;Created</b> is returned. After that, the validation of the <b>filterSchema</b> happens. See <a href="/api-docs/commerce/notification/overview.html#create-filter" target="_blank">Creating a subscription filter for a topic</a> for additional information.',
)
class DeliveryConfig(BaseModel):
endpoint: Optional[str] = Field(
None,
description='The endpoint for this destination.<br><br><span class="tablenote"><b>Note:</b> The provided endpoint URL should use the HTTPS protocol, and it should not contain an internal IP address or <code>localhost</code> in its path.</span>',
)
verificationToken: Optional[str] = Field(
None,
description='The verification token associated with this endpoint.<br><br><span class="tablenote"><b>Note:</b> The provided verification token must be between 32 and 80 characters. Allowed characters include alphanumeric characters, underscores (<code>_</code>), and hyphens (<code>-</code>); no other characters are allowed.</span>',
)
class Destination(BaseModel):
deliveryConfig: Optional[DeliveryConfig] = Field(
None, description='The configuration associated with this destination.'
)
destinationId: Optional[str] = Field(
None, description='The unique identifier for the destination.'
)
name: Optional[str] = Field(
None, description='The name associated with this destination.'
)
status: Optional[str] = Field(
None,
description='The status for this destination.<br><br><span class="tablenote"><b>Note:</b> The <b>MARKED_DOWN</b> value is set by eBay systems and cannot be used in a create or update call by applications.</span><br><br><b>Valid values:</b><ul><li><code>ENABLED</code></li><li><code>DISABLED</code></li><li><code>MARKED_DOWN</code></li></ul> For implementation help, refer to <a href=\'https://developer.ebay.com/api-docs/commerce/notification/types/api:DestinationStatusEnum\'>eBay API documentation</a>',
)
class DestinationRequest(BaseModel):
deliveryConfig: Optional[DeliveryConfig] = Field(
None,
description='This container is used to specify the destination endpoint and verification token associated with this endpoint.',
)
name: Optional[str] = Field(
None, description='The seller-specified name for the destination endpoint.'
)
status: Optional[str] = Field(
None,
description='This field sets the status for the destination endpoint as <code>ENABLED</code> or <code>DISABLED</code>.<br><br><span class="tablenote"><b>Note:</b> The <b>MARKED_DOWN</b> value is set by eBay systems and cannot be used in a create or update call by applications.</span> For implementation help, refer to <a href=\'https://developer.ebay.com/api-docs/commerce/notification/types/api:DestinationStatusEnum\'>eBay API documentation</a>',
)
class DestinationSearchResponse(BaseModel):
destinations: Optional[List[Destination]] = Field(
None, description='An array that contains the destination details.'
)
href: Optional[str] = Field(
None,
description='The path to the call URI that produced the current page of results.',
)
limit: Optional[int] = Field(
None,
description='The number of records to show in the current response.<br><br><b>Default:</b> 20',
)
next: Optional[str] = Field(
None,
description='The URL to access the next set of results. This field includes a <strong>continuation_token</strong>. No <b>prev</b> field is returned, but this value is persistent during the session so that you can use it to return to the next page.<br><br>This field is not returned if fewer records than specified by the <strong>limit</strong> field are returned.',
)
total: Optional[int] = Field(
None, description='The total number of matches for the search criteria.'
)
class ErrorParameter(BaseModel):
name: Optional[str] = Field(None, description='The object of the error.')
value: Optional[str] = Field(None, description='The value of the object.')
class PayloadDetail(BaseModel):
deliveryProtocol: Optional[str] = Field(
None,
description="The supported delivery protocols. For implementation help, refer to <a href='https://developer.ebay.com/api-docs/commerce/notification/types/api:ProtocolEnum'>eBay API documentation</a>",
)
deprecated: Optional[bool] = Field(None, description='A deprecation indicator.')
format: Optional[List[str]] = Field(
None,
description='The supported format. Presently, <code>JSON</code> is the only supported format.',
)
schemaVersion: Optional[str] = Field(
None, description='The supported schema version.'
)
class PublicKey(BaseModel):
algorithm: Optional[str] = Field(
None,
description='The algorithm associated with the public key that is returned, such as Elliptic Curve Digital Signature Algorithm (ECDSA).',
)
digest: Optional[str] = Field(
None,
description='The digest associated with the public key that is returned, such as Secure Hash Algorithm 1 (SHA1).',
)
key: Optional[str] = Field(
None,
description='The public key that is returned for the specified key ID.<br><br>This value is used to validate the eBay push notification message payload.',
)
class SubscriptionFilter(BaseModel):
creationDate: Optional[str] = Field(
None, description='The creation date for this subscription filter.'
)
filterId: Optional[str] = Field(
None, description='The unique identifier for this subscription filter.'
)
filterSchema: Optional[Dict[str, Dict[str, Any]]] = Field(
None,
description='The content of this subscription filter as a valid <a href="https://json-schema.org " target="_blank">JSON Schema Core document</a> (version 2020-12 or later). The <strong>filterSchema</strong> provided must describe the subscription\'s notification payload such that it supplies valid criteria to filter the subscription\'s notifications.',
)
filterStatus: Optional[str] = Field(
None,
description="The status of this subscription filter. For implementation help, refer to <a href='https://developer.ebay.com/api-docs/commerce/notification/types/api:SubscriptionFilterStatus'>eBay API documentation</a>",
)
subscriptionId: Optional[str] = Field(
None, description='The unique identifier for the subscription.'
)
class SubscriptionPayloadDetail(BaseModel):
deliveryProtocol: Optional[str] = Field(
None,
description='The supported delivery protocol of the notification topic.<br><br><span class="tablenote"><b>Note:</b> <code>HTTPS</code> is currently the only supported delivery protocol of all notification topics. </span> For implementation help, refer to <a href=\'https://developer.ebay.com/api-docs/commerce/notification/types/api:ProtocolEnum\'>eBay API documentation</a>',
)
format: Optional[str] = Field(
None,
description='The supported data format of the payload.<br><br><span class="tablenote"><b>Note:</b> JSON is currently the only supported format for all notification topics.</span> For implementation help, refer to <a href=\'https://developer.ebay.com/api-docs/commerce/notification/types/api:FormatTypeEnum\'>eBay API documentation</a>',
)
schemaVersion: Optional[str] = Field(
None,
description='The supported schema version for the notification topic. See the <b>supportedPayloads.schemaVersion</b> field for the topic in <b>getTopics</b> or <b>getTopic</b> response.',
)
class Topic(BaseModel):
authorizationScopes: Optional[List[str]] = Field(
None,
description='The authorization scopes required to subscribe to this topic.',
)
context: Optional[str] = Field(
None,
description="The business context associated with this topic. For implementation help, refer to <a href='https://developer.ebay.com/api-docs/commerce/notification/types/api:ContextEnum'>eBay API documentation</a>",
)
description: Optional[str] = Field(
None, description='The description of the topic.'
)
filterable: Optional[bool] = Field(
None, description='The indicator of whether this topic is filterable or not.'
)
scope: Optional[str] = Field(
None,
description="The scope of this topic. For implementation help, refer to <a href='https://developer.ebay.com/api-docs/commerce/notification/types/api:ScopeEnum'>eBay API documentation</a>",
)
status: Optional[str] = Field(
None,
description="The status of this topic. For implementation help, refer to <a href='https://developer.ebay.com/api-docs/commerce/notification/types/api:StatusEnum'>eBay API documentation</a>",
)
supportedPayloads: Optional[List[PayloadDetail]] = Field(
None, description='The supported payloads for this topic.'
)
topicId: Optional[str] = Field(
None, description='The unique identifier for the topic.'
)
class TopicSearchResponse(BaseModel):
href: Optional[str] = Field(
None,
description='The path to the call URI that produced the current page of results.',
)
limit: Optional[int] = Field(
None,
description='The value of the limit parameter submitted in the request, which is the maximum number of items to return per page, from the result set. A result set is the complete set of results returned by the method.<br><br><span class="tablenote"><b>Note:</b> Though this parameter is not required to be submitted in the request, the parameter defaults to <code>20</code> if omitted.</span>',
)
next: Optional[str] = Field(
None,
description='The URL to access the next set of results. This field includes a <strong>continuation_token</strong>. No <b>prev</b> field is returned, but this value is persistent during the session so that you can use it to return to the next page.<br><br>This field is not returned if fewer records than specified by the <strong>limit</strong> field are returned.',
)
topics: Optional[List[Topic]] = Field(
None, description='An array of topics that match the specified criteria.'
)
total: Optional[int] = Field(
None, description='The total number of matches for the search criteria.'
)
class UpdateSubscriptionRequest(BaseModel):
destinationId: Optional[str] = Field(
None,
description='The unique identifier of the destination endpoint that will receive notifications associated with this subscription. Use <b>getDestinations</b> to retrieve destination IDs.',
)
payload: Optional[SubscriptionPayloadDetail] = Field(
None, description='The payload associated with this subscription.'
)
status: Optional[str] = Field(
None,
description="Set the status of the subscription being updated to ENABLED or DISABLED. For implementation help, refer to <a href='https://developer.ebay.com/api-docs/commerce/notification/types/api:SubscriptionStatusEnum'>eBay API documentation</a>",
)
class CreateSubscriptionRequest(BaseModel):
destinationId: Optional[str] = Field(
None,
description='The unique identifier of the destination endpoint that will receive notifications associated with this subscription. Use the <b>getDestinations</b> method to retrieve destination IDs.',
)
payload: Optional[SubscriptionPayloadDetail] = Field(
None,
description='The payload associated with the notification topic. Use <b>getTopics</b> or <b>getTopic</b> to get the supported payload for the topic.',
)
status: Optional[str] = Field(
None,
description="Set the status of the subscription to <code>ENABLED</code> or <code>DISABLED</code>. For implementation help, refer to <a href='https://developer.ebay.com/api-docs/commerce/notification/types/api:SubscriptionStatusEnum'>eBay API documentation</a>",
)
topicId: Optional[str] = Field(
None,
description='The unique identifier of the notification topic to subscribe to. Use <b>getTopics</b> to get topic IDs.',
)
class Error(BaseModel):
category: Optional[str] = Field(None, description='Identifies the type of erro.')
domain: Optional[str] = Field(
None,
description='Name for the primary system where the error occurred. This is relevant for application errors.',
)
errorId: Optional[int] = Field(
None, description='A unique number to identify the error.'
)
inputRefIds: Optional[List[str]] = Field(
None,
description='An array of request elements most closely associated to the error.',
)
longMessage: Optional[str] = Field(
None, description='A more detailed explanation of the error.'
)
message: Optional[str] = Field(
None,
description="Information on how to correct the problem, in the end user's terms and language where applicable.",
)
outputRefIds: Optional[List[str]] = Field(
None,
description='An array of request elements most closely associated to the error.',
)
parameters: Optional[List[ErrorParameter]] = Field(
None,
description='An array of name/value pairs that describe details the error condition. These are useful when multiple errors are returned.',
)
subdomain: Optional[str] = Field(
None,
description='Further helps indicate which subsystem the error is coming from. System subcategories include: Initialization, Serialization, Security, Monitoring, Rate Limiting, etc.',
)
class Subscription(BaseModel):
creationDate: Optional[str] = Field(
None, description='The creation date for this subscription.'
)
destinationId: Optional[str] = Field(
None,
description='The unique identifier for the destination associated with this subscription.',
)
filterId: Optional[str] = Field(
None,
description='The unique identifier for the filter associated with this subscription.',
)
payload: Optional[SubscriptionPayloadDetail] = Field(
None, description='The payload associated with this subscription.'
)
status: Optional[str] = Field(
None,
description="The status of this subscription. For implementation help, refer to <a href='https://developer.ebay.com/api-docs/commerce/notification/types/api:SubscriptionStatusEnum'>eBay API documentation</a>",
)
subscriptionId: Optional[str] = Field(
None, description='The unique identifier for the subscription.'
)
topicId: Optional[str] = Field(
None,
description='The unique identifier for the topic associated with this subscription.',
)
class SubscriptionSearchResponse(BaseModel):
href: Optional[str] = Field(
None,
description='The path to the call URI that produced the current page of results.',
)
limit: Optional[int] = Field(
None,
description='The value of the limit parameter submitted in the request, which is the maximum number of items to return per page, from the result set. A result set is the complete set of results returned by the method.<br><br><span class="tablenote"><b>Note:</b> Though this parameter is not required to be submitted in the request, the parameter defaults to <code>20</code> if omitted.</span><br><br><b>Default:</b> 20',
)
next: Optional[str] = Field(
None,
description='The URL to access the next set of results. This field includes a <strong>continuation_token</strong>. No <b>prev</b> field is returned, but this value is persistent during the session so that you can use it to return to the next page.<br><br>This field is not returned if fewer records than specified by the <strong>limit</strong> field are returned.',
)
subscriptions: Optional[List[Subscription]] = Field(
None, description='The subscriptions that match the search criteria.'
)
total: Optional[int] = Field(
None, description='The total number of matches for the search criteria.'
)