Skip to content
Start here

Trigger a share creation

client.ResourceSharing.New(ctx, params) (*ResourceSharingNewResponse, error)
POST/accounts/{account_id}/shares

Creates a share that makes a resource available to specific accounts in the caller’s organization, or to the whole organization.

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
params ResourceSharingNewParams
AccountID param.Field[string]

Path param: Account identifier.

maxLength32
minLength32
Name param.Field[string]

Body param: The name of the share.

ExcludedRecipients param.Field[[]ResourceSharingNewParamsExcludedRecipient]Optional

Body param: Accounts to exclude from an organization-targeted share. Only allowed when recipients contains no account entries. The share owner cannot be excluded. Duplicate entries are ignored.

AccountID string

The account to exclude from the organization-targeted share.

maxLength32
minLength32
Recipients param.Field[[]ResourceSharingNewParamsRecipient]Optional

Body param

DeprecatedAccountID stringOptional

This field has been renamed to recipient_account_id. Both names are accepted during the deprecation period.

Deprecated alias for recipient_account_id. Use recipient_account_id instead. The body field collided with the URL path parameter of the same name, which prevented SDK generators from distinguishing the source account (in the URL) from the recipient account (in the body). Both names will continue to be accepted until 2027-05-26 (see x-sunset).

maxLength32
minLength32
OrganizationID stringOptional

Organization identifier.

maxLength32
minLength32
RecipientAccountID stringOptional

The account that will receive the share.

maxLength32
minLength32
Resources param.Field[[]ResourceSharingNewParamsResource]Optional

Body param

Meta unknown

Resource Metadata.

ResourceAccountID string

The account that owns the resource. Must match the account_id in the path.

maxLength32
minLength32
ResourceID string

Identifier assigned by the service that owns the shared resource.

ResourceType ResourceSharingNewParamsResourcesResourceType

Resource Type.

One of the following:
const ResourceSharingNewParamsResourcesResourceTypeCustomRuleset ResourceSharingNewParamsResourcesResourceType = "custom-ruleset"
const ResourceSharingNewParamsResourcesResourceTypeGatewayPolicy ResourceSharingNewParamsResourcesResourceType = "gateway-policy"
const ResourceSharingNewParamsResourcesResourceTypeGatewayDestinationIP ResourceSharingNewParamsResourcesResourceType = "gateway-destination-ip"
const ResourceSharingNewParamsResourcesResourceTypeGatewayBlockPageSettings ResourceSharingNewParamsResourcesResourceType = "gateway-block-page-settings"
const ResourceSharingNewParamsResourcesResourceTypeGatewayExtendedEmailMatching ResourceSharingNewParamsResourcesResourceType = "gateway-extended-email-matching"
const ResourceSharingNewParamsResourcesResourceTypeIdPFederationGrant ResourceSharingNewParamsResourcesResourceType = "idp-federation-grant"
const ResourceSharingNewParamsResourcesResourceTypeTrustGrant ResourceSharingNewParamsResourcesResourceType = "trust-grant"
Tags param.Field[map[string, string]]Optional

Body param: Tags associated with the share.

ReturnsExpand Collapse
type ResourceSharingNewResponse struct{…}
ID string

Share identifier tag.

maxLength32
minLength32
AccountID string

Account identifier.

maxLength32
minLength32
AccountName string

The display name of an account.

Created Time

When the object was created.

formatdate-time
Modified Time

When the object was last modified.

formatdate-time
Name string

The name of the share.

OrganizationID string

Organization identifier.

maxLength32
minLength32
Status ResourceSharingNewResponseStatus
One of the following:
const ResourceSharingNewResponseStatusActive ResourceSharingNewResponseStatus = "active"
const ResourceSharingNewResponseStatusDeleting ResourceSharingNewResponseStatus = "deleting"
const ResourceSharingNewResponseStatusDeleted ResourceSharingNewResponseStatus = "deleted"
TargetType ResourceSharingNewResponseTargetType
One of the following:
const ResourceSharingNewResponseTargetTypeAccount ResourceSharingNewResponseTargetType = "account"
const ResourceSharingNewResponseTargetTypeOrganization ResourceSharingNewResponseTargetType = "organization"
AssociatedRecipientCount int64Optional

The number of recipients in the ‘associated’ state. This field is only included when requested via the ‘include_recipient_counts’ parameter.

AssociatingRecipientCount int64Optional

The number of recipients in the ‘associating’ state. This field is only included when requested via the ‘include_recipient_counts’ parameter.

DisassociatedRecipientCount int64Optional

The number of recipients in the ‘disassociated’ state. This field is only included when requested via the ‘include_recipient_counts’ parameter.

DisassociatingRecipientCount int64Optional

The number of recipients in the ‘disassociating’ state. This field is only included when requested via the ‘include_recipient_counts’ parameter.

Kind ResourceSharingNewResponseKindOptional
One of the following:
const ResourceSharingNewResponseKindSent ResourceSharingNewResponseKind = "sent"
const ResourceSharingNewResponseKindReceived ResourceSharingNewResponseKind = "received"
Resources []ResourceSharingNewResponseResourceOptional

A list of resources that are part of the share. This field is only included when requested via the ‘include_resources’ parameter.

ID string

Share Resource identifier.

maxLength32
minLength32
Created Time

When the object was created.

formatdate-time
Meta unknown

Resource Metadata.

Modified Time

When the object was last modified.

formatdate-time
ResourceAccountID string

Account identifier.

maxLength32
minLength32
ResourceID string

Identifier assigned by the service that owns the shared resource.

ResourceType ResourceSharingNewResponseResourcesResourceType

Resource Type.

One of the following:
const ResourceSharingNewResponseResourcesResourceTypeCustomRuleset ResourceSharingNewResponseResourcesResourceType = "custom-ruleset"
const ResourceSharingNewResponseResourcesResourceTypeGatewayPolicy ResourceSharingNewResponseResourcesResourceType = "gateway-policy"
const ResourceSharingNewResponseResourcesResourceTypeGatewayDestinationIP ResourceSharingNewResponseResourcesResourceType = "gateway-destination-ip"
const ResourceSharingNewResponseResourcesResourceTypeGatewayBlockPageSettings ResourceSharingNewResponseResourcesResourceType = "gateway-block-page-settings"
const ResourceSharingNewResponseResourcesResourceTypeGatewayExtendedEmailMatching ResourceSharingNewResponseResourcesResourceType = "gateway-extended-email-matching"
const ResourceSharingNewResponseResourcesResourceTypeIdPFederationGrant ResourceSharingNewResponseResourcesResourceType = "idp-federation-grant"
const ResourceSharingNewResponseResourcesResourceTypeTrustGrant ResourceSharingNewResponseResourcesResourceType = "trust-grant"
ResourceVersion int64

Resource Version.

Status ResourceSharingNewResponseResourcesStatus

Resource Status.

One of the following:
const ResourceSharingNewResponseResourcesStatusActive ResourceSharingNewResponseResourcesStatus = "active"
const ResourceSharingNewResponseResourcesStatusDeleting ResourceSharingNewResponseResourcesStatus = "deleting"
const ResourceSharingNewResponseResourcesStatusDeleted ResourceSharingNewResponseResourcesStatus = "deleted"
Tags map[string, string]Optional

Tags associated with the share. Included in create and update responses when tags are supplied, and in read responses when the include_tags_from parameter is set.

Trigger a share creation

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"),
  )
  resourceSharing, err := client.ResourceSharing.New(context.TODO(), resource_sharing.ResourceSharingNewParams{
    AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"),
    Name: cloudflare.F("My Shared WAF Managed Rule"),
  })
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", resourceSharing.ID)
}
{
  "errors": [
    {
      "code": 1000,
      "message": "message",
      "documentation_url": "documentation_url",
      "source": {
        "pointer": "pointer"
      }
    }
  ],
  "success": true,
  "result": {
    "id": "3fd85f74b32742f1bff64a85009dda07",
    "account_id": "023e105f4ecef8ad9ca31a8372d0c353",
    "account_name": "Account A",
    "created": "2023-09-21T18:56:32.624632Z",
    "modified": "2023-09-21T18:56:32.624632Z",
    "name": "My Shared WAF Managed Rule",
    "organization_id": "023e105f4ecef8ad9ca31a8372d0c353",
    "status": "active",
    "target_type": "account",
    "associated_recipient_count": 10,
    "associating_recipient_count": 1,
    "disassociated_recipient_count": 0,
    "disassociating_recipient_count": 0,
    "kind": "sent",
    "resources": [
      {
        "id": "023e105f4ecef8ad9ca31a8372d0c353",
        "created": "2023-09-21T18:56:32.624632Z",
        "meta": {},
        "modified": "2023-09-21T18:56:32.624632Z",
        "resource_account_id": "023e105f4ecef8ad9ca31a8372d0c353",
        "resource_id": "0a679032-bbb2-4b7e-9acc-dd5c5cb27a17",
        "resource_type": "custom-ruleset",
        "resource_version": 0,
        "status": "active"
      }
    ],
    "tags": {
      "foo": "string"
    }
  }
}
Returns Examples
{
  "errors": [
    {
      "code": 1000,
      "message": "message",
      "documentation_url": "documentation_url",
      "source": {
        "pointer": "pointer"
      }
    }
  ],
  "success": true,
  "result": {
    "id": "3fd85f74b32742f1bff64a85009dda07",
    "account_id": "023e105f4ecef8ad9ca31a8372d0c353",
    "account_name": "Account A",
    "created": "2023-09-21T18:56:32.624632Z",
    "modified": "2023-09-21T18:56:32.624632Z",
    "name": "My Shared WAF Managed Rule",
    "organization_id": "023e105f4ecef8ad9ca31a8372d0c353",
    "status": "active",
    "target_type": "account",
    "associated_recipient_count": 10,
    "associating_recipient_count": 1,
    "disassociated_recipient_count": 0,
    "disassociating_recipient_count": 0,
    "kind": "sent",
    "resources": [
      {
        "id": "023e105f4ecef8ad9ca31a8372d0c353",
        "created": "2023-09-21T18:56:32.624632Z",
        "meta": {},
        "modified": "2023-09-21T18:56:32.624632Z",
        "resource_account_id": "023e105f4ecef8ad9ca31a8372d0c353",
        "resource_id": "0a679032-bbb2-4b7e-9acc-dd5c5cb27a17",
        "resource_type": "custom-ruleset",
        "resource_version": 0,
        "status": "active"
      }
    ],
    "tags": {
      "foo": "string"
    }
  }
}