# Copyright 2015 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. require 'date' require 'google/apis/core/base_service' require 'google/apis/core/json_representation' require 'google/apis/core/hashable' require 'google/apis/errors' module Google module Apis module VaultV1 # Add an account with the permission specified. The role cannot be owner. # If an account already has a role in the matter, it will be # overwritten. class AddMatterPermissionsRequest include Google::Apis::Core::Hashable # Only relevant if send_emails is true. # True to CC requestor in the email message. # False to not CC requestor. # Corresponds to the JSON property `ccMe` # @return [Boolean] attr_accessor :cc_me alias_method :cc_me?, :cc_me # Currently each matter only has one owner, and all others are collaborators. # When an account is purged, its corresponding MatterPermission resources # cease to exist. # Corresponds to the JSON property `matterPermission` # @return [Google::Apis::VaultV1::MatterPermission] attr_accessor :matter_permission # True to send notification email to the added account. # False to not send notification email. # Corresponds to the JSON property `sendEmails` # @return [Boolean] attr_accessor :send_emails alias_method :send_emails?, :send_emails def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @cc_me = args[:cc_me] if args.key?(:cc_me) @matter_permission = args[:matter_permission] if args.key?(:matter_permission) @send_emails = args[:send_emails] if args.key?(:send_emails) end end # Close a matter by ID. class CloseMatterRequest include Google::Apis::Core::Hashable def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) end end # Response to a CloseMatterRequest. class CloseMatterResponse include Google::Apis::Core::Hashable # Represents a matter. # Corresponds to the JSON property `matter` # @return [Google::Apis::VaultV1::Matter] attr_accessor :matter def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @matter = args[:matter] if args.key?(:matter) end end # Corpus specific queries. class CorpusQuery include Google::Apis::Core::Hashable # Query options for drive holds. # Corresponds to the JSON property `driveQuery` # @return [Google::Apis::VaultV1::HeldDriveQuery] attr_accessor :drive_query # Query options for group holds. # Corresponds to the JSON property `groupsQuery` # @return [Google::Apis::VaultV1::HeldGroupsQuery] attr_accessor :groups_query # Query options for mail holds. # Corresponds to the JSON property `mailQuery` # @return [Google::Apis::VaultV1::HeldMailQuery] attr_accessor :mail_query def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @drive_query = args[:drive_query] if args.key?(:drive_query) @groups_query = args[:groups_query] if args.key?(:groups_query) @mail_query = args[:mail_query] if args.key?(:mail_query) end end # A generic empty message that you can re-use to avoid defining duplicated # empty messages in your APIs. A typical example is to use it as the request # or the response type of an API method. For instance: # service Foo ` # rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); # ` # The JSON representation for `Empty` is empty JSON object ````. class Empty include Google::Apis::Core::Hashable def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) end end # An account being held in a particular hold. This structure is immutable. # This can be either a single user or a google group, depending on the corpus. class HeldAccount include Google::Apis::Core::Hashable # The account's ID as provided by the # Admin SDK. # Corresponds to the JSON property `accountId` # @return [String] attr_accessor :account_id # When the account was put on hold. # Corresponds to the JSON property `holdTime` # @return [String] attr_accessor :hold_time def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @account_id = args[:account_id] if args.key?(:account_id) @hold_time = args[:hold_time] if args.key?(:hold_time) end end # Query options for drive holds. class HeldDriveQuery include Google::Apis::Core::Hashable # If true, include files in Team Drives in the hold. # Corresponds to the JSON property `includeTeamDriveFiles` # @return [Boolean] attr_accessor :include_team_drive_files alias_method :include_team_drive_files?, :include_team_drive_files def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @include_team_drive_files = args[:include_team_drive_files] if args.key?(:include_team_drive_files) end end # Query options for group holds. class HeldGroupsQuery include Google::Apis::Core::Hashable # The end date range for the search query. These timestamps are in GMT and # rounded down to the start of the given date. # Corresponds to the JSON property `endTime` # @return [String] attr_accessor :end_time # The start date range for the search query. These timestamps are in GMT and # rounded down to the start of the given date. # Corresponds to the JSON property `startTime` # @return [String] attr_accessor :start_time # The search terms for the hold. # Corresponds to the JSON property `terms` # @return [String] attr_accessor :terms def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @end_time = args[:end_time] if args.key?(:end_time) @start_time = args[:start_time] if args.key?(:start_time) @terms = args[:terms] if args.key?(:terms) end end # Query options for mail holds. class HeldMailQuery include Google::Apis::Core::Hashable # The end date range for the search query. These timestamps are in GMT and # rounded down to the start of the given date. # Corresponds to the JSON property `endTime` # @return [String] attr_accessor :end_time # The start date range for the search query. These timestamps are in GMT and # rounded down to the start of the given date. # Corresponds to the JSON property `startTime` # @return [String] attr_accessor :start_time # The search terms for the hold. # Corresponds to the JSON property `terms` # @return [String] attr_accessor :terms def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @end_time = args[:end_time] if args.key?(:end_time) @start_time = args[:start_time] if args.key?(:start_time) @terms = args[:terms] if args.key?(:terms) end end # A organizational unit being held in a particular hold. # This structure is immutable. class HeldOrgUnit include Google::Apis::Core::Hashable # When the org unit was put on hold. This property is immutable. # Corresponds to the JSON property `holdTime` # @return [String] attr_accessor :hold_time # The org unit's immutable ID as provided by the admin SDK. # Corresponds to the JSON property `orgUnitId` # @return [String] attr_accessor :org_unit_id def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @hold_time = args[:hold_time] if args.key?(:hold_time) @org_unit_id = args[:org_unit_id] if args.key?(:org_unit_id) end end # Represents a hold within Vault. A hold restricts purging of # artifacts based on the combination of the query and accounts restrictions. # A hold can be configured to either apply to an explicitly configured set # of accounts, or can be applied to all members of an organizational unit. class Hold include Google::Apis::Core::Hashable # If set, the hold applies to the enumerated accounts and org_unit must be # empty. # Corresponds to the JSON property `accounts` # @return [Array] attr_accessor :accounts # The corpus to be searched. # Corresponds to the JSON property `corpus` # @return [String] attr_accessor :corpus # The unique immutable ID of the hold. Assigned during creation. # Corresponds to the JSON property `holdId` # @return [String] attr_accessor :hold_id # The name of the hold. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # A organizational unit being held in a particular hold. # This structure is immutable. # Corresponds to the JSON property `orgUnit` # @return [Google::Apis::VaultV1::HeldOrgUnit] attr_accessor :org_unit # Corpus specific queries. # Corresponds to the JSON property `query` # @return [Google::Apis::VaultV1::CorpusQuery] attr_accessor :query # The last time this hold was modified. # Corresponds to the JSON property `updateTime` # @return [String] attr_accessor :update_time def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @accounts = args[:accounts] if args.key?(:accounts) @corpus = args[:corpus] if args.key?(:corpus) @hold_id = args[:hold_id] if args.key?(:hold_id) @name = args[:name] if args.key?(:name) @org_unit = args[:org_unit] if args.key?(:org_unit) @query = args[:query] if args.key?(:query) @update_time = args[:update_time] if args.key?(:update_time) end end # Returns a list of held accounts for a hold. class ListHeldAccountsResponse include Google::Apis::Core::Hashable # The held accounts on a hold. # Corresponds to the JSON property `accounts` # @return [Array] attr_accessor :accounts def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @accounts = args[:accounts] if args.key?(:accounts) end end # The holds for a matter. class ListHoldsResponse include Google::Apis::Core::Hashable # The list of holds. # Corresponds to the JSON property `holds` # @return [Array] attr_accessor :holds # Page token to retrieve the next page of results in the list. # If this is empty, then there are no more holds to list. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @holds = args[:holds] if args.key?(:holds) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) end end # Provides the list of matters. class ListMattersResponse include Google::Apis::Core::Hashable # List of matters. # Corresponds to the JSON property `matters` # @return [Array] attr_accessor :matters # Page token to retrieve the next page of results in the list. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @matters = args[:matters] if args.key?(:matters) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) end end # Represents a matter. class Matter include Google::Apis::Core::Hashable # The description of the matter. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description # The matter ID which is generated by the server. # Should be blank when creating a new matter. # Corresponds to the JSON property `matterId` # @return [String] attr_accessor :matter_id # List of users and access to the matter. Currently there is no programmer # defined limit on the number of permissions a matter can have. # Corresponds to the JSON property `matterPermissions` # @return [Array] attr_accessor :matter_permissions # The name of the matter. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # The state of the matter. # Corresponds to the JSON property `state` # @return [String] attr_accessor :state def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @description = args[:description] if args.key?(:description) @matter_id = args[:matter_id] if args.key?(:matter_id) @matter_permissions = args[:matter_permissions] if args.key?(:matter_permissions) @name = args[:name] if args.key?(:name) @state = args[:state] if args.key?(:state) end end # Currently each matter only has one owner, and all others are collaborators. # When an account is purged, its corresponding MatterPermission resources # cease to exist. class MatterPermission include Google::Apis::Core::Hashable # The account id, as provided by Admin SDK. # Corresponds to the JSON property `accountId` # @return [String] attr_accessor :account_id # The user's role in this matter. # Corresponds to the JSON property `role` # @return [String] attr_accessor :role def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @account_id = args[:account_id] if args.key?(:account_id) @role = args[:role] if args.key?(:role) end end # Remove an account as a matter collaborator. class RemoveMatterPermissionsRequest include Google::Apis::Core::Hashable # The account ID. # Corresponds to the JSON property `accountId` # @return [String] attr_accessor :account_id def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @account_id = args[:account_id] if args.key?(:account_id) end end # Reopen a matter by ID. class ReopenMatterRequest include Google::Apis::Core::Hashable def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) end end # Response to a ReopenMatterRequest. class ReopenMatterResponse include Google::Apis::Core::Hashable # Represents a matter. # Corresponds to the JSON property `matter` # @return [Google::Apis::VaultV1::Matter] attr_accessor :matter def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @matter = args[:matter] if args.key?(:matter) end end # Undelete a matter by ID. class UndeleteMatterRequest include Google::Apis::Core::Hashable def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) end end end end end