Skip to content
Start here

Create a new share

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

Creates a new resource share for sharing Cloudflare resources with other accounts or organizations.

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
Name param.Field[string]

Body param: The name of the share.

Recipients param.Field[[]ResourceSharingNewParamsRecipient]

Body param

AccountID stringoptional

Account identifier.

maxLength32
OrganizationID stringoptional

Organization identifier.

maxLength32
Resources param.Field[[]ResourceSharingNewParamsResource]

Body param

Meta unknown

Resource Metadata.

ResourceAccountID string

Account identifier.

maxLength32
ResourceID string

Share Resource identifier.

maxLength32
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"
ReturnsExpand Collapse
type ResourceSharingNewResponse struct{…}
ID string

Share identifier tag.

maxLength32
AccountID string

Account identifier.

maxLength32
AccountName string

The display name of an account.

Created Time

When the share was created.

formatdate-time
Modified Time

When the share was modified.

formatdate-time
Name string

The name of the share.

OrganizationID string

Organization identifier.

maxLength32
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
Created Time

When the share was created.

formatdate-time
Meta unknown

Resource Metadata.

Modified Time

When the share was modified.

formatdate-time
ResourceAccountID string

Account identifier.

maxLength32
ResourceID string

Share Resource identifier.

maxLength32
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"
ResourceVersion int64

Resource Version.

Status ResourceSharingNewResponseResourcesStatus

Resource Status.

One of the following:
const ResourceSharingNewResponseResourcesStatusActive ResourceSharingNewResponseResourcesStatus = "active"
const ResourceSharingNewResponseResourcesStatusDeleting ResourceSharingNewResponseResourcesStatus = "deleting"
const ResourceSharingNewResponseResourcesStatusDeleted ResourceSharingNewResponseResourcesStatus = "deleted"

Create a new 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"),
  )
  resourceSharing, err := client.ResourceSharing.New(context.TODO(), resource_sharing.ResourceSharingNewParams{
    AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"),
    Name: cloudflare.F("My Shared WAF Managed Rule"),
    Recipients: cloudflare.F([]resource_sharing.ResourceSharingNewParamsRecipient{resource_sharing.ResourceSharingNewParamsRecipient{

    }}),
    Resources: cloudflare.F([]resource_sharing.ResourceSharingNewParamsResource{resource_sharing.ResourceSharingNewParamsResource{
      Meta: cloudflare.F[any](map[string]interface{}{
      }),
      ResourceAccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"),
      ResourceID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"),
      ResourceType: cloudflare.F(resource_sharing.ResourceSharingNewParamsResourcesResourceTypeCustomRuleset),
    }}),
  })
  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": "023e105f4ecef8ad9ca31a8372d0c353",
        "resource_type": "custom-ruleset",
        "resource_version": 0,
        "status": "active"
      }
    ]
  }
}
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": "023e105f4ecef8ad9ca31a8372d0c353",
        "resource_type": "custom-ruleset",
        "resource_version": 0,
        "status": "active"
      }
    ]
  }
}