<% if cls.type == 'object' || (cls.type == 'hash' && cls.properties.length > 0) -%> # <%= block_comment(cls.description, 0, 1) %> class <%= cls.generated_class_name %><% if cls.base_ref %> < <%= cls.base_ref.generated_type %><% end %> include Google::Apis::Core::Hashable <% for property in cls.properties.values -%> # <%= block_comment(property.description, 2, 1) %> # Corresponds to the JSON property `<%= property.name %>` <% if property.format == 'byte' -%> # NOTE: Values are automatically base64 encoded/decoded in the client library. <% end -%> # @return [<%= property.generated_type %>] attr_accessor :<%= property.generated_name %> <% if property.type == 'boolean' -%> alias_method :<%= property.generated_name %>?, :<%= property.generated_name %> <% end -%> <% end -%> def initialize(**args) <% if cls.discriminant -%> @<%= cls.properties[cls.discriminant].generated_name %> = '<%= cls.discriminant_value %>' <% end -%> update!(**args) end # Update properties of this object def update!(**args) <% for property in cls.properties.values -%> @<%= property.generated_name %> = args[:<%= property.generated_name %>] if args.key?(:<%= property.generated_name %>) <% end -%> end <% for child_class in cls.properties.values -%> <% if child_class._ref.nil? -%> <%= indent(include('class', :cls => child_class, :api => api), 2) -%> <% end -%> <% end -%> end <% elsif cls.items && cls.items._ref.nil? -%> <%= include('class', :cls => cls.items, :api => api) -%> <% elsif cls.additional_properties && cls.additional_properties._ref.nil? -%> <%= include('class', :cls => cls.additional_properties, :api => api) -%> <% end -%>