Current section

Files

Jump to
google_api_drive lib google_api drive v3 model permission.ex
Raw

lib/google_api/drive/v3/model/permission.ex

# Copyright 2019 Google LLC
#
# 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 file is auto generated by the elixir code generator program.
# Do not edit this file manually.
defmodule GoogleApi.Drive.V3.Model.Permission do
@moduledoc """
A permission for a file. A permission grants a user, group, domain or the world access to a file or a folder hierarchy.
## Attributes
* `allowFileDiscovery` (*type:* `boolean()`, *default:* `nil`) - Whether the permission allows the file to be discovered through search. This is only applicable for permissions of type domain or anyone.
* `deleted` (*type:* `boolean()`, *default:* `nil`) - Whether the account associated with this permission has been deleted. This field only pertains to user and group permissions.
* `displayName` (*type:* `String.t`, *default:* `nil`) - The "pretty" name of the value of the permission. The following is a list of examples for each type of permission:
- user - User's full name, as defined for their Google account, such as "Joe Smith."
- group - Name of the Google Group, such as "The Company Administrators."
- domain - String domain name, such as "thecompany.com."
- anyone - No displayName is present.
* `domain` (*type:* `String.t`, *default:* `nil`) - The domain to which this permission refers.
* `emailAddress` (*type:* `String.t`, *default:* `nil`) - The email address of the user or group to which this permission refers.
* `expirationTime` (*type:* `DateTime.t`, *default:* `nil`) - The time at which this permission will expire (RFC 3339 date-time). Expiration times have the following restrictions:
- They can only be set on user and group permissions
- The time must be in the future
- The time cannot be more than a year in the future
* `id` (*type:* `String.t`, *default:* `nil`) - The ID of this permission. This is a unique identifier for the grantee, and is published in User resources as permissionId. IDs should be treated as opaque values.
* `kind` (*type:* `String.t`, *default:* `drive#permission`) - Identifies what kind of resource this is. Value: the fixed string "drive#permission".
* `permissionDetails` (*type:* `list(GoogleApi.Drive.V3.Model.PermissionPermissionDetails.t)`, *default:* `nil`) - Details of whether the permissions on this shared drive item are inherited or directly on this item. This is an output-only field which is present only for shared drive items.
* `photoLink` (*type:* `String.t`, *default:* `nil`) - A link to the user's profile photo, if available.
* `role` (*type:* `String.t`, *default:* `nil`) - The role granted by this permission. While new values may be supported in the future, the following are currently allowed:
- owner
- organizer
- fileOrganizer
- writer
- commenter
- reader
* `teamDrivePermissionDetails` (*type:* `list(GoogleApi.Drive.V3.Model.PermissionTeamDrivePermissionDetails.t)`, *default:* `nil`) - Deprecated - use permissionDetails instead.
* `type` (*type:* `String.t`, *default:* `nil`) - The type of the grantee. Valid values are:
- user
- group
- domain
- anyone When creating a permission, if type is user or group, you must provide an emailAddress for the user or group. When type is domain, you must provide a domain. There isn't extra information required for a anyone type.
"""
use GoogleApi.Gax.ModelBase
@type t :: %__MODULE__{
:allowFileDiscovery => boolean(),
:deleted => boolean(),
:displayName => String.t(),
:domain => String.t(),
:emailAddress => String.t(),
:expirationTime => DateTime.t(),
:id => String.t(),
:kind => String.t(),
:permissionDetails => list(GoogleApi.Drive.V3.Model.PermissionPermissionDetails.t()),
:photoLink => String.t(),
:role => String.t(),
:teamDrivePermissionDetails =>
list(GoogleApi.Drive.V3.Model.PermissionTeamDrivePermissionDetails.t()),
:type => String.t()
}
field(:allowFileDiscovery)
field(:deleted)
field(:displayName)
field(:domain)
field(:emailAddress)
field(:expirationTime, as: DateTime)
field(:id)
field(:kind)
field(:permissionDetails, as: GoogleApi.Drive.V3.Model.PermissionPermissionDetails, type: :list)
field(:photoLink)
field(:role)
field(
:teamDrivePermissionDetails,
as: GoogleApi.Drive.V3.Model.PermissionTeamDrivePermissionDetails,
type: :list
)
field(:type)
end
defimpl Poison.Decoder, for: GoogleApi.Drive.V3.Model.Permission do
def decode(value, options) do
GoogleApi.Drive.V3.Model.Permission.decode(value, options)
end
end
defimpl Poison.Encoder, for: GoogleApi.Drive.V3.Model.Permission do
def encode(value, options) do
GoogleApi.Gax.ModelBase.encode(value, options)
end
end