lib/ittybit/types/task_results.rb
# frozen_string_literal: true require "ostruct" require "json" module Ittybit class TaskResults # @return [Array<Hash{String => Object}>] attr_reader :passed # @return [Array<Hash{String => Object}>] attr_reader :failed # @return [Boolean] attr_reader :continue # @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 passed [Array<Hash{String => Object}>] # @param failed [Array<Hash{String => Object}>] # @param continue [Boolean] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Ittybit::TaskResults] def initialize(passed: OMIT, failed: OMIT, continue: OMIT, additional_properties: nil) @passed = passed if passed != OMIT @failed = failed if failed != OMIT @continue = continue if continue != OMIT @additional_properties = additional_properties @_field_set = { "passed": passed, "failed": failed, "continue": continue }.reject do |_k, v| v == OMIT end end # Deserialize a JSON object to an instance of TaskResults # # @param json_object [String] # @return [Ittybit::TaskResults] def self.from_json(json_object:) struct = JSON.parse(json_object, object_class: OpenStruct) parsed_json = JSON.parse(json_object) passed = parsed_json["passed"] failed = parsed_json["failed"] continue = parsed_json["continue"] new( passed: passed, failed: failed, continue: continue, additional_properties: struct ) end # Serialize an instance of TaskResults 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.passed&.is_a?(Array) != false || raise("Passed value for field obj.passed is not the expected type, validation failed.") obj.failed&.is_a?(Array) != false || raise("Passed value for field obj.failed is not the expected type, validation failed.") obj.continue&.is_a?(Boolean) != false || raise("Passed value for field obj.continue is not the expected type, validation failed.") end end end