google-apis-calendar_v3 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 2fc9b18ed7ccea1e1343d82b01253a11dc6e2ad52e271c4394b968c851584528
4
+ data.tar.gz: 6fe28685b49f32b5004d1bb420acdd877b6e341503e92a1a9cd2624855f15115
5
+ SHA512:
6
+ metadata.gz: c395138c6056d691c59ad188d80e0432f5db635df9e13e2cd8cc15e7d715e45fdfee3a2a633328ef98af5a44ac6dd6b83e8bf3cbb54614914f32742af00599e5
7
+ data.tar.gz: 6aee944a2aaab3b42e3252c74eb51e11b1ccb4e1e3822387c95595fe3eb53440cfc590044188bf751cd1d98faf870970687419151b17131983309bb2b1953822
@@ -0,0 +1,13 @@
1
+ --hide-void-return
2
+ --no-private
3
+ --verbose
4
+ --title=google-apis-calendar_v3
5
+ --markup-provider=redcarpet
6
+ --markup=markdown
7
+ --main OVERVIEW.md
8
+ lib/google/apis/calendar_v3/*.rb
9
+ lib/google/apis/calendar_v3.rb
10
+ -
11
+ OVERVIEW.md
12
+ CHANGELOG.md
13
+ LICENSE.md
@@ -0,0 +1,7 @@
1
+ # Release history for google-apis-calendar_v3
2
+
3
+ ### v0.1.0 (2021-01-07)
4
+
5
+ * Regenerated using generator version 0.1.1
6
+ * Regenerated from discovery document revision 20201028
7
+
@@ -0,0 +1,202 @@
1
+
2
+ Apache License
3
+ Version 2.0, January 2004
4
+ http://www.apache.org/licenses/
5
+
6
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
7
+
8
+ 1. Definitions.
9
+
10
+ "License" shall mean the terms and conditions for use, reproduction,
11
+ and distribution as defined by Sections 1 through 9 of this document.
12
+
13
+ "Licensor" shall mean the copyright owner or entity authorized by
14
+ the copyright owner that is granting the License.
15
+
16
+ "Legal Entity" shall mean the union of the acting entity and all
17
+ other entities that control, are controlled by, or are under common
18
+ control with that entity. For the purposes of this definition,
19
+ "control" means (i) the power, direct or indirect, to cause the
20
+ direction or management of such entity, whether by contract or
21
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
22
+ outstanding shares, or (iii) beneficial ownership of such entity.
23
+
24
+ "You" (or "Your") shall mean an individual or Legal Entity
25
+ exercising permissions granted by this License.
26
+
27
+ "Source" form shall mean the preferred form for making modifications,
28
+ including but not limited to software source code, documentation
29
+ source, and configuration files.
30
+
31
+ "Object" form shall mean any form resulting from mechanical
32
+ transformation or translation of a Source form, including but
33
+ not limited to compiled object code, generated documentation,
34
+ and conversions to other media types.
35
+
36
+ "Work" shall mean the work of authorship, whether in Source or
37
+ Object form, made available under the License, as indicated by a
38
+ copyright notice that is included in or attached to the work
39
+ (an example is provided in the Appendix below).
40
+
41
+ "Derivative Works" shall mean any work, whether in Source or Object
42
+ form, that is based on (or derived from) the Work and for which the
43
+ editorial revisions, annotations, elaborations, or other modifications
44
+ represent, as a whole, an original work of authorship. For the purposes
45
+ of this License, Derivative Works shall not include works that remain
46
+ separable from, or merely link (or bind by name) to the interfaces of,
47
+ the Work and Derivative Works thereof.
48
+
49
+ "Contribution" shall mean any work of authorship, including
50
+ the original version of the Work and any modifications or additions
51
+ to that Work or Derivative Works thereof, that is intentionally
52
+ submitted to Licensor for inclusion in the Work by the copyright owner
53
+ or by an individual or Legal Entity authorized to submit on behalf of
54
+ the copyright owner. For the purposes of this definition, "submitted"
55
+ means any form of electronic, verbal, or written communication sent
56
+ to the Licensor or its representatives, including but not limited to
57
+ communication on electronic mailing lists, source code control systems,
58
+ and issue tracking systems that are managed by, or on behalf of, the
59
+ Licensor for the purpose of discussing and improving the Work, but
60
+ excluding communication that is conspicuously marked or otherwise
61
+ designated in writing by the copyright owner as "Not a Contribution."
62
+
63
+ "Contributor" shall mean Licensor and any individual or Legal Entity
64
+ on behalf of whom a Contribution has been received by Licensor and
65
+ subsequently incorporated within the Work.
66
+
67
+ 2. Grant of Copyright License. Subject to the terms and conditions of
68
+ this License, each Contributor hereby grants to You a perpetual,
69
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
70
+ copyright license to reproduce, prepare Derivative Works of,
71
+ publicly display, publicly perform, sublicense, and distribute the
72
+ Work and such Derivative Works in Source or Object form.
73
+
74
+ 3. Grant of Patent License. Subject to the terms and conditions of
75
+ this License, each Contributor hereby grants to You a perpetual,
76
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
77
+ (except as stated in this section) patent license to make, have made,
78
+ use, offer to sell, sell, import, and otherwise transfer the Work,
79
+ where such license applies only to those patent claims licensable
80
+ by such Contributor that are necessarily infringed by their
81
+ Contribution(s) alone or by combination of their Contribution(s)
82
+ with the Work to which such Contribution(s) was submitted. If You
83
+ institute patent litigation against any entity (including a
84
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
85
+ or a Contribution incorporated within the Work constitutes direct
86
+ or contributory patent infringement, then any patent licenses
87
+ granted to You under this License for that Work shall terminate
88
+ as of the date such litigation is filed.
89
+
90
+ 4. Redistribution. You may reproduce and distribute copies of the
91
+ Work or Derivative Works thereof in any medium, with or without
92
+ modifications, and in Source or Object form, provided that You
93
+ meet the following conditions:
94
+
95
+ (a) You must give any other recipients of the Work or
96
+ Derivative Works a copy of this License; and
97
+
98
+ (b) You must cause any modified files to carry prominent notices
99
+ stating that You changed the files; and
100
+
101
+ (c) You must retain, in the Source form of any Derivative Works
102
+ that You distribute, all copyright, patent, trademark, and
103
+ attribution notices from the Source form of the Work,
104
+ excluding those notices that do not pertain to any part of
105
+ the Derivative Works; and
106
+
107
+ (d) If the Work includes a "NOTICE" text file as part of its
108
+ distribution, then any Derivative Works that You distribute must
109
+ include a readable copy of the attribution notices contained
110
+ within such NOTICE file, excluding those notices that do not
111
+ pertain to any part of the Derivative Works, in at least one
112
+ of the following places: within a NOTICE text file distributed
113
+ as part of the Derivative Works; within the Source form or
114
+ documentation, if provided along with the Derivative Works; or,
115
+ within a display generated by the Derivative Works, if and
116
+ wherever such third-party notices normally appear. The contents
117
+ of the NOTICE file are for informational purposes only and
118
+ do not modify the License. You may add Your own attribution
119
+ notices within Derivative Works that You distribute, alongside
120
+ or as an addendum to the NOTICE text from the Work, provided
121
+ that such additional attribution notices cannot be construed
122
+ as modifying the License.
123
+
124
+ You may add Your own copyright statement to Your modifications and
125
+ may provide additional or different license terms and conditions
126
+ for use, reproduction, or distribution of Your modifications, or
127
+ for any such Derivative Works as a whole, provided Your use,
128
+ reproduction, and distribution of the Work otherwise complies with
129
+ the conditions stated in this License.
130
+
131
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
132
+ any Contribution intentionally submitted for inclusion in the Work
133
+ by You to the Licensor shall be under the terms and conditions of
134
+ this License, without any additional terms or conditions.
135
+ Notwithstanding the above, nothing herein shall supersede or modify
136
+ the terms of any separate license agreement you may have executed
137
+ with Licensor regarding such Contributions.
138
+
139
+ 6. Trademarks. This License does not grant permission to use the trade
140
+ names, trademarks, service marks, or product names of the Licensor,
141
+ except as required for reasonable and customary use in describing the
142
+ origin of the Work and reproducing the content of the NOTICE file.
143
+
144
+ 7. Disclaimer of Warranty. Unless required by applicable law or
145
+ agreed to in writing, Licensor provides the Work (and each
146
+ Contributor provides its Contributions) on an "AS IS" BASIS,
147
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
148
+ implied, including, without limitation, any warranties or conditions
149
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
150
+ PARTICULAR PURPOSE. You are solely responsible for determining the
151
+ appropriateness of using or redistributing the Work and assume any
152
+ risks associated with Your exercise of permissions under this License.
153
+
154
+ 8. Limitation of Liability. In no event and under no legal theory,
155
+ whether in tort (including negligence), contract, or otherwise,
156
+ unless required by applicable law (such as deliberate and grossly
157
+ negligent acts) or agreed to in writing, shall any Contributor be
158
+ liable to You for damages, including any direct, indirect, special,
159
+ incidental, or consequential damages of any character arising as a
160
+ result of this License or out of the use or inability to use the
161
+ Work (including but not limited to damages for loss of goodwill,
162
+ work stoppage, computer failure or malfunction, or any and all
163
+ other commercial damages or losses), even if such Contributor
164
+ has been advised of the possibility of such damages.
165
+
166
+ 9. Accepting Warranty or Additional Liability. While redistributing
167
+ the Work or Derivative Works thereof, You may choose to offer,
168
+ and charge a fee for, acceptance of support, warranty, indemnity,
169
+ or other liability obligations and/or rights consistent with this
170
+ License. However, in accepting such obligations, You may act only
171
+ on Your own behalf and on Your sole responsibility, not on behalf
172
+ of any other Contributor, and only if You agree to indemnify,
173
+ defend, and hold each Contributor harmless for any liability
174
+ incurred by, or claims asserted against, such Contributor by reason
175
+ of your accepting any such warranty or additional liability.
176
+
177
+ END OF TERMS AND CONDITIONS
178
+
179
+ APPENDIX: How to apply the Apache License to your work.
180
+
181
+ To apply the Apache License to your work, attach the following
182
+ boilerplate notice, with the fields enclosed by brackets "[]"
183
+ replaced with your own identifying information. (Don't include
184
+ the brackets!) The text should be enclosed in the appropriate
185
+ comment syntax for the file format. We also recommend that a
186
+ file or class name and description of purpose be included on the
187
+ same "printed page" as the copyright notice for easier
188
+ identification within third-party archives.
189
+
190
+ Copyright [yyyy] [name of copyright owner]
191
+
192
+ Licensed under the Apache License, Version 2.0 (the "License");
193
+ you may not use this file except in compliance with the License.
194
+ You may obtain a copy of the License at
195
+
196
+ http://www.apache.org/licenses/LICENSE-2.0
197
+
198
+ Unless required by applicable law or agreed to in writing, software
199
+ distributed under the License is distributed on an "AS IS" BASIS,
200
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
201
+ See the License for the specific language governing permissions and
202
+ limitations under the License.
@@ -0,0 +1,96 @@
1
+ # Simple REST client for version V3 of the Calendar API
2
+
3
+ This is a simple client library for version V3 of the Calendar API. It provides:
4
+
5
+ * A client object that connects to the HTTP/JSON REST endpoint for the service.
6
+ * Ruby objects for data structures related to the service.
7
+ * Integration with the googleauth gem for authentication using OAuth, API keys, and service accounts.
8
+ * Control of retry, pagination, and timeouts.
9
+
10
+ Note that although this client library is supported and will continue to be updated to track changes to the service, it is otherwise considered complete and not under active development. Many Google services, especially Google Cloud Platform services, may provide a more modern client that is under more active development and improvement. See the section below titled *Which client should I use?* for more information.
11
+
12
+ ## Getting started
13
+
14
+ ### Before you begin
15
+
16
+ There are a few setup steps you need to complete before you can use this library:
17
+
18
+ 1. If you don't already have a Google account, [sign up](https://www.google.com/accounts).
19
+ 2. If you have never created a Google APIs Console project, read about [Managing Projects](https://cloud.google.com/resource-manager/docs/creating-managing-projects) and create a project in the [Google API Console](https://console.cloud.google.com/).
20
+ 3. Most APIs need to be enabled for your project. [Enable it](https://console.cloud.google.com/apis/library/calendar.googleapis.com) in the console.
21
+
22
+ ### Installation
23
+
24
+ Add this line to your application's Gemfile:
25
+
26
+ ```ruby
27
+ gem 'google-apis-calendar_v3', '~> 0.1'
28
+ ```
29
+
30
+ And then execute:
31
+
32
+ ```
33
+ $ bundle
34
+ ```
35
+
36
+ Or install it yourself as:
37
+
38
+ ```
39
+ $ gem install google-apis-calendar_v3
40
+ ```
41
+
42
+ ### Creating a client object
43
+
44
+ Once the gem is installed, you can load the client code and instantiate a client.
45
+
46
+ ```ruby
47
+ # Load the client
48
+ require "google/apis/calendar_v3"
49
+
50
+ # Create a client object
51
+ client = Google::Apis::CalendarV3::CalendarService.new
52
+
53
+ # Authenticate calls
54
+ client.authentication = # ... use the googleauth gem to create credentials
55
+ ```
56
+
57
+ See the class reference docs for information on the methods you can call from a client.
58
+
59
+ ## Documentation
60
+
61
+ More detailed descriptions of the Google simple REST clients are available in two documents.
62
+
63
+ * The [Usage Guide](https://github.com/googleapis/google-api-ruby-client/blob/master/docs/usage-guide.md) discusses how to make API calls, how to use the provided data structures, and how to work the various features of the client library, including media upload and download, error handling, retries, pagination, and logging.
64
+ * The [Auth Guide](https://github.com/googleapis/google-api-ruby-client/blob/master/docs/auth-guide.md) discusses authentication in the client libraries, including API keys, OAuth 2.0, service accounts, and environment variables.
65
+
66
+ (Note: the above documents are written for the simple REST clients in general, and their examples may not reflect the Calendar service in particular.)
67
+
68
+ For reference information on specific calls in the Calendar API, see the {Google::Apis::CalendarV3::CalendarService class reference docs}.
69
+
70
+ ## Which client should I use?
71
+
72
+ Google provides two types of Ruby API client libraries: **simple REST clients** and **modern clients**.
73
+
74
+ This library, `google-apis-calendar_v3`, is a simple REST client. You can identify these clients by their gem names, which are always in the form `google-apis-<servicename>_<serviceversion>`. The simple REST clients connect to HTTP/JSON REST endpoints and are automatically generated from service discovery documents. They support most API functionality, but their class interfaces are sometimes awkward.
75
+
76
+ Modern clients are produced by a modern code generator, sometimes combined with hand-crafted functionality. Most modern clients connect to high-performance gRPC endpoints, although a few are backed by REST services. Modern clients are available for many Google services, especially Google Cloud Platform services, but do not yet support all the services covered by the simple clients.
77
+
78
+ Gem names for modern clients are often of the form `google-cloud-<service_name>`. (For example, [google-cloud-pubsub](https://rubygems.org/gems/google-cloud-pubsub).) Note that most modern clients also have corresponding "versioned" gems with names like `google-cloud-<service_name>-<version>`. (For example, [google-cloud-pubsub-v1](https://rubygems.org/gems/google-cloud-pubsub-v1).) The "versioned" gems can be used directly, but often provide lower-level interfaces. In most cases, the main gem is recommended.
79
+
80
+ **For most users, we recommend the modern client, if one is available.** Compared with simple clients, modern clients are generally much easier to use and more Ruby-like, support more advanced features such as streaming and long-running operations, and often provide much better performance. You may consider using a simple client instead, if a modern client is not yet available for the service you want to use, or if you are not able to use gRPC on your infrastructure.
81
+
82
+ The [product documentation](https://developers.google.com/google-apps/calendar/firstapp) may provide guidance regarding the preferred client library to use.
83
+
84
+ ## Supported Ruby versions
85
+
86
+ This library is supported on Ruby 2.5+.
87
+
88
+ Google provides official support for Ruby versions that are actively supported by Ruby Core -- that is, Ruby versions that are either in normal maintenance or in security maintenance, and not end of life. Currently, this means Ruby 2.5 and later. Older versions of Ruby _may_ still work, but are unsupported and not recommended. See https://www.ruby-lang.org/en/downloads/branches/ for details about the Ruby support schedule.
89
+
90
+ ## License
91
+
92
+ This library is licensed under Apache 2.0. Full license text is available in the {file:LICENSE.md LICENSE}.
93
+
94
+ ## Support
95
+
96
+ Please [report bugs at the project on Github](https://github.com/google/google-api-ruby-client/issues). Don't hesitate to [ask questions](http://stackoverflow.com/questions/tagged/google-api-ruby-client) about the client or APIs on [StackOverflow](http://stackoverflow.com).
@@ -0,0 +1,15 @@
1
+ # Copyright 2020 Google LLC
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ require "google/apis/calendar_v3"
@@ -0,0 +1,48 @@
1
+ # Copyright 2020 Google LLC
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ require 'google/apis/calendar_v3/service.rb'
16
+ require 'google/apis/calendar_v3/classes.rb'
17
+ require 'google/apis/calendar_v3/representations.rb'
18
+ require 'google/apis/calendar_v3/gem_version.rb'
19
+
20
+ module Google
21
+ module Apis
22
+ # Calendar API
23
+ #
24
+ # Manipulates events and other calendar data.
25
+ #
26
+ # @see https://developers.google.com/google-apps/calendar/firstapp
27
+ module CalendarV3
28
+ # Version of the Calendar API this client connects to.
29
+ # This is NOT the gem version.
30
+ VERSION = 'V3'
31
+
32
+ # See, edit, share, and permanently delete all the calendars you can access using Google Calendar
33
+ AUTH_CALENDAR = 'https://www.googleapis.com/auth/calendar'
34
+
35
+ # View and edit events on all your calendars
36
+ AUTH_CALENDAR_EVENTS = 'https://www.googleapis.com/auth/calendar.events'
37
+
38
+ # View events on all your calendars
39
+ AUTH_CALENDAR_EVENTS_READONLY = 'https://www.googleapis.com/auth/calendar.events.readonly'
40
+
41
+ # View your calendars
42
+ AUTH_CALENDAR_READONLY = 'https://www.googleapis.com/auth/calendar.readonly'
43
+
44
+ # View your Calendar settings
45
+ AUTH_CALENDAR_SETTINGS_READONLY = 'https://www.googleapis.com/auth/calendar.settings.readonly'
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,2173 @@
1
+ # Copyright 2020 Google LLC
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ require 'date'
16
+ require 'google/apis/core/base_service'
17
+ require 'google/apis/core/json_representation'
18
+ require 'google/apis/core/hashable'
19
+ require 'google/apis/errors'
20
+
21
+ module Google
22
+ module Apis
23
+ module CalendarV3
24
+
25
+ #
26
+ class Acl
27
+ include Google::Apis::Core::Hashable
28
+
29
+ # ETag of the collection.
30
+ # Corresponds to the JSON property `etag`
31
+ # @return [String]
32
+ attr_accessor :etag
33
+
34
+ # List of rules on the access control list.
35
+ # Corresponds to the JSON property `items`
36
+ # @return [Array<Google::Apis::CalendarV3::AclRule>]
37
+ attr_accessor :items
38
+
39
+ # Type of the collection ("calendar#acl").
40
+ # Corresponds to the JSON property `kind`
41
+ # @return [String]
42
+ attr_accessor :kind
43
+
44
+ # Token used to access the next page of this result. Omitted if no further
45
+ # results are available, in which case nextSyncToken is provided.
46
+ # Corresponds to the JSON property `nextPageToken`
47
+ # @return [String]
48
+ attr_accessor :next_page_token
49
+
50
+ # Token used at a later point in time to retrieve only the entries that have
51
+ # changed since this result was returned. Omitted if further results are
52
+ # available, in which case nextPageToken is provided.
53
+ # Corresponds to the JSON property `nextSyncToken`
54
+ # @return [String]
55
+ attr_accessor :next_sync_token
56
+
57
+ def initialize(**args)
58
+ update!(**args)
59
+ end
60
+
61
+ # Update properties of this object
62
+ def update!(**args)
63
+ @etag = args[:etag] if args.key?(:etag)
64
+ @items = args[:items] if args.key?(:items)
65
+ @kind = args[:kind] if args.key?(:kind)
66
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
67
+ @next_sync_token = args[:next_sync_token] if args.key?(:next_sync_token)
68
+ end
69
+ end
70
+
71
+ #
72
+ class AclRule
73
+ include Google::Apis::Core::Hashable
74
+
75
+ # ETag of the resource.
76
+ # Corresponds to the JSON property `etag`
77
+ # @return [String]
78
+ attr_accessor :etag
79
+
80
+ # Identifier of the ACL rule.
81
+ # Corresponds to the JSON property `id`
82
+ # @return [String]
83
+ attr_accessor :id
84
+
85
+ # Type of the resource ("calendar#aclRule").
86
+ # Corresponds to the JSON property `kind`
87
+ # @return [String]
88
+ attr_accessor :kind
89
+
90
+ # The role assigned to the scope. Possible values are:
91
+ # - "none" - Provides no access.
92
+ # - "freeBusyReader" - Provides read access to free/busy information.
93
+ # - "reader" - Provides read access to the calendar. Private events will appear
94
+ # to users with reader access, but event details will be hidden.
95
+ # - "writer" - Provides read and write access to the calendar. Private events
96
+ # will appear to users with writer access, and event details will be visible.
97
+ # - "owner" - Provides ownership of the calendar. This role has all of the
98
+ # permissions of the writer role with the additional ability to see and
99
+ # manipulate ACLs.
100
+ # Corresponds to the JSON property `role`
101
+ # @return [String]
102
+ attr_accessor :role
103
+
104
+ # The scope of the rule.
105
+ # Corresponds to the JSON property `scope`
106
+ # @return [Google::Apis::CalendarV3::AclRule::Scope]
107
+ attr_accessor :scope
108
+
109
+ def initialize(**args)
110
+ update!(**args)
111
+ end
112
+
113
+ # Update properties of this object
114
+ def update!(**args)
115
+ @etag = args[:etag] if args.key?(:etag)
116
+ @id = args[:id] if args.key?(:id)
117
+ @kind = args[:kind] if args.key?(:kind)
118
+ @role = args[:role] if args.key?(:role)
119
+ @scope = args[:scope] if args.key?(:scope)
120
+ end
121
+
122
+ # The scope of the rule.
123
+ class Scope
124
+ include Google::Apis::Core::Hashable
125
+
126
+ # The type of the scope. Possible values are:
127
+ # - "default" - The public scope. This is the default value.
128
+ # - "user" - Limits the scope to a single user.
129
+ # - "group" - Limits the scope to a group.
130
+ # - "domain" - Limits the scope to a domain. Note: The permissions granted to
131
+ # the "default", or public, scope apply to any user, authenticated or not.
132
+ # Corresponds to the JSON property `type`
133
+ # @return [String]
134
+ attr_accessor :type
135
+
136
+ # The email address of a user or group, or the name of a domain, depending on
137
+ # the scope type. Omitted for type "default".
138
+ # Corresponds to the JSON property `value`
139
+ # @return [String]
140
+ attr_accessor :value
141
+
142
+ def initialize(**args)
143
+ update!(**args)
144
+ end
145
+
146
+ # Update properties of this object
147
+ def update!(**args)
148
+ @type = args[:type] if args.key?(:type)
149
+ @value = args[:value] if args.key?(:value)
150
+ end
151
+ end
152
+ end
153
+
154
+ #
155
+ class Calendar
156
+ include Google::Apis::Core::Hashable
157
+
158
+ # Conferencing properties for this calendar, for example what types of
159
+ # conferences are allowed.
160
+ # Corresponds to the JSON property `conferenceProperties`
161
+ # @return [Google::Apis::CalendarV3::ConferenceProperties]
162
+ attr_accessor :conference_properties
163
+
164
+ # Description of the calendar. Optional.
165
+ # Corresponds to the JSON property `description`
166
+ # @return [String]
167
+ attr_accessor :description
168
+
169
+ # ETag of the resource.
170
+ # Corresponds to the JSON property `etag`
171
+ # @return [String]
172
+ attr_accessor :etag
173
+
174
+ # Identifier of the calendar. To retrieve IDs call the calendarList.list()
175
+ # method.
176
+ # Corresponds to the JSON property `id`
177
+ # @return [String]
178
+ attr_accessor :id
179
+
180
+ # Type of the resource ("calendar#calendar").
181
+ # Corresponds to the JSON property `kind`
182
+ # @return [String]
183
+ attr_accessor :kind
184
+
185
+ # Geographic location of the calendar as free-form text. Optional.
186
+ # Corresponds to the JSON property `location`
187
+ # @return [String]
188
+ attr_accessor :location
189
+
190
+ # Title of the calendar.
191
+ # Corresponds to the JSON property `summary`
192
+ # @return [String]
193
+ attr_accessor :summary
194
+
195
+ # The time zone of the calendar. (Formatted as an IANA Time Zone Database name,
196
+ # e.g. "Europe/Zurich".) Optional.
197
+ # Corresponds to the JSON property `timeZone`
198
+ # @return [String]
199
+ attr_accessor :time_zone
200
+
201
+ def initialize(**args)
202
+ update!(**args)
203
+ end
204
+
205
+ # Update properties of this object
206
+ def update!(**args)
207
+ @conference_properties = args[:conference_properties] if args.key?(:conference_properties)
208
+ @description = args[:description] if args.key?(:description)
209
+ @etag = args[:etag] if args.key?(:etag)
210
+ @id = args[:id] if args.key?(:id)
211
+ @kind = args[:kind] if args.key?(:kind)
212
+ @location = args[:location] if args.key?(:location)
213
+ @summary = args[:summary] if args.key?(:summary)
214
+ @time_zone = args[:time_zone] if args.key?(:time_zone)
215
+ end
216
+ end
217
+
218
+ #
219
+ class CalendarList
220
+ include Google::Apis::Core::Hashable
221
+
222
+ # ETag of the collection.
223
+ # Corresponds to the JSON property `etag`
224
+ # @return [String]
225
+ attr_accessor :etag
226
+
227
+ # Calendars that are present on the user's calendar list.
228
+ # Corresponds to the JSON property `items`
229
+ # @return [Array<Google::Apis::CalendarV3::CalendarListEntry>]
230
+ attr_accessor :items
231
+
232
+ # Type of the collection ("calendar#calendarList").
233
+ # Corresponds to the JSON property `kind`
234
+ # @return [String]
235
+ attr_accessor :kind
236
+
237
+ # Token used to access the next page of this result. Omitted if no further
238
+ # results are available, in which case nextSyncToken is provided.
239
+ # Corresponds to the JSON property `nextPageToken`
240
+ # @return [String]
241
+ attr_accessor :next_page_token
242
+
243
+ # Token used at a later point in time to retrieve only the entries that have
244
+ # changed since this result was returned. Omitted if further results are
245
+ # available, in which case nextPageToken is provided.
246
+ # Corresponds to the JSON property `nextSyncToken`
247
+ # @return [String]
248
+ attr_accessor :next_sync_token
249
+
250
+ def initialize(**args)
251
+ update!(**args)
252
+ end
253
+
254
+ # Update properties of this object
255
+ def update!(**args)
256
+ @etag = args[:etag] if args.key?(:etag)
257
+ @items = args[:items] if args.key?(:items)
258
+ @kind = args[:kind] if args.key?(:kind)
259
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
260
+ @next_sync_token = args[:next_sync_token] if args.key?(:next_sync_token)
261
+ end
262
+ end
263
+
264
+ #
265
+ class CalendarListEntry
266
+ include Google::Apis::Core::Hashable
267
+
268
+ # The effective access role that the authenticated user has on the calendar.
269
+ # Read-only. Possible values are:
270
+ # - "freeBusyReader" - Provides read access to free/busy information.
271
+ # - "reader" - Provides read access to the calendar. Private events will appear
272
+ # to users with reader access, but event details will be hidden.
273
+ # - "writer" - Provides read and write access to the calendar. Private events
274
+ # will appear to users with writer access, and event details will be visible.
275
+ # - "owner" - Provides ownership of the calendar. This role has all of the
276
+ # permissions of the writer role with the additional ability to see and
277
+ # manipulate ACLs.
278
+ # Corresponds to the JSON property `accessRole`
279
+ # @return [String]
280
+ attr_accessor :access_role
281
+
282
+ # The main color of the calendar in the hexadecimal format "#0088aa". This
283
+ # property supersedes the index-based colorId property. To set or change this
284
+ # property, you need to specify colorRgbFormat=true in the parameters of the
285
+ # insert, update and patch methods. Optional.
286
+ # Corresponds to the JSON property `backgroundColor`
287
+ # @return [String]
288
+ attr_accessor :background_color
289
+
290
+ # The color of the calendar. This is an ID referring to an entry in the calendar
291
+ # section of the colors definition (see the colors endpoint). This property is
292
+ # superseded by the backgroundColor and foregroundColor properties and can be
293
+ # ignored when using these properties. Optional.
294
+ # Corresponds to the JSON property `colorId`
295
+ # @return [String]
296
+ attr_accessor :color_id
297
+
298
+ # Conferencing properties for this calendar, for example what types of
299
+ # conferences are allowed.
300
+ # Corresponds to the JSON property `conferenceProperties`
301
+ # @return [Google::Apis::CalendarV3::ConferenceProperties]
302
+ attr_accessor :conference_properties
303
+
304
+ # The default reminders that the authenticated user has for this calendar.
305
+ # Corresponds to the JSON property `defaultReminders`
306
+ # @return [Array<Google::Apis::CalendarV3::EventReminder>]
307
+ attr_accessor :default_reminders
308
+
309
+ # Whether this calendar list entry has been deleted from the calendar list. Read-
310
+ # only. Optional. The default is False.
311
+ # Corresponds to the JSON property `deleted`
312
+ # @return [Boolean]
313
+ attr_accessor :deleted
314
+ alias_method :deleted?, :deleted
315
+
316
+ # Description of the calendar. Optional. Read-only.
317
+ # Corresponds to the JSON property `description`
318
+ # @return [String]
319
+ attr_accessor :description
320
+
321
+ # ETag of the resource.
322
+ # Corresponds to the JSON property `etag`
323
+ # @return [String]
324
+ attr_accessor :etag
325
+
326
+ # The foreground color of the calendar in the hexadecimal format "#ffffff". This
327
+ # property supersedes the index-based colorId property. To set or change this
328
+ # property, you need to specify colorRgbFormat=true in the parameters of the
329
+ # insert, update and patch methods. Optional.
330
+ # Corresponds to the JSON property `foregroundColor`
331
+ # @return [String]
332
+ attr_accessor :foreground_color
333
+
334
+ # Whether the calendar has been hidden from the list. Optional. The attribute is
335
+ # only returned when the calendar is hidden, in which case the value is true.
336
+ # Corresponds to the JSON property `hidden`
337
+ # @return [Boolean]
338
+ attr_accessor :hidden
339
+ alias_method :hidden?, :hidden
340
+
341
+ # Identifier of the calendar.
342
+ # Corresponds to the JSON property `id`
343
+ # @return [String]
344
+ attr_accessor :id
345
+
346
+ # Type of the resource ("calendar#calendarListEntry").
347
+ # Corresponds to the JSON property `kind`
348
+ # @return [String]
349
+ attr_accessor :kind
350
+
351
+ # Geographic location of the calendar as free-form text. Optional. Read-only.
352
+ # Corresponds to the JSON property `location`
353
+ # @return [String]
354
+ attr_accessor :location
355
+
356
+ # The notifications that the authenticated user is receiving for this calendar.
357
+ # Corresponds to the JSON property `notificationSettings`
358
+ # @return [Google::Apis::CalendarV3::CalendarListEntry::NotificationSettings]
359
+ attr_accessor :notification_settings
360
+
361
+ # Whether the calendar is the primary calendar of the authenticated user. Read-
362
+ # only. Optional. The default is False.
363
+ # Corresponds to the JSON property `primary`
364
+ # @return [Boolean]
365
+ attr_accessor :primary
366
+ alias_method :primary?, :primary
367
+
368
+ # Whether the calendar content shows up in the calendar UI. Optional. The
369
+ # default is False.
370
+ # Corresponds to the JSON property `selected`
371
+ # @return [Boolean]
372
+ attr_accessor :selected
373
+ alias_method :selected?, :selected
374
+
375
+ # Title of the calendar. Read-only.
376
+ # Corresponds to the JSON property `summary`
377
+ # @return [String]
378
+ attr_accessor :summary
379
+
380
+ # The summary that the authenticated user has set for this calendar. Optional.
381
+ # Corresponds to the JSON property `summaryOverride`
382
+ # @return [String]
383
+ attr_accessor :summary_override
384
+
385
+ # The time zone of the calendar. Optional. Read-only.
386
+ # Corresponds to the JSON property `timeZone`
387
+ # @return [String]
388
+ attr_accessor :time_zone
389
+
390
+ def initialize(**args)
391
+ update!(**args)
392
+ end
393
+
394
+ # Update properties of this object
395
+ def update!(**args)
396
+ @access_role = args[:access_role] if args.key?(:access_role)
397
+ @background_color = args[:background_color] if args.key?(:background_color)
398
+ @color_id = args[:color_id] if args.key?(:color_id)
399
+ @conference_properties = args[:conference_properties] if args.key?(:conference_properties)
400
+ @default_reminders = args[:default_reminders] if args.key?(:default_reminders)
401
+ @deleted = args[:deleted] if args.key?(:deleted)
402
+ @description = args[:description] if args.key?(:description)
403
+ @etag = args[:etag] if args.key?(:etag)
404
+ @foreground_color = args[:foreground_color] if args.key?(:foreground_color)
405
+ @hidden = args[:hidden] if args.key?(:hidden)
406
+ @id = args[:id] if args.key?(:id)
407
+ @kind = args[:kind] if args.key?(:kind)
408
+ @location = args[:location] if args.key?(:location)
409
+ @notification_settings = args[:notification_settings] if args.key?(:notification_settings)
410
+ @primary = args[:primary] if args.key?(:primary)
411
+ @selected = args[:selected] if args.key?(:selected)
412
+ @summary = args[:summary] if args.key?(:summary)
413
+ @summary_override = args[:summary_override] if args.key?(:summary_override)
414
+ @time_zone = args[:time_zone] if args.key?(:time_zone)
415
+ end
416
+
417
+ # The notifications that the authenticated user is receiving for this calendar.
418
+ class NotificationSettings
419
+ include Google::Apis::Core::Hashable
420
+
421
+ # The list of notifications set for this calendar.
422
+ # Corresponds to the JSON property `notifications`
423
+ # @return [Array<Google::Apis::CalendarV3::CalendarNotification>]
424
+ attr_accessor :notifications
425
+
426
+ def initialize(**args)
427
+ update!(**args)
428
+ end
429
+
430
+ # Update properties of this object
431
+ def update!(**args)
432
+ @notifications = args[:notifications] if args.key?(:notifications)
433
+ end
434
+ end
435
+ end
436
+
437
+ #
438
+ class CalendarNotification
439
+ include Google::Apis::Core::Hashable
440
+
441
+ # The method used to deliver the notification. The possible value is:
442
+ # - "email" - Notifications are sent via email.
443
+ # Required when adding a notification.
444
+ # Corresponds to the JSON property `method`
445
+ # @return [String]
446
+ attr_accessor :delivery_method
447
+
448
+ # The type of notification. Possible values are:
449
+ # - "eventCreation" - Notification sent when a new event is put on the calendar.
450
+ # - "eventChange" - Notification sent when an event is changed.
451
+ # - "eventCancellation" - Notification sent when an event is cancelled.
452
+ # - "eventResponse" - Notification sent when an attendee responds to the event
453
+ # invitation.
454
+ # - "agenda" - An agenda with the events of the day (sent out in the morning).
455
+ # Required when adding a notification.
456
+ # Corresponds to the JSON property `type`
457
+ # @return [String]
458
+ attr_accessor :type
459
+
460
+ def initialize(**args)
461
+ update!(**args)
462
+ end
463
+
464
+ # Update properties of this object
465
+ def update!(**args)
466
+ @delivery_method = args[:delivery_method] if args.key?(:delivery_method)
467
+ @type = args[:type] if args.key?(:type)
468
+ end
469
+ end
470
+
471
+ #
472
+ class Channel
473
+ include Google::Apis::Core::Hashable
474
+
475
+ # The address where notifications are delivered for this channel.
476
+ # Corresponds to the JSON property `address`
477
+ # @return [String]
478
+ attr_accessor :address
479
+
480
+ # Date and time of notification channel expiration, expressed as a Unix
481
+ # timestamp, in milliseconds. Optional.
482
+ # Corresponds to the JSON property `expiration`
483
+ # @return [Fixnum]
484
+ attr_accessor :expiration
485
+
486
+ # A UUID or similar unique string that identifies this channel.
487
+ # Corresponds to the JSON property `id`
488
+ # @return [String]
489
+ attr_accessor :id
490
+
491
+ # Identifies this as a notification channel used to watch for changes to a
492
+ # resource, which is "api#channel".
493
+ # Corresponds to the JSON property `kind`
494
+ # @return [String]
495
+ attr_accessor :kind
496
+
497
+ # Additional parameters controlling delivery channel behavior. Optional.
498
+ # Corresponds to the JSON property `params`
499
+ # @return [Hash<String,String>]
500
+ attr_accessor :params
501
+
502
+ # A Boolean value to indicate whether payload is wanted. Optional.
503
+ # Corresponds to the JSON property `payload`
504
+ # @return [Boolean]
505
+ attr_accessor :payload
506
+ alias_method :payload?, :payload
507
+
508
+ # An opaque ID that identifies the resource being watched on this channel.
509
+ # Stable across different API versions.
510
+ # Corresponds to the JSON property `resourceId`
511
+ # @return [String]
512
+ attr_accessor :resource_id
513
+
514
+ # A version-specific identifier for the watched resource.
515
+ # Corresponds to the JSON property `resourceUri`
516
+ # @return [String]
517
+ attr_accessor :resource_uri
518
+
519
+ # An arbitrary string delivered to the target address with each notification
520
+ # delivered over this channel. Optional.
521
+ # Corresponds to the JSON property `token`
522
+ # @return [String]
523
+ attr_accessor :token
524
+
525
+ # The type of delivery mechanism used for this channel.
526
+ # Corresponds to the JSON property `type`
527
+ # @return [String]
528
+ attr_accessor :type
529
+
530
+ def initialize(**args)
531
+ update!(**args)
532
+ end
533
+
534
+ # Update properties of this object
535
+ def update!(**args)
536
+ @address = args[:address] if args.key?(:address)
537
+ @expiration = args[:expiration] if args.key?(:expiration)
538
+ @id = args[:id] if args.key?(:id)
539
+ @kind = args[:kind] if args.key?(:kind)
540
+ @params = args[:params] if args.key?(:params)
541
+ @payload = args[:payload] if args.key?(:payload)
542
+ @resource_id = args[:resource_id] if args.key?(:resource_id)
543
+ @resource_uri = args[:resource_uri] if args.key?(:resource_uri)
544
+ @token = args[:token] if args.key?(:token)
545
+ @type = args[:type] if args.key?(:type)
546
+ end
547
+ end
548
+
549
+ #
550
+ class ColorDefinition
551
+ include Google::Apis::Core::Hashable
552
+
553
+ # The background color associated with this color definition.
554
+ # Corresponds to the JSON property `background`
555
+ # @return [String]
556
+ attr_accessor :background
557
+
558
+ # The foreground color that can be used to write on top of a background with '
559
+ # background' color.
560
+ # Corresponds to the JSON property `foreground`
561
+ # @return [String]
562
+ attr_accessor :foreground
563
+
564
+ def initialize(**args)
565
+ update!(**args)
566
+ end
567
+
568
+ # Update properties of this object
569
+ def update!(**args)
570
+ @background = args[:background] if args.key?(:background)
571
+ @foreground = args[:foreground] if args.key?(:foreground)
572
+ end
573
+ end
574
+
575
+ #
576
+ class Colors
577
+ include Google::Apis::Core::Hashable
578
+
579
+ # A global palette of calendar colors, mapping from the color ID to its
580
+ # definition. A calendarListEntry resource refers to one of these color IDs in
581
+ # its color field. Read-only.
582
+ # Corresponds to the JSON property `calendar`
583
+ # @return [Hash<String,Google::Apis::CalendarV3::ColorDefinition>]
584
+ attr_accessor :calendar
585
+
586
+ # A global palette of event colors, mapping from the color ID to its definition.
587
+ # An event resource may refer to one of these color IDs in its color field. Read-
588
+ # only.
589
+ # Corresponds to the JSON property `event`
590
+ # @return [Hash<String,Google::Apis::CalendarV3::ColorDefinition>]
591
+ attr_accessor :event
592
+
593
+ # Type of the resource ("calendar#colors").
594
+ # Corresponds to the JSON property `kind`
595
+ # @return [String]
596
+ attr_accessor :kind
597
+
598
+ # Last modification time of the color palette (as a RFC3339 timestamp). Read-
599
+ # only.
600
+ # Corresponds to the JSON property `updated`
601
+ # @return [DateTime]
602
+ attr_accessor :updated
603
+
604
+ def initialize(**args)
605
+ update!(**args)
606
+ end
607
+
608
+ # Update properties of this object
609
+ def update!(**args)
610
+ @calendar = args[:calendar] if args.key?(:calendar)
611
+ @event = args[:event] if args.key?(:event)
612
+ @kind = args[:kind] if args.key?(:kind)
613
+ @updated = args[:updated] if args.key?(:updated)
614
+ end
615
+ end
616
+
617
+ #
618
+ class ConferenceData
619
+ include Google::Apis::Core::Hashable
620
+
621
+ # The ID of the conference.
622
+ # Can be used by developers to keep track of conferences, should not be
623
+ # displayed to users.
624
+ # Values for solution types:
625
+ # - "eventHangout": unset.
626
+ # - "eventNamedHangout": the name of the Hangout.
627
+ # - "hangoutsMeet": the 10-letter meeting code, for example "aaa-bbbb-ccc".
628
+ # - "addOn": defined by 3P conference provider. Optional.
629
+ # Corresponds to the JSON property `conferenceId`
630
+ # @return [String]
631
+ attr_accessor :conference_id
632
+
633
+ # The conference solution, such as Hangouts or Google Meet.
634
+ # Unset for a conference with a failed create request.
635
+ # Either conferenceSolution and at least one entryPoint, or createRequest is
636
+ # required.
637
+ # Corresponds to the JSON property `conferenceSolution`
638
+ # @return [Google::Apis::CalendarV3::ConferenceSolution]
639
+ attr_accessor :conference_solution
640
+
641
+ # A request to generate a new conference and attach it to the event. The data is
642
+ # generated asynchronously. To see whether the data is present check the status
643
+ # field.
644
+ # Either conferenceSolution and at least one entryPoint, or createRequest is
645
+ # required.
646
+ # Corresponds to the JSON property `createRequest`
647
+ # @return [Google::Apis::CalendarV3::CreateConferenceRequest]
648
+ attr_accessor :create_request
649
+
650
+ # Information about individual conference entry points, such as URLs or phone
651
+ # numbers.
652
+ # All of them must belong to the same conference.
653
+ # Either conferenceSolution and at least one entryPoint, or createRequest is
654
+ # required.
655
+ # Corresponds to the JSON property `entryPoints`
656
+ # @return [Array<Google::Apis::CalendarV3::EntryPoint>]
657
+ attr_accessor :entry_points
658
+
659
+ # Additional notes (such as instructions from the domain administrator, legal
660
+ # notices) to display to the user. Can contain HTML. The maximum length is 2048
661
+ # characters. Optional.
662
+ # Corresponds to the JSON property `notes`
663
+ # @return [String]
664
+ attr_accessor :notes
665
+
666
+ # Additional properties related to a conference. An example would be a solution-
667
+ # specific setting for enabling video streaming.
668
+ # Corresponds to the JSON property `parameters`
669
+ # @return [Google::Apis::CalendarV3::ConferenceParameters]
670
+ attr_accessor :parameters
671
+
672
+ # The signature of the conference data.
673
+ # Generated on server side. Must be preserved while copying the conference data
674
+ # between events, otherwise the conference data will not be copied.
675
+ # Unset for a conference with a failed create request.
676
+ # Optional for a conference with a pending create request.
677
+ # Corresponds to the JSON property `signature`
678
+ # @return [String]
679
+ attr_accessor :signature
680
+
681
+ def initialize(**args)
682
+ update!(**args)
683
+ end
684
+
685
+ # Update properties of this object
686
+ def update!(**args)
687
+ @conference_id = args[:conference_id] if args.key?(:conference_id)
688
+ @conference_solution = args[:conference_solution] if args.key?(:conference_solution)
689
+ @create_request = args[:create_request] if args.key?(:create_request)
690
+ @entry_points = args[:entry_points] if args.key?(:entry_points)
691
+ @notes = args[:notes] if args.key?(:notes)
692
+ @parameters = args[:parameters] if args.key?(:parameters)
693
+ @signature = args[:signature] if args.key?(:signature)
694
+ end
695
+ end
696
+
697
+ #
698
+ class ConferenceParameters
699
+ include Google::Apis::Core::Hashable
700
+
701
+ # Additional add-on specific data.
702
+ # Corresponds to the JSON property `addOnParameters`
703
+ # @return [Google::Apis::CalendarV3::ConferenceParametersAddOnParameters]
704
+ attr_accessor :add_on_parameters
705
+
706
+ def initialize(**args)
707
+ update!(**args)
708
+ end
709
+
710
+ # Update properties of this object
711
+ def update!(**args)
712
+ @add_on_parameters = args[:add_on_parameters] if args.key?(:add_on_parameters)
713
+ end
714
+ end
715
+
716
+ #
717
+ class ConferenceParametersAddOnParameters
718
+ include Google::Apis::Core::Hashable
719
+
720
+ #
721
+ # Corresponds to the JSON property `parameters`
722
+ # @return [Hash<String,String>]
723
+ attr_accessor :parameters
724
+
725
+ def initialize(**args)
726
+ update!(**args)
727
+ end
728
+
729
+ # Update properties of this object
730
+ def update!(**args)
731
+ @parameters = args[:parameters] if args.key?(:parameters)
732
+ end
733
+ end
734
+
735
+ #
736
+ class ConferenceProperties
737
+ include Google::Apis::Core::Hashable
738
+
739
+ # The types of conference solutions that are supported for this calendar.
740
+ # The possible values are:
741
+ # - "eventHangout"
742
+ # - "eventNamedHangout"
743
+ # - "hangoutsMeet" Optional.
744
+ # Corresponds to the JSON property `allowedConferenceSolutionTypes`
745
+ # @return [Array<String>]
746
+ attr_accessor :allowed_conference_solution_types
747
+
748
+ def initialize(**args)
749
+ update!(**args)
750
+ end
751
+
752
+ # Update properties of this object
753
+ def update!(**args)
754
+ @allowed_conference_solution_types = args[:allowed_conference_solution_types] if args.key?(:allowed_conference_solution_types)
755
+ end
756
+ end
757
+
758
+ #
759
+ class ConferenceRequestStatus
760
+ include Google::Apis::Core::Hashable
761
+
762
+ # The current status of the conference create request. Read-only.
763
+ # The possible values are:
764
+ # - "pending": the conference create request is still being processed.
765
+ # - "success": the conference create request succeeded, the entry points are
766
+ # populated.
767
+ # - "failure": the conference create request failed, there are no entry points.
768
+ # Corresponds to the JSON property `statusCode`
769
+ # @return [String]
770
+ attr_accessor :status_code
771
+
772
+ def initialize(**args)
773
+ update!(**args)
774
+ end
775
+
776
+ # Update properties of this object
777
+ def update!(**args)
778
+ @status_code = args[:status_code] if args.key?(:status_code)
779
+ end
780
+ end
781
+
782
+ #
783
+ class ConferenceSolution
784
+ include Google::Apis::Core::Hashable
785
+
786
+ # The user-visible icon for this solution.
787
+ # Corresponds to the JSON property `iconUri`
788
+ # @return [String]
789
+ attr_accessor :icon_uri
790
+
791
+ # The key which can uniquely identify the conference solution for this event.
792
+ # Corresponds to the JSON property `key`
793
+ # @return [Google::Apis::CalendarV3::ConferenceSolutionKey]
794
+ attr_accessor :key
795
+
796
+ # The user-visible name of this solution. Not localized.
797
+ # Corresponds to the JSON property `name`
798
+ # @return [String]
799
+ attr_accessor :name
800
+
801
+ def initialize(**args)
802
+ update!(**args)
803
+ end
804
+
805
+ # Update properties of this object
806
+ def update!(**args)
807
+ @icon_uri = args[:icon_uri] if args.key?(:icon_uri)
808
+ @key = args[:key] if args.key?(:key)
809
+ @name = args[:name] if args.key?(:name)
810
+ end
811
+ end
812
+
813
+ #
814
+ class ConferenceSolutionKey
815
+ include Google::Apis::Core::Hashable
816
+
817
+ # The conference solution type.
818
+ # If a client encounters an unfamiliar or empty type, it should still be able to
819
+ # display the entry points. However, it should disallow modifications.
820
+ # The possible values are:
821
+ # - "eventHangout" for Hangouts for consumers (http://hangouts.google.com)
822
+ # - "eventNamedHangout" for classic Hangouts for Google Workspace users (http://
823
+ # hangouts.google.com)
824
+ # - "hangoutsMeet" for Google Meet (http://meet.google.com)
825
+ # - "addOn" for 3P conference providers
826
+ # Corresponds to the JSON property `type`
827
+ # @return [String]
828
+ attr_accessor :type
829
+
830
+ def initialize(**args)
831
+ update!(**args)
832
+ end
833
+
834
+ # Update properties of this object
835
+ def update!(**args)
836
+ @type = args[:type] if args.key?(:type)
837
+ end
838
+ end
839
+
840
+ #
841
+ class CreateConferenceRequest
842
+ include Google::Apis::Core::Hashable
843
+
844
+ # The conference solution, such as Hangouts or Google Meet.
845
+ # Corresponds to the JSON property `conferenceSolutionKey`
846
+ # @return [Google::Apis::CalendarV3::ConferenceSolutionKey]
847
+ attr_accessor :conference_solution_key
848
+
849
+ # The client-generated unique ID for this request.
850
+ # Clients should regenerate this ID for every new request. If an ID provided is
851
+ # the same as for the previous request, the request is ignored.
852
+ # Corresponds to the JSON property `requestId`
853
+ # @return [String]
854
+ attr_accessor :request_id
855
+
856
+ # The status of the conference create request.
857
+ # Corresponds to the JSON property `status`
858
+ # @return [Google::Apis::CalendarV3::ConferenceRequestStatus]
859
+ attr_accessor :status
860
+
861
+ def initialize(**args)
862
+ update!(**args)
863
+ end
864
+
865
+ # Update properties of this object
866
+ def update!(**args)
867
+ @conference_solution_key = args[:conference_solution_key] if args.key?(:conference_solution_key)
868
+ @request_id = args[:request_id] if args.key?(:request_id)
869
+ @status = args[:status] if args.key?(:status)
870
+ end
871
+ end
872
+
873
+ #
874
+ class EntryPoint
875
+ include Google::Apis::Core::Hashable
876
+
877
+ # The access code to access the conference. The maximum length is 128 characters.
878
+ # When creating new conference data, populate only the subset of `meetingCode,
879
+ # accessCode, passcode, password, pin` fields that match the terminology that
880
+ # the conference provider uses. Only the populated fields should be displayed.
881
+ # Optional.
882
+ # Corresponds to the JSON property `accessCode`
883
+ # @return [String]
884
+ attr_accessor :access_code
885
+
886
+ # Features of the entry point, such as being toll or toll-free. One entry point
887
+ # can have multiple features. However, toll and toll-free cannot be both set on
888
+ # the same entry point.
889
+ # Corresponds to the JSON property `entryPointFeatures`
890
+ # @return [Array<String>]
891
+ attr_accessor :entry_point_features
892
+
893
+ # The type of the conference entry point.
894
+ # Possible values are:
895
+ # - "video" - joining a conference over HTTP. A conference can have zero or one
896
+ # video entry point.
897
+ # - "phone" - joining a conference by dialing a phone number. A conference can
898
+ # have zero or more phone entry points.
899
+ # - "sip" - joining a conference over SIP. A conference can have zero or one sip
900
+ # entry point.
901
+ # - "more" - further conference joining instructions, for example additional
902
+ # phone numbers. A conference can have zero or one more entry point. A
903
+ # conference with only a more entry point is not a valid conference.
904
+ # Corresponds to the JSON property `entryPointType`
905
+ # @return [String]
906
+ attr_accessor :entry_point_type
907
+
908
+ # The label for the URI. Visible to end users. Not localized. The maximum length
909
+ # is 512 characters.
910
+ # Examples:
911
+ # - for video: meet.google.com/aaa-bbbb-ccc
912
+ # - for phone: +1 123 268 2601
913
+ # - for sip: 12345678@altostrat.com
914
+ # - for more: should not be filled
915
+ # Optional.
916
+ # Corresponds to the JSON property `label`
917
+ # @return [String]
918
+ attr_accessor :label
919
+
920
+ # The meeting code to access the conference. The maximum length is 128
921
+ # characters.
922
+ # When creating new conference data, populate only the subset of `meetingCode,
923
+ # accessCode, passcode, password, pin` fields that match the terminology that
924
+ # the conference provider uses. Only the populated fields should be displayed.
925
+ # Optional.
926
+ # Corresponds to the JSON property `meetingCode`
927
+ # @return [String]
928
+ attr_accessor :meeting_code
929
+
930
+ # The passcode to access the conference. The maximum length is 128 characters.
931
+ # When creating new conference data, populate only the subset of `meetingCode,
932
+ # accessCode, passcode, password, pin` fields that match the terminology that
933
+ # the conference provider uses. Only the populated fields should be displayed.
934
+ # Corresponds to the JSON property `passcode`
935
+ # @return [String]
936
+ attr_accessor :passcode
937
+
938
+ # The password to access the conference. The maximum length is 128 characters.
939
+ # When creating new conference data, populate only the subset of `meetingCode,
940
+ # accessCode, passcode, password, pin` fields that match the terminology that
941
+ # the conference provider uses. Only the populated fields should be displayed.
942
+ # Optional.
943
+ # Corresponds to the JSON property `password`
944
+ # @return [String]
945
+ attr_accessor :password
946
+
947
+ # The PIN to access the conference. The maximum length is 128 characters.
948
+ # When creating new conference data, populate only the subset of `meetingCode,
949
+ # accessCode, passcode, password, pin` fields that match the terminology that
950
+ # the conference provider uses. Only the populated fields should be displayed.
951
+ # Optional.
952
+ # Corresponds to the JSON property `pin`
953
+ # @return [String]
954
+ attr_accessor :pin
955
+
956
+ # The CLDR/ISO 3166 region code for the country associated with this phone
957
+ # access. Example: "SE" for Sweden.
958
+ # Calendar backend will populate this field only for EntryPointType.PHONE.
959
+ # Corresponds to the JSON property `regionCode`
960
+ # @return [String]
961
+ attr_accessor :region_code
962
+
963
+ # The URI of the entry point. The maximum length is 1300 characters.
964
+ # Format:
965
+ # - for video, http: or https: schema is required.
966
+ # - for phone, tel: schema is required. The URI should include the entire dial
967
+ # sequence (e.g., tel:+12345678900,,,123456789;1234).
968
+ # - for sip, sip: schema is required, e.g., sip:12345678@myprovider.com.
969
+ # - for more, http: or https: schema is required.
970
+ # Corresponds to the JSON property `uri`
971
+ # @return [String]
972
+ attr_accessor :uri
973
+
974
+ def initialize(**args)
975
+ update!(**args)
976
+ end
977
+
978
+ # Update properties of this object
979
+ def update!(**args)
980
+ @access_code = args[:access_code] if args.key?(:access_code)
981
+ @entry_point_features = args[:entry_point_features] if args.key?(:entry_point_features)
982
+ @entry_point_type = args[:entry_point_type] if args.key?(:entry_point_type)
983
+ @label = args[:label] if args.key?(:label)
984
+ @meeting_code = args[:meeting_code] if args.key?(:meeting_code)
985
+ @passcode = args[:passcode] if args.key?(:passcode)
986
+ @password = args[:password] if args.key?(:password)
987
+ @pin = args[:pin] if args.key?(:pin)
988
+ @region_code = args[:region_code] if args.key?(:region_code)
989
+ @uri = args[:uri] if args.key?(:uri)
990
+ end
991
+ end
992
+
993
+ #
994
+ class Error
995
+ include Google::Apis::Core::Hashable
996
+
997
+ # Domain, or broad category, of the error.
998
+ # Corresponds to the JSON property `domain`
999
+ # @return [String]
1000
+ attr_accessor :domain
1001
+
1002
+ # Specific reason for the error. Some of the possible values are:
1003
+ # - "groupTooBig" - The group of users requested is too large for a single query.
1004
+ #
1005
+ # - "tooManyCalendarsRequested" - The number of calendars requested is too large
1006
+ # for a single query.
1007
+ # - "notFound" - The requested resource was not found.
1008
+ # - "internalError" - The API service has encountered an internal error.
1009
+ # Additional error types may be added in the future, so clients should
1010
+ # gracefully handle additional error statuses not included in this list.
1011
+ # Corresponds to the JSON property `reason`
1012
+ # @return [String]
1013
+ attr_accessor :reason
1014
+
1015
+ def initialize(**args)
1016
+ update!(**args)
1017
+ end
1018
+
1019
+ # Update properties of this object
1020
+ def update!(**args)
1021
+ @domain = args[:domain] if args.key?(:domain)
1022
+ @reason = args[:reason] if args.key?(:reason)
1023
+ end
1024
+ end
1025
+
1026
+ #
1027
+ class Event
1028
+ include Google::Apis::Core::Hashable
1029
+
1030
+ # Whether anyone can invite themselves to the event (currently works for Google+
1031
+ # events only). Optional. The default is False.
1032
+ # Corresponds to the JSON property `anyoneCanAddSelf`
1033
+ # @return [Boolean]
1034
+ attr_accessor :anyone_can_add_self
1035
+ alias_method :anyone_can_add_self?, :anyone_can_add_self
1036
+
1037
+ # File attachments for the event. Currently only Google Drive attachments are
1038
+ # supported.
1039
+ # In order to modify attachments the supportsAttachments request parameter
1040
+ # should be set to true.
1041
+ # There can be at most 25 attachments per event,
1042
+ # Corresponds to the JSON property `attachments`
1043
+ # @return [Array<Google::Apis::CalendarV3::EventAttachment>]
1044
+ attr_accessor :attachments
1045
+
1046
+ # The attendees of the event. See the Events with attendees guide for more
1047
+ # information on scheduling events with other calendar users. Service accounts
1048
+ # need to use domain-wide delegation of authority to populate the attendee list.
1049
+ # Corresponds to the JSON property `attendees`
1050
+ # @return [Array<Google::Apis::CalendarV3::EventAttendee>]
1051
+ attr_accessor :attendees
1052
+
1053
+ # Whether attendees may have been omitted from the event's representation. When
1054
+ # retrieving an event, this may be due to a restriction specified by the
1055
+ # maxAttendee query parameter. When updating an event, this can be used to only
1056
+ # update the participant's response. Optional. The default is False.
1057
+ # Corresponds to the JSON property `attendeesOmitted`
1058
+ # @return [Boolean]
1059
+ attr_accessor :attendees_omitted
1060
+ alias_method :attendees_omitted?, :attendees_omitted
1061
+
1062
+ # The color of the event. This is an ID referring to an entry in the event
1063
+ # section of the colors definition (see the colors endpoint). Optional.
1064
+ # Corresponds to the JSON property `colorId`
1065
+ # @return [String]
1066
+ attr_accessor :color_id
1067
+
1068
+ # The conference-related information, such as details of a Google Meet
1069
+ # conference. To create new conference details use the createRequest field. To
1070
+ # persist your changes, remember to set the conferenceDataVersion request
1071
+ # parameter to 1 for all event modification requests.
1072
+ # Corresponds to the JSON property `conferenceData`
1073
+ # @return [Google::Apis::CalendarV3::ConferenceData]
1074
+ attr_accessor :conference_data
1075
+
1076
+ # Creation time of the event (as a RFC3339 timestamp). Read-only.
1077
+ # Corresponds to the JSON property `created`
1078
+ # @return [DateTime]
1079
+ attr_accessor :created
1080
+
1081
+ # The creator of the event. Read-only.
1082
+ # Corresponds to the JSON property `creator`
1083
+ # @return [Google::Apis::CalendarV3::Event::Creator]
1084
+ attr_accessor :creator
1085
+
1086
+ # Description of the event. Can contain HTML. Optional.
1087
+ # Corresponds to the JSON property `description`
1088
+ # @return [String]
1089
+ attr_accessor :description
1090
+
1091
+ # The (exclusive) end time of the event. For a recurring event, this is the end
1092
+ # time of the first instance.
1093
+ # Corresponds to the JSON property `end`
1094
+ # @return [Google::Apis::CalendarV3::EventDateTime]
1095
+ attr_accessor :end
1096
+
1097
+ # Whether the end time is actually unspecified. An end time is still provided
1098
+ # for compatibility reasons, even if this attribute is set to True. The default
1099
+ # is False.
1100
+ # Corresponds to the JSON property `endTimeUnspecified`
1101
+ # @return [Boolean]
1102
+ attr_accessor :end_time_unspecified
1103
+ alias_method :end_time_unspecified?, :end_time_unspecified
1104
+
1105
+ # ETag of the resource.
1106
+ # Corresponds to the JSON property `etag`
1107
+ # @return [String]
1108
+ attr_accessor :etag
1109
+
1110
+ # Extended properties of the event.
1111
+ # Corresponds to the JSON property `extendedProperties`
1112
+ # @return [Google::Apis::CalendarV3::Event::ExtendedProperties]
1113
+ attr_accessor :extended_properties
1114
+
1115
+ # A gadget that extends this event. Gadgets are deprecated; this structure is
1116
+ # instead only used for returning birthday calendar metadata.
1117
+ # Corresponds to the JSON property `gadget`
1118
+ # @return [Google::Apis::CalendarV3::Event::Gadget]
1119
+ attr_accessor :gadget
1120
+
1121
+ # Whether attendees other than the organizer can invite others to the event.
1122
+ # Optional. The default is True.
1123
+ # Corresponds to the JSON property `guestsCanInviteOthers`
1124
+ # @return [Boolean]
1125
+ attr_accessor :guests_can_invite_others
1126
+ alias_method :guests_can_invite_others?, :guests_can_invite_others
1127
+
1128
+ # Whether attendees other than the organizer can modify the event. Optional. The
1129
+ # default is False.
1130
+ # Corresponds to the JSON property `guestsCanModify`
1131
+ # @return [Boolean]
1132
+ attr_accessor :guests_can_modify
1133
+ alias_method :guests_can_modify?, :guests_can_modify
1134
+
1135
+ # Whether attendees other than the organizer can see who the event's attendees
1136
+ # are. Optional. The default is True.
1137
+ # Corresponds to the JSON property `guestsCanSeeOtherGuests`
1138
+ # @return [Boolean]
1139
+ attr_accessor :guests_can_see_other_guests
1140
+ alias_method :guests_can_see_other_guests?, :guests_can_see_other_guests
1141
+
1142
+ # An absolute link to the Google+ hangout associated with this event. Read-only.
1143
+ # Corresponds to the JSON property `hangoutLink`
1144
+ # @return [String]
1145
+ attr_accessor :hangout_link
1146
+
1147
+ # An absolute link to this event in the Google Calendar Web UI. Read-only.
1148
+ # Corresponds to the JSON property `htmlLink`
1149
+ # @return [String]
1150
+ attr_accessor :html_link
1151
+
1152
+ # Event unique identifier as defined in RFC5545. It is used to uniquely identify
1153
+ # events accross calendaring systems and must be supplied when importing events
1154
+ # via the import method.
1155
+ # Note that the icalUID and the id are not identical and only one of them should
1156
+ # be supplied at event creation time. One difference in their semantics is that
1157
+ # in recurring events, all occurrences of one event have different ids while
1158
+ # they all share the same icalUIDs.
1159
+ # Corresponds to the JSON property `iCalUID`
1160
+ # @return [String]
1161
+ attr_accessor :i_cal_uid
1162
+
1163
+ # Opaque identifier of the event. When creating new single or recurring events,
1164
+ # you can specify their IDs. Provided IDs must follow these rules:
1165
+ # - characters allowed in the ID are those used in base32hex encoding, i.e.
1166
+ # lowercase letters a-v and digits 0-9, see section 3.1.2 in RFC2938
1167
+ # - the length of the ID must be between 5 and 1024 characters
1168
+ # - the ID must be unique per calendar Due to the globally distributed nature
1169
+ # of the system, we cannot guarantee that ID collisions will be detected at
1170
+ # event creation time. To minimize the risk of collisions we recommend using an
1171
+ # established UUID algorithm such as one described in RFC4122.
1172
+ # If you do not specify an ID, it will be automatically generated by the server.
1173
+ # Note that the icalUID and the id are not identical and only one of them should
1174
+ # be supplied at event creation time. One difference in their semantics is that
1175
+ # in recurring events, all occurrences of one event have different ids while
1176
+ # they all share the same icalUIDs.
1177
+ # Corresponds to the JSON property `id`
1178
+ # @return [String]
1179
+ attr_accessor :id
1180
+
1181
+ # Type of the resource ("calendar#event").
1182
+ # Corresponds to the JSON property `kind`
1183
+ # @return [String]
1184
+ attr_accessor :kind
1185
+
1186
+ # Geographic location of the event as free-form text. Optional.
1187
+ # Corresponds to the JSON property `location`
1188
+ # @return [String]
1189
+ attr_accessor :location
1190
+
1191
+ # Whether this is a locked event copy where no changes can be made to the main
1192
+ # event fields "summary", "description", "location", "start", "end" or "
1193
+ # recurrence". The default is False. Read-Only.
1194
+ # Corresponds to the JSON property `locked`
1195
+ # @return [Boolean]
1196
+ attr_accessor :locked
1197
+ alias_method :locked?, :locked
1198
+
1199
+ # The organizer of the event. If the organizer is also an attendee, this is
1200
+ # indicated with a separate entry in attendees with the organizer field set to
1201
+ # True. To change the organizer, use the move operation. Read-only, except when
1202
+ # importing an event.
1203
+ # Corresponds to the JSON property `organizer`
1204
+ # @return [Google::Apis::CalendarV3::Event::Organizer]
1205
+ attr_accessor :organizer
1206
+
1207
+ # For an instance of a recurring event, this is the time at which this event
1208
+ # would start according to the recurrence data in the recurring event identified
1209
+ # by recurringEventId. It uniquely identifies the instance within the recurring
1210
+ # event series even if the instance was moved to a different time. Immutable.
1211
+ # Corresponds to the JSON property `originalStartTime`
1212
+ # @return [Google::Apis::CalendarV3::EventDateTime]
1213
+ attr_accessor :original_start_time
1214
+
1215
+ # If set to True, Event propagation is disabled. Note that it is not the same
1216
+ # thing as Private event properties. Optional. Immutable. The default is False.
1217
+ # Corresponds to the JSON property `privateCopy`
1218
+ # @return [Boolean]
1219
+ attr_accessor :private_copy
1220
+ alias_method :private_copy?, :private_copy
1221
+
1222
+ # List of RRULE, EXRULE, RDATE and EXDATE lines for a recurring event, as
1223
+ # specified in RFC5545. Note that DTSTART and DTEND lines are not allowed in
1224
+ # this field; event start and end times are specified in the start and end
1225
+ # fields. This field is omitted for single events or instances of recurring
1226
+ # events.
1227
+ # Corresponds to the JSON property `recurrence`
1228
+ # @return [Array<String>]
1229
+ attr_accessor :recurrence
1230
+
1231
+ # For an instance of a recurring event, this is the id of the recurring event to
1232
+ # which this instance belongs. Immutable.
1233
+ # Corresponds to the JSON property `recurringEventId`
1234
+ # @return [String]
1235
+ attr_accessor :recurring_event_id
1236
+
1237
+ # Information about the event's reminders for the authenticated user.
1238
+ # Corresponds to the JSON property `reminders`
1239
+ # @return [Google::Apis::CalendarV3::Event::Reminders]
1240
+ attr_accessor :reminders
1241
+
1242
+ # Sequence number as per iCalendar.
1243
+ # Corresponds to the JSON property `sequence`
1244
+ # @return [Fixnum]
1245
+ attr_accessor :sequence
1246
+
1247
+ # Source from which the event was created. For example, a web page, an email
1248
+ # message or any document identifiable by an URL with HTTP or HTTPS scheme. Can
1249
+ # only be seen or modified by the creator of the event.
1250
+ # Corresponds to the JSON property `source`
1251
+ # @return [Google::Apis::CalendarV3::Event::Source]
1252
+ attr_accessor :source
1253
+
1254
+ # The (inclusive) start time of the event. For a recurring event, this is the
1255
+ # start time of the first instance.
1256
+ # Corresponds to the JSON property `start`
1257
+ # @return [Google::Apis::CalendarV3::EventDateTime]
1258
+ attr_accessor :start
1259
+
1260
+ # Status of the event. Optional. Possible values are:
1261
+ # - "confirmed" - The event is confirmed. This is the default status.
1262
+ # - "tentative" - The event is tentatively confirmed.
1263
+ # - "cancelled" - The event is cancelled (deleted). The list method returns
1264
+ # cancelled events only on incremental sync (when syncToken or updatedMin are
1265
+ # specified) or if the showDeleted flag is set to true. The get method always
1266
+ # returns them.
1267
+ # A cancelled status represents two different states depending on the event type:
1268
+ #
1269
+ # - Cancelled exceptions of an uncancelled recurring event indicate that this
1270
+ # instance should no longer be presented to the user. Clients should store these
1271
+ # events for the lifetime of the parent recurring event.
1272
+ # Cancelled exceptions are only guaranteed to have values for the id,
1273
+ # recurringEventId and originalStartTime fields populated. The other fields
1274
+ # might be empty.
1275
+ # - All other cancelled events represent deleted events. Clients should remove
1276
+ # their locally synced copies. Such cancelled events will eventually disappear,
1277
+ # so do not rely on them being available indefinitely.
1278
+ # Deleted events are only guaranteed to have the id field populated. On the
1279
+ # organizer's calendar, cancelled events continue to expose event details (
1280
+ # summary, location, etc.) so that they can be restored (undeleted). Similarly,
1281
+ # the events to which the user was invited and that they manually removed
1282
+ # continue to provide details. However, incremental sync requests with
1283
+ # showDeleted set to false will not return these details.
1284
+ # If an event changes its organizer (for example via the move operation) and the
1285
+ # original organizer is not on the attendee list, it will leave behind a
1286
+ # cancelled event where only the id field is guaranteed to be populated.
1287
+ # Corresponds to the JSON property `status`
1288
+ # @return [String]
1289
+ attr_accessor :status
1290
+
1291
+ # Title of the event.
1292
+ # Corresponds to the JSON property `summary`
1293
+ # @return [String]
1294
+ attr_accessor :summary
1295
+
1296
+ # Whether the event blocks time on the calendar. Optional. Possible values are:
1297
+ # - "opaque" - Default value. The event does block time on the calendar. This is
1298
+ # equivalent to setting Show me as to Busy in the Calendar UI.
1299
+ # - "transparent" - The event does not block time on the calendar. This is
1300
+ # equivalent to setting Show me as to Available in the Calendar UI.
1301
+ # Corresponds to the JSON property `transparency`
1302
+ # @return [String]
1303
+ attr_accessor :transparency
1304
+
1305
+ # Last modification time of the event (as a RFC3339 timestamp). Read-only.
1306
+ # Corresponds to the JSON property `updated`
1307
+ # @return [DateTime]
1308
+ attr_accessor :updated
1309
+
1310
+ # Visibility of the event. Optional. Possible values are:
1311
+ # - "default" - Uses the default visibility for events on the calendar. This is
1312
+ # the default value.
1313
+ # - "public" - The event is public and event details are visible to all readers
1314
+ # of the calendar.
1315
+ # - "private" - The event is private and only event attendees may view event
1316
+ # details.
1317
+ # - "confidential" - The event is private. This value is provided for
1318
+ # compatibility reasons.
1319
+ # Corresponds to the JSON property `visibility`
1320
+ # @return [String]
1321
+ attr_accessor :visibility
1322
+
1323
+ def initialize(**args)
1324
+ update!(**args)
1325
+ end
1326
+
1327
+ # Update properties of this object
1328
+ def update!(**args)
1329
+ @anyone_can_add_self = args[:anyone_can_add_self] if args.key?(:anyone_can_add_self)
1330
+ @attachments = args[:attachments] if args.key?(:attachments)
1331
+ @attendees = args[:attendees] if args.key?(:attendees)
1332
+ @attendees_omitted = args[:attendees_omitted] if args.key?(:attendees_omitted)
1333
+ @color_id = args[:color_id] if args.key?(:color_id)
1334
+ @conference_data = args[:conference_data] if args.key?(:conference_data)
1335
+ @created = args[:created] if args.key?(:created)
1336
+ @creator = args[:creator] if args.key?(:creator)
1337
+ @description = args[:description] if args.key?(:description)
1338
+ @end = args[:end] if args.key?(:end)
1339
+ @end_time_unspecified = args[:end_time_unspecified] if args.key?(:end_time_unspecified)
1340
+ @etag = args[:etag] if args.key?(:etag)
1341
+ @extended_properties = args[:extended_properties] if args.key?(:extended_properties)
1342
+ @gadget = args[:gadget] if args.key?(:gadget)
1343
+ @guests_can_invite_others = args[:guests_can_invite_others] if args.key?(:guests_can_invite_others)
1344
+ @guests_can_modify = args[:guests_can_modify] if args.key?(:guests_can_modify)
1345
+ @guests_can_see_other_guests = args[:guests_can_see_other_guests] if args.key?(:guests_can_see_other_guests)
1346
+ @hangout_link = args[:hangout_link] if args.key?(:hangout_link)
1347
+ @html_link = args[:html_link] if args.key?(:html_link)
1348
+ @i_cal_uid = args[:i_cal_uid] if args.key?(:i_cal_uid)
1349
+ @id = args[:id] if args.key?(:id)
1350
+ @kind = args[:kind] if args.key?(:kind)
1351
+ @location = args[:location] if args.key?(:location)
1352
+ @locked = args[:locked] if args.key?(:locked)
1353
+ @organizer = args[:organizer] if args.key?(:organizer)
1354
+ @original_start_time = args[:original_start_time] if args.key?(:original_start_time)
1355
+ @private_copy = args[:private_copy] if args.key?(:private_copy)
1356
+ @recurrence = args[:recurrence] if args.key?(:recurrence)
1357
+ @recurring_event_id = args[:recurring_event_id] if args.key?(:recurring_event_id)
1358
+ @reminders = args[:reminders] if args.key?(:reminders)
1359
+ @sequence = args[:sequence] if args.key?(:sequence)
1360
+ @source = args[:source] if args.key?(:source)
1361
+ @start = args[:start] if args.key?(:start)
1362
+ @status = args[:status] if args.key?(:status)
1363
+ @summary = args[:summary] if args.key?(:summary)
1364
+ @transparency = args[:transparency] if args.key?(:transparency)
1365
+ @updated = args[:updated] if args.key?(:updated)
1366
+ @visibility = args[:visibility] if args.key?(:visibility)
1367
+ end
1368
+
1369
+ # The creator of the event. Read-only.
1370
+ class Creator
1371
+ include Google::Apis::Core::Hashable
1372
+
1373
+ # The creator's name, if available.
1374
+ # Corresponds to the JSON property `displayName`
1375
+ # @return [String]
1376
+ attr_accessor :display_name
1377
+
1378
+ # The creator's email address, if available.
1379
+ # Corresponds to the JSON property `email`
1380
+ # @return [String]
1381
+ attr_accessor :email
1382
+
1383
+ # The creator's Profile ID, if available. It corresponds to the id field in the
1384
+ # People collection of the Google+ API
1385
+ # Corresponds to the JSON property `id`
1386
+ # @return [String]
1387
+ attr_accessor :id
1388
+
1389
+ # Whether the creator corresponds to the calendar on which this copy of the
1390
+ # event appears. Read-only. The default is False.
1391
+ # Corresponds to the JSON property `self`
1392
+ # @return [Boolean]
1393
+ attr_accessor :self
1394
+ alias_method :self?, :self
1395
+
1396
+ def initialize(**args)
1397
+ update!(**args)
1398
+ end
1399
+
1400
+ # Update properties of this object
1401
+ def update!(**args)
1402
+ @display_name = args[:display_name] if args.key?(:display_name)
1403
+ @email = args[:email] if args.key?(:email)
1404
+ @id = args[:id] if args.key?(:id)
1405
+ @self = args[:self] if args.key?(:self)
1406
+ end
1407
+ end
1408
+
1409
+ # Extended properties of the event.
1410
+ class ExtendedProperties
1411
+ include Google::Apis::Core::Hashable
1412
+
1413
+ # Properties that are private to the copy of the event that appears on this
1414
+ # calendar.
1415
+ # Corresponds to the JSON property `private`
1416
+ # @return [Hash<String,String>]
1417
+ attr_accessor :private
1418
+
1419
+ # Properties that are shared between copies of the event on other attendees'
1420
+ # calendars.
1421
+ # Corresponds to the JSON property `shared`
1422
+ # @return [Hash<String,String>]
1423
+ attr_accessor :shared
1424
+
1425
+ def initialize(**args)
1426
+ update!(**args)
1427
+ end
1428
+
1429
+ # Update properties of this object
1430
+ def update!(**args)
1431
+ @private = args[:private] if args.key?(:private)
1432
+ @shared = args[:shared] if args.key?(:shared)
1433
+ end
1434
+ end
1435
+
1436
+ # A gadget that extends this event. Gadgets are deprecated; this structure is
1437
+ # instead only used for returning birthday calendar metadata.
1438
+ class Gadget
1439
+ include Google::Apis::Core::Hashable
1440
+
1441
+ # The gadget's display mode. Deprecated. Possible values are:
1442
+ # - "icon" - The gadget displays next to the event's title in the calendar view.
1443
+ # - "chip" - The gadget displays when the event is clicked.
1444
+ # Corresponds to the JSON property `display`
1445
+ # @return [String]
1446
+ attr_accessor :display_mode
1447
+
1448
+ # The gadget's height in pixels. The height must be an integer greater than 0.
1449
+ # Optional. Deprecated.
1450
+ # Corresponds to the JSON property `height`
1451
+ # @return [Fixnum]
1452
+ attr_accessor :height
1453
+
1454
+ # The gadget's icon URL. The URL scheme must be HTTPS. Deprecated.
1455
+ # Corresponds to the JSON property `iconLink`
1456
+ # @return [String]
1457
+ attr_accessor :icon_link
1458
+
1459
+ # The gadget's URL. The URL scheme must be HTTPS. Deprecated.
1460
+ # Corresponds to the JSON property `link`
1461
+ # @return [String]
1462
+ attr_accessor :link
1463
+
1464
+ # Preferences.
1465
+ # Corresponds to the JSON property `preferences`
1466
+ # @return [Hash<String,String>]
1467
+ attr_accessor :preferences
1468
+
1469
+ # The gadget's title. Deprecated.
1470
+ # Corresponds to the JSON property `title`
1471
+ # @return [String]
1472
+ attr_accessor :title
1473
+
1474
+ # The gadget's type. Deprecated.
1475
+ # Corresponds to the JSON property `type`
1476
+ # @return [String]
1477
+ attr_accessor :type
1478
+
1479
+ # The gadget's width in pixels. The width must be an integer greater than 0.
1480
+ # Optional. Deprecated.
1481
+ # Corresponds to the JSON property `width`
1482
+ # @return [Fixnum]
1483
+ attr_accessor :width
1484
+
1485
+ def initialize(**args)
1486
+ update!(**args)
1487
+ end
1488
+
1489
+ # Update properties of this object
1490
+ def update!(**args)
1491
+ @display_mode = args[:display_mode] if args.key?(:display_mode)
1492
+ @height = args[:height] if args.key?(:height)
1493
+ @icon_link = args[:icon_link] if args.key?(:icon_link)
1494
+ @link = args[:link] if args.key?(:link)
1495
+ @preferences = args[:preferences] if args.key?(:preferences)
1496
+ @title = args[:title] if args.key?(:title)
1497
+ @type = args[:type] if args.key?(:type)
1498
+ @width = args[:width] if args.key?(:width)
1499
+ end
1500
+ end
1501
+
1502
+ # The organizer of the event. If the organizer is also an attendee, this is
1503
+ # indicated with a separate entry in attendees with the organizer field set to
1504
+ # True. To change the organizer, use the move operation. Read-only, except when
1505
+ # importing an event.
1506
+ class Organizer
1507
+ include Google::Apis::Core::Hashable
1508
+
1509
+ # The organizer's name, if available.
1510
+ # Corresponds to the JSON property `displayName`
1511
+ # @return [String]
1512
+ attr_accessor :display_name
1513
+
1514
+ # The organizer's email address, if available. It must be a valid email address
1515
+ # as per RFC5322.
1516
+ # Corresponds to the JSON property `email`
1517
+ # @return [String]
1518
+ attr_accessor :email
1519
+
1520
+ # The organizer's Profile ID, if available. It corresponds to the id field in
1521
+ # the People collection of the Google+ API
1522
+ # Corresponds to the JSON property `id`
1523
+ # @return [String]
1524
+ attr_accessor :id
1525
+
1526
+ # Whether the organizer corresponds to the calendar on which this copy of the
1527
+ # event appears. Read-only. The default is False.
1528
+ # Corresponds to the JSON property `self`
1529
+ # @return [Boolean]
1530
+ attr_accessor :self
1531
+ alias_method :self?, :self
1532
+
1533
+ def initialize(**args)
1534
+ update!(**args)
1535
+ end
1536
+
1537
+ # Update properties of this object
1538
+ def update!(**args)
1539
+ @display_name = args[:display_name] if args.key?(:display_name)
1540
+ @email = args[:email] if args.key?(:email)
1541
+ @id = args[:id] if args.key?(:id)
1542
+ @self = args[:self] if args.key?(:self)
1543
+ end
1544
+ end
1545
+
1546
+ # Information about the event's reminders for the authenticated user.
1547
+ class Reminders
1548
+ include Google::Apis::Core::Hashable
1549
+
1550
+ # If the event doesn't use the default reminders, this lists the reminders
1551
+ # specific to the event, or, if not set, indicates that no reminders are set for
1552
+ # this event. The maximum number of override reminders is 5.
1553
+ # Corresponds to the JSON property `overrides`
1554
+ # @return [Array<Google::Apis::CalendarV3::EventReminder>]
1555
+ attr_accessor :overrides
1556
+
1557
+ # Whether the default reminders of the calendar apply to the event.
1558
+ # Corresponds to the JSON property `useDefault`
1559
+ # @return [Boolean]
1560
+ attr_accessor :use_default
1561
+ alias_method :use_default?, :use_default
1562
+
1563
+ def initialize(**args)
1564
+ update!(**args)
1565
+ end
1566
+
1567
+ # Update properties of this object
1568
+ def update!(**args)
1569
+ @overrides = args[:overrides] if args.key?(:overrides)
1570
+ @use_default = args[:use_default] if args.key?(:use_default)
1571
+ end
1572
+ end
1573
+
1574
+ # Source from which the event was created. For example, a web page, an email
1575
+ # message or any document identifiable by an URL with HTTP or HTTPS scheme. Can
1576
+ # only be seen or modified by the creator of the event.
1577
+ class Source
1578
+ include Google::Apis::Core::Hashable
1579
+
1580
+ # Title of the source; for example a title of a web page or an email subject.
1581
+ # Corresponds to the JSON property `title`
1582
+ # @return [String]
1583
+ attr_accessor :title
1584
+
1585
+ # URL of the source pointing to a resource. The URL scheme must be HTTP or HTTPS.
1586
+ # Corresponds to the JSON property `url`
1587
+ # @return [String]
1588
+ attr_accessor :url
1589
+
1590
+ def initialize(**args)
1591
+ update!(**args)
1592
+ end
1593
+
1594
+ # Update properties of this object
1595
+ def update!(**args)
1596
+ @title = args[:title] if args.key?(:title)
1597
+ @url = args[:url] if args.key?(:url)
1598
+ end
1599
+ end
1600
+ end
1601
+
1602
+ #
1603
+ class EventAttachment
1604
+ include Google::Apis::Core::Hashable
1605
+
1606
+ # ID of the attached file. Read-only.
1607
+ # For Google Drive files, this is the ID of the corresponding Files resource
1608
+ # entry in the Drive API.
1609
+ # Corresponds to the JSON property `fileId`
1610
+ # @return [String]
1611
+ attr_accessor :file_id
1612
+
1613
+ # URL link to the attachment.
1614
+ # For adding Google Drive file attachments use the same format as in
1615
+ # alternateLink property of the Files resource in the Drive API.
1616
+ # Required when adding an attachment.
1617
+ # Corresponds to the JSON property `fileUrl`
1618
+ # @return [String]
1619
+ attr_accessor :file_url
1620
+
1621
+ # URL link to the attachment's icon. Read-only.
1622
+ # Corresponds to the JSON property `iconLink`
1623
+ # @return [String]
1624
+ attr_accessor :icon_link
1625
+
1626
+ # Internet media type (MIME type) of the attachment.
1627
+ # Corresponds to the JSON property `mimeType`
1628
+ # @return [String]
1629
+ attr_accessor :mime_type
1630
+
1631
+ # Attachment title.
1632
+ # Corresponds to the JSON property `title`
1633
+ # @return [String]
1634
+ attr_accessor :title
1635
+
1636
+ def initialize(**args)
1637
+ update!(**args)
1638
+ end
1639
+
1640
+ # Update properties of this object
1641
+ def update!(**args)
1642
+ @file_id = args[:file_id] if args.key?(:file_id)
1643
+ @file_url = args[:file_url] if args.key?(:file_url)
1644
+ @icon_link = args[:icon_link] if args.key?(:icon_link)
1645
+ @mime_type = args[:mime_type] if args.key?(:mime_type)
1646
+ @title = args[:title] if args.key?(:title)
1647
+ end
1648
+ end
1649
+
1650
+ #
1651
+ class EventAttendee
1652
+ include Google::Apis::Core::Hashable
1653
+
1654
+ # Number of additional guests. Optional. The default is 0.
1655
+ # Corresponds to the JSON property `additionalGuests`
1656
+ # @return [Fixnum]
1657
+ attr_accessor :additional_guests
1658
+
1659
+ # The attendee's response comment. Optional.
1660
+ # Corresponds to the JSON property `comment`
1661
+ # @return [String]
1662
+ attr_accessor :comment
1663
+
1664
+ # The attendee's name, if available. Optional.
1665
+ # Corresponds to the JSON property `displayName`
1666
+ # @return [String]
1667
+ attr_accessor :display_name
1668
+
1669
+ # The attendee's email address, if available. This field must be present when
1670
+ # adding an attendee. It must be a valid email address as per RFC5322.
1671
+ # Required when adding an attendee.
1672
+ # Corresponds to the JSON property `email`
1673
+ # @return [String]
1674
+ attr_accessor :email
1675
+
1676
+ # The attendee's Profile ID, if available. It corresponds to the id field in the
1677
+ # People collection of the Google+ API
1678
+ # Corresponds to the JSON property `id`
1679
+ # @return [String]
1680
+ attr_accessor :id
1681
+
1682
+ # Whether this is an optional attendee. Optional. The default is False.
1683
+ # Corresponds to the JSON property `optional`
1684
+ # @return [Boolean]
1685
+ attr_accessor :optional
1686
+ alias_method :optional?, :optional
1687
+
1688
+ # Whether the attendee is the organizer of the event. Read-only. The default is
1689
+ # False.
1690
+ # Corresponds to the JSON property `organizer`
1691
+ # @return [Boolean]
1692
+ attr_accessor :organizer
1693
+ alias_method :organizer?, :organizer
1694
+
1695
+ # Whether the attendee is a resource. Can only be set when the attendee is added
1696
+ # to the event for the first time. Subsequent modifications are ignored.
1697
+ # Optional. The default is False.
1698
+ # Corresponds to the JSON property `resource`
1699
+ # @return [Boolean]
1700
+ attr_accessor :resource
1701
+ alias_method :resource?, :resource
1702
+
1703
+ # The attendee's response status. Possible values are:
1704
+ # - "needsAction" - The attendee has not responded to the invitation.
1705
+ # - "declined" - The attendee has declined the invitation.
1706
+ # - "tentative" - The attendee has tentatively accepted the invitation.
1707
+ # - "accepted" - The attendee has accepted the invitation.
1708
+ # Corresponds to the JSON property `responseStatus`
1709
+ # @return [String]
1710
+ attr_accessor :response_status
1711
+
1712
+ # Whether this entry represents the calendar on which this copy of the event
1713
+ # appears. Read-only. The default is False.
1714
+ # Corresponds to the JSON property `self`
1715
+ # @return [Boolean]
1716
+ attr_accessor :self
1717
+ alias_method :self?, :self
1718
+
1719
+ def initialize(**args)
1720
+ update!(**args)
1721
+ end
1722
+
1723
+ # Update properties of this object
1724
+ def update!(**args)
1725
+ @additional_guests = args[:additional_guests] if args.key?(:additional_guests)
1726
+ @comment = args[:comment] if args.key?(:comment)
1727
+ @display_name = args[:display_name] if args.key?(:display_name)
1728
+ @email = args[:email] if args.key?(:email)
1729
+ @id = args[:id] if args.key?(:id)
1730
+ @optional = args[:optional] if args.key?(:optional)
1731
+ @organizer = args[:organizer] if args.key?(:organizer)
1732
+ @resource = args[:resource] if args.key?(:resource)
1733
+ @response_status = args[:response_status] if args.key?(:response_status)
1734
+ @self = args[:self] if args.key?(:self)
1735
+ end
1736
+ end
1737
+
1738
+ #
1739
+ class EventDateTime
1740
+ include Google::Apis::Core::Hashable
1741
+
1742
+ # The date, in the format "yyyy-mm-dd", if this is an all-day event.
1743
+ # Corresponds to the JSON property `date`
1744
+ # @return [Date]
1745
+ attr_accessor :date
1746
+
1747
+ # The time, as a combined date-time value (formatted according to RFC3339). A
1748
+ # time zone offset is required unless a time zone is explicitly specified in
1749
+ # timeZone.
1750
+ # Corresponds to the JSON property `dateTime`
1751
+ # @return [DateTime]
1752
+ attr_accessor :date_time
1753
+
1754
+ # The time zone in which the time is specified. (Formatted as an IANA Time Zone
1755
+ # Database name, e.g. "Europe/Zurich".) For recurring events this field is
1756
+ # required and specifies the time zone in which the recurrence is expanded. For
1757
+ # single events this field is optional and indicates a custom time zone for the
1758
+ # event start/end.
1759
+ # Corresponds to the JSON property `timeZone`
1760
+ # @return [String]
1761
+ attr_accessor :time_zone
1762
+
1763
+ def initialize(**args)
1764
+ update!(**args)
1765
+ end
1766
+
1767
+ # Update properties of this object
1768
+ def update!(**args)
1769
+ @date = args[:date] if args.key?(:date)
1770
+ @date_time = args[:date_time] if args.key?(:date_time)
1771
+ @time_zone = args[:time_zone] if args.key?(:time_zone)
1772
+ end
1773
+ end
1774
+
1775
+ #
1776
+ class EventReminder
1777
+ include Google::Apis::Core::Hashable
1778
+
1779
+ # The method used by this reminder. Possible values are:
1780
+ # - "email" - Reminders are sent via email.
1781
+ # - "popup" - Reminders are sent via a UI popup.
1782
+ # Required when adding a reminder.
1783
+ # Corresponds to the JSON property `method`
1784
+ # @return [String]
1785
+ attr_accessor :reminder_method
1786
+
1787
+ # Number of minutes before the start of the event when the reminder should
1788
+ # trigger. Valid values are between 0 and 40320 (4 weeks in minutes).
1789
+ # Required when adding a reminder.
1790
+ # Corresponds to the JSON property `minutes`
1791
+ # @return [Fixnum]
1792
+ attr_accessor :minutes
1793
+
1794
+ def initialize(**args)
1795
+ update!(**args)
1796
+ end
1797
+
1798
+ # Update properties of this object
1799
+ def update!(**args)
1800
+ @reminder_method = args[:reminder_method] if args.key?(:reminder_method)
1801
+ @minutes = args[:minutes] if args.key?(:minutes)
1802
+ end
1803
+ end
1804
+
1805
+ #
1806
+ class Events
1807
+ include Google::Apis::Core::Hashable
1808
+
1809
+ # The user's access role for this calendar. Read-only. Possible values are:
1810
+ # - "none" - The user has no access.
1811
+ # - "freeBusyReader" - The user has read access to free/busy information.
1812
+ # - "reader" - The user has read access to the calendar. Private events will
1813
+ # appear to users with reader access, but event details will be hidden.
1814
+ # - "writer" - The user has read and write access to the calendar. Private
1815
+ # events will appear to users with writer access, and event details will be
1816
+ # visible.
1817
+ # - "owner" - The user has ownership of the calendar. This role has all of the
1818
+ # permissions of the writer role with the additional ability to see and
1819
+ # manipulate ACLs.
1820
+ # Corresponds to the JSON property `accessRole`
1821
+ # @return [String]
1822
+ attr_accessor :access_role
1823
+
1824
+ # The default reminders on the calendar for the authenticated user. These
1825
+ # reminders apply to all events on this calendar that do not explicitly override
1826
+ # them (i.e. do not have reminders.useDefault set to True).
1827
+ # Corresponds to the JSON property `defaultReminders`
1828
+ # @return [Array<Google::Apis::CalendarV3::EventReminder>]
1829
+ attr_accessor :default_reminders
1830
+
1831
+ # Description of the calendar. Read-only.
1832
+ # Corresponds to the JSON property `description`
1833
+ # @return [String]
1834
+ attr_accessor :description
1835
+
1836
+ # ETag of the collection.
1837
+ # Corresponds to the JSON property `etag`
1838
+ # @return [String]
1839
+ attr_accessor :etag
1840
+
1841
+ # List of events on the calendar.
1842
+ # Corresponds to the JSON property `items`
1843
+ # @return [Array<Google::Apis::CalendarV3::Event>]
1844
+ attr_accessor :items
1845
+
1846
+ # Type of the collection ("calendar#events").
1847
+ # Corresponds to the JSON property `kind`
1848
+ # @return [String]
1849
+ attr_accessor :kind
1850
+
1851
+ # Token used to access the next page of this result. Omitted if no further
1852
+ # results are available, in which case nextSyncToken is provided.
1853
+ # Corresponds to the JSON property `nextPageToken`
1854
+ # @return [String]
1855
+ attr_accessor :next_page_token
1856
+
1857
+ # Token used at a later point in time to retrieve only the entries that have
1858
+ # changed since this result was returned. Omitted if further results are
1859
+ # available, in which case nextPageToken is provided.
1860
+ # Corresponds to the JSON property `nextSyncToken`
1861
+ # @return [String]
1862
+ attr_accessor :next_sync_token
1863
+
1864
+ # Title of the calendar. Read-only.
1865
+ # Corresponds to the JSON property `summary`
1866
+ # @return [String]
1867
+ attr_accessor :summary
1868
+
1869
+ # The time zone of the calendar. Read-only.
1870
+ # Corresponds to the JSON property `timeZone`
1871
+ # @return [String]
1872
+ attr_accessor :time_zone
1873
+
1874
+ # Last modification time of the calendar (as a RFC3339 timestamp). Read-only.
1875
+ # Corresponds to the JSON property `updated`
1876
+ # @return [DateTime]
1877
+ attr_accessor :updated
1878
+
1879
+ def initialize(**args)
1880
+ update!(**args)
1881
+ end
1882
+
1883
+ # Update properties of this object
1884
+ def update!(**args)
1885
+ @access_role = args[:access_role] if args.key?(:access_role)
1886
+ @default_reminders = args[:default_reminders] if args.key?(:default_reminders)
1887
+ @description = args[:description] if args.key?(:description)
1888
+ @etag = args[:etag] if args.key?(:etag)
1889
+ @items = args[:items] if args.key?(:items)
1890
+ @kind = args[:kind] if args.key?(:kind)
1891
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1892
+ @next_sync_token = args[:next_sync_token] if args.key?(:next_sync_token)
1893
+ @summary = args[:summary] if args.key?(:summary)
1894
+ @time_zone = args[:time_zone] if args.key?(:time_zone)
1895
+ @updated = args[:updated] if args.key?(:updated)
1896
+ end
1897
+ end
1898
+
1899
+ #
1900
+ class FreeBusyCalendar
1901
+ include Google::Apis::Core::Hashable
1902
+
1903
+ # List of time ranges during which this calendar should be regarded as busy.
1904
+ # Corresponds to the JSON property `busy`
1905
+ # @return [Array<Google::Apis::CalendarV3::TimePeriod>]
1906
+ attr_accessor :busy
1907
+
1908
+ # Optional error(s) (if computation for the calendar failed).
1909
+ # Corresponds to the JSON property `errors`
1910
+ # @return [Array<Google::Apis::CalendarV3::Error>]
1911
+ attr_accessor :errors
1912
+
1913
+ def initialize(**args)
1914
+ update!(**args)
1915
+ end
1916
+
1917
+ # Update properties of this object
1918
+ def update!(**args)
1919
+ @busy = args[:busy] if args.key?(:busy)
1920
+ @errors = args[:errors] if args.key?(:errors)
1921
+ end
1922
+ end
1923
+
1924
+ #
1925
+ class FreeBusyGroup
1926
+ include Google::Apis::Core::Hashable
1927
+
1928
+ # List of calendars' identifiers within a group.
1929
+ # Corresponds to the JSON property `calendars`
1930
+ # @return [Array<String>]
1931
+ attr_accessor :calendars
1932
+
1933
+ # Optional error(s) (if computation for the group failed).
1934
+ # Corresponds to the JSON property `errors`
1935
+ # @return [Array<Google::Apis::CalendarV3::Error>]
1936
+ attr_accessor :errors
1937
+
1938
+ def initialize(**args)
1939
+ update!(**args)
1940
+ end
1941
+
1942
+ # Update properties of this object
1943
+ def update!(**args)
1944
+ @calendars = args[:calendars] if args.key?(:calendars)
1945
+ @errors = args[:errors] if args.key?(:errors)
1946
+ end
1947
+ end
1948
+
1949
+ #
1950
+ class FreeBusyRequest
1951
+ include Google::Apis::Core::Hashable
1952
+
1953
+ # Maximal number of calendars for which FreeBusy information is to be provided.
1954
+ # Optional. Maximum value is 50.
1955
+ # Corresponds to the JSON property `calendarExpansionMax`
1956
+ # @return [Fixnum]
1957
+ attr_accessor :calendar_expansion_max
1958
+
1959
+ # Maximal number of calendar identifiers to be provided for a single group.
1960
+ # Optional. An error is returned for a group with more members than this value.
1961
+ # Maximum value is 100.
1962
+ # Corresponds to the JSON property `groupExpansionMax`
1963
+ # @return [Fixnum]
1964
+ attr_accessor :group_expansion_max
1965
+
1966
+ # List of calendars and/or groups to query.
1967
+ # Corresponds to the JSON property `items`
1968
+ # @return [Array<Google::Apis::CalendarV3::FreeBusyRequestItem>]
1969
+ attr_accessor :items
1970
+
1971
+ # The end of the interval for the query formatted as per RFC3339.
1972
+ # Corresponds to the JSON property `timeMax`
1973
+ # @return [DateTime]
1974
+ attr_accessor :time_max
1975
+
1976
+ # The start of the interval for the query formatted as per RFC3339.
1977
+ # Corresponds to the JSON property `timeMin`
1978
+ # @return [DateTime]
1979
+ attr_accessor :time_min
1980
+
1981
+ # Time zone used in the response. Optional. The default is UTC.
1982
+ # Corresponds to the JSON property `timeZone`
1983
+ # @return [String]
1984
+ attr_accessor :time_zone
1985
+
1986
+ def initialize(**args)
1987
+ update!(**args)
1988
+ end
1989
+
1990
+ # Update properties of this object
1991
+ def update!(**args)
1992
+ @calendar_expansion_max = args[:calendar_expansion_max] if args.key?(:calendar_expansion_max)
1993
+ @group_expansion_max = args[:group_expansion_max] if args.key?(:group_expansion_max)
1994
+ @items = args[:items] if args.key?(:items)
1995
+ @time_max = args[:time_max] if args.key?(:time_max)
1996
+ @time_min = args[:time_min] if args.key?(:time_min)
1997
+ @time_zone = args[:time_zone] if args.key?(:time_zone)
1998
+ end
1999
+ end
2000
+
2001
+ #
2002
+ class FreeBusyRequestItem
2003
+ include Google::Apis::Core::Hashable
2004
+
2005
+ # The identifier of a calendar or a group.
2006
+ # Corresponds to the JSON property `id`
2007
+ # @return [String]
2008
+ attr_accessor :id
2009
+
2010
+ def initialize(**args)
2011
+ update!(**args)
2012
+ end
2013
+
2014
+ # Update properties of this object
2015
+ def update!(**args)
2016
+ @id = args[:id] if args.key?(:id)
2017
+ end
2018
+ end
2019
+
2020
+ #
2021
+ class FreeBusyResponse
2022
+ include Google::Apis::Core::Hashable
2023
+
2024
+ # List of free/busy information for calendars.
2025
+ # Corresponds to the JSON property `calendars`
2026
+ # @return [Hash<String,Google::Apis::CalendarV3::FreeBusyCalendar>]
2027
+ attr_accessor :calendars
2028
+
2029
+ # Expansion of groups.
2030
+ # Corresponds to the JSON property `groups`
2031
+ # @return [Hash<String,Google::Apis::CalendarV3::FreeBusyGroup>]
2032
+ attr_accessor :groups
2033
+
2034
+ # Type of the resource ("calendar#freeBusy").
2035
+ # Corresponds to the JSON property `kind`
2036
+ # @return [String]
2037
+ attr_accessor :kind
2038
+
2039
+ # The end of the interval.
2040
+ # Corresponds to the JSON property `timeMax`
2041
+ # @return [DateTime]
2042
+ attr_accessor :time_max
2043
+
2044
+ # The start of the interval.
2045
+ # Corresponds to the JSON property `timeMin`
2046
+ # @return [DateTime]
2047
+ attr_accessor :time_min
2048
+
2049
+ def initialize(**args)
2050
+ update!(**args)
2051
+ end
2052
+
2053
+ # Update properties of this object
2054
+ def update!(**args)
2055
+ @calendars = args[:calendars] if args.key?(:calendars)
2056
+ @groups = args[:groups] if args.key?(:groups)
2057
+ @kind = args[:kind] if args.key?(:kind)
2058
+ @time_max = args[:time_max] if args.key?(:time_max)
2059
+ @time_min = args[:time_min] if args.key?(:time_min)
2060
+ end
2061
+ end
2062
+
2063
+ #
2064
+ class Setting
2065
+ include Google::Apis::Core::Hashable
2066
+
2067
+ # ETag of the resource.
2068
+ # Corresponds to the JSON property `etag`
2069
+ # @return [String]
2070
+ attr_accessor :etag
2071
+
2072
+ # The id of the user setting.
2073
+ # Corresponds to the JSON property `id`
2074
+ # @return [String]
2075
+ attr_accessor :id
2076
+
2077
+ # Type of the resource ("calendar#setting").
2078
+ # Corresponds to the JSON property `kind`
2079
+ # @return [String]
2080
+ attr_accessor :kind
2081
+
2082
+ # Value of the user setting. The format of the value depends on the ID of the
2083
+ # setting. It must always be a UTF-8 string of length up to 1024 characters.
2084
+ # Corresponds to the JSON property `value`
2085
+ # @return [String]
2086
+ attr_accessor :value
2087
+
2088
+ def initialize(**args)
2089
+ update!(**args)
2090
+ end
2091
+
2092
+ # Update properties of this object
2093
+ def update!(**args)
2094
+ @etag = args[:etag] if args.key?(:etag)
2095
+ @id = args[:id] if args.key?(:id)
2096
+ @kind = args[:kind] if args.key?(:kind)
2097
+ @value = args[:value] if args.key?(:value)
2098
+ end
2099
+ end
2100
+
2101
+ #
2102
+ class Settings
2103
+ include Google::Apis::Core::Hashable
2104
+
2105
+ # Etag of the collection.
2106
+ # Corresponds to the JSON property `etag`
2107
+ # @return [String]
2108
+ attr_accessor :etag
2109
+
2110
+ # List of user settings.
2111
+ # Corresponds to the JSON property `items`
2112
+ # @return [Array<Google::Apis::CalendarV3::Setting>]
2113
+ attr_accessor :items
2114
+
2115
+ # Type of the collection ("calendar#settings").
2116
+ # Corresponds to the JSON property `kind`
2117
+ # @return [String]
2118
+ attr_accessor :kind
2119
+
2120
+ # Token used to access the next page of this result. Omitted if no further
2121
+ # results are available, in which case nextSyncToken is provided.
2122
+ # Corresponds to the JSON property `nextPageToken`
2123
+ # @return [String]
2124
+ attr_accessor :next_page_token
2125
+
2126
+ # Token used at a later point in time to retrieve only the entries that have
2127
+ # changed since this result was returned. Omitted if further results are
2128
+ # available, in which case nextPageToken is provided.
2129
+ # Corresponds to the JSON property `nextSyncToken`
2130
+ # @return [String]
2131
+ attr_accessor :next_sync_token
2132
+
2133
+ def initialize(**args)
2134
+ update!(**args)
2135
+ end
2136
+
2137
+ # Update properties of this object
2138
+ def update!(**args)
2139
+ @etag = args[:etag] if args.key?(:etag)
2140
+ @items = args[:items] if args.key?(:items)
2141
+ @kind = args[:kind] if args.key?(:kind)
2142
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2143
+ @next_sync_token = args[:next_sync_token] if args.key?(:next_sync_token)
2144
+ end
2145
+ end
2146
+
2147
+ #
2148
+ class TimePeriod
2149
+ include Google::Apis::Core::Hashable
2150
+
2151
+ # The (exclusive) end of the time period.
2152
+ # Corresponds to the JSON property `end`
2153
+ # @return [DateTime]
2154
+ attr_accessor :end
2155
+
2156
+ # The (inclusive) start of the time period.
2157
+ # Corresponds to the JSON property `start`
2158
+ # @return [DateTime]
2159
+ attr_accessor :start
2160
+
2161
+ def initialize(**args)
2162
+ update!(**args)
2163
+ end
2164
+
2165
+ # Update properties of this object
2166
+ def update!(**args)
2167
+ @end = args[:end] if args.key?(:end)
2168
+ @start = args[:start] if args.key?(:start)
2169
+ end
2170
+ end
2171
+ end
2172
+ end
2173
+ end