Skip to content
Start here

Create a new share recipient

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

Path param: Account identifier.

maxLength32
PathAccountID param.Field[string]

Path param: Account identifier.

maxLength32
OrganizationID param.Field[string]Optional

Body param: Organization identifier.

maxLength32
RecipientAccountID param.Field[string]Optional

Body param: The account that will receive the share.

maxLength32
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
AccountID string

Account identifier.

maxLength32
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 share was created.

formatdate-time
Modified Time

When the share was modified.

formatdate-time
Resources []RecipientNewResponseResourceOptional
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.

Create a new 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.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": "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
      }
    ]
  }
}