@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api Drive API
@base https://www.googleapis.com/drive/v3
@version v3
@auth OAuth2 | OAuth2
@endpoints 48
@hint download_for_search
@toc about(1), changes(3), channels(1), drives(7), files(31), teamdrives(5)

@group about
@endpoint GET /about
@returns(200) {appInstalled: bool, canCreateDrives: bool, canCreateTeamDrives: bool, driveThemes: [map], exportFormats: map, folderColorPalette: [str], importFormats: map, kind: str, maxImportSizes: map, maxUploadSize: str(int64), storageQuota: map{limit: str(int64), usage: str(int64), usageInDrive: str(int64), usageInDriveTrash: str(int64)}, teamDriveThemes: [map], user: map{displayName: str, emailAddress: str, kind: str, me: bool, permissionId: str, photoLink: str}}

@endgroup

@group changes
@endpoint GET /changes
@required {pageToken: str}
@optional {driveId: str, includeCorpusRemovals: bool, includeItemsFromAllDrives: bool, includeLabels: str, includePermissionsForView: str, includeRemoved: bool, includeTeamDriveItems: bool, pageSize: int, restrictToMyDrive: bool, spaces: str, supportsAllDrives: bool, supportsTeamDrives: bool, teamDriveId: str}
@returns(200) {changes: [map], kind: str, newStartPageToken: str, nextPageToken: str}

@endpoint GET /changes/startPageToken
@optional {driveId: str, supportsAllDrives: bool, supportsTeamDrives: bool, teamDriveId: str}
@returns(200) {kind: str, startPageToken: str}

@endpoint POST /changes/watch
@required {pageToken: str}
@optional {driveId: str, includeCorpusRemovals: bool, includeItemsFromAllDrives: bool, includeLabels: str, includePermissionsForView: str, includeRemoved: bool, includeTeamDriveItems: bool, pageSize: int, restrictToMyDrive: bool, spaces: str, supportsAllDrives: bool, supportsTeamDrives: bool, teamDriveId: str, address: str, expiration: str(int64), id: str, kind: str=api#channel, params: map, payload: bool, resourceId: str, resourceUri: str, token: str, type: str}
@returns(200) {address: str, expiration: str(int64), id: str, kind: str, params: map, payload: bool, resourceId: str, resourceUri: str, token: str, type: str}

@endgroup

@group channels
@endpoint POST /channels/stop
@optional {address: str, expiration: str(int64), id: str, kind: str=api#channel, params: map, payload: bool, resourceId: str, resourceUri: str, token: str, type: str}
@returns(200)

@endgroup

@group drives
@endpoint GET /drives
@optional {pageSize: int, pageToken: str, q: str, useDomainAdminAccess: bool}
@returns(200) {drives: [map], kind: str, nextPageToken: str}

@endpoint POST /drives
@required {requestId: str}
@optional {backgroundImageFile: map{id: str, width: num(float), xCoordinate: num(float), yCoordinate: num(float)}, backgroundImageLink: str, capabilities: map{canAddChildren: bool, canChangeCopyRequiresWriterPermissionRestriction: bool, canChangeDomainUsersOnlyRestriction: bool, canChangeDriveBackground: bool, canChangeDriveMembersOnlyRestriction: bool, canChangeSharingFoldersRequiresOrganizerPermissionRestriction: bool, canComment: bool, canCopy: bool, canDeleteChildren: bool, canDeleteDrive: bool, canDownload: bool, canEdit: bool, canListChildren: bool, canManageMembers: bool, canReadRevisions: bool, canRename: bool, canRenameDrive: bool, canResetDriveRestrictions: bool, canShare: bool, canTrashChildren: bool}, colorRgb: str, createdTime: str(date-time), hidden: bool, id: str, kind: str=drive#drive, name: str, orgUnitId: str, restrictions: map{adminManagedRestrictions: bool, copyRequiresWriterPermission: bool, domainUsersOnly: bool, driveMembersOnly: bool, sharingFoldersRequiresOrganizerPermission: bool}, themeId: str}
@returns(200) {backgroundImageFile: map{id: str, width: num(float), xCoordinate: num(float), yCoordinate: num(float)}, backgroundImageLink: str, capabilities: map{canAddChildren: bool, canChangeCopyRequiresWriterPermissionRestriction: bool, canChangeDomainUsersOnlyRestriction: bool, canChangeDriveBackground: bool, canChangeDriveMembersOnlyRestriction: bool, canChangeSharingFoldersRequiresOrganizerPermissionRestriction: bool, canComment: bool, canCopy: bool, canDeleteChildren: bool, canDeleteDrive: bool, canDownload: bool, canEdit: bool, canListChildren: bool, canManageMembers: bool, canReadRevisions: bool, canRename: bool, canRenameDrive: bool, canResetDriveRestrictions: bool, canShare: bool, canTrashChildren: bool}, colorRgb: str, createdTime: str(date-time), hidden: bool, id: str, kind: str, name: str, orgUnitId: str, restrictions: map{adminManagedRestrictions: bool, copyRequiresWriterPermission: bool, domainUsersOnly: bool, driveMembersOnly: bool, sharingFoldersRequiresOrganizerPermission: bool}, themeId: str}

@endpoint DELETE /drives/{driveId}
@required {driveId: str}
@optional {allowItemDeletion: bool, useDomainAdminAccess: bool}
@returns(200)

@endpoint GET /drives/{driveId}
@required {driveId: str}
@optional {useDomainAdminAccess: bool}
@returns(200) {backgroundImageFile: map{id: str, width: num(float), xCoordinate: num(float), yCoordinate: num(float)}, backgroundImageLink: str, capabilities: map{canAddChildren: bool, canChangeCopyRequiresWriterPermissionRestriction: bool, canChangeDomainUsersOnlyRestriction: bool, canChangeDriveBackground: bool, canChangeDriveMembersOnlyRestriction: bool, canChangeSharingFoldersRequiresOrganizerPermissionRestriction: bool, canComment: bool, canCopy: bool, canDeleteChildren: bool, canDeleteDrive: bool, canDownload: bool, canEdit: bool, canListChildren: bool, canManageMembers: bool, canReadRevisions: bool, canRename: bool, canRenameDrive: bool, canResetDriveRestrictions: bool, canShare: bool, canTrashChildren: bool}, colorRgb: str, createdTime: str(date-time), hidden: bool, id: str, kind: str, name: str, orgUnitId: str, restrictions: map{adminManagedRestrictions: bool, copyRequiresWriterPermission: bool, domainUsersOnly: bool, driveMembersOnly: bool, sharingFoldersRequiresOrganizerPermission: bool}, themeId: str}

@endpoint PATCH /drives/{driveId}
@required {driveId: str}
@optional {useDomainAdminAccess: bool, backgroundImageFile: map{id: str, width: num(float), xCoordinate: num(float), yCoordinate: num(float)}, backgroundImageLink: str, capabilities: map{canAddChildren: bool, canChangeCopyRequiresWriterPermissionRestriction: bool, canChangeDomainUsersOnlyRestriction: bool, canChangeDriveBackground: bool, canChangeDriveMembersOnlyRestriction: bool, canChangeSharingFoldersRequiresOrganizerPermissionRestriction: bool, canComment: bool, canCopy: bool, canDeleteChildren: bool, canDeleteDrive: bool, canDownload: bool, canEdit: bool, canListChildren: bool, canManageMembers: bool, canReadRevisions: bool, canRename: bool, canRenameDrive: bool, canResetDriveRestrictions: bool, canShare: bool, canTrashChildren: bool}, colorRgb: str, createdTime: str(date-time), hidden: bool, id: str, kind: str=drive#drive, name: str, orgUnitId: str, restrictions: map{adminManagedRestrictions: bool, copyRequiresWriterPermission: bool, domainUsersOnly: bool, driveMembersOnly: bool, sharingFoldersRequiresOrganizerPermission: bool}, themeId: str}
@returns(200) {backgroundImageFile: map{id: str, width: num(float), xCoordinate: num(float), yCoordinate: num(float)}, backgroundImageLink: str, capabilities: map{canAddChildren: bool, canChangeCopyRequiresWriterPermissionRestriction: bool, canChangeDomainUsersOnlyRestriction: bool, canChangeDriveBackground: bool, canChangeDriveMembersOnlyRestriction: bool, canChangeSharingFoldersRequiresOrganizerPermissionRestriction: bool, canComment: bool, canCopy: bool, canDeleteChildren: bool, canDeleteDrive: bool, canDownload: bool, canEdit: bool, canListChildren: bool, canManageMembers: bool, canReadRevisions: bool, canRename: bool, canRenameDrive: bool, canResetDriveRestrictions: bool, canShare: bool, canTrashChildren: bool}, colorRgb: str, createdTime: str(date-time), hidden: bool, id: str, kind: str, name: str, orgUnitId: str, restrictions: map{adminManagedRestrictions: bool, copyRequiresWriterPermission: bool, domainUsersOnly: bool, driveMembersOnly: bool, sharingFoldersRequiresOrganizerPermission: bool}, themeId: str}

@endpoint POST /drives/{driveId}/hide
@required {driveId: str}
@returns(200) {backgroundImageFile: map{id: str, width: num(float), xCoordinate: num(float), yCoordinate: num(float)}, backgroundImageLink: str, capabilities: map{canAddChildren: bool, canChangeCopyRequiresWriterPermissionRestriction: bool, canChangeDomainUsersOnlyRestriction: bool, canChangeDriveBackground: bool, canChangeDriveMembersOnlyRestriction: bool, canChangeSharingFoldersRequiresOrganizerPermissionRestriction: bool, canComment: bool, canCopy: bool, canDeleteChildren: bool, canDeleteDrive: bool, canDownload: bool, canEdit: bool, canListChildren: bool, canManageMembers: bool, canReadRevisions: bool, canRename: bool, canRenameDrive: bool, canResetDriveRestrictions: bool, canShare: bool, canTrashChildren: bool}, colorRgb: str, createdTime: str(date-time), hidden: bool, id: str, kind: str, name: str, orgUnitId: str, restrictions: map{adminManagedRestrictions: bool, copyRequiresWriterPermission: bool, domainUsersOnly: bool, driveMembersOnly: bool, sharingFoldersRequiresOrganizerPermission: bool}, themeId: str}

@endpoint POST /drives/{driveId}/unhide
@required {driveId: str}
@returns(200) {backgroundImageFile: map{id: str, width: num(float), xCoordinate: num(float), yCoordinate: num(float)}, backgroundImageLink: str, capabilities: map{canAddChildren: bool, canChangeCopyRequiresWriterPermissionRestriction: bool, canChangeDomainUsersOnlyRestriction: bool, canChangeDriveBackground: bool, canChangeDriveMembersOnlyRestriction: bool, canChangeSharingFoldersRequiresOrganizerPermissionRestriction: bool, canComment: bool, canCopy: bool, canDeleteChildren: bool, canDeleteDrive: bool, canDownload: bool, canEdit: bool, canListChildren: bool, canManageMembers: bool, canReadRevisions: bool, canRename: bool, canRenameDrive: bool, canResetDriveRestrictions: bool, canShare: bool, canTrashChildren: bool}, colorRgb: str, createdTime: str(date-time), hidden: bool, id: str, kind: str, name: str, orgUnitId: str, restrictions: map{adminManagedRestrictions: bool, copyRequiresWriterPermission: bool, domainUsersOnly: bool, driveMembersOnly: bool, sharingFoldersRequiresOrganizerPermission: bool}, themeId: str}

@endgroup

@group files
@endpoint GET /files
@optional {corpora: str, corpus: str(domain/user), driveId: str, includeItemsFromAllDrives: bool, includeLabels: str, includePermissionsForView: str, includeTeamDriveItems: bool, orderBy: str, pageSize: int, pageToken: str, q: str, spaces: str, supportsAllDrives: bool, supportsTeamDrives: bool, teamDriveId: str}
@returns(200) {files: [map], incompleteSearch: bool, kind: str, nextPageToken: str}

@endpoint POST /files
@optional {enforceSingleParent: bool, ignoreDefaultVisibility: bool, includeLabels: str, includePermissionsForView: str, keepRevisionForever: bool, ocrLanguage: str, supportsAllDrives: bool, supportsTeamDrives: bool, useContentAsIndexableText: bool}
@returns(200) {appProperties: map, capabilities: map{canAcceptOwnership: bool, canAddChildren: bool, canAddFolderFromAnotherDrive: bool, canAddMyDriveParent: bool, canChangeCopyRequiresWriterPermission: bool, canChangeSecurityUpdateEnabled: bool, canChangeViewersCanCopyContent: bool, canComment: bool, canCopy: bool, canDelete: bool, canDeleteChildren: bool, canDownload: bool, canEdit: bool, canListChildren: bool, canModifyContent: bool, canModifyContentRestriction: bool, canModifyLabels: bool, canMoveChildrenOutOfDrive: bool, canMoveChildrenOutOfTeamDrive: bool, canMoveChildrenWithinDrive: bool, canMoveChildrenWithinTeamDrive: bool, canMoveItemIntoTeamDrive: bool, canMoveItemOutOfDrive: bool, canMoveItemOutOfTeamDrive: bool, canMoveItemWithinDrive: bool, canMoveItemWithinTeamDrive: bool, canMoveTeamDriveItem: bool, canReadDrive: bool, canReadLabels: bool, canReadRevisions: bool, canReadTeamDrive: bool, canRemoveChildren: bool, canRemoveMyDriveParent: bool, canRename: bool, canShare: bool, canTrash: bool, canTrashChildren: bool, canUntrash: bool}, contentHints: map{indexableText: str, thumbnail: map{image: str(byte), mimeType: str}}, contentRestrictions: [map], copyRequiresWriterPermission: bool, createdTime: str(date-time), description: str, driveId: str, explicitlyTrashed: bool, exportLinks: map, fileExtension: str, folderColorRgb: str, fullFileExtension: str, hasAugmentedPermissions: bool, hasThumbnail: bool, headRevisionId: str, iconLink: str, id: str, imageMediaMetadata: map{aperture: num(float), cameraMake: str, cameraModel: str, colorSpace: str, exposureBias: num(float), exposureMode: str, exposureTime: num(float), flashUsed: bool, focalLength: num(float), height: int(int32), isoSpeed: int(int32), lens: str, location: map{altitude: num(double), latitude: num(double), longitude: num(double)}, maxApertureValue: num(float), meteringMode: str, rotation: int(int32), sensor: str, subjectDistance: int(int32), time: str, whiteBalance: str, width: int(int32)}, isAppAuthorized: bool, kind: str, labelInfo: map{labels: [map]}, lastModifyingUser: map{displayName: str, emailAddress: str, kind: str, me: bool, permissionId: str, photoLink: str}, linkShareMetadata: map{securityUpdateEligible: bool, securityUpdateEnabled: bool}, md5Checksum: str, mimeType: str, modifiedByMe: bool, modifiedByMeTime: str(date-time), modifiedTime: str(date-time), name: str, originalFilename: str, ownedByMe: bool, owners: [map], parents: [str], permissionIds: [str], permissions: [map], properties: map, quotaBytesUsed: str(int64), resourceKey: str, sha1Checksum: str, sha256Checksum: str, shared: bool, sharedWithMeTime: str(date-time), sharingUser: map{displayName: str, emailAddress: str, kind: str, me: bool, permissionId: str, photoLink: str}, shortcutDetails: map{targetId: str, targetMimeType: str, targetResourceKey: str}, size: str(int64), spaces: [str], starred: bool, teamDriveId: str, thumbnailLink: str, thumbnailVersion: str(int64), trashed: bool, trashedTime: str(date-time), trashingUser: map{displayName: str, emailAddress: str, kind: str, me: bool, permissionId: str, photoLink: str}, version: str(int64), videoMediaMetadata: map{durationMillis: str(int64), height: int(int32), width: int(int32)}, viewedByMe: bool, viewedByMeTime: str(date-time), viewersCanCopyContent: bool, webContentLink: str, webViewLink: str, writersCanShare: bool}

@endpoint GET /files/generateIds
@optional {count: int, space: str, type: str}
@returns(200) {ids: [str], kind: str, space: str}

@endpoint DELETE /files/trash
@optional {driveId: str, enforceSingleParent: bool}
@returns(200)

@endpoint DELETE /files/{fileId}
@required {fileId: str}
@optional {enforceSingleParent: bool, supportsAllDrives: bool, supportsTeamDrives: bool}
@returns(200)

@endpoint GET /files/{fileId}
@required {fileId: str}
@optional {acknowledgeAbuse: bool, includeLabels: str, includePermissionsForView: str, supportsAllDrives: bool, supportsTeamDrives: bool}
@returns(200) {appProperties: map, capabilities: map{canAcceptOwnership: bool, canAddChildren: bool, canAddFolderFromAnotherDrive: bool, canAddMyDriveParent: bool, canChangeCopyRequiresWriterPermission: bool, canChangeSecurityUpdateEnabled: bool, canChangeViewersCanCopyContent: bool, canComment: bool, canCopy: bool, canDelete: bool, canDeleteChildren: bool, canDownload: bool, canEdit: bool, canListChildren: bool, canModifyContent: bool, canModifyContentRestriction: bool, canModifyLabels: bool, canMoveChildrenOutOfDrive: bool, canMoveChildrenOutOfTeamDrive: bool, canMoveChildrenWithinDrive: bool, canMoveChildrenWithinTeamDrive: bool, canMoveItemIntoTeamDrive: bool, canMoveItemOutOfDrive: bool, canMoveItemOutOfTeamDrive: bool, canMoveItemWithinDrive: bool, canMoveItemWithinTeamDrive: bool, canMoveTeamDriveItem: bool, canReadDrive: bool, canReadLabels: bool, canReadRevisions: bool, canReadTeamDrive: bool, canRemoveChildren: bool, canRemoveMyDriveParent: bool, canRename: bool, canShare: bool, canTrash: bool, canTrashChildren: bool, canUntrash: bool}, contentHints: map{indexableText: str, thumbnail: map{image: str(byte), mimeType: str}}, contentRestrictions: [map], copyRequiresWriterPermission: bool, createdTime: str(date-time), description: str, driveId: str, explicitlyTrashed: bool, exportLinks: map, fileExtension: str, folderColorRgb: str, fullFileExtension: str, hasAugmentedPermissions: bool, hasThumbnail: bool, headRevisionId: str, iconLink: str, id: str, imageMediaMetadata: map{aperture: num(float), cameraMake: str, cameraModel: str, colorSpace: str, exposureBias: num(float), exposureMode: str, exposureTime: num(float), flashUsed: bool, focalLength: num(float), height: int(int32), isoSpeed: int(int32), lens: str, location: map{altitude: num(double), latitude: num(double), longitude: num(double)}, maxApertureValue: num(float), meteringMode: str, rotation: int(int32), sensor: str, subjectDistance: int(int32), time: str, whiteBalance: str, width: int(int32)}, isAppAuthorized: bool, kind: str, labelInfo: map{labels: [map]}, lastModifyingUser: map{displayName: str, emailAddress: str, kind: str, me: bool, permissionId: str, photoLink: str}, linkShareMetadata: map{securityUpdateEligible: bool, securityUpdateEnabled: bool}, md5Checksum: str, mimeType: str, modifiedByMe: bool, modifiedByMeTime: str(date-time), modifiedTime: str(date-time), name: str, originalFilename: str, ownedByMe: bool, owners: [map], parents: [str], permissionIds: [str], permissions: [map], properties: map, quotaBytesUsed: str(int64), resourceKey: str, sha1Checksum: str, sha256Checksum: str, shared: bool, sharedWithMeTime: str(date-time), sharingUser: map{displayName: str, emailAddress: str, kind: str, me: bool, permissionId: str, photoLink: str}, shortcutDetails: map{targetId: str, targetMimeType: str, targetResourceKey: str}, size: str(int64), spaces: [str], starred: bool, teamDriveId: str, thumbnailLink: str, thumbnailVersion: str(int64), trashed: bool, trashedTime: str(date-time), trashingUser: map{displayName: str, emailAddress: str, kind: str, me: bool, permissionId: str, photoLink: str}, version: str(int64), videoMediaMetadata: map{durationMillis: str(int64), height: int(int32), width: int(int32)}, viewedByMe: bool, viewedByMeTime: str(date-time), viewersCanCopyContent: bool, webContentLink: str, webViewLink: str, writersCanShare: bool}

@endpoint PATCH /files/{fileId}
@required {fileId: str}
@optional {addParents: str, enforceSingleParent: bool, includeLabels: str, includePermissionsForView: str, keepRevisionForever: bool, ocrLanguage: str, removeParents: str, supportsAllDrives: bool, supportsTeamDrives: bool, useContentAsIndexableText: bool}
@returns(200) {appProperties: map, capabilities: map{canAcceptOwnership: bool, canAddChildren: bool, canAddFolderFromAnotherDrive: bool, canAddMyDriveParent: bool, canChangeCopyRequiresWriterPermission: bool, canChangeSecurityUpdateEnabled: bool, canChangeViewersCanCopyContent: bool, canComment: bool, canCopy: bool, canDelete: bool, canDeleteChildren: bool, canDownload: bool, canEdit: bool, canListChildren: bool, canModifyContent: bool, canModifyContentRestriction: bool, canModifyLabels: bool, canMoveChildrenOutOfDrive: bool, canMoveChildrenOutOfTeamDrive: bool, canMoveChildrenWithinDrive: bool, canMoveChildrenWithinTeamDrive: bool, canMoveItemIntoTeamDrive: bool, canMoveItemOutOfDrive: bool, canMoveItemOutOfTeamDrive: bool, canMoveItemWithinDrive: bool, canMoveItemWithinTeamDrive: bool, canMoveTeamDriveItem: bool, canReadDrive: bool, canReadLabels: bool, canReadRevisions: bool, canReadTeamDrive: bool, canRemoveChildren: bool, canRemoveMyDriveParent: bool, canRename: bool, canShare: bool, canTrash: bool, canTrashChildren: bool, canUntrash: bool}, contentHints: map{indexableText: str, thumbnail: map{image: str(byte), mimeType: str}}, contentRestrictions: [map], copyRequiresWriterPermission: bool, createdTime: str(date-time), description: str, driveId: str, explicitlyTrashed: bool, exportLinks: map, fileExtension: str, folderColorRgb: str, fullFileExtension: str, hasAugmentedPermissions: bool, hasThumbnail: bool, headRevisionId: str, iconLink: str, id: str, imageMediaMetadata: map{aperture: num(float), cameraMake: str, cameraModel: str, colorSpace: str, exposureBias: num(float), exposureMode: str, exposureTime: num(float), flashUsed: bool, focalLength: num(float), height: int(int32), isoSpeed: int(int32), lens: str, location: map{altitude: num(double), latitude: num(double), longitude: num(double)}, maxApertureValue: num(float), meteringMode: str, rotation: int(int32), sensor: str, subjectDistance: int(int32), time: str, whiteBalance: str, width: int(int32)}, isAppAuthorized: bool, kind: str, labelInfo: map{labels: [map]}, lastModifyingUser: map{displayName: str, emailAddress: str, kind: str, me: bool, permissionId: str, photoLink: str}, linkShareMetadata: map{securityUpdateEligible: bool, securityUpdateEnabled: bool}, md5Checksum: str, mimeType: str, modifiedByMe: bool, modifiedByMeTime: str(date-time), modifiedTime: str(date-time), name: str, originalFilename: str, ownedByMe: bool, owners: [map], parents: [str], permissionIds: [str], permissions: [map], properties: map, quotaBytesUsed: str(int64), resourceKey: str, sha1Checksum: str, sha256Checksum: str, shared: bool, sharedWithMeTime: str(date-time), sharingUser: map{displayName: str, emailAddress: str, kind: str, me: bool, permissionId: str, photoLink: str}, shortcutDetails: map{targetId: str, targetMimeType: str, targetResourceKey: str}, size: str(int64), spaces: [str], starred: bool, teamDriveId: str, thumbnailLink: str, thumbnailVersion: str(int64), trashed: bool, trashedTime: str(date-time), trashingUser: map{displayName: str, emailAddress: str, kind: str, me: bool, permissionId: str, photoLink: str}, version: str(int64), videoMediaMetadata: map{durationMillis: str(int64), height: int(int32), width: int(int32)}, viewedByMe: bool, viewedByMeTime: str(date-time), viewersCanCopyContent: bool, webContentLink: str, webViewLink: str, writersCanShare: bool}

@endpoint GET /files/{fileId}/comments
@required {fileId: str}
@optional {includeDeleted: bool, pageSize: int, pageToken: str, startModifiedTime: str}
@returns(200) {comments: [map], kind: str, nextPageToken: str}

@endpoint POST /files/{fileId}/comments
@required {fileId: str}
@optional {anchor: str, author: map{displayName: str, emailAddress: str, kind: str, me: bool, permissionId: str, photoLink: str}, content: str, createdTime: str(date-time), deleted: bool, htmlContent: str, id: str, kind: str=drive#comment, modifiedTime: str(date-time), quotedFileContent: map{mimeType: str, value: str}, replies: [map{action: str, author: map, content: str, createdTime: str(date-time), deleted: bool, htmlContent: str, id: str, kind: str, modifiedTime: str(date-time)}], resolved: bool}
@returns(200) {anchor: str, author: map{displayName: str, emailAddress: str, kind: str, me: bool, permissionId: str, photoLink: str}, content: str, createdTime: str(date-time), deleted: bool, htmlContent: str, id: str, kind: str, modifiedTime: str(date-time), quotedFileContent: map{mimeType: str, value: str}, replies: [map], resolved: bool}

@endpoint DELETE /files/{fileId}/comments/{commentId}
@required {fileId: str, commentId: str}
@returns(200)

@endpoint GET /files/{fileId}/comments/{commentId}
@required {fileId: str, commentId: str}
@optional {includeDeleted: bool}
@returns(200) {anchor: str, author: map{displayName: str, emailAddress: str, kind: str, me: bool, permissionId: str, photoLink: str}, content: str, createdTime: str(date-time), deleted: bool, htmlContent: str, id: str, kind: str, modifiedTime: str(date-time), quotedFileContent: map{mimeType: str, value: str}, replies: [map], resolved: bool}

@endpoint PATCH /files/{fileId}/comments/{commentId}
@required {fileId: str, commentId: str}
@optional {anchor: str, author: map{displayName: str, emailAddress: str, kind: str, me: bool, permissionId: str, photoLink: str}, content: str, createdTime: str(date-time), deleted: bool, htmlContent: str, id: str, kind: str=drive#comment, modifiedTime: str(date-time), quotedFileContent: map{mimeType: str, value: str}, replies: [map{action: str, author: map, content: str, createdTime: str(date-time), deleted: bool, htmlContent: str, id: str, kind: str, modifiedTime: str(date-time)}], resolved: bool}
@returns(200) {anchor: str, author: map{displayName: str, emailAddress: str, kind: str, me: bool, permissionId: str, photoLink: str}, content: str, createdTime: str(date-time), deleted: bool, htmlContent: str, id: str, kind: str, modifiedTime: str(date-time), quotedFileContent: map{mimeType: str, value: str}, replies: [map], resolved: bool}

@endpoint GET /files/{fileId}/comments/{commentId}/replies
@required {fileId: str, commentId: str}
@optional {includeDeleted: bool, pageSize: int, pageToken: str}
@returns(200) {kind: str, nextPageToken: str, replies: [map]}

@endpoint POST /files/{fileId}/comments/{commentId}/replies
@required {fileId: str, commentId: str}
@optional {action: str, author: map{displayName: str, emailAddress: str, kind: str, me: bool, permissionId: str, photoLink: str}, content: str, createdTime: str(date-time), deleted: bool, htmlContent: str, id: str, kind: str=drive#reply, modifiedTime: str(date-time)}
@returns(200) {action: str, author: map{displayName: str, emailAddress: str, kind: str, me: bool, permissionId: str, photoLink: str}, content: str, createdTime: str(date-time), deleted: bool, htmlContent: str, id: str, kind: str, modifiedTime: str(date-time)}

@endpoint DELETE /files/{fileId}/comments/{commentId}/replies/{replyId}
@required {fileId: str, commentId: str, replyId: str}
@returns(200)

@endpoint GET /files/{fileId}/comments/{commentId}/replies/{replyId}
@required {fileId: str, commentId: str, replyId: str}
@optional {includeDeleted: bool}
@returns(200) {action: str, author: map{displayName: str, emailAddress: str, kind: str, me: bool, permissionId: str, photoLink: str}, content: str, createdTime: str(date-time), deleted: bool, htmlContent: str, id: str, kind: str, modifiedTime: str(date-time)}

@endpoint PATCH /files/{fileId}/comments/{commentId}/replies/{replyId}
@required {fileId: str, commentId: str, replyId: str}
@optional {action: str, author: map{displayName: str, emailAddress: str, kind: str, me: bool, permissionId: str, photoLink: str}, content: str, createdTime: str(date-time), deleted: bool, htmlContent: str, id: str, kind: str=drive#reply, modifiedTime: str(date-time)}
@returns(200) {action: str, author: map{displayName: str, emailAddress: str, kind: str, me: bool, permissionId: str, photoLink: str}, content: str, createdTime: str(date-time), deleted: bool, htmlContent: str, id: str, kind: str, modifiedTime: str(date-time)}

@endpoint POST /files/{fileId}/copy
@required {fileId: str}
@optional {enforceSingleParent: bool, ignoreDefaultVisibility: bool, includeLabels: str, includePermissionsForView: str, keepRevisionForever: bool, ocrLanguage: str, supportsAllDrives: bool, supportsTeamDrives: bool, appProperties: map, capabilities: map{canAcceptOwnership: bool, canAddChildren: bool, canAddFolderFromAnotherDrive: bool, canAddMyDriveParent: bool, canChangeCopyRequiresWriterPermission: bool, canChangeSecurityUpdateEnabled: bool, canChangeViewersCanCopyContent: bool, canComment: bool, canCopy: bool, canDelete: bool, canDeleteChildren: bool, canDownload: bool, canEdit: bool, canListChildren: bool, canModifyContent: bool, canModifyContentRestriction: bool, canModifyLabels: bool, canMoveChildrenOutOfDrive: bool, canMoveChildrenOutOfTeamDrive: bool, canMoveChildrenWithinDrive: bool, canMoveChildrenWithinTeamDrive: bool, canMoveItemIntoTeamDrive: bool, canMoveItemOutOfDrive: bool, canMoveItemOutOfTeamDrive: bool, canMoveItemWithinDrive: bool, canMoveItemWithinTeamDrive: bool, canMoveTeamDriveItem: bool, canReadDrive: bool, canReadLabels: bool, canReadRevisions: bool, canReadTeamDrive: bool, canRemoveChildren: bool, canRemoveMyDriveParent: bool, canRename: bool, canShare: bool, canTrash: bool, canTrashChildren: bool, canUntrash: bool}, contentHints: map{indexableText: str, thumbnail: map}, contentRestrictions: [map{readOnly: bool, reason: str, restrictingUser: map, restrictionTime: str(date-time), type: str}], copyRequiresWriterPermission: bool, createdTime: str(date-time), description: str, driveId: str, explicitlyTrashed: bool, exportLinks: map, fileExtension: str, folderColorRgb: str, fullFileExtension: str, hasAugmentedPermissions: bool, hasThumbnail: bool, headRevisionId: str, iconLink: str, id: str, imageMediaMetadata: map{aperture: num(float), cameraMake: str, cameraModel: str, colorSpace: str, exposureBias: num(float), exposureMode: str, exposureTime: num(float), flashUsed: bool, focalLength: num(float), height: int(int32), isoSpeed: int(int32), lens: str, location: map, maxApertureValue: num(float), meteringMode: str, rotation: int(int32), sensor: str, subjectDistance: int(int32), time: str, whiteBalance: str, width: int(int32)}, isAppAuthorized: bool, kind: str=drive#file, labelInfo: map{labels: [map]}, lastModifyingUser: map{displayName: str, emailAddress: str, kind: str, me: bool, permissionId: str, photoLink: str}, linkShareMetadata: map{securityUpdateEligible: bool, securityUpdateEnabled: bool}, md5Checksum: str, mimeType: str, modifiedByMe: bool, modifiedByMeTime: str(date-time), modifiedTime: str(date-time), name: str, originalFilename: str, ownedByMe: bool, owners: [map{displayName: str, emailAddress: str, kind: str, me: bool, permissionId: str, photoLink: str}], parents: [str], permissionIds: [str], permissions: [map{allowFileDiscovery: bool, deleted: bool, displayName: str, domain: str, emailAddress: str, expirationTime: str(date-time), id: str, kind: str, pendingOwner: bool, permissionDetails: [map], photoLink: str, role: str, teamDrivePermissionDetails: [map], type: str, view: str}], properties: map, quotaBytesUsed: str(int64), resourceKey: str, sha1Checksum: str, sha256Checksum: str, shared: bool, sharedWithMeTime: str(date-time), sharingUser: map{displayName: str, emailAddress: str, kind: str, me: bool, permissionId: str, photoLink: str}, shortcutDetails: map{targetId: str, targetMimeType: str, targetResourceKey: str}, size: str(int64), spaces: [str], starred: bool, teamDriveId: str, thumbnailLink: str, thumbnailVersion: str(int64), trashed: bool, trashedTime: str(date-time), trashingUser: map{displayName: str, emailAddress: str, kind: str, me: bool, permissionId: str, photoLink: str}, version: str(int64), videoMediaMetadata: map{durationMillis: str(int64), height: int(int32), width: int(int32)}, viewedByMe: bool, viewedByMeTime: str(date-time), viewersCanCopyContent: bool, webContentLink: str, webViewLink: str, writersCanShare: bool}
@returns(200) {appProperties: map, capabilities: map{canAcceptOwnership: bool, canAddChildren: bool, canAddFolderFromAnotherDrive: bool, canAddMyDriveParent: bool, canChangeCopyRequiresWriterPermission: bool, canChangeSecurityUpdateEnabled: bool, canChangeViewersCanCopyContent: bool, canComment: bool, canCopy: bool, canDelete: bool, canDeleteChildren: bool, canDownload: bool, canEdit: bool, canListChildren: bool, canModifyContent: bool, canModifyContentRestriction: bool, canModifyLabels: bool, canMoveChildrenOutOfDrive: bool, canMoveChildrenOutOfTeamDrive: bool, canMoveChildrenWithinDrive: bool, canMoveChildrenWithinTeamDrive: bool, canMoveItemIntoTeamDrive: bool, canMoveItemOutOfDrive: bool, canMoveItemOutOfTeamDrive: bool, canMoveItemWithinDrive: bool, canMoveItemWithinTeamDrive: bool, canMoveTeamDriveItem: bool, canReadDrive: bool, canReadLabels: bool, canReadRevisions: bool, canReadTeamDrive: bool, canRemoveChildren: bool, canRemoveMyDriveParent: bool, canRename: bool, canShare: bool, canTrash: bool, canTrashChildren: bool, canUntrash: bool}, contentHints: map{indexableText: str, thumbnail: map{image: str(byte), mimeType: str}}, contentRestrictions: [map], copyRequiresWriterPermission: bool, createdTime: str(date-time), description: str, driveId: str, explicitlyTrashed: bool, exportLinks: map, fileExtension: str, folderColorRgb: str, fullFileExtension: str, hasAugmentedPermissions: bool, hasThumbnail: bool, headRevisionId: str, iconLink: str, id: str, imageMediaMetadata: map{aperture: num(float), cameraMake: str, cameraModel: str, colorSpace: str, exposureBias: num(float), exposureMode: str, exposureTime: num(float), flashUsed: bool, focalLength: num(float), height: int(int32), isoSpeed: int(int32), lens: str, location: map{altitude: num(double), latitude: num(double), longitude: num(double)}, maxApertureValue: num(float), meteringMode: str, rotation: int(int32), sensor: str, subjectDistance: int(int32), time: str, whiteBalance: str, width: int(int32)}, isAppAuthorized: bool, kind: str, labelInfo: map{labels: [map]}, lastModifyingUser: map{displayName: str, emailAddress: str, kind: str, me: bool, permissionId: str, photoLink: str}, linkShareMetadata: map{securityUpdateEligible: bool, securityUpdateEnabled: bool}, md5Checksum: str, mimeType: str, modifiedByMe: bool, modifiedByMeTime: str(date-time), modifiedTime: str(date-time), name: str, originalFilename: str, ownedByMe: bool, owners: [map], parents: [str], permissionIds: [str], permissions: [map], properties: map, quotaBytesUsed: str(int64), resourceKey: str, sha1Checksum: str, sha256Checksum: str, shared: bool, sharedWithMeTime: str(date-time), sharingUser: map{displayName: str, emailAddress: str, kind: str, me: bool, permissionId: str, photoLink: str}, shortcutDetails: map{targetId: str, targetMimeType: str, targetResourceKey: str}, size: str(int64), spaces: [str], starred: bool, teamDriveId: str, thumbnailLink: str, thumbnailVersion: str(int64), trashed: bool, trashedTime: str(date-time), trashingUser: map{displayName: str, emailAddress: str, kind: str, me: bool, permissionId: str, photoLink: str}, version: str(int64), videoMediaMetadata: map{durationMillis: str(int64), height: int(int32), width: int(int32)}, viewedByMe: bool, viewedByMeTime: str(date-time), viewersCanCopyContent: bool, webContentLink: str, webViewLink: str, writersCanShare: bool}

@endpoint GET /files/{fileId}/export
@required {fileId: str, mimeType: str}
@returns(200)

@endpoint GET /files/{fileId}/listLabels
@required {fileId: str}
@optional {maxResults: int, pageToken: str}
@returns(200) {kind: str, labels: [map], nextPageToken: str}

@endpoint POST /files/{fileId}/modifyLabels
@required {fileId: str}
@optional {kind: str=drive#modifyLabelsRequest, labelModifications: [map{fieldModifications: [map], kind: str, labelId: str, removeLabel: bool}]}
@returns(200) {kind: str, modifiedLabels: [map]}

@endpoint GET /files/{fileId}/permissions
@required {fileId: str}
@optional {includePermissionsForView: str, pageSize: int, pageToken: str, supportsAllDrives: bool, supportsTeamDrives: bool, useDomainAdminAccess: bool}
@returns(200) {kind: str, nextPageToken: str, permissions: [map]}

@endpoint POST /files/{fileId}/permissions
@required {fileId: str}
@optional {emailMessage: str, enforceSingleParent: bool, moveToNewOwnersRoot: bool, sendNotificationEmail: bool, supportsAllDrives: bool, supportsTeamDrives: bool, transferOwnership: bool, useDomainAdminAccess: bool, allowFileDiscovery: bool, deleted: bool, displayName: str, domain: str, emailAddress: str, expirationTime: str(date-time), id: str, kind: str=drive#permission, pendingOwner: bool, permissionDetails: [map{inherited: bool, inheritedFrom: str, permissionType: str, role: str}], photoLink: str, role: str, teamDrivePermissionDetails: [map{inherited: bool, inheritedFrom: str, role: str, teamDrivePermissionType: str}], type: str, view: str}
@returns(200) {allowFileDiscovery: bool, deleted: bool, displayName: str, domain: str, emailAddress: str, expirationTime: str(date-time), id: str, kind: str, pendingOwner: bool, permissionDetails: [map], photoLink: str, role: str, teamDrivePermissionDetails: [map], type: str, view: str}

@endpoint DELETE /files/{fileId}/permissions/{permissionId}
@required {fileId: str, permissionId: str}
@optional {supportsAllDrives: bool, supportsTeamDrives: bool, useDomainAdminAccess: bool}
@returns(200)

@endpoint GET /files/{fileId}/permissions/{permissionId}
@required {fileId: str, permissionId: str}
@optional {supportsAllDrives: bool, supportsTeamDrives: bool, useDomainAdminAccess: bool}
@returns(200) {allowFileDiscovery: bool, deleted: bool, displayName: str, domain: str, emailAddress: str, expirationTime: str(date-time), id: str, kind: str, pendingOwner: bool, permissionDetails: [map], photoLink: str, role: str, teamDrivePermissionDetails: [map], type: str, view: str}

@endpoint PATCH /files/{fileId}/permissions/{permissionId}
@required {fileId: str, permissionId: str}
@optional {removeExpiration: bool, supportsAllDrives: bool, supportsTeamDrives: bool, transferOwnership: bool, useDomainAdminAccess: bool, allowFileDiscovery: bool, deleted: bool, displayName: str, domain: str, emailAddress: str, expirationTime: str(date-time), id: str, kind: str=drive#permission, pendingOwner: bool, permissionDetails: [map{inherited: bool, inheritedFrom: str, permissionType: str, role: str}], photoLink: str, role: str, teamDrivePermissionDetails: [map{inherited: bool, inheritedFrom: str, role: str, teamDrivePermissionType: str}], type: str, view: str}
@returns(200) {allowFileDiscovery: bool, deleted: bool, displayName: str, domain: str, emailAddress: str, expirationTime: str(date-time), id: str, kind: str, pendingOwner: bool, permissionDetails: [map], photoLink: str, role: str, teamDrivePermissionDetails: [map], type: str, view: str}

@endpoint GET /files/{fileId}/revisions
@required {fileId: str}
@optional {pageSize: int, pageToken: str}
@returns(200) {kind: str, nextPageToken: str, revisions: [map]}

@endpoint DELETE /files/{fileId}/revisions/{revisionId}
@required {fileId: str, revisionId: str}
@returns(200)

@endpoint GET /files/{fileId}/revisions/{revisionId}
@required {fileId: str, revisionId: str}
@optional {acknowledgeAbuse: bool}
@returns(200) {exportLinks: map, id: str, keepForever: bool, kind: str, lastModifyingUser: map{displayName: str, emailAddress: str, kind: str, me: bool, permissionId: str, photoLink: str}, md5Checksum: str, mimeType: str, modifiedTime: str(date-time), originalFilename: str, publishAuto: bool, published: bool, publishedLink: str, publishedOutsideDomain: bool, size: str(int64)}

@endpoint PATCH /files/{fileId}/revisions/{revisionId}
@required {fileId: str, revisionId: str}
@optional {exportLinks: map, id: str, keepForever: bool, kind: str=drive#revision, lastModifyingUser: map{displayName: str, emailAddress: str, kind: str, me: bool, permissionId: str, photoLink: str}, md5Checksum: str, mimeType: str, modifiedTime: str(date-time), originalFilename: str, publishAuto: bool, published: bool, publishedLink: str, publishedOutsideDomain: bool, size: str(int64)}
@returns(200) {exportLinks: map, id: str, keepForever: bool, kind: str, lastModifyingUser: map{displayName: str, emailAddress: str, kind: str, me: bool, permissionId: str, photoLink: str}, md5Checksum: str, mimeType: str, modifiedTime: str(date-time), originalFilename: str, publishAuto: bool, published: bool, publishedLink: str, publishedOutsideDomain: bool, size: str(int64)}

@endpoint POST /files/{fileId}/watch
@required {fileId: str}
@optional {acknowledgeAbuse: bool, includeLabels: str, includePermissionsForView: str, supportsAllDrives: bool, supportsTeamDrives: bool, address: str, expiration: str(int64), id: str, kind: str=api#channel, params: map, payload: bool, resourceId: str, resourceUri: str, token: str, type: str}
@returns(200) {address: str, expiration: str(int64), id: str, kind: str, params: map, payload: bool, resourceId: str, resourceUri: str, token: str, type: str}

@endgroup

@group teamdrives
@endpoint GET /teamdrives
@optional {pageSize: int, pageToken: str, q: str, useDomainAdminAccess: bool}
@returns(200) {kind: str, nextPageToken: str, teamDrives: [map]}

@endpoint POST /teamdrives
@required {requestId: str}
@optional {backgroundImageFile: map{id: str, width: num(float), xCoordinate: num(float), yCoordinate: num(float)}, backgroundImageLink: str, capabilities: map{canAddChildren: bool, canChangeCopyRequiresWriterPermissionRestriction: bool, canChangeDomainUsersOnlyRestriction: bool, canChangeSharingFoldersRequiresOrganizerPermissionRestriction: bool, canChangeTeamDriveBackground: bool, canChangeTeamMembersOnlyRestriction: bool, canComment: bool, canCopy: bool, canDeleteChildren: bool, canDeleteTeamDrive: bool, canDownload: bool, canEdit: bool, canListChildren: bool, canManageMembers: bool, canReadRevisions: bool, canRemoveChildren: bool, canRename: bool, canRenameTeamDrive: bool, canResetTeamDriveRestrictions: bool, canShare: bool, canTrashChildren: bool}, colorRgb: str, createdTime: str(date-time), id: str, kind: str=drive#teamDrive, name: str, orgUnitId: str, restrictions: map{adminManagedRestrictions: bool, copyRequiresWriterPermission: bool, domainUsersOnly: bool, sharingFoldersRequiresOrganizerPermission: bool, teamMembersOnly: bool}, themeId: str}
@returns(200) {backgroundImageFile: map{id: str, width: num(float), xCoordinate: num(float), yCoordinate: num(float)}, backgroundImageLink: str, capabilities: map{canAddChildren: bool, canChangeCopyRequiresWriterPermissionRestriction: bool, canChangeDomainUsersOnlyRestriction: bool, canChangeSharingFoldersRequiresOrganizerPermissionRestriction: bool, canChangeTeamDriveBackground: bool, canChangeTeamMembersOnlyRestriction: bool, canComment: bool, canCopy: bool, canDeleteChildren: bool, canDeleteTeamDrive: bool, canDownload: bool, canEdit: bool, canListChildren: bool, canManageMembers: bool, canReadRevisions: bool, canRemoveChildren: bool, canRename: bool, canRenameTeamDrive: bool, canResetTeamDriveRestrictions: bool, canShare: bool, canTrashChildren: bool}, colorRgb: str, createdTime: str(date-time), id: str, kind: str, name: str, orgUnitId: str, restrictions: map{adminManagedRestrictions: bool, copyRequiresWriterPermission: bool, domainUsersOnly: bool, sharingFoldersRequiresOrganizerPermission: bool, teamMembersOnly: bool}, themeId: str}

@endpoint DELETE /teamdrives/{teamDriveId}
@required {teamDriveId: str}
@returns(200)

@endpoint GET /teamdrives/{teamDriveId}
@required {teamDriveId: str}
@optional {useDomainAdminAccess: bool}
@returns(200) {backgroundImageFile: map{id: str, width: num(float), xCoordinate: num(float), yCoordinate: num(float)}, backgroundImageLink: str, capabilities: map{canAddChildren: bool, canChangeCopyRequiresWriterPermissionRestriction: bool, canChangeDomainUsersOnlyRestriction: bool, canChangeSharingFoldersRequiresOrganizerPermissionRestriction: bool, canChangeTeamDriveBackground: bool, canChangeTeamMembersOnlyRestriction: bool, canComment: bool, canCopy: bool, canDeleteChildren: bool, canDeleteTeamDrive: bool, canDownload: bool, canEdit: bool, canListChildren: bool, canManageMembers: bool, canReadRevisions: bool, canRemoveChildren: bool, canRename: bool, canRenameTeamDrive: bool, canResetTeamDriveRestrictions: bool, canShare: bool, canTrashChildren: bool}, colorRgb: str, createdTime: str(date-time), id: str, kind: str, name: str, orgUnitId: str, restrictions: map{adminManagedRestrictions: bool, copyRequiresWriterPermission: bool, domainUsersOnly: bool, sharingFoldersRequiresOrganizerPermission: bool, teamMembersOnly: bool}, themeId: str}

@endpoint PATCH /teamdrives/{teamDriveId}
@required {teamDriveId: str}
@optional {useDomainAdminAccess: bool, backgroundImageFile: map{id: str, width: num(float), xCoordinate: num(float), yCoordinate: num(float)}, backgroundImageLink: str, capabilities: map{canAddChildren: bool, canChangeCopyRequiresWriterPermissionRestriction: bool, canChangeDomainUsersOnlyRestriction: bool, canChangeSharingFoldersRequiresOrganizerPermissionRestriction: bool, canChangeTeamDriveBackground: bool, canChangeTeamMembersOnlyRestriction: bool, canComment: bool, canCopy: bool, canDeleteChildren: bool, canDeleteTeamDrive: bool, canDownload: bool, canEdit: bool, canListChildren: bool, canManageMembers: bool, canReadRevisions: bool, canRemoveChildren: bool, canRename: bool, canRenameTeamDrive: bool, canResetTeamDriveRestrictions: bool, canShare: bool, canTrashChildren: bool}, colorRgb: str, createdTime: str(date-time), id: str, kind: str=drive#teamDrive, name: str, orgUnitId: str, restrictions: map{adminManagedRestrictions: bool, copyRequiresWriterPermission: bool, domainUsersOnly: bool, sharingFoldersRequiresOrganizerPermission: bool, teamMembersOnly: bool}, themeId: str}
@returns(200) {backgroundImageFile: map{id: str, width: num(float), xCoordinate: num(float), yCoordinate: num(float)}, backgroundImageLink: str, capabilities: map{canAddChildren: bool, canChangeCopyRequiresWriterPermissionRestriction: bool, canChangeDomainUsersOnlyRestriction: bool, canChangeSharingFoldersRequiresOrganizerPermissionRestriction: bool, canChangeTeamDriveBackground: bool, canChangeTeamMembersOnlyRestriction: bool, canComment: bool, canCopy: bool, canDeleteChildren: bool, canDeleteTeamDrive: bool, canDownload: bool, canEdit: bool, canListChildren: bool, canManageMembers: bool, canReadRevisions: bool, canRemoveChildren: bool, canRename: bool, canRenameTeamDrive: bool, canResetTeamDriveRestrictions: bool, canShare: bool, canTrashChildren: bool}, colorRgb: str, createdTime: str(date-time), id: str, kind: str, name: str, orgUnitId: str, restrictions: map{adminManagedRestrictions: bool, copyRequiresWriterPermission: bool, domainUsersOnly: bool, sharingFoldersRequiresOrganizerPermission: bool, teamMembersOnly: bool}, themeId: str}

@endgroup

@end
