From ba0e23f566b3b3b41c6b2d333b0971496a4e0953 Mon Sep 17 00:00:00 2001 From: Miles Georgi Date: Thu, 11 Apr 2024 16:24:12 -0500 Subject: [PATCH] 1712870652 --- .../remote_imports/import_command_spec.rb | 31 +++++++++++++++++-- .../is_success.yml | 6 ++-- src/foobara/remote_imports/import_base.rb | 6 ++++ 3 files changed, 37 insertions(+), 6 deletions(-) rename spec/vcr_cassettes/Foobara_RemoteImports_ImportCommand/{importing_from_a_url => when_importing_from_a_url}/is_success.yml (99%) diff --git a/spec/foobara/remote_imports/import_command_spec.rb b/spec/foobara/remote_imports/import_command_spec.rb index 882d4ae..1932844 100644 --- a/spec/foobara/remote_imports/import_command_spec.rb +++ b/spec/foobara/remote_imports/import_command_spec.rb @@ -59,21 +59,46 @@ end end - context "importing from a url" do + context "when importing from a url" do let(:inputs) do { manifest_url:, - to_import:, - cache: false + to_import: } end let(:manifest_url) do "http://localhost:9292/manifest" end + before do + command.cast_and_validate_inputs + FileUtils.rm_f(command.cache_file_path) + end + # To rerecord this, change from :none to :once and run playground-be with rackup it "is success", vcr: { record: :none } do expect(outcome).to be_success + # make sure loading from cache works fine as well + expect(described_class.run!(inputs.merge(cache: true))).to be_an(Array) + end + end + + context "with both manifest data and url" do + let(:inputs) do + { + manifest_url: "http://localhost:9292/manifest", + raw_manifest:, + to_import: + } + end + + it "is not success" do + expect(outcome).to_not be_success + expect(errors.size).to eq(1) + + error = errors.first + + expect(error).to be_a(Foobara::RemoteImports::ImportBase::BadManifestInputsError) end end end diff --git a/spec/vcr_cassettes/Foobara_RemoteImports_ImportCommand/importing_from_a_url/is_success.yml b/spec/vcr_cassettes/Foobara_RemoteImports_ImportCommand/when_importing_from_a_url/is_success.yml similarity index 99% rename from spec/vcr_cassettes/Foobara_RemoteImports_ImportCommand/importing_from_a_url/is_success.yml rename to spec/vcr_cassettes/Foobara_RemoteImports_ImportCommand/when_importing_from_a_url/is_success.yml index a662366..f6cb9f6 100644 --- a/spec/vcr_cassettes/Foobara_RemoteImports_ImportCommand/importing_from_a_url/is_success.yml +++ b/spec/vcr_cassettes/Foobara_RemoteImports_ImportCommand/when_importing_from_a_url/is_success.yml @@ -33,7 +33,7 @@ http_interactions: Server: - WEBrick/1.8.1 (Ruby/3.2.2/2023-03-30) Date: - - Thu, 11 Apr 2024 21:13:27 GMT + - Thu, 11 Apr 2024 21:23:48 GMT Connection: - Keep-Alive body: @@ -60,6 +60,6 @@ http_interactions: entity type","base_type":"model","supported_casters":["duck::SupportedCasters::AllowNil"],"supported_validators":["duck::SupportedValidators::OneOf"],"processors":{"caster_classes":["entity::Casters::Hash"],"transformer_classes":["model::Transformers::Mutable"],"validator_classes":["entity::Validators::AttributesDeclaration"]}},"model":{"scoped_path":["model"],"scoped_name":"model","scoped_short_name":"model","scoped_prefix":null,"scoped_full_path":["model"],"scoped_full_name":"model","scoped_category":"type","reference":"model","domain":"global_organization::global_domain","organization":"global_organization","parent":["domain","global_organization::global_domain"],"declaration_data":{"type":"model"},"possible_errors":{"data.cannot_cast":{"category":"data","symbol":"cannot_cast","key":"data.cannot_cast","error":"Foobara::Value::Processor::Casting::CannotCastError","processor_class":"Foobara::Value::Processor::Casting","processor_manifest_data":{"casting":{"cast_to":{"type":"model"}}}}},"name":"model","types_depended_on":["array","atomic_duck","attributes","duck","symbol"],"description":"Built-in model type","base_type":"atomic_duck","supported_casters":["duck::SupportedCasters::AllowNil"],"supported_validators":["duck::SupportedValidators::OneOf"],"processors":{"caster_classes":["model::Casters::Hash"],"transformer_classes":["model::Transformers::Mutable"],"validator_classes":["model::Validators::AttributesDeclaration"]}},"NestedModels::InnerEntity":{"scoped_path":["InnerEntity"],"scoped_name":"InnerEntity","scoped_short_name":"InnerEntity","scoped_prefix":null,"scoped_full_path":["NestedModels","InnerEntity"],"scoped_full_name":"NestedModels::InnerEntity","scoped_category":"type","reference":"NestedModels::InnerEntity","domain":"NestedModels","organization":"global_organization","parent":["domain","NestedModels"],"declaration_data":{"type":"entity","name":"InnerEntity","model_class":"NestedModels::Types::InnerEntity","model_base_class":"Foobara::Entity","attributes_declaration":{"type":"attributes","element_type_declarations":{"id":{"type":"integer"},"attr1":{"type":"attributes","element_type_declarations":{"inner_model":{"type":"NestedModels::InnerModel"}},"required":["inner_model"]},"some_array":{"type":"array","element_type_declaration":{"type":"NestedModels::InnerModel"}},"inner_model":{"type":"NestedModels::InnerModel"}},"required":["attr1","some_array","inner_model"]},"primary_key":"id","model_module":"NestedModels::Types"},"possible_errors":{"data.cannot_cast":{"category":"data","symbol":"cannot_cast","key":"data.cannot_cast","error":"Foobara::Value::Processor::Casting::CannotCastError","processor_class":"Foobara::Value::Processor::Casting","processor_manifest_data":{"casting":{"cast_to":{"type":"entity","name":"InnerEntity","model_class":"NestedModels::Types::InnerEntity","model_base_class":"Foobara::Entity","attributes_declaration":{"type":"attributes","element_type_declarations":{"id":{"type":"integer"},"attr1":{"type":"attributes","element_type_declarations":{"inner_model":{"type":"NestedModels::InnerModel"}},"required":["inner_model"]},"some_array":{"type":"array","element_type_declaration":{"type":"NestedModels::InnerModel"}},"inner_model":{"type":"NestedModels::InnerModel"}},"required":["attr1","some_array","inner_model"]},"primary_key":"id","model_module":"NestedModels::Types"}}}}},"name":"InnerEntity","target_classes":["NestedModels::Types::InnerEntity"],"types_depended_on":["NestedModels::InnerModel","array","attributes","duck","entity","integer","symbol"],"description":null,"base_type":"entity","supported_casters":["duck::SupportedCasters::AllowNil"],"supported_validators":["duck::SupportedValidators::OneOf"],"processors":{"caster_classes":["Foobara::TypeDeclarations::Handlers::ExtendEntityTypeDeclaration::ToTypeTransformer::EntityPrimaryKeyCaster","entity::Casters::Hash"],"transformer_classes":["model::Transformers::Mutable"],"validator_classes":["entity::Validators::AttributesDeclaration"]},"attributes_type":{"type":"attributes","element_type_declarations":{"id":{"type":"integer"},"attr1":{"type":"attributes","element_type_declarations":{"inner_model":{"type":"NestedModels::InnerModel"}},"required":["inner_model"]},"some_array":{"type":"array","element_type_declaration":{"type":"NestedModels::InnerModel"}},"inner_model":{"type":"NestedModels::InnerModel"}},"required":["attr1","some_array","inner_model"]},"organization_name":"global_organization","domain_name":"NestedModels","model_name":"InnerEntity","model_base_class":"Foobara::Entity","model_class":"NestedModels::Types::InnerEntity","entity_name":"InnerEntity","primary_key_attribute":"id","primary_key_type":{"type":"integer"}},"NestedModels2::InnerEntity":{"scoped_path":["InnerEntity"],"scoped_name":"InnerEntity","scoped_short_name":"InnerEntity","scoped_prefix":null,"scoped_full_path":["NestedModels2","InnerEntity"],"scoped_full_name":"NestedModels2::InnerEntity","scoped_category":"type","reference":"NestedModels2::InnerEntity","domain":"NestedModels2","organization":"global_organization","parent":["domain","NestedModels2"],"declaration_data":{"type":"entity","name":"InnerEntity","model_class":"NestedModels2::Types::InnerEntity","model_base_class":"Foobara::Entity","attributes_declaration":{"type":"attributes","element_type_declarations":{"id":{"type":"integer"},"attr1":{"type":"attributes","element_type_declarations":{"inner_model":{"type":"NestedModels2::InnerModel"}},"required":["inner_model"]},"some_array":{"type":"array","element_type_declaration":{"type":"NestedModels2::InnerModel"}},"inner_model":{"type":"NestedModels2::InnerModel"}},"required":["attr1","some_array","inner_model"]},"primary_key":"id","model_module":"NestedModels2::Types"},"possible_errors":{"data.cannot_cast":{"category":"data","symbol":"cannot_cast","key":"data.cannot_cast","error":"Foobara::Value::Processor::Casting::CannotCastError","processor_class":"Foobara::Value::Processor::Casting","processor_manifest_data":{"casting":{"cast_to":{"type":"entity","name":"InnerEntity","model_class":"NestedModels2::Types::InnerEntity","model_base_class":"Foobara::Entity","attributes_declaration":{"type":"attributes","element_type_declarations":{"id":{"type":"integer"},"attr1":{"type":"attributes","element_type_declarations":{"inner_model":{"type":"NestedModels2::InnerModel"}},"required":["inner_model"]},"some_array":{"type":"array","element_type_declaration":{"type":"NestedModels2::InnerModel"}},"inner_model":{"type":"NestedModels2::InnerModel"}},"required":["attr1","some_array","inner_model"]},"primary_key":"id","model_module":"NestedModels2::Types"}}}}},"name":"InnerEntity","target_classes":["NestedModels2::Types::InnerEntity"],"types_depended_on":["NestedModels2::InnerModel","array","attributes","duck","entity","integer","symbol"],"description":null,"base_type":"entity","supported_casters":["duck::SupportedCasters::AllowNil"],"supported_validators":["duck::SupportedValidators::OneOf"],"processors":{"caster_classes":["Foobara::TypeDeclarations::Handlers::ExtendEntityTypeDeclaration::ToTypeTransformer::EntityPrimaryKeyCaster","entity::Casters::Hash"],"transformer_classes":["model::Transformers::Mutable"],"validator_classes":["entity::Validators::AttributesDeclaration"]},"attributes_type":{"type":"attributes","element_type_declarations":{"id":{"type":"integer"},"attr1":{"type":"attributes","element_type_declarations":{"inner_model":{"type":"NestedModels2::InnerModel"}},"required":["inner_model"]},"some_array":{"type":"array","element_type_declaration":{"type":"NestedModels2::InnerModel"}},"inner_model":{"type":"NestedModels2::InnerModel"}},"required":["attr1","some_array","inner_model"]},"organization_name":"global_organization","domain_name":"NestedModels2","model_name":"InnerEntity","model_base_class":"Foobara::Entity","model_class":"NestedModels2::Types::InnerEntity","entity_name":"InnerEntity","primary_key_attribute":"id","primary_key_type":{"type":"integer"}},"NestedModels3::InnerEntity":{"scoped_path":["InnerEntity"],"scoped_name":"InnerEntity","scoped_short_name":"InnerEntity","scoped_prefix":null,"scoped_full_path":["NestedModels3","InnerEntity"],"scoped_full_name":"NestedModels3::InnerEntity","scoped_category":"type","reference":"NestedModels3::InnerEntity","domain":"NestedModels3","organization":"global_organization","parent":["domain","NestedModels3"],"declaration_data":{"type":"entity","name":"InnerEntity","model_class":"NestedModels3::Types::InnerEntity","model_base_class":"Foobara::Entity","attributes_declaration":{"type":"attributes","element_type_declarations":{"id":{"type":"integer"},"attr1":{"type":"attributes","element_type_declarations":{"inner_model":{"type":"NestedModels3::InnerModel"}},"required":["inner_model"]},"some_array":{"type":"array","element_type_declaration":{"type":"NestedModels3::InnerModel"}},"inner_model":{"type":"NestedModels3::InnerModel"}},"required":["attr1","some_array","inner_model"]},"primary_key":"id","model_module":"NestedModels3::Types"},"possible_errors":{"data.cannot_cast":{"category":"data","symbol":"cannot_cast","key":"data.cannot_cast","error":"Foobara::Value::Processor::Casting::CannotCastError","processor_class":"Foobara::Value::Processor::Casting","processor_manifest_data":{"casting":{"cast_to":{"type":"entity","name":"InnerEntity","model_class":"NestedModels3::Types::InnerEntity","model_base_class":"Foobara::Entity","attributes_declaration":{"type":"attributes","element_type_declarations":{"id":{"type":"integer"},"attr1":{"type":"attributes","element_type_declarations":{"inner_model":{"type":"NestedModels3::InnerModel"}},"required":["inner_model"]},"some_array":{"type":"array","element_type_declaration":{"type":"NestedModels3::InnerModel"}},"inner_model":{"type":"NestedModels3::InnerModel"}},"required":["attr1","some_array","inner_model"]},"primary_key":"id","model_module":"NestedModels3::Types"}}}}},"name":"InnerEntity","target_classes":["NestedModels3::Types::InnerEntity"],"types_depended_on":["NestedModels3::InnerModel","array","attributes","duck","entity","integer","symbol"],"description":null,"base_type":"entity","supported_casters":["duck::SupportedCasters::AllowNil"],"supported_validators":["duck::SupportedValidators::OneOf"],"processors":{"caster_classes":["Foobara::TypeDeclarations::Handlers::ExtendEntityTypeDeclaration::ToTypeTransformer::EntityPrimaryKeyCaster","entity::Casters::Hash"],"transformer_classes":["model::Transformers::Mutable"],"validator_classes":["entity::Validators::AttributesDeclaration"]},"attributes_type":{"type":"attributes","element_type_declarations":{"id":{"type":"integer"},"attr1":{"type":"attributes","element_type_declarations":{"inner_model":{"type":"NestedModels3::InnerModel"}},"required":["inner_model"]},"some_array":{"type":"array","element_type_declaration":{"type":"NestedModels3::InnerModel"}},"inner_model":{"type":"NestedModels3::InnerModel"}},"required":["attr1","some_array","inner_model"]},"organization_name":"global_organization","domain_name":"NestedModels3","model_name":"InnerEntity","model_base_class":"Foobara::Entity","model_class":"NestedModels3::Types::InnerEntity","entity_name":"InnerEntity","primary_key_attribute":"id","primary_key_type":{"type":"integer"}},"NestedModelsNoCollisions::InnerEntityNoCollisions":{"scoped_path":["InnerEntityNoCollisions"],"scoped_name":"InnerEntityNoCollisions","scoped_short_name":"InnerEntityNoCollisions","scoped_prefix":null,"scoped_full_path":["NestedModelsNoCollisions","InnerEntityNoCollisions"],"scoped_full_name":"NestedModelsNoCollisions::InnerEntityNoCollisions","scoped_category":"type","reference":"NestedModelsNoCollisions::InnerEntityNoCollisions","domain":"NestedModelsNoCollisions","organization":"global_organization","parent":["domain","NestedModelsNoCollisions"],"declaration_data":{"type":"entity","name":"InnerEntityNoCollisions","model_class":"NestedModelsNoCollisions::TypesNoCollisions::InnerEntityNoCollisions","model_base_class":"Foobara::Entity","attributes_declaration":{"type":"attributes","element_type_declarations":{"id":{"type":"integer"},"attr1":{"type":"attributes","element_type_declarations":{"inner_model":{"type":"NestedModelsNoCollisions::InnerModelNoCollisions"}},"required":["inner_model"]},"some_array":{"type":"array","element_type_declaration":{"type":"NestedModelsNoCollisions::InnerModelNoCollisions"}},"inner_model":{"type":"NestedModelsNoCollisions::InnerModelNoCollisions"}},"required":["attr1","some_array","inner_model"]},"primary_key":"id","model_module":"NestedModelsNoCollisions::TypesNoCollisions"},"possible_errors":{"data.cannot_cast":{"category":"data","symbol":"cannot_cast","key":"data.cannot_cast","error":"Foobara::Value::Processor::Casting::CannotCastError","processor_class":"Foobara::Value::Processor::Casting","processor_manifest_data":{"casting":{"cast_to":{"type":"entity","name":"InnerEntityNoCollisions","model_class":"NestedModelsNoCollisions::TypesNoCollisions::InnerEntityNoCollisions","model_base_class":"Foobara::Entity","attributes_declaration":{"type":"attributes","element_type_declarations":{"id":{"type":"integer"},"attr1":{"type":"attributes","element_type_declarations":{"inner_model":{"type":"NestedModelsNoCollisions::InnerModelNoCollisions"}},"required":["inner_model"]},"some_array":{"type":"array","element_type_declaration":{"type":"NestedModelsNoCollisions::InnerModelNoCollisions"}},"inner_model":{"type":"NestedModelsNoCollisions::InnerModelNoCollisions"}},"required":["attr1","some_array","inner_model"]},"primary_key":"id","model_module":"NestedModelsNoCollisions::TypesNoCollisions"}}}}},"name":"InnerEntityNoCollisions","target_classes":["NestedModelsNoCollisions::TypesNoCollisions::InnerEntityNoCollisions"],"types_depended_on":["NestedModelsNoCollisions::InnerModelNoCollisions","array","attributes","duck","entity","integer","symbol"],"description":null,"base_type":"entity","supported_casters":["duck::SupportedCasters::AllowNil"],"supported_validators":["duck::SupportedValidators::OneOf"],"processors":{"caster_classes":["Foobara::TypeDeclarations::Handlers::ExtendEntityTypeDeclaration::ToTypeTransformer::EntityPrimaryKeyCaster","entity::Casters::Hash"],"transformer_classes":["model::Transformers::Mutable"],"validator_classes":["entity::Validators::AttributesDeclaration"]},"attributes_type":{"type":"attributes","element_type_declarations":{"id":{"type":"integer"},"attr1":{"type":"attributes","element_type_declarations":{"inner_model":{"type":"NestedModelsNoCollisions::InnerModelNoCollisions"}},"required":["inner_model"]},"some_array":{"type":"array","element_type_declaration":{"type":"NestedModelsNoCollisions::InnerModelNoCollisions"}},"inner_model":{"type":"NestedModelsNoCollisions::InnerModelNoCollisions"}},"required":["attr1","some_array","inner_model"]},"organization_name":"global_organization","domain_name":"NestedModelsNoCollisions","model_name":"InnerEntityNoCollisions","model_base_class":"Foobara::Entity","model_class":"NestedModelsNoCollisions::TypesNoCollisions::InnerEntityNoCollisions","entity_name":"InnerEntityNoCollisions","primary_key_attribute":"id","primary_key_type":{"type":"integer"}},"NestedModelsNoCollisions::ModelInAModelNoCollisions":{"scoped_path":["ModelInAModelNoCollisions"],"scoped_name":"ModelInAModelNoCollisions","scoped_short_name":"ModelInAModelNoCollisions","scoped_prefix":null,"scoped_full_path":["NestedModelsNoCollisions","ModelInAModelNoCollisions"],"scoped_full_name":"NestedModelsNoCollisions::ModelInAModelNoCollisions","scoped_category":"type","reference":"NestedModelsNoCollisions::ModelInAModelNoCollisions","domain":"NestedModelsNoCollisions","organization":"global_organization","parent":["domain","NestedModelsNoCollisions"],"declaration_data":{"type":"model","name":"ModelInAModelNoCollisions","model_class":"NestedModelsNoCollisions::TypesNoCollisions::ModelInAModelNoCollisions","model_base_class":"Foobara::Model","attributes_declaration":{"type":"attributes","element_type_declarations":{"attr1":{"type":"attributes","element_type_declarations":{"baz":{"type":"string"}},"required":["baz"]},"baz":{"type":"string"}},"required":["attr1","baz"]},"model_module":"NestedModelsNoCollisions::TypesNoCollisions"},"possible_errors":{"data.attr1.baz.cannot_cast":{"path":["attr1","baz"],"category":"data","symbol":"cannot_cast","key":"data.attr1.baz.cannot_cast","error":"Foobara::Value::Processor::Casting::CannotCastError","processor_manifest_data":{"casting":{"cast_to":{"type":"string"}}}},"data.attr1.baz.missing_required_attribute":{"path":["attr1","baz"],"category":"data","symbol":"missing_required_attribute","key":"data.attr1.baz.missing_required_attribute","error":"attributes::SupportedValidators::Required::MissingRequiredAttributeError","processor_manifest_data":{"required":["baz"]}},"data.attr1.cannot_cast":{"path":["attr1"],"category":"data","symbol":"cannot_cast","key":"data.attr1.cannot_cast","error":"Foobara::Value::Processor::Casting::CannotCastError","processor_manifest_data":{"casting":{"cast_to":{"type":"attributes","element_type_declarations":{"baz":{"type":"string"}},"required":["baz"]}}}},"data.attr1.missing_required_attribute":{"path":["attr1"],"category":"data","symbol":"missing_required_attribute","key":"data.attr1.missing_required_attribute","error":"attributes::SupportedValidators::Required::MissingRequiredAttributeError","processor_manifest_data":{"pipeline":null}},"data.attr1.unexpected_attributes":{"path":["attr1"],"category":"data","symbol":"unexpected_attributes","key":"data.attr1.unexpected_attributes","error":"attributes::SupportedProcessors::ElementTypeDeclarations::UnexpectedAttributesError","processor_manifest_data":{"element_type_declarations":{"baz":{"type":"string"}}}},"data.baz.cannot_cast":{"path":["baz"],"category":"data","symbol":"cannot_cast","key":"data.baz.cannot_cast","error":"Foobara::Value::Processor::Casting::CannotCastError","processor_manifest_data":{"casting":{"cast_to":{"type":"string"}}}},"data.baz.missing_required_attribute":{"path":["baz"],"category":"data","symbol":"missing_required_attribute","key":"data.baz.missing_required_attribute","error":"attributes::SupportedValidators::Required::MissingRequiredAttributeError","processor_class":"attributes::SupportedValidators::Required","processor_manifest_data":{"required":["attr1","baz"]}},"data.cannot_cast":{"category":"data","symbol":"cannot_cast","key":"data.cannot_cast","error":"Foobara::Value::Processor::Casting::CannotCastError","processor_class":"Foobara::Value::Processor::Casting","processor_manifest_data":{"casting":{"cast_to":{"type":"attributes","element_type_declarations":{"attr1":{"type":"attributes","element_type_declarations":{"baz":{"type":"string"}},"required":["baz"]},"baz":{"type":"string"}},"required":["attr1","baz"]}}}},"data.missing_required_attribute":{"category":"data","symbol":"missing_required_attribute","key":"data.missing_required_attribute","error":"attributes::SupportedValidators::Required::MissingRequiredAttributeError","processor_class":"Foobara::Value::Processor::Pipeline","processor_manifest_data":{"pipeline":null}},"data.unexpected_attributes":{"category":"data","symbol":"unexpected_attributes","key":"data.unexpected_attributes","error":"attributes::SupportedProcessors::ElementTypeDeclarations::UnexpectedAttributesError","processor_class":"attributes::SupportedProcessors::ElementTypeDeclarations","processor_manifest_data":{"element_type_declarations":{"attr1":{"type":"attributes","element_type_declarations":{"baz":{"type":"string"}},"required":["baz"]},"baz":{"type":"string"}}}}},"name":"ModelInAModelNoCollisions","target_classes":["NestedModelsNoCollisions::TypesNoCollisions::ModelInAModelNoCollisions"],"types_depended_on":["array","attributes","duck","model","string","symbol"],"description":null,"base_type":"model","supported_casters":["duck::SupportedCasters::AllowNil"],"supported_validators":["duck::SupportedValidators::OneOf"],"processors":{"caster_classes":["model::Casters::Hash"],"transformer_classes":["model::Transformers::Mutable"],"validator_classes":["model::Validators::AttributesDeclaration"]},"attributes_type":{"type":"attributes","element_type_declarations":{"attr1":{"type":"attributes","element_type_declarations":{"baz":{"type":"string"}},"required":["baz"]},"baz":{"type":"string"}},"required":["attr1","baz"]},"organization_name":"global_organization","domain_name":"NestedModelsNoCollisions","model_name":"ModelInAModelNoCollisions","model_base_class":"Foobara::Model","model_class":"NestedModelsNoCollisions::TypesNoCollisions::ModelInAModelNoCollisions"},"Foobara::Ai::Anthropic::Content":{"scoped_path":["Content"],"scoped_name":"Content","scoped_short_name":"Content","scoped_prefix":null,"scoped_full_path":["Foobara","Ai","Anthropic","Content"],"scoped_full_name":"Foobara::Ai::Anthropic::Content","scoped_category":"type","reference":"Foobara::Ai::Anthropic::Content","domain":"Foobara::Ai::Anthropic","organization":"Foobara::Ai","parent":["domain","Foobara::Ai::Anthropic"],"declaration_data":{"type":"model","name":"Content","model_class":"Foobara::Ai::Anthropic::Types::MessageResult::Content","model_base_class":"Foobara::Model","attributes_declaration":{"type":"attributes","element_type_declarations":{"text":{"type":"string"},"type":{"one_of":["text"],"type":"string"}},"required":["text","type"]},"model_module":"Foobara::Ai::Anthropic::Types::MessageResult"},"possible_errors":{"data.cannot_cast":{"category":"data","symbol":"cannot_cast","key":"data.cannot_cast","error":"Foobara::Value::Processor::Casting::CannotCastError","processor_class":"Foobara::Value::Processor::Casting","processor_manifest_data":{"casting":{"cast_to":{"type":"attributes","element_type_declarations":{"text":{"type":"string"},"type":{"one_of":["text"],"type":"string"}},"required":["text","type"]}}}},"data.missing_required_attribute":{"category":"data","symbol":"missing_required_attribute","key":"data.missing_required_attribute","error":"attributes::SupportedValidators::Required::MissingRequiredAttributeError","processor_class":"Foobara::Value::Processor::Pipeline","processor_manifest_data":{"pipeline":null}},"data.text.cannot_cast":{"path":["text"],"category":"data","symbol":"cannot_cast","key":"data.text.cannot_cast","error":"Foobara::Value::Processor::Casting::CannotCastError","processor_manifest_data":{"casting":{"cast_to":{"type":"string"}}}},"data.text.missing_required_attribute":{"path":["text"],"category":"data","symbol":"missing_required_attribute","key":"data.text.missing_required_attribute","error":"attributes::SupportedValidators::Required::MissingRequiredAttributeError","processor_class":"attributes::SupportedValidators::Required","processor_manifest_data":{"required":["text","type"]}},"data.type.cannot_cast":{"path":["type"],"category":"data","symbol":"cannot_cast","key":"data.type.cannot_cast","error":"Foobara::Value::Processor::Casting::CannotCastError","processor_manifest_data":{"casting":{"cast_to":{"one_of":["text"],"type":"string"}}}},"data.type.missing_required_attribute":{"path":["type"],"category":"data","symbol":"missing_required_attribute","key":"data.type.missing_required_attribute","error":"attributes::SupportedValidators::Required::MissingRequiredAttributeError","processor_class":"attributes::SupportedValidators::Required","processor_manifest_data":{"required":["text","type"]}},"data.type.value_not_valid":{"path":["type"],"category":"data","symbol":"value_not_valid","key":"data.type.value_not_valid","error":"duck::SupportedValidators::OneOf::ValueNotValidError","processor_manifest_data":{"one_of":["text"]}},"data.unexpected_attributes":{"category":"data","symbol":"unexpected_attributes","key":"data.unexpected_attributes","error":"attributes::SupportedProcessors::ElementTypeDeclarations::UnexpectedAttributesError","processor_class":"attributes::SupportedProcessors::ElementTypeDeclarations","processor_manifest_data":{"element_type_declarations":{"text":{"type":"string"},"type":{"one_of":["text"],"type":"string"}}}}},"name":"Content","target_classes":["Foobara::Ai::Anthropic::Types::MessageResult::Content"],"types_depended_on":["array","attributes","duck","model","string","symbol"],"description":null,"base_type":"model","supported_casters":["duck::SupportedCasters::AllowNil"],"supported_validators":["duck::SupportedValidators::OneOf"],"processors":{"caster_classes":["model::Casters::Hash"],"transformer_classes":["model::Transformers::Mutable"],"validator_classes":["model::Validators::AttributesDeclaration"]},"attributes_type":{"type":"attributes","element_type_declarations":{"text":{"type":"string"},"type":{"one_of":["text"],"type":"string"}},"required":["text","type"]},"organization_name":"Foobara::Ai","domain_name":"Anthropic","model_name":"Content","model_base_class":"Foobara::Model","model_class":"Foobara::Ai::Anthropic::Types::MessageResult::Content"},"Foobara::Ai::Anthropic::role":{"scoped_path":["role"],"scoped_name":"role","scoped_short_name":"role","scoped_prefix":null,"scoped_full_path":["Foobara","Ai","Anthropic","role"],"scoped_full_name":"Foobara::Ai::Anthropic::role","scoped_category":"type","reference":"Foobara::Ai::Anthropic::role","domain":"Foobara::Ai::Anthropic","organization":"Foobara::Ai","parent":["domain","Foobara::Ai::Anthropic"],"declaration_data":{"one_of":["user","assistant"],"type":"symbol"},"possible_errors":{"data.cannot_cast":{"category":"data","symbol":"cannot_cast","key":"data.cannot_cast","error":"Foobara::Value::Processor::Casting::CannotCastError","processor_class":"Foobara::Value::Processor::Casting","processor_manifest_data":{"casting":{"cast_to":{"one_of":["user","assistant"],"type":"symbol"}}}},"data.value_not_valid":{"category":"data","symbol":"value_not_valid","key":"data.value_not_valid","error":"duck::SupportedValidators::OneOf::ValueNotValidError","processor_class":"duck::SupportedValidators::OneOf","processor_manifest_data":{"one_of":["user","assistant"]}}},"name":"Anonymous symbol extension","target_classes":["Symbol"],"types_depended_on":["array","attributes","duck","symbol"],"description":null,"base_type":"symbol","supported_casters":["duck::SupportedCasters::AllowNil"],"supported_validators":["duck::SupportedValidators::OneOf"],"processors":{"casters":["symbol::Casters::string"],"caster_classes":["symbol::Casters::String"],"validator_classes":["duck::SupportedValidators::OneOf"]}},"Foobara::Ai::Anthropic::Usage":{"scoped_path":["Usage"],"scoped_name":"Usage","scoped_short_name":"Usage","scoped_prefix":null,"scoped_full_path":["Foobara","Ai","Anthropic","Usage"],"scoped_full_name":"Foobara::Ai::Anthropic::Usage","scoped_category":"type","reference":"Foobara::Ai::Anthropic::Usage","domain":"Foobara::Ai::Anthropic","organization":"Foobara::Ai","parent":["domain","Foobara::Ai::Anthropic"],"declaration_data":{"type":"model","name":"Usage","model_class":"Foobara::Ai::Anthropic::Types::MessageResult::Usage","model_base_class":"Foobara::Model","attributes_declaration":{"type":"attributes","element_type_declarations":{"input_tokens":{"type":"integer"},"output_tokens":{"type":"integer"}},"required":["input_tokens","output_tokens"]},"model_module":"Foobara::Ai::Anthropic::Types::MessageResult"},"possible_errors":{"data.cannot_cast":{"category":"data","symbol":"cannot_cast","key":"data.cannot_cast","error":"Foobara::Value::Processor::Casting::CannotCastError","processor_class":"Foobara::Value::Processor::Casting","processor_manifest_data":{"casting":{"cast_to":{"type":"attributes","element_type_declarations":{"input_tokens":{"type":"integer"},"output_tokens":{"type":"integer"}},"required":["input_tokens","output_tokens"]}}}},"data.input_tokens.cannot_cast":{"path":["input_tokens"],"category":"data","symbol":"cannot_cast","key":"data.input_tokens.cannot_cast","error":"Foobara::Value::Processor::Casting::CannotCastError","processor_manifest_data":{"casting":{"cast_to":{"type":"integer"}}}},"data.input_tokens.missing_required_attribute":{"path":["input_tokens"],"category":"data","symbol":"missing_required_attribute","key":"data.input_tokens.missing_required_attribute","error":"attributes::SupportedValidators::Required::MissingRequiredAttributeError","processor_class":"attributes::SupportedValidators::Required","processor_manifest_data":{"required":["input_tokens","output_tokens"]}},"data.missing_required_attribute":{"category":"data","symbol":"missing_required_attribute","key":"data.missing_required_attribute","error":"attributes::SupportedValidators::Required::MissingRequiredAttributeError","processor_class":"Foobara::Value::Processor::Pipeline","processor_manifest_data":{"pipeline":null}},"data.output_tokens.cannot_cast":{"path":["output_tokens"],"category":"data","symbol":"cannot_cast","key":"data.output_tokens.cannot_cast","error":"Foobara::Value::Processor::Casting::CannotCastError","processor_manifest_data":{"casting":{"cast_to":{"type":"integer"}}}},"data.output_tokens.missing_required_attribute":{"path":["output_tokens"],"category":"data","symbol":"missing_required_attribute","key":"data.output_tokens.missing_required_attribute","error":"attributes::SupportedValidators::Required::MissingRequiredAttributeError","processor_class":"attributes::SupportedValidators::Required","processor_manifest_data":{"required":["input_tokens","output_tokens"]}},"data.unexpected_attributes":{"category":"data","symbol":"unexpected_attributes","key":"data.unexpected_attributes","error":"attributes::SupportedProcessors::ElementTypeDeclarations::UnexpectedAttributesError","processor_class":"attributes::SupportedProcessors::ElementTypeDeclarations","processor_manifest_data":{"element_type_declarations":{"input_tokens":{"type":"integer"},"output_tokens":{"type":"integer"}}}}},"name":"Usage","target_classes":["Foobara::Ai::Anthropic::Types::MessageResult::Usage"],"types_depended_on":["array","attributes","duck","integer","model","symbol"],"description":null,"base_type":"model","supported_casters":["duck::SupportedCasters::AllowNil"],"supported_validators":["duck::SupportedValidators::OneOf"],"processors":{"caster_classes":["model::Casters::Hash"],"transformer_classes":["model::Transformers::Mutable"],"validator_classes":["model::Validators::AttributesDeclaration"]},"attributes_type":{"type":"attributes","element_type_declarations":{"input_tokens":{"type":"integer"},"output_tokens":{"type":"integer"}},"required":["input_tokens","output_tokens"]},"organization_name":"Foobara::Ai","domain_name":"Anthropic","model_name":"Usage","model_base_class":"Foobara::Model","model_class":"Foobara::Ai::Anthropic::Types::MessageResult::Usage"},"NestedModels::InnerModel":{"scoped_path":["InnerModel"],"scoped_name":"InnerModel","scoped_short_name":"InnerModel","scoped_prefix":null,"scoped_full_path":["NestedModels","InnerModel"],"scoped_full_name":"NestedModels::InnerModel","scoped_category":"type","reference":"NestedModels::InnerModel","domain":"NestedModels","organization":"global_organization","parent":["domain","NestedModels"],"declaration_data":{"type":"model","name":"InnerModel","model_class":"NestedModels::Types::InnerModel","model_base_class":"Foobara::Model","attributes_declaration":{"type":"attributes","element_type_declarations":{"attr1":{"type":"attributes","element_type_declarations":{"foo":{"type":"string"}},"required":["foo"]},"foo":{"type":"string"}},"required":["attr1","foo"]},"model_module":"NestedModels::Types"},"possible_errors":{"data.attr1.cannot_cast":{"path":["attr1"],"category":"data","symbol":"cannot_cast","key":"data.attr1.cannot_cast","error":"Foobara::Value::Processor::Casting::CannotCastError","processor_manifest_data":{"casting":{"cast_to":{"type":"attributes","element_type_declarations":{"foo":{"type":"string"}},"required":["foo"]}}}},"data.attr1.foo.cannot_cast":{"path":["attr1","foo"],"category":"data","symbol":"cannot_cast","key":"data.attr1.foo.cannot_cast","error":"Foobara::Value::Processor::Casting::CannotCastError","processor_manifest_data":{"casting":{"cast_to":{"type":"string"}}}},"data.attr1.foo.missing_required_attribute":{"path":["attr1","foo"],"category":"data","symbol":"missing_required_attribute","key":"data.attr1.foo.missing_required_attribute","error":"attributes::SupportedValidators::Required::MissingRequiredAttributeError","processor_manifest_data":{"required":["foo"]}},"data.attr1.missing_required_attribute":{"path":["attr1"],"category":"data","symbol":"missing_required_attribute","key":"data.attr1.missing_required_attribute","error":"attributes::SupportedValidators::Required::MissingRequiredAttributeError","processor_manifest_data":{"pipeline":null}},"data.attr1.unexpected_attributes":{"path":["attr1"],"category":"data","symbol":"unexpected_attributes","key":"data.attr1.unexpected_attributes","error":"attributes::SupportedProcessors::ElementTypeDeclarations::UnexpectedAttributesError","processor_manifest_data":{"element_type_declarations":{"foo":{"type":"string"}}}},"data.cannot_cast":{"category":"data","symbol":"cannot_cast","key":"data.cannot_cast","error":"Foobara::Value::Processor::Casting::CannotCastError","processor_class":"Foobara::Value::Processor::Casting","processor_manifest_data":{"casting":{"cast_to":{"type":"attributes","element_type_declarations":{"attr1":{"type":"attributes","element_type_declarations":{"foo":{"type":"string"}},"required":["foo"]},"foo":{"type":"string"}},"required":["attr1","foo"]}}}},"data.foo.cannot_cast":{"path":["foo"],"category":"data","symbol":"cannot_cast","key":"data.foo.cannot_cast","error":"Foobara::Value::Processor::Casting::CannotCastError","processor_manifest_data":{"casting":{"cast_to":{"type":"string"}}}},"data.foo.missing_required_attribute":{"path":["foo"],"category":"data","symbol":"missing_required_attribute","key":"data.foo.missing_required_attribute","error":"attributes::SupportedValidators::Required::MissingRequiredAttributeError","processor_class":"attributes::SupportedValidators::Required","processor_manifest_data":{"required":["attr1","foo"]}},"data.missing_required_attribute":{"category":"data","symbol":"missing_required_attribute","key":"data.missing_required_attribute","error":"attributes::SupportedValidators::Required::MissingRequiredAttributeError","processor_class":"Foobara::Value::Processor::Pipeline","processor_manifest_data":{"pipeline":null}},"data.unexpected_attributes":{"category":"data","symbol":"unexpected_attributes","key":"data.unexpected_attributes","error":"attributes::SupportedProcessors::ElementTypeDeclarations::UnexpectedAttributesError","processor_class":"attributes::SupportedProcessors::ElementTypeDeclarations","processor_manifest_data":{"element_type_declarations":{"attr1":{"type":"attributes","element_type_declarations":{"foo":{"type":"string"}},"required":["foo"]},"foo":{"type":"string"}}}}},"name":"InnerModel","target_classes":["NestedModels::Types::InnerModel"],"types_depended_on":["array","attributes","duck","model","string","symbol"],"description":null,"base_type":"model","supported_casters":["duck::SupportedCasters::AllowNil"],"supported_validators":["duck::SupportedValidators::OneOf"],"processors":{"caster_classes":["model::Casters::Hash"],"transformer_classes":["model::Transformers::Mutable"],"validator_classes":["model::Validators::AttributesDeclaration"]},"attributes_type":{"type":"attributes","element_type_declarations":{"attr1":{"type":"attributes","element_type_declarations":{"foo":{"type":"string"}},"required":["foo"]},"foo":{"type":"string"}},"required":["attr1","foo"]},"organization_name":"global_organization","domain_name":"NestedModels","model_name":"InnerModel","model_base_class":"Foobara::Model","model_class":"NestedModels::Types::InnerModel"},"NestedModels2::InnerModel":{"scoped_path":["InnerModel"],"scoped_name":"InnerModel","scoped_short_name":"InnerModel","scoped_prefix":null,"scoped_full_path":["NestedModels2","InnerModel"],"scoped_full_name":"NestedModels2::InnerModel","scoped_category":"type","reference":"NestedModels2::InnerModel","domain":"NestedModels2","organization":"global_organization","parent":["domain","NestedModels2"],"declaration_data":{"type":"model","name":"InnerModel","model_class":"NestedModels2::Types::InnerModel","model_base_class":"Foobara::Model","attributes_declaration":{"type":"attributes","element_type_declarations":{"attr1":{"type":"attributes","element_type_declarations":{"foo":{"type":"string"}},"required":["foo"]},"foo":{"type":"string"}},"required":["attr1","foo"]},"model_module":"NestedModels2::Types"},"possible_errors":{"data.attr1.cannot_cast":{"path":["attr1"],"category":"data","symbol":"cannot_cast","key":"data.attr1.cannot_cast","error":"Foobara::Value::Processor::Casting::CannotCastError","processor_manifest_data":{"casting":{"cast_to":{"type":"attributes","element_type_declarations":{"foo":{"type":"string"}},"required":["foo"]}}}},"data.attr1.foo.cannot_cast":{"path":["attr1","foo"],"category":"data","symbol":"cannot_cast","key":"data.attr1.foo.cannot_cast","error":"Foobara::Value::Processor::Casting::CannotCastError","processor_manifest_data":{"casting":{"cast_to":{"type":"string"}}}},"data.attr1.foo.missing_required_attribute":{"path":["attr1","foo"],"category":"data","symbol":"missing_required_attribute","key":"data.attr1.foo.missing_required_attribute","error":"attributes::SupportedValidators::Required::MissingRequiredAttributeError","processor_manifest_data":{"required":["foo"]}},"data.attr1.missing_required_attribute":{"path":["attr1"],"category":"data","symbol":"missing_required_attribute","key":"data.attr1.missing_required_attribute","error":"attributes::SupportedValidators::Required::MissingRequiredAttributeError","processor_manifest_data":{"pipeline":null}},"data.attr1.unexpected_attributes":{"path":["attr1"],"category":"data","symbol":"unexpected_attributes","key":"data.attr1.unexpected_attributes","error":"attributes::SupportedProcessors::ElementTypeDeclarations::UnexpectedAttributesError","processor_manifest_data":{"element_type_declarations":{"foo":{"type":"string"}}}},"data.cannot_cast":{"category":"data","symbol":"cannot_cast","key":"data.cannot_cast","error":"Foobara::Value::Processor::Casting::CannotCastError","processor_class":"Foobara::Value::Processor::Casting","processor_manifest_data":{"casting":{"cast_to":{"type":"attributes","element_type_declarations":{"attr1":{"type":"attributes","element_type_declarations":{"foo":{"type":"string"}},"required":["foo"]},"foo":{"type":"string"}},"required":["attr1","foo"]}}}},"data.foo.cannot_cast":{"path":["foo"],"category":"data","symbol":"cannot_cast","key":"data.foo.cannot_cast","error":"Foobara::Value::Processor::Casting::CannotCastError","processor_manifest_data":{"casting":{"cast_to":{"type":"string"}}}},"data.foo.missing_required_attribute":{"path":["foo"],"category":"data","symbol":"missing_required_attribute","key":"data.foo.missing_required_attribute","error":"attributes::SupportedValidators::Required::MissingRequiredAttributeError","processor_class":"attributes::SupportedValidators::Required","processor_manifest_data":{"required":["attr1","foo"]}},"data.missing_required_attribute":{"category":"data","symbol":"missing_required_attribute","key":"data.missing_required_attribute","error":"attributes::SupportedValidators::Required::MissingRequiredAttributeError","processor_class":"Foobara::Value::Processor::Pipeline","processor_manifest_data":{"pipeline":null}},"data.unexpected_attributes":{"category":"data","symbol":"unexpected_attributes","key":"data.unexpected_attributes","error":"attributes::SupportedProcessors::ElementTypeDeclarations::UnexpectedAttributesError","processor_class":"attributes::SupportedProcessors::ElementTypeDeclarations","processor_manifest_data":{"element_type_declarations":{"attr1":{"type":"attributes","element_type_declarations":{"foo":{"type":"string"}},"required":["foo"]},"foo":{"type":"string"}}}}},"name":"InnerModel","target_classes":["NestedModels2::Types::InnerModel"],"types_depended_on":["array","attributes","duck","model","string","symbol"],"description":null,"base_type":"model","supported_casters":["duck::SupportedCasters::AllowNil"],"supported_validators":["duck::SupportedValidators::OneOf"],"processors":{"caster_classes":["model::Casters::Hash"],"transformer_classes":["model::Transformers::Mutable"],"validator_classes":["model::Validators::AttributesDeclaration"]},"attributes_type":{"type":"attributes","element_type_declarations":{"attr1":{"type":"attributes","element_type_declarations":{"foo":{"type":"string"}},"required":["foo"]},"foo":{"type":"string"}},"required":["attr1","foo"]},"organization_name":"global_organization","domain_name":"NestedModels2","model_name":"InnerModel","model_base_class":"Foobara::Model","model_class":"NestedModels2::Types::InnerModel"},"NestedModels3::InnerModel":{"scoped_path":["InnerModel"],"scoped_name":"InnerModel","scoped_short_name":"InnerModel","scoped_prefix":null,"scoped_full_path":["NestedModels3","InnerModel"],"scoped_full_name":"NestedModels3::InnerModel","scoped_category":"type","reference":"NestedModels3::InnerModel","domain":"NestedModels3","organization":"global_organization","parent":["domain","NestedModels3"],"declaration_data":{"type":"model","name":"InnerModel","model_class":"NestedModels3::Types::InnerModel","model_base_class":"Foobara::Model","attributes_declaration":{"type":"attributes","element_type_declarations":{"attr1":{"type":"attributes","element_type_declarations":{"foo":{"type":"string"}},"required":["foo"]},"foo":{"type":"string"}},"required":["attr1","foo"]},"model_module":"NestedModels3::Types"},"possible_errors":{"data.attr1.cannot_cast":{"path":["attr1"],"category":"data","symbol":"cannot_cast","key":"data.attr1.cannot_cast","error":"Foobara::Value::Processor::Casting::CannotCastError","processor_manifest_data":{"casting":{"cast_to":{"type":"attributes","element_type_declarations":{"foo":{"type":"string"}},"required":["foo"]}}}},"data.attr1.foo.cannot_cast":{"path":["attr1","foo"],"category":"data","symbol":"cannot_cast","key":"data.attr1.foo.cannot_cast","error":"Foobara::Value::Processor::Casting::CannotCastError","processor_manifest_data":{"casting":{"cast_to":{"type":"string"}}}},"data.attr1.foo.missing_required_attribute":{"path":["attr1","foo"],"category":"data","symbol":"missing_required_attribute","key":"data.attr1.foo.missing_required_attribute","error":"attributes::SupportedValidators::Required::MissingRequiredAttributeError","processor_manifest_data":{"required":["foo"]}},"data.attr1.missing_required_attribute":{"path":["attr1"],"category":"data","symbol":"missing_required_attribute","key":"data.attr1.missing_required_attribute","error":"attributes::SupportedValidators::Required::MissingRequiredAttributeError","processor_manifest_data":{"pipeline":null}},"data.attr1.unexpected_attributes":{"path":["attr1"],"category":"data","symbol":"unexpected_attributes","key":"data.attr1.unexpected_attributes","error":"attributes::SupportedProcessors::ElementTypeDeclarations::UnexpectedAttributesError","processor_manifest_data":{"element_type_declarations":{"foo":{"type":"string"}}}},"data.cannot_cast":{"category":"data","symbol":"cannot_cast","key":"data.cannot_cast","error":"Foobara::Value::Processor::Casting::CannotCastError","processor_class":"Foobara::Value::Processor::Casting","processor_manifest_data":{"casting":{"cast_to":{"type":"attributes","element_type_declarations":{"attr1":{"type":"attributes","element_type_declarations":{"foo":{"type":"string"}},"required":["foo"]},"foo":{"type":"string"}},"required":["attr1","foo"]}}}},"data.foo.cannot_cast":{"path":["foo"],"category":"data","symbol":"cannot_cast","key":"data.foo.cannot_cast","error":"Foobara::Value::Processor::Casting::CannotCastError","processor_manifest_data":{"casting":{"cast_to":{"type":"string"}}}},"data.foo.missing_required_attribute":{"path":["foo"],"category":"data","symbol":"missing_required_attribute","key":"data.foo.missing_required_attribute","error":"attributes::SupportedValidators::Required::MissingRequiredAttributeError","processor_class":"attributes::SupportedValidators::Required","processor_manifest_data":{"required":["attr1","foo"]}},"data.missing_required_attribute":{"category":"data","symbol":"missing_required_attribute","key":"data.missing_required_attribute","error":"attributes::SupportedValidators::Required::MissingRequiredAttributeError","processor_class":"Foobara::Value::Processor::Pipeline","processor_manifest_data":{"pipeline":null}},"data.unexpected_attributes":{"category":"data","symbol":"unexpected_attributes","key":"data.unexpected_attributes","error":"attributes::SupportedProcessors::ElementTypeDeclarations::UnexpectedAttributesError","processor_class":"attributes::SupportedProcessors::ElementTypeDeclarations","processor_manifest_data":{"element_type_declarations":{"attr1":{"type":"attributes","element_type_declarations":{"foo":{"type":"string"}},"required":["foo"]},"foo":{"type":"string"}}}}},"name":"InnerModel","target_classes":["NestedModels3::Types::InnerModel"],"types_depended_on":["array","attributes","duck","model","string","symbol"],"description":null,"base_type":"model","supported_casters":["duck::SupportedCasters::AllowNil"],"supported_validators":["duck::SupportedValidators::OneOf"],"processors":{"caster_classes":["model::Casters::Hash"],"transformer_classes":["model::Transformers::Mutable"],"validator_classes":["model::Validators::AttributesDeclaration"]},"attributes_type":{"type":"attributes","element_type_declarations":{"attr1":{"type":"attributes","element_type_declarations":{"foo":{"type":"string"}},"required":["foo"]},"foo":{"type":"string"}},"required":["attr1","foo"]},"organization_name":"global_organization","domain_name":"NestedModels3","model_name":"InnerModel","model_base_class":"Foobara::Model","model_class":"NestedModels3::Types::InnerModel"},"NestedModelsNoCollisions::InnerModelNoCollisions":{"scoped_path":["InnerModelNoCollisions"],"scoped_name":"InnerModelNoCollisions","scoped_short_name":"InnerModelNoCollisions","scoped_prefix":null,"scoped_full_path":["NestedModelsNoCollisions","InnerModelNoCollisions"],"scoped_full_name":"NestedModelsNoCollisions::InnerModelNoCollisions","scoped_category":"type","reference":"NestedModelsNoCollisions::InnerModelNoCollisions","domain":"NestedModelsNoCollisions","organization":"global_organization","parent":["domain","NestedModelsNoCollisions"],"declaration_data":{"type":"model","name":"InnerModelNoCollisions","model_class":"NestedModelsNoCollisions::TypesNoCollisions::InnerModelNoCollisions","model_base_class":"Foobara::Model","attributes_declaration":{"type":"attributes","element_type_declarations":{"attr1":{"type":"attributes","element_type_declarations":{"foo":{"type":"string"}},"required":["foo"]},"foo":{"type":"string"}},"required":["attr1","foo"]},"model_module":"NestedModelsNoCollisions::TypesNoCollisions"},"possible_errors":{"data.attr1.cannot_cast":{"path":["attr1"],"category":"data","symbol":"cannot_cast","key":"data.attr1.cannot_cast","error":"Foobara::Value::Processor::Casting::CannotCastError","processor_manifest_data":{"casting":{"cast_to":{"type":"attributes","element_type_declarations":{"foo":{"type":"string"}},"required":["foo"]}}}},"data.attr1.foo.cannot_cast":{"path":["attr1","foo"],"category":"data","symbol":"cannot_cast","key":"data.attr1.foo.cannot_cast","error":"Foobara::Value::Processor::Casting::CannotCastError","processor_manifest_data":{"casting":{"cast_to":{"type":"string"}}}},"data.attr1.foo.missing_required_attribute":{"path":["attr1","foo"],"category":"data","symbol":"missing_required_attribute","key":"data.attr1.foo.missing_required_attribute","error":"attributes::SupportedValidators::Required::MissingRequiredAttributeError","processor_manifest_data":{"required":["foo"]}},"data.attr1.missing_required_attribute":{"path":["attr1"],"category":"data","symbol":"missing_required_attribute","key":"data.attr1.missing_required_attribute","error":"attributes::SupportedValidators::Required::MissingRequiredAttributeError","processor_manifest_data":{"pipeline":null}},"data.attr1.unexpected_attributes":{"path":["attr1"],"category":"data","symbol":"unexpected_attributes","key":"data.attr1.unexpected_attributes","error":"attributes::SupportedProcessors::ElementTypeDeclarations::UnexpectedAttributesError","processor_manifest_data":{"element_type_declarations":{"foo":{"type":"string"}}}},"data.cannot_cast":{"category":"data","symbol":"cannot_cast","key":"data.cannot_cast","error":"Foobara::Value::Processor::Casting::CannotCastError","processor_class":"Foobara::Value::Processor::Casting","processor_manifest_data":{"casting":{"cast_to":{"type":"attributes","element_type_declarations":{"attr1":{"type":"attributes","element_type_declarations":{"foo":{"type":"string"}},"required":["foo"]},"foo":{"type":"string"}},"required":["attr1","foo"]}}}},"data.foo.cannot_cast":{"path":["foo"],"category":"data","symbol":"cannot_cast","key":"data.foo.cannot_cast","error":"Foobara::Value::Processor::Casting::CannotCastError","processor_manifest_data":{"casting":{"cast_to":{"type":"string"}}}},"data.foo.missing_required_attribute":{"path":["foo"],"category":"data","symbol":"missing_required_attribute","key":"data.foo.missing_required_attribute","error":"attributes::SupportedValidators::Required::MissingRequiredAttributeError","processor_class":"attributes::SupportedValidators::Required","processor_manifest_data":{"required":["attr1","foo"]}},"data.missing_required_attribute":{"category":"data","symbol":"missing_required_attribute","key":"data.missing_required_attribute","error":"attributes::SupportedValidators::Required::MissingRequiredAttributeError","processor_class":"Foobara::Value::Processor::Pipeline","processor_manifest_data":{"pipeline":null}},"data.unexpected_attributes":{"category":"data","symbol":"unexpected_attributes","key":"data.unexpected_attributes","error":"attributes::SupportedProcessors::ElementTypeDeclarations::UnexpectedAttributesError","processor_class":"attributes::SupportedProcessors::ElementTypeDeclarations","processor_manifest_data":{"element_type_declarations":{"attr1":{"type":"attributes","element_type_declarations":{"foo":{"type":"string"}},"required":["foo"]},"foo":{"type":"string"}}}}},"name":"InnerModelNoCollisions","target_classes":["NestedModelsNoCollisions::TypesNoCollisions::InnerModelNoCollisions"],"types_depended_on":["array","attributes","duck","model","string","symbol"],"description":null,"base_type":"model","supported_casters":["duck::SupportedCasters::AllowNil"],"supported_validators":["duck::SupportedValidators::OneOf"],"processors":{"caster_classes":["model::Casters::Hash"],"transformer_classes":["model::Transformers::Mutable"],"validator_classes":["model::Validators::AttributesDeclaration"]},"attributes_type":{"type":"attributes","element_type_declarations":{"attr1":{"type":"attributes","element_type_declarations":{"foo":{"type":"string"}},"required":["foo"]},"foo":{"type":"string"}},"required":["attr1","foo"]},"organization_name":"global_organization","domain_name":"NestedModelsNoCollisions","model_name":"InnerModelNoCollisions","model_base_class":"Foobara::Model","model_class":"NestedModelsNoCollisions::TypesNoCollisions::InnerModelNoCollisions"}},"metadata":{"url":"http://localhost:9292/manifest","when":"2024-04-11 - 16:13:27 -0500"}}' - recorded_at: Thu, 11 Apr 2024 21:13:27 GMT + 16:23:48 -0500"}}' + recorded_at: Thu, 11 Apr 2024 21:23:48 GMT recorded_with: VCR 6.2.0 diff --git a/src/foobara/remote_imports/import_base.rb b/src/foobara/remote_imports/import_base.rb index b86be57..b459c8d 100644 --- a/src/foobara/remote_imports/import_base.rb +++ b/src/foobara/remote_imports/import_base.rb @@ -98,8 +98,10 @@ def load_manifest_from_url manifest_json = if response.is_a?(Net::HTTPSuccess) response.body else + # :nocov: raise "Could not get manifest from #{url}: " \ "#{response.code} #{response.message}" + # :nocov: end JSON.parse(manifest_json) @@ -159,7 +161,9 @@ def determine_manifests_to_import end def find_manifests_to_import + # :nocov: raise "subclass responsibility" + # :nocov: end def import_objects_from_manifests @@ -176,7 +180,9 @@ def import_objects_from_manifests end def import_object_from_manifest + # :nocov: raise "subclass responsibility" + # :nocov: end def imported_objects