# Tenants ## Get tenant `tenants.get(strtenant_id) -> Tenant` **get** `/tenants/{tenant_id}` Retrieves a Tenant by Tenant ID. ### Parameters - `tenant_id: str` ### Returns - `class Tenant: …` - `cdate: datetime` - `edate: datetime` - `tenant_contacts: TenantContacts` - `email: Optional[str]` - `website: Optional[str]` - `tenant_labels: List[str]` - `tenant_metadata: TenantMetadata` - `dns: Optional[TenantMetadataDNS]` - `ns_pool: TenantMetadataDNSNSPool` - `primary: Optional[str]` - `secondary: Optional[str]` - `tenant_name: str` - `tenant_network: object` - `tenant_status: str` - `tenant_tag: str` - `tenant_type: str` - `tenant_units: List[TenantUnit]` - `unit_memberships: List[object]` - `unit_metadata: object` - `unit_name: str` - `unit_status: str` - `unit_tag: str` - `customer_id: Optional[str]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_email=os.environ.get("CLOUDFLARE_EMAIL"), # This is the default and can be omitted api_key=os.environ.get("CLOUDFLARE_API_KEY"), # This is the default and can be omitted ) tenant = client.tenants.get( "tenant_id", ) print(tenant.customer_id) ``` #### Response ```json { "errors": [], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "result": { "cdate": "2019-12-27T18:11:19.117Z", "edate": "2019-12-27T18:11:19.117Z", "tenant_contacts": { "email": "email", "website": "website" }, "tenant_labels": [ "string" ], "tenant_metadata": { "dns": { "ns_pool": { "primary": "primary", "secondary": "secondary" } } }, "tenant_name": "tenant_name", "tenant_network": {}, "tenant_status": "tenant_status", "tenant_tag": "tenant_tag", "tenant_type": "tenant_type", "tenant_units": [ { "unit_memberships": [ {} ], "unit_metadata": {}, "unit_name": "unit_name", "unit_status": "unit_status", "unit_tag": "unit_tag" } ], "customer_id": "customer_id" }, "success": true } ``` ## Domain Types ### Tenant - `class Tenant: …` - `cdate: datetime` - `edate: datetime` - `tenant_contacts: TenantContacts` - `email: Optional[str]` - `website: Optional[str]` - `tenant_labels: List[str]` - `tenant_metadata: TenantMetadata` - `dns: Optional[TenantMetadataDNS]` - `ns_pool: TenantMetadataDNSNSPool` - `primary: Optional[str]` - `secondary: Optional[str]` - `tenant_name: str` - `tenant_network: object` - `tenant_status: str` - `tenant_tag: str` - `tenant_type: str` - `tenant_units: List[TenantUnit]` - `unit_memberships: List[object]` - `unit_metadata: object` - `unit_name: str` - `unit_status: str` - `unit_tag: str` - `customer_id: Optional[str]` # Account Types ## Get tenant account types `tenants.account_types.list(strtenant_id) -> SyncSinglePage[AccountTypeListResponse]` **get** `/tenants/{tenant_id}/account_types` List of account types available for the Tenant to provision accounts. ### Parameters - `tenant_id: str` ### Returns - `str` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_email=os.environ.get("CLOUDFLARE_EMAIL"), # This is the default and can be omitted api_key=os.environ.get("CLOUDFLARE_API_KEY"), # This is the default and can be omitted ) page = client.tenants.account_types.list( "tenant_id", ) page = page.result[0] print(page) ``` #### Response ```json { "errors": [], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "result": [ "string" ], "success": true } ``` ## Domain Types ### Account Type List Response - `str` # Accounts ## List tenant accounts `tenants.accounts.list(strtenant_id) -> SyncSinglePage[TenantAccount]` **get** `/tenants/{tenant_id}/accounts` List of accounts for the Tenant. ### Parameters - `tenant_id: str` ### Returns - `class TenantAccount: …` - `id: str` - `created_on: datetime` - `name: Optional[str]` - `settings: Settings` - `abuse_contact_email: Optional[str]` - `access_approval_expiry: Optional[datetime]` - `api_access_enabled: Optional[bool]` - `default_nameservers: Optional[str]` Use [DNS Settings](https://developers.cloudflare.com/api/operations/dns-settings-for-an-account-list-dns-settings) instead. Deprecated. - `enforce_twofactor: Optional[bool]` - `use_account_custom_ns_by_default: Optional[bool]` Use [DNS Settings](https://developers.cloudflare.com/api/operations/dns-settings-for-an-account-list-dns-settings) instead. Deprecated. - `type: Literal["standard", "enterprise"]` - `"standard"` - `"enterprise"` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_email=os.environ.get("CLOUDFLARE_EMAIL"), # This is the default and can be omitted api_key=os.environ.get("CLOUDFLARE_API_KEY"), # This is the default and can be omitted ) page = client.tenants.accounts.list( "tenant_id", ) page = page.result[0] print(page.id) ``` #### Response ```json { "errors": [], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "result": [ { "id": "id", "created_on": "2019-12-27T18:11:19.117Z", "name": "name", "settings": { "abuse_contact_email": "abuse_contact_email", "access_approval_expiry": "2019-12-27T18:11:19.117Z", "api_access_enabled": true, "default_nameservers": "default_nameservers", "enforce_twofactor": true, "use_account_custom_ns_by_default": true }, "type": "standard" } ], "success": true } ``` ## Domain Types ### Tenant Account - `class TenantAccount: …` - `id: str` - `created_on: datetime` - `name: Optional[str]` - `settings: Settings` - `abuse_contact_email: Optional[str]` - `access_approval_expiry: Optional[datetime]` - `api_access_enabled: Optional[bool]` - `default_nameservers: Optional[str]` Use [DNS Settings](https://developers.cloudflare.com/api/operations/dns-settings-for-an-account-list-dns-settings) instead. Deprecated. - `enforce_twofactor: Optional[bool]` - `use_account_custom_ns_by_default: Optional[bool]` Use [DNS Settings](https://developers.cloudflare.com/api/operations/dns-settings-for-an-account-list-dns-settings) instead. Deprecated. - `type: Literal["standard", "enterprise"]` - `"standard"` - `"enterprise"` # Entitlements ## List tenant entitlements `tenants.entitlements.get(strtenant_id) -> TenantEntitlements` **get** `/tenants/{tenant_id}/entitlements` List of innate entitlements available for the Tenant. ### Parameters - `tenant_id: str` ### Returns - `class TenantEntitlements: …` - `allow_add_subdomain: AllowAddSubdomain` - `type: Literal["bool"]` - `"bool"` - `value: bool` - `allow_auto_accept_invites: AllowAutoAcceptInvites` - `type: Literal["bool"]` - `"bool"` - `value: bool` - `cname_setup_allowed: CNAMESetupAllowed` - `type: Literal["bool"]` - `"bool"` - `value: bool` - `custom_entitlements: Optional[List[CustomEntitlement]]` - `allocation: CustomEntitlementAllocation` - `class CustomEntitlementAllocationOrganizationsAPIMaxCountAllocation: …` - `type: Literal["max_count"]` - `"max_count"` - `value: int` - `class CustomEntitlementAllocationOrganizationsAPIBoolAllocation: …` - `type: Literal["bool"]` - `"bool"` - `value: bool` - `class CustomEntitlementAllocationOrganizationsAPINullAllocation: …` - `type: Literal[""]` - `""` - `value: Optional[object]` - `feature: CustomEntitlementFeature` - `key: str` - `mhs_certificate_count: MhsCertificateCount` - `type: Literal["max_count"]` - `"max_count"` - `value: int` - `partial_setup_allowed: PartialSetupAllowed` - `type: Literal["bool"]` - `"bool"` - `value: bool` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_email=os.environ.get("CLOUDFLARE_EMAIL"), # This is the default and can be omitted api_key=os.environ.get("CLOUDFLARE_API_KEY"), # This is the default and can be omitted ) tenant_entitlements = client.tenants.entitlements.get( "tenant_id", ) print(tenant_entitlements.allow_add_subdomain) ``` #### Response ```json { "errors": [], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "result": { "allow_add_subdomain": { "type": "bool", "value": true }, "allow_auto_accept_invites": { "type": "bool", "value": true }, "cname_setup_allowed": { "type": "bool", "value": true }, "custom_entitlements": [ { "allocation": { "type": "max_count", "value": 0 }, "feature": { "key": "key" } } ], "mhs_certificate_count": { "type": "max_count", "value": 0 }, "partial_setup_allowed": { "type": "bool", "value": true } }, "success": true } ``` ## Domain Types ### Tenant Entitlements - `class TenantEntitlements: …` - `allow_add_subdomain: AllowAddSubdomain` - `type: Literal["bool"]` - `"bool"` - `value: bool` - `allow_auto_accept_invites: AllowAutoAcceptInvites` - `type: Literal["bool"]` - `"bool"` - `value: bool` - `cname_setup_allowed: CNAMESetupAllowed` - `type: Literal["bool"]` - `"bool"` - `value: bool` - `custom_entitlements: Optional[List[CustomEntitlement]]` - `allocation: CustomEntitlementAllocation` - `class CustomEntitlementAllocationOrganizationsAPIMaxCountAllocation: …` - `type: Literal["max_count"]` - `"max_count"` - `value: int` - `class CustomEntitlementAllocationOrganizationsAPIBoolAllocation: …` - `type: Literal["bool"]` - `"bool"` - `value: bool` - `class CustomEntitlementAllocationOrganizationsAPINullAllocation: …` - `type: Literal[""]` - `""` - `value: Optional[object]` - `feature: CustomEntitlementFeature` - `key: str` - `mhs_certificate_count: MhsCertificateCount` - `type: Literal["max_count"]` - `"max_count"` - `value: int` - `partial_setup_allowed: PartialSetupAllowed` - `type: Literal["bool"]` - `"bool"` - `value: bool` # Memberships ## List tenant memberships `tenants.memberships.list(strtenant_id) -> SyncSinglePage[TenantMembership]` **get** `/tenants/{tenant_id}/memberships` List of active members (Cloudflare users) for the Tenant. ### Parameters - `tenant_id: str` ### Returns - `class TenantMembership: …` - `user_email: str` - `user_name: str` - `user_tag: str` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_email=os.environ.get("CLOUDFLARE_EMAIL"), # This is the default and can be omitted api_key=os.environ.get("CLOUDFLARE_API_KEY"), # This is the default and can be omitted ) page = client.tenants.memberships.list( "tenant_id", ) page = page.result[0] print(page.user_email) ``` #### Response ```json { "errors": [], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "result": [ { "user_email": "user_email", "user_name": "user_name", "user_tag": "user_tag" } ], "success": true } ``` ## Domain Types ### Tenant Membership - `class TenantMembership: …` - `user_email: str` - `user_name: str` - `user_tag: str`