Current section

Files

Jump to
google_api_drive lib google_api drive v3 api files.ex
Raw

lib/google_api/drive/v3/api/files.ex

# Copyright 2018 Google Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# NOTE: This class is auto generated by the swagger code generator program.
# https://github.com/swagger-api/swagger-codegen.git
# Do not edit the class manually.
defmodule GoogleApi.Drive.V3.Api.Files do
@moduledoc """
API calls for all endpoints tagged `Files`.
"""
alias GoogleApi.Drive.V3.Connection
import GoogleApi.Drive.V3.RequestBuilder
@doc """
Creates a copy of a file and applies any requested updates with patch semantics.
## Parameters
- connection (GoogleApi.Drive.V3.Connection): Connection to server
- file_id (String.t): The ID of the file.
- opts (KeywordList): [optional] Optional parameters
- :alt (String.t): Data format for the response.
- :fields (String.t): Selector specifying which fields to include in a partial response.
- :key (String.t): API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.
- :oauth_token (String.t): OAuth 2.0 token for the current user.
- :prettyPrint (boolean()): Returns response with indentations and line breaks.
- :quotaUser (String.t): Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters. Overrides userIp if both are provided.
- :userIp (String.t): IP address of the site where the request originates. Use this if you want to enforce per-user limits.
- :ignoreDefaultVisibility (boolean()): Whether to ignore the domain's default visibility settings for the created file. Domain administrators can choose to make all uploaded files visible to the domain by default; this parameter bypasses that behavior for the request. Permissions are still inherited from parent folders.
- :keepRevisionForever (boolean()): Whether to set the 'keepForever' field in the new head revision. This is only applicable to files with binary content in Drive.
- :ocrLanguage (String.t): A language hint for OCR processing during image import (ISO 639-1 code).
- :supportsTeamDrives (boolean()): Whether the requesting application supports Team Drives.
- :body (File):
## Returns
{:ok, %GoogleApi.Drive.V3.Model.File{}} on success
{:error, info} on failure
"""
@spec drive_files_copy(Tesla.Env.client(), String.t(), keyword()) ::
{:ok, GoogleApi.Drive.V3.Model.File.t()} | {:error, Tesla.Env.t()}
def drive_files_copy(connection, file_id, opts \\ []) do
optional_params = %{
:alt => :query,
:fields => :query,
:key => :query,
:oauth_token => :query,
:prettyPrint => :query,
:quotaUser => :query,
:userIp => :query,
:ignoreDefaultVisibility => :query,
:keepRevisionForever => :query,
:ocrLanguage => :query,
:supportsTeamDrives => :query,
:body => :body
}
%{}
|> method(:post)
|> url("/drive/v3/files/{fileId}/copy", %{
"fileId" => URI.encode_www_form(file_id)
})
|> add_optional_params(optional_params, opts)
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> decode(%GoogleApi.Drive.V3.Model.File{})
end
@doc """
Creates a new file.
## Parameters
- connection (GoogleApi.Drive.V3.Connection): Connection to server
- opts (KeywordList): [optional] Optional parameters
- :alt (String.t): Data format for the response.
- :fields (String.t): Selector specifying which fields to include in a partial response.
- :key (String.t): API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.
- :oauth_token (String.t): OAuth 2.0 token for the current user.
- :prettyPrint (boolean()): Returns response with indentations and line breaks.
- :quotaUser (String.t): Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters. Overrides userIp if both are provided.
- :userIp (String.t): IP address of the site where the request originates. Use this if you want to enforce per-user limits.
- :ignoreDefaultVisibility (boolean()): Whether to ignore the domain's default visibility settings for the created file. Domain administrators can choose to make all uploaded files visible to the domain by default; this parameter bypasses that behavior for the request. Permissions are still inherited from parent folders.
- :keepRevisionForever (boolean()): Whether to set the 'keepForever' field in the new head revision. This is only applicable to files with binary content in Drive.
- :ocrLanguage (String.t): A language hint for OCR processing during image import (ISO 639-1 code).
- :supportsTeamDrives (boolean()): Whether the requesting application supports Team Drives.
- :useContentAsIndexableText (boolean()): Whether to use the uploaded content as indexable text.
- :body (File):
## Returns
{:ok, %GoogleApi.Drive.V3.Model.File{}} on success
{:error, info} on failure
"""
@spec drive_files_create(Tesla.Env.client(), keyword()) ::
{:ok, GoogleApi.Drive.V3.Model.File.t()} | {:error, Tesla.Env.t()}
def drive_files_create(connection, opts \\ []) do
optional_params = %{
:alt => :query,
:fields => :query,
:key => :query,
:oauth_token => :query,
:prettyPrint => :query,
:quotaUser => :query,
:userIp => :query,
:ignoreDefaultVisibility => :query,
:keepRevisionForever => :query,
:ocrLanguage => :query,
:supportsTeamDrives => :query,
:useContentAsIndexableText => :query,
:body => :body
}
%{}
|> method(:post)
|> url("/drive/v3/files")
|> add_optional_params(optional_params, opts)
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> decode(%GoogleApi.Drive.V3.Model.File{})
end
@doc """
Creates a new file.
## Parameters
- connection (GoogleApi.Drive.V3.Connection): Connection to server
- upload_type (String.t): Upload type. Must be \"resumable\".
- opts (KeywordList): [optional] Optional parameters
- :alt (String.t): Data format for the response.
- :fields (String.t): Selector specifying which fields to include in a partial response.
- :key (String.t): API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.
- :oauth_token (String.t): OAuth 2.0 token for the current user.
- :prettyPrint (boolean()): Returns response with indentations and line breaks.
- :quotaUser (String.t): Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters. Overrides userIp if both are provided.
- :userIp (String.t): IP address of the site where the request originates. Use this if you want to enforce per-user limits.
- :ignoreDefaultVisibility (boolean()): Whether to ignore the domain's default visibility settings for the created file. Domain administrators can choose to make all uploaded files visible to the domain by default; this parameter bypasses that behavior for the request. Permissions are still inherited from parent folders.
- :keepRevisionForever (boolean()): Whether to set the 'keepForever' field in the new head revision. This is only applicable to files with binary content in Drive.
- :ocrLanguage (String.t): A language hint for OCR processing during image import (ISO 639-1 code).
- :supportsTeamDrives (boolean()): Whether the requesting application supports Team Drives.
- :useContentAsIndexableText (boolean()): Whether to use the uploaded content as indexable text.
- :body (File):
## Returns
{:ok, %{}} on success
{:error, info} on failure
"""
@spec drive_files_create_resumable(Tesla.Env.client(), String.t(), keyword()) ::
{:ok, nil} | {:error, Tesla.Env.t()}
def drive_files_create_resumable(connection, upload_type, opts \\ []) do
optional_params = %{
:alt => :query,
:fields => :query,
:key => :query,
:oauth_token => :query,
:prettyPrint => :query,
:quotaUser => :query,
:userIp => :query,
:ignoreDefaultVisibility => :query,
:keepRevisionForever => :query,
:ocrLanguage => :query,
:supportsTeamDrives => :query,
:useContentAsIndexableText => :query,
:body => :body
}
%{}
|> method(:post)
|> url("/resumable/upload/drive/v3/files")
|> add_param(:query, :uploadType, upload_type)
|> add_optional_params(optional_params, opts)
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> decode(false)
end
@doc """
Creates a new file.
## Parameters
- connection (GoogleApi.Drive.V3.Connection): Connection to server
- upload_type (String.t): Upload type. Must be \"multipart\".
- metadata (File): File metadata.
- data (String.t): The file to upload.
- opts (KeywordList): [optional] Optional parameters
- :alt (String.t): Data format for the response.
- :fields (String.t): Selector specifying which fields to include in a partial response.
- :key (String.t): API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.
- :oauth_token (String.t): OAuth 2.0 token for the current user.
- :prettyPrint (boolean()): Returns response with indentations and line breaks.
- :quotaUser (String.t): Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters. Overrides userIp if both are provided.
- :userIp (String.t): IP address of the site where the request originates. Use this if you want to enforce per-user limits.
- :ignoreDefaultVisibility (boolean()): Whether to ignore the domain's default visibility settings for the created file. Domain administrators can choose to make all uploaded files visible to the domain by default; this parameter bypasses that behavior for the request. Permissions are still inherited from parent folders.
- :keepRevisionForever (boolean()): Whether to set the 'keepForever' field in the new head revision. This is only applicable to files with binary content in Drive.
- :ocrLanguage (String.t): A language hint for OCR processing during image import (ISO 639-1 code).
- :supportsTeamDrives (boolean()): Whether the requesting application supports Team Drives.
- :useContentAsIndexableText (boolean()): Whether to use the uploaded content as indexable text.
## Returns
{:ok, %GoogleApi.Drive.V3.Model.File{}} on success
{:error, info} on failure
"""
@spec drive_files_create_simple(
Tesla.Env.client(),
String.t(),
GoogleApi.Drive.V3.Model.File.t(),
String.t(),
keyword()
) :: {:ok, GoogleApi.Drive.V3.Model.File.t()} | {:error, Tesla.Env.t()}
def drive_files_create_simple(connection, upload_type, metadata, data, opts \\ []) do
optional_params = %{
:alt => :query,
:fields => :query,
:key => :query,
:oauth_token => :query,
:prettyPrint => :query,
:quotaUser => :query,
:userIp => :query,
:ignoreDefaultVisibility => :query,
:keepRevisionForever => :query,
:ocrLanguage => :query,
:supportsTeamDrives => :query,
:useContentAsIndexableText => :query
}
%{}
|> method(:post)
|> url("/upload/drive/v3/files")
|> add_param(:query, :uploadType, upload_type)
|> add_param(:body, :metadata, metadata)
|> add_param(:file, :data, data)
|> add_optional_params(optional_params, opts)
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> decode(%GoogleApi.Drive.V3.Model.File{})
end
@doc """
Permanently deletes a file owned by the user without moving it to the trash. If the file belongs to a Team Drive the user must be an organizer on the parent. If the target is a folder, all descendants owned by the user are also deleted.
## Parameters
- connection (GoogleApi.Drive.V3.Connection): Connection to server
- file_id (String.t): The ID of the file.
- opts (KeywordList): [optional] Optional parameters
- :alt (String.t): Data format for the response.
- :fields (String.t): Selector specifying which fields to include in a partial response.
- :key (String.t): API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.
- :oauth_token (String.t): OAuth 2.0 token for the current user.
- :prettyPrint (boolean()): Returns response with indentations and line breaks.
- :quotaUser (String.t): Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters. Overrides userIp if both are provided.
- :userIp (String.t): IP address of the site where the request originates. Use this if you want to enforce per-user limits.
- :supportsTeamDrives (boolean()): Whether the requesting application supports Team Drives.
## Returns
{:ok, %{}} on success
{:error, info} on failure
"""
@spec drive_files_delete(Tesla.Env.client(), String.t(), keyword()) ::
{:ok, nil} | {:error, Tesla.Env.t()}
def drive_files_delete(connection, file_id, opts \\ []) do
optional_params = %{
:alt => :query,
:fields => :query,
:key => :query,
:oauth_token => :query,
:prettyPrint => :query,
:quotaUser => :query,
:userIp => :query,
:supportsTeamDrives => :query
}
%{}
|> method(:delete)
|> url("/drive/v3/files/{fileId}", %{
"fileId" => URI.encode_www_form(file_id)
})
|> add_optional_params(optional_params, opts)
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> decode(false)
end
@doc """
Permanently deletes all of the user's trashed files.
## Parameters
- connection (GoogleApi.Drive.V3.Connection): Connection to server
- opts (KeywordList): [optional] Optional parameters
- :alt (String.t): Data format for the response.
- :fields (String.t): Selector specifying which fields to include in a partial response.
- :key (String.t): API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.
- :oauth_token (String.t): OAuth 2.0 token for the current user.
- :prettyPrint (boolean()): Returns response with indentations and line breaks.
- :quotaUser (String.t): Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters. Overrides userIp if both are provided.
- :userIp (String.t): IP address of the site where the request originates. Use this if you want to enforce per-user limits.
## Returns
{:ok, %{}} on success
{:error, info} on failure
"""
@spec drive_files_empty_trash(Tesla.Env.client(), keyword()) ::
{:ok, nil} | {:error, Tesla.Env.t()}
def drive_files_empty_trash(connection, opts \\ []) do
optional_params = %{
:alt => :query,
:fields => :query,
:key => :query,
:oauth_token => :query,
:prettyPrint => :query,
:quotaUser => :query,
:userIp => :query
}
%{}
|> method(:delete)
|> url("/drive/v3/files/trash")
|> add_optional_params(optional_params, opts)
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> decode(false)
end
@doc """
Exports a Google Doc to the requested MIME type and returns the exported content. Please note that the exported content is limited to 10MB.
## Parameters
- connection (GoogleApi.Drive.V3.Connection): Connection to server
- file_id (String.t): The ID of the file.
- mime_type (String.t): The MIME type of the format requested for this export.
- opts (KeywordList): [optional] Optional parameters
- :alt (String.t): Data format for the response.
- :fields (String.t): Selector specifying which fields to include in a partial response.
- :key (String.t): API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.
- :oauth_token (String.t): OAuth 2.0 token for the current user.
- :prettyPrint (boolean()): Returns response with indentations and line breaks.
- :quotaUser (String.t): Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters. Overrides userIp if both are provided.
- :userIp (String.t): IP address of the site where the request originates. Use this if you want to enforce per-user limits.
## Returns
{:ok, %{}} on success
{:error, info} on failure
"""
@spec drive_files_export(Tesla.Env.client(), String.t(), String.t(), keyword()) ::
{:ok, nil} | {:error, Tesla.Env.t()}
def drive_files_export(connection, file_id, mime_type, opts \\ []) do
optional_params = %{
:alt => :query,
:fields => :query,
:key => :query,
:oauth_token => :query,
:prettyPrint => :query,
:quotaUser => :query,
:userIp => :query
}
%{}
|> method(:get)
|> url("/drive/v3/files/{fileId}/export", %{
"fileId" => URI.encode_www_form(file_id)
})
|> add_param(:query, :mimeType, mime_type)
|> add_optional_params(optional_params, opts)
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> decode(false)
end
@doc """
Generates a set of file IDs which can be provided in create requests.
## Parameters
- connection (GoogleApi.Drive.V3.Connection): Connection to server
- opts (KeywordList): [optional] Optional parameters
- :alt (String.t): Data format for the response.
- :fields (String.t): Selector specifying which fields to include in a partial response.
- :key (String.t): API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.
- :oauth_token (String.t): OAuth 2.0 token for the current user.
- :prettyPrint (boolean()): Returns response with indentations and line breaks.
- :quotaUser (String.t): Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters. Overrides userIp if both are provided.
- :userIp (String.t): IP address of the site where the request originates. Use this if you want to enforce per-user limits.
- :count (integer()): The number of IDs to return.
- :space (String.t): The space in which the IDs can be used to create new files. Supported values are 'drive' and 'appDataFolder'.
## Returns
{:ok, %GoogleApi.Drive.V3.Model.GeneratedIds{}} on success
{:error, info} on failure
"""
@spec drive_files_generate_ids(Tesla.Env.client(), keyword()) ::
{:ok, GoogleApi.Drive.V3.Model.GeneratedIds.t()} | {:error, Tesla.Env.t()}
def drive_files_generate_ids(connection, opts \\ []) do
optional_params = %{
:alt => :query,
:fields => :query,
:key => :query,
:oauth_token => :query,
:prettyPrint => :query,
:quotaUser => :query,
:userIp => :query,
:count => :query,
:space => :query
}
%{}
|> method(:get)
|> url("/drive/v3/files/generateIds")
|> add_optional_params(optional_params, opts)
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> decode(%GoogleApi.Drive.V3.Model.GeneratedIds{})
end
@doc """
Gets a file's metadata or content by ID.
## Parameters
- connection (GoogleApi.Drive.V3.Connection): Connection to server
- file_id (String.t): The ID of the file.
- opts (KeywordList): [optional] Optional parameters
- :alt (String.t): Data format for the response.
- :fields (String.t): Selector specifying which fields to include in a partial response.
- :key (String.t): API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.
- :oauth_token (String.t): OAuth 2.0 token for the current user.
- :prettyPrint (boolean()): Returns response with indentations and line breaks.
- :quotaUser (String.t): Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters. Overrides userIp if both are provided.
- :userIp (String.t): IP address of the site where the request originates. Use this if you want to enforce per-user limits.
- :acknowledgeAbuse (boolean()): Whether the user is acknowledging the risk of downloading known malware or other abusive files. This is only applicable when alt=media.
- :supportsTeamDrives (boolean()): Whether the requesting application supports Team Drives.
## Returns
{:ok, %GoogleApi.Drive.V3.Model.File{}} on success
{:error, info} on failure
"""
@spec drive_files_get(Tesla.Env.client(), String.t(), keyword()) ::
{:ok, GoogleApi.Drive.V3.Model.File.t()} | {:error, Tesla.Env.t()}
def drive_files_get(connection, file_id, opts \\ []) do
optional_params = %{
:alt => :query,
:fields => :query,
:key => :query,
:oauth_token => :query,
:prettyPrint => :query,
:quotaUser => :query,
:userIp => :query,
:acknowledgeAbuse => :query,
:supportsTeamDrives => :query
}
%{}
|> method(:get)
|> url("/drive/v3/files/{fileId}", %{
"fileId" => URI.encode_www_form(file_id)
})
|> add_optional_params(optional_params, opts)
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> decode(%GoogleApi.Drive.V3.Model.File{})
end
@doc """
Lists or searches files.
## Parameters
- connection (GoogleApi.Drive.V3.Connection): Connection to server
- opts (KeywordList): [optional] Optional parameters
- :alt (String.t): Data format for the response.
- :fields (String.t): Selector specifying which fields to include in a partial response.
- :key (String.t): API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.
- :oauth_token (String.t): OAuth 2.0 token for the current user.
- :prettyPrint (boolean()): Returns response with indentations and line breaks.
- :quotaUser (String.t): Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters. Overrides userIp if both are provided.
- :userIp (String.t): IP address of the site where the request originates. Use this if you want to enforce per-user limits.
- :corpora (String.t): Comma-separated list of bodies of items (files/documents) to which the query applies. Supported bodies are 'user', 'domain', 'teamDrive' and 'allTeamDrives'. 'allTeamDrives' must be combined with 'user'; all other values must be used in isolation. Prefer 'user' or 'teamDrive' to 'allTeamDrives' for efficiency.
- :corpus (String.t): The source of files to list. Deprecated: use 'corpora' instead.
- :includeTeamDriveItems (boolean()): Whether Team Drive items should be included in results.
- :orderBy (String.t): A comma-separated list of sort keys. Valid keys are 'createdTime', 'folder', 'modifiedByMeTime', 'modifiedTime', 'name', 'name_natural', 'quotaBytesUsed', 'recency', 'sharedWithMeTime', 'starred', and 'viewedByMeTime'. Each key sorts ascending by default, but may be reversed with the 'desc' modifier. Example usage: ?orderBy=folder,modifiedTime desc,name. Please note that there is a current limitation for users with approximately one million files in which the requested sort order is ignored.
- :pageSize (integer()): The maximum number of files to return per page. Partial or empty result pages are possible even before the end of the files list has been reached.
- :pageToken (String.t): The token for continuing a previous list request on the next page. This should be set to the value of 'nextPageToken' from the previous response.
- :q (String.t): A query for filtering the file results. See the \"Search for Files\" guide for supported syntax.
- :spaces (String.t): A comma-separated list of spaces to query within the corpus. Supported values are 'drive', 'appDataFolder' and 'photos'.
- :supportsTeamDrives (boolean()): Whether the requesting application supports Team Drives.
- :teamDriveId (String.t): ID of Team Drive to search.
## Returns
{:ok, %GoogleApi.Drive.V3.Model.FileList{}} on success
{:error, info} on failure
"""
@spec drive_files_list(Tesla.Env.client(), keyword()) ::
{:ok, GoogleApi.Drive.V3.Model.FileList.t()} | {:error, Tesla.Env.t()}
def drive_files_list(connection, opts \\ []) do
optional_params = %{
:alt => :query,
:fields => :query,
:key => :query,
:oauth_token => :query,
:prettyPrint => :query,
:quotaUser => :query,
:userIp => :query,
:corpora => :query,
:corpus => :query,
:includeTeamDriveItems => :query,
:orderBy => :query,
:pageSize => :query,
:pageToken => :query,
:q => :query,
:spaces => :query,
:supportsTeamDrives => :query,
:teamDriveId => :query
}
%{}
|> method(:get)
|> url("/drive/v3/files")
|> add_optional_params(optional_params, opts)
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> decode(%GoogleApi.Drive.V3.Model.FileList{})
end
@doc """
Updates a file's metadata and/or content with patch semantics.
## Parameters
- connection (GoogleApi.Drive.V3.Connection): Connection to server
- file_id (String.t): The ID of the file.
- opts (KeywordList): [optional] Optional parameters
- :alt (String.t): Data format for the response.
- :fields (String.t): Selector specifying which fields to include in a partial response.
- :key (String.t): API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.
- :oauth_token (String.t): OAuth 2.0 token for the current user.
- :prettyPrint (boolean()): Returns response with indentations and line breaks.
- :quotaUser (String.t): Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters. Overrides userIp if both are provided.
- :userIp (String.t): IP address of the site where the request originates. Use this if you want to enforce per-user limits.
- :addParents (String.t): A comma-separated list of parent IDs to add.
- :keepRevisionForever (boolean()): Whether to set the 'keepForever' field in the new head revision. This is only applicable to files with binary content in Drive.
- :ocrLanguage (String.t): A language hint for OCR processing during image import (ISO 639-1 code).
- :removeParents (String.t): A comma-separated list of parent IDs to remove.
- :supportsTeamDrives (boolean()): Whether the requesting application supports Team Drives.
- :useContentAsIndexableText (boolean()): Whether to use the uploaded content as indexable text.
- :body (File):
## Returns
{:ok, %GoogleApi.Drive.V3.Model.File{}} on success
{:error, info} on failure
"""
@spec drive_files_update(Tesla.Env.client(), String.t(), keyword()) ::
{:ok, GoogleApi.Drive.V3.Model.File.t()} | {:error, Tesla.Env.t()}
def drive_files_update(connection, file_id, opts \\ []) do
optional_params = %{
:alt => :query,
:fields => :query,
:key => :query,
:oauth_token => :query,
:prettyPrint => :query,
:quotaUser => :query,
:userIp => :query,
:addParents => :query,
:keepRevisionForever => :query,
:ocrLanguage => :query,
:removeParents => :query,
:supportsTeamDrives => :query,
:useContentAsIndexableText => :query,
:body => :body
}
%{}
|> method(:patch)
|> url("/drive/v3/files/{fileId}", %{
"fileId" => URI.encode_www_form(file_id)
})
|> add_optional_params(optional_params, opts)
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> decode(%GoogleApi.Drive.V3.Model.File{})
end
@doc """
Updates a file's metadata and/or content with patch semantics.
## Parameters
- connection (GoogleApi.Drive.V3.Connection): Connection to server
- file_id (String.t): The ID of the file.
- upload_type (String.t): Upload type. Must be \"resumable\".
- opts (KeywordList): [optional] Optional parameters
- :alt (String.t): Data format for the response.
- :fields (String.t): Selector specifying which fields to include in a partial response.
- :key (String.t): API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.
- :oauth_token (String.t): OAuth 2.0 token for the current user.
- :prettyPrint (boolean()): Returns response with indentations and line breaks.
- :quotaUser (String.t): Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters. Overrides userIp if both are provided.
- :userIp (String.t): IP address of the site where the request originates. Use this if you want to enforce per-user limits.
- :addParents (String.t): A comma-separated list of parent IDs to add.
- :keepRevisionForever (boolean()): Whether to set the 'keepForever' field in the new head revision. This is only applicable to files with binary content in Drive.
- :ocrLanguage (String.t): A language hint for OCR processing during image import (ISO 639-1 code).
- :removeParents (String.t): A comma-separated list of parent IDs to remove.
- :supportsTeamDrives (boolean()): Whether the requesting application supports Team Drives.
- :useContentAsIndexableText (boolean()): Whether to use the uploaded content as indexable text.
- :body (File):
## Returns
{:ok, %{}} on success
{:error, info} on failure
"""
@spec drive_files_update_resumable(Tesla.Env.client(), String.t(), String.t(), keyword()) ::
{:ok, nil} | {:error, Tesla.Env.t()}
def drive_files_update_resumable(connection, file_id, upload_type, opts \\ []) do
optional_params = %{
:alt => :query,
:fields => :query,
:key => :query,
:oauth_token => :query,
:prettyPrint => :query,
:quotaUser => :query,
:userIp => :query,
:addParents => :query,
:keepRevisionForever => :query,
:ocrLanguage => :query,
:removeParents => :query,
:supportsTeamDrives => :query,
:useContentAsIndexableText => :query,
:body => :body
}
%{}
|> method(:patch)
|> url("/resumable/upload/drive/v3/files/{fileId}", %{
"fileId" => URI.encode_www_form(file_id)
})
|> add_param(:query, :uploadType, upload_type)
|> add_optional_params(optional_params, opts)
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> decode(false)
end
@doc """
Updates a file's metadata and/or content with patch semantics.
## Parameters
- connection (GoogleApi.Drive.V3.Connection): Connection to server
- file_id (String.t): The ID of the file.
- upload_type (String.t): Upload type. Must be \"multipart\".
- metadata (File): File metadata.
- data (String.t): The file to upload.
- opts (KeywordList): [optional] Optional parameters
- :alt (String.t): Data format for the response.
- :fields (String.t): Selector specifying which fields to include in a partial response.
- :key (String.t): API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.
- :oauth_token (String.t): OAuth 2.0 token for the current user.
- :prettyPrint (boolean()): Returns response with indentations and line breaks.
- :quotaUser (String.t): Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters. Overrides userIp if both are provided.
- :userIp (String.t): IP address of the site where the request originates. Use this if you want to enforce per-user limits.
- :addParents (String.t): A comma-separated list of parent IDs to add.
- :keepRevisionForever (boolean()): Whether to set the 'keepForever' field in the new head revision. This is only applicable to files with binary content in Drive.
- :ocrLanguage (String.t): A language hint for OCR processing during image import (ISO 639-1 code).
- :removeParents (String.t): A comma-separated list of parent IDs to remove.
- :supportsTeamDrives (boolean()): Whether the requesting application supports Team Drives.
- :useContentAsIndexableText (boolean()): Whether to use the uploaded content as indexable text.
## Returns
{:ok, %GoogleApi.Drive.V3.Model.File{}} on success
{:error, info} on failure
"""
@spec drive_files_update_simple(
Tesla.Env.client(),
String.t(),
String.t(),
GoogleApi.Drive.V3.Model.File.t(),
String.t(),
keyword()
) :: {:ok, GoogleApi.Drive.V3.Model.File.t()} | {:error, Tesla.Env.t()}
def drive_files_update_simple(connection, file_id, upload_type, metadata, data, opts \\ []) do
optional_params = %{
:alt => :query,
:fields => :query,
:key => :query,
:oauth_token => :query,
:prettyPrint => :query,
:quotaUser => :query,
:userIp => :query,
:addParents => :query,
:keepRevisionForever => :query,
:ocrLanguage => :query,
:removeParents => :query,
:supportsTeamDrives => :query,
:useContentAsIndexableText => :query
}
%{}
|> method(:patch)
|> url("/upload/drive/v3/files/{fileId}", %{
"fileId" => URI.encode_www_form(file_id)
})
|> add_param(:query, :uploadType, upload_type)
|> add_param(:body, :metadata, metadata)
|> add_param(:file, :data, data)
|> add_optional_params(optional_params, opts)
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> decode(%GoogleApi.Drive.V3.Model.File{})
end
@doc """
Subscribes to changes to a file
## Parameters
- connection (GoogleApi.Drive.V3.Connection): Connection to server
- file_id (String.t): The ID of the file.
- opts (KeywordList): [optional] Optional parameters
- :alt (String.t): Data format for the response.
- :fields (String.t): Selector specifying which fields to include in a partial response.
- :key (String.t): API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.
- :oauth_token (String.t): OAuth 2.0 token for the current user.
- :prettyPrint (boolean()): Returns response with indentations and line breaks.
- :quotaUser (String.t): Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters. Overrides userIp if both are provided.
- :userIp (String.t): IP address of the site where the request originates. Use this if you want to enforce per-user limits.
- :acknowledgeAbuse (boolean()): Whether the user is acknowledging the risk of downloading known malware or other abusive files. This is only applicable when alt=media.
- :supportsTeamDrives (boolean()): Whether the requesting application supports Team Drives.
- :resource (Channel):
## Returns
{:ok, %GoogleApi.Drive.V3.Model.Channel{}} on success
{:error, info} on failure
"""
@spec drive_files_watch(Tesla.Env.client(), String.t(), keyword()) ::
{:ok, GoogleApi.Drive.V3.Model.Channel.t()} | {:error, Tesla.Env.t()}
def drive_files_watch(connection, file_id, opts \\ []) do
optional_params = %{
:alt => :query,
:fields => :query,
:key => :query,
:oauth_token => :query,
:prettyPrint => :query,
:quotaUser => :query,
:userIp => :query,
:acknowledgeAbuse => :query,
:supportsTeamDrives => :query,
:resource => :body
}
%{}
|> method(:post)
|> url("/drive/v3/files/{fileId}/watch", %{
"fileId" => URI.encode_www_form(file_id)
})
|> add_optional_params(optional_params, opts)
|> Enum.into([])
|> (&Connection.request(connection, &1)).()
|> decode(%GoogleApi.Drive.V3.Model.Channel{})
end
end