lib/ittybit/files/types/files_delete_response.rb
# frozen_string_literal: true require_relative "files_delete_response_data" require_relative "../../types/meta" require_relative "../../types/links" require "ostruct" require "json" module Ittybit class Files class FilesDeleteResponse # @return [Ittybit::Files::FilesDeleteResponseData] Contains a confirmation message attr_reader :data # @return [Ittybit::META] attr_reader :meta # @return [Ittybit::Links] attr_reader :links # @return [OpenStruct] Additional properties unmapped to the current class definition attr_reader :additional_properties # @return [Object] attr_reader :_field_set protected :_field_set OMIT = Object.new # @param data [Ittybit::Files::FilesDeleteResponseData] Contains a confirmation message # @param meta [Ittybit::META] # @param links [Ittybit::Links] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Ittybit::Files::FilesDeleteResponse] def initialize(data: OMIT, meta: OMIT, links: OMIT, additional_properties: nil) @data = data if data != OMIT @meta = meta if meta != OMIT @links = links if links != OMIT @additional_properties = additional_properties @_field_set = { "data": data, "meta": meta, "links": links }.reject do |_k, v| v == OMIT end end # Deserialize a JSON object to an instance of FilesDeleteResponse # # @param json_object [String] # @return [Ittybit::Files::FilesDeleteResponse] def self.from_json(json_object:) struct = JSON.parse(json_object, object_class: OpenStruct) parsed_json = JSON.parse(json_object) if parsed_json["data"].nil? data = nil else data = parsed_json["data"].to_json data = Ittybit::Files::FilesDeleteResponseData.from_json(json_object: data) end meta = parsed_json["meta"] if parsed_json["links"].nil? links = nil else links = parsed_json["links"].to_json links = Ittybit::Links.from_json(json_object: links) end new( data: data, meta: meta, links: links, additional_properties: struct ) end # Serialize an instance of FilesDeleteResponse to a JSON object # # @return [String] def to_json(*_args) @_field_set&.to_json end # Leveraged for Union-type generation, validate_raw attempts to parse the given # hash and check each fields type against the current object's property # definitions. # # @param obj [Object] # @return [Void] def self.validate_raw(obj:) obj.data.nil? || Ittybit::Files::FilesDeleteResponseData.validate_raw(obj: obj.data) obj.meta&.is_a?(Object) != false || raise("Passed value for field obj.meta is not the expected type, validation failed.") obj.links.nil? || Ittybit::Links.validate_raw(obj: obj.links) end end end end