xbox.webapi.authentication.models module

Authentication Models.

xbox.webapi.authentication.models.utc_now()[source]
class xbox.webapi.authentication.models.XTokenResponse(*, IssueInstant, NotAfter, Token)[source]

Bases: PascalCaseModel

Parameters:
issue_instant: datetime
not_after: datetime
token: str
is_valid()[source]
Return type:

bool

model_config: ClassVar[ConfigDict] = {'alias_generator': <function to_pascal>, 'arbitrary_types_allowed': True, 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'issue_instant': FieldInfo(annotation=datetime, required=True, alias='IssueInstant'), 'not_after': FieldInfo(annotation=datetime, required=True, alias='NotAfter'), 'token': FieldInfo(annotation=str, required=True, alias='Token')}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class xbox.webapi.authentication.models.XADDisplayClaims(*, xdi)[source]

Bases: BaseModel

Parameters:

xdi (Dict[str, str]) –

xdi: Dict[str, str]
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'xdi': FieldInfo(annotation=Dict[str, str], required=True)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class xbox.webapi.authentication.models.XADResponse(*, IssueInstant, NotAfter, Token, DisplayClaims)[source]

Bases: XTokenResponse

Parameters:
display_claims: XADDisplayClaims
model_config: ClassVar[ConfigDict] = {'alias_generator': <function to_pascal>, 'arbitrary_types_allowed': True, 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'display_claims': FieldInfo(annotation=XADDisplayClaims, required=True, alias='DisplayClaims'), 'issue_instant': FieldInfo(annotation=datetime, required=True, alias='IssueInstant', alias_priority=1), 'not_after': FieldInfo(annotation=datetime, required=True, alias='NotAfter', alias_priority=1), 'token': FieldInfo(annotation=str, required=True, alias='Token', alias_priority=1)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class xbox.webapi.authentication.models.XATDisplayClaims(*, xti)[source]

Bases: BaseModel

Parameters:

xti (Dict[str, str]) –

xti: Dict[str, str]
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'xti': FieldInfo(annotation=Dict[str, str], required=True)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class xbox.webapi.authentication.models.XATResponse(*, IssueInstant, NotAfter, Token, DisplayClaims)[source]

Bases: XTokenResponse

Parameters:
display_claims: XATDisplayClaims
model_config: ClassVar[ConfigDict] = {'alias_generator': <function to_pascal>, 'arbitrary_types_allowed': True, 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'display_claims': FieldInfo(annotation=XATDisplayClaims, required=True, alias='DisplayClaims'), 'issue_instant': FieldInfo(annotation=datetime, required=True, alias='IssueInstant', alias_priority=1), 'not_after': FieldInfo(annotation=datetime, required=True, alias='NotAfter', alias_priority=1), 'token': FieldInfo(annotation=str, required=True, alias='Token', alias_priority=1)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class xbox.webapi.authentication.models.XAUDisplayClaims(*, xui)[source]

Bases: BaseModel

Parameters:

xui (List[Dict[str, str]]) –

xui: List[Dict[str, str]]
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'xui': FieldInfo(annotation=List[Dict[str, str]], required=True)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class xbox.webapi.authentication.models.XAUResponse(*, IssueInstant, NotAfter, Token, DisplayClaims)[source]

Bases: XTokenResponse

Parameters:
display_claims: XAUDisplayClaims
model_config: ClassVar[ConfigDict] = {'alias_generator': <function to_pascal>, 'arbitrary_types_allowed': True, 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'display_claims': FieldInfo(annotation=XAUDisplayClaims, required=True, alias='DisplayClaims'), 'issue_instant': FieldInfo(annotation=datetime, required=True, alias='IssueInstant', alias_priority=1), 'not_after': FieldInfo(annotation=datetime, required=True, alias='NotAfter', alias_priority=1), 'token': FieldInfo(annotation=str, required=True, alias='Token', alias_priority=1)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class xbox.webapi.authentication.models.XSTSDisplayClaims(*, xui)[source]

Bases: BaseModel

Parameters:

xui (List[Dict[str, str]]) –

xui: List[Dict[str, str]]
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'xui': FieldInfo(annotation=List[Dict[str, str]], required=True)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class xbox.webapi.authentication.models.XSTSResponse(*, IssueInstant, NotAfter, Token, DisplayClaims)[source]

Bases: XTokenResponse

Parameters:
display_claims: XSTSDisplayClaims
property xuid: str
property userhash: str
property gamertag: str
property age_group: str
property privileges: str
property user_privileges: str
property authorization_header_value: str
model_config: ClassVar[ConfigDict] = {'alias_generator': <function to_pascal>, 'arbitrary_types_allowed': True, 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'display_claims': FieldInfo(annotation=XSTSDisplayClaims, required=True, alias='DisplayClaims'), 'issue_instant': FieldInfo(annotation=datetime, required=True, alias='IssueInstant', alias_priority=1), 'not_after': FieldInfo(annotation=datetime, required=True, alias='NotAfter', alias_priority=1), 'token': FieldInfo(annotation=str, required=True, alias='Token', alias_priority=1)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class xbox.webapi.authentication.models.OAuth2TokenResponse(*, token_type, expires_in, scope, access_token, refresh_token=None, user_id, issued=None)[source]

Bases: BaseModel

Parameters:
  • token_type (str) –

  • expires_in (int) –

  • scope (str) –

  • access_token (str) –

  • refresh_token (str | None) –

  • user_id (str) –

  • issued (datetime) –

token_type: str
expires_in: int
scope: str
access_token: str
refresh_token: str | None
user_id: str
issued: datetime
is_valid()[source]
Return type:

bool

model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'access_token': FieldInfo(annotation=str, required=True), 'expires_in': FieldInfo(annotation=int, required=True), 'issued': FieldInfo(annotation=datetime, required=False, default_factory=utc_now), 'refresh_token': FieldInfo(annotation=Union[str, NoneType], required=False), 'scope': FieldInfo(annotation=str, required=True), 'token_type': FieldInfo(annotation=str, required=True), 'user_id': FieldInfo(annotation=str, required=True)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class xbox.webapi.authentication.models.XalAppParameters(app_id, title_id, redirect_uri)[source]

Bases: object

Parameters:
  • app_id (str) –

  • title_id (str) –

  • redirect_uri (str) –

app_id: str
title_id: str
redirect_uri: str
class xbox.webapi.authentication.models.XalClientParameters(user_agent, device_type, client_version, query_display)[source]

Bases: object

Parameters:
  • user_agent (str) –

  • device_type (str) –

  • client_version (str) –

  • query_display (str) –

user_agent: str
device_type: str
client_version: str
query_display: str
class xbox.webapi.authentication.models.SisuAuthenticationResponse(*, MsaOauthRedirect, MsaRequestParameters)[source]

Bases: PascalCaseModel

Parameters:
  • MsaOauthRedirect (str) –

  • MsaRequestParameters (Dict[str, str]) –

msa_oauth_redirect: str
msa_request_parameters: Dict[str, str]
model_config: ClassVar[ConfigDict] = {'alias_generator': <function to_pascal>, 'arbitrary_types_allowed': True, 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'msa_oauth_redirect': FieldInfo(annotation=str, required=True, alias='MsaOauthRedirect'), 'msa_request_parameters': FieldInfo(annotation=Dict[str, str], required=True, alias='MsaRequestParameters')}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class xbox.webapi.authentication.models.SisuAuthorizationResponse(*, DeviceToken, TitleToken, UserToken, AuthorizationToken, WebPage, Sandbox, UseModernGamertag=None)[source]

Bases: PascalCaseModel

Parameters:
device_token: str
title_token: XATResponse
user_token: XAUResponse
authorization_token: XSTSResponse
web_page: str
sandbox: str
use_modern_gamertag: bool | None
model_config: ClassVar[ConfigDict] = {'alias_generator': <function to_pascal>, 'arbitrary_types_allowed': True, 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'authorization_token': FieldInfo(annotation=XSTSResponse, required=True, alias='AuthorizationToken'), 'device_token': FieldInfo(annotation=str, required=True, alias='DeviceToken'), 'sandbox': FieldInfo(annotation=str, required=True, alias='Sandbox'), 'title_token': FieldInfo(annotation=XATResponse, required=True, alias='TitleToken'), 'use_modern_gamertag': FieldInfo(annotation=Union[bool, NoneType], required=False, alias='UseModernGamertag'), 'user_token': FieldInfo(annotation=XAUResponse, required=True, alias='UserToken'), 'web_page': FieldInfo(annotation=str, required=True, alias='WebPage')}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class xbox.webapi.authentication.models.TitleEndpoint(*, Protocol, Host, HostType, Path=None, RelyingParty=None, SubRelyingParty=None, TokenType=None, SignaturePolicyIndex=None, ServerCertIndex=None)[source]

Bases: PascalCaseModel

Parameters:
  • Protocol (str) –

  • Host (str) –

  • HostType (str) –

  • Path (str | None) –

  • RelyingParty (str | None) –

  • SubRelyingParty (str | None) –

  • TokenType (str | None) –

  • SignaturePolicyIndex (int | None) –

  • ServerCertIndex (List[int] | None) –

protocol: str
host: str
host_type: str
path: str | None
relying_party: str | None
sub_relying_party: str | None
token_type: str | None
signature_policy_index: int | None
server_cert_index: List[int] | None
model_config: ClassVar[ConfigDict] = {'alias_generator': <function to_pascal>, 'arbitrary_types_allowed': True, 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'host': FieldInfo(annotation=str, required=True, alias='Host'), 'host_type': FieldInfo(annotation=str, required=True, alias='HostType'), 'path': FieldInfo(annotation=Union[str, NoneType], required=False, alias='Path'), 'protocol': FieldInfo(annotation=str, required=True, alias='Protocol'), 'relying_party': FieldInfo(annotation=Union[str, NoneType], required=False, alias='RelyingParty'), 'server_cert_index': FieldInfo(annotation=Union[List[int], NoneType], required=False, alias='ServerCertIndex'), 'signature_policy_index': FieldInfo(annotation=Union[int, NoneType], required=False, alias='SignaturePolicyIndex'), 'sub_relying_party': FieldInfo(annotation=Union[str, NoneType], required=False, alias='SubRelyingParty'), 'token_type': FieldInfo(annotation=Union[str, NoneType], required=False, alias='TokenType')}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class xbox.webapi.authentication.models.SignaturePolicy(*, Version, SupportedAlgorithms, MaxBodyBytes)[source]

Bases: PascalCaseModel

Parameters:
  • Version (int) –

  • SupportedAlgorithms (List[str]) –

  • MaxBodyBytes (int) –

version: int
supported_algorithms: List[str]
max_body_bytes: int
model_config: ClassVar[ConfigDict] = {'alias_generator': <function to_pascal>, 'arbitrary_types_allowed': True, 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'max_body_bytes': FieldInfo(annotation=int, required=True, alias='MaxBodyBytes'), 'supported_algorithms': FieldInfo(annotation=List[str], required=True, alias='SupportedAlgorithms'), 'version': FieldInfo(annotation=int, required=True, alias='Version')}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class xbox.webapi.authentication.models.TitleEndpointCertificate(*, Thumbprint, IsIssuer=None, RootCertIndex)[source]

Bases: PascalCaseModel

Parameters:
  • Thumbprint (str) –

  • IsIssuer (bool | None) –

  • RootCertIndex (int) –

thumbprint: str
is_issuer: bool | None
root_cert_index: int
model_config: ClassVar[ConfigDict] = {'alias_generator': <function to_pascal>, 'arbitrary_types_allowed': True, 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'is_issuer': FieldInfo(annotation=Union[bool, NoneType], required=False, alias='IsIssuer'), 'root_cert_index': FieldInfo(annotation=int, required=True, alias='RootCertIndex'), 'thumbprint': FieldInfo(annotation=str, required=True, alias='Thumbprint')}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class xbox.webapi.authentication.models.TitleEndpointsResponse(*, EndPoints, SignaturePolicies, Certs, RootCerts)[source]

Bases: PascalCaseModel

Parameters:
end_points: List[TitleEndpoint]
signature_policies: List[SignaturePolicy]
certs: List[TitleEndpointCertificate]
root_certs: List[str]
model_config: ClassVar[ConfigDict] = {'alias_generator': <function to_pascal>, 'arbitrary_types_allowed': True, 'populate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'certs': FieldInfo(annotation=List[TitleEndpointCertificate], required=True, alias='Certs'), 'end_points': FieldInfo(annotation=List[TitleEndpoint], required=True, alias='EndPoints'), 'root_certs': FieldInfo(annotation=List[str], required=True, alias='RootCerts'), 'signature_policies': FieldInfo(annotation=List[SignaturePolicy], required=True, alias='SignaturePolicies')}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.