Skip to content
Start here

Delete a share recipient

client.ResourceSharing.Recipients.Delete(ctx, shareID, recipientID, body) (*RecipientDeleteResponse, error)
DELETE/accounts/{account_id}/shares/{share_id}/recipients/{recipient_id}

Performs a soft delete: sets the recipient’s desired_association_status to disassociated, which signals the background reconciliation workflow (Temporal) to remove the shared resources from the recipient account. The recipient record remains in the database for audit purposes and is still returned by GET /accounts/{account_id}/shares/{share_id}/recipients with its updated status.

Resource access is not fully removed until the workflow completes and current_association_status transitions to disassociated. The recipient record itself is never physically deleted.

Security

API Email + API Key

The previous authorization scheme for interacting with the Cloudflare API, used in conjunction with a Global API key.

Example:X-Auth-Email: user@example.com

The previous authorization scheme for interacting with the Cloudflare API. When possible, use API tokens instead of Global API keys.

Example:X-Auth-Key: 144c9defac04969c7bfad8efaa8ea194
ParametersExpand Collapse
shareID string

Share identifier tag.

maxLength32
recipientID string

Share Recipient identifier tag.

maxLength32
body RecipientDeleteParams
AccountID param.Field[string]

Account identifier.

maxLength32
ReturnsExpand Collapse
type RecipientDeleteResponse struct{…}

A recipient of a share. The association_status field tracks the lifecycle of the shared resources in the recipient account. All recipients are returned by the list endpoint regardless of status; filter client-side if only active recipients are needed.

ID string

Share Recipient identifier tag.

maxLength32
AccountID string

Account identifier.

maxLength32
AssociationStatus RecipientDeleteResponseAssociationStatus

The current state of the recipient relative to the share. The desired_association_status (not exposed in the response) tracks the target state set by the API; the background reconciliation workflow drives current_association_status toward it.

  • associating — The recipient was recently added; the workflow is pushing shared resources into the recipient account.
  • associated — Shared resources have been successfully applied to the recipient account.
  • disassociating — The recipient was removed (via DELETE or PUT replacement); the workflow is removing shared resources from the recipient account.
  • disassociated — Shared resources have been removed from the recipient account. The recipient record remains in the database.
One of the following:
const RecipientDeleteResponseAssociationStatusAssociating RecipientDeleteResponseAssociationStatus = "associating"
const RecipientDeleteResponseAssociationStatusAssociated RecipientDeleteResponseAssociationStatus = "associated"
const RecipientDeleteResponseAssociationStatusDisassociating RecipientDeleteResponseAssociationStatus = "disassociating"
const RecipientDeleteResponseAssociationStatusDisassociated RecipientDeleteResponseAssociationStatus = "disassociated"
Created Time

When the share was created.

formatdate-time
Modified Time

When the share was modified.

formatdate-time
Resources []RecipientDeleteResponseResourceOptional
Error string

Share Recipient error message.

ResourceID string

Share Resource identifier.

maxLength32
ResourceVersion int64

Resource Version.

Terminal bool

Whether the error is terminal or will be continually retried.

Delete a share recipient

package main

import (
  "context"
  "fmt"

  "github.com/cloudflare/cloudflare-go"
  "github.com/cloudflare/cloudflare-go/option"
  "github.com/cloudflare/cloudflare-go/resource_sharing"
)

func main() {
  client := cloudflare.NewClient(
    option.WithAPIKey("144c9defac04969c7bfad8efaa8ea194"),
    option.WithAPIEmail("user@example.com"),
  )
  recipient, err := client.ResourceSharing.Recipients.Delete(
    context.TODO(),
    "3fd85f74b32742f1bff64a85009dda07",
    "3fd85f74b32742f1bff64a85009dda07",
    resource_sharing.RecipientDeleteParams{
      AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"),
    },
  )
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", recipient.ID)
}
{
  "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
      }
    ]
  }
}
Returns Examples
{
  "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
      }
    ]
  }
}