# Resource Groups ## List Resource Groups `client.iam.resourceGroups.list(ResourceGroupListParamsparams, RequestOptionsoptions?): SinglePage` **get** `/accounts/{account_id}/iam/resource_groups` List all the resource groups for an account. ### Parameters - `params: ResourceGroupListParams` - `account_id: string` Path param: Account identifier tag. - `id?: string` Query param: ID of the resource group to be fetched. - `name?: string` Query param: Name of the resource group to be fetched. ### Returns - `ResourceGroupListResponse` A group of scoped resources. - `id: string` Identifier of the resource group. - `scope: Array` The scope associated to the resource group - `key: string` This is a combination of pre-defined resource name and identifier (like Account ID etc.) - `objects: Array` A list of scope objects for additional context. - `key: string` This is a combination of pre-defined resource name and identifier (like Zone ID etc.) - `meta?: Meta` Attributes associated to the resource group. - `key?: string` - `value?: string` - `name?: string` Name of the resource group. ### Example ```node import Cloudflare from 'cloudflare'; const client = new Cloudflare({ apiToken: process.env['CLOUDFLARE_API_TOKEN'], // This is the default and can be omitted }); // Automatically fetches more pages as needed. for await (const resourceGroupListResponse of client.iam.resourceGroups.list({ account_id: '023e105f4ecef8ad9ca31a8372d0c353', })) { console.log(resourceGroupListResponse.id); } ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": [ { "id": "6d7f2f5f5b1d4a0e9081fdc98d432fd1", "scope": [ { "key": "com.cloudflare.api.account.eb78d65290b24279ba6f44721b3ea3c4", "objects": [ { "key": "com.cloudflare.api.account.zone.23f8d65290b24279ba6f44721b3eaad5" } ] } ], "meta": { "key": "key", "value": "value" }, "name": "com.cloudflare.api.account.eb78d65290b24279ba6f44721b3ea3c4" } ] } ``` ## Resource Group Details `client.iam.resourceGroups.get(stringresourceGroupId, ResourceGroupGetParamsparams, RequestOptionsoptions?): ResourceGroupGetResponse` **get** `/accounts/{account_id}/iam/resource_groups/{resource_group_id}` Get information about a specific resource group in an account. ### Parameters - `resourceGroupId: string` Resource Group identifier tag. - `params: ResourceGroupGetParams` - `account_id: string` Account identifier tag. ### Returns - `ResourceGroupGetResponse` A group of scoped resources. - `id: string` Identifier of the resource group. - `scope: Array` The scope associated to the resource group - `key: string` This is a combination of pre-defined resource name and identifier (like Account ID etc.) - `objects: Array` A list of scope objects for additional context. - `key: string` This is a combination of pre-defined resource name and identifier (like Zone ID etc.) - `meta?: Meta` Attributes associated to the resource group. - `key?: string` - `value?: string` - `name?: string` Name of the resource group. ### Example ```node import Cloudflare from 'cloudflare'; const client = new Cloudflare({ apiToken: process.env['CLOUDFLARE_API_TOKEN'], // This is the default and can be omitted }); const resourceGroup = await client.iam.resourceGroups.get('023e105f4ecef8ad9ca31a8372d0c353', { account_id: '023e105f4ecef8ad9ca31a8372d0c353', }); console.log(resourceGroup.id); ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "id": "6d7f2f5f5b1d4a0e9081fdc98d432fd1", "scope": [ { "key": "com.cloudflare.api.account.eb78d65290b24279ba6f44721b3ea3c4", "objects": [ { "key": "com.cloudflare.api.account.zone.23f8d65290b24279ba6f44721b3eaad5" } ] } ], "meta": { "key": "key", "value": "value" }, "name": "com.cloudflare.api.account.eb78d65290b24279ba6f44721b3ea3c4" } } ``` ## Create Resource Group `client.iam.resourceGroups.create(ResourceGroupCreateParamsparams, RequestOptionsoptions?): ResourceGroupCreateResponse` **post** `/accounts/{account_id}/iam/resource_groups` Create a new Resource Group under the specified account. ### Parameters - `params: ResourceGroupCreateParams` - `account_id: string` Path param: Account identifier tag. - `name: string` Body param: Name of the resource group - `scope: Scope` Body param: A scope is a combination of scope objects which provides additional context. - `key: string` This is a combination of pre-defined resource name and identifier (like Account ID etc.) - `objects: Array` A list of scope objects for additional context. The number of Scope objects should not be zero. - `key: string` This is a combination of pre-defined resource name and identifier (like Zone ID etc.) ### Returns - `ResourceGroupCreateResponse` A group of scoped resources. - `id: string` Identifier of the resource group. - `scope: Array` The scope associated to the resource group - `key: string` This is a combination of pre-defined resource name and identifier (like Account ID etc.) - `objects: Array` A list of scope objects for additional context. - `key: string` This is a combination of pre-defined resource name and identifier (like Zone ID etc.) - `meta?: Meta` Attributes associated to the resource group. - `key?: string` - `value?: string` - `name?: string` Name of the resource group. ### Example ```node import Cloudflare from 'cloudflare'; const client = new Cloudflare({ apiToken: process.env['CLOUDFLARE_API_TOKEN'], // This is the default and can be omitted }); const resourceGroup = await client.iam.resourceGroups.create({ account_id: '023e105f4ecef8ad9ca31a8372d0c353', name: 'NewResourceGroup', scope: { key: 'com.cloudflare.api.account.eb78d65290b24279ba6f44721b3ea3c4', objects: [{ key: 'com.cloudflare.api.account.zone.23f8d65290b24279ba6f44721b3eaad5' }], }, }); console.log(resourceGroup.id); ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "id": "6d7f2f5f5b1d4a0e9081fdc98d432fd1", "scope": [ { "key": "com.cloudflare.api.account.eb78d65290b24279ba6f44721b3ea3c4", "objects": [ { "key": "com.cloudflare.api.account.zone.23f8d65290b24279ba6f44721b3eaad5" } ] } ], "meta": { "key": "key", "value": "value" }, "name": "com.cloudflare.api.account.eb78d65290b24279ba6f44721b3ea3c4" } } ``` ## Update Resource Group `client.iam.resourceGroups.update(stringresourceGroupId, ResourceGroupUpdateParamsparams, RequestOptionsoptions?): ResourceGroupUpdateResponse` **put** `/accounts/{account_id}/iam/resource_groups/{resource_group_id}` Modify an existing resource group. ### Parameters - `resourceGroupId: string` Resource Group identifier tag. - `params: ResourceGroupUpdateParams` - `account_id: string` Path param: Account identifier tag. - `name?: string` Body param: Name of the resource group - `scope?: Scope` Body param: A scope is a combination of scope objects which provides additional context. - `key: string` This is a combination of pre-defined resource name and identifier (like Account ID etc.) - `objects: Array` A list of scope objects for additional context. The number of Scope objects should not be zero. - `key: string` This is a combination of pre-defined resource name and identifier (like Zone ID etc.) ### Returns - `ResourceGroupUpdateResponse` A group of scoped resources. - `id: string` Identifier of the resource group. - `scope: Array` The scope associated to the resource group - `key: string` This is a combination of pre-defined resource name and identifier (like Account ID etc.) - `objects: Array` A list of scope objects for additional context. - `key: string` This is a combination of pre-defined resource name and identifier (like Zone ID etc.) - `meta?: Meta` Attributes associated to the resource group. - `key?: string` - `value?: string` - `name?: string` Name of the resource group. ### Example ```node import Cloudflare from 'cloudflare'; const client = new Cloudflare({ apiToken: process.env['CLOUDFLARE_API_TOKEN'], // This is the default and can be omitted }); const resourceGroup = await client.iam.resourceGroups.update('023e105f4ecef8ad9ca31a8372d0c353', { account_id: '023e105f4ecef8ad9ca31a8372d0c353', }); console.log(resourceGroup.id); ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "id": "6d7f2f5f5b1d4a0e9081fdc98d432fd1", "scope": [ { "key": "com.cloudflare.api.account.eb78d65290b24279ba6f44721b3ea3c4", "objects": [ { "key": "com.cloudflare.api.account.zone.23f8d65290b24279ba6f44721b3eaad5" } ] } ], "meta": { "key": "key", "value": "value" }, "name": "com.cloudflare.api.account.eb78d65290b24279ba6f44721b3ea3c4" } } ``` ## Remove Resource Group `client.iam.resourceGroups.delete(stringresourceGroupId, ResourceGroupDeleteParamsparams, RequestOptionsoptions?): ResourceGroupDeleteResponse | null` **delete** `/accounts/{account_id}/iam/resource_groups/{resource_group_id}` Remove a resource group from an account. ### Parameters - `resourceGroupId: string` Resource Group identifier tag. - `params: ResourceGroupDeleteParams` - `account_id: string` Account identifier tag. ### Returns - `ResourceGroupDeleteResponse` - `id: string` Identifier ### Example ```node import Cloudflare from 'cloudflare'; const client = new Cloudflare({ apiToken: process.env['CLOUDFLARE_API_TOKEN'], // This is the default and can be omitted }); const resourceGroup = await client.iam.resourceGroups.delete('023e105f4ecef8ad9ca31a8372d0c353', { account_id: '023e105f4ecef8ad9ca31a8372d0c353', }); console.log(resourceGroup.id); ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "id": "023e105f4ecef8ad9ca31a8372d0c353" } } ``` ## Domain Types ### Resource Group List Response - `ResourceGroupListResponse` A group of scoped resources. - `id: string` Identifier of the resource group. - `scope: Array` The scope associated to the resource group - `key: string` This is a combination of pre-defined resource name and identifier (like Account ID etc.) - `objects: Array` A list of scope objects for additional context. - `key: string` This is a combination of pre-defined resource name and identifier (like Zone ID etc.) - `meta?: Meta` Attributes associated to the resource group. - `key?: string` - `value?: string` - `name?: string` Name of the resource group. ### Resource Group Get Response - `ResourceGroupGetResponse` A group of scoped resources. - `id: string` Identifier of the resource group. - `scope: Array` The scope associated to the resource group - `key: string` This is a combination of pre-defined resource name and identifier (like Account ID etc.) - `objects: Array` A list of scope objects for additional context. - `key: string` This is a combination of pre-defined resource name and identifier (like Zone ID etc.) - `meta?: Meta` Attributes associated to the resource group. - `key?: string` - `value?: string` - `name?: string` Name of the resource group. ### Resource Group Create Response - `ResourceGroupCreateResponse` A group of scoped resources. - `id: string` Identifier of the resource group. - `scope: Array` The scope associated to the resource group - `key: string` This is a combination of pre-defined resource name and identifier (like Account ID etc.) - `objects: Array` A list of scope objects for additional context. - `key: string` This is a combination of pre-defined resource name and identifier (like Zone ID etc.) - `meta?: Meta` Attributes associated to the resource group. - `key?: string` - `value?: string` - `name?: string` Name of the resource group. ### Resource Group Update Response - `ResourceGroupUpdateResponse` A group of scoped resources. - `id: string` Identifier of the resource group. - `scope: Array` The scope associated to the resource group - `key: string` This is a combination of pre-defined resource name and identifier (like Account ID etc.) - `objects: Array` A list of scope objects for additional context. - `key: string` This is a combination of pre-defined resource name and identifier (like Zone ID etc.) - `meta?: Meta` Attributes associated to the resource group. - `key?: string` - `value?: string` - `name?: string` Name of the resource group. ### Resource Group Delete Response - `ResourceGroupDeleteResponse` - `id: string` Identifier