Class: Google::Apis::DriveV3::Permission

Inherits:
Object
  • Object
show all
Includes:
Core::Hashable, Core::JsonObjectSupport
Defined in:
lib/google/apis/drive_v3/classes.rb,
lib/google/apis/drive_v3/representations.rb,
lib/google/apis/drive_v3/representations.rb

Overview

A permission for a file. A permission grants a user, group, domain, or the world access to a file or a folder hierarchy. By default, permissions requests only return a subset of fields. Permission kind, ID, type, and role are always returned. To retrieve specific fields, see https://developers.google.com/ workspace/drive/api/guides/fields-parameter. Some resource methods (such as permissions.update) require a permissionId. Use the permissions.list method to retrieve the ID for a file, folder, or shared drive.

Defined Under Namespace

Classes: PermissionDetail, TeamDrivePermissionDetail

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(**args) ⇒ Permission

Returns a new instance of Permission.



3265
3266
3267
# File 'lib/google/apis/drive_v3/classes.rb', line 3265

def initialize(**args)
   update!(**args)
end

Instance Attribute Details

#allow_file_discoveryBoolean Also known as: allow_file_discovery?

Whether the permission allows the file to be discovered through search. This is only applicable for permissions of type domain or anyone. Corresponds to the JSON property allowFileDiscovery

Returns:

  • (Boolean)


3158
3159
3160
# File 'lib/google/apis/drive_v3/classes.rb', line 3158

def allow_file_discovery
  @allow_file_discovery
end

#deletedBoolean Also known as: deleted?

Output only. Whether the account associated with this permission has been deleted. This field only pertains to user and group permissions. Corresponds to the JSON property deleted

Returns:

  • (Boolean)


3165
3166
3167
# File 'lib/google/apis/drive_v3/classes.rb', line 3165

def deleted
  @deleted
end

#display_nameString

Output only. 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. Corresponds to the JSON property displayName

Returns:

  • (String)


3176
3177
3178
# File 'lib/google/apis/drive_v3/classes.rb', line 3176

def display_name
  @display_name
end

#domainString

The domain to which this permission refers. Corresponds to the JSON property domain

Returns:

  • (String)


3181
3182
3183
# File 'lib/google/apis/drive_v3/classes.rb', line 3181

def domain
  @domain
end

#email_addressString

The email address of the user or group to which this permission refers. Corresponds to the JSON property emailAddress

Returns:

  • (String)


3186
3187
3188
# File 'lib/google/apis/drive_v3/classes.rb', line 3186

def email_address
  @email_address
end

#expiration_timeDateTime

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 Corresponds to the JSON property expirationTime

Returns:

  • (DateTime)


3194
3195
3196
# File 'lib/google/apis/drive_v3/classes.rb', line 3194

def expiration_time
  @expiration_time
end

#idString

Output only. 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. Corresponds to the JSON property id

Returns:

  • (String)


3201
3202
3203
# File 'lib/google/apis/drive_v3/classes.rb', line 3201

def id
  @id
end

#inherited_permissions_disabledBoolean Also known as: inherited_permissions_disabled?

When true, only organizers, owners, and users with permissions added directly on the item can access it. Corresponds to the JSON property inheritedPermissionsDisabled

Returns:

  • (Boolean)


3207
3208
3209
# File 'lib/google/apis/drive_v3/classes.rb', line 3207

def inherited_permissions_disabled
  @inherited_permissions_disabled
end

#kindString

Output only. Identifies what kind of resource this is. Value: the fixed string "drive#permission". Corresponds to the JSON property kind

Returns:

  • (String)


3214
3215
3216
# File 'lib/google/apis/drive_v3/classes.rb', line 3214

def kind
  @kind
end

#pending_ownerBoolean Also known as: pending_owner?

Whether the account associated with this permission is a pending owner. Only populated for user type permissions for files that are not in a shared drive. Corresponds to the JSON property pendingOwner

Returns:

  • (Boolean)


3220
3221
3222
# File 'lib/google/apis/drive_v3/classes.rb', line 3220

def pending_owner
  @pending_owner
end

#permission_detailsArray<Google::Apis::DriveV3::Permission::PermissionDetail>

Output only. Details of whether the permissions on this item are inherited or directly on this item. Corresponds to the JSON property permissionDetails



3227
3228
3229
# File 'lib/google/apis/drive_v3/classes.rb', line 3227

def permission_details
  @permission_details
end

Output only. A link to the user's profile photo, if available. Corresponds to the JSON property photoLink

Returns:

  • (String)


3232
3233
3234
# File 'lib/google/apis/drive_v3/classes.rb', line 3232

def photo_link
  @photo_link
end

#roleString

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 Corresponds to the JSON property role

Returns:

  • (String)


3239
3240
3241
# File 'lib/google/apis/drive_v3/classes.rb', line 3239

def role
  @role
end

#team_drive_permission_detailsArray<Google::Apis::DriveV3::Permission::TeamDrivePermissionDetail>

Output only. Deprecated: Output only. Use permissionDetails instead. Corresponds to the JSON property teamDrivePermissionDetails



3244
3245
3246
# File 'lib/google/apis/drive_v3/classes.rb', line 3244

def team_drive_permission_details
  @team_drive_permission_details
end

#typeString

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 an anyone type. Corresponds to the JSON property type

Returns:

  • (String)


3253
3254
3255
# File 'lib/google/apis/drive_v3/classes.rb', line 3253

def type
  @type
end

#viewString

Indicates the view for this permission. Only populated for permissions that belong to a view. published and metadata are the only supported values. - published: The permission's role is published_reader. - metadata: The item is only visible to the metadata view because the item has limited access and the scope has at least read access to the parent. Note: The metadata view is currently only supported on folders. Corresponds to the JSON property view

Returns:

  • (String)


3263
3264
3265
# File 'lib/google/apis/drive_v3/classes.rb', line 3263

def view
  @view
end

Instance Method Details

#update!(**args) ⇒ Object

Update properties of this object



3270
3271
3272
3273
3274
3275
3276
3277
3278
3279
3280
3281
3282
3283
3284
3285
3286
3287
# File 'lib/google/apis/drive_v3/classes.rb', line 3270

def update!(**args)
  @allow_file_discovery = args[:allow_file_discovery] if args.key?(:allow_file_discovery)
  @deleted = args[:deleted] if args.key?(:deleted)
  @display_name = args[:display_name] if args.key?(:display_name)
  @domain = args[:domain] if args.key?(:domain)
  @email_address = args[:email_address] if args.key?(:email_address)
  @expiration_time = args[:expiration_time] if args.key?(:expiration_time)
  @id = args[:id] if args.key?(:id)
  @inherited_permissions_disabled = args[:inherited_permissions_disabled] if args.key?(:inherited_permissions_disabled)
  @kind = args[:kind] if args.key?(:kind)
  @pending_owner = args[:pending_owner] if args.key?(:pending_owner)
  @permission_details = args[:permission_details] if args.key?(:permission_details)
  @photo_link = args[:photo_link] if args.key?(:photo_link)
  @role = args[:role] if args.key?(:role)
  @team_drive_permission_details = args[:team_drive_permission_details] if args.key?(:team_drive_permission_details)
  @type = args[:type] if args.key?(:type)
  @view = args[:view] if args.key?(:view)
end