# Recipients ## List share recipients by share ID `resource_sharing.recipients.list(strshare_id, RecipientListParams**kwargs) -> SyncV4PagePaginationArray[RecipientListResponse]` **get** `/accounts/{account_id}/shares/{share_id}/recipients` List share recipients by share ID. ### Parameters - `account_id: str` Account identifier. - `share_id: str` Share identifier tag. - `include_resources: Optional[bool]` Include resources in the response. - `page: Optional[int]` Page number. - `per_page: Optional[int]` Number of objects to return per page. ### Returns - `class RecipientListResponse: …` - `id: str` Share Recipient identifier tag. - `account_id: str` Account identifier. - `association_status: Literal["associating", "associated", "disassociating", "disassociated"]` Share Recipient association status. - `"associating"` - `"associated"` - `"disassociating"` - `"disassociated"` - `created: datetime` When the share was created. - `modified: datetime` When the share was modified. - `resources: Optional[List[Resource]]` - `error: str` Share Recipient error message. - `resource_id: str` Share Resource identifier. - `resource_version: int` Resource Version. - `terminal: bool` Whether the error is terminal or will be continually retried. ### 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.resource_sharing.recipients.list( share_id="3fd85f74b32742f1bff64a85009dda07", account_id="023e105f4ecef8ad9ca31a8372d0c353", ) page = page.result[0] print(page.id) ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": [ { "id": "3fd85f74b32742f1bff64a85009dda07", "account_id": "023e105f4ecef8ad9ca31a8372d0c353", "association_status": "associating", "created": "2023-09-21T18:56:32.624632Z", "modified": "2023-09-21T18:56:32.624632Z", "resources": [ { "error": "Recipient is missing necessary entitlement", "resource_id": "023e105f4ecef8ad9ca31a8372d0c353", "resource_version": 0, "terminal": true } ] } ], "result_info": { "count": 1, "page": 1, "per_page": 20, "total_count": 2000, "total_pages": 50 } } ``` ## Get share recipient by ID `resource_sharing.recipients.get(strrecipient_id, RecipientGetParams**kwargs) -> RecipientGetResponse` **get** `/accounts/{account_id}/shares/{share_id}/recipients/{recipient_id}` Get share recipient by ID. ### Parameters - `account_id: str` Account identifier. - `share_id: str` Share identifier tag. - `recipient_id: str` Share Recipient identifier tag. - `include_resources: Optional[bool]` Include resources in the response. ### Returns - `class RecipientGetResponse: …` - `id: str` Share Recipient identifier tag. - `account_id: str` Account identifier. - `association_status: Literal["associating", "associated", "disassociating", "disassociated"]` Share Recipient association status. - `"associating"` - `"associated"` - `"disassociating"` - `"disassociated"` - `created: datetime` When the share was created. - `modified: datetime` When the share was modified. - `resources: Optional[List[Resource]]` - `error: str` Share Recipient error message. - `resource_id: str` Share Resource identifier. - `resource_version: int` Resource Version. - `terminal: bool` Whether the error is terminal or will be continually retried. ### 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 ) recipient = client.resource_sharing.recipients.get( recipient_id="3fd85f74b32742f1bff64a85009dda07", account_id="023e105f4ecef8ad9ca31a8372d0c353", share_id="3fd85f74b32742f1bff64a85009dda07", ) print(recipient.id) ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "id": "3fd85f74b32742f1bff64a85009dda07", "account_id": "023e105f4ecef8ad9ca31a8372d0c353", "association_status": "associating", "created": "2023-09-21T18:56:32.624632Z", "modified": "2023-09-21T18:56:32.624632Z", "resources": [ { "error": "Recipient is missing necessary entitlement", "resource_id": "023e105f4ecef8ad9ca31a8372d0c353", "resource_version": 0, "terminal": true } ] } } ``` ## Create a new share recipient `resource_sharing.recipients.create(strshare_id, RecipientCreateParams**kwargs) -> RecipientCreateResponse` **post** `/accounts/{account_id}/shares/{share_id}/recipients` Adds a recipient to a resource share, granting them access to the shared resources. ### Parameters - `account_id: str` Account identifier. - `share_id: str` Share identifier tag. - `account_id: str` Account identifier. - `organization_id: Optional[str]` Organization identifier. ### Returns - `class RecipientCreateResponse: …` - `id: str` Share Recipient identifier tag. - `account_id: str` Account identifier. - `association_status: Literal["associating", "associated", "disassociating", "disassociated"]` Share Recipient association status. - `"associating"` - `"associated"` - `"disassociating"` - `"disassociated"` - `created: datetime` When the share was created. - `modified: datetime` When the share was modified. - `resources: Optional[List[Resource]]` - `error: str` Share Recipient error message. - `resource_id: str` Share Resource identifier. - `resource_version: int` Resource Version. - `terminal: bool` Whether the error is terminal or will be continually retried. ### 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 ) recipient = client.resource_sharing.recipients.create( share_id="3fd85f74b32742f1bff64a85009dda07", path_account_id="023e105f4ecef8ad9ca31a8372d0c353", ) print(recipient.id) ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "id": "3fd85f74b32742f1bff64a85009dda07", "account_id": "023e105f4ecef8ad9ca31a8372d0c353", "association_status": "associating", "created": "2023-09-21T18:56:32.624632Z", "modified": "2023-09-21T18:56:32.624632Z", "resources": [ { "error": "Recipient is missing necessary entitlement", "resource_id": "023e105f4ecef8ad9ca31a8372d0c353", "resource_version": 0, "terminal": true } ] } } ``` ## Delete a share recipient `resource_sharing.recipients.delete(strrecipient_id, RecipientDeleteParams**kwargs) -> RecipientDeleteResponse` **delete** `/accounts/{account_id}/shares/{share_id}/recipients/{recipient_id}` Deletion is not immediate, an updated share recipient object with a new status will be returned. ### Parameters - `account_id: str` Account identifier. - `share_id: str` Share identifier tag. - `recipient_id: str` Share Recipient identifier tag. ### Returns - `class RecipientDeleteResponse: …` - `id: str` Share Recipient identifier tag. - `account_id: str` Account identifier. - `association_status: Literal["associating", "associated", "disassociating", "disassociated"]` Share Recipient association status. - `"associating"` - `"associated"` - `"disassociating"` - `"disassociated"` - `created: datetime` When the share was created. - `modified: datetime` When the share was modified. - `resources: Optional[List[Resource]]` - `error: str` Share Recipient error message. - `resource_id: str` Share Resource identifier. - `resource_version: int` Resource Version. - `terminal: bool` Whether the error is terminal or will be continually retried. ### 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 ) recipient = client.resource_sharing.recipients.delete( recipient_id="3fd85f74b32742f1bff64a85009dda07", account_id="023e105f4ecef8ad9ca31a8372d0c353", share_id="3fd85f74b32742f1bff64a85009dda07", ) print(recipient.id) ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "id": "3fd85f74b32742f1bff64a85009dda07", "account_id": "023e105f4ecef8ad9ca31a8372d0c353", "association_status": "associating", "created": "2023-09-21T18:56:32.624632Z", "modified": "2023-09-21T18:56:32.624632Z", "resources": [ { "error": "Recipient is missing necessary entitlement", "resource_id": "023e105f4ecef8ad9ca31a8372d0c353", "resource_version": 0, "terminal": true } ] } } ``` ## Domain Types ### Recipient List Response - `class RecipientListResponse: …` - `id: str` Share Recipient identifier tag. - `account_id: str` Account identifier. - `association_status: Literal["associating", "associated", "disassociating", "disassociated"]` Share Recipient association status. - `"associating"` - `"associated"` - `"disassociating"` - `"disassociated"` - `created: datetime` When the share was created. - `modified: datetime` When the share was modified. - `resources: Optional[List[Resource]]` - `error: str` Share Recipient error message. - `resource_id: str` Share Resource identifier. - `resource_version: int` Resource Version. - `terminal: bool` Whether the error is terminal or will be continually retried. ### Recipient Get Response - `class RecipientGetResponse: …` - `id: str` Share Recipient identifier tag. - `account_id: str` Account identifier. - `association_status: Literal["associating", "associated", "disassociating", "disassociated"]` Share Recipient association status. - `"associating"` - `"associated"` - `"disassociating"` - `"disassociated"` - `created: datetime` When the share was created. - `modified: datetime` When the share was modified. - `resources: Optional[List[Resource]]` - `error: str` Share Recipient error message. - `resource_id: str` Share Resource identifier. - `resource_version: int` Resource Version. - `terminal: bool` Whether the error is terminal or will be continually retried. ### Recipient Create Response - `class RecipientCreateResponse: …` - `id: str` Share Recipient identifier tag. - `account_id: str` Account identifier. - `association_status: Literal["associating", "associated", "disassociating", "disassociated"]` Share Recipient association status. - `"associating"` - `"associated"` - `"disassociating"` - `"disassociated"` - `created: datetime` When the share was created. - `modified: datetime` When the share was modified. - `resources: Optional[List[Resource]]` - `error: str` Share Recipient error message. - `resource_id: str` Share Resource identifier. - `resource_version: int` Resource Version. - `terminal: bool` Whether the error is terminal or will be continually retried. ### Recipient Delete Response - `class RecipientDeleteResponse: …` - `id: str` Share Recipient identifier tag. - `account_id: str` Account identifier. - `association_status: Literal["associating", "associated", "disassociating", "disassociated"]` Share Recipient association status. - `"associating"` - `"associated"` - `"disassociating"` - `"disassociated"` - `created: datetime` When the share was created. - `modified: datetime` When the share was modified. - `resources: Optional[List[Resource]]` - `error: str` Share Recipient error message. - `resource_id: str` Share Resource identifier. - `resource_version: int` Resource Version. - `terminal: bool` Whether the error is terminal or will be continually retried.