Skip to content
Start here

Trigger a recipient addition to a share

client.ResourceSharing.Recipients.New(ctx, shareID, params) (*RecipientNewResponse, error)
POST/accounts/{account_id}/shares/{share_id}/recipients

Adds a single recipient to an account-targeted resource share, granting them access to the shared resources. The recipient account must belong to the same organization as the share owner.

To replace the entire recipient list in one call, use PUT /accounts/{account_id}/shares/{share_id}/recipients instead.

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
minLength32
params RecipientNewParams
PathAccountID param.Field[string]

Path param: Account identifier.

maxLength32
minLength32
PathAccountID param.Field[string]

Path param: Account identifier.

maxLength32
minLength32
RecipientAccountID param.Field[string]Optional

Body param: The account that will receive the share.

maxLength32
minLength32
ReturnsExpand Collapse
type RecipientNewResponse 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
minLength32
AccountID string

Account identifier.

maxLength32
minLength32
AssociationStatus RecipientNewResponseAssociationStatus

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 RecipientNewResponseAssociationStatusAssociating RecipientNewResponseAssociationStatus = "associating"
const RecipientNewResponseAssociationStatusAssociated RecipientNewResponseAssociationStatus = "associated"
const RecipientNewResponseAssociationStatusDisassociating RecipientNewResponseAssociationStatus = "disassociating"
const RecipientNewResponseAssociationStatusDisassociated RecipientNewResponseAssociationStatus = "disassociated"
Created Time

When the object was created.

formatdate-time
Modified Time

When the object was last modified.

formatdate-time
Resources []RecipientNewResponseResourceOptional
Error string

Error from the most recent attempt to apply the resource to the recipient. Empty string when no error has been recorded.

ResourceID string

Identifier assigned by the service that owns the shared resource.

ResourceVersion int64

Resource version applied to the recipient, if reconciliation has occurred.

Terminal bool

Whether the error is terminal or will be continually retried.

Trigger a recipient addition to a share

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.New(
    context.TODO(),
    "3fd85f74b32742f1bff64a85009dda07",
    resource_sharing.RecipientNewParams{
      PathAccountID: 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": "0a679032-bbb2-4b7e-9acc-dd5c5cb27a17",
        "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": "0a679032-bbb2-4b7e-9acc-dd5c5cb27a17",
        "resource_version": 0,
        "terminal": true
      }
    ]
  }
}