=begin #Svix API #No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) The version of the OpenAPI document: 1.1.1 Generated by: https://openapi-generator.tech Generator version: 7.9.0 =end require 'date' require 'time' module Svix class EnvironmentSettingsOut attr_accessor :color_palette_dark attr_accessor :color_palette_light attr_accessor :custom_color attr_accessor :custom_font_family attr_accessor :custom_font_family_url attr_accessor :custom_logo_url attr_accessor :custom_strings_override attr_accessor :custom_theme_override attr_accessor :display_name attr_accessor :enable_channels attr_accessor :enable_integration_management attr_accessor :enable_message_stream attr_accessor :enable_message_tags attr_accessor :enable_transformations attr_accessor :show_use_svix_play attr_accessor :wipe_successful_payload # Attribute mapping from ruby-style variable name to JSON key. def self.attribute_map { :'color_palette_dark' => :'colorPaletteDark', :'color_palette_light' => :'colorPaletteLight', :'custom_color' => :'customColor', :'custom_font_family' => :'customFontFamily', :'custom_font_family_url' => :'customFontFamilyUrl', :'custom_logo_url' => :'customLogoUrl', :'custom_strings_override' => :'customStringsOverride', :'custom_theme_override' => :'customThemeOverride', :'display_name' => :'displayName', :'enable_channels' => :'enableChannels', :'enable_integration_management' => :'enableIntegrationManagement', :'enable_message_stream' => :'enableMessageStream', :'enable_message_tags' => :'enableMessageTags', :'enable_transformations' => :'enableTransformations', :'show_use_svix_play' => :'showUseSvixPlay', :'wipe_successful_payload' => :'wipeSuccessfulPayload' } end # Returns all the JSON keys this model knows about def self.acceptable_attributes attribute_map.values end # Attribute type mapping. def self.openapi_types { :'color_palette_dark' => :'CustomColorPalette', :'color_palette_light' => :'CustomColorPalette', :'custom_color' => :'String', :'custom_font_family' => :'String', :'custom_font_family_url' => :'String', :'custom_logo_url' => :'String', :'custom_strings_override' => :'CustomStringsOverride', :'custom_theme_override' => :'CustomThemeOverride', :'display_name' => :'String', :'enable_channels' => :'Boolean', :'enable_integration_management' => :'Boolean', :'enable_message_stream' => :'Boolean', :'enable_message_tags' => :'Boolean', :'enable_transformations' => :'Boolean', :'show_use_svix_play' => :'Boolean', :'wipe_successful_payload' => :'Boolean' } end # List of attributes with nullable: true def self.openapi_nullable Set.new([ :'custom_color', :'custom_font_family', :'custom_font_family_url', :'custom_logo_url', :'display_name', ]) end # Initializes the object # @param [Hash] attributes Model attributes in the form of hash def initialize(attributes = {}) if (!attributes.is_a?(Hash)) fail ArgumentError, "The input argument (attributes) must be a hash in `Svix::EnvironmentSettingsOut` initialize method" end # check to see if the attribute exists and convert string to symbol for hash key attributes = attributes.each_with_object({}) { |(k, v), h| if (!self.class.attribute_map.key?(k.to_sym)) fail ArgumentError, "`#{k}` is not a valid attribute in `Svix::EnvironmentSettingsOut`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect end h[k.to_sym] = v } if attributes.key?(:'color_palette_dark') self.color_palette_dark = attributes[:'color_palette_dark'] end if attributes.key?(:'color_palette_light') self.color_palette_light = attributes[:'color_palette_light'] end if attributes.key?(:'custom_color') self.custom_color = attributes[:'custom_color'] end if attributes.key?(:'custom_font_family') self.custom_font_family = attributes[:'custom_font_family'] end if attributes.key?(:'custom_font_family_url') self.custom_font_family_url = attributes[:'custom_font_family_url'] end if attributes.key?(:'custom_logo_url') self.custom_logo_url = attributes[:'custom_logo_url'] end if attributes.key?(:'custom_strings_override') self.custom_strings_override = attributes[:'custom_strings_override'] end if attributes.key?(:'custom_theme_override') self.custom_theme_override = attributes[:'custom_theme_override'] end if attributes.key?(:'display_name') self.display_name = attributes[:'display_name'] end if attributes.key?(:'enable_channels') self.enable_channels = attributes[:'enable_channels'] else self.enable_channels = false end if attributes.key?(:'enable_integration_management') self.enable_integration_management = attributes[:'enable_integration_management'] else self.enable_integration_management = false end if attributes.key?(:'enable_message_stream') self.enable_message_stream = attributes[:'enable_message_stream'] else self.enable_message_stream = false end if attributes.key?(:'enable_message_tags') self.enable_message_tags = attributes[:'enable_message_tags'] else self.enable_message_tags = false end if attributes.key?(:'enable_transformations') self.enable_transformations = attributes[:'enable_transformations'] else self.enable_transformations = false end if attributes.key?(:'show_use_svix_play') self.show_use_svix_play = attributes[:'show_use_svix_play'] else self.show_use_svix_play = true end if attributes.key?(:'wipe_successful_payload') self.wipe_successful_payload = attributes[:'wipe_successful_payload'] else self.wipe_successful_payload = false end end # Show invalid properties with the reasons. Usually used together with valid? # @return Array for valid properties with the reasons def list_invalid_properties warn '[DEPRECATED] the `list_invalid_properties` method is obsolete' invalid_properties = Array.new pattern = Regexp.new(/^[a-zA-Z0-9\-_ ]+$/) if !@custom_font_family.nil? && @custom_font_family !~ pattern invalid_properties.push("invalid value for \"custom_font_family\", must conform to the pattern #{pattern}.") end if !@custom_font_family_url.nil? && @custom_font_family_url.to_s.length > 65536 invalid_properties.push('invalid value for "custom_font_family_url", the character length must be smaller than or equal to 65536.') end if !@custom_font_family_url.nil? && @custom_font_family_url.to_s.length < 1 invalid_properties.push('invalid value for "custom_font_family_url", the character length must be great than or equal to 1.') end if !@custom_logo_url.nil? && @custom_logo_url.to_s.length > 65536 invalid_properties.push('invalid value for "custom_logo_url", the character length must be smaller than or equal to 65536.') end if !@custom_logo_url.nil? && @custom_logo_url.to_s.length < 1 invalid_properties.push('invalid value for "custom_logo_url", the character length must be great than or equal to 1.') end invalid_properties end # Check to see if the all the properties in the model are valid # @return true if the model is valid def valid? warn '[DEPRECATED] the `valid?` method is obsolete' return false if !@custom_font_family.nil? && @custom_font_family !~ Regexp.new(/^[a-zA-Z0-9\-_ ]+$/) return false if !@custom_font_family_url.nil? && @custom_font_family_url.to_s.length > 65536 return false if !@custom_font_family_url.nil? && @custom_font_family_url.to_s.length < 1 return false if !@custom_logo_url.nil? && @custom_logo_url.to_s.length > 65536 return false if !@custom_logo_url.nil? && @custom_logo_url.to_s.length < 1 true end # Custom attribute writer method with validation # @param [Object] custom_font_family Value to be assigned def custom_font_family=(custom_font_family) pattern = Regexp.new(/^[a-zA-Z0-9\-_ ]+$/) if !custom_font_family.nil? && custom_font_family !~ pattern fail ArgumentError, "invalid value for \"custom_font_family\", must conform to the pattern #{pattern}." end @custom_font_family = custom_font_family end # Custom attribute writer method with validation # @param [Object] custom_font_family_url Value to be assigned def custom_font_family_url=(custom_font_family_url) if !custom_font_family_url.nil? && custom_font_family_url.to_s.length > 65536 fail ArgumentError, 'invalid value for "custom_font_family_url", the character length must be smaller than or equal to 65536.' end if !custom_font_family_url.nil? && custom_font_family_url.to_s.length < 1 fail ArgumentError, 'invalid value for "custom_font_family_url", the character length must be great than or equal to 1.' end @custom_font_family_url = custom_font_family_url end # Custom attribute writer method with validation # @param [Object] custom_logo_url Value to be assigned def custom_logo_url=(custom_logo_url) if !custom_logo_url.nil? && custom_logo_url.to_s.length > 65536 fail ArgumentError, 'invalid value for "custom_logo_url", the character length must be smaller than or equal to 65536.' end if !custom_logo_url.nil? && custom_logo_url.to_s.length < 1 fail ArgumentError, 'invalid value for "custom_logo_url", the character length must be great than or equal to 1.' end @custom_logo_url = custom_logo_url end # Checks equality by comparing each attribute. # @param [Object] Object to be compared def ==(o) return true if self.equal?(o) self.class == o.class && color_palette_dark == o.color_palette_dark && color_palette_light == o.color_palette_light && custom_color == o.custom_color && custom_font_family == o.custom_font_family && custom_font_family_url == o.custom_font_family_url && custom_logo_url == o.custom_logo_url && custom_strings_override == o.custom_strings_override && custom_theme_override == o.custom_theme_override && display_name == o.display_name && enable_channels == o.enable_channels && enable_integration_management == o.enable_integration_management && enable_message_stream == o.enable_message_stream && enable_message_tags == o.enable_message_tags && enable_transformations == o.enable_transformations && show_use_svix_play == o.show_use_svix_play && wipe_successful_payload == o.wipe_successful_payload end # @see the `==` method # @param [Object] Object to be compared def eql?(o) self == o end # Calculates hash code according to all attributes. # @return [Integer] Hash code def hash [color_palette_dark, color_palette_light, custom_color, custom_font_family, custom_font_family_url, custom_logo_url, custom_strings_override, custom_theme_override, display_name, enable_channels, enable_integration_management, enable_message_stream, enable_message_tags, enable_transformations, show_use_svix_play, wipe_successful_payload].hash end # Builds the object from hash # @param [Hash] attributes Model attributes in the form of hash # @return [Object] Returns the model itself def self.build_from_hash(attributes) return nil unless attributes.is_a?(Hash) attributes = attributes.transform_keys(&:to_sym) transformed_hash = {} openapi_types.each_pair do |key, type| if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil? transformed_hash["#{key}"] = nil elsif type =~ /\AArray<(.*)>/i # check to ensure the input is an array given that the attribute # is documented as an array but the input is not if attributes[attribute_map[key]].is_a?(Array) transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) } end elsif !attributes[attribute_map[key]].nil? transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]]) end end new(transformed_hash) end # Deserializes the data based on type # @param string type Data type # @param string value Value to be deserialized # @return [Object] Deserialized data def self._deserialize(type, value) case type.to_sym when :Time Time.parse(value) when :Date Date.parse(value) when :String value.to_s when :Integer value.to_i when :Float value.to_f when :Boolean if value.to_s =~ /\A(true|t|yes|y|1)\z/i true else false end when :Object # generic object (usually a Hash), return directly value when /\AArray<(?.+)>\z/ inner_type = Regexp.last_match[:inner_type] value.map { |v| _deserialize(inner_type, v) } when /\AHash<(?.+?), (?.+)>\z/ k_type = Regexp.last_match[:k_type] v_type = Regexp.last_match[:v_type] {}.tap do |hash| value.each do |k, v| hash[_deserialize(k_type, k)] = _deserialize(v_type, v) end end else # model # models (e.g. Pet) or oneOf klass = Svix.const_get(type) klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value) end end # Returns the string representation of the object # @return [String] String presentation of the object def to_s to_hash.to_s end # to_body is an alias to to_hash (backward compatibility) # @return [Hash] Returns the object in the form of hash def to_body to_hash end # Returns the object in the form of hash # @return [Hash] Returns the object in the form of hash def to_hash hash = {} self.class.attribute_map.each_pair do |attr, param| value = self.send(attr) if value.nil? is_nullable = self.class.openapi_nullable.include?(attr) next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}")) end hash[param] = _to_hash(value) end hash end # Outputs non-array value in the form of hash # For object, use to_hash. Otherwise, just return the value # @param [Object] value Any valid value # @return [Hash] Returns the value in the form of hash def _to_hash(value) if value.is_a?(Array) value.compact.map { |v| _to_hash(v) } elsif value.is_a?(Hash) {}.tap do |hash| value.each { |k, v| hash[k] = _to_hash(v) } end elsif value.respond_to? :to_hash value.to_hash else value end end end end