Initial commit: Email alerts application

This commit is contained in:
Iyeoluwa Akinrinola
2025-07-25 11:31:36 +01:00
commit adfb625ae9
6322 changed files with 2882826 additions and 0 deletions
@@ -0,0 +1,43 @@
r"""
This code was generated by
___ _ _ _ _ _ _ ____ ____ ____ _ ____ ____ _ _ ____ ____ ____ ___ __ __
| | | | | | | | | __ | | |__| | __ | __ |___ |\ | |___ |__/ |__| | | | |__/
| |_|_| | |___ | |__| |__| | | | |__] |___ | \| |___ | \ | | | |__| | \
NOTE: This class is auto generated by OpenAPI Generator.
https://openapi-generator.tech
Do not edit the class manually.
"""
from typing import Optional
from twilio.base.domain import Domain
from twilio.rest import Client
from twilio.rest.accounts.v1 import V1
class AccountsBase(Domain):
def __init__(self, twilio: Client):
"""
Initialize the Accounts Domain
:returns: Domain for Accounts
"""
super().__init__(twilio, "https://accounts.twilio.com")
self._v1: Optional[V1] = None
@property
def v1(self) -> V1:
"""
:returns: Versions v1 of Accounts
"""
if self._v1 is None:
self._v1 = V1(self)
return self._v1
def __repr__(self) -> str:
"""
Provide a friendly representation
:returns: Machine friendly representation
"""
return "<Twilio.Accounts>"
@@ -0,0 +1,35 @@
from warnings import warn
from twilio.rest.accounts.AccountsBase import AccountsBase
from twilio.rest.accounts.v1.auth_token_promotion import AuthTokenPromotionList
from twilio.rest.accounts.v1.credential import CredentialList
from twilio.rest.accounts.v1.secondary_auth_token import SecondaryAuthTokenList
class Accounts(AccountsBase):
@property
def auth_token_promotion(self) -> AuthTokenPromotionList:
warn(
"auth_token_promotion is deprecated. Use v1.auth_token_promotion instead.",
DeprecationWarning,
stacklevel=2,
)
return self.v1.auth_token_promotion
@property
def credentials(self) -> CredentialList:
warn(
"credentials is deprecated. Use v1.credentials instead.",
DeprecationWarning,
stacklevel=2,
)
return self.v1.credentials
@property
def secondary_auth_token(self) -> SecondaryAuthTokenList:
warn(
"secondary_auth_token is deprecated. Use v1.secondary_auth_token instead.",
DeprecationWarning,
stacklevel=2,
)
return self.v1.secondary_auth_token
@@ -0,0 +1,66 @@
r"""
This code was generated by
___ _ _ _ _ _ _ ____ ____ ____ _ ____ ____ _ _ ____ ____ ____ ___ __ __
| | | | | | | | | __ | | |__| | __ | __ |___ |\ | |___ |__/ |__| | | | |__/
| |_|_| | |___ | |__| |__| | | | |__] |___ | \| |___ | \ | | | |__| | \
Twilio - Accounts
This is the public Twilio REST API.
NOTE: This class is auto generated by OpenAPI Generator.
https://openapi-generator.tech
Do not edit the class manually.
"""
from typing import Optional
from twilio.base.version import Version
from twilio.base.domain import Domain
from twilio.rest.accounts.v1.auth_token_promotion import AuthTokenPromotionList
from twilio.rest.accounts.v1.credential import CredentialList
from twilio.rest.accounts.v1.safelist import SafelistList
from twilio.rest.accounts.v1.secondary_auth_token import SecondaryAuthTokenList
class V1(Version):
def __init__(self, domain: Domain):
"""
Initialize the V1 version of Accounts
:param domain: The Twilio.accounts domain
"""
super().__init__(domain, "v1")
self._auth_token_promotion: Optional[AuthTokenPromotionList] = None
self._credentials: Optional[CredentialList] = None
self._safelist: Optional[SafelistList] = None
self._secondary_auth_token: Optional[SecondaryAuthTokenList] = None
@property
def auth_token_promotion(self) -> AuthTokenPromotionList:
if self._auth_token_promotion is None:
self._auth_token_promotion = AuthTokenPromotionList(self)
return self._auth_token_promotion
@property
def credentials(self) -> CredentialList:
if self._credentials is None:
self._credentials = CredentialList(self)
return self._credentials
@property
def safelist(self) -> SafelistList:
if self._safelist is None:
self._safelist = SafelistList(self)
return self._safelist
@property
def secondary_auth_token(self) -> SecondaryAuthTokenList:
if self._secondary_auth_token is None:
self._secondary_auth_token = SecondaryAuthTokenList(self)
return self._secondary_auth_token
def __repr__(self) -> str:
"""
Provide a friendly representation
:returns: Machine friendly representation
"""
return "<Twilio.Accounts.V1>"
@@ -0,0 +1,177 @@
r"""
This code was generated by
___ _ _ _ _ _ _ ____ ____ ____ _ ____ ____ _ _ ____ ____ ____ ___ __ __
| | | | | | | | | __ | | |__| | __ | __ |___ |\ | |___ |__/ |__| | | | |__/
| |_|_| | |___ | |__| |__| | | | |__] |___ | \| |___ | \ | | | |__| | \
Twilio - Accounts
This is the public Twilio REST API.
NOTE: This class is auto generated by OpenAPI Generator.
https://openapi-generator.tech
Do not edit the class manually.
"""
from datetime import datetime
from typing import Any, Dict, Optional
from twilio.base import deserialize, values
from twilio.base.instance_context import InstanceContext
from twilio.base.instance_resource import InstanceResource
from twilio.base.list_resource import ListResource
from twilio.base.version import Version
class AuthTokenPromotionInstance(InstanceResource):
"""
:ivar account_sid: The SID of the [Account](https://www.twilio.com/docs/iam/api/account) that the secondary Auth Token was created for.
:ivar auth_token: The promoted Auth Token that must be used to authenticate future API requests.
:ivar date_created: The date and time in UTC when the resource was created specified in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.
:ivar date_updated: The date and time in GMT when the resource was last updated specified in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.
:ivar url: The URI for this resource, relative to `https://accounts.twilio.com`
"""
def __init__(self, version: Version, payload: Dict[str, Any]):
super().__init__(version)
self.account_sid: Optional[str] = payload.get("account_sid")
self.auth_token: Optional[str] = payload.get("auth_token")
self.date_created: Optional[datetime] = deserialize.iso8601_datetime(
payload.get("date_created")
)
self.date_updated: Optional[datetime] = deserialize.iso8601_datetime(
payload.get("date_updated")
)
self.url: Optional[str] = payload.get("url")
self._context: Optional[AuthTokenPromotionContext] = None
@property
def _proxy(self) -> "AuthTokenPromotionContext":
"""
Generate an instance context for the instance, the context is capable of
performing various actions. All instance actions are proxied to the context
:returns: AuthTokenPromotionContext for this AuthTokenPromotionInstance
"""
if self._context is None:
self._context = AuthTokenPromotionContext(
self._version,
)
return self._context
def update(self) -> "AuthTokenPromotionInstance":
"""
Update the AuthTokenPromotionInstance
:returns: The updated AuthTokenPromotionInstance
"""
return self._proxy.update()
async def update_async(self) -> "AuthTokenPromotionInstance":
"""
Asynchronous coroutine to update the AuthTokenPromotionInstance
:returns: The updated AuthTokenPromotionInstance
"""
return await self._proxy.update_async()
def __repr__(self) -> str:
"""
Provide a friendly representation
:returns: Machine friendly representation
"""
return "<Twilio.Accounts.V1.AuthTokenPromotionInstance>"
class AuthTokenPromotionContext(InstanceContext):
def __init__(self, version: Version):
"""
Initialize the AuthTokenPromotionContext
:param version: Version that contains the resource
"""
super().__init__(version)
self._uri = "/AuthTokens/Promote"
def update(self) -> AuthTokenPromotionInstance:
"""
Update the AuthTokenPromotionInstance
:returns: The updated AuthTokenPromotionInstance
"""
data = values.of({})
payload = self._version.update(
method="POST",
uri=self._uri,
data=data,
)
return AuthTokenPromotionInstance(self._version, payload)
async def update_async(self) -> AuthTokenPromotionInstance:
"""
Asynchronous coroutine to update the AuthTokenPromotionInstance
:returns: The updated AuthTokenPromotionInstance
"""
data = values.of({})
payload = await self._version.update_async(
method="POST",
uri=self._uri,
data=data,
)
return AuthTokenPromotionInstance(self._version, payload)
def __repr__(self) -> str:
"""
Provide a friendly representation
:returns: Machine friendly representation
"""
return "<Twilio.Accounts.V1.AuthTokenPromotionContext>"
class AuthTokenPromotionList(ListResource):
def __init__(self, version: Version):
"""
Initialize the AuthTokenPromotionList
:param version: Version that contains the resource
"""
super().__init__(version)
def get(self) -> AuthTokenPromotionContext:
"""
Constructs a AuthTokenPromotionContext
"""
return AuthTokenPromotionContext(self._version)
def __call__(self) -> AuthTokenPromotionContext:
"""
Constructs a AuthTokenPromotionContext
"""
return AuthTokenPromotionContext(self._version)
def __repr__(self) -> str:
"""
Provide a friendly representation
:returns: Machine friendly representation
"""
return "<Twilio.Accounts.V1.AuthTokenPromotionList>"
@@ -0,0 +1,65 @@
r"""
This code was generated by
___ _ _ _ _ _ _ ____ ____ ____ _ ____ ____ _ _ ____ ____ ____ ___ __ __
| | | | | | | | | __ | | |__| | __ | __ |___ |\ | |___ |__/ |__| | | | |__/
| |_|_| | |___ | |__| |__| | | | |__] |___ | \| |___ | \ | | | |__| | \
Twilio - Accounts
This is the public Twilio REST API.
NOTE: This class is auto generated by OpenAPI Generator.
https://openapi-generator.tech
Do not edit the class manually.
"""
from typing import Optional
from twilio.base.list_resource import ListResource
from twilio.base.version import Version
from twilio.rest.accounts.v1.credential.aws import AwsList
from twilio.rest.accounts.v1.credential.public_key import PublicKeyList
class CredentialList(ListResource):
def __init__(self, version: Version):
"""
Initialize the CredentialList
:param version: Version that contains the resource
"""
super().__init__(version)
self._uri = "/Credentials"
self._aws: Optional[AwsList] = None
self._public_key: Optional[PublicKeyList] = None
@property
def aws(self) -> AwsList:
"""
Access the aws
"""
if self._aws is None:
self._aws = AwsList(self._version)
return self._aws
@property
def public_key(self) -> PublicKeyList:
"""
Access the public_key
"""
if self._public_key is None:
self._public_key = PublicKeyList(self._version)
return self._public_key
def __repr__(self) -> str:
"""
Provide a friendly representation
:returns: Machine friendly representation
"""
return "<Twilio.Accounts.V1.CredentialList>"
@@ -0,0 +1,576 @@
r"""
This code was generated by
___ _ _ _ _ _ _ ____ ____ ____ _ ____ ____ _ _ ____ ____ ____ ___ __ __
| | | | | | | | | __ | | |__| | __ | __ |___ |\ | |___ |__/ |__| | | | |__/
| |_|_| | |___ | |__| |__| | | | |__] |___ | \| |___ | \ | | | |__| | \
Twilio - Accounts
This is the public Twilio REST API.
NOTE: This class is auto generated by OpenAPI Generator.
https://openapi-generator.tech
Do not edit the class manually.
"""
from datetime import datetime
from typing import Any, Dict, List, Optional, Union, Iterator, AsyncIterator
from twilio.base import deserialize, values
from twilio.base.instance_context import InstanceContext
from twilio.base.instance_resource import InstanceResource
from twilio.base.list_resource import ListResource
from twilio.base.version import Version
from twilio.base.page import Page
class AwsInstance(InstanceResource):
"""
:ivar sid: The unique string that we created to identify the AWS resource.
:ivar account_sid: The SID of the [Account](https://www.twilio.com/docs/iam/api/account) that created the AWS resource.
:ivar friendly_name: The string that you assigned to describe the resource.
:ivar date_created: The date and time in GMT when the resource was created specified in [RFC 2822](https://www.ietf.org/rfc/rfc2822.txt) format.
:ivar date_updated: The date and time in GMT when the resource was last updated specified in [RFC 2822](https://www.ietf.org/rfc/rfc2822.txt) format.
:ivar url: The URI for this resource, relative to `https://accounts.twilio.com`
"""
def __init__(
self, version: Version, payload: Dict[str, Any], sid: Optional[str] = None
):
super().__init__(version)
self.sid: Optional[str] = payload.get("sid")
self.account_sid: Optional[str] = payload.get("account_sid")
self.friendly_name: Optional[str] = payload.get("friendly_name")
self.date_created: Optional[datetime] = deserialize.iso8601_datetime(
payload.get("date_created")
)
self.date_updated: Optional[datetime] = deserialize.iso8601_datetime(
payload.get("date_updated")
)
self.url: Optional[str] = payload.get("url")
self._solution = {
"sid": sid or self.sid,
}
self._context: Optional[AwsContext] = None
@property
def _proxy(self) -> "AwsContext":
"""
Generate an instance context for the instance, the context is capable of
performing various actions. All instance actions are proxied to the context
:returns: AwsContext for this AwsInstance
"""
if self._context is None:
self._context = AwsContext(
self._version,
sid=self._solution["sid"],
)
return self._context
def delete(self) -> bool:
"""
Deletes the AwsInstance
:returns: True if delete succeeds, False otherwise
"""
return self._proxy.delete()
async def delete_async(self) -> bool:
"""
Asynchronous coroutine that deletes the AwsInstance
:returns: True if delete succeeds, False otherwise
"""
return await self._proxy.delete_async()
def fetch(self) -> "AwsInstance":
"""
Fetch the AwsInstance
:returns: The fetched AwsInstance
"""
return self._proxy.fetch()
async def fetch_async(self) -> "AwsInstance":
"""
Asynchronous coroutine to fetch the AwsInstance
:returns: The fetched AwsInstance
"""
return await self._proxy.fetch_async()
def update(self, friendly_name: Union[str, object] = values.unset) -> "AwsInstance":
"""
Update the AwsInstance
:param friendly_name: A descriptive string that you create to describe the resource. It can be up to 64 characters long.
:returns: The updated AwsInstance
"""
return self._proxy.update(
friendly_name=friendly_name,
)
async def update_async(
self, friendly_name: Union[str, object] = values.unset
) -> "AwsInstance":
"""
Asynchronous coroutine to update the AwsInstance
:param friendly_name: A descriptive string that you create to describe the resource. It can be up to 64 characters long.
:returns: The updated AwsInstance
"""
return await self._proxy.update_async(
friendly_name=friendly_name,
)
def __repr__(self) -> str:
"""
Provide a friendly representation
:returns: Machine friendly representation
"""
context = " ".join("{}={}".format(k, v) for k, v in self._solution.items())
return "<Twilio.Accounts.V1.AwsInstance {}>".format(context)
class AwsContext(InstanceContext):
def __init__(self, version: Version, sid: str):
"""
Initialize the AwsContext
:param version: Version that contains the resource
:param sid: The Twilio-provided string that uniquely identifies the AWS resource to update.
"""
super().__init__(version)
# Path Solution
self._solution = {
"sid": sid,
}
self._uri = "/Credentials/AWS/{sid}".format(**self._solution)
def delete(self) -> bool:
"""
Deletes the AwsInstance
:returns: True if delete succeeds, False otherwise
"""
return self._version.delete(
method="DELETE",
uri=self._uri,
)
async def delete_async(self) -> bool:
"""
Asynchronous coroutine that deletes the AwsInstance
:returns: True if delete succeeds, False otherwise
"""
return await self._version.delete_async(
method="DELETE",
uri=self._uri,
)
def fetch(self) -> AwsInstance:
"""
Fetch the AwsInstance
:returns: The fetched AwsInstance
"""
payload = self._version.fetch(
method="GET",
uri=self._uri,
)
return AwsInstance(
self._version,
payload,
sid=self._solution["sid"],
)
async def fetch_async(self) -> AwsInstance:
"""
Asynchronous coroutine to fetch the AwsInstance
:returns: The fetched AwsInstance
"""
payload = await self._version.fetch_async(
method="GET",
uri=self._uri,
)
return AwsInstance(
self._version,
payload,
sid=self._solution["sid"],
)
def update(self, friendly_name: Union[str, object] = values.unset) -> AwsInstance:
"""
Update the AwsInstance
:param friendly_name: A descriptive string that you create to describe the resource. It can be up to 64 characters long.
:returns: The updated AwsInstance
"""
data = values.of(
{
"FriendlyName": friendly_name,
}
)
payload = self._version.update(
method="POST",
uri=self._uri,
data=data,
)
return AwsInstance(self._version, payload, sid=self._solution["sid"])
async def update_async(
self, friendly_name: Union[str, object] = values.unset
) -> AwsInstance:
"""
Asynchronous coroutine to update the AwsInstance
:param friendly_name: A descriptive string that you create to describe the resource. It can be up to 64 characters long.
:returns: The updated AwsInstance
"""
data = values.of(
{
"FriendlyName": friendly_name,
}
)
payload = await self._version.update_async(
method="POST",
uri=self._uri,
data=data,
)
return AwsInstance(self._version, payload, sid=self._solution["sid"])
def __repr__(self) -> str:
"""
Provide a friendly representation
:returns: Machine friendly representation
"""
context = " ".join("{}={}".format(k, v) for k, v in self._solution.items())
return "<Twilio.Accounts.V1.AwsContext {}>".format(context)
class AwsPage(Page):
def get_instance(self, payload: Dict[str, Any]) -> AwsInstance:
"""
Build an instance of AwsInstance
:param payload: Payload response from the API
"""
return AwsInstance(self._version, payload)
def __repr__(self) -> str:
"""
Provide a friendly representation
:returns: Machine friendly representation
"""
return "<Twilio.Accounts.V1.AwsPage>"
class AwsList(ListResource):
def __init__(self, version: Version):
"""
Initialize the AwsList
:param version: Version that contains the resource
"""
super().__init__(version)
self._uri = "/Credentials/AWS"
def create(
self,
credentials: str,
friendly_name: Union[str, object] = values.unset,
account_sid: Union[str, object] = values.unset,
) -> AwsInstance:
"""
Create the AwsInstance
:param credentials: A string that contains the AWS access credentials in the format `<AWS_ACCESS_KEY_ID>:<AWS_SECRET_ACCESS_KEY>`. For example, `AKIAIOSFODNN7EXAMPLE:wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY`
:param friendly_name: A descriptive string that you create to describe the resource. It can be up to 64 characters long.
:param account_sid: The SID of the Subaccount that this Credential should be associated with. Must be a valid Subaccount of the account issuing the request.
:returns: The created AwsInstance
"""
data = values.of(
{
"Credentials": credentials,
"FriendlyName": friendly_name,
"AccountSid": account_sid,
}
)
payload = self._version.create(
method="POST",
uri=self._uri,
data=data,
)
return AwsInstance(self._version, payload)
async def create_async(
self,
credentials: str,
friendly_name: Union[str, object] = values.unset,
account_sid: Union[str, object] = values.unset,
) -> AwsInstance:
"""
Asynchronously create the AwsInstance
:param credentials: A string that contains the AWS access credentials in the format `<AWS_ACCESS_KEY_ID>:<AWS_SECRET_ACCESS_KEY>`. For example, `AKIAIOSFODNN7EXAMPLE:wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY`
:param friendly_name: A descriptive string that you create to describe the resource. It can be up to 64 characters long.
:param account_sid: The SID of the Subaccount that this Credential should be associated with. Must be a valid Subaccount of the account issuing the request.
:returns: The created AwsInstance
"""
data = values.of(
{
"Credentials": credentials,
"FriendlyName": friendly_name,
"AccountSid": account_sid,
}
)
payload = await self._version.create_async(
method="POST",
uri=self._uri,
data=data,
)
return AwsInstance(self._version, payload)
def stream(
self,
limit: Optional[int] = None,
page_size: Optional[int] = None,
) -> Iterator[AwsInstance]:
"""
Streams AwsInstance records from the API as a generator stream.
This operation lazily loads records as efficiently as possible until the limit
is reached.
The results are returned as a generator, so this operation is memory efficient.
:param limit: Upper limit for the number of records to return. stream()
guarantees to never return more than limit. Default is no limit
:param page_size: Number of records to fetch per request, when not set will use
the default value of 50 records. If no page_size is defined
but a limit is defined, stream() will attempt to read the
limit with the most efficient page size, i.e. min(limit, 1000)
:returns: Generator that will yield up to limit results
"""
limits = self._version.read_limits(limit, page_size)
page = self.page(page_size=limits["page_size"])
return self._version.stream(page, limits["limit"])
async def stream_async(
self,
limit: Optional[int] = None,
page_size: Optional[int] = None,
) -> AsyncIterator[AwsInstance]:
"""
Asynchronously streams AwsInstance records from the API as a generator stream.
This operation lazily loads records as efficiently as possible until the limit
is reached.
The results are returned as a generator, so this operation is memory efficient.
:param limit: Upper limit for the number of records to return. stream()
guarantees to never return more than limit. Default is no limit
:param page_size: Number of records to fetch per request, when not set will use
the default value of 50 records. If no page_size is defined
but a limit is defined, stream() will attempt to read the
limit with the most efficient page size, i.e. min(limit, 1000)
:returns: Generator that will yield up to limit results
"""
limits = self._version.read_limits(limit, page_size)
page = await self.page_async(page_size=limits["page_size"])
return self._version.stream_async(page, limits["limit"])
def list(
self,
limit: Optional[int] = None,
page_size: Optional[int] = None,
) -> List[AwsInstance]:
"""
Lists AwsInstance records from the API as a list.
Unlike stream(), this operation is eager and will load `limit` records into
memory before returning.
:param limit: Upper limit for the number of records to return. list() guarantees
never to return more than limit. Default is no limit
:param page_size: Number of records to fetch per request, when not set will use
the default value of 50 records. If no page_size is defined
but a limit is defined, list() will attempt to read the limit
with the most efficient page size, i.e. min(limit, 1000)
:returns: list that will contain up to limit results
"""
return list(
self.stream(
limit=limit,
page_size=page_size,
)
)
async def list_async(
self,
limit: Optional[int] = None,
page_size: Optional[int] = None,
) -> List[AwsInstance]:
"""
Asynchronously lists AwsInstance records from the API as a list.
Unlike stream(), this operation is eager and will load `limit` records into
memory before returning.
:param limit: Upper limit for the number of records to return. list() guarantees
never to return more than limit. Default is no limit
:param page_size: Number of records to fetch per request, when not set will use
the default value of 50 records. If no page_size is defined
but a limit is defined, list() will attempt to read the limit
with the most efficient page size, i.e. min(limit, 1000)
:returns: list that will contain up to limit results
"""
return [
record
async for record in await self.stream_async(
limit=limit,
page_size=page_size,
)
]
def page(
self,
page_token: Union[str, object] = values.unset,
page_number: Union[int, object] = values.unset,
page_size: Union[int, object] = values.unset,
) -> AwsPage:
"""
Retrieve a single page of AwsInstance records from the API.
Request is executed immediately
:param page_token: PageToken provided by the API
:param page_number: Page Number, this value is simply for client state
:param page_size: Number of records to return, defaults to 50
:returns: Page of AwsInstance
"""
data = values.of(
{
"PageToken": page_token,
"Page": page_number,
"PageSize": page_size,
}
)
response = self._version.page(method="GET", uri=self._uri, params=data)
return AwsPage(self._version, response)
async def page_async(
self,
page_token: Union[str, object] = values.unset,
page_number: Union[int, object] = values.unset,
page_size: Union[int, object] = values.unset,
) -> AwsPage:
"""
Asynchronously retrieve a single page of AwsInstance records from the API.
Request is executed immediately
:param page_token: PageToken provided by the API
:param page_number: Page Number, this value is simply for client state
:param page_size: Number of records to return, defaults to 50
:returns: Page of AwsInstance
"""
data = values.of(
{
"PageToken": page_token,
"Page": page_number,
"PageSize": page_size,
}
)
response = await self._version.page_async(
method="GET", uri=self._uri, params=data
)
return AwsPage(self._version, response)
def get_page(self, target_url: str) -> AwsPage:
"""
Retrieve a specific page of AwsInstance records from the API.
Request is executed immediately
:param target_url: API-generated URL for the requested results page
:returns: Page of AwsInstance
"""
response = self._version.domain.twilio.request("GET", target_url)
return AwsPage(self._version, response)
async def get_page_async(self, target_url: str) -> AwsPage:
"""
Asynchronously retrieve a specific page of AwsInstance records from the API.
Request is executed immediately
:param target_url: API-generated URL for the requested results page
:returns: Page of AwsInstance
"""
response = await self._version.domain.twilio.request_async("GET", target_url)
return AwsPage(self._version, response)
def get(self, sid: str) -> AwsContext:
"""
Constructs a AwsContext
:param sid: The Twilio-provided string that uniquely identifies the AWS resource to update.
"""
return AwsContext(self._version, sid=sid)
def __call__(self, sid: str) -> AwsContext:
"""
Constructs a AwsContext
:param sid: The Twilio-provided string that uniquely identifies the AWS resource to update.
"""
return AwsContext(self._version, sid=sid)
def __repr__(self) -> str:
"""
Provide a friendly representation
:returns: Machine friendly representation
"""
return "<Twilio.Accounts.V1.AwsList>"
@@ -0,0 +1,580 @@
r"""
This code was generated by
___ _ _ _ _ _ _ ____ ____ ____ _ ____ ____ _ _ ____ ____ ____ ___ __ __
| | | | | | | | | __ | | |__| | __ | __ |___ |\ | |___ |__/ |__| | | | |__/
| |_|_| | |___ | |__| |__| | | | |__] |___ | \| |___ | \ | | | |__| | \
Twilio - Accounts
This is the public Twilio REST API.
NOTE: This class is auto generated by OpenAPI Generator.
https://openapi-generator.tech
Do not edit the class manually.
"""
from datetime import datetime
from typing import Any, Dict, List, Optional, Union, Iterator, AsyncIterator
from twilio.base import deserialize, values
from twilio.base.instance_context import InstanceContext
from twilio.base.instance_resource import InstanceResource
from twilio.base.list_resource import ListResource
from twilio.base.version import Version
from twilio.base.page import Page
class PublicKeyInstance(InstanceResource):
"""
:ivar sid: The unique string that that we created to identify the PublicKey resource.
:ivar account_sid: The SID of the [Account](https://www.twilio.com/docs/iam/api/account) that created the Credential that the PublicKey resource belongs to.
:ivar friendly_name: The string that you assigned to describe the resource.
:ivar date_created: The date and time in GMT when the resource was created specified in [RFC 2822](https://www.ietf.org/rfc/rfc2822.txt) format.
:ivar date_updated: The date and time in GMT when the resource was last updated specified in [RFC 2822](https://www.ietf.org/rfc/rfc2822.txt) format.
:ivar url: The URI for this resource, relative to `https://accounts.twilio.com`
"""
def __init__(
self, version: Version, payload: Dict[str, Any], sid: Optional[str] = None
):
super().__init__(version)
self.sid: Optional[str] = payload.get("sid")
self.account_sid: Optional[str] = payload.get("account_sid")
self.friendly_name: Optional[str] = payload.get("friendly_name")
self.date_created: Optional[datetime] = deserialize.iso8601_datetime(
payload.get("date_created")
)
self.date_updated: Optional[datetime] = deserialize.iso8601_datetime(
payload.get("date_updated")
)
self.url: Optional[str] = payload.get("url")
self._solution = {
"sid": sid or self.sid,
}
self._context: Optional[PublicKeyContext] = None
@property
def _proxy(self) -> "PublicKeyContext":
"""
Generate an instance context for the instance, the context is capable of
performing various actions. All instance actions are proxied to the context
:returns: PublicKeyContext for this PublicKeyInstance
"""
if self._context is None:
self._context = PublicKeyContext(
self._version,
sid=self._solution["sid"],
)
return self._context
def delete(self) -> bool:
"""
Deletes the PublicKeyInstance
:returns: True if delete succeeds, False otherwise
"""
return self._proxy.delete()
async def delete_async(self) -> bool:
"""
Asynchronous coroutine that deletes the PublicKeyInstance
:returns: True if delete succeeds, False otherwise
"""
return await self._proxy.delete_async()
def fetch(self) -> "PublicKeyInstance":
"""
Fetch the PublicKeyInstance
:returns: The fetched PublicKeyInstance
"""
return self._proxy.fetch()
async def fetch_async(self) -> "PublicKeyInstance":
"""
Asynchronous coroutine to fetch the PublicKeyInstance
:returns: The fetched PublicKeyInstance
"""
return await self._proxy.fetch_async()
def update(
self, friendly_name: Union[str, object] = values.unset
) -> "PublicKeyInstance":
"""
Update the PublicKeyInstance
:param friendly_name: A descriptive string that you create to describe the resource. It can be up to 64 characters long.
:returns: The updated PublicKeyInstance
"""
return self._proxy.update(
friendly_name=friendly_name,
)
async def update_async(
self, friendly_name: Union[str, object] = values.unset
) -> "PublicKeyInstance":
"""
Asynchronous coroutine to update the PublicKeyInstance
:param friendly_name: A descriptive string that you create to describe the resource. It can be up to 64 characters long.
:returns: The updated PublicKeyInstance
"""
return await self._proxy.update_async(
friendly_name=friendly_name,
)
def __repr__(self) -> str:
"""
Provide a friendly representation
:returns: Machine friendly representation
"""
context = " ".join("{}={}".format(k, v) for k, v in self._solution.items())
return "<Twilio.Accounts.V1.PublicKeyInstance {}>".format(context)
class PublicKeyContext(InstanceContext):
def __init__(self, version: Version, sid: str):
"""
Initialize the PublicKeyContext
:param version: Version that contains the resource
:param sid: The Twilio-provided string that uniquely identifies the PublicKey resource to update.
"""
super().__init__(version)
# Path Solution
self._solution = {
"sid": sid,
}
self._uri = "/Credentials/PublicKeys/{sid}".format(**self._solution)
def delete(self) -> bool:
"""
Deletes the PublicKeyInstance
:returns: True if delete succeeds, False otherwise
"""
return self._version.delete(
method="DELETE",
uri=self._uri,
)
async def delete_async(self) -> bool:
"""
Asynchronous coroutine that deletes the PublicKeyInstance
:returns: True if delete succeeds, False otherwise
"""
return await self._version.delete_async(
method="DELETE",
uri=self._uri,
)
def fetch(self) -> PublicKeyInstance:
"""
Fetch the PublicKeyInstance
:returns: The fetched PublicKeyInstance
"""
payload = self._version.fetch(
method="GET",
uri=self._uri,
)
return PublicKeyInstance(
self._version,
payload,
sid=self._solution["sid"],
)
async def fetch_async(self) -> PublicKeyInstance:
"""
Asynchronous coroutine to fetch the PublicKeyInstance
:returns: The fetched PublicKeyInstance
"""
payload = await self._version.fetch_async(
method="GET",
uri=self._uri,
)
return PublicKeyInstance(
self._version,
payload,
sid=self._solution["sid"],
)
def update(
self, friendly_name: Union[str, object] = values.unset
) -> PublicKeyInstance:
"""
Update the PublicKeyInstance
:param friendly_name: A descriptive string that you create to describe the resource. It can be up to 64 characters long.
:returns: The updated PublicKeyInstance
"""
data = values.of(
{
"FriendlyName": friendly_name,
}
)
payload = self._version.update(
method="POST",
uri=self._uri,
data=data,
)
return PublicKeyInstance(self._version, payload, sid=self._solution["sid"])
async def update_async(
self, friendly_name: Union[str, object] = values.unset
) -> PublicKeyInstance:
"""
Asynchronous coroutine to update the PublicKeyInstance
:param friendly_name: A descriptive string that you create to describe the resource. It can be up to 64 characters long.
:returns: The updated PublicKeyInstance
"""
data = values.of(
{
"FriendlyName": friendly_name,
}
)
payload = await self._version.update_async(
method="POST",
uri=self._uri,
data=data,
)
return PublicKeyInstance(self._version, payload, sid=self._solution["sid"])
def __repr__(self) -> str:
"""
Provide a friendly representation
:returns: Machine friendly representation
"""
context = " ".join("{}={}".format(k, v) for k, v in self._solution.items())
return "<Twilio.Accounts.V1.PublicKeyContext {}>".format(context)
class PublicKeyPage(Page):
def get_instance(self, payload: Dict[str, Any]) -> PublicKeyInstance:
"""
Build an instance of PublicKeyInstance
:param payload: Payload response from the API
"""
return PublicKeyInstance(self._version, payload)
def __repr__(self) -> str:
"""
Provide a friendly representation
:returns: Machine friendly representation
"""
return "<Twilio.Accounts.V1.PublicKeyPage>"
class PublicKeyList(ListResource):
def __init__(self, version: Version):
"""
Initialize the PublicKeyList
:param version: Version that contains the resource
"""
super().__init__(version)
self._uri = "/Credentials/PublicKeys"
def create(
self,
public_key: str,
friendly_name: Union[str, object] = values.unset,
account_sid: Union[str, object] = values.unset,
) -> PublicKeyInstance:
"""
Create the PublicKeyInstance
:param public_key: A URL encoded representation of the public key. For example, `-----BEGIN PUBLIC KEY-----MIIBIjANB.pa9xQIDAQAB-----END PUBLIC KEY-----`
:param friendly_name: A descriptive string that you create to describe the resource. It can be up to 64 characters long.
:param account_sid: The SID of the Subaccount that this Credential should be associated with. Must be a valid Subaccount of the account issuing the request
:returns: The created PublicKeyInstance
"""
data = values.of(
{
"PublicKey": public_key,
"FriendlyName": friendly_name,
"AccountSid": account_sid,
}
)
payload = self._version.create(
method="POST",
uri=self._uri,
data=data,
)
return PublicKeyInstance(self._version, payload)
async def create_async(
self,
public_key: str,
friendly_name: Union[str, object] = values.unset,
account_sid: Union[str, object] = values.unset,
) -> PublicKeyInstance:
"""
Asynchronously create the PublicKeyInstance
:param public_key: A URL encoded representation of the public key. For example, `-----BEGIN PUBLIC KEY-----MIIBIjANB.pa9xQIDAQAB-----END PUBLIC KEY-----`
:param friendly_name: A descriptive string that you create to describe the resource. It can be up to 64 characters long.
:param account_sid: The SID of the Subaccount that this Credential should be associated with. Must be a valid Subaccount of the account issuing the request
:returns: The created PublicKeyInstance
"""
data = values.of(
{
"PublicKey": public_key,
"FriendlyName": friendly_name,
"AccountSid": account_sid,
}
)
payload = await self._version.create_async(
method="POST",
uri=self._uri,
data=data,
)
return PublicKeyInstance(self._version, payload)
def stream(
self,
limit: Optional[int] = None,
page_size: Optional[int] = None,
) -> Iterator[PublicKeyInstance]:
"""
Streams PublicKeyInstance records from the API as a generator stream.
This operation lazily loads records as efficiently as possible until the limit
is reached.
The results are returned as a generator, so this operation is memory efficient.
:param limit: Upper limit for the number of records to return. stream()
guarantees to never return more than limit. Default is no limit
:param page_size: Number of records to fetch per request, when not set will use
the default value of 50 records. If no page_size is defined
but a limit is defined, stream() will attempt to read the
limit with the most efficient page size, i.e. min(limit, 1000)
:returns: Generator that will yield up to limit results
"""
limits = self._version.read_limits(limit, page_size)
page = self.page(page_size=limits["page_size"])
return self._version.stream(page, limits["limit"])
async def stream_async(
self,
limit: Optional[int] = None,
page_size: Optional[int] = None,
) -> AsyncIterator[PublicKeyInstance]:
"""
Asynchronously streams PublicKeyInstance records from the API as a generator stream.
This operation lazily loads records as efficiently as possible until the limit
is reached.
The results are returned as a generator, so this operation is memory efficient.
:param limit: Upper limit for the number of records to return. stream()
guarantees to never return more than limit. Default is no limit
:param page_size: Number of records to fetch per request, when not set will use
the default value of 50 records. If no page_size is defined
but a limit is defined, stream() will attempt to read the
limit with the most efficient page size, i.e. min(limit, 1000)
:returns: Generator that will yield up to limit results
"""
limits = self._version.read_limits(limit, page_size)
page = await self.page_async(page_size=limits["page_size"])
return self._version.stream_async(page, limits["limit"])
def list(
self,
limit: Optional[int] = None,
page_size: Optional[int] = None,
) -> List[PublicKeyInstance]:
"""
Lists PublicKeyInstance records from the API as a list.
Unlike stream(), this operation is eager and will load `limit` records into
memory before returning.
:param limit: Upper limit for the number of records to return. list() guarantees
never to return more than limit. Default is no limit
:param page_size: Number of records to fetch per request, when not set will use
the default value of 50 records. If no page_size is defined
but a limit is defined, list() will attempt to read the limit
with the most efficient page size, i.e. min(limit, 1000)
:returns: list that will contain up to limit results
"""
return list(
self.stream(
limit=limit,
page_size=page_size,
)
)
async def list_async(
self,
limit: Optional[int] = None,
page_size: Optional[int] = None,
) -> List[PublicKeyInstance]:
"""
Asynchronously lists PublicKeyInstance records from the API as a list.
Unlike stream(), this operation is eager and will load `limit` records into
memory before returning.
:param limit: Upper limit for the number of records to return. list() guarantees
never to return more than limit. Default is no limit
:param page_size: Number of records to fetch per request, when not set will use
the default value of 50 records. If no page_size is defined
but a limit is defined, list() will attempt to read the limit
with the most efficient page size, i.e. min(limit, 1000)
:returns: list that will contain up to limit results
"""
return [
record
async for record in await self.stream_async(
limit=limit,
page_size=page_size,
)
]
def page(
self,
page_token: Union[str, object] = values.unset,
page_number: Union[int, object] = values.unset,
page_size: Union[int, object] = values.unset,
) -> PublicKeyPage:
"""
Retrieve a single page of PublicKeyInstance records from the API.
Request is executed immediately
:param page_token: PageToken provided by the API
:param page_number: Page Number, this value is simply for client state
:param page_size: Number of records to return, defaults to 50
:returns: Page of PublicKeyInstance
"""
data = values.of(
{
"PageToken": page_token,
"Page": page_number,
"PageSize": page_size,
}
)
response = self._version.page(method="GET", uri=self._uri, params=data)
return PublicKeyPage(self._version, response)
async def page_async(
self,
page_token: Union[str, object] = values.unset,
page_number: Union[int, object] = values.unset,
page_size: Union[int, object] = values.unset,
) -> PublicKeyPage:
"""
Asynchronously retrieve a single page of PublicKeyInstance records from the API.
Request is executed immediately
:param page_token: PageToken provided by the API
:param page_number: Page Number, this value is simply for client state
:param page_size: Number of records to return, defaults to 50
:returns: Page of PublicKeyInstance
"""
data = values.of(
{
"PageToken": page_token,
"Page": page_number,
"PageSize": page_size,
}
)
response = await self._version.page_async(
method="GET", uri=self._uri, params=data
)
return PublicKeyPage(self._version, response)
def get_page(self, target_url: str) -> PublicKeyPage:
"""
Retrieve a specific page of PublicKeyInstance records from the API.
Request is executed immediately
:param target_url: API-generated URL for the requested results page
:returns: Page of PublicKeyInstance
"""
response = self._version.domain.twilio.request("GET", target_url)
return PublicKeyPage(self._version, response)
async def get_page_async(self, target_url: str) -> PublicKeyPage:
"""
Asynchronously retrieve a specific page of PublicKeyInstance records from the API.
Request is executed immediately
:param target_url: API-generated URL for the requested results page
:returns: Page of PublicKeyInstance
"""
response = await self._version.domain.twilio.request_async("GET", target_url)
return PublicKeyPage(self._version, response)
def get(self, sid: str) -> PublicKeyContext:
"""
Constructs a PublicKeyContext
:param sid: The Twilio-provided string that uniquely identifies the PublicKey resource to update.
"""
return PublicKeyContext(self._version, sid=sid)
def __call__(self, sid: str) -> PublicKeyContext:
"""
Constructs a PublicKeyContext
:param sid: The Twilio-provided string that uniquely identifies the PublicKey resource to update.
"""
return PublicKeyContext(self._version, sid=sid)
def __repr__(self) -> str:
"""
Provide a friendly representation
:returns: Machine friendly representation
"""
return "<Twilio.Accounts.V1.PublicKeyList>"
@@ -0,0 +1,129 @@
r"""
This code was generated by
___ _ _ _ _ _ _ ____ ____ ____ _ ____ ____ _ _ ____ ____ ____ ___ __ __
| | | | | | | | | __ | | |__| | __ | __ |___ |\ | |___ |__/ |__| | | | |__/
| |_|_| | |___ | |__| |__| | | | |__] |___ | \| |___ | \ | | | |__| | \
Twilio - Accounts
This is the public Twilio REST API.
NOTE: This class is auto generated by OpenAPI Generator.
https://openapi-generator.tech
Do not edit the class manually.
"""
from typing import Any, Dict, Optional
from twilio.base import values
from twilio.base.instance_resource import InstanceResource
from twilio.base.list_resource import ListResource
from twilio.base.version import Version
class SafelistInstance(InstanceResource):
"""
:ivar sid: The unique string that we created to identify the SafeList resource.
:ivar phone_number: The phone number in SafeList.
"""
def __init__(self, version: Version, payload: Dict[str, Any]):
super().__init__(version)
self.sid: Optional[str] = payload.get("sid")
self.phone_number: Optional[str] = payload.get("phone_number")
def __repr__(self) -> str:
"""
Provide a friendly representation
:returns: Machine friendly representation
"""
return "<Twilio.Accounts.V1.SafelistInstance>"
class SafelistList(ListResource):
def __init__(self, version: Version):
"""
Initialize the SafelistList
:param version: Version that contains the resource
"""
super().__init__(version)
self._uri = "/SafeList/Numbers"
def create(self, phone_number: str) -> SafelistInstance:
"""
Create the SafelistInstance
:param phone_number: The phone number to be added in SafeList. Phone numbers must be in [E.164 format](https://www.twilio.com/docs/glossary/what-e164).
:returns: The created SafelistInstance
"""
data = values.of(
{
"PhoneNumber": phone_number,
}
)
payload = self._version.create(
method="POST",
uri=self._uri,
data=data,
)
return SafelistInstance(self._version, payload)
async def create_async(self, phone_number: str) -> SafelistInstance:
"""
Asynchronously create the SafelistInstance
:param phone_number: The phone number to be added in SafeList. Phone numbers must be in [E.164 format](https://www.twilio.com/docs/glossary/what-e164).
:returns: The created SafelistInstance
"""
data = values.of(
{
"PhoneNumber": phone_number,
}
)
payload = await self._version.create_async(
method="POST",
uri=self._uri,
data=data,
)
return SafelistInstance(self._version, payload)
def fetch(self) -> SafelistInstance:
"""
Asynchronously fetch the SafelistInstance
:returns: The fetched SafelistInstance
"""
payload = self._version.fetch(method="GET", uri=self._uri)
return SafelistInstance(self._version, payload)
async def fetch_async(self) -> SafelistInstance:
"""
Asynchronously fetch the SafelistInstance
:returns: The fetched SafelistInstance
"""
payload = await self._version.fetch_async(method="GET", uri=self._uri)
return SafelistInstance(self._version, payload)
def __repr__(self) -> str:
"""
Provide a friendly representation
:returns: Machine friendly representation
"""
return "<Twilio.Accounts.V1.SafelistList>"
@@ -0,0 +1,213 @@
r"""
This code was generated by
___ _ _ _ _ _ _ ____ ____ ____ _ ____ ____ _ _ ____ ____ ____ ___ __ __
| | | | | | | | | __ | | |__| | __ | __ |___ |\ | |___ |__/ |__| | | | |__/
| |_|_| | |___ | |__| |__| | | | |__] |___ | \| |___ | \ | | | |__| | \
Twilio - Accounts
This is the public Twilio REST API.
NOTE: This class is auto generated by OpenAPI Generator.
https://openapi-generator.tech
Do not edit the class manually.
"""
from datetime import datetime
from typing import Any, Dict, Optional
from twilio.base import deserialize, values
from twilio.base.instance_context import InstanceContext
from twilio.base.instance_resource import InstanceResource
from twilio.base.list_resource import ListResource
from twilio.base.version import Version
class SecondaryAuthTokenInstance(InstanceResource):
"""
:ivar account_sid: The SID of the [Account](https://www.twilio.com/docs/iam/api/account) that the secondary Auth Token was created for.
:ivar date_created: The date and time in UTC when the resource was created specified in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.
:ivar date_updated: The date and time in UTC when the resource was last updated specified in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.
:ivar secondary_auth_token: The generated secondary Auth Token that can be used to authenticate future API requests.
:ivar url: The URI for this resource, relative to `https://accounts.twilio.com`
"""
def __init__(self, version: Version, payload: Dict[str, Any]):
super().__init__(version)
self.account_sid: Optional[str] = payload.get("account_sid")
self.date_created: Optional[datetime] = deserialize.iso8601_datetime(
payload.get("date_created")
)
self.date_updated: Optional[datetime] = deserialize.iso8601_datetime(
payload.get("date_updated")
)
self.secondary_auth_token: Optional[str] = payload.get("secondary_auth_token")
self.url: Optional[str] = payload.get("url")
self._context: Optional[SecondaryAuthTokenContext] = None
@property
def _proxy(self) -> "SecondaryAuthTokenContext":
"""
Generate an instance context for the instance, the context is capable of
performing various actions. All instance actions are proxied to the context
:returns: SecondaryAuthTokenContext for this SecondaryAuthTokenInstance
"""
if self._context is None:
self._context = SecondaryAuthTokenContext(
self._version,
)
return self._context
def create(self) -> "SecondaryAuthTokenInstance":
"""
Create the SecondaryAuthTokenInstance
:returns: The created SecondaryAuthTokenInstance
"""
return self._proxy.create()
async def create_async(self) -> "SecondaryAuthTokenInstance":
"""
Asynchronous coroutine to create the SecondaryAuthTokenInstance
:returns: The created SecondaryAuthTokenInstance
"""
return await self._proxy.create_async()
def delete(self) -> bool:
"""
Deletes the SecondaryAuthTokenInstance
:returns: True if delete succeeds, False otherwise
"""
return self._proxy.delete()
async def delete_async(self) -> bool:
"""
Asynchronous coroutine that deletes the SecondaryAuthTokenInstance
:returns: True if delete succeeds, False otherwise
"""
return await self._proxy.delete_async()
def __repr__(self) -> str:
"""
Provide a friendly representation
:returns: Machine friendly representation
"""
return "<Twilio.Accounts.V1.SecondaryAuthTokenInstance>"
class SecondaryAuthTokenContext(InstanceContext):
def __init__(self, version: Version):
"""
Initialize the SecondaryAuthTokenContext
:param version: Version that contains the resource
"""
super().__init__(version)
self._uri = "/AuthTokens/Secondary"
def create(self) -> SecondaryAuthTokenInstance:
"""
Create the SecondaryAuthTokenInstance
:returns: The created SecondaryAuthTokenInstance
"""
data = values.of({})
payload = self._version.create(method="POST", uri=self._uri, data=data)
return SecondaryAuthTokenInstance(self._version, payload)
async def create_async(self) -> SecondaryAuthTokenInstance:
"""
Asynchronous coroutine to create the SecondaryAuthTokenInstance
:returns: The created SecondaryAuthTokenInstance
"""
data = values.of({})
payload = await self._version.create_async(
method="POST", uri=self._uri, data=data
)
return SecondaryAuthTokenInstance(self._version, payload)
def delete(self) -> bool:
"""
Deletes the SecondaryAuthTokenInstance
:returns: True if delete succeeds, False otherwise
"""
return self._version.delete(
method="DELETE",
uri=self._uri,
)
async def delete_async(self) -> bool:
"""
Asynchronous coroutine that deletes the SecondaryAuthTokenInstance
:returns: True if delete succeeds, False otherwise
"""
return await self._version.delete_async(
method="DELETE",
uri=self._uri,
)
def __repr__(self) -> str:
"""
Provide a friendly representation
:returns: Machine friendly representation
"""
return "<Twilio.Accounts.V1.SecondaryAuthTokenContext>"
class SecondaryAuthTokenList(ListResource):
def __init__(self, version: Version):
"""
Initialize the SecondaryAuthTokenList
:param version: Version that contains the resource
"""
super().__init__(version)
def get(self) -> SecondaryAuthTokenContext:
"""
Constructs a SecondaryAuthTokenContext
"""
return SecondaryAuthTokenContext(self._version)
def __call__(self) -> SecondaryAuthTokenContext:
"""
Constructs a SecondaryAuthTokenContext
"""
return SecondaryAuthTokenContext(self._version)
def __repr__(self) -> str:
"""
Provide a friendly representation
:returns: Machine friendly representation
"""
return "<Twilio.Accounts.V1.SecondaryAuthTokenList>"