## 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. ### Parameters - `params ResourceSharingNewParams` - `AccountID param.Field[string]` Path param: Account identifier. - `Name param.Field[string]` Body param: The name of the share. - `Recipients param.Field[[]ResourceSharingNewParamsRecipient]` Body param - `AccountID string` 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`). - `OrganizationID string` Organization identifier. - `RecipientAccountID string` The account that will receive the share. - `Resources param.Field[[]ResourceSharingNewParamsResource]` Body param - `Meta unknown` Resource Metadata. - `ResourceAccountID string` Account identifier. - `ResourceID string` Share Resource identifier. - `ResourceType ResourceSharingNewParamsResourcesResourceType` Resource Type. - `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"` ### Returns - `type ResourceSharingNewResponse struct{…}` - `ID string` Share identifier tag. - `AccountID string` Account identifier. - `AccountName string` The display name of an account. - `Created Time` When the share was created. - `Modified Time` When the share was modified. - `Name string` The name of the share. - `OrganizationID string` Organization identifier. - `Status ResourceSharingNewResponseStatus` - `const ResourceSharingNewResponseStatusActive ResourceSharingNewResponseStatus = "active"` - `const ResourceSharingNewResponseStatusDeleting ResourceSharingNewResponseStatus = "deleting"` - `const ResourceSharingNewResponseStatusDeleted ResourceSharingNewResponseStatus = "deleted"` - `TargetType ResourceSharingNewResponseTargetType` - `const ResourceSharingNewResponseTargetTypeAccount ResourceSharingNewResponseTargetType = "account"` - `const ResourceSharingNewResponseTargetTypeOrganization ResourceSharingNewResponseTargetType = "organization"` - `AssociatedRecipientCount int64` The number of recipients in the 'associated' state. This field is only included when requested via the 'include_recipient_counts' parameter. - `AssociatingRecipientCount int64` The number of recipients in the 'associating' state. This field is only included when requested via the 'include_recipient_counts' parameter. - `DisassociatedRecipientCount int64` The number of recipients in the 'disassociated' state. This field is only included when requested via the 'include_recipient_counts' parameter. - `DisassociatingRecipientCount int64` The number of recipients in the 'disassociating' state. This field is only included when requested via the 'include_recipient_counts' parameter. - `Kind ResourceSharingNewResponseKind` - `const ResourceSharingNewResponseKindSent ResourceSharingNewResponseKind = "sent"` - `const ResourceSharingNewResponseKindReceived ResourceSharingNewResponseKind = "received"` - `Resources []ResourceSharingNewResponseResource` 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. - `Created Time` When the share was created. - `Meta unknown` Resource Metadata. - `Modified Time` When the share was modified. - `ResourceAccountID string` Account identifier. - `ResourceID string` Share Resource identifier. - `ResourceType ResourceSharingNewResponseResourcesResourceType` Resource Type. - `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"` - `ResourceVersion int64` Resource Version. - `Status ResourceSharingNewResponseResourcesStatus` Resource Status. - `const ResourceSharingNewResponseResourcesStatusActive ResourceSharingNewResponseResourcesStatus = "active"` - `const ResourceSharingNewResponseResourcesStatusDeleting ResourceSharingNewResponseResourcesStatus = "deleting"` - `const ResourceSharingNewResponseResourcesStatusDeleted ResourceSharingNewResponseResourcesStatus = "deleted"` ### Example ```go 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) } ``` #### Response ```json { "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" } ] } } ```