> For the complete documentation index, see [llms.txt](https://docs.planetcrust.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.planetcrust.com/human-connections/google/google-drive-individual.md).

# Google Drive

<p align="center"><a class="button primary" data-icon="circle-caret-right">Try @Human</a><a class="button primary" data-icon="check">Buy @Human Subscription</a><a class="button primary" data-icon="comments">Join @Human Community</a></p>

<figure><img src="/files/Ude3jwiRewjxXdSsTx1e" alt="" width="188"><figcaption></figcaption></figure>

<h3 align="center">Put Google Drive to Work with @Human Automations and @Human Agents</h3>

<p align="center">The Google Drive Connection documents all Triggers, Actions and Query Operations available for creating automations via the Google Drive API.</p>

{% embed url="<https://www.youtube.com/watch?v=CyuUuaBSZzA>" %}

#### What can you do with the Google Drive Connection?

* Connect to the Google Drive API in a few clicks
* Use the related Google Drive Operations (see below) in @Human Automations or @Human Agents

### Related Operations

#### Trigger Operations

**File Created**

Triggers on: files/fileCreated

Triggered when a new file is created in Google Drive.

**File Updated**

Triggers on: files/fileUpdated

Triggered when an existing file is updated in Google Drive.

**File Deleted**

Triggers on: files/fileDeleted

Triggered when a file is deleted from Google Drive.

**Folder Created**

Triggers on: folders/folderCreated

Triggered when a new folder is created in Google Drive.

#### Action Operations

[Action: Copy File](/human-connections/google/google-drive-individual/action-copy-file.md)

[Action: Export File](/human-connections/google/google-drive-individual/action-export-file.md)

[Action: Create Folder](/human-connections/google/google-drive-individual/action-create-folder.md)

[Action: Create File From Text](/human-connections/google/google-drive-individual/action-create-file-from-text.md)

[Action: Delete File](/human-connections/google/google-drive-individual/action-delete-file.md)

[Action: Move File](/human-connections/google/google-drive-individual/action-move-file.md)

[Action: Move File](/human-connections/google/google-drive-individual/action-move-file.md)

[Action: Remove File Permission](/human-connections/google/google-drive-individual/action-remove-file-permission.md)

#### Query Operations

Example link

### Related Automations

Example link

### Obtaining Access Credentials

To obtain a **Personal Access Token (PAT)** for **Google Drive** (system-to-system access via the UI), follow these steps:

#### **Prerequisites**

* A **Google Workspace account** (personal Google accounts cannot generate PATs for system-to-system access).
* Admin access to the **Google Cloud Console** (if setting up a service account).

#### **Steps to Generate a PAT for Google Drive**

1. **Go to** [**Google Cloud Console**](https://console.cloud.google.com/)
   * Sign in with your **Google Workspace admin account**.
2. **Create or Select a Project**
   * Navigate to **IAM & Admin** > **Manage Resources** > **Create Project** (if needed).
3. **Enable the Google Drive API**
   * Go to **APIs & Services** > **Library**.
   * Search for **"Google Drive API"** and enable it.
4. **Create a Service Account (for system-to-system access)**
   * Go to **IAM & Admin** > **Service Accounts** > **Create Service Account**.
   * Fill in details (name, description) and grant **Project Owner** or **Drive API roles**.
   * Click **Done**.
5. **Generate a JSON Key (PAT Alternative for System Access)**
   * In **Service Accounts**, select your account > **Keys** > **Add Key** > **Create New Key** (JSON).
   * Download the `.json` file (this acts as your credential for system access).
6. **Grant Drive Access to the Service Account (Optional)**
   * If accessing specific files/folders, share them with the service account email (found in the `.json` file).

***

**Token Usage:** The `.json` key file contains credentials for OAuth2 authentication (not a traditional PAT). Use it in your application to generate short-lived access tokens via Google’s OAuth2 flow.

### Configuring Webhooks

1. **Verify Your Domain**
   * Register and verify the domain where your webhook listener will be hosted in the [**Google Search Console**](https://search.google.com/search-console/welcome).
2. **Register Your Domain in Google Cloud Console**
   * Navigate to the [**Google Cloud Console**](https://console.cloud.google.com/) and select your project.
   * Go to **APIs & Services** > **Domain Verification**.
   * Click **Add domain** and enter your verified domain name.
3. **Configure the HTTPS Listener**
   * Host an HTTPS server with a valid SSL certificate on the verified domain to listen for notifications.
4. **Subscribe to Notifications**
   * Make a `watch` request to the resource you want to monitor (e.g., `files.watch` or `changes.watch`).
   * Include a unique **Channel ID** and the **webhook URL** (address) in the request body to initiate the notification channel.

### Code (Apache v2.0): Service Connectivity and Metadata

```
{
  "handle": "google-drive-individual-v3",
  "status": "active",
  "meta": {
    "short": "Google Drive",
    "description": "Connect to Google Drive to manage files and folders.",
    "icon": "google-drive-individual",
    "tags": ["storage", "files", "google", "cloud"]
  },
  "service": {
    "baseURL": {
      "value": "https://www.googleapis.com/drive/v3"
    },
    "protocol": "https",
    "contentType": "application/json",
    "headers": {
      "Accept": {
        "value": "application/json"
      }
    },
    "auth": {
      "method": "oauth2_client_credentials",
      "params": {
        "oauth2ClientCredentials": {
          "value": "{{serviceAccountJSON}}",
          "placeholders": [
            {
              "name": "serviceAccountJSON",
              "type": "string",
              "description": "The credentials for the Google Calendar API.",
              "required": true,
              "default": ""
            }
          ]
        }
      }
    }
  }
}

```

### Code (Apache v2.0): List of External Resources and Internal Mapping

```
[
  {
    "handle": "files",
    "meta": {
      "short": "Files",
      "description": "Manage files stored in Google Drive, including uploads, downloads, and metadata."
    },
    "endpoint": {
      "value": "/files",
      "placeholders": []
    },
    "fields": [
      {
        "name": "id",
        "type": "String",
        "selector": ["id"],
        "meta": {
          "description": "The unique identifier for the file."
        }
      },
      {
        "name": "name",
        "type": "String",
        "selector": ["name"],
        "meta": {
          "description": "The name of the file."
        }
      },
      {
        "name": "mimeType",
        "type": "String",
        "selector": ["mimeType"],
        "meta": {
          "description": "The MIME type of the file."
        }
      },
      {
        "name": "size",
        "type": "Integer",
        "selector": ["size"],
        "meta": {
          "description": "The size of the file in bytes."
        }
      },
      {
        "name": "createdTime",
        "type": "String",
        "selector": ["createdTime"],
        "meta": {
          "description": "The time at which the file was created."
        }
      },
      {
        "name": "modifiedTime",
        "type": "String",
        "selector": ["modifiedTime"],
        "meta": {
          "description": "The time at which the file was last modified."
        }
      }
    ],
    "operations": {
      "list": {
        "method": "GET",
        "path": {
          "value": "",
          "placeholders": []
        },
        "headers": {},
        "queryParams": {
          "pageSize": {
            "value": "100",
            "placeholders": []
          }
        },
        "bodyTemplate": null
      },
      "read": {
        "method": "GET",
        "path": {
          "value": "/{{id}}",
          "placeholders": [
            {
              "name": "id",
              "type": "String",
              "description": "The ID of the file to retrieve.",
              "required": true
            }
          ]
        },
        "headers": {},
        "queryParams": {},
        "bodyTemplate": null
      },
      "create": {
        "method": "POST",
        "path": {
          "value": "",
          "placeholders": []
        },
        "headers": {
          "Content-Type": {
            "value": "application/json",
            "placeholders": []
          }
        },
        "queryParams": {},
        "bodyTemplate": {
          "value": "{\"name\": \"{{name}}\", \"mimeType\": \"{{mimeType}}\"}",
          "placeholders": [
            {
              "name": "name",
              "type": "String",
              "description": "The name of the file.",
              "required": true
            },
            {
              "name": "mimeType",
              "type": "String",
              "description": "The MIME type of the file.",
              "required": true
            }
          ]
        }
      },
      "update": {
        "method": "PATCH",
        "path": {
          "value": "/{{id}}",
          "placeholders": [
            {
              "name": "id",
              "type": "String",
              "description": "The ID of the file to update.",
              "required": true
            }
          ]
        },
        "headers": {
          "Content-Type": {
            "value": "application/json",
            "placeholders": []
          }
        },
        "queryParams": {},
        "bodyTemplate": {
          "value": "{\"name\": \"{{name}}\"}",
          "placeholders": [
            {
              "name": "name",
              "type": "String",
              "description": "The new name of the file.",
              "required": false
            }
          ]
        }
      },
      "delete": {
        "method": "DELETE",
        "path": {
          "value": "/{{id}}",
          "placeholders": [
            {
              "name": "id",
              "type": "String",
              "description": "The ID of the file to delete.",
              "required": true
            }
          ]
        },
        "headers": {},
        "queryParams": {},
        "bodyTemplate": null
      }
    },
    "webhooks": [
      {
        "event": "fileCreated",
        "path": "/webhooks/google-drive-individual/files/created",
        "payload": [
          {
            "name": "fileId",
            "type": "String",
            "selector": ["id"],
            "meta": {
              "description": "The ID of the created file."
            }
          },
          {
            "name": "fileName",
            "type": "String",
            "selector": ["name"],
            "meta": {
              "description": "The name of the created file."
            }
          }
        ]
      },
      {
        "event": "fileUpdated",
        "path": "/webhooks/google-drive-individual/files/updated",
        "payload": [
          {
            "name": "fileId",
            "type": "String",
            "selector": ["id"],
            "meta": {
              "description": "The ID of the updated file."
            }
          },
          {
            "name": "fileName",
            "type": "String",
            "selector": ["name"],
            "meta": {
              "description": "The name of the updated file."
            }
          }
        ]
      },
      {
        "event": "fileDeleted",
        "path": "/webhooks/google-drive-individual/files/deleted",
        "payload": [
          {
            "name": "fileId",
            "type": "String",
            "selector": ["id"],
            "meta": {
              "description": "The ID of the deleted file."
            }
          }
        ]
      }
    ]
  },
  {
    "handle": "folders",
    "meta": {
      "short": "Folders",
      "description": "Manage folders in Google Drive, including creation and organization."
    },
    "endpoint": {
      "value": "/files",
      "placeholders": []
    },
    "fields": [
      {
        "name": "id",
        "type": "String",
        "selector": ["id"],
        "meta": {
          "description": "The unique identifier for the folder."
        }
      },
      {
        "name": "name",
        "type": "String",
        "selector": ["name"],
        "meta": {
          "description": "The name of the folder."
        }
      },
      {
        "name": "createdTime",
        "type": "String",
        "selector": ["createdTime"],
        "meta": {
          "description": "The time at which the folder was created."
        }
      }
    ],
    "operations": {
      "list": {
        "method": "GET",
        "path": {
          "value": "",
          "placeholders": []
        },
        "headers": {},
        "queryParams": {
          "q": {
            "value": "mimeType='application/vnd.google-apps.folder'",
            "placeholders": []
          }
        },
        "bodyTemplate": null
      },
      "create": {
        "method": "POST",
        "path": {
          "value": "",
          "placeholders": []
        },
        "headers": {
          "Content-Type": {
            "value": "application/json",
            "placeholders": []
          }
        },
        "queryParams": {},
        "bodyTemplate": {
          "value": "{\"name\": \"{{name}}\", \"mimeType\": \"application/vnd.google-apps.folder\"}",
          "placeholders": [
            {
              "name": "name",
              "type": "String",
              "description": "The name of the folder.",
              "required": true
            }
          ]
        }
      }
    },
    "webhooks": [
      {
        "event": "folderCreated",
        "path": "/webhooks/google-drive-individual/folders/created",
        "payload": [
          {
            "name": "folderId",
            "type": "String",
            "selector": ["id"],
            "meta": {
              "description": "The ID of the created folder."
            }
          },
          {
            "name": "folderName",
            "type": "String",
            "selector": ["name"],
            "meta": {
              "description": "The name of the created folder."
            }
          }
        ]
      }
    ]
  },
  {
    "handle": "permissions",
    "meta": {
      "short": "Permissions",
      "description": "Manage permissions for files and folders in Google Drive."
    },
    "endpoint": {
      "value": "/files/{{fileId}}/permissions",
      "placeholders": [
        {
          "name": "fileId",
          "type": "String",
          "description": "The ID of the file or folder.",
          "required": true
        }
      ]
    },
    "fields": [
      {
        "name": "id",
        "type": "String",
        "selector": ["id"],
        "meta": {
          "description": "The unique identifier for the permission."
        }
      },
      {
        "name": "emailAddress",
        "type": "String",
        "selector": ["emailAddress"],
        "meta": {
          "description": "The email address of the user or group."
        }
      },
      {
        "name": "role",
        "type": "String",
        "selector": ["role"],
        "meta": {
          "description": "The role assigned to the user or group."
        }
      }
    ],
    "operations": {
      "list": {
        "method": "GET",
        "path": {
          "value": "",
          "placeholders": []
        },
        "headers": {},
        "queryParams": {},
        "bodyTemplate": null
      },
      "create": {
        "method": "POST",
        "path": {
          "value": "",
          "placeholders": []
        },
        "headers": {
          "Content-Type": {
            "value": "application/json",
            "placeholders": []
          }
        },
        "queryParams": {},
        "bodyTemplate": {
          "value": "{\"role\": \"{{role}}\", \"type\": \"user\", \"emailAddress\": \"{{emailAddress}}\"}",
          "placeholders": [
            {
              "name": "role",
              "type": "String",
              "description": "The role to assign (e.g., 'reader', 'writer', 'owner').",
              "required": true
            },
            {
              "name": "emailAddress",
              "type": "String",
              "description": "The email address of the user or group.",
              "required": true
            }
          ]
        }
      },
      "delete": {
        "method": "DELETE",
        "path": {
          "value": "/{{permissionId}}",
          "placeholders": [
            {
              "name": "permissionId",
              "type": "String",
              "description": "The ID of the permission to delete.",
              "required": true
            }
          ]
        },
        "headers": {},
        "queryParams": {},
        "bodyTemplate": null
      }
    },
    "webhooks": []
  },
  {
    "handle": "changes",
    "meta": {
      "short": "Changes",
      "description": "Track changes to files and shared drives in Google Drive."
    },
    "endpoint": {
      "value": "/changes",
      "placeholders": []
    },
    "fields": [
      {
        "name": "kind",
        "type": "String",
        "selector": ["kind"],
        "meta": {
          "description": "Identifies what kind of resource this is."
        }
      },
      {
        "name": "changeType",
        "type": "String",
        "selector": ["changeType"],
        "meta": {
          "description": "The type of the change (file or drive)."
        }
      },
      {
        "name": "time",
        "type": "String",
        "selector": ["time"],
        "meta": {
          "description": "The time of this change (RFC3339)."
        }
      },
      {
        "name": "removed",
        "type": "Boolean",
        "selector": ["removed"],
        "meta": {
          "description": "Whether the file or shared drive has been removed from this list of changes."
        }
      },
      {
        "name": "fileId",
        "type": "String",
        "selector": ["fileId"],
        "meta": {
          "description": "The ID of the file which changed."
        }
      },
      {
        "name": "driveId",
        "type": "String",
        "selector": ["driveId"],
        "meta": {
          "description": "The ID of the shared drive associated with this change."
        }
      }
    ],
    "operations": {
      "list": {
        "method": "GET",
        "path": {
          "value": "",
          "placeholders": []
        },
        "headers": {},
        "queryParams": {
          "pageToken": {
            "value": "{{pageToken}}",
            "placeholders": []
          }
        },
        "bodyTemplate": null
      },
      "getStartPageToken": {
        "method": "GET",
        "path": {
          "value": "/startPageToken",
          "placeholders": []
        },
        "headers": {},
        "queryParams": {},
        "bodyTemplate": null
      },
      "watch": {
        "method": "POST",
        "path": {
          "value": "/watch",
          "placeholders": []
        },
        "headers": {
          "Content-Type": {
            "value": "application/json",
            "placeholders": []
          }
        },
        "queryParams": {
          "pageToken": {
            "value": "{{pageToken}}",
            "placeholders": []
          }
        },
        "bodyTemplate": {
          "value": "{\"id\": \"{{channelId}}\", \"type\": \"web_hook\", \"address\": \"{{webhookUrl}}\"}",
          "placeholders": [
            {
              "name": "channelId",
              "type": "String",
              "description": "A unique string identifying this watch channel.",
              "required": true
            },
            {
              "name": "webhookUrl",
              "type": "String",
              "description": "The HTTPS URL to receive notifications.",
              "required": true
            }
          ]
        }
      }
    },
    "webhooks": []
  },
  {
    "handle": "channels",
    "meta": {
      "short": "Channels",
      "description": "Manage notification channels (push notifications) for Google Drive resources."
    },
    "endpoint": {
      "value": "/channels",
      "placeholders": []
    },
    "fields": [
      {
        "name": "id",
        "type": "String",
        "selector": ["id"],
        "meta": {
          "description": "A UUID or similar unique string that identifies this channel."
        }
      },
      {
        "name": "resourceId",
        "type": "String",
        "selector": ["resourceId"],
        "meta": {
          "description": "An opaque ID that identifies the resource being watched."
        }
      },
      {
        "name": "resourceUri",
        "type": "String",
        "selector": ["resourceUri"],
        "meta": {
          "description": "A version-specific identifier for the watched resource."
        }
      },
      {
        "name": "token",
        "type": "String",
        "selector": ["token"],
        "meta": {
          "description": "An arbitrary string delivered to the target address with each notification."
        }
      },
      {
        "name": "expiration",
        "type": "String",
        "selector": ["expiration"],
        "meta": {
          "description": "Date and time of notification channel expiration, expressed as a Unix timestamp (ms)."
        }
      },
      {
        "name": "type",
        "type": "String",
        "selector": ["type"],
        "meta": {
          "description": "The type of delivery mechanism used for this channel (web_hook)."
        }
      },
      {
        "name": "address",
        "type": "String",
        "selector": ["address"],
        "meta": {
          "description": "The address where notifications are delivered for this channel."
        }
      }
    ],
    "operations": {
      "stop": {
        "method": "POST",
        "path": {
          "value": "/stop",
          "placeholders": []
        },
        "headers": {
          "Content-Type": {
            "value": "application/json",
            "placeholders": []
          }
        },
        "queryParams": {},
        "bodyTemplate": {
          "value": "{\"id\": \"{{channelId}}\", \"resourceId\": \"{{resourceId}}\"}",
          "placeholders": [
            {
              "name": "channelId",
              "type": "String",
              "description": "The ID of the channel to stop.",
              "required": true
            },
            {
              "name": "resourceId",
              "type": "String",
              "description": "The resource ID of the channel to stop.",
              "required": true
            }
          ]
        }
      }
    },
    "webhooks": []
  },
  {
    "handle": "comments",
    "meta": {
      "short": "Comments",
      "description": "Manage comments on files in Google Drive."
    },
    "endpoint": {
      "value": "/files/{{fileId}}/comments",
      "placeholders": [
        {
          "name": "fileId",
          "type": "String",
          "description": "The ID of the file.",
          "required": true
        }
      ]
    },
    "fields": [
      {
        "name": "id",
        "type": "String",
        "selector": ["id"],
        "meta": {
          "description": "The ID of the comment."
        }
      },
      {
        "name": "content",
        "type": "String",
        "selector": ["content"],
        "meta": {
          "description": "The plain text content of the comment."
        }
      },
      {
        "name": "createdTime",
        "type": "String",
        "selector": ["createdTime"],
        "meta": {
          "description": "The time at which the comment was created (RFC3339)."
        }
      },
      {
        "name": "modifiedTime",
        "type": "String",
        "selector": ["modifiedTime"],
        "meta": {
          "description": "The last time the comment or any of its replies was modified (RFC3339)."
        }
      },
      {
        "name": "resolved",
        "type": "Boolean",
        "selector": ["resolved"],
        "meta": {
          "description": "Whether the comment has been resolved by one of its replies."
        }
      },
      {
        "name": "authorDisplayName",
        "type": "String",
        "selector": ["author", "displayName"],
        "meta": {
          "description": "The display name of the comment author."
        }
      }
    ],
    "operations": {
      "list": {
        "method": "GET",
        "path": {
          "value": "",
          "placeholders": []
        },
        "headers": {},
        "queryParams": {
          "fields": {
            "value": "*",
            "placeholders": []
          }
        },
        "bodyTemplate": null
      },
      "read": {
        "method": "GET",
        "path": {
          "value": "/{{commentId}}",
          "placeholders": [
            {
              "name": "commentId",
              "type": "String",
              "description": "The ID of the comment.",
              "required": true
            }
          ]
        },
        "headers": {},
        "queryParams": {},
        "bodyTemplate": null
      },
      "create": {
        "method": "POST",
        "path": {
          "value": "",
          "placeholders": []
        },
        "headers": {
          "Content-Type": {
            "value": "application/json",
            "placeholders": []
          }
        },
        "queryParams": {},
        "bodyTemplate": {
          "value": "{\"content\": \"{{content}}\"}",
          "placeholders": [
            {
              "name": "content",
              "type": "String",
              "description": "The plain text content of the comment.",
              "required": true
            }
          ]
        }
      },
      "update": {
        "method": "PATCH",
        "path": {
          "value": "/{{commentId}}",
          "placeholders": [
            {
              "name": "commentId",
              "type": "String",
              "description": "The ID of the comment.",
              "required": true
            }
          ]
        },
        "headers": {
          "Content-Type": {
            "value": "application/json",
            "placeholders": []
          }
        },
        "queryParams": {},
        "bodyTemplate": {
          "value": "{\"content\": \"{{content}}\"}",
          "placeholders": [
            {
              "name": "content",
              "type": "String",
              "description": "The updated content of the comment.",
              "required": true
            }
          ]
        }
      },
      "delete": {
        "method": "DELETE",
        "path": {
          "value": "/{{commentId}}",
          "placeholders": [
            {
              "name": "commentId",
              "type": "String",
              "description": "The ID of the comment to delete.",
              "required": true
            }
          ]
        },
        "headers": {},
        "queryParams": {},
        "bodyTemplate": null
      }
    },
    "webhooks": []
  },
  {
    "handle": "drives",
    "meta": {
      "short": "Shared Drives",
      "description": "Manage shared drives in Google Drive."
    },
    "endpoint": {
      "value": "/drives",
      "placeholders": []
    },
    "fields": [
      {
        "name": "id",
        "type": "String",
        "selector": ["id"],
        "meta": {
          "description": "The ID of the shared drive."
        }
      },
      {
        "name": "name",
        "type": "String",
        "selector": ["name"],
        "meta": {
          "description": "The name of the shared drive."
        }
      },
      {
        "name": "colorRgb",
        "type": "String",
        "selector": ["colorRgb"],
        "meta": {
          "description": "The color of the shared drive as an RGB hex string."
        }
      },
      {
        "name": "createdTime",
        "type": "String",
        "selector": ["createdTime"],
        "meta": {
          "description": "The time at which the shared drive was created (RFC3339)."
        }
      },
      {
        "name": "hidden",
        "type": "Boolean",
        "selector": ["hidden"],
        "meta": {
          "description": "Whether the shared drive is hidden from default view."
        }
      }
    ],
    "operations": {
      "list": {
        "method": "GET",
        "path": {
          "value": "",
          "placeholders": []
        },
        "headers": {},
        "queryParams": {
          "pageSize": {
            "value": "100",
            "placeholders": []
          }
        },
        "bodyTemplate": null
      },
      "read": {
        "method": "GET",
        "path": {
          "value": "/{{driveId}}",
          "placeholders": [
            {
              "name": "driveId",
              "type": "String",
              "description": "The ID of the shared drive.",
              "required": true
            }
          ]
        },
        "headers": {},
        "queryParams": {},
        "bodyTemplate": null
      },
      "create": {
        "method": "POST",
        "path": {
          "value": "",
          "placeholders": []
        },
        "headers": {
          "Content-Type": {
            "value": "application/json",
            "placeholders": []
          }
        },
        "queryParams": {
          "requestId": {
            "value": "{{requestId}}",
            "placeholders": []
          }
        },
        "bodyTemplate": {
          "value": "{\"name\": \"{{name}}\"}",
          "placeholders": [
            {
              "name": "name",
              "type": "String",
              "description": "The name of the shared drive.",
              "required": true
            },
            {
              "name": "requestId",
              "type": "String",
              "description": "A unique ID for this request to avoid duplicate creation.",
              "required": true
            }
          ]
        }
      },
      "update": {
        "method": "PATCH",
        "path": {
          "value": "/{{driveId}}",
          "placeholders": [
            {
              "name": "driveId",
              "type": "String",
              "description": "The ID of the shared drive.",
              "required": true
            }
          ]
        },
        "headers": {
          "Content-Type": {
            "value": "application/json",
            "placeholders": []
          }
        },
        "queryParams": {},
        "bodyTemplate": {
          "value": "{\"name\": \"{{name}}\"}",
          "placeholders": [
            {
              "name": "name",
              "type": "String",
              "description": "The new name of the shared drive.",
              "required": false
            }
          ]
        }
      },
      "delete": {
        "method": "DELETE",
        "path": {
          "value": "/{{driveId}}",
          "placeholders": [
            {
              "name": "driveId",
              "type": "String",
              "description": "The ID of the shared drive to delete.",
              "required": true
            }
          ]
        },
        "headers": {},
        "queryParams": {},
        "bodyTemplate": null
      },
      "hide": {
        "method": "POST",
        "path": {
          "value": "/{{driveId}}/hide",
          "placeholders": [
            {
              "name": "driveId",
              "type": "String",
              "description": "The ID of the shared drive.",
              "required": true
            }
          ]
        },
        "headers": {},
        "queryParams": {},
        "bodyTemplate": null
      },
      "unhide": {
        "method": "POST",
        "path": {
          "value": "/{{driveId}}/unhide",
          "placeholders": [
            {
              "name": "driveId",
              "type": "String",
              "description": "The ID of the shared drive.",
              "required": true
            }
          ]
        },
        "headers": {},
        "queryParams": {},
        "bodyTemplate": null
      }
    },
    "webhooks": []
  },
  {
    "handle": "revisions",
    "meta": {
      "short": "Revisions",
      "description": "Manage revisions of files in Google Drive."
    },
    "endpoint": {
      "value": "/files/{{fileId}}/revisions",
      "placeholders": [
        {
          "name": "fileId",
          "type": "String",
          "description": "The ID of the file.",
          "required": true
        }
      ]
    },
    "fields": [
      {
        "name": "id",
        "type": "String",
        "selector": ["id"],
        "meta": {
          "description": "The ID of the revision."
        }
      },
      {
        "name": "mimeType",
        "type": "String",
        "selector": ["mimeType"],
        "meta": {
          "description": "The MIME type of the revision."
        }
      },
      {
        "name": "modifiedTime",
        "type": "String",
        "selector": ["modifiedTime"],
        "meta": {
          "description": "The last time the revision was modified (RFC3339)."
        }
      },
      {
        "name": "keepForever",
        "type": "Boolean",
        "selector": ["keepForever"],
        "meta": {
          "description": "Whether to keep this revision forever, even if it is no longer the head revision."
        }
      },
      {
        "name": "published",
        "type": "Boolean",
        "selector": ["published"],
        "meta": {
          "description": "Whether this revision is published."
        }
      },
      {
        "name": "size",
        "type": "Integer",
        "selector": ["size"],
        "meta": {
          "description": "The size of the revision's content in bytes."
        }
      }
    ],
    "operations": {
      "list": {
        "method": "GET",
        "path": {
          "value": "",
          "placeholders": []
        },
        "headers": {},
        "queryParams": {},
        "bodyTemplate": null
      },
      "read": {
        "method": "GET",
        "path": {
          "value": "/{{revisionId}}",
          "placeholders": [
            {
              "name": "revisionId",
              "type": "String",
              "description": "The ID of the revision.",
              "required": true
            }
          ]
        },
        "headers": {},
        "queryParams": {},
        "bodyTemplate": null
      },
      "update": {
        "method": "PATCH",
        "path": {
          "value": "/{{revisionId}}",
          "placeholders": [
            {
              "name": "revisionId",
              "type": "String",
              "description": "The ID of the revision.",
              "required": true
            }
          ]
        },
        "headers": {
          "Content-Type": {
            "value": "application/json",
            "placeholders": []
          }
        },
        "queryParams": {},
        "bodyTemplate": {
          "value": "{\"keepForever\": {{keepForever}}}",
          "placeholders": [
            {
              "name": "keepForever",
              "type": "Boolean",
              "description": "Whether to keep this revision forever.",
              "required": false
            }
          ]
        }
      },
      "delete": {
        "method": "DELETE",
        "path": {
          "value": "/{{revisionId}}",
          "placeholders": [
            {
              "name": "revisionId",
              "type": "String",
              "description": "The ID of the revision to delete.",
              "required": true
            }
          ]
        },
        "headers": {},
        "queryParams": {},
        "bodyTemplate": null
      }
    },
    "webhooks": []
  },
  {
    "handle": "replies",
    "meta": {
      "short": "Replies",
      "description": "Manage replies to comments on files in Google Drive."
    },
    "endpoint": {
      "value": "/files/{{fileId}}/comments/{{commentId}}/replies",
      "placeholders": [
        {
          "name": "fileId",
          "type": "String",
          "description": "The ID of the file.",
          "required": true
        },
        {
          "name": "commentId",
          "type": "String",
          "description": "The ID of the comment.",
          "required": true
        }
      ]
    },
    "fields": [
      {
        "name": "id",
        "type": "String",
        "selector": ["id"],
        "meta": {
          "description": "The ID of the reply."
        }
      },
      {
        "name": "content",
        "type": "String",
        "selector": ["content"],
        "meta": {
          "description": "The plain text content of the reply."
        }
      },
      {
        "name": "createdTime",
        "type": "String",
        "selector": ["createdTime"],
        "meta": {
          "description": "The time at which the reply was created (RFC3339)."
        }
      },
      {
        "name": "modifiedTime",
        "type": "String",
        "selector": ["modifiedTime"],
        "meta": {
          "description": "The last time the reply was modified (RFC3339)."
        }
      },
      {
        "name": "action",
        "type": "String",
        "selector": ["action"],
        "meta": {
          "description": "The action the reply performed on the parent comment (resolve or reopen)."
        }
      },
      {
        "name": "authorDisplayName",
        "type": "String",
        "selector": ["author", "displayName"],
        "meta": {
          "description": "The display name of the reply author."
        }
      }
    ],
    "operations": {
      "list": {
        "method": "GET",
        "path": {
          "value": "",
          "placeholders": []
        },
        "headers": {},
        "queryParams": {
          "fields": {
            "value": "*",
            "placeholders": []
          }
        },
        "bodyTemplate": null
      },
      "read": {
        "method": "GET",
        "path": {
          "value": "/{{replyId}}",
          "placeholders": [
            {
              "name": "replyId",
              "type": "String",
              "description": "The ID of the reply.",
              "required": true
            }
          ]
        },
        "headers": {},
        "queryParams": {},
        "bodyTemplate": null
      },
      "create": {
        "method": "POST",
        "path": {
          "value": "",
          "placeholders": []
        },
        "headers": {
          "Content-Type": {
            "value": "application/json",
            "placeholders": []
          }
        },
        "queryParams": {},
        "bodyTemplate": {
          "value": "{\"content\": \"{{content}}\"}",
          "placeholders": [
            {
              "name": "content",
              "type": "String",
              "description": "The plain text content of the reply.",
              "required": true
            }
          ]
        }
      },
      "update": {
        "method": "PATCH",
        "path": {
          "value": "/{{replyId}}",
          "placeholders": [
            {
              "name": "replyId",
              "type": "String",
              "description": "The ID of the reply.",
              "required": true
            }
          ]
        },
        "headers": {
          "Content-Type": {
            "value": "application/json",
            "placeholders": []
          }
        },
        "queryParams": {},
        "bodyTemplate": {
          "value": "{\"content\": \"{{content}}\"}",
          "placeholders": [
            {
              "name": "content",
              "type": "String",
              "description": "The updated content of the reply.",
              "required": true
            }
          ]
        }
      },
      "delete": {
        "method": "DELETE",
        "path": {
          "value": "/{{replyId}}",
          "placeholders": [
            {
              "name": "replyId",
              "type": "String",
              "description": "The ID of the reply to delete.",
              "required": true
            }
          ]
        },
        "headers": {},
        "queryParams": {},
        "bodyTemplate": null
      }
    },
    "webhooks": []
  },
  {
    "handle": "about",
    "meta": {
      "short": "About",
      "description": "Retrieve metadata about the current user's Drive and system capabilities."
    },
    "endpoint": {
      "value": "/about",
      "placeholders": []
    },
    "fields": [
      {
        "name": "kind",
        "type": "String",
        "selector": ["kind"],
        "meta": {
          "description": "Identifies what kind of resource this is."
        }
      },
      {
        "name": "userDisplayName",
        "type": "String",
        "selector": ["user", "displayName"],
        "meta": {
          "description": "The authenticated user's display name."
        }
      },
      {
        "name": "userEmailAddress",
        "type": "String",
        "selector": ["user", "emailAddress"],
        "meta": {
          "description": "The authenticated user's email address."
        }
      },
      {
        "name": "storageQuotaLimit",
        "type": "Integer",
        "selector": ["storageQuota", "limit"],
        "meta": {
          "description": "The usage limit in bytes, if applicable."
        }
      },
      {
        "name": "storageQuotaUsage",
        "type": "Integer",
        "selector": ["storageQuota", "usage"],
        "meta": {
          "description": "The total usage across all services in bytes."
        }
      },
      {
        "name": "storageQuotaUsageInDrive",
        "type": "Integer",
        "selector": ["storageQuota", "usageInDrive"],
        "meta": {
          "description": "The usage by all files in Google Drive in bytes."
        }
      }
    ],
    "operations": {
      "read": {
        "method": "GET",
        "path": {
          "value": "",
          "placeholders": []
        },
        "headers": {},
        "queryParams": {
          "fields": {
            "value": "*",
            "placeholders": []
          }
        },
        "bodyTemplate": null
      }
    },
    "webhooks": []
  }
]

```

<p align="center"><a class="button primary" data-icon="square-caret-right">Try @Human</a><a class="button primary" data-icon="check">Buy @Human Subscription</a><a class="button primary" data-icon="comments">Join @Human Community</a></p>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.planetcrust.com/human-connections/google/google-drive-individual.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
