> ## Documentation Index
> Fetch the complete documentation index at: https://docs.pinkfish.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# google-iam

> Identity and access management

**Server path:** `/google-iam` | **Type:** Application | **PCID required:** Yes

## Tools

| Tool                                                                              | Description                                                      |
| --------------------------------------------------------------------------------- | ---------------------------------------------------------------- |
| [`google-iam_list_service_accounts`](#google-iam_list_service_accounts)           | List all service accounts in a Google Cloud project.             |
| [`google-iam_get_service_account`](#google-iam_get_service_account)               | Get details of a specific service account by email address.      |
| [`google-iam_create_service_account`](#google-iam_create_service_account)         | Create a new service account in a Google Cloud project.          |
| [`google-iam_update_service_account`](#google-iam_update_service_account)         | Update a service account display name or description.            |
| [`google-iam_delete_service_account`](#google-iam_delete_service_account)         | Delete a service account from a Google Cloud project.            |
| [`google-iam_list_service_account_keys`](#google-iam_list_service_account_keys)   | List all keys for a specific service account.                    |
| [`google-iam_create_service_account_key`](#google-iam_create_service_account_key) | Create a new key for a service account.                          |
| [`google-iam_delete_service_account_key`](#google-iam_delete_service_account_key) | Delete a service account key.                                    |
| [`google-iam_get_iam_policy`](#google-iam_get_iam_policy)                         | Get the IAM policy for a Google Cloud project.                   |
| [`google-iam_set_iam_policy`](#google-iam_set_iam_policy)                         | Set the IAM policy for a Google Cloud project.                   |
| [`google-iam_test_iam_permissions`](#google-iam_test_iam_permissions)             | Test which permissions the caller has on a Google Cloud project. |
| [`google-iam_list_predefined_roles`](#google-iam_list_predefined_roles)           | List all predefined Google Cloud IAM roles.                      |
| [`google-iam_list_custom_roles`](#google-iam_list_custom_roles)                   | List custom IAM roles in a Google Cloud project.                 |
| [`google-iam_get_role`](#google-iam_get_role)                                     | Get details of a specific custom IAM role.                       |
| [`google-iam_create_role`](#google-iam_create_role)                               | Create a new custom IAM role in a Google Cloud project.          |
| [`google-iam_update_role`](#google-iam_update_role)                               | Update a custom IAM role in a Google Cloud project.              |
| [`google-iam_delete_role`](#google-iam_delete_role)                               | Delete a custom IAM role from a Google Cloud project.            |

***

## google-iam\_list\_service\_accounts

List all service accounts in a Google Cloud project.

**Parameters:**

| Parameter   | Type   | Required | Default | Description             |
| ----------- | ------ | -------- | ------- | ----------------------- |
| `projectId` | string | Yes      | —       | Google Cloud Project ID |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for Google IAM Connection"
      },
      "projectId": {
        "type": "string",
        "description": "Google Cloud Project ID"
      }
    },
    "required": [
      "PCID",
      "projectId"
    ]
  }
  ```
</Expandable>

***

## google-iam\_get\_service\_account

Get details of a specific service account by email address.

**Parameters:**

| Parameter             | Type   | Required | Default | Description                   |
| --------------------- | ------ | -------- | ------- | ----------------------------- |
| `projectId`           | string | Yes      | —       | Google Cloud Project ID       |
| `serviceAccountEmail` | string | Yes      | —       | Service account email address |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for Google IAM Connection"
      },
      "projectId": {
        "type": "string",
        "description": "Google Cloud Project ID"
      },
      "serviceAccountEmail": {
        "type": "string",
        "description": "Service account email address"
      }
    },
    "required": [
      "PCID",
      "projectId",
      "serviceAccountEmail"
    ]
  }
  ```
</Expandable>

***

## google-iam\_create\_service\_account

Create a new service account in a Google Cloud project.

**Parameters:**

| Parameter     | Type   | Required | Default | Description                                       |
| ------------- | ------ | -------- | ------- | ------------------------------------------------- |
| `projectId`   | string | Yes      | —       | Google Cloud Project ID                           |
| `accountId`   | string | Yes      | —       | Unique ID for the service account (used in email) |
| `displayName` | string | No       | —       | Human-readable display name                       |
| `description` | string | No       | —       | Description of the service account                |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for Google IAM Connection"
      },
      "projectId": {
        "type": "string",
        "description": "Google Cloud Project ID"
      },
      "accountId": {
        "type": "string",
        "description": "Unique ID for the service account (used in email)"
      },
      "displayName": {
        "type": "string",
        "description": "Human-readable display name"
      },
      "description": {
        "type": "string",
        "description": "Description of the service account"
      }
    },
    "required": [
      "PCID",
      "projectId",
      "accountId"
    ]
  }
  ```
</Expandable>

***

## google-iam\_update\_service\_account

Update a service account display name or description.

**Parameters:**

| Parameter             | Type   | Required | Default | Description                                                    |
| --------------------- | ------ | -------- | ------- | -------------------------------------------------------------- |
| `projectId`           | string | Yes      | —       | Google Cloud Project ID                                        |
| `serviceAccountEmail` | string | Yes      | —       | Service account email address                                  |
| `displayName`         | string | No       | —       | Updated display name                                           |
| `description`         | string | No       | —       | Updated description                                            |
| `etag`                | string | Yes      | —       | Current etag of the service account for optimistic concurrency |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for Google IAM Connection"
      },
      "projectId": {
        "type": "string",
        "description": "Google Cloud Project ID"
      },
      "serviceAccountEmail": {
        "type": "string",
        "description": "Service account email address"
      },
      "displayName": {
        "type": "string",
        "description": "Updated display name"
      },
      "description": {
        "type": "string",
        "description": "Updated description"
      },
      "etag": {
        "type": "string",
        "description": "Current etag of the service account for optimistic concurrency"
      }
    },
    "required": [
      "PCID",
      "projectId",
      "serviceAccountEmail",
      "etag"
    ]
  }
  ```
</Expandable>

***

## google-iam\_delete\_service\_account

Delete a service account from a Google Cloud project.

**Parameters:**

| Parameter             | Type   | Required | Default | Description                             |
| --------------------- | ------ | -------- | ------- | --------------------------------------- |
| `projectId`           | string | Yes      | —       | Google Cloud Project ID                 |
| `serviceAccountEmail` | string | Yes      | —       | Service account email address to delete |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for Google IAM Connection"
      },
      "projectId": {
        "type": "string",
        "description": "Google Cloud Project ID"
      },
      "serviceAccountEmail": {
        "type": "string",
        "description": "Service account email address to delete"
      }
    },
    "required": [
      "PCID",
      "projectId",
      "serviceAccountEmail"
    ]
  }
  ```
</Expandable>

***

## google-iam\_list\_service\_account\_keys

List all keys for a specific service account.

**Parameters:**

| Parameter             | Type   | Required | Default | Description                   |
| --------------------- | ------ | -------- | ------- | ----------------------------- |
| `projectId`           | string | Yes      | —       | Google Cloud Project ID       |
| `serviceAccountEmail` | string | Yes      | —       | Service account email address |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for Google IAM Connection"
      },
      "projectId": {
        "type": "string",
        "description": "Google Cloud Project ID"
      },
      "serviceAccountEmail": {
        "type": "string",
        "description": "Service account email address"
      }
    },
    "required": [
      "PCID",
      "projectId",
      "serviceAccountEmail"
    ]
  }
  ```
</Expandable>

***

## google-iam\_create\_service\_account\_key

Create a new key for a service account.

**Parameters:**

| Parameter             | Type   | Required | Default                          | Description                                              |
| --------------------- | ------ | -------- | -------------------------------- | -------------------------------------------------------- |
| `projectId`           | string | Yes      | —                                | Google Cloud Project ID                                  |
| `serviceAccountEmail` | string | Yes      | —                                | Service account email address                            |
| `keyAlgorithm`        | string | No       | `"KEY_ALG_RSA_2048"`             | Key algorithm (e.g., KEY\_ALG\_RSA\_2048)                |
| `privateKeyType`      | string | No       | `"TYPE_GOOGLE_CREDENTIALS_FILE"` | Private key type (e.g., TYPE\_GOOGLE\_CREDENTIALS\_FILE) |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for Google IAM Connection"
      },
      "projectId": {
        "type": "string",
        "description": "Google Cloud Project ID"
      },
      "serviceAccountEmail": {
        "type": "string",
        "description": "Service account email address"
      },
      "keyAlgorithm": {
        "type": "string",
        "default": "KEY_ALG_RSA_2048",
        "description": "Key algorithm (e.g., KEY_ALG_RSA_2048)"
      },
      "privateKeyType": {
        "type": "string",
        "default": "TYPE_GOOGLE_CREDENTIALS_FILE",
        "description": "Private key type (e.g., TYPE_GOOGLE_CREDENTIALS_FILE)"
      }
    },
    "required": [
      "PCID",
      "projectId",
      "serviceAccountEmail"
    ]
  }
  ```
</Expandable>

***

## google-iam\_delete\_service\_account\_key

Delete a service account key.

**Parameters:**

| Parameter             | Type   | Required | Default | Description                      |
| --------------------- | ------ | -------- | ------- | -------------------------------- |
| `projectId`           | string | Yes      | —       | Google Cloud Project ID          |
| `serviceAccountEmail` | string | Yes      | —       | Service account email address    |
| `keyId`               | string | Yes      | —       | Service account key ID to delete |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for Google IAM Connection"
      },
      "projectId": {
        "type": "string",
        "description": "Google Cloud Project ID"
      },
      "serviceAccountEmail": {
        "type": "string",
        "description": "Service account email address"
      },
      "keyId": {
        "type": "string",
        "description": "Service account key ID to delete"
      }
    },
    "required": [
      "PCID",
      "projectId",
      "serviceAccountEmail",
      "keyId"
    ]
  }
  ```
</Expandable>

***

## google-iam\_get\_iam\_policy

Get the IAM policy for a Google Cloud project.

**Parameters:**

| Parameter                | Type   | Required | Default | Description                            |
| ------------------------ | ------ | -------- | ------- | -------------------------------------- |
| `projectId`              | string | Yes      | —       | Google Cloud Project ID                |
| `requestedPolicyVersion` | number | No       | `3`     | Policy version to request (1, 2, or 3) |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for Google IAM Connection"
      },
      "projectId": {
        "type": "string",
        "description": "Google Cloud Project ID"
      },
      "requestedPolicyVersion": {
        "type": "number",
        "default": 3,
        "description": "Policy version to request (1, 2, or 3)"
      }
    },
    "required": [
      "PCID",
      "projectId"
    ]
  }
  ```
</Expandable>

***

## google-iam\_set\_iam\_policy

Set the IAM policy for a Google Cloud project.

**Parameters:**

| Parameter   | Type   | Required | Default | Description             |
| ----------- | ------ | -------- | ------- | ----------------------- |
| `projectId` | string | Yes      | —       | Google Cloud Project ID |
| `policy`    | object | Yes      | —       | IAM policy object       |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for Google IAM Connection"
      },
      "projectId": {
        "type": "string",
        "description": "Google Cloud Project ID"
      },
      "policy": {
        "type": "object",
        "properties": {
          "version": {
            "type": "number",
            "description": "Policy version"
          },
          "bindings": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "role": {
                  "type": "string",
                  "description": "IAM role (e.g., roles/viewer)"
                },
                "members": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Array of members (e.g., user:email@example.com)"
                },
                "condition": {
                  "type": "object",
                  "properties": {
                    "title": {
                      "type": "string"
                    },
                    "description": {
                      "type": "string"
                    },
                    "expression": {
                      "type": "string"
                    }
                  },
                  "description": "Optional condition for conditional IAM"
                }
              }
            },
            "description": "IAM bindings array"
          },
          "etag": {
            "type": "string",
            "description": "Policy etag for optimistic concurrency"
          }
        },
        "description": "IAM policy object"
      }
    },
    "required": [
      "PCID",
      "projectId",
      "policy"
    ]
  }
  ```
</Expandable>

***

## google-iam\_test\_iam\_permissions

Test which permissions the caller has on a Google Cloud project.

**Parameters:**

| Parameter     | Type      | Required | Default | Description                                                                                          |
| ------------- | --------- | -------- | ------- | ---------------------------------------------------------------------------------------------------- |
| `projectId`   | string    | Yes      | —       | Google Cloud Project ID                                                                              |
| `permissions` | string\[] | Yes      | —       | Array of permissions to test (e.g., \["iam.serviceAccounts.create", "resourcemanager.projects.get"]) |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for Google IAM Connection"
      },
      "projectId": {
        "type": "string",
        "description": "Google Cloud Project ID"
      },
      "permissions": {
        "type": "array",
        "items": {
          "type": "string"
        },
        "description": "Array of permissions to test (e.g., [\"iam.serviceAccounts.create\", \"resourcemanager.projects.get\"])"
      }
    },
    "required": [
      "PCID",
      "projectId",
      "permissions"
    ]
  }
  ```
</Expandable>

***

## google-iam\_list\_predefined\_roles

List all predefined Google Cloud IAM roles.

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for Google IAM Connection"
      }
    },
    "required": [
      "PCID"
    ]
  }
  ```
</Expandable>

***

## google-iam\_list\_custom\_roles

List custom IAM roles in a Google Cloud project.

**Parameters:**

| Parameter   | Type   | Required | Default | Description             |
| ----------- | ------ | -------- | ------- | ----------------------- |
| `projectId` | string | Yes      | —       | Google Cloud Project ID |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for Google IAM Connection"
      },
      "projectId": {
        "type": "string",
        "description": "Google Cloud Project ID"
      }
    },
    "required": [
      "PCID",
      "projectId"
    ]
  }
  ```
</Expandable>

***

## google-iam\_get\_role

Get details of a specific custom IAM role.

**Parameters:**

| Parameter   | Type   | Required | Default | Description                                                   |
| ----------- | ------ | -------- | ------- | ------------------------------------------------------------- |
| `projectId` | string | Yes      | —       | Google Cloud Project ID                                       |
| `roleName`  | string | Yes      | —       | Custom role name (without projects/PROJECT\_ID/roles/ prefix) |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for Google IAM Connection"
      },
      "projectId": {
        "type": "string",
        "description": "Google Cloud Project ID"
      },
      "roleName": {
        "type": "string",
        "description": "Custom role name (without projects/PROJECT_ID/roles/ prefix)"
      }
    },
    "required": [
      "PCID",
      "projectId",
      "roleName"
    ]
  }
  ```
</Expandable>

***

## google-iam\_create\_role

Create a new custom IAM role in a Google Cloud project.

**Parameters:**

| Parameter             | Type      | Required | Default | Description                                 |
| --------------------- | --------- | -------- | ------- | ------------------------------------------- |
| `projectId`           | string    | Yes      | —       | Google Cloud Project ID                     |
| `roleId`              | string    | Yes      | —       | Unique ID for the custom role               |
| `title`               | string    | Yes      | —       | Human-readable title for the role           |
| `description`         | string    | No       | —       | Description of the role                     |
| `includedPermissions` | string\[] | Yes      | —       | Array of permissions to include in the role |
| `stage`               | string    | No       | `"GA"`  | Role stage (ALPHA, BETA, GA, DEPRECATED)    |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for Google IAM Connection"
      },
      "projectId": {
        "type": "string",
        "description": "Google Cloud Project ID"
      },
      "roleId": {
        "type": "string",
        "description": "Unique ID for the custom role"
      },
      "title": {
        "type": "string",
        "description": "Human-readable title for the role"
      },
      "description": {
        "type": "string",
        "description": "Description of the role"
      },
      "includedPermissions": {
        "type": "array",
        "items": {
          "type": "string"
        },
        "description": "Array of permissions to include in the role"
      },
      "stage": {
        "type": "string",
        "default": "GA",
        "description": "Role stage (ALPHA, BETA, GA, DEPRECATED)"
      }
    },
    "required": [
      "PCID",
      "projectId",
      "roleId",
      "title",
      "includedPermissions"
    ]
  }
  ```
</Expandable>

***

## google-iam\_update\_role

Update a custom IAM role in a Google Cloud project.

**Parameters:**

| Parameter             | Type      | Required | Default | Description                                         |
| --------------------- | --------- | -------- | ------- | --------------------------------------------------- |
| `projectId`           | string    | Yes      | —       | Google Cloud Project ID                             |
| `roleName`            | string    | Yes      | —       | Custom role name to update                          |
| `title`               | string    | No       | —       | Updated title                                       |
| `description`         | string    | No       | —       | Updated description                                 |
| `includedPermissions` | string\[] | No       | —       | Updated array of permissions                        |
| `etag`                | string    | Yes      | —       | Current etag of the role for optimistic concurrency |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for Google IAM Connection"
      },
      "projectId": {
        "type": "string",
        "description": "Google Cloud Project ID"
      },
      "roleName": {
        "type": "string",
        "description": "Custom role name to update"
      },
      "title": {
        "type": "string",
        "description": "Updated title"
      },
      "description": {
        "type": "string",
        "description": "Updated description"
      },
      "includedPermissions": {
        "type": "array",
        "items": {
          "type": "string"
        },
        "description": "Updated array of permissions"
      },
      "etag": {
        "type": "string",
        "description": "Current etag of the role for optimistic concurrency"
      }
    },
    "required": [
      "PCID",
      "projectId",
      "roleName",
      "etag"
    ]
  }
  ```
</Expandable>

***

## google-iam\_delete\_role

Delete a custom IAM role from a Google Cloud project.

**Parameters:**

| Parameter   | Type   | Required | Default | Description                |
| ----------- | ------ | -------- | ------- | -------------------------- |
| `projectId` | string | Yes      | —       | Google Cloud Project ID    |
| `roleName`  | string | Yes      | —       | Custom role name to delete |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for Google IAM Connection"
      },
      "projectId": {
        "type": "string",
        "description": "Google Cloud Project ID"
      },
      "roleName": {
        "type": "string",
        "description": "Custom role name to delete"
      }
    },
    "required": [
      "PCID",
      "projectId",
      "roleName"
    ]
  }
  ```
</Expandable>
