21316: Merge commit '1416f698b72de4b09350d9c2fb25c1405c3247bc' into 21316-left-panel...
[arvados.git] / sdk / ruby-google-api-client / lib / google / api_client / service / resource.rb
1 # Copyright 2013 Google Inc.
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 module Google
16   class APIClient
17     class Service
18       ##
19       # Handles an API resource.
20       # Simple class that contains API methods and/or child resources.
21       class Resource
22         include Google::APIClient::Service::StubGenerator
23
24         ##
25         # Build a resource.
26         # This class should not be directly instantiated in user code; resources
27         # are instantiated by the stub generation mechanism on Service creation.
28         #
29         # @param [Google::APIClient::Service] service
30         #   The Service instance this resource belongs to.
31         # @param [Google::APIClient::API, Google::APIClient::Resource] root
32         #   The node corresponding to this resource.
33         def initialize(service, root)
34           @service = service
35           generate_call_stubs(service, root)
36         end
37       end
38     end
39   end
40 end